Since the patch, there has been a problem in my TD where trigger events don't consistently run when they should.
If I spawn a full set of mobs for each lane, with nothing else, it works fine. If a player has built a maze, as mobs attempt to navigate it, trigger events will stop working. In other words, the more going on, the less trigger events fire.
All unit abilities work fine. This did not happen before the patch.
Does anyone know what could be causing this, and how to fix it?
There is simply no reason for the trigger not to run. And of all the times i have heard this bug happen in that thread, is when stuff is going on in the map, much like the situation you are describing right now, which leads me to believe the engine prioritizes certain stuff .
Thats my thoughts, you are vexal and u dont make bad triggers :P . You gotta wait for blizzard to fix/report this. Im going to also
There is simply no reason for the trigger not to run. And of all the
times i have heard this bug happen in that thread, is when stuff is
going on in the map, much like the situation you are describing right
now, which leads me to believe the engine prioritizes certain stuff .
Thats my thoughts, you are vexal and u dont make bad triggers :P . You
gotta wait for blizzard to fix/report this. Im going to also
.... umm how about you show us your triggers before saying the editor is broken.... IMO your logic is broken... I have never had an event "not fire" that was correctly written to fire.... there has always been a good reason
show us your triggers.... screen shots and give us a better explanation of what is happening and spose to happen
from your description of your problem alone... I have concluded you have no idea what your doing
when ever you are in dbout ... add hella "text message to debug window" these help alot...
i have also come to the conclusion that soulcarverr is one angry guy, Telling me my logic broken?, post triggers? ,telling me i have no idea what im doing ? , First of all, this is a trigger i got from onetwos tutorial on hero revive ( with items part excluded because blizzard just fixed the item bug with the latest patch) , secondly the trigger is posted up on the link, but ofcourse you didnt check it, you rather post non sense about me. I have also described the bug, I said it happens when theres stuff going on ( from the replays i have seen of it happening) . As they are posted up on the site for my map , take a look bug if you want http://www.zealotfrenzy.com/viewtopic.php?f=22&t=1005
Again, please do the slightest bit of research before posting a QQ reply . The trigger was posted up 2 days ago in the thread i linked.
meh I read that other topic and the trigger posted there.... doesnt look right to me...
Your description is lacking if you really want help
Take a screen shot of the gui trigger... and Ill look at there... in that posted trigger on the other topic its hard to tell. But theres a condition in it that even keuken had asked you a quetion regarding and you didnt answer it
your the one qqing about the editor not running your trigger right... when i garentee... its your trigger that isnt right.
have you even added a "text message to debug window" output to see if the event even fires.....
this is the kinda stuff you should let people know if you really want help
from your description i cant tell if you have even tried trouble shooting it... it looks more like youve just gotten pissed at the editor...
meh I read that other topic and the trigger posted there.... doesnt look right to me...
Your description is lacking if you really want help
Take a screen shot of the gui trigger... and Ill look at there... in that posted trigger on the other topic its hard to tell. But theres a condition in it that even OneTwo had asked you a quetion regarding and you didnt answer it
your the one qqing about the editor not running your trigger right... when i garentee... its your trigger that isnt right.
what non sense are you speaking, I spoke to onetwo personally about the hero revive, and posted the exact trigger that handled it to him ....... He can testify right here that i posted it up for him to see. He also is confused about it.
you want a screenshot? its the same thing i posted up...........
its not checking an upgrade, thats the name of the actual unit itself ( if you enter my map on bnet, you would see its actually called this) , the trigger checks to see if theres atleast 1 ultility /upgrade drone alive for the player, then gives the okay .
Now if you read the other thread, i pin pointed that its not this, because when i watched the replays of the bug happening, The first part before the wait did not show ( check the replay posted of this), The first part displays a text to all about the hero will be reviving in 35 seconds. Then the wait happens.
That initial text display before the wait does not even show, So that clearly indicates to me the "if condition", has nothing to do with it .
And again, this bug happens 1% of the time. 99% of the time it works correctly. I ask you to check the replay of the bug happening, Because explain this to me, How does every hero in the game revive properly with this trigger, and then the Rarest of rare moments happen where the trigger simply refuses to fire. link to the replays http://www.zealotfrenzy.com/viewtopic.php?f=22&t=1005 .
Explain to me why heroes revive properly, and then this shit happens..........
why are you checking to see if another unit exists to revive a hero? makes no sense to me in current context
why not use unit variables..... such as an array of each players hero
I spose this work some of the time but not others... hmm...
well on your condition about the "ungrade / utility drone" you check to see if they have == 1.... is it possible they may have some how gotten more then 1.... try "greater then or equal to" 1
ah yeah.. it wasnt onetwo... it was kueken i edited the post... why get so defensive man trying to help you...
cant look at replays at the moment.
when it does occur ... are the count down windows created or no?
for question 1) i need to do this check , because lets say a player looses his base, in my map, once you loose your base, you are out , meaning that everything you own gets destroyed. So because of this, Lets say a player is defending his base with his hero, the hero then dies and begins the countdown, Now lets say while you are waiting for your hero to revive, your main base dies.... As i mentioned, once you loose your base, you are whiped clean from the map . So thats there to stop the hero from reviving since the drone will no longer exist.
at question 2 ) The upgrade /ulity drone is invunerable and theres no way possible to get any more of them ( the drone contains all the unit upgrades and does the healing of heroes when they come close) . There is only 1 of them each per player, and theres no way possible to get any more of them.
why not use unit variables? I AM , triggering unit is a unit variable....... called "dieinghero".
Just tell me you dont know why either instead of wasting my time with this . Theres nothing wrong with the trigger . And as i said, it simply refuses to fire 100% of the time, much like the problem vexal has mentioned.
a couple things...
why are you checking to see if another unit exists to revive a hero? makes no sense to me in current context
why not use unit variables..... such as an array of each players hero
I spose this work some of the time but not others... hmm...
well on your condition about the "ungrade / utility drone" you check to see if they have == 1.... is it possible they may have some how gotten more then 1.... try "greater then or equal to" 1
ah yeah.. it wasnt onetwo... it was kueken i edited the post... why get so defensive man trying to help you...
cant look at replays at the moment.
when it does occur ... are the count down windows created or no?
no countdown window shows, which is a valuable piece of information, because it shows the "if" has nothing to do with the failure of the trigger.
well too test further i would try to make this happen
id take the waits out of the trigger
then id create a trigger that kills the unit when i click on it....
then id kill it a lot for several hours straight....
its possible that theres a specific spell/ability thats causing the problem.....
in regards to unit variables....
I would have a Global unit array variable specifically made to hold each players heros.... I would use this when refering to which unit to revive....
I would also have a Global array variable that is a boolean... called "PlayerBaseAlive" ... rather then using a unit .... for that condition...
do you have any other triggers that use the "any unit dies" event? I have not had any trouble with this event in the past.... or any time I have had trouble with it I have found errors in my logic
Rollback Post to RevisionRollBack
Skype
KageNinpo = SN
My Libraries
DialogLeaderboard & TeamSort
My Projects
SPACEWAR Tribute
Infinite TD
The problem is with any trigger with an event. I tested extensively.
Actions appear to work correctly.
An example: "Unit enters region" "Kill triggering unit"
Does not always work.
If you'd like, I can post details of the testing I did. But I do not see
the point, as it seems to be a general issue.
Vexal I have never had a problem with this logic...... and you guys are the only ones claiming there is a problem with it.... would love to hear serious's opinion on it
Rollback Post to RevisionRollBack
Skype
KageNinpo = SN
My Libraries
DialogLeaderboard & TeamSort
My Projects
SPACEWAR Tribute
Infinite TD
if you used those two global variables I was talking about you can do it like this...
global variables
I would have a Global unit array variable specifically made to hold each players heros.... I would use this when refering to which unit to revive....
I would also have a Global array variable that is a boolean... called "PlayerBaseAlive" ... rather then using a unit .... for that condition...
PlayerBaseLocation( type: point array: [0-15]) this is the respawn point for players
im writing the trigger plz wait
Dead Check (standard trigger)
event
Periodic 1 second
actions
pick each player in all players
if
condition
and
picked player has left game = false
PlayerBaseAlive[picked player] = true
PlayerHero[picked player] != no unit
IsAlive(PlayerHero[picked player] )= true
then
Revive Action(picked player,30)
Revive Action (action, threaded,return type = none)
Parameters
Player( type: int)
TempWait ( type: real)
Variables
Actions
create timer dialogs
wait (TempWait)
if
condition
PlayerBaseAlive[player] = true
then
Revive PlayerHero[player] at PlayerBaseLocation[Player]
thats how I would do it..... And I know it would work 100%
this would require you to store thier picked hero into (PlayerHero[triggering player])
you would need another trigger that sets PlayerBaseAlive[player] = false when a player loses their base
You should really really try to avoid the "any unit dies event".... if you dont mind my asking... how many different triggers do you have using this event? If you have alot of triggers using this event they could be convicting with eachother if its over loading the trigger system.
Ill leave it at that I guess...... sorry if I wasnt any help
why am i to change it to global variable when a Local variable is just fine for it ? (trigging unit is a local unit variable) , And as i said, not even the first bit of text (the first line of the trigger) shows when this chooses to happen . So it does not matter what you want to put into the code, the event of the trigger isnt firing 100% of the time. When it does fire, all the actions i have work correctly.
The problem is either the event " a unit dies" does not work 100% of the time. Or theres a load shedding taking place.
A quick test did not show any error with the events. I spawned 1000 units and killed them in rapid succession as well as all at once. Every time I tried, the event reacted properly and registered every single one of the 1000 units dying.
Spawning 1000 units and killing them at once causes serious lag issues on my pc, so you could say there is "much stuff going on" :p
@ Jinxxx: Try to pinpoint the exact error, so we can recreate it. Until we have a clean testmap showing this issue in a controlled environment, this is all nothing but speculation. There could be something wrong with the events. It could also be your trigger, something we did not see or some interaction with other triggers we are not aware of or any number of other reasons (morphing in a unit without a death time, just as a quick example which comes to my mind - I am sure there could be tons of other issues)
why am i to change it to global variable when a Local variable is just
fine for it ? (trigging unit is a local unit variable) , And as i said,
not even the first bit of text (the first line of the trigger) shows
when this chooses to happen . So it does not matter what you want to put
into the code, the event of the trigger isnt firing 100% of the time.
When it does fire, all the actions i have work correctly.
The problem is either the event " a unit dies" does not work 100% of the
time. Or theres a load shedding taking place.
because switching to a global array of units that you want to run conditions against.. when there no "triggering unit" available would fix your problem... and that was your original goal wasnt it?
it would specifically prevent the game from ... skipping the event as you say
but its very possible there is a data based reason the unit isnt truely dying ... if its coming from specific effects occuring in the game
for this "load shedding" to truely occur... which im not entirely sure even exists ... the game would have to be lagged to a snails pace and players would be dropping...
Since the patch, there has been a problem in my TD where trigger events don't consistently run when they should.
If I spawn a full set of mobs for each lane, with nothing else, it works fine. If a player has built a maze, as mobs attempt to navigate it, trigger events will stop working. In other words, the more going on, the less trigger events fire.
All unit abilities work fine. This did not happen before the patch.
Does anyone know what could be causing this, and how to fix it?
@Vexal: Go
First things first, did you enable your trigger debugger? It might help you catch any failing triggers.
i have come to the conclusion that sc2 does load shedding , check this thread i made http://forums.sc2mapster.com/development/data/17467-effect-issue-order/
There is simply no reason for the trigger not to run. And of all the times i have heard this bug happen in that thread, is when stuff is going on in the map, much like the situation you are describing right now, which leads me to believe the engine prioritizes certain stuff .
Thats my thoughts, you are vexal and u dont make bad triggers :P . You gotta wait for blizzard to fix/report this. Im going to also
.... umm how about you show us your triggers before saying the editor is broken.... IMO your logic is broken... I have never had an event "not fire" that was correctly written to fire.... there has always been a good reason
show us your triggers.... screen shots and give us a better explanation of what is happening and spose to happen
from your description of your problem alone... I have concluded you have no idea what your doing
when ever you are in dbout ... add hella "text message to debug window" these help alot...
@SouLCarveRR: Go
i have also come to the conclusion that soulcarverr is one angry guy, Telling me my logic broken?, post triggers? ,telling me i have no idea what im doing ? , First of all, this is a trigger i got from onetwos tutorial on hero revive ( with items part excluded because blizzard just fixed the item bug with the latest patch) , secondly the trigger is posted up on the link, but ofcourse you didnt check it, you rather post non sense about me. I have also described the bug, I said it happens when theres stuff going on ( from the replays i have seen of it happening) . As they are posted up on the site for my map , take a look bug if you want http://www.zealotfrenzy.com/viewtopic.php?f=22&t=1005
Again, please do the slightest bit of research before posting a QQ reply . The trigger was posted up 2 days ago in the thread i linked.
meh I read that other topic and the trigger posted there.... doesnt look right to me...
have you even added a "text message to debug window" output to see if the event even fires.....
this is the kinda stuff you should let people know if you really want help
from your description i cant tell if you have even tried trouble shooting it... it looks more like youve just gotten pissed at the editor...
meh sorry if i sound like an angry person.....
say whats the problem then for me, cause i would really like to fix it.
@Jinxxx123: Go
i edited by previous post if your waitng for an definiate answer from me
did you say you had video examples of this happening in it......
seems odd to me how you have conditions checking upgrades for a revive.....
@SouLCarveRR: Go
what non sense are
what non sense are you speaking, I spoke to onetwo personally about the hero revive, and posted the exact trigger that handled it to him ....... He can testify right here that i posted it up for him to see. He also is confused about it.
you want a screenshot? its the same thing i posted up...........
@SouLCarveRR: Go
its not checking an upgrade, thats the name of the actual unit itself ( if you enter my map on bnet, you would see its actually called this) , the trigger checks to see if theres atleast 1 ultility /upgrade drone alive for the player, then gives the okay .
Now if you read the other thread, i pin pointed that its not this, because when i watched the replays of the bug happening, The first part before the wait did not show ( check the replay posted of this), The first part displays a text to all about the hero will be reviving in 35 seconds. Then the wait happens.
That initial text display before the wait does not even show, So that clearly indicates to me the "if condition", has nothing to do with it .
And again, this bug happens 1% of the time. 99% of the time it works correctly. I ask you to check the replay of the bug happening, Because explain this to me, How does every hero in the game revive properly with this trigger, and then the Rarest of rare moments happen where the trigger simply refuses to fire. link to the replays http://www.zealotfrenzy.com/viewtopic.php?f=22&t=1005 .
Explain to me why heroes revive properly, and then this shit happens..........
why not use unit variables...
a couple things...
I spose this work some of the time but not others... hmm...
well on your condition about the "ungrade / utility drone" you check to see if they have == 1.... is it possible they may have some how gotten more then 1.... try "greater then or equal to" 1
ah yeah.. it wasnt onetwo... it was kueken i edited the post... why get so defensive man trying to help you...
cant look at replays at the moment.
when it does occur ... are the count down windows created or no?
for question 1) i need to do this check , because lets say a player looses his base, in my map, once you loose your base, you are out , meaning that everything you own gets destroyed. So because of this, Lets say a player is defending his base with his hero, the hero then dies and begins the countdown, Now lets say while you are waiting for your hero to revive, your main base dies.... As i mentioned, once you loose your base, you are whiped clean from the map . So thats there to stop the hero from reviving since the drone will no longer exist.
at question 2 ) The upgrade /ulity drone is invunerable and theres no way possible to get any more of them ( the drone contains all the unit upgrades and does the healing of heroes when they come close) . There is only 1 of them each per player, and theres no way possible to get any more of them.
why not use unit variables? I AM , triggering unit is a unit variable....... called "dieinghero".
Just tell me you dont know why either instead of wasting my time with this . Theres nothing wrong with the trigger . And as i said, it simply refuses to fire 100% of the time, much like the problem vexal has mentioned.
@SouLCarveRR: Go
no countdown window shows, which is a valuable piece of information, because it shows the "if" has nothing to do with the failure of the trigger.
The problem is with any trigger with an event. I tested extensively. Actions appear to work correctly.
An example: "Unit enters region" "Kill triggering unit"
Does not always work.
If you'd like, I can post details of the testing I did. But I do not see the point, as it seems to be a general issue.
well too test further i would try to make this happen
then id kill it a lot for several hours straight....
its possible that theres a specific spell/ability thats causing the problem.....
in regards to unit variables....
I would have a Global unit array variable specifically made to hold each players heros.... I would use this when refering to which unit to revive.... I would also have a Global array variable that is a boolean... called "PlayerBaseAlive" ... rather then using a unit .... for that condition...
do you have any other triggers that use the "any unit dies" event? I have not had any trouble with this event in the past.... or any time I have had trouble with it I have found errors in my logic
Vexal I have never had a problem with this logic...... and you guys are the only ones claiming there is a problem with it.... would love to hear serious's opinion on it
if you used those two global variables I was talking about you can do it like this...
global variables
Dead Check (standard trigger)
Revive Action (action, threaded,return type = none)
thats how I would do it..... And I know it would work 100%
You should really really try to avoid the "any unit dies event".... if you dont mind my asking... how many different triggers do you have using this event? If you have alot of triggers using this event they could be convicting with eachother if its over loading the trigger system.
Ill leave it at that I guess...... sorry if I wasnt any help
why am i to change it to global variable when a Local variable is just fine for it ? (trigging unit is a local unit variable) , And as i said, not even the first bit of text (the first line of the trigger) shows when this chooses to happen . So it does not matter what you want to put into the code, the event of the trigger isnt firing 100% of the time. When it does fire, all the actions i have work correctly.
The problem is either the event " a unit dies" does not work 100% of the time. Or theres a load shedding taking place.
A quick test did not show any error with the events. I spawned 1000 units and killed them in rapid succession as well as all at once. Every time I tried, the event reacted properly and registered every single one of the 1000 units dying.
Spawning 1000 units and killing them at once causes serious lag issues on my pc, so you could say there is "much stuff going on" :p
<div style="margin: 5px 20px 20px;"> <div class="alt2" style="text-align: right; margin: 0px; padding: 6px; border: 1px;"> <span style="float: left; padding-top: 2px;">Used code: </span> <input value="Show" style="margin: 0px; padding: 0px; width: 80px; font-size: 10px;" onclick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';this.innerText = ''; this.value = 'Hide'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.value = 'Show';}" type="button"> </div> <div style="padding-top: 4px;"> <div class="alt2" style="display:none; margin: 0px; padding: 6px; border: 1px inset;"> include "TriggerLibs/NativeLib" const int UNIT_COUNT=1000; int DeathCounter=0; unit[1001] u; void Print(string s){ UIDisplayMessage(PlayerGroupActive(),7,StringToText(s)); } bool OnDeath(bool a, bool b){ DeathCounter+=1; Print("Kill event registered, current count: "+IntToString(DeathCounter)); return true; } bool Test(bool a, bool b){ int i=0; point p=RegionGetCenter(RegionEntireMap()); Print("starting"); while (i<UNIT_COUNT){ i+="1;" UnitCreate(1,"Marine",c_unitCreateIgnorePlacement,1,p,0);="" u[i]="UnitLastCreated();" }="" Print("Spawned="" "+IntToString(UNIT_COUNT)+"="" units");="" Wait(2,0);="" Print("killing="" units");="" while="" (i="">0){ UnitKill(u[i]); //Wait(0,0); i-=1; } Print("killing finished"); return true; } void Init(){ trigger t=TriggerCreate("OnDeath"); TriggerAddEventUnitDied(t,null); t=TriggerCreate("Test"); TriggerAddEventChatMessage(t,1,"-test",true); } </div>
</div>
</div>
@ Jinxxx: Try to pinpoint the exact error, so we can recreate it. Until we have a clean testmap showing this issue in a controlled environment, this is all nothing but speculation. There could be something wrong with the events. It could also be your trigger, something we did not see or some interaction with other triggers we are not aware of or any number of other reasons (morphing in a unit without a death time, just as a quick example which comes to my mind - I am sure there could be tons of other issues)
because switching to a global array of units that you want to run conditions against.. when there no "triggering unit" available would fix your problem... and that was your original goal wasnt it?
it would specifically prevent the game from ... skipping the event as you say
but its very possible there is a data based reason the unit isnt truely dying ... if its coming from specific effects occuring in the game
for this "load shedding" to truely occur... which im not entirely sure even exists ... the game would have to be lagged to a snails pace and players would be dropping...