Ability Tooltip "system" + Same spell for 5 tiers

Level 11
Joined
Dec 16, 2017
Messages
418
Hi there, i am using chopinski's Missile system for this example, i would like to make like an ability tooltip system, what i want is basically to have the main things a spell has as a colored text + the amount , like 50 pure damage, 30 magic damage, 5 armor, 5% chance of critical, etc.
And i have some spells that i want to use the same for all tiers, one character has like 5 tiers, so it would be 2 triggers for one spell on each tier in this example. And using an unit type that isn't really in place yet, i want to change the damage, effects, etc, to get this, shall i use an ITE for each tier, or should i store them somehow outside the triggers into a boolean like Tier 1 = true when a tier 1 loads or picks or tiers up etc, and put in the spell if tier 1 = true then, damage effects etc?
There is an ITE for tier 1 but just for show.
And for the tooltip system i've used some strings as a map init and i want to use them to make the full description, my real question is how would these variables work in multiplayer? assuming that, one player can have just one hero at a time.
Also, the spells are are used as unit abilities, not heroes, so they do not need to be learned, they are automically asigned based on a research that increases with level with a little system.
  • Level UP INIT
    • Events
      • Time - Elapsed game time is 13.00 seconds
    • Conditions
    • Actions
      • -------- NOVICE --------
      • -------- W --------
      • -------- LV 2 --------
      • Set VariableSet LevelUP_Hero[1] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[1] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[1] = 3
      • Set VariableSet LevelUP_Spell[1] = Frenzy 0Novice
      • Set VariableSet LevelUP_SpellLevel[1] = 2
      • Set VariableSet LevelUP_SpellLevelCurrent[1] = 1
      • -------- LV 3 --------
      • Set VariableSet LevelUP_Hero[2] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[2] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[2] = 5
      • Set VariableSet LevelUP_Spell[2] = Frenzy 0Novice
      • Set VariableSet LevelUP_SpellLevel[2] = 3
      • Set VariableSet LevelUP_SpellLevelCurrent[2] = 2
      • -------- LV 4 --------
      • Set VariableSet LevelUP_Hero[3] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[3] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[3] = 7
      • Set VariableSet LevelUP_Spell[3] = Frenzy 0Novice
      • Set VariableSet LevelUP_SpellLevel[3] = 4
      • Set VariableSet LevelUP_SpellLevelCurrent[3] = 3
      • -------- Q --------
      • -------- LV 2 --------
      • Set VariableSet LevelUP_Hero[4] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[4] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[4] = 4
      • Set VariableSet LevelUP_Spell[4] = Powerful Strike 0Novice
      • Set VariableSet LevelUP_SpellLevel[4] = 2
      • Set VariableSet LevelUP_SpellLevelCurrent[4] = 1
      • -------- LV 3 --------
      • Set VariableSet LevelUP_Hero[5] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[5] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[5] = 6
      • Set VariableSet LevelUP_Spell[5] = Powerful Strike 0Novice
      • Set VariableSet LevelUP_SpellLevel[5] = 3
      • Set VariableSet LevelUP_SpellLevelCurrent[5] = 2
      • -------- LV 4 --------
      • Set VariableSet LevelUP_Hero[6] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[6] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[6] = 8
      • Set VariableSet LevelUP_Spell[6] = Powerful Strike 0Novice
      • Set VariableSet LevelUP_SpellLevel[6] = 4
      • Set VariableSet LevelUP_SpellLevelCurrent[6] = 3
  • Level Up Config
    • Events
      • Unit - A unit Gains a level
    • Conditions
      • (Hero level of (Leveling Hero)) Greater than or equal to 1
      • (Owner of (Leveling Hero)) Not equal to BRS_Owner
      • (Current research level of Level 1 [1-100] for (Owner of (Leveling Hero))) Not equal to 100
    • Actions
      • Set VariableSet LUTech_Hero = (Triggering unit)
      • Set VariableSet LUTech_HeroType = (Unit-type of LUTech_Hero)
      • Player - Set the current research level of Level 1 [1-100] to (Hero level of LUTech_Hero) for (Owner of LUTech_Hero)
      • Set VariableSet LUTech_Level = (Current research level of Level 1 [1-100] for (Owner of LUTech_Hero))
      • For each (Integer LevelUP_Index) from 1 to 100, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • LUTech_HeroType Equal to LevelUP_Hero[LevelUP_Index]
              • LUTech_Level Equal to LevelUP_TechLevel[LevelUP_Index]
              • (Level of LevelUP_Spell[LevelUP_Index] for LUTech_Hero) Equal to LevelUP_SpellLevelCurrent[LevelUP_Index]
            • Then - Actions
              • Unit - Set level of LevelUP_Spell[LevelUP_Index] for LUTech_Hero to LevelUP_SpellLevel[LevelUP_Index]
              • Player Group - Add (Owner of LUTech_Hero) to Map_CinematicPlayer
              • Game - Display to Map_CinematicPlayer for 4.00 seconds the text: (|cffff00ffYour skill |r + ((Tooltip of LevelUP_Spell[LevelUP_Index] for level (LevelUP_SpellLevelCurrent[LevelUP_Index] - 1)) + (|cffff00ff got upgraded to |r + ([|cff80ff80Level + ((String(LevelUP_SpellLevel[LevelUP_Index])) + |r])))))
              • Player Group - Remove (Owner of LUTech_Hero) from Map_CinematicPlayer.
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Vulture's Eye 1Archer for (Leveling Hero)) Greater than 0
        • Then - Actions
          • Player - Set the current research level of Vulture's Eye to (Level of Vulture's Eye 1Archer for (Leveling Hero)) for (Owner of (Leveling Hero))
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Steel Crow 2Archer for (Leveling Hero)) Greater than 0
        • Then - Actions
          • Player - Set the current research level of Steel Crow to (Level of Steel Crow 2Archer for (Leveling Hero)) for (Owner of (Leveling Hero))
        • Else - Actions

  • Start Map
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- COLOR CODES SPELLS TOOLTIPS --------
      • Set VariableSet AAColor_AOE = |cffd45e19Pure: |r
      • Set VariableSet AAColor_AnythingElse = |cffd45e19AOE: |r
      • Set VariableSet AAColor_Armor = |cff808080Armor|r
      • Set VariableSet AAColor_Buff = |cff00e17fBuff|r
      • Set VariableSet AAColor_Chance = |cffffdeadChance|r
      • Set VariableSet AAColor_Cooldown = |c006A5ACDCooldown:|r
      • Set VariableSet AAColor_Damage = |cffffff00Physical:|r
      • Set VariableSet AAColor_DamageMultiplier = |cffd45e19AOE: |r
      • Set VariableSet AAColor_DamagePerSecond = |cff00ffffMagic:|r
      • Set VariableSet AAColor_Debuff = |cffff00ffDebuff|r
      • Set VariableSet AAColor_Duration = |cffffcc00Duration:|r
      • Set VariableSet AAColor_Heal = |cff00ff00Heal
      • Set VariableSet AAColor_MP = |cff4169e1Mana|r
      • Set VariableSet AAColor_MPRegen = |cffd45e19AOE: |r
      • -------- COLORS AND STASH LOCATIONS --------
      • Set VariableSet Map_ClassNovice = |cffFF0000
      • Set VariableSet Map_Player_Color[1] = |c00FF0303
      • Set VariableSet Map_Player_Color[2] = |c000042FF
      • Set VariableSet Map_Player_Color[3] = |c001CE6B9
      • Set VariableSet Map_Player_Color[4] = |c00540081
      • Set VariableSet Map_Player_Color[5] = |c00FFFC01
      • Set VariableSet Map_Player_Color[6] = |c00fEBA0E
      • Set VariableSet Map_Player_Color[7] = |c0020C000
      • Set VariableSet Map_Player_Color[8] = |c00E55BB0
      • Set VariableSet Map_Player_Color[9] = |c00959697
      • Set VariableSet Map_Player_Color[10] = |c007EBFF1
      • Set VariableSet Map_Player_Color[11] = |c00106246
      • Set VariableSet Map_Player_Color[12] = |c004E2A04
      • Set VariableSet Map_Player_Color[13] = |cff2e2d2e
      • Set VariableSet Map_StashLocation[1] = (Center of StashRed <gen>)
      • Set VariableSet Map_StashLocation[2] = (Center of StashBlue <gen>)
      • Set VariableSet Map_StashLocation[3] = (Center of StashTeal <gen>)
      • Set VariableSet Map_StashLocation[4] = (Center of StashPurple <gen>)
      • Set VariableSet Map_StashLocation[5] = (Center of StashYellow <gen>)
      • Set VariableSet Map_StashLocation[6] = (Center of StashOrange <gen>)
      • Set VariableSet Map_StashLocation[7] = (Center of StashGreen <gen>)
      • Set VariableSet Map_StashLocation[8] = (Center of StashPink <gen>)
      • Set VariableSet Map_StashLocation[9] = (Center of StashGray <gen>)
      • Set VariableSet Map_StashLocation[10] = (Center of StashLightBlue <gen>)
      • Set VariableSet Map_StashType = Stash
      • -------- ALL PLAYERS INTO GROUP --------
      • Player Group - Add Player 1 (Red) to Map_PlayersGroupAll
      • Player Group - Add Player 2 (Blue) to Map_PlayersGroupAll
      • Player Group - Add Player 3 (Teal) to Map_PlayersGroupAll
      • Player Group - Add Player 4 (Purple) to Map_PlayersGroupAll
      • Player Group - Add Player 5 (Yellow) to Map_PlayersGroupAll
      • Player Group - Add Player 6 (Orange) to Map_PlayersGroupAll
      • Player Group - Add Player 7 (Green) to Map_PlayersGroupAll
      • Player Group - Add Player 8 (Pink) to Map_PlayersGroupAll
      • Player Group - Add Player 9 (Gray) to Map_PlayersGroupAll
      • Player Group - Add Player 10 (Light Blue) to Map_PlayersGroupAll
      • Player Group - Add Player 11 (Dark Green) to Map_PlayersGroupAll
      • Player Group - Add Player 12 (Brown) to Map_PlayersGroupAll
      • -------- SECRET SHOP RANDOM --------
      • Set VariableSet SecretShop_Location[1] = (Center of SecretShopTP1 <gen>)
      • Set VariableSet SecretShop_Location[2] = (Center of SecretShopTP2 <gen>)
      • Set VariableSet SecretShop_Location[3] = (Center of SecretShopTP3 <gen>)
      • Set VariableSet SecretShop_Location[4] = (Center of SecretShopTP4 <gen>)
      • Set VariableSet SecretShop_Location[5] = (Center of SecretShopTP5 <gen>)
      • Set VariableSet SecretShop_Location[6] = (Center of SecretShopTP6 <gen>)
      • Set VariableSet SecretShop_Location[7] = (Center of SecretShopTP7 <gen>)
      • Unit - Create 1 |cffFF0000Unique Shop 1|r for Neutral Passive at SecretShop_Location[(Random integer number between 1 and 7)] facing 270.00 degrees
      • -------- QUESTS ON F9 --------
      • Quest - Create a Optional quest titled |cffFF8000Story Lin... with the description At 1500 B.C A war ..., using icon path ReplaceableTextures\CommandButtons\BTNBookOfTheDead.blp
      • Quest - Create a Optional quest titled |cffFF8000Story Lin... with the description 500 B.C The monste..., using icon path ReplaceableTextures\CommandButtons\BTNTomeOfRetraining.blp
      • Quest - Create a Optional quest titled |cff00FF00Jobs with the description <<Job>> Each job ..., using icon path ReplaceableTextures\CommandButtons\BTNOrb.blp
      • Quest - Create a Optional quest titled |cffFF0000Boss MVP ... with the description BOSS MVP never resp..., using icon path ReplaceableTextures\CommandButtons\BTNDiabloCar.blp
      • Quest - Create a Optional quest titled Commands with the description There are some comm..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp
      • Quest - Create a Optional quest titled Protect the City with the description If one Captain of a..., using icon path ReplaceableTextures\CommandButtons\BTNRegeneration.blp
      • Quest - Create a Optional quest titled |cff00FFFFItems cla... with the description There are 8 classes..., using icon path ReplaceableTextures\CommandButtons\BTNStaffOfPurification.blp
      • Quest - Create a Optional quest titled |cff00FFFFItems rar... with the description <<Rarity>> - Weak ..., using icon path ReplaceableTextures\CommandButtons\BTNStaffOfPurification.blp
      • Quest - Create a Optional quest titled |cffC0C0C0Contact me with the description Discord : invite ht..., using icon path ReplaceableTextures\CommandButtons\BTNSlow.blp
      • Quest - Create a Optional quest titled |cffFF8080Credits with the description |cffFF8000Inspired ..., using icon path ReplaceableTextures\CommandButtons\BTNDeathAndDecay.blp
      • Quest - Create a Optional quest titled |c0050C878Easy mode with the description |c0050C878Bonus XP ..., using icon path ReplaceableTextures\CommandButtons\BTNDeathAndDecay.blp
      • Quest - Create a Optional quest titled |c0000FFFFNormal Mo... with the description |c0000FFFF-Bonus XP..., using icon path ReplaceableTextures\CommandButtons\BTNDeathAndDecay.blp
      • Quest - Create a Optional quest titled |c00FFFF33Hard Mode with the description |c00FFFF33-Bonus XP..., using icon path ReplaceableTextures\CommandButtons\BTNDeathAndDecay.blp
      • Quest - Create a Optional quest titled |c00FF0000Expert Mo... with the description |c00FF0000-Bonus XP..., using icon path ReplaceableTextures\CommandButtons\BTNDeathAndDecay.blp
      • Quest - Create a Required quest titled |cff808000Quests with the description There are 3 Quests ..., using icon path ReplaceableTextures\CommandButtons\BTNHeroPaladin.blp
      • Set VariableSet Mainquest = (Last created quest)
      • -------- ITEMS ADD TO NPC FROM TRIGGERS --------
      • Neutral Building - Add |c0066FF00Jobs Info|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • Neutral Building - Add |c0066FF00Job 1 Info|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • Neutral Building - Add |c0066FF00Jobs Levels|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • Neutral Building - Add |c0066FF00Items Info|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • Neutral Building - Add |c0066FF00Easy Difficulty|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • Neutral Building - Add |c0066FF00Normal Difficulty|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • Neutral Building - Add |c0066FF00Hard Difficulty|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • Neutral Building - Add |c0066FF00Expert Difficulty|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • Neutral Building - Add |c0066FF00Game Commands|r to Informations 0009 <gen> with 0 in stock and a max stock of 0
      • -------- CITIES NAMES --------
      • Floating Text - Create floating text that reads Sewers Dungeon at (Center of SewersDung101In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Cave Dungeon at (Center of CaveDung101In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Fortress Dungeon at (Center of FortressDung101In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Vampire Den Dungeon at (Center of VampireDen103In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Pyramid Dungeon at (Center of PyramidDung101In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Pyramid Level 2 at (Center of PyramidDung103In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Pyramid Level 3 at (Center of PyramidDung107In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Lair of the Beast at (Center of BeastLair101In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Magma Dungeon at (Center of MagmaDung101In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Glast Heim Dungeon at (Center of GlastHeimDung109In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Goblin Lair Dungeon at (Center of GoblinLair103In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Ant Hell Dungeon at (Center of AntHellDung101In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Byalan Dungeon at (Center of ByalanDung103In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Sunken Ship Dungeon at (Center of SunkenShipDun103In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Prontera Castle Dun... at (Center of PronteraCastleDung101In <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Prontera City at (Center of Message City01 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Izlude City at (Center of Message City02 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Geffen City at (Center of Message City03 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Payon Village at (Center of Message City04 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Alberta City at (Center of Message City05 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Morroc City at (Center of Message City06 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Al De Baran City at (Center of Message City07 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Umbala Village at (Center of Message City08 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Demnok City at (Center of Message City09 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Quest Giver 1 at (Center of Quest Forger1 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Quest Giver 2 at (Center of Quest Forger2 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Create floating text that reads Quest Giver 3 at (Center of Quest Forger3 <gen>) with Z offset 0.00, using font size 20.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • -------- BOSSES ADD PASSIVES --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units in (Playable map area) owned by BRS_Owner) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is A Hero) Equal to True
            • Then - Actions
              • Unit - Set mana of (Picked unit) to 100.00%
              • Unit - Add |r Boss True Sight to (Picked unit)
              • Unit - Add |r Boss Bash to (Picked unit)
              • Unit - Add |r Boss Evasion to (Picked unit)
              • Unit - Add |r Boss Spell Evasion to (Picked unit)
              • Unit - Add Magic Resist +45 to (Picked unit)
            • Else - Actions
      • -------- HINTS SETUP --------
      • Set VariableSet Map_Hint[1] = 1: Thank you for playing my Revamped version of Trinity ORPG !
      • Set VariableSet Map_Hint[2] = 2: Stash can be saved, but courier not.
      • Set VariableSet Map_Hint[3] = 3: The more players there are, the easier the game is, as you can conquer bosses
      • Set VariableSet Map_Hint[4] = 4: Don't steal boss drops, let everyone take their own stuff according to the character they play.
      • Set VariableSet Map_Hint[5] = 5: If you have any suggestions, don't hesitate to tell me them, you can find me on hiveworkshop(P3in),chaosrealm.co(P3in),discord(Cristian#2861), or email [email protected].
      • Set VariableSet Map_Hint[6] = 6: Look out for the 3 NPCs quest givers
      • Set VariableSet Map_Hint[7] = 7: There are 2 secret shops, selling unique items.
      • Set VariableSet Map_Hint[8] = 8: Remember to check F9 for more informations about commands or bosses spells/strategies.
      • Set VariableSet Map_Hint[9] = 9: If you want to play the map with me, you can find me on eurobattle (P3in).
      • Set VariableSet Map_Hint[10] = 10: The map is builded on warcraft 3 1.28.5 patch, but it can also be played on reforged
      • Set VariableSet Map_Hint[11] = 11: Each boss has unique spells and strategy.
      • Set VariableSet Map_Hint[12] = 12: If you selected Yes to city attacks, the cities will get attacked every 5-10 minutes.
      • Set VariableSet Map_Hint[13] = 13: All available classes have 4 jobs.
      • Set VariableSet Map_Hint[14] = 14: There may be some secret heroes or secret items, who knows?
      • Set VariableSet Map_Hint[15] = 15: Since version v0.2, quests are changed, read carefully what the job npcs tell you.
      • Set VariableSet Map_Hint[16] = 16: Drop rate/xp rate depends on the chosen mode.
      • Set VariableSet Map_Hint[17] = 17: Every 25 minutes, there is an event for extra Gold/Drop or XP.
      • Set VariableSet Map_Hint[18] = 18: Enable subtitles from F10 so you can see NPCS JOBS Quests.
      • Set VariableSet Map_Hint[19] = 19: If you can't understand the npcs texts from jobs quests, you can find on discord an class list with spells and jobs quests.
      • Set VariableSet Map_Hint[20] = 20: Make sure you play the last version.
  • Double Strafe Config
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Double Strafe 1Archer
    • Actions
      • Set VariableSet MissileSource = (Triggering unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of MissileSource) Equal to |c006B8E23[Archer]|r Job 1
        • Then - Actions
          • Set VariableSet MissileStart = (Position of (Triggering unit))
          • Set VariableSet MissileStartZ = 50.00
          • Set VariableSet MissileFinish = (Position of (Picked unit))
          • Set VariableSet MissileFinishZ = 50.00
          • Set VariableSet MissileModel = Abilities\Weapons\SearingArrow\SearingArrowMissile.mdl
          • Set VariableSet MissileSpeed = 1500.00
          • Set VariableSet MissileArc = 5.00
          • Set VariableSet Map_SpellLevel = ((Level of (Ability being cast) for (Triggering unit)) - 1)
          • Set VariableSet MissileDamage = (120.00 + (50.00 x (Real((Level of (Ability being cast) for (Triggering unit))))))
          • Set VariableSet Map_TooltipFull = (The archer is an cunning adept of the bow, she uses it to launch a powerful arrow that will deal damage to the target.|n|n + ((AAColor_Duration + Target|r) + (AAColor_Damage + (String(MissileDamage)))))
          • Ability - Set Extended Tooltip of (Ability being cast) to Map_TooltipFull for level Map_SpellLevel
          • Set VariableSet MissileScale = 2.00
          • Set VariableSet MissileCurve = (Random real number between -5.00 and 15.00)
          • Set VariableSet MissileTarget = (Target unit of ability being cast)
          • Set VariableSet Missile_onFinish = Double Strafe Damage <gen>
          • Trigger - Run MissileCreate <gen> (ignoring conditions)
          • Set VariableSet MissileAttachModel = Windwalk.mdl
          • Set VariableSet MissileAttachX = 50.00
          • Set VariableSet MissileAttachY = 50.00
          • Set VariableSet MissileAttachZ = 50.00
          • Set VariableSet MissileAttachScale = 2.00
          • Trigger - Run MissileAttach <gen> (ignoring conditions)
          • Set VariableSet Attachments[Missile] = (Last created special effect)
          • Set VariableSet Counter[Missile] = 0
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of MissileSource) Equal to |c006B8E23[Hunter]|r Job 2
        • Then - Actions
          • Set VariableSet MissileStart = (Position of (Triggering unit))
          • Set VariableSet MissileStartZ = 50.00
          • Set VariableSet MissileFinish = (Position of (Picked unit))
          • Set VariableSet MissileFinishZ = 50.00
          • Set VariableSet MissileModel = Abilities\Weapons\SearingArrow\SearingArrowMissile.mdl
          • Set VariableSet MissileSpeed = 1500.00
          • Set VariableSet MissileArc = 5.00
          • Set VariableSet Map_SpellLevel = ((Level of (Ability being cast) for (Triggering unit)) - 1)
          • Set VariableSet MissileDamage = (120.00 + (50.00 x (Real((Level of (Ability being cast) for (Triggering unit))))))
          • Set VariableSet Map_TooltipFull = (The archer is an cunning adept of the bow, she uses it to launch a powerful arrow that will deal damage to the target.|n|n + ((AAColor_Duration + Target|r) + (AAColor_Damage + (String(MissileDamage)))))
          • Ability - Set Extended Tooltip of (Ability being cast) to Map_TooltipFull for level Map_SpellLevel
          • Set VariableSet MissileScale = 2.00
          • Set VariableSet MissileCurve = (Random real number between -5.00 and 15.00)
          • Set VariableSet MissileTarget = (Target unit of ability being cast)
          • Set VariableSet Missile_onFinish = Double Strafe Damage <gen>
          • Trigger - Run MissileCreate <gen> (ignoring conditions)
          • Set VariableSet MissileAttachModel = Windwalk.mdl
          • Set VariableSet MissileAttachX = 50.00
          • Set VariableSet MissileAttachY = 50.00
          • Set VariableSet MissileAttachZ = 50.00
          • Set VariableSet MissileAttachScale = 2.00
          • Trigger - Run MissileAttach <gen> (ignoring conditions)
          • Set VariableSet Attachments[Missile] = (Last created special effect)
          • Set VariableSet Counter[Missile] = 0
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of MissileSource) Equal to |c006B8E23[Sniper]|r Job 3
        • Then - Actions
          • Set VariableSet MissileStart = (Position of (Triggering unit))
          • Set VariableSet MissileStartZ = 50.00
          • Set VariableSet MissileFinish = (Position of (Picked unit))
          • Set VariableSet MissileFinishZ = 50.00
          • Set VariableSet MissileModel = Abilities\Weapons\SearingArrow\SearingArrowMissile.mdl
          • Set VariableSet MissileSpeed = 1500.00
          • Set VariableSet MissileArc = 5.00
          • Set VariableSet Map_SpellLevel = ((Level of (Ability being cast) for (Triggering unit)) - 1)
          • Set VariableSet MissileDamage = (120.00 + (50.00 x (Real((Level of (Ability being cast) for (Triggering unit))))))
          • Set VariableSet Map_TooltipFull = (The archer is an cunning adept of the bow, she uses it to launch a powerful arrow that will deal damage to the target.|n|n + ((AAColor_Duration + Target|r) + (AAColor_Damage + (String(MissileDamage)))))
          • Ability - Set Extended Tooltip of (Ability being cast) to Map_TooltipFull for level Map_SpellLevel
          • Set VariableSet MissileScale = 2.00
          • Set VariableSet MissileCurve = (Random real number between -5.00 and 15.00)
          • Set VariableSet MissileTarget = (Target unit of ability being cast)
          • Set VariableSet Missile_onFinish = Double Strafe Damage <gen>
          • Trigger - Run MissileCreate <gen> (ignoring conditions)
          • Set VariableSet MissileAttachModel = Windwalk.mdl
          • Set VariableSet MissileAttachX = 50.00
          • Set VariableSet MissileAttachY = 50.00
          • Set VariableSet MissileAttachZ = 50.00
          • Set VariableSet MissileAttachScale = 2.00
          • Trigger - Run MissileAttach <gen> (ignoring conditions)
          • Set VariableSet Attachments[Missile] = (Last created special effect)
          • Set VariableSet Counter[Missile] = 0
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of MissileSource) Equal to |c006B8E23[Ranger]|r Job 4
        • Then - Actions
          • Set VariableSet MissileStart = (Position of (Triggering unit))
          • Set VariableSet MissileStartZ = 50.00
          • Set VariableSet MissileFinish = (Position of (Picked unit))
          • Set VariableSet MissileFinishZ = 50.00
          • Set VariableSet MissileModel = Abilities\Weapons\SearingArrow\SearingArrowMissile.mdl
          • Set VariableSet MissileSpeed = 1500.00
          • Set VariableSet MissileArc = 5.00
          • Set VariableSet Map_SpellLevel = ((Level of (Ability being cast) for (Triggering unit)) - 1)
          • Set VariableSet MissileDamage = (120.00 + (50.00 x (Real((Level of (Ability being cast) for (Triggering unit))))))
          • Set VariableSet Map_TooltipFull = (The archer is an cunning adept of the bow, she uses it to launch a powerful arrow that will deal damage to the target.|n|n + ((AAColor_Duration + Target|r) + (AAColor_Damage + (String(MissileDamage)))))
          • Ability - Set Extended Tooltip of (Ability being cast) to Map_TooltipFull for level Map_SpellLevel
          • Set VariableSet MissileScale = 2.00
          • Set VariableSet MissileCurve = (Random real number between -5.00 and 15.00)
          • Set VariableSet MissileTarget = (Target unit of ability being cast)
          • Set VariableSet Missile_onFinish = Double Strafe Damage <gen>
          • Trigger - Run MissileCreate <gen> (ignoring conditions)
          • Set VariableSet MissileAttachModel = Windwalk.mdl
          • Set VariableSet MissileAttachX = 50.00
          • Set VariableSet MissileAttachY = 50.00
          • Set VariableSet MissileAttachZ = 50.00
          • Set VariableSet MissileAttachScale = 2.00
          • Trigger - Run MissileAttach <gen> (ignoring conditions)
          • Set VariableSet Attachments[Missile] = (Last created special effect)
          • Set VariableSet Counter[Missile] = 0
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of MissileSource) Equal to |c006B8E23[Windhawk]|r Job 5 - NEFACUT
        • Then - Actions
          • Set VariableSet MissileStart = (Position of (Triggering unit))
          • Set VariableSet MissileStartZ = 50.00
          • Set VariableSet MissileFinish = (Position of (Picked unit))
          • Set VariableSet MissileFinishZ = 50.00
          • Set VariableSet MissileModel = Abilities\Weapons\SearingArrow\SearingArrowMissile.mdl
          • Set VariableSet MissileSpeed = 1500.00
          • Set VariableSet MissileArc = 5.00
          • Set VariableSet Map_SpellLevel = ((Level of (Ability being cast) for (Triggering unit)) - 1)
          • Set VariableSet MissileDamage = (120.00 + (50.00 x (Real((Level of (Ability being cast) for (Triggering unit))))))
          • Set VariableSet Map_TooltipFull = (The archer is an cunning adept of the bow, she uses it to launch a powerful arrow that will deal damage to the target.|n|n + ((AAColor_Duration + Target|r) + (AAColor_Damage + (String(MissileDamage)))))
          • Ability - Set Extended Tooltip of (Ability being cast) to Map_TooltipFull for level Map_SpellLevel
          • Set VariableSet MissileScale = 2.00
          • Set VariableSet MissileCurve = (Random real number between -5.00 and 15.00)
          • Set VariableSet MissileTarget = (Target unit of ability being cast)
          • Set VariableSet Missile_onFinish = Double Strafe Damage <gen>
          • Trigger - Run MissileCreate <gen> (ignoring conditions)
          • Set VariableSet MissileAttachModel = Windwalk.mdl
          • Set VariableSet MissileAttachX = 50.00
          • Set VariableSet MissileAttachY = 50.00
          • Set VariableSet MissileAttachZ = 50.00
          • Set VariableSet MissileAttachScale = 2.00
          • Trigger - Run MissileAttach <gen> (ignoring conditions)
          • Set VariableSet Attachments[Missile] = (Last created special effect)
          • Set VariableSet Counter[Missile] = 0
        • Else - Actions
  • Double Strafe Damage
    • Events
    • Conditions
      • (MissileTarget is alive) Equal to True
    • Actions
      • Unit - Cause MissileSource to damage MissileTarget, dealing MissileDamage damage of attack type Pierce and damage type Normal
      • Special Effect - Create a special effect attached to the origin of MissileTarget using Objects\Spawnmodels\Human\HumanLargeDeathExplode\HumanLargeDeathExplode.mdl
      • Special Effect - Destroy (Last created special effect)
      • Custom script: call CrowdControl.ensnare(udg_MissileTarget, 1, "", "origin" , false)
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
That should work fine, but of course try to remove the redundancy. You only need to put what changes inside of the ITE and can put the rest of the shared Actions outside of it.

Anyway, updating a tooltip in response to casting an ability seems strange, how about updating it when the ability is leveled up?
  • Then - Actions
    • Unit - Set level of LevelUP_Spell[LevelUP_Index] for LUTech_Hero to LevelUP_SpellLevel[LevelUP_Index]
    • Trigger - Run LevelUP_Spell_Info[LevelUP_Index] (ignoring conditions)
  • Update Double Strafe
    • Events
    • Conditions
    • Actions
      • -------- This trigger would be stored in the new LevelUP_Spell_Info[] trigger array variable along with the other array variables --------
      • Set VariableSet Tooltip_Real[0] = (Calculate the damage)
      • Set VariableSet Tooltip_Text = (The archer is an cunning adept of the bow, she uses it to launch a powerful arrow that will deal damage to the target.|n|n + ((AAColor_Duration + Target|r) + (AAColor_Damage + (String(Tooltip_Real[0])))))
      • Ability - Set Extended Tooltip of LevelUP_Spell[LevelUP_Index] to Tooltip_Text for level (LevelUP_SpellLevel[LevelUP_Index] - 1)
You could also have it update after a spell is cast as well:
  • Events
    • Unit - A unit Starts the effect of an ability
  • Conditions
  • Actions
    • Set VariableSet LevelUP_Index = (Get the index of the ability being cast)
    • Set VariableSet LevelUP_Spell[LevelUP_Index] = (Ability being cast)
    • Set VariableSet LevelUP_SpellLevel[LevelUP_Index] = (Level of LevelUP_Spell[LevelUP_Index] for (Triggering unit))
    • Trigger - Run LevelUP_Spell_Info[LevelUP_Index] (ignoring conditions)
You may need to "refresh" the ability for the tooltip info to update, or just apply the tooltip changes BEFORE you increase it's level.
 
Last edited:
Level 11
Joined
Dec 16, 2017
Messages
418
For some reason it doesn't work ok, if i do the ITE, the spell deals double the damage, first level should be 170, but it deals 340, i deleted all ITE's and now it still does it o,o ; can't understand what broke.
I didn't change the statements in the ITE's yet, i just did copy paste to test it, they will have different models, angles speeds etc. What remains the same will be out of ITE, but, missile source should be in the ITE or out for all?

Yeah i know it was strange for the tooltip to upgrade in the ability cast, i just tested it to see if it works, first time using the actions about it.

Also, is there a better work arround instead of the 5 ITE's ?
Like an array from 1 to 5 that would represent the number of the tier, or for that i should make all the missile variables into arrays and therefore breaking the system?
 
For some reason it doesn't work ok, if i do the ITE, the spell deals double the damage, first level should be 170, but it deals 340, i deleted all ITE's and now it still does it o,o ; can't understand what broke.
I didn't change the statements in the ITE's yet, i just did copy paste to test it, they will have different models, angles speeds etc. What remains the same will be out of ITE, but, missile source should be in the ITE or out for all?

Yeah i know it was strange for the tooltip to upgrade in the ability cast, i just tested it to see if it works, first time using the actions about it.

Also, is there a better work arround instead of the 5 ITE's ?
Like an array from 1 to 5 that would represent the number of the tier, or for that i should make all the missile variables into arrays and therefore breaking the system?
Like previously mentioned, you can limit your use of IFT statements by putting things that repeat consistently into an array. Ensure that things that are tier specific are added in a way that they are referenced in order, otherwise you're going to have a rough time.

Secondly,

  • empty.gif
    join.gif
    comment.gif
    -------- ALL PLAYERS INTO GROUP --------
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 1 (Red) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 2 (Blue) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 3 (Teal) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 4 (Purple) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 5 (Yellow) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 6 (Orange) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 7 (Green) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 8 (Pink) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 9 (Gray) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 10 (Light Blue) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 11 (Dark Green) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 12 (Brown) to Map_PlayersGroupAll

This can be put into a "for each" statement, or, if ALL players are in that map, person controlled or computer controlled, you can jsut do a pick all players and add them to a unitgroup.
 
Level 11
Joined
Dec 16, 2017
Messages
418
Like previously mentioned, you can limit your use of IFT statements by putting things that repeat consistently into an array. Ensure that things that are tier specific are added in a way that they are referenced in order, otherwise you're going to have a rough time.

Secondly,

  • empty.gif
    join.gif
    comment.gif
    -------- ALL PLAYERS INTO GROUP --------
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 1 (Red) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 2 (Blue) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 3 (Teal) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 4 (Purple) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 5 (Yellow) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 6 (Orange) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 7 (Green) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 8 (Pink) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 9 (Gray) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 10 (Light Blue) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 11 (Dark Green) to Map_PlayersGroupAll
  • empty.gif
    join.gif
    playergroup.gif
    Player Group - Add Player 12 (Brown) to Map_PlayersGroupAll

This can be put into a "for each" statement, or, if ALL players are in that map, person controlled or computer controlled, you can jsut do a pick all players and add them to a unitgroup.
Thanks for the tip, that is just old, i didn't get rid of it yet, i already make the group at the init with only players that are in game

  • Start Map Novice Spawn
    • Events
      • Time - Elapsed game time is 12.00 seconds
    • Conditions
    • Actions
      • Custom script: if not (File.ReadEnabled) then
      • Custom script: call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,60000, udg_LocalFiles_WarningMessage)
      • Custom script: endif
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Player((Integer A))) slot status) Equal to Is playing
            • Then - Actions
              • Set VariableSet Reincarnation_place[(Integer A)] = ((Player((Integer A))) start location)
              • Unit - Create 1 |cffff0000[Novice]|r Job 0 for (Player((Integer A))) at Reincarnation_place[(Integer A)] facing Default building facing degrees
              • Set VariableSet Hero[(Player number of (Player((Integer A))))] = (Last created unit)
              • Set VariableSet SavePlayerHero[(Player number of (Player((Integer A))))] = (Last created unit)
              • Custom script: set udg_SavePlayerHero[GetPlayerId(GetEnumPlayer())] = bj_lastCreatedUnit
              • Hero - Make (Player((Integer A))) Heroes gain 125.00% experience from future kills
              • Player - Set (Player((Integer A))).Current gold to 500
              • Player Group - Add (Player((Integer A))) to Map_PlayersGroupActive
              • Camera - Pan camera for (Player((Integer A))) to Reincarnation_place[(Integer A)] over 2.00 seconds
              • Unit - Change color of (Last created unit) to (Color of (Player((Integer A))))
              • Hero - Set (Last created unit) Hero-level to 1, Hide level-up graphics
              • Player - Set the current research level of Level 1 [1-100] to 1 for (Player((Integer A)))
              • Selection - Select (Last created unit) for (Player((Integer A)))
              • Unit - Add Powerful Strike 0Novice to (Last created unit)
              • Unit - Add Frenzy 0Novice to (Last created unit)
              • Unit - Add Critical Strike 0Novice to (Last created unit)
            • Else - Actions
 
Level 11
Joined
Dec 16, 2017
Messages
418
Just a quick one, how to properly detect when a spell get's leveled up via triggers? The spell is a unit ability, not a hero, so i'm trying to add custom stats to the hero based on level of the spell, but i'm having troubles trying to detect it, so they can have a cap, the spell has like 10 levels, i tried SetUnitBonus but it malfunctions all the others stuff where i use it, like items and other spells.

  • Trueshot Config
    • Events
      • Unit - A unit Gains a level
    • Conditions
      • (Level of Trueshot 1Archer for (Triggering unit)) Greater than 0
    • Actions
      • Custom script: call AddUnitBonus(GetTriggerUnit(), BONUS_DAMAGE,2.00)
      • Custom script: call AddUnitBonus(GetTriggerUnit(), BONUS_DAMAGE, 2.00 * GetUnitAbilityLevel(GetTriggerUnit(), 'A0G9'))
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Just a quick one, how to properly detect when a spell get's leveled up via triggers? The spell is a unit ability, not a hero
You would know better than us, it's your own custom spell system :p

They get leveled up here:
  • Then - Actions
    • Unit - Set level of LevelUP_Spell[LevelUP_Index] for LUTech_Hero to LevelUP_SpellLevel[LevelUP_Index]
You could create a custom Event here, run a Trigger, etc.. I suggested running a LevelUP_Spell_Info[] trigger in my previous post which would work perfectly.

Not sure about the NewBonus stuff, but I suggest using Variables that you can then reference in the Custom Script.
(Your LevelUP variables conveniently hold all of the needed information)
 
Last edited:
Level 11
Joined
Dec 16, 2017
Messages
418
Hmm, yeah, i didn't think of running a trigger from there for this, lol :D
Sounds easy peasy.
And i guess it would run perfectly with the save/load system, as the heroes get's leveled from the loads, and the levelup variables would trigger adding the levels of the spells and so on, but if i save the spells levels, then they will bug out i guess? Since they will leave no room for the levelup variables to trigger.
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
but if i save the spells levels, then they will bug out i guess? Since they will leave no room for the levelup variables to trigger.
You know the answer to that already ;)

But you can always Set those variables again when you Load the Spell level + Run the trigger. Or just use a different Set of variables.

Try to think about the systems you use and how they're designed, they all have the same thing in common:
You Set Variables + Run a trigger/function to handle everything using those Variables.
 
Level 11
Joined
Dec 16, 2017
Messages
418
That should work fine, but of course try to remove the redundancy. You only need to put what changes inside of the ITE and can put the rest of the shared Actions outside of it.

Anyway, updating a tooltip in response to casting an ability seems strange, how about updating it when the ability is leveled up?
  • Then - Actions
    • Unit - Set level of LevelUP_Spell[LevelUP_Index] for LUTech_Hero to LevelUP_SpellLevel[LevelUP_Index]
    • Trigger - Run LevelUP_Spell_Info[LevelUP_Index] (ignoring conditions)
  • Update Double Strafe
    • Events
    • Conditions
    • Actions
      • -------- This trigger would be stored in the new LevelUP_Spell_Info[] trigger array variable along with the other array variables --------
      • Set VariableSet Tooltip_Real[0] = (Calculate the damage)
      • Set VariableSet Tooltip_Text = (The archer is an cunning adept of the bow, she uses it to launch a powerful arrow that will deal damage to the target.|n|n + ((AAColor_Duration + Target|r) + (AAColor_Damage + (String(Tooltip_Real[0])))))
      • Ability - Set Extended Tooltip of LevelUP_Spell[LevelUP_Index] to Tooltip_Text for level (LevelUP_SpellLevel[LevelUP_Index] - 1)
You could also have it update after a spell is cast as well:
  • Events
    • Unit - A unit Starts the effect of an ability
  • Conditions
  • Actions
    • Set VariableSet LevelUP_Index = (Get the index of the ability being cast)
    • Set VariableSet LevelUP_Spell[LevelUP_Index] = (Ability being cast)
    • Set VariableSet LevelUP_SpellLevel[LevelUP_Index] = (Level of LevelUP_Spell[LevelUP_Index] for (Triggering unit))
    • Trigger - Run LevelUP_Spell_Info[LevelUP_Index] (ignoring conditions)
You may need to "refresh" the ability for the tooltip info to update, or just apply the tooltip changes BEFORE you increase it's level.
So, instead of making a new trigger for every spell to update the tooltip, i integrated the tooltip in the LevelUp Init, i have an issue with detecting the spell of the damage to be added to the tooltip, below there are more tooltips with the same [] because they are disabled, those are the one's that work and i didn't delete yet.

In the LevelUp Config, i tried to add the tooltip even after the spell was leveled up or before, it will still trigger just "30" instead of 40 and 50 for Poison Strike.
  • Level UP INIT
    • Events
      • Time - Elapsed game time is 13.00 seconds
    • Conditions
    • Actions
      • -------- NOVICE --------
      • -------- Q --------
      • -------- LV 2 --------
      • Set VariableSet LevelUP_Hero[1] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[1] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[1] = 3
      • Set VariableSet LevelUP_Spell[1] = Anger Potion 0Novice
      • Set VariableSet LevelUP_SpellLevel[1] = 2
      • Set VariableSet LevelUP_SpellLevelCurrent[1] = 1
      • -------- LV 3 --------
      • Set VariableSet LevelUP_Hero[2] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[2] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[2] = 5
      • Set VariableSet LevelUP_Spell[2] = Anger Potion 0Novice
      • Set VariableSet LevelUP_SpellLevel[2] = 3
      • Set VariableSet LevelUP_SpellLevelCurrent[2] = 2
      • -------- LV 4 --------
      • Set VariableSet LevelUP_Hero[3] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[3] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[3] = 7
      • Set VariableSet LevelUP_Spell[3] = Anger Potion 0Novice
      • Set VariableSet LevelUP_SpellLevel[3] = 4
      • Set VariableSet LevelUP_SpellLevelCurrent[3] = 3
      • -------- W --------
      • -------- LV 2 --------
      • Set VariableSet LevelUP_Hero[4] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[4] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[4] = 4
      • Set VariableSet LevelUP_Spell[4] = Poison Strike 0Novice
      • Set VariableSet LevelUP_SpellLevel[4] = 2
      • Set VariableSet LevelUP_SpellLevelCurrent[4] = 1
      • Set VariableSet LevelUP_SpellTooltip[4] = Novice is capable of throwing a poison attack upon the target, dealing damage per second.|n|n|c0000FFFFDamage: 50|r|n|c00FF8C00Damage per second: 25|r|n|c00228B22Duration: 5|r|n|c006A5ACDCooldown: <A0BZ,Cool2>|r
      • Set VariableSet LevelUP_SpellDamage[4] = (30.00 + (10.00 x (Real((Level of LevelUP_Spell[4] for (Triggering unit))))))
      • Set VariableSet LevelUP_SpellTooltip[4] = (String((30 + (10 x (Level of LevelUP_Spell[4] for LUTech_Hero)))))
      • Set VariableSet LevelUP_SpellTooltip[4] = (String(LevelUP_SpellDamage[4]))
      • -------- LV 3 --------
      • Set VariableSet LevelUP_Hero[5] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[5] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[5] = 6
      • Set VariableSet LevelUP_Spell[5] = Poison Strike 0Novice
      • Set VariableSet LevelUP_SpellLevel[5] = 3
      • Set VariableSet LevelUP_SpellLevelCurrent[5] = 2
      • Set VariableSet LevelUP_SpellTooltip[5] = Novice is capable of throwing a poison attack upon the target, dealing damage per second.|n|n|c0000FFFFDamage: 60|r|n|c00FF8C00Damage per second: 30|r|n|c00228B22Duration: 6|r|n|c006A5ACDCooldown: <A0BZ,Cool3>|r
      • Set VariableSet LevelUP_SpellDamage[5] = (30.00 + (10.20 x (Real((Level of LevelUP_Spell[5] for (Triggering unit))))))
      • Set VariableSet LevelUP_SpellTooltip[5] = (String(LevelUP_SpellDamage[5]))
      • -------- LV 4 --------
      • Set VariableSet LevelUP_Hero[6] = |cffff0000[Novice]|r Job 0
      • Set VariableSet LevelUP_Tech[6] = Level 1 [1-100]
      • Set VariableSet LevelUP_TechLevel[6] = 8
      • Set VariableSet LevelUP_Spell[6] = Poison Strike 0Novice
      • Set VariableSet LevelUP_SpellLevel[6] = 4
      • Set VariableSet LevelUP_SpellLevelCurrent[6] = 3
  • Level Up Config
    • Events
      • Unit - A unit Gains a level
    • Conditions
      • (Hero level of (Leveling Hero)) Greater than or equal to 1
      • (Owner of (Leveling Hero)) Not equal to BRS_Owner
      • (Current research level of Level 1 [1-100] for (Owner of (Leveling Hero))) Not equal to 100
    • Actions
      • Set VariableSet LUTech_Hero = (Triggering unit)
      • Set VariableSet LUTech_HeroType = (Unit-type of LUTech_Hero)
      • Player - Set the current research level of Level 1 [1-100] to (Hero level of LUTech_Hero) for (Owner of LUTech_Hero)
      • Set VariableSet LUTech_Level = (Current research level of Level 1 [1-100] for (Owner of LUTech_Hero))
      • For each (Integer LevelUP_Index) from 1 to 100, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • LUTech_HeroType Equal to LevelUP_Hero[LevelUP_Index]
              • LUTech_Level Equal to LevelUP_TechLevel[LevelUP_Index]
              • (Level of LevelUP_Spell[LevelUP_Index] for LUTech_Hero) Equal to LevelUP_SpellLevelCurrent[LevelUP_Index]
            • Then - Actions
              • Ability - Set Extended Tooltip of LevelUP_Spell[LevelUP_Index] to LevelUP_SpellTooltip[LevelUP_Index] for level (LevelUP_SpellLevel[LevelUP_Index] - 1)
              • Unit - Set level of LevelUP_Spell[LevelUP_Index] for LUTech_Hero to LevelUP_SpellLevel[LevelUP_Index]
              • Player Group - Add (Owner of LUTech_Hero) to Map_CinematicPlayer
              • Game - Display to Map_CinematicPlayer for 4.00 seconds the text: (|cffff00ffYour skill |r + ((Tooltip of LevelUP_Spell[LevelUP_Index] for level (LevelUP_SpellLevelCurrent[LevelUP_Index] - 1)) + (|cffff00ff got upgraded to |r + ([|cff80ff80Level + ((String(LevelUP_SpellLevel[LevelUP_Index])) + |r])))))
              • Player Group - Remove (Owner of LUTech_Hero) from Map_CinematicPlayer.
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Vulture's Eye 1Archer for (Leveling Hero)) Greater than 0
        • Then - Actions
          • Player - Set the current research level of Vulture's Eye to (Level of Vulture's Eye 1Archer for (Leveling Hero)) for (Owner of (Leveling Hero))
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Steel Crow 2Archer for (Leveling Hero)) Greater than 0
        • Then - Actions
          • Player - Set the current research level of Steel Crow to (Level of Steel Crow 2Archer for (Leveling Hero)) for (Owner of (Leveling Hero))
        • Else - Actions
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
You can't initialize data like this:
  • Set VariableSet LevelUP_SpellDamage[5] = (30.00 + (10.20 x (Real((Level of LevelUP_Spell[5] for (Triggering unit))))))
There is no (Triggering unit) in that Init trigger nor would it make any sense for there to be one. You're also Setting the Tooltip three times, each time to some entirely different string. When you Set a variable you're overwriting it's value, it doesn't know about the previous value unless you incorporate that into your logic.

Anyway, the easiest way to do this is to calculate the Tooltip in a separate trigger that runs here:
  • Then - Actions
    • Trigger - Run LevelUP_Tooltip[LevelUP_Index] (ignoring conditions)
    • Unit - Set level of LevelUP_Spell[LevelUP_Index] for LUTech_Hero to LevelUP_SpellLevel[LevelUP_Index]
    • ...
Otherwise, you'll have to design a pretty elaborate string system that I think you'll hate.

Having one Trigger per Ability doesn't seem like that big of a deal, you could probably use it for other things as well.
 
Last edited:
Level 11
Joined
Dec 16, 2017
Messages
418
Can't i somehow store some data in that trigger of levelup_tooltip[index] for all of the spells so i use the same trigger for all?

Yeah, i mentioned that i used it in more cases to test the tooltips and in the trigger they are disabled so i test 1 at a time, and i didn't delete them when i pasted the trigger so all instances of it can be seen
 
Top