Raising Corpses and LS Glitch.

BarzahdX

Active Member
Reaction score
18
Technically there is a lot more to the ability than that.

Realistically you shouldn't need them to even be ghouls, just have death strike a passive ability the "locusts" have, and add my trigger to your map. Then when they kill a unit they should stop acting completely, playing the "stand" animation.

So in a nutshell: Yes, that's all you need to do. :) Goodluck!
 

SanKakU

Member
Reaction score
21
you want me to manually add your gui trigger to my map? lol, forget it. i'll just write my own.
edit: if you convert your trigger to custom text i'll put it in. i don't like the thought of making gui variables and pulling down menus and stuff to get that.
edit: hey how many max swarm units per target do you have?

edit: ok, well...i'm testing it using somewhat different events and conditions, but i'm pretty much getting the same results you are, i think.
i debugged it and confirmed that the locusts only kill THREE enemies every time. that's one each.
since the locusts are supposed to return the hp they eat to the hero, i suppose that once the number of enemies that the locusts have attacked that have died has reached the total number of locusts...that is precisely when they return to the hero, and not a moment sooner. and at that time, duration finished or not, the spell is effectively finished. i think this is the way locust swarm normally works.

i think what we'll need to do is perhaps count up to three the number of times the units are dying during the locust swarm, and then have a dummy keep up the locust swarm. or just have a dummy cast locust swarm from the beginning. since you're counting in order to cast locust swarm repeatedly...you can also add the hp to your hero manually at that time. of course, you'd also want some timers running to make sure the duration doesn't get out of hand.

it may not matter much, but if you're curious, i converted gui into jass and edited it, and this is the code i used: but like i said, i got the same results as you. just looking at it might give you a better idea of what i meant earlier when i talked about debugging.

the howdy calls showed me how often the units were killing.
JASS:

function Trig_Untitled_Trigger_007_Copy_Conditions takes nothing returns boolean
    if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'hmpr' ) ) then
        return false
    endif
    return true
endfunction


function Trig_Untitled_Trigger_007_Copy_Actions takes nothing returns nothing
local unit u =CreateUnit(GetOwningPlayer(GetTriggerUnit()),'e000', GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()),270.00)
if GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) < ( GetUnitStateSwap(UNIT_STATE_MAX_LIFE, GetOrderTargetUnit()) * ( 1 / 2.00 ) ) then
call BJDebugMsg("howdy!")
call TAF_UDTN(u,GetOrderTargetUnit(),0.00,50000.00,false)
endif
set u = null
endfunction

//===========================================================================
function InitTrig_Untitled_Trigger_007_Copy takes nothing returns nothing
    set gg_trg_Untitled_Trigger_007_Copy = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Untitled_Trigger_007_Copy, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
    call TriggerAddCondition( gg_trg_Untitled_Trigger_007_Copy, Condition( function Trig_Untitled_Trigger_007_Copy_Conditions ) )
    call TriggerAddAction( gg_trg_Untitled_Trigger_007_Copy, function Trig_Untitled_Trigger_007_Copy_Actions )
endfunction

oh yeah...if you wanted to import this trigger, you better replace the call TAF_UDTN( because it's from the TAF library, which you wouldn't have as it's my map's personal library. kinda like how i wouldn't have your gui variables. and in case you don't know...e000 is a dummy unit and hmpr is the locust unit(priest).

edit: i'm actually glad that you brought this up. i also previously ran into this problem but couldn't figure out what was going on. nice to actually try to tackle it and seem to come up with an answer to what's going on.

SO WHAT I WAS TRYING TO SAY IS...although you said having your trigger on the ghouls stop attacking...my suspicion is that they would stop attacking anyway after the first three units they were attacking died.
if this is incorrect, let me know. but as far as i know i should've duplicated what you did just fine. if you turn off that trigger and your 3 ghouls actually keep attacking more and more units after the first three died i would be surprised.

another possible fix besides the suggestion i just made might be to simply lower the cooldown and especially the mana cost and duration. for example if it cost 150, change to 50 mana, and if 30 duration, change to 10 duration. or maybe 5 seconds duration and 25 mana, idk.

it doesn't sound like it'll be a good idea for the hero with the death strike ability...it'd be too cheap i think? sounds like you want a duration of like 45 seconds or so. in that case i would recommend my first suggestion of making a dummy unit cast locust swarm over and over again for 45 seconds or whatever your duration is.

edit: nevermind man, forget it...locust swarm units are so retarded. i really don't get them sometimes. even without any triggers on at all they'll run off yonder for no apparent reason sometimes. it's crazy, i say. just forget about the little locusts, i guess. unless someone wants to debug their way into understanding what goes through their buggy minds.
 

BarzahdX

Active Member
Reaction score
18
Lol, wow! I was very surprised to see this large post! I really appreciate all your effort, and you found the answer(or our supposed answer,) which is what I was really looking for.

I'll do some extra testing to see if they glitch out even without the trigger on--they didn't for the duration I was configuring it.

The trigger fix is certainly possible, though I'd use a trigger to sense when they kill a unit to recast it, rather than a timer--save some lag, Y'know?

I don't believe Death Strike to be overpowered, it's good enough to be desirable, but not too good to be a huge gamechanger. I'm comfortable at where it sits for now.


EDIT: After turning off the trigger, they no longer freeze up, they function normally and properly. With that being said I'm just going to take it out of my ability--though where does that leave us on the diagnosis of the problem?
 

SanKakU

Member
Reaction score
21
order:
(null)
852557
order:
undefend
852056
target order:
(null)
852558
target order:
attackonce
851985

i decided to try to do some debuggin.
i thought for sure i saw 'defend' the first time i tested it but my eyes might've been playing tricks on me, it could've been undefend instead. at any rate it would've onlyhappened ONCE if i had seen it, which wouldn't make sense considering there are 3 locusts. so it should have been undefend.
i think undefend happens a total of three times. i think to fix this bug we need to order the unit defending with the dummy unit id to defend again after it decides to undefend. that should solve the problem, i guess.
edit: if that doesn't work, i suggest using one of those 6 digit integer ids for orderids. something like that. let me know if you can get it to work like that, because i'm interested in this, too.
 

BarzahdX

Active Member
Reaction score
18
Sorry for the delayed reply, I've just stopped tinkering with it, I was losing patience and everything you said in your last post made no sense to me. :) Sorry. Goodluck with finding your solution, but I'm done.
 
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