• 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.

Map Help! Random Crashes in Game

Status
Not open for further replies.
Level 7
Joined
Nov 29, 2004
Messages
69
I can't figure it out. I've been having this problem for a long time and its really been preventing me from getting anywhere with this map. A lot of my friends really enjoy it, but we can't ever get any good games anymore because it keeps crashing.

Anyway, the reason why I can never figure out the problem is I have no clue where to begin. I always ask the players what they did right before the crash. Its usually something differant everytime and I can't get any crashes to match-up with each other.

It also never happens at the same time. If their are more players usually it wont last longer than the 10 minute mark in the game. However, with less players it usually doesn't happen at all and if it does its very late game.

My best guess would be that it has something to do with the scoreboard as the board is really crappy. But its hard to test because you just dont know when its going to crash. @.@

Any help would be appreciated. The map has been attached.
 

Attachments

  • Coming of the Chaos v.26.w3x
    327.9 KB · Views: 93

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,255
Sounds like RAM allocation errors.
CLOSE ALL BACKGROUND APLICATIONS THAT ARE NOT VITAL!
I have this happen to me if I alt+tab a lot while having WE + THW chat running.

Or are you saying ONLY WITH THAT MAP???
Then its a trigger error.
If the map is old then its outdated and trash material, since many WC3 functions have changed.

If it is your map, you need to post about it, if your using WEU, that may be the cause. Also syntax check all jass scripts manually or in good jass programs, since some errors the built in checker does not spot.
 
Level 1
Joined
Apr 24, 2007
Messages
1
My guess would be leaks.

Make sure you removed all locations, groups and forces.

Also if you are dealing with GUI keep the number of triggers minimal becuase usually you can't prevent leaks completely, only when working with JASS you can.
 
Level 7
Joined
Nov 29, 2004
Messages
69
K, I deleted all the excess things on the map, unused locations and stuff. Havn't really tested it, but I dont think that its the problem cause their weren't very many.

Also, if you read the post its very hard to test this crash since it doesn't always happen. It has like a 100% chance of happening if its a full house or close to it. But if im alone i'll never get the error. (Which is one of the reasons why I think its the leaderboard, it deals with hero kills)

I posted the map so you can see all the triggers and not just the few that i posted. Obviously no one took advantage of that. I dont even know if its the triggers. I've had this problem before on a differant map and it was because of one of the abilities I had created NOT the triggering.

I will post the Leaderboard trigger since thats where I think the problem is. If you want to see more please just download the map and look.

LeaderBoard Create

Code:
Multiboard Create
    Events
    Conditions
    Actions
        Wait 1.00 seconds
        Set TempInt = 2
        Multiboard - Create a multiboard with 2 columns and (2 + Total_Num_Players) rows, titled none
        Multiboard - Set the display style for (Last created multiboard) item in column 0, row 0 to Show text and Hide icons
        -------- Defenders --------
        Multiboard - Set the text for (Last created multiboard) item in column 1, row 1 to |cffffaa00The Defen...
        Multiboard - Set the text for (Last created multiboard) item in column 2, row 1 to |cffffaa00K/D|r
        For each (Integer A) from 1 to 5, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                ((Player((Integer A))) slot status) Equal to Is playing
                                ((Player((Integer A))) controller) Equal to User
                    Then - Actions
                        Multiboard - Set the text for (Last created multiboard) item in column 1, row TempInt to (   + (Name of (Player((Integer A)))))
                        Multiboard - Set the text for (Last created multiboard) item in column 2, row TempInt to 0 / 0
                        Set TempInt = (TempInt + 1)
                    Else - Actions
        -------- Undead --------
        Multiboard - Set the text for (Last created multiboard) item in column 1, row TempInt to |cff802A2AThe Undea...
        Multiboard - Set the text for (Last created multiboard) item in column 2, row TempInt to |cff802A2AK/D|r
        Set TempInt = (TempInt + 1)
        For each (Integer A) from 6 to 10, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                ((Player((Integer A))) slot status) Equal to Is playing
                                ((Player((Integer A))) controller) Equal to User
                    Then - Actions
                        Multiboard - Set the text for (Last created multiboard) item in column 1, row TempInt to (   + (Name of (Player((Integer A)))))
                        Multiboard - Set the text for (Last created multiboard) item in column 2, row TempInt to 0 / 0
                        Set TempInt = (TempInt + 1)
                    Else - Actions
        -------- ------------------- --------
        Multiboard - Set the width for (Last created multiboard) item in column 1, row 0 to 11.00% of the total screen width
        Multiboard - Set the width for (Last created multiboard) item in column 2, row 0 to 3.50% of the total screen width
        Multiboard - Change the color of the title for (Last created multiboard) to (100.00%, 100.00%, 100.00%) with 0.00% transparency
        Multiboard - Show (Last created multiboard)
        Multiboard - Maximize (Last created multiboard)
        Set LastCreatedLeaderBoard = (Last created multiboard)
        Multiboard - Change the title of LastCreatedLeaderBoard to |cff006400Coming of...

