• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[Crash] Error after 2 hours game

Status
Not open for further replies.
Level 8
Joined
Jul 15, 2012
Messages
143
This is the error picture
attachment.php


anyone has experience about this error?
help me , thanks
 

Attachments

  • error.jpg
    error.jpg
    16.7 KB · Views: 187
You have to give some context as to when it crashed. What were you doing? Were you playing online? Did anyone disconnect? Was it just you? Were you attacking something? etc...

These are often caused by triggers. If you can find out what happened at the time of the crash, we can simply find the events that fire with it and we'll get it solved.

It can also be an issue on your side. The game can crash for multiple reasons. You should test it at least once more and see if you get a crash.
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Game might continue to perform fine and still have memory leaks. I've never seen that error when it wasn't a memory leak. It's normally a critical error, memory could not be read, when it's not a memory leak. I've raised those errors with like double TriggerRemoveCondition and other fun stuff ;).

I guess it depends on the computer's power and possibly type of leak.
On my computer location leaks can lag the game quite hard, eventually.
I even have an ancient map that I made when I didn't know about memory leaks, it crashes with two hours too.
 
Level 5
Joined
Jan 30, 2013
Messages
124
I think the game was too long and it stored too many leaks that you had forgot to remove when you made that map! I often see this error when some triggers in map is inconsistency with others but they happened at the same time
I just think this... no brick, please! :D
 
Level 8
Joined
Jul 15, 2012
Messages
143
there is a trigger that i take , i forget from where,

about showing damage..

please check this trigger because it is has acction add event

  • Time - Elapsed game time is 1.00 seconds
  • Unit Group - Pick every unit in Unit_Groups and do (Actions)
    • Loop - Actions
      • Trigger - Add to Show Damage <gen> the event (Unit - (Picked unit) Takes damage)
  • Custom script: call DestroyGroup(udg_Unit_Groups)



  • Unit - A unit enters (Entire map)
  • Trigger - Add to Show Damage <gen> the event (Unit - (Triggering unit) Takes damage)

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Integer((Damage taken))) Greater than 5
    • Then - Actions
      • Set TempLoc[1] = (Position of (Triggering unit))
      • Set TempLoc[2] = (TempLoc[1] offset by 50.00 towards 315.00 degrees)
      • Floating Text - Create floating text that reads ((Global_Array_16_String[(Player number of (Owner of (Damage source)))] + (String((Integer((Damage taken)))))) + <Empty String>) at TempLoc[2] with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 25.00% transparency
      • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 45.00 degrees
      • Floating Text - Change (Last created floating text): Disable permanence
      • Floating Text - Change the lifespan of (Last created floating text) to 0.65 seconds
      • Custom script: call RemoveLocation(udg_TempLoc[1])
      • Custom script: call RemoveLocation(udg_TempLoc[2])
    • Else - Actions
can anyone check this trigger maybe this is the causes of my error
 
