Ideas on how to make this spell MUI

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.)
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)
 

Arkan

Nobody rides for free
Reaction score
92
The most common way is to store the caster using a local handle vars system such as KaTTanas or CSCache. You might wanna learn more about JASS before taking on those systems though.
 
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