Hero Death

Code:
Hero Death
    Events
        Unit - A unit Dies
    Conditions
        ((Unit-type of (Dying unit)) is A Hero) Equal to True
        ((Dying unit) is an illusion) Equal to False
    Actions
        Set TempPlayer = (Owner of (Killing unit))
        -------- Killing Hero's Owner --------
        Set TempInt = (Player number of (Owner of (Killing unit)))
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Or - Any (Conditions) are true
                    Conditions
                        TempInt Equal to (Player number of (Owner of (Dying unit)))
                        TempInt Equal to 13
                        TempInt Equal to 14
                        TempInt Equal to 15
                        TempInt Equal to 16
            Then - Actions
            Else - Actions
                Trigger - Run Multiboard Row Number Process <gen> (ignoring conditions)
                Set Player_Hero_Kills[TempInt] = (Player_Hero_Kills[TempInt] + 1)
                Multiboard - Set the text for (Last created multiboard) item in column 2, row (TempInt + (1 - Temp_int_Multiboard)) to ((String(Player_Hero_Kills[TempInt])) + ( /  + (String(Player_hero_deaths[TempInt]))))
        -------- Dying Hero's Owner --------
        Set TempInt = (Player number of (Owner of (Dying unit)))
        Trigger - Run Multiboard Row Number Process <gen> (ignoring conditions)
        Set Player_hero_deaths[TempInt] = (Player_hero_deaths[TempInt] + 1)
        Multiboard - Set the text for (Last created multiboard) item in column 2, row (TempInt + (1 - Temp_int_Multiboard)) to ((String(Player_Hero_Kills[TempInt])) + ( /  + (String(Player_hero_deaths[TempInt]))))
        -------- ----------------------------------- --------
        Set TempString = ((Name of TempPlayer) + ( (Level  + ((String((Level of (Killing unit)))) + ))))
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Player number of (Owner of (Killing unit))) Equal to 13
            Then - Actions
                Set TempString = The Wandering Creep
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Player number of (Owner of (Killing unit))) Equal to 12
            Then - Actions
                Set TempString = The Chaos
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Player number of (Owner of (Killing unit))) Equal to 11
            Then - Actions
                Set TempString = The Defenders
            Else - Actions

Hero Kills

Code:
Hero Kills
    Events
        Unit - A unit Dies
    Conditions
        ((Triggering unit) is A Hero) Equal to True
    Actions
        Set TempString = ((Name of TempPlayer) + ( (Level  + ((String((Level of (Killing unit)))) + ))))
        Player - Add (100 x (Hero level of (Dying unit))) to (Owner of (Killing unit)) Current gold
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Player number of (Owner of (Killing unit))) Equal to 12
            Then - Actions
                Set TempString = The Chaos
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Player number of (Owner of (Killing unit))) Equal to 11
            Then - Actions
                Set TempString = The Defenders
            Else - Actions

Numbering

Code:
Multiboard Row Number Process
    Events
        Map initialization
    Conditions
    Actions
        Set Temp_int_Multiboard = 0
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                TempInt Less than 6
            Then - Actions
                For each (Integer A) from 1 to (TempInt - 1), do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                This_Player_is_Playing[(Integer A)] Equal to False
                            Then - Actions
                                Set Temp_int_Multiboard = (Temp_int_Multiboard + 1)
                            Else - Actions
            Else - Actions
                For each (Integer A) from 1 to (TempInt - 2), do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                This_Player_is_Playing[(Integer A)] Equal to False
                            Then - Actions
                                Set Temp_int_Multiboard = (Temp_int_Multiboard + 1)
                            Else - Actions
 
Status
Not open for further replies.
Top