• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Problem with saveing the game

Status
Not open for further replies.
Level 5
Joined
Dec 21, 2012
Messages
89
Hi
I have large map with many units, dodats and items (many custom). When I am around 60% of the map when I play is getting crash when I want to save, I saying that is unable to process this command because of storage. Can I fix this somehow? I checked my map and think I delete as much I could memory leaks. Also I used wedgetiser and 5.0wc3mapoptimizer(without tweaks)
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Hi
I have large map with many units, dodats and items (many custom). When I am around 60% of the map when I play is getting crash when I want to save, I saying that is unable to process this command because of storage. Can I fix this somehow? I checked my map and think I delete as much I could memory leaks. Also I used wedgetiser and 5.0wc3mapoptimizer(without tweaks)

I can't judge how leaky your map is or isn't based on what you say. I can only do so by actually looking at the triggers.
The storage thing might either be about too little RAM, too little hard drive space or access limitations.
 
Level 5
Joined
Dec 21, 2012
Messages
89
I delete respawn and some other triggers with creating units. Maybe that will help a little. As far I know creating units making permanent leaks still when I do temp_point. Does is any way to make more memory for editor?
 
Level 5
Joined
Dec 21, 2012
Messages
89
Does that trigger can create a loop

Mana Potion Copy
Events
Unit - A unit Acquires an item
Conditions
Or - Any (Conditions) are true
Conditions
(Item-type of (Item being manipulated)) Equal to Bryonia
(Item-type of (Item being manipulated)) Equal to Ginatia
(Item-type of (Item being manipulated)) Equal to Hasmirin
((Triggering unit) is An Ancient) Equal to True
((Hero manipulating item) has an item of type Bryonia) Equal to True
((Hero manipulating item) has an item of type Ginatia) Equal to True
((Hero manipulating item) has an item of type Hasmirin) Equal to True
((Triggering unit) is An Ancient) Equal to True
Actions
Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Bryonia)
Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Ginatia)
Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Hasmirin)
Hero - Create Clarity Potion and give it to (Hero manipulating item)
Sound - Play WandOfIllusionTarget1_Potions <gen>
Wait 1.00 seconds
Sound - Stop WandOfIllusionTarget1_Potions <gen> Immediately
 
Level 26
Joined
Aug 18, 2009
Messages
4,097
No, giving an item via trigger does fire the "Acquires an item" event but your conditions are not fulfilled there.

There should be an error log of the crash in Warcraft III\Errors. Try to find the latest point when you can still save to get a clue what is the causing factor. Is your map laggy at this point? How much game time do your 60% correspond to? Do you make heavy use of gamecache/hashtable? Can you post the map?
 
Level 5
Joined
Dec 21, 2012
Messages
89
That what is saying in error logs:(I checked map before and after optimizer)

This one before optimizer:(it might be jass inventory system but I am not sure)

This application has encountered a critical error:
Not enough storage is available to process this command.

Program: d:\warcraft iii\war3.exe
File: .\CDataAllocator.cpp
Line: 152

This one after optimizer:

This application has encountered a critical error:
Not enough storage is available to process this command.

Program: d:\warcraft iii\war3.exe
Object: Chunk (.?AUChunk@CDataStoreChunked@@)


This application has encountered a critical error:
Not enough storage is available to process this command.

Program: D:\Warcraft III Originalny z plytki\worldedit121.exe
Object: WERandomGroupSet (.?AUWERandomGroupSet@@)

Before optimizer it happen more early. After optimizer it happen a little later. Around 45% is taking longer time to save and later at 60% is making crash. When I was not using jass and I had less dodats before in my map it was not crashing at all but special effects were not showing (only in the beginning). My map weight 53 MB. Can you send your email address
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
http://www.hiveworkshop.com/forums/miscellaneous-tutorials-456/how-easily-post-triggers-163285/


  • Mana Potion Copy
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Item-type of (Item being manipulated)) Equal to Bryonia
          • (Item-type of (Item being manipulated)) Equal to Ginatia
          • (Item-type of (Item being manipulated)) Equal to Hasmirin
          • ((Triggering unit) is An Ancient) Equal to True
      • ((Hero manipulating item) has an item of type Bryonia) Equal to True
      • ((Hero manipulating item) has an item of type Ginatia) Equal to True
      • ((Hero manipulating item) has an item of type Hasmirin) Equal to True
      • ((Triggering unit) is An Ancient) Equal to True
    • Actions
      • Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Bryonia)
      • Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Ginatia)
      • Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Hasmirin)
      • Hero - Create Clarity Potion and give it to (Hero manipulating item)
      • Sound - Play WandOfIllusionTarget1_Potions <gen>
      • Wait 1.00 seconds
      • Sound - Stop WandOfIllusionTarget1_Potions <gen> Immediately
This can create an infinite loop if ur hero is an ancient

Also if u have a lot of item recipes u should use an Item Recipe System. They can handle all the recipes in a nice easy way for u.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,198
When does it crash, you are not being clear...

