Trigger Help - Soul Rend

WuHT

New Member
Reaction score
6
So my ability is this :

Deal an AoE damage based on the # of corpses in the aoe, x 75 to only enemy units.

Code:
B Soul Rend
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to B Soul Rend 
    Actions
        Set Bsoulrender = (Target point of ability being cast)
        Set Bsoulrend = (Number of units in (Units within 250.00 of Bsoulrender matching (((Matching unit) is dead) Equal to True)))
        Unit Group - Pick every unit in (Units within 250.00 of Bsoulrender matching (((Owner of (Matching unit)) is an enemy of (Owner of (Casting unit))) Equal to True)) and do (Actions)
            Loop - Actions
                Unit - Cause (Casting unit) to damage (Picked unit), dealing (75.00 x (Real(Bsoulrend))) damage of attack type Magic and damage type Normal
        Special Effect - Create a special effect at Bsoulrender using Objects\Spawnmodels\Human\HumanLargeDeathExplode\HumanLargeDeathExplode.mdl
        Unit Group - Pick every unit in (Units within 250.00 of Bsoulrender matching (((Picked unit) is dead) Equal to True)) and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game

---------------
Err change of questoins .
This shoudl have been asked "How do i remove corpses in a specified Area" ??
My last bit removes ANY unit picked..not just the dead. My only alternative would be to create a lot of dummy units to raise dead..but that's just laggy.
 
Reaction score
107
WuHT said:
Code:
B Soul Rend
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to B Soul Rend 
    Actions
        Set Bsoulrender = (Target point of ability being cast)
        Set Bsoulrend = (Number of units in (Units within 250.00 of Bsoulrender matching (((Matching unit) is dead) Equal to True)))
        Unit Group - Pick every unit in (Units within 250.00 of Bsoulrender matching (((Owner of (Matching unit)) is an enemy of (Owner of (Casting unit))) Equal to True)) and do (Actions)
            Loop - Actions
                Unit - Cause (Casting unit) to damage (Picked unit), dealing (75.00 x (Real(Bsoulrend))) damage of attack type Magic and damage type Normal
        Special Effect - Create a special effect at Bsoulrender using Objects\Spawnmodels\Human\HumanLargeDeathExplode\HumanLargeDeathExplode.mdl
        Unit Group - Pick every unit in (Units within 250.00 of Bsoulrender matching (((Picked unit) is dead) Equal to True)) and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game

not a very efficient code.. unit groups leak so you set them into variables atleast.

Code:
Pick every unit in (Units within 250.00 of Bsoulrender matching (((Owner of (Matching unit)) is an enemy of (Owner of (Casting unit))) Equal to True))

should set that to a variable like soulRendTargets

Code:
set soulRendTargets = (Units within 250.00 of Bsoulrender matching (((Owner of (Matching unit)) is an enemy of (Owner of (Casting unit))) Equal to True))

then you can simply use:

Code:
Pick every unit in soulRendTargets and do actions

and this line can be changed since you already have all the dead units in a group just use your variable.

Code:
Unit Group - Pick every unit in (Units within 250.00 of Bsoulrender matching (((Picked unit) is dead) Equal to True)) and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game

change to:

Code:
Unit Group - Pick every unit in BsoulRend and do actions

after that just clean up your variables. other than that i dont see much else wrong with your trigger except maybe destroying the SFX after using it...
it should work fine to me... :confused:
 

WuHT

New Member
Reaction score
6
Yeah it's just a very ROUGH idea of the trigger :eek:
Still, my NEW question is HOW do i get rid of those darn corpses.
At the moment, my line of
Code:
Pick every unit in (Units within 250.00 of Bsoulrender matching (((Matching unit) is dead) Equal to True)) and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game

it removes ANY unit..not corpses. :(
 
Reaction score
107
doesnt your last unit group loop do that?

EDIT::

oh you used "picked unit" instead of "matching unit" when checking to see if they were dead or not :p

EDIT 2::

eh? that code you edited in the post above is different from the one u posted at the top?
 

WuHT

New Member
Reaction score
6
because i caught that error as well :)

Even then it removes ALL units instead of just corpses
 
Reaction score
107
i dunno... (-_-a) seriously looks fine to me...

just try using the unit group variables and see if that works? and i just noticed your variable "BsoulRend" is an integer variable not unit group XD :p
 

WuHT

New Member
Reaction score
6
yeah because thats how i store my integer value of "corpses on the group" for my multiper value for my damage.

you're telling me i should store all my "unit = dead" into a unit group and then kill the unit group ? Worth a shot i'll reply shortly

---
Works great now!!

Then again i might encoutner future problems, as the unit with soul rend is a mercenary that you can get multiple copies of..and im' hoping that multiple soul rends wont mess up :) Another problem for another day

Thank you very much!
 
Reaction score
107
it should work fine with multiple units going off at the same time since you have no waits in your trigger, although its not true MUI, its good enough (although not for some :p) the only true problem i can see with more then one going off at the same time is overlap on the corpses, where if you have more then one standing together and both cast at about the same time...

but as you say another problem for another day :p :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top