Revive trigger works in testing but no in multiplayer.

Status
Not open for further replies.
Level 8
Joined
Jan 17, 2019
Messages
163
So this trigger works whenever I test it but when I actually play a multiplayer game it never works. I got 4 heroes and when they die another allied hero simply has to walk up to the shrine area to rez them (only once per area). No other triggers turn off or refer to these. I'm guessing I'll just have to add the heroes to a variable but I seriously do NOT understand what the problem is, it's such a simple trigger.

  • Ressurect Hero West
    • Events
      • Unit - A unit enters Region 886 <gen>
    • Conditions
      • ((Entering unit) belongs to an enemy of Player 9 (Gray).) Equal to True
      • ((Entering unit) is A Hero) Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Corvus 0314 <gen> is dead) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
          • Hero - Instantly revive Corvus 0314 <gen> at (Center of Region 886 <gen>), Show revival graphics
          • Animation - Play the show animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Animation - Play the birth animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Game - Display to (All players) the text: |cff008080Corvus ha...
          • Trigger - Run West Shrine Gone <gen> (checking conditions)
          • Wait 2.00 seconds
          • Animation - Play the hide animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Unit - Remove Vision of Faith 0096 <gen> from the game
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Elena 0092 <gen> is dead) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
          • Hero - Instantly revive Elena 0092 <gen> at (Center of Region 886 <gen>), Show revival graphics
          • Animation - Play the show animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Animation - Play the birth animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Game - Display to (All players) the text: |cff008080Elena has...
          • Trigger - Run West Shrine Gone <gen> (checking conditions)
          • Wait 2.00 seconds
          • Animation - Play the hide animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Unit - Remove Vision of Faith 0096 <gen> from the game
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Sir Bryant 0220 <gen> is dead) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
          • Hero - Instantly revive Sir Bryant 0220 <gen> at (Center of Region 886 <gen>), Show revival graphics
          • Animation - Play the show animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Animation - Play the birth animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Game - Display to (All players) the text: |cff008080Sir Bryan...
          • Trigger - Run West Shrine Gone <gen> (checking conditions)
          • Wait 2.00 seconds
          • Animation - Play the hide animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Unit - Remove Vision of Faith 0096 <gen> from the game
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Duncan 0094 <gen> is dead) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
          • Hero - Instantly revive Duncan 0094 <gen> at (Center of Region 886 <gen>), Show revival graphics
          • Animation - Play the show animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Animation - Play the birth animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Game - Display to (All players) the text: |cff008080Duncan ha...
          • Trigger - Run West Shrine Gone <gen> (checking conditions)
          • Wait 2.00 seconds
          • Animation - Play the hide animation for all doodads of type Ressurection Effect within Region 886 <gen>.
          • Unit - Remove Vision of Faith 0096 <gen> from the game
        • Else - Actions
          • Do nothing
 
Level 15
Joined
Feb 7, 2020
Messages
398
Which part isn't working? Is it only reviving 1 hero from the list or none at all?

If not even 1 is reviving, something in the trigger is broken.

If only 1 is reviving, it's because the trigger is turning off before it can check for other eligible heroes being dead. You would need to wrap all 4 conditions in the same <And all conditions are true> block.

---

An aside: you're leaking when using these center of region functions and it's not necessary to include the 'Do nothing' actions. Also, I would resort to 'Triggering Unit()' instead of 'Entering Unit()', as triggering unit is a faster function (pedantic performance observation).

  • Hero - Instantly revive Corvus 0314 <gen> at (Center of Region 886 <gen>), Show revival graphics
Things That Leak
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Not sure why it doesn't work, maybe it has do with being an enemy of Player 9.

Anyway, here's another way of doing it that I guess you could try if it continues to fail:
  • Add to DeadHeroes
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • ((Triggering unit) belongs to an enemy of Player 9 (Gray).) Equal to True
      • ((Reviving Hero) is in DeadHeroes.) Equal to False
    • Actions
      • Unit Group - Add (Triggering unit) to DeadHeroes
  • Remove from DeadHeroes
    • Events
      • Unit - A unit Finishes reviving
    • Conditions
      • ((Reviving Hero) is in DeadHeroes.) Equal to True
    • Actions
      • Unit Group - Remove (Reviving Hero) from DeadHeroes.
  • Revive
    • Events
      • Unit - A unit enters Revive Here <gen>
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • ((Triggering unit) belongs to an enemy of Player 9 (Gray).) Equal to True
      • (Number of units in DeadHeroes) Greater than 0
    • Actions
      • Set VariableSet ReviveHero = (Random unit from DeadHeroes)
      • Hero - Instantly revive ReviveHero at (Center of Revive Here <gen>), Hide revival graphics
      • Trigger - Turn off (This trigger)
 

Attachments

  • Revive Example.w3m
    16.8 KB · Views: 14
Last edited:
Level 8
Joined
Jan 17, 2019
Messages
163
literally every single trigger in my map "leaks". I haven't noticed any lag more than any other map ive ever played. Is that just an old wc3 problem for old computers? Cuz this map is Reforged only. I'm not going to fix them lol. I'm losing my "spark" for mapping. Reforged was a colossal dissapointment and it takes ages for the lobbies to fill. Think it's time I moved onto VR engines. Get the most out of my Valve Index (Half-Life Alyx is insane).

Btw I set the condition to a variable and that fixed this. Why I don't know.
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Leaks can cause performance issues if they get out of hand. Some triggers could create 100's or even 1000's of leaks per second if they're handled incorrectly.

But if your map doesn't contain a trigger like that then you'll have far fewer leaks. Also, if your map is rather small/lightweight to begin with then you won't notice the performance issues as much.

I imagine a map like DotA would suffer greatly from not cleaning up memory leaks, because there would be so many damn triggers creating them all of the time.
 
Level 8
Joined
Jan 17, 2019
Messages
163
My map is pretty lengthy, a solid 1.5 hours of gameplay for 8 people. In that time I'd estimate less than 150 "leaky" triggers since not many of them repeat. I see much MUCH worse lag in a long game of Castle Fight

Edit: also I feel this is a blizzard problem. Why in the hell havent they fixed these trigger leaks themselves?
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Blizzard doesn't really give a shit about modders for a 17 year old game. I have yet to see a single Reforged patch address any of the editor issues.

Also, if they fix the leaks themselves then mapmakers will have to go through their maps and remove all of their own leak fixes. Maybe there's some other reason but I don't see it.

They're doing it again with this Indexing stuff for their "new" natives.
  • Ability - Set Ability: (Unit: (Last created unit)'s Ability with Ability Code: Animate Dead)'s Integer Level Field: Mana Cost ('amcs') of Level: 0 to 50
Level 0 = Level 1, which is just stupid since nowhere else in the editor does it work like this. They will run into the same problem if they try to fix it since people are already using it the way it's designed now.

I imagine this inconsistency will exist forever, unfortunately.
 
Status
Not open for further replies.
Top