When saving the map in World Edit?
When loading the map in Warcraft III?
When saving an active session in Warcraft III?
During an average session of Warcraft III at approximately the same progression state?

We cannot help you until you make it clear which one of these applies to you.
 
Level 5
Joined
Dec 21, 2012
Messages
89
Everything what I change in Word Edit is saving without any problem. When loading the map in Warcraft 3 don't have usually any problem, sometimes when I played around 55% of the map, I have problem with load the save in active playing. When I quit the game and then load the save is allright. When I save during active playing is making crash later in the game (when I played 60% of the map). Is usually the same progression state with optimizer and without so probably this same thing making crash

Does trigger will make a loop when I put Unit - Order (Triggering unit) to Stop for Ancient (I think I want keep this one because I am using alchemy workbench to create potions)

Healing Salve
Events
Unit - A unit Acquires an item
Conditions
Or - Any (Conditions) are true
Conditions
(Item-type of (Item being manipulated)) Equal to Bryonia
(Item-type of (Item being manipulated)) Equal to Balisse
(Item-type of (Item being manipulated)) Equal to Urisal
((Triggering unit) is An Ancient) Equal to True
((Hero manipulating item) has an item of type Bryonia) Equal to True
((Hero manipulating item) has an item of type Balisse) Equal to True
((Hero manipulating item) has an item of type Urisal ) Equal to True
((Triggering unit) is An Ancient) Equal to True
Actions
Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Bryonia)
Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Balisse)
Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Urisal )
Hero - Create Healing Salve and give it to (Hero manipulating item)
Sound - Play WandOfIllusionTarget1_Potions <gen>
Wait 1.00 seconds
Sound - Stop WandOfIllusionTarget1_Potions <gen> Immediately
Unit - Order (Triggering unit) to Stop

Can I address Custom script: call DestroyTrigger(GetTriggeringTrigger()) to a different triggers. Now I am just using this one
in the second part of the quest. For example I have troll quest and reward troll quest. I can puted destroy trigger to reward troll quest, can I address this somehow to troll quest [call DestroyTrigger(troll quest) don't want to work]
 
Last edited:

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,198
The WarCraft III save system is buggy and cannot be used reliably. An example is that timer states do not get saved and restored properly breaking any such script that requires this functionality that was running during the time of the save. Your only option is to use Gamecache (singleplayer) or File I/O (multiplayer) to save a representation of game state.
 
Level 5
Joined
Dec 21, 2012
Messages
89
Line 152 in my map is a last region I use so maybe I have too many regions. I will try reduce numbers of regions and delete as much triggers I can. Also I change GUI item recipes for my artifacts (I have them 13) into jass. I think that should speed up a little my map

Program: d:\warcraft iii\war3.exe
File: .\CDataAllocator.cpp
Line: 152
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,198
You are getting the game into a state of infinite memory allocation. You will probably find the process memory shoots from around 300MB odd to 4GB nearly instantly. As WarCraft III is only 32 bit compiled, it only supports up to 4GB odd (or less) before it runs out of address space. When it runs out of address space, the data allocator will fail as it cannot allocate more memory. This is a fatal error so the game shuts down.

Line 152 in my map is a last region I use so maybe I have too many regions.
No... Line 152 corresponds to some C++ code at line 152 in .\CDataAllocator.cpp (the hint here is the "cpp" which is a cpp source code file). This has nothing to do with your map script.

Also I change GUI item recipes for my artifacts (I have them 13) into jass. I think that should speed up a little my map
Will not solve anything unless it contains a logical error that you fix.
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
This trigger is inefficient. anything u use twice or more u should store into a variable and use that. This will increase the efficiency and speed of a trigger. Also as i said this can create an infinite loop if the triggering unit is an ancient.

Also plz use trigger tags like this. I already posted a liink on how to help u post triggers.
  • Healing Salve
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Item-type of (Item being manipulated)) Equal to Bryonia
          • (Item-type of (Item being manipulated)) Equal to Balisse
          • (Item-type of (Item being manipulated)) Equal to Urisal
          • ((Triggering unit) is An Ancient) Equal to True
      • ((Hero manipulating item) has an item of type Bryonia) Equal to True
      • ((Hero manipulating item) has an item of type Balisse) Equal to True
      • ((Hero manipulating item) has an item of type Urisal ) Equal to True
      • ((Triggering unit) is An Ancient) Equal to True
    • Actions
      • Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Bryonia)
      • Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Balisse)
      • Hero - Order (Triggering unit) to use (Item carried by (Triggering unit) of type Urisal )
      • Hero - Create Healing Salve and give it to (Hero manipulating item)
      • Sound - Play WandOfIllusionTarget1_Potions <gen>
      • Wait 1.00 seconds
      • Sound - Stop WandOfIllusionTarget1_Potions <gen> Immediately
      • Unit - Order (Triggering unit) to Stop
 
Status
Not open for further replies.
Top