Last edited by a moderator:
the whole trigger as in the whole trigger....
  • HeroCameraConfig
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- If this boolean is true then the players will have full control over locking / unlocking the camera to and from the hero. --------
      • -------- If this boolean is false then the map creator will have partial control over whether the camera can lock / unlock from the hero. You have to use the ForceLock function to have partial control over the players --------
      • -------- If you want the ability to toggle between letting the players choose and not choose later in the game leave this as true then wait after 0.01 seconds and change the boolean. --------
      • Set heroCamSysPlayerControl = True
      • -------- --------
      • -------- --------
      • -------- If the boolean heroCamSysPlayerControl is true then this is the string that the players will type to lock there camera. --------
      • -------- This is an exact match so capitilization matters. --------
      • -------- If the boolean heroCamSysPlayerControl is false leave this as an empty message. That way it doesn't create an unecessary string. --------
      • Set heroCamSysPlayerLockString = -heroCamLock
      • -------- --------
      • -------- --------
      • -------- If the boolean heroCamSysPlayerControl is true then this is the string that the players will type to unlock there camera. --------
      • -------- This is an exact match so capitilization matters. --------
      • -------- If the boolean heroCamSysPlayerControl is false leave this as an empty message. That way it doesn't create an unecessary string. --------
      • Set heroCamSysPlayerUnLockString = -heroCamUnLock
      • -------- --------
      • -------- --------
      • -------- This string allows players to invert there up and down actions. What that means is that if they want the camera to move down when pressing up all they have to do is type this string in. --------
      • -------- They can then type in the string again at any time in game to invert back. --------
      • Set heroCamSysInvUDString = -invertUD
      • -------- --------
      • -------- --------
      • -------- This string allows players to invert there left and right actions. What that means is that if they want the camera to move right when pressing uleft all they have to do is type this string in. --------
      • -------- They can then type in the string again at any time in game to invert back. --------
      • Set heroCamSysInvLRString = -invertLR
      • -------- --------
      • -------- --------
      • -------- This variable is the start height that you want the distance to be at. --------
      • Set heroCamSysHeightStartValue = 500.00
      • -------- --------
      • -------- --------
      • -------- This variable is the distance that the camera will move from the target in the z axis for every 0.03125 seconds that you hold down the up or down button. --------
      • Set heroCamSysHeightInc = 10.00
      • -------- --------
      • -------- --------
      • -------- This variable is the start rotation that you want the rotation to be at. --------
      • Set heroCamSysRotationStartValue = 90.00
      • -------- --------
      • -------- --------
      • -------- This variable is the amount that you will rotate the camera left or right for every 0.03125 seconds that you hold down the left or right button. --------
      • Set heroCamSysRotationInc = 10.00
      • -------- --------
      • -------- --------
      • -------- This variable is for the x offset value when locking to a unit. What this does is moves were you lock to the unit by using the x value. --------
      • -------- This shouldn't have to be changed but I put it here so you could tweak it to your liking. --------
      • Set heroCamSysXOffset = 0.00
      • -------- --------
      • -------- --------
      • -------- This variable is for the y offset value when locking to a unit. What this does is moves were you lock to the unit by using the y value. --------
      • -------- This shouldn't have to be changed but I put it here so you could tweak it to your liking. --------
      • Set heroCamSysYOffset = 0.00
      • -------- --------
      • -------- --------
      • -------- This variable is for the speed of the trigger. It is for the periodic movement event that changes the rotation / height. I put this in so you have more room to tweak it to your liking. --------
      • -------- I use custom script because you can then set this to a more desirable real number. 0.031250000 will run 32 times a second so 32 FPS. --------
      • Custom script: set udg_heroCamSysSpeed = 0.031250000
      • -------- --------
      • -------- --------
DDs means damage detection system. Which one are you using ?
 
Level 8
Joined
Jul 15, 2012
Messages
143
here is the full trigger

Consist of 5 triggers actually , i write all

  • Set Strings
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Global_Array_16_String[1] = |CFFFF0303
      • Set Global_Array_16_String[2] = |CFF0042FF
      • Set Global_Array_16_String[3] = |CFF1CB619
      • Set Global_Array_16_String[4] = |CFF540081
      • Set Global_Array_16_String[5] = |CFFFFFF01
      • Set Global_Array_16_String[6] = |CFFFE8A0E
      • Set Global_Array_16_String[7] = |CFF20C000
      • Set Global_Array_16_String[8] = |CFFE55BB0
      • Set Global_Array_16_String[9] = |CFF959697
      • Set Global_Array_16_String[10] = |CFF7EBFF1
      • Set Global_Array_16_String[11] = |CFF106246
      • Set Global_Array_16_String[12] = |CFF4E2A04
      • Set Global_Array_16_String[13] = |CFF000000
      • Set Global_Array_16_String[14] = |CFF000000
      • Set Global_Array_16_String[15] = |CFF000000
      • Set Global_Array_16_String[16] = |CFF000000


  • Init Set
    • Events
      • Time - Elapsed game time is 1.00 seconds
    • Conditions
    • Actions
      • Set Unit_Groups = (Units in (Entire map))
      • Unit Group - Pick every unit in Unit_Groups and do (Actions)
        • Loop - Actions
          • Trigger - Add to Show Damage <gen> the event (Unit - (Picked unit) Takes damage)
      • Custom script: call DestroyGroup(udg_Unit_Groups)


  • Ingame Set
    • Events
      • Unit - A unit enters (Entire map)
    • Conditions
    • Actions
      • Trigger - Add to Show Damage <gen> the event (Unit - (Triggering unit) Takes damage)


  • Show Damage
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Integer((Damage taken))) Greater than 5
        • Then - Actions
          • Set TempLoc[1] = (Position of (Triggering unit))
          • Set TempLoc[2] = (TempLoc[1] offset by 50.00 towards 315.00 degrees)
          • Floating Text - Create floating text that reads ((Global_Array_16_String[(Player number of (Owner of (Damage source)))] + (String((Integer((Damage taken)))))) + <Empty String>) at TempLoc[2] with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 25.00% transparency
          • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 45.00 degrees
          • Floating Text - Change (Last created floating text): Disable permanence
          • Floating Text - Change the lifespan of (Last created floating text) to 0.65 seconds
          • Custom script: call RemoveLocation(udg_TempLoc[1])
          • Custom script: call RemoveLocation(udg_TempLoc[2])
        • Else - Actions



  • Show Skill Name
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • (Ability being cast) Not equal to Storm Bolt
    • Actions
      • Set TempLoc[1] = (Position of (Triggering unit))
      • Set TempLoc[2] = (TempLoc[1] offset by 50.00 towards 315.00 degrees)
      • Floating Text - Create floating text that reads ((Name of (Ability being cast)) + !!!) above (Casting unit) with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 45.00 degrees
      • Floating Text - Change (Last created floating text): Disable permanence
      • Floating Text - Change the lifespan of (Last created floating text) to 1.25 seconds
      • Custom script: call RemoveLocation(udg_TempLoc[1])
      • Custom script: call RemoveLocation(udg_TempLoc[2])


