gref
New Member
- Reaction score
- 33
I'm currently going through the spells in my map and changing the original basic triggers, in GUI to Jass with MUI.
This spell is cast in an aoe on units, then anyone who comes near any of the units with the buff while the duration has not expired, will get a dummy version of the spell cast on them (which is the same but with a shorter duration)
Basically its like a fire that spreads between units.
My problem is that the caster is the one that does damage to the units, and is stored in a global variable, and I don't know how to make each instance of the buff distinct for the correct caster.
Could anyone with a suggestion please help?
Heres my code:
(Please don't worry about leaks. I get rid of them properly in the MUI stage.)
It has occurred to me that I could make the unit with the buff each time, the casting unit, but then the original caster would not get bounty etc.
This spell is cast in an aoe on units, then anyone who comes near any of the units with the buff while the duration has not expired, will get a dummy version of the spell cast on them (which is the same but with a shorter duration)
Basically its like a fire that spreads between units.
My problem is that the caster is the one that does damage to the units, and is stored in a global variable, and I don't know how to make each instance of the buff distinct for the correct caster.
Could anyone with a suggestion please help?
Heres my code:
(Please don't worry about leaks. I get rid of them properly in the MUI stage.)
PHP:
Immolate Cast
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to Immolate (ODW)
Actions
Set ImmolateCaster = (Casting unit)
It has occurred to me that I could make the unit with the buff each time, the casting unit, but then the original caster would not get bounty etc.
PHP:
Immolate
Events
Time - Every 1.00 seconds of game time
Conditions
Actions
Set TInt = 0
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) has buff Immolation (ODW)) Equal to True)) and do (Actions)
Loop - Actions
Set TInt = (TInt + 1)
Set ImmolateUnitArray[TInt] = (Picked unit)
For each (Integer A) from 1 to TInt, do (Actions)
Loop - Actions
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units within 200.00 of (Position of ImmolateUnitArray[(Integer A)]) matching ((Matching unit) Not equal to ImmolateUnitArray[(Integer A)])) and do (Actions)
Loop - Actions
Set Position[1] = (Position of (Picked unit))
Unit - Create 1 Dummy for (Owner of ImmolateCaster) at Position[1] facing Default building facing degrees
Custom script: call RemoveLocation(udg_Position[1])
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Unit - Add Immolate (ODW)(DUMMY) to (Last created unit)
Unit - Set level of Immolate (ODW)(DUMMY) for (Last created unit) to (Level of Immolate (ODW) for ImmolateCaster)
Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Picked unit)