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

Spell Wall of Poison

Status
Not open for further replies.
Level 6
Joined
Mar 6, 2006
Messages
169
I need help making a spell that creates a wall of poison (Think firewall)

I want it to summon say.. 10 units in a row with the Disease cloud model, with immolation.


Problem is, that I have no idea of how to make the actual trigger, so far I've got:

Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Chemical Wall (Terminator)
(Level of Chemical Wall (Terminator) for (Triggering unit)) Equal to 1
Actions
For each (Integer A) from 1 to 10, do (Actions)
Loop - Actions
Set ChemPoint = (Target point of ability being cast)
Unit - Create 1 Chemical (Level 1) for (Owner of (Casting unit)) at (ChemPoint offset by (0.00, 0.00)) facing (Target point of ability being cast)


And.. that's it.
 
Level 12
Joined
Dec 10, 2008
Messages
850
First, use Trigger tags for that.

Now, that condition will bug with anything above level 1, depending on how you plan on dealing damage, you'll need to store the level in an integer variable, and refere to it when you set the level of your damage dealing ability.

You leak multiple locations when creating the unit. Offset points take a location and return a location, which leaks, Target Point of Abiltiy Being Cast will leak too, plug it.

(PS you'll get spammed about Integer A not working, propbably)
 
Level 11
Joined
May 31, 2008
Messages
698
  • PoisonWall
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to (==) Poison Wall
    • Actions
      • Set TempLoc[0] = (Position of (Triggering unit))
      • Set TempLoc[1] = (Target point of ability being cast)
      • Set TempReal[0] = (Angle from TempLoc[0] to TempLoc[1])
      • Set TempReal[1] = (TempReal[0] + 90.00)
      • Set TempLoc[2] = (TempLoc[1] offset by 500.00 towards TempReal[1] degrees)
      • Set TempReal[2] = (TempReal[1] + 180.00)
        • Do Multiple ActionsFor each (Integer A) from 1 to 10, do (Actions)
          • Loop - Actions
            • Set TempLoc[3] = (TempLoc[2] offset by ((Real((Integer A))) x 100.00) towards TempReal[2] degrees)
            • Unit - Create 1 PoisonDummy for (Owner of (Triggering unit)) at TempLoc[3] facing Default building facing (270.0) degrees
            • Custom script: call RemoveLocation(udg_TempLoc[3])
      • Custom script: call RemoveLocation(udg_TempLoc[0])
      • Custom script: call RemoveLocation(udg_TempLoc[1])
      • Custom script: call RemoveLocation(udg_TempLoc[2])
      • Custom script: call RemoveLocation(udg_TempLoc[3])
Leak-free and it works fine I tested it. Rep pls if this helped :)
 
Status
Not open for further replies.
Top