• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Spell] Rage of the Skies

Status
Not open for further replies.
Level 8
Joined
Mar 24, 2011
Messages
353
I need help to an things with my triggered spell.
oirs4.jpg
Basically the name is "Rage of the Skies", your select an greater AoE Point and basically invokes an "storm" of lightnings in area. Anyone rebember the Ult of Zeus, in Moba game SMITE?, alright is like!
If don't know and want see, look:
Ok! but i need 3 things.
- How i can detect via trigger the owner of an aura?
example, the Paladin.. he has Devotion Aura, via trigger i can detect the affecteds by aura, but how i can detect the owner of the Aura?

Basically the mode of create this spell i thinking, creater an "Dummy" in the AoE Point selected with an Aura, and all affected by the Aura taked damage over time per pulse of lightning. BUT the damage is based in the atribute INT (Inteligence) of caster. (alright the dummy can be an "Hero Dummy" and i can when the caster cast the spell puts the same Int of Cast in Dummy via trigger.. BUT to cause damage i need detect the owner of aura to calculate the damage.
- Has an other mode of maker this spell, thats i don't know?
- Ps: i put an aura.. Because the "aura" thats i put dummy to cast the spell cause "movement speed slow"

PS: if possible need is Trigger! because i don't know absolutelly anything of jazz or like.
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
Here is how you should try to tackle it.

You'll need to create 3 abilities. The cast of the spell. The slow aura for the dummy that slows however much you want, and the Fake Chain Lightning that deals no damage and does not bounce.



  • ROTS Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to ROTS
    • Actions
      • Set ROTS_MaxIndex = (ROTS_MaxIndex + 1)
      • Set ROTS_Caster[ROTS_MaxIndex] = (Triggering unit)
      • Set TempPoint = Position of ROTS_Caster[ROTS_MaxIndex]
      • Unit - Create 1 Dummy for (Owner of ROTS_Caster[ROTS_MaxIndex]) at TempPoint facing Default building facing degrees
      • Unit - Add SlowAura to ROTS_Dummy[ROTS_MaxIndex]
      • Unit - Add FakeChainLightning to ROTS_Dummy[ROTS_MaxIndex]
      • Set ROTS_Dummy[ROTS_MaxIndex] = (Last created unit)
      • Set ROTS_Duration[ROTS_MaxIndex] = 5.00 // This is how long it lasts
      • Set ROTS_TimeOut[ROTS_MaxIndex] = 0.00 // This makes it so it damages on cast
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ROTS_MaxIndex Equal to 1
        • Then - Actions
          • Trigger - Turn on ROTS Loop <gen>
        • Else - Actions
  • Custom script: call RemoveLocation(udg_TempPoint)
  • ROTS Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer TempInteger) from 1 to ROTS_MaxIndex, do (Actions)
        • Loop - Actions
          • Set ROTS_TimeOut[TempInteger] = (ROTS_TimeOut[TempInteger] - 0.04)
          • Set ROTS_Duration[TempInteger] = (ROTS_Duration[TempInteger] - 0.04)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ROTS_TimeOut[TempInteger] Less than or equal to 0.00
            • Then - Actions
              • Set TempPoint = (Position of ROTS_Dummy[TempInteger])
              • Set TempGroup = (Units within 500.00 of TempPoint) // How big of an AOE to search in.
              • Unit Group - Pick every unit in TempGroup and do (Actions)
                • Loop - Actions
                  • Set TempUnit = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (TempUnit belongs to an enemy of (Owner of ROTS_Caster[TempInteger])) Equal to True
                      • (TempUnit is Magic Immune) Equal to False //Put any conditions you want to filter by here.
                    • Then - Actions
                      • Unit - Order ROTS_Dummy[TempInteger] to Orc Far Seer - Chain Lightning TempUnit //This is so we get a lightning effect.
                      • Unit - Cause ROTS_Dummy[TempInteger] to damage TempUnit, dealing (Real((Intelligence of ROTS_Caster[TempInteger] (Exclude bonuses)))) damage of attack type Spells and damage type Normal
                    • Else - Actions
              • Set ROTS_TimeOut[TempInteger] = 1.00 // Here you reset how long until the next burst of dmg. Currently its every second.
              • Custom script: call DestroyGroup(udg_TempGroup)
              • Custom script: call RemoveLocation(udg_TempPoint)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ROTS_Duration[TempInteger] Less than or equal to 0.00
            • Then - Actions
              • Unit - Kill ROTS_Dummy[TempInteger]
              • Set ROTS_Caster[TempInteger] = ROTS_Caster[ROTS_MaxIndex]
              • Set ROTS_Dummy[TempInteger] = ROTS_Dummy[ROTS_MaxIndex]
              • Set ROTS_TimeOut[TempInteger] = ROTS_TimeOut[ROTS_MaxIndex]
              • Set ROTS_Duration[TempInteger] = ROTS_Duration[ROTS_MaxIndex]
              • Set TempInteger = (TempInteger - 1)
              • Set ROTS_MaxIndex = (ROTS_MaxIndex - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ROTS_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
 
Status
Not open for further replies.
Top