thats all , where is the leak ?

And one more , i take the foto of my task manager , the memory usage of warcraft , its up to 600 mb
 

Attachments

  • taskmanager.JPG
    taskmanager.JPG
    46.5 KB · Views: 73
Last edited by a moderator:
There is no leaks in here but they can be in any other triggers. These triggers can be made more efficient though.

Put this in a trigger named HandleCount
Name has to be exact to put this in simply convert trigger to custom script.
JASS:
function HandleCount takes nothing returns nothing
    local location L = Location(0,0)
    call BJDebugMsg(I2S(GetHandleId(L)-0x100000))
    call RemoveLocation(L)
    set L = null
endfunction

//===========================================================================
function InitTrig_HandleCounter takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterTimerEvent(t,0.09,true)
    call TriggerAddAction(t,function HandleCount)
endfunction

If the numbers increase a lot then you have leaks.
 
Level 8
Joined
Jul 15, 2012
Messages
143
if its changing slowly?

after that if it increase 1 digit , it its leaking or not ?

btw i want ask about offset, i make a spell that using offset , hot to remove leak from this trigger

  • Bash Explosion
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Bash Explosion
    • Actions
      • Set TempLoc[4] = ((Position of (Casting unit)) offset by 10.00 towards (Angle from (Position of (Casting unit)) to (Target point of ability being cast)) degrees)
      • Unit - Create 1 dummy for Neutral Passive at TempLoc[4] facing (Angle from (Position of (Casting unit)) to (Target point of ability being cast)) degrees
      • Set bash = (Last created unit)
      • Set TempLoc[3] = (TempLoc[4] offset by 400.00 towards (Angle from (Position of (Casting unit)) to (Target point of ability being cast)) degrees)
      • Set Unit_Groups = (Units within 400.00 of TempLoc[3] matching (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True))
      • Unit - Order bash to Move To TempLoc[3]
      • Wait 1.00 seconds
      • Custom script: call RemoveLocation(udg_TempLoc[4])
      • Custom script: call RemoveLocation(udg_TempLoc[3])
      • Custom script: call DestroyGroup(udg_Unit_Groups)
      • Custom script: set udg_Unit_Groups = null
      • Unit - Remove bash from the game


thanks
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
if its changing slowly?

after that if it increase 1 digit , it its leaking or not ?

btw i want ask about offset, i make a spell that using offset , hot to remove leak from this trigger

  • Bash Explosion
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Bash Explosion
    • Actions
      • Set TempLoc[4] = ((Position of (Casting unit)) offset by 10.00 towards (Angle from (Position of (Casting unit)) to (Target point of ability being cast)) degrees)
      • Unit - Create 1 dummy for Neutral Passive at TempLoc[4] facing (Angle from (Position of (Casting unit)) to (Target point of ability being cast)) degrees
      • Set bash = (Last created unit)
      • Set TempLoc[3] = (TempLoc[4] offset by 400.00 towards (Angle from (Position of (Casting unit)) to (Target point of ability being cast)) degrees)
      • Set Unit_Groups = (Units within 400.00 of TempLoc[3] matching (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True))
      • Unit - Order bash to Move To TempLoc[3]
      • Wait 1.00 seconds
      • Custom script: call RemoveLocation(udg_TempLoc[4])
      • Custom script: call RemoveLocation(udg_TempLoc[3])
      • Custom script: call DestroyGroup(udg_Unit_Groups)
      • Custom script: set udg_Unit_Groups = null
      • Unit - Remove bash from the game


thanks

Target point of whatever

This always creates a point. Even if you use it for offset.
 
Status
Not open for further replies.
Top