• 🏆 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!

Shadowraze spell

Status
Not open for further replies.

nGy

nGy

Level 11
Joined
Apr 15, 2011
Messages
123
Here's a little testmap. The Skin was made by zadelim, so make sure you give credits to him if you use it. The shadowraze model was made by me ages ago, you can use it if you want. For the triggers, just copy the "Shadowraze" category and the three abilities "Shadowraze (Q) (200/Hero-Ability)", "Shadowraze (W) (450)" and "Shadowraze (E) (700)" into your map.

P.S.: Please post in the World Editor Help Zone forum next time, if you want someone to create a spell for you.

Edit: mckill is right, so i merged the triggers.

  • Learn Shadowraze
    • Events
      • Unit - A unit learns an ability
    • Conditions
      • (Learned Hero Skill) Equal to Shadowraze (Q) (200/Hero-Ability)
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If-Conditions
          • (Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit)) Equal to 1
        • Then-Actions
          • Unit - Add Shadowraze (E) (700) to (Triggering unit)
          • Unit - Add Shadowraze (W) (450) to (Triggering unit)
        • Else-Actions
          • Unit - Set level of Shadowraze (E) (700) for (Triggering unit) to (Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit))
          • Unit - Set level of Shadowraze (W) (450) for (Triggering unit) to (Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit))
  • Cast Shadowraze
    • Events
      • Unit - A unit Startet the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Shadowraze (Q) (200/Hero-Ability)
          • (Ability being cast) Equal to Shadowraze (W) (450)
          • (Ability being cast) Equal to Shadowraze (E) (700)
    • Actions
      • Set tempPt1 = (Position of (Triggering unit))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If-Conditions
          • (Ability being cast) Equal to Shadowraze (Q) (200/Hero-Ability)
        • Then-Actions
          • Set tempPt2 = (tempPt1 offset by 200.00 towards (Facing of (Triggering unit)) degrees)
        • Else-Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If-Conditions
              • (Ability being cast) Equal to Shadowraze (W) (450)
            • Then-Actions
              • Set tempPt2 = (tempPt1 offset by 450.00 towards (Facing of (Triggering unit)) degrees)
            • Else-Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If-Conditions
                  • (Ability being cast) Equal to Shadowraze (E) (700)
                • Then-Actions
                  • Set tempPt2 = (tempPt1 offset by 700.00 towards (Facing of (Triggering unit)) degrees)
                • Else-Actions
      • Special Effect - Create a special effect at tempPt2 using Shadowraze_b.mdx
      • Special Effect - Destroy (Last created special effect)
      • Set tempUnGrp = (Units within 250.00 of tempPt2 matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Triggering player)) Equal to True)))
      • Unit Group- Pick every unit in tempUnGrp and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((Real((Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit)))) x 75.00) damage of attack type Spells and damage type Normal
      • Custom script: call DestroyGroup ( udg_tempUnGrp )
      • Custom script: call RemoveLocation ( udg_tempPt1 )
      • Custom script: call RemoveLocation ( udg_tempPt2 )
 
Last edited:
Level 29
Joined
Mar 10, 2009
Messages
5,016
Compress your trigger;
  • ShadAll
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Shadowraze (Q) (200/Hero-Ability)
          • (Ability being cast) Equal to Shadowraze (W) (450)
          • (Ability being cast) Equal to Shadowraze (E) (700)
    • Actions
      • Set tempPt1 = (Position of (Triggering unit))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Shadowraze (Q) (200/Hero-Ability)
        • Then - Actions
          • Set tempPt2 = (tempPt1 offset by 200.00 towards (Facing of (Triggering unit)) degrees)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Ability being cast) Equal to Shadowraze (W) (450)
            • Then - Actions
              • Set tempPt2 = (tempPt1 offset by 450.00 towards (Facing of (Triggering unit)) degrees)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Ability being cast) Equal to Shadowraze (E) (700)
                • Then - Actions
                  • Set tempPt2 = (tempPt1 offset by 700.00 towards (Facing of (Triggering unit)) degrees)
                • Else - Actions
      • Set tempUnGrp = (Units within 250.00 of tempPt2 matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Triggering player)) Equal to True)))
      • Special Effect - Create a special effect at tempPt2 using Shadowraze_b.mdx
      • Special Effect - Destroy (Last created special effect)
      • Unit Group - Pick every unit in tempUnGrp and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((Real((Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit)))) x 75.00) damage of attack type Spells and damage type Normal
      • Custom script: call DestroyGroup ( udg_tempUnGrp )
      • Custom script: call RemoveLocation ( udg_tempPt1 )
      • Custom script: call RemoveLocation ( udg_tempPt2 )
 

nGy

nGy

Level 11
Joined
Apr 15, 2011
Messages
123
Basically exchange this:
  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((Real((Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit)))) x 75.00) damage of attack type Spells and damage type Normal
with that:
  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((Real(((Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit)) x (Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit))))) x 100.00) damage of attack type Spells and damage type Normal
In that case I'd actually recommend using a little custom script instead, but as you didn't want any Jass involved, I suppose, this is the way to go. (You could, however temporarily store the "Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit)" into a variable and then multiply that variable with itself for a slightly better outcome)

Edit: Sorry, made a stupid mistake there. It should actually be:
  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((Power(2.00, (Real((Level of Shadowraze (Q) (200/Hero-Ability) for (Triggering unit)))))) x 100.00) damage of attack type Spells and damage type Normal
instead.
 
Last edited:
Status
Not open for further replies.
Top