World Edit Crash

Baltazhar

Active Member
Reaction score
55
I know that maps sometimes makes unexplainable bugs, but this is by far the worst.

I was a unit, abilities for it and the triggers to go along with it. Hadn't saved for a long time. I click save, and it World Editor crashed. I almost started to cry.
Then I decided to saddle up, and do it all again. Now I knew what had to be done, so it didn't take long. I also enabled Autosave every 5 minutes, just in the unlikely event that it would crash again.

I did most of my work again, and got it saved. Now, however, I'm unable to save.

When I press Save, it shows the saving progress bar as it usually does. When it reaches Generating Map Script and the sub-title Variables, the progress bar glitches a couple of times, and then shows an error message:

AppName: worldedit.exe AppVer: 0.0.0.0 ModName: worldedit.exe
ModVer: 0.0.0.0 Offset: 002af7be

I never had the Editor actually perma-crash on me before, but now, I've seen that as well.

Anyone know if this is one of those bugs that I'll just have to live with (recreating everything from the previous version up until now), or is it perhaps an overload of variables?
Just before the save, I added my 153rd variable, is there a limit?

Any help or hints would be greatly appreciated.

EDIT: Now I've opened up the latest version of the map, and clicked save without any changes, and that works fine. The changes I've tested that apparently couldn't be saved, was this single custom script

Code:
call DestroyGroup (udg_BodyguardsPlayerGroup)

EDIT v.2: I hate doing this. Okay, apparently BodyguardsPlayerGroup was too long a variable name (they should really warn people about this). I tried renaming it to 'Bodyguard', and changing the custom script respectively. And it acts like nothing was ever wrong...
Sorry about writing a thread about it before testing the problem through.

If some admin can delete it, that's fine. If you want to keep it for the sake of other people seaching for the same problem that's fine as well.

Once again, sorry for the use of server space :p

EDIT v3: Can I really keep editing this damn thing?
Okay, I found out, I have a problem still. It's a certain trigger than must be disabled for the map to save. When it's enabled, it crashes.

Code:
Bodyguards
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Bodyguards 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Bodyguards  for (Casting unit)) Equal to 1
            Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Owner of (Casting unit)) Current gold) Greater than or equal to 200
                    Then - Actions
                        Player - Add -200 to (Owner of (Casting unit)) Current gold
                        Set Temp_Point = (Position of (Casting unit))
                        Unit - Create 1 Bodyguard for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Create 1 Bodyguard for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Custom script:   call RemoveLocation (udg_Temp_Point)
                    Else - Actions
                        Player Group - Add (Owner of (Casting unit)) to Bodyguard
                        Game - Display to (All players) for 10.00 seconds the text: |cffffcc00Bodyguard...
                        Custom script:   call DestroyGroup (udg_Bodyguard)
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Bodyguards  for (Casting unit)) Equal to 2
            Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Owner of (Casting unit)) Current gold) Greater than or equal to 400
                    Then - Actions
                        Player - Add -400 to (Owner of (Casting unit)) Current gold
                        Set Temp_Point = (Position of (Casting unit))
                        Unit - Create 1 Bodyguard for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Create 1 Bodyguard for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Create 1 Archer for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Create 1 Archer for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Custom script:   call RemoveLocation (udg_Temp_Point)
                    Else - Actions
                        Player Group - Add (Owner of (Casting unit)) to Bodyguard
                        Game - Display to (All players) for 10.00 seconds the text: |cffffcc00Bodyguard...
                        Custom script:   call DestroyGroup (udg_Bodyguard)
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Bodyguards  for (Casting unit)) Equal to 3
            Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Owner of (Casting unit)) Current gold) Greater than or equal to 800
                    Then - Actions
                        Player - Add -800 to (Owner of (Casting unit)) Current gold
                        Set Temp_Point = (Position of (Casting unit))
                        Unit - Create 1 Mercenary Captain for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Create 1 Bodyguard for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Create 1 Bodyguard for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Create 1 Archer for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit - Create 1 Archer for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
                        Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\NightElf\FaerieDragonInvis\FaerieDragon_Invis.mdl
                        Special Effect - Destroy (Last created special effect)
                        Custom script:   call RemoveLocation (udg_Temp_Point)
                    Else - Actions
                        Player Group - Add (Owner of (Casting unit)) to Bodyguard
                        Game - Display to (All players) for 10.00 seconds the text: |cffffcc00Bodyguard...
                        Custom script:   call DestroyGroup (udg_Bodyguard)
            Else - Actions

Help would still be appreciated :)

EDIT v 4.01: Thought I'd better started expanding the version numbers on these edits :)
Okay, it looks that Player Group - Add (Owner of (Casting unit)) to Bodyguard and Custom script: call DestroyGroup (udg_Bodyguard) was the problem. Deleted all 3 instances of each, enabled the trigger and saved the map. I'll just settle with displaying to all players for the sake of peace.

I would however, still like to know if anyone can see a problem in this?
 

Baltazhar

Active Member
Reaction score
55
After I deleted all instances of the 2 actions, I deleted the variable, and made another named Bodyguards

Then I tried adding a player to the group as before, and save it.
Player Group - Add (Owner of (Casting unit)) to Bodyguards

That worked as it should.

Then I tried making the cleanup custom script, making sure that I typed it in correctly
Custom script: call DestroyGroup (udg_Bodyguards)

And then it crashed again... Wait a minute...

Seeing as 'DestroyGroup' is used for UnitGroups, and I know absolutely nothing about Jass. And seeing my Bodyguards group is a PlayerGroup... That's wrong, right? What would be the correct Jass script to remove a PlayerGroup?
 

Baltazhar

Active Member
Reaction score
55
Damn that was simple. I just wrote like 5 pages about a problem, that was resolved by swapping 'Group' with 'Force'.

Thanks for your help guys, +rep :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top