{ // Specify your tip definition here, then register it in dota_contextual_tips_modifier.cpp, in the CContextualTipFactory::CContextualTipFactory() "TipDefinitions" = { // this tip specifies all possible options with their default values (unless otherwise specified ), the only absolutely mandatory field is TipText "1" = { TipText = "#DOTA_ContextualTips_ExcessiveTowerDamage_Text" // The text in the tip displayed to users TipAnnotation = "#DOTA_ContextualTips_ExcessiveTowerDamage_Annotation" // OPTIONAL secondary annotation text that can be displayed when appropriate PanoramaClasses = [ "ShowTower" ] PanoramaSnippet = "DefaultTip" TargetPlayerSkill = "Low" // As players gain experience and play matchmade games, they will no longer be shown tips targeted towards lower skill (can be "Low" "Medium" or "High") TipDisplayDuration = 7 // Number of seconds before a tip is automatically dismissed [ Default = 6] MinPlayerLevel = 0 // The tip won't be displayed if a hero is lower than this level MaxPlayerLevel = 30 // The tip won't be displayed if a hero is higher than this level MinGameMinutes = 0 // The tip won't be displayed before this time MaxGameMinutes = 20 // The tip won't be displayed after this time in game (default is -1, which there is no upper limit) DisplayCooldownSeconds = 120 // Amount of time before this tip will be evaluated again after it's displayed MaxLifetimeDisplayCount = 5 // Number of times this tip will be displayed to a user over their lifetime MaxInGameDisplayCount = 1 // Number of times this tip will be displayed in a single game } "2" = { TipText = "#DOTA_ContextualTips_CrossingRiver_Text" TargetPlayerSkill = "High" MinGameMinutes = 5 } "3" = { TipText = "#DOTA_ContextualTips_LowHealthTooLong_Text" TargetPlayerSkill = "Medium" TipReferencesAbilities = [ "item_tango", "item_flask" ] DisplayCooldownSeconds = 60 MaxPlayerLevel = 18 MaxLifetimeDisplayCount = 5 MaxInGameDisplayCount = 2 } "4" = { TipText = "#DOTA_ContextualTips_ExcessiveRoshanDamage_Text" TipAnnotation = "#DOTA_ContextualTips_ExcessiveRoshanDamage_Annotation" TargetPlayerSkill = "High" PanoramaClasses = [ "ShowRoshan" ] TipDisplayDuration = 8 MaxPlayerLevel = 15 MaxInGameDisplayCount = 2 } "5" = { TipText = "#DOTA_ContextualTips_ExcessiveNeutralCreepDamage_Text" TargetPlayerSkill = "Medium" TipDisplayDuration = 8 MaxPlayerLevel = 15 } "6" = { TipText = "#DOTA_ContextualTips_RedundantItems_Text" TargetPlayerSkill = "High" TipDisplayDuration = 7 MaxInGameDisplayCount = 2 } "7" = { TipText = "#DOTA_ContextualTips_AbilityCounters_Text" TargetPlayerSkill = "High" TipDisplayDuration = 5 MaxPlayerLevel = 6 PanoramaClasses = [ "AbilityCounters", "HideTipImage" ] MaxInGameDisplayCount = 1 MaxLifetimeDisplayCount = 20 } "8" = { TipText = "#DOTA_ContextualTips_GlyphAvailable_Text" TipAnnotation = "#DOTA_ContextualTips_GlyphAvailable_Annotation" TargetPlayerSkill = "Medium" PanoramaClasses = [ "ShowGlyph" ] TipDisplayDuration = 7 } "9" = { TipText = "#DOTA_ContextualTips_NoXPForTooLong_Text" TipAnnotation = "#DOTA_ContextualTips_NoXPForTooLong_Annotation" TargetPlayerSkill = "Medium" TipDisplayDuration = 7 MinGameMinutes = 2 MaxPlayerLevel = 18 MaxInGameDisplayCount = 2 MaxLifetimeDisplayCount = 8 } "10" = { TipText = "#DOTA_ContextualTips_BackdoorProtection_Text" TipAnnotation = "#DOTA_ContextualTips_BackdoorProtection_Annotation" TargetPlayerSkill = "High" TipReferencesAbilities = [ "backdoor_protection" ] TipDisplayDuration = 9 MaxInGameDisplayCount = 2 DisplayCooldownSeconds = 30 MaxLifetimeDisplayCount = 10 } "11" = { TipText = "#DOTA_ContextualTips_MegaCreeps_Allies_Text" TipAnnotation = "#DOTA_ContextualTips_MegaCreeps_Allies_Annotation" TargetPlayerSkill = "Medium" TipDisplayDuration = 10 MaxInGameDisplayCount = 1 MaxLifetimeDisplayCount = 10 } "12" = { TipText = "#DOTA_ContextualTips_DeathSavingItems_Stick_Text" TipAnnotation = "#DOTA_ContextualTips_DeathSavingItems_Stick_Annotation" TargetPlayerSkill = "High" TipReferencesAbilities = [ "item_magic_stick", "item_magic_wand" ] TipDisplayDuration = 10 MaxInGameDisplayCount = 1 MaxLifetimeDisplayCount = 10 } "13" = { TipText = "#DOTA_ContextualTips_RoshanDeath_Allies_Text" TipAnnotation = "#DOTA_ContextualTips_RoshanDeath_Annotation" TargetPlayerSkill = "Medium" PanoramaSnippet = "DataOnRight" TipReferencesAbilities = [ "item_aegis" ] PanoramaClasses = [ "ShowRoshan" ] TipDisplayDuration = 8 MaxInGameDisplayCount = 2 MaxLifetimeDisplayCount = 8 } "14" = { TipText = "#DOTA_ContextualTips_KillerHype_Text" TipAnnotation = "#DOTA_ContextualTips_KillerHype_Annotation" TargetPlayerSkill = "High" PanoramaClasses = [ "HideTipImage" ] PanoramaSnippet = "KillerHype" TipDisplayDuration = 8 MaxInGameDisplayCount = 1 MaxLifetimeDisplayCount = 30 } "300" = { TipText = "#DOTA_ContextualTips_GoldSurplus_Text" TipAnnotation = "#DOTA_ContextualTips_GoldSurplus_Annotation" MinGameMinutes = 2 MaxGameMinutes = -1 DisplayCooldownSeconds = 240 MaxInGameDisplayCount = 2 } "301" = { TipText = "#DOTA_ContextualTips_TomeOfKnowledge_Text" TipAnnotation = "#DOTA_ContextualTips_TomeOfKnowledge_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = -1 MaxGameMinutes = -1 DisplayCooldownSeconds = 300 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 2 } "302" = { TipText = "#DOTA_ContextualTips_CampBlockPlayer_Text" TipAnnotation = "#DOTA_ContextualTips_CampBlockPlayer_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = -1 MaxGameMinutes = -1 DisplayCooldownSeconds = 180 MaxLifetimeDisplayCount = 10 MaxInGameDisplayCount = 2 } "303" = { TipText = "#DOTA_ContextualTips_ObserverWardAvailable_Text" TipAnnotation = "#DOTA_ContextualTips_ObserverWardAvailable_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = -1 MaxGameMinutes = -1 DisplayCooldownSeconds = 300 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 2 } "304" = { TipText = "#DOTA_ContextualTips_SentryWardAvailable_Text" TipAnnotation = "#DOTA_ContextualTips_SentryWardAvailable_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = -1 MaxGameMinutes = -1 DisplayCooldownSeconds = 300 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 2 } "305" = { TipText = "#DOTA_ContextualTips_SmokeOfDeceitAvailable_Text" TipAnnotation = "#DOTA_ContextualTips_SmokeOfDeceitAvailable_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = 10 MinPlayerLevel = 3 MaxPlayerLevel = 20 DisplayCooldownSeconds = 300 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 2 } "306" = { TipText = "#DOTA_ContextualTips_DustOfAppearance_Text" TipAnnotation = "#DOTA_ContextualTips_DustOfAppearance_Annotation" TargetPlayerSkill = "Medium" MinPlayerLevel = 2 MaxGameMinutes = 30 DisplayCooldownSeconds = 300 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 2 } "307" = { TipText = "#DOTA_ContextualTips_ScanEnemy_Text" TipAnnotation = "#DOTA_ContextualTips_ScanEnemy_Annotation" TargetPlayerSkill = "High" MinPlayerLevel = 3 MinGameMinutes = 12 DisplayCooldownSeconds = 300 MaxInGameDisplayCount = 1 } "308" = { TipText = "#DOTA_ContextualTips_NighttimeVision_Text" TipAnnotation = "#DOTA_ContextualTips_NighttimeVision_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = 4 MaxGameMinutes = -1 DisplayCooldownSeconds = 300 MaxInGameDisplayCount = 1 } "309" = { TipText = "#DOTA_ContextualTips_ClarityInterrupted_Text" TipAnnotation = "#DOTA_ContextualTips_ClarityInterrupted_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = -1 MaxGameMinutes = 20 DisplayCooldownSeconds = 60 MaxInGameDisplayCount = 1 } "310" = { TipText = "#DOTA_ContextualTips_FlaskHealingInterrupted_Text" TipAnnotation = "#DOTA_ContextualTips_FlaskHealingInterrupted_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = -1 MaxGameMinutes = 20 DisplayCooldownSeconds = 60 MaxInGameDisplayCount = 1 } "311" = { TipText = "#DOTA_ContextualTips_BottleRegenInterrupted_Text" TipAnnotation = "#DOTA_ContextualTips_BottleRegenInterrupted_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = -1 MaxGameMinutes = 20 DisplayCooldownSeconds = 60 MaxInGameDisplayCount = 1 } "312" = { TipText = "#DOTA_ContextualTips_BountyRunes_Text" TipAnnotation = "#DOTA_ContextualTips_BountyRunes_Annotation" TargetPlayerSkill = "Low" MinGameMinutes = -1 MaxGameMinutes = 20 DisplayCooldownSeconds = 60 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 2 } "313" = { TipText = "#DOTA_ContextualTips_PowerRunes_Text" TipAnnotation = "#DOTA_ContextualTips_PowerRunes_Annotation" TargetPlayerSkill = "Low" MinGameMinutes = 2 MaxGameMinutes = 20 DisplayCooldownSeconds = 60 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 2 } "314" = { TipText = "#DOTA_ContextualTips_ClarityCast_Text" TipAnnotation = "#DOTA_ContextualTips_ClarityCast_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = 0 MaxGameMinutes = 20 MaxLifetimeDisplayCount = 10 MaxInGameDisplayCount = 2 } "315" = { TipText = "#DOTA_ContextualTips_HealingSalveCast_Text" TipAnnotation = "#DOTA_ContextualTips_HealingSalveCast_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = 0 MaxGameMinutes = 20 DisplayCooldownSeconds = 120 MaxLifetimeDisplayCount = 10 MaxInGameDisplayCount = 2 } "316" = { TipText = "#DOTA_ContextualTips_TangoShare_Text" TipAnnotation = "#DOTA_ContextualTips_TangoSahre_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = 0 MaxGameMinutes = 20 MaxLifetimeDisplayCount = 10 MaxInGameDisplayCount = 2 } "317" = { TipText = "#DOTA_ContextualTips_SecretShop_Text" TipAnnotation = "#DOTA_ContextualTips_SecretShop_Annotation" TargetPlayerSkill = "Medium" DisplayCooldownSeconds = 300 MaxLifetimeDisplayCount = 10 MaxInGameDisplayCount = 2 } "318" = { TipText = "#DOTA_ContextualTips_GamePause_Text" TipAnnotation = "#DOTA_ContextualTips_GamePause_Annotation" MinGameMinutes = 0 MaxGameMinutes = 20 DisplayCooldownSeconds = 300 MaxInGameDisplayCount = 1 } "400" = { TipText = "#DOTA_ContextualTips_ForgotToPurchaseItems_Text" TipAnnotation = "#DOTA_ContextualTips_ForgotToPurchaseItems_Annotation" MinGameMinutes = 0 MaxGameMinutes = 10 // In case you hung out in base; 10 minutes should be enough, yeah? DisplayCooldownSeconds = 60 MaxLifetimeDisplayCount = 3 MaxInGameDisplayCount = 1 } "401" = { TipText = "#DOTA_ContextualTips_NoTeleportScrolls_Text" TipAnnotation = "#DOTA_ContextualTips_NoTeleportScrolls_Annotation" TargetPlayerSkill = "Medium" DisplayCooldownSeconds = 60 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 3 } "402" = { TipText = "#DOTA_ContextualTips_AbilityPointAvailable_Text" TipAnnotation = "#DOTA_ContextualTips_AbilityPointAvailable_Annotation" DisplayCooldownSeconds = 60 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 3 } "403" = { TipText = "#DOTA_ContextualTips_LastHittingIncorrectly_Text" TipAnnotation = "#DOTA_ContextualTips_LastHittingIncorrectly_Annotation" MinGameMinutes = 0 MaxGameMinutes = -1 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 3 MaxPlayerLevel = 5 } "404" = { TipText = "#DOTA_ContextualTips_EnemiesMissing_Text" TipAnnotation = "#DOTA_ContextualTips_EnemiesMissing_Annotation" TargetPlayerSkill = "Medium" MinGameMinutes = 3 MaxGameMinutes = -1 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 3 } "405" = { TipText = "#DOTA_ContextualTips_UseACourier_Text" TipAnnotation = "#DOTA_ContextualTips_UseACourier_Annotation" MinGameMinutes = 0 MaxGameMinutes = 20 MaxLifetimeDisplayCount = 20 MaxInGameDisplayCount = 1 } "406" = { TipText = "#DOTA_ContextualTips_TowersRevealInvisibility_Text" TipAnnotation = "#DOTA_ContextualTips_TowersRevealInvisibility_Annotation" TargetPlayerSkill = "Medium" PanoramaClasses = [ "ShowTower" ] MinGameMinutes = 0 MaxGameMinutes = -1 } "407" = { TipText = "#DOTA_ContextualTips_ConsiderQueuingItemsForPurchase_Text" TipAnnotation = "#DOTA_ContextualTips_ConsiderQueuingItemsForPurchase_Annotation" MinGameMinutes = 2 MaxGameMinutes = -1 DisplayCooldownSeconds = 120 } } }