Map Crashing

Xebarsis

New Member
Reaction score
7
I can look at it if you email it to me I suppose... Other than that, I can't really point out the obvious unless I had the list of triggers :p

Please don't take it personally, but I don't want to release an unprotected version of my map to anyone. But thank you for the offer.

In other news, I tried my hardest to get the game to crash by doing ridiculous combination of all 43 custom abilities that I added. I spammed every spell on immortal units for 30 minutes in an attempt to make a crash happen, and it hasn't. I'm running out of options here, there's very little left that I've added into the game that needs testing..but I don't see how they could cause a crash.

If I can't find it after that, I'm just going to go through and clean every single little memory leak I have left in the game, and pray.

:banghead:
 

Xebarsis

New Member
Reaction score
7
It seems that when my map does crash it does take a bit of time for the crash to happen, but there's never any sign of it. There's no mass lag or frame rate issues before the crash; it's just happens all of a sudden.

Could memory leaks cause this to happen?
 

Tamisrah

Active Member
Reaction score
16
If it's really that sudden, it's probably a fatal error.
There are various ways of creating such, both triggered and non triggered.
For example Attack-Ground combined with an orb effect is a save way to crash the game :D

Edit: @Defiance: Could you give me an example for the "same buff, different ability" crash? I can't get it to "work"
 

madd_999

New Member
Reaction score
14
is it a crash as in "FATAL ERROR" which will pop up a screen thingy.. or a crash as in "hey where did my game go" wc3 just closes no error message or annything??
 

Xebarsis

New Member
Reaction score
7
is it a crash as in "FATAL ERROR" which will pop up a screen thingy.. or a crash as in "hey where did my game go" wc3 just closes no error message or annything??

90% of the time the crashes are FATAL ERRORS. One time I did see the game crash with nothing popping up though, and it was early in the game as opposed to the other crashes that happen about 20 minutes in.
 

Xebarsis

New Member
Reaction score
7
crash.jpg


This is the crash message that I get. It says there's not enough storage, so is that guaranteed a memory leak or could it possibly be something else?
 
Reaction score
341
You are probably hitting the OP limit and or creating too many handles at once.

This generally happens with infinite loops.
 

brodygs9630

TH.net Regular
Reaction score
6
Well if your using an imported loading screen OR imported music,that could be causing the crash.I imported a loading screen once,and when I ran the game,it crashed.When I took the laoding screen out,it didnt crash anymore.Hope this helped:thup:
 

Xebarsis

New Member
Reaction score
7
You are probably hitting the OP limit and or creating too many handles at once.

This generally happens with infinite loops.

Could you elaborate on this please? I don't really understand.

Well if your using an imported loading screen OR imported music,that could be causing the crash.I imported a loading screen once,and when I ran the game,it crashed.When I took the laoding screen out,it didnt crash anymore.Hope this helped:thup:

Well I've had the same custom loading screen for every version of my game and I have never changed it, this is the first time I've had this kind of problem.
 

Balderon

New Member
Reaction score
0
Could you elaborate on this please? I don't really understand.


It means if you are looping an action infinite times the computer cant handle it. It's like dividing a number with 0, it goes infinite.

Example in the editor, if a unit deals damage he deals extra damage, that would be an infinite loop (and has happend me ^^)

Usually infinite loops won't cause an error, the game will just shut down without an error. But who knows, maybe it's still the problem :p
 

Laiev

Hey Listen!!
Reaction score
188
Maybe some unit in your map (terrain, already in game) got a ability what don't exist.

Exemple..

Neutral unit with a custom ability, but you delete it, ok, ability don't exist anymore, but the unit already got the ability, like Unknow (A00A) (just a exemple), this crash the warcraft.

Try to see if some unit in your map got it in abilitys.

Sorry for my bad english.
 

Xebarsis

New Member
Reaction score
7
Maybe some unit in your map (terrain, already in game) got a ability what don't exist.

Exemple..

Neutral unit with a custom ability, but you delete it, ok, ability don't exist anymore, but the unit already got the ability, like Unknow (A00A) (just a exemple), this crash the warcraft.

Try to see if some unit in your map got it in abilitys.

Sorry for my bad english.

Well I looked through and couldn't find any units that have abilities that were removed at some point.

However, good news for me is I have found a way to narrow down what is causing the problem. Today I started my map in world editor so I was the only player, and then I let the game sit there with an in game timer to let me know how long the game has been going on before crashing.

After 50 minutes, bam, crash... even though I was doing nothing. Gonna test this a couple times and see if it crashes around at the same time so I can have a control group of numbers, then do the same thing again except disable a bunch of triggers and see if the crash happens later (or not at all). But due to the amount of time it takes to crash the map with no activity, this test will take a while so I will post again once I find out more.
 

Xebarsis

New Member
Reaction score
7
I figured out what's causing the crash! I originally had 7 individual triggers, but with the new version of my map I found a way to combine them all into one trigger. The more players in the map, the sooner the trigger crashes the game.

The way my trigger works is it picks every unit and checks to see if they have a particular buff, if they do the trigger creatures dummy units and does different effects depending on the buff. I used a memory leak checker on it, and it claims there are zero errors. But that doesn't mean it's memory leak free, but I can't find what's wrong with it:

