Issuing order isn't working

Light Alkmst

New Member
Reaction score
20
My trouble is trying to get a dummy unit to use a custom Fan of Knives. The trouble is, I already have a non-hero version of it, and I give it to the dummy. The ObjectMerger has already executed. I can't figure it out. :banghead:

JASS:

    scope DartSpray
        globals
            private constant integer SPELL_ID = 'A006'
            private constant integer DUMMY_SPELL = 'A008'
        endglobals
        
        // //! external ObjectMerger w3a A006 A008 aher 0
        
        private function Conditions takes nothing returns boolean
            return GetSpellAbilityId() == SPELL_ID
        endfunction
        
        private function Actions takes nothing returns nothing
            local unit u = GetTriggerUnit()
            local player p = GetTriggerPlayer()
            local integer lvl = GetUnitAbilityLevel(u, SPELL_ID)
            local integer c = 0
            local unit d
            
            loop
                exitwhen GetMetal(u) == 1
                
                set d = CreateUnit(p, DUMMY_ID, GetUnitX(u), GetUnitY(u), GetUnitFacing(u))
                call UnitAddAbility(d, DUMMY_SPELL)
                call SetUnitAbilityLevel(d, DUMMY_SPELL, lvl)
                if (IssueImmediateOrder(d, "fanofknives")) then  // The trouble is here <==
                    debug call BJDebugMsg("Darts are ordered")
                else
                    debug call BJDebugMsg("Darts are not ordered")
                endif
                call UnitApplyTimedLife(d, '0000', .25)
                call TriggerSleepAction(.5)
                
                call SetMetal(u, GetMetal(u) - 1)
            endloop
            
            set u = null
            set p = null
            set d = null
        endfunction
        
        function DartSpray takes nothing returns nothing
            local trigger t = CreateTrigger()
            call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT)
            call TriggerAddCondition(t, Condition(function Conditions))
            call TriggerAddAction(t, function Actions)
        endfunction
    endscope


I keep recieving my error message, and there is no cast, but the secondary effect is still happening. If there are leaks, feel free to tell me. The inefficient programming, on the other hand, is purely intentional.
 

Light Alkmst

New Member
Reaction score
20
If you don't mean the dummy unit not dealing damage through the FoK and the error message popping up and the FoK graphics not displaying, then there are no errors. I did state them all didn't I?
 

Light Alkmst

New Member
Reaction score
20
It's based off of Fan of Knives, and I've checked the order string in the spell itself, and AFAIK, the only way to change the order string is if it's based off of Channel.
 

Light Alkmst

New Member
Reaction score
20
I'll try it, but this is the second time I've gone through this (it was different last time), other people don't have this problem, and sticking all of my custom skills on the dummy unit would probably make it lag every time one is needed...
 

WolfieeifloW

WEHZ Helper
Reaction score
372
So it says it didn't cast but it casts anyways?
Does the dummy even get ordered because the IssueImmeditateOrder() is in an if statement :confused: ?
 

Light Alkmst

New Member
Reaction score
20
The trigger sends the error message, and the dummy spells don't cast. The IssueOrder functions return boolean so that you could check if it ran. I've done the error messages this way before. The fact it is in the if statement doesn't make it not run.
 
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