Trigger:
  • Universal Buff Checker
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Set BuffGroup = (Units in (Entire map) matching (((Matching unit) has buff Sludge Bomb ) Equal to True))
      • Unit Group - Pick every unit in BuffGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove Sludge Bomb buff from (Picked unit)
          • Set TheOtherPoint = (Position of (Picked unit))
          • Unit - Create 1 Dummy Caster for Neutral Extra at TheOtherPoint facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Cripple (Neutral Hostile) to (Last created unit)
          • Unit - Add Stun (Neutral Hostile) to (Last created unit)
          • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
          • Unit - Order (Last created unit) to Undead Necromancer - Cripple (Picked unit)
          • Custom script: call RemoveLocation (udg_TheOtherPoint)
      • Set BuffGroup = (Units in (Entire map) matching (((Matching unit) has buff Polymorph Cannon ) Equal to True))
      • Unit Group - Pick every unit in BuffGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove Polymorph Cannon buff from (Picked unit)
          • Set TheOtherPoint = (Position of (Picked unit))
          • Unit - Create 1 Dummy Caster for Neutral Extra at TheOtherPoint facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Hex (Polymorph Cannon) to (Last created unit)
          • Unit - Set level of Hex (Polymorph Cannon) for (Last created unit) to 3
          • Unit - Order (Last created unit) to Orc Shadow Hunter - Hex (Picked unit)
          • Custom script: call RemoveLocation (udg_TheOtherPoint)
      • Set BuffGroup = (Units in (Entire map) matching (((Matching unit) has buff Ice Comet ) Equal to True))
      • Unit Group - Pick every unit in BuffGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove Ice Comet buff from (Picked unit)
          • Set TheOtherPoint = (Position of (Picked unit))
          • Unit - Create 1 Dummy Caster for Neutral Extra at TheOtherPoint facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Freezing Shard (Ice Comet) to (Last created unit)
          • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
          • Custom script: call RemoveLocation (udg_TheOtherPoint)
      • Set BuffGroup = (Units in (Entire map) matching (((Matching unit) has buff Explosive Shot (Non-stacking)) Equal to True))
      • Unit Group - Pick every unit in BuffGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove Explosive Shot (Non-stacking) buff from (Picked unit)
          • Set ThePoint = (Position of (Picked unit))
          • Special Effect - Create a special effect at ThePoint using Abilities\Spells\Other\Doom\DoomDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_ThePoint)
      • Set BuffGroup = (Units in (Entire map) matching (((Matching unit) has buff Wing Shred (Non-stacking)) Equal to True))
      • Unit Group - Pick every unit in BuffGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove Wing Shred (Non-stacking) buff from (Picked unit)
          • Set ThePoint = (Position of (Picked unit))
          • Special Effect - Create a special effect attached to the origin of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\HeroBloodElfBlood.mdl
          • Special Effect - Destroy (Last created special effect)
          • Sound - Play MetalHeavySliceFlesh1 <gen> at 100.00% volume, located at ThePoint with Z offset 0.00
          • Custom script: call RemoveLocation (udg_ThePoint)
      • Set BuffGroup = (Units in (Entire map) matching (((Matching unit) has buff Stunned (Holy Hammer)) Equal to True))
      • Unit Group - Pick every unit in BuffGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove Stunned (Holy Hammer) buff from (Picked unit)
          • Set TheOtherPoint = (Position of (Picked unit))
          • Unit - Create 1 Dummy Caster for Neutral Extra at TheOtherPoint facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Holy Light (Holy Hammer) to (Last created unit)
          • Unit - Add Stun (Neutral Hostile) to (Last created unit)
          • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
          • Unit - Order (Last created unit) to Human Paladin - Holy Light (Picked unit)
          • Custom script: call RemoveLocation (udg_TheOtherPoint)
      • Set BuffGroup = (Units in (Entire map) matching (((Matching unit) has buff Mangle (Remove)) Equal to True))
      • Unit Group - Pick every unit in BuffGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove Mangle (Remove) buff from (Picked unit)
          • Set RandomInteger = (Random integer number between 1 and 15)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RandomInteger Equal to 15
            • Then - Actions
              • Set TheOtherPoint = (Position of (Picked unit))
              • Unit - Create 1 Dummy Caster for Neutral Extra at TheOtherPoint facing Default building facing degrees
              • Unit - Add Slow (Mangle) to (Last created unit)
              • Unit - Order (Last created unit) to Human Sorceress - Slow (Picked unit)
              • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
              • Custom script: call RemoveLocation (udg_TheOtherPoint)
            • Else - Actions
      • Custom script: call DestroyGroup (udg_BuffGroup)


Is there any reason why this trigger would cause a game crash over time? What do I need to change?

Note: This trigger crashes the game even if no spells are ever casted.
 

RaiJin

New Member
Reaction score
40
the real question is why wouldn't it?

look how many things your doing in that one trigger

and it DOES NOT help that ur running it 0.02 of a second...

u really need to increase that number... to at least 0.5 with those many actions

ur creating a whole crap load of units every 0.02th of a second... u do realise that's insane right?
 

Xebarsis

New Member
Reaction score
7
the real question is why wouldn't it?

look how many things your doing in that one trigger

and it DOES NOT help that ur running it 0.02 of a second...

u really need to increase that number... to at least 0.5 with those many actions

ur creating a whole crap load of units every 0.02th of a second... u do realise that's insane right?

Yes I am aware of that, but changing it to .5 seconds would only prolong the inevitable... but that would make for a final alternative. Is there anything within the trigger I can adjust to abolish the memory buildup? 'cause I don't think all triggers that check every .02 seconds would cause the game to crash over time.
 

Azlier

Old World Ghost
Reaction score
461
Your leak checker has failed you. You need to destroy the group before you set it again. Though, I'm not absolutely sure that leaks are crashing your map.
 

Xebarsis

New Member
Reaction score
7
Your leak checker has failed you. You need to destroy the group before you set it again. Though, I'm not absolutely sure that leaks are crashing your map.

The bottom of the trigger has that already:

Trigger:
  • Custom script: call DestroyGroup (udg_BuffGroup)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top