AceHart's Save/Load problems

Denegoth

New Member
Reaction score
18
So I used AceHart's save/load code, as it's the best one to use I've found so far. I'm having two problems with it:

1: It sometimes doesn't load
2: When it does load, it saves only one item at a time.

I'll post all code below:

Trigger:
  • SaveLoad Initialization Hero
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- List of Heroes --------
      • Set SaveLoad_Heroes[1] = Villager [ Agile ]
      • Set SaveLoad_Heroes[2] = Villager [ Smart ]
      • Set SaveLoad_Heroes[3] = Villager [ Strong ]
      • Set SaveLoad_Heroes[4] = Villager [ Agile ]
      • Set SaveLoad_Heroes[5] = Villager [ Smart ]
      • Set SaveLoad_Heroes[6] = Villager [ Strong ]
      • -------- Number of Heroes --------
      • Set SaveLoad_Heroes_LastIndex = 6
      • -------- List of Items --------
      • Set SaveLoad_Items[1] = Mortar and Pestle
      • Set SaveLoad_Items[2] = Lockpick
      • Set SaveLoad_Items[3] = Pruners
      • Set SaveLoad_Items[4] = Bronze Axe
      • -------- Number of Items --------
      • Set SaveLoad_Items_LastIndex = 4
      • -------- List of Abilities --------
      • Set SaveLoad_Abilities[1] = Acid Bomb
      • -------- Number of Abilities --------
      • Set SaveLoad_Abilities_LastIndex = 1
      • -------- These three lines may be changed if needed --------
      • Set SaveLoad_Alphabet = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
      • Set SaveLoad_CaseSensitive = False
      • Set SaveLoad_UsePlayername = False
      • -------- Required: false --------
      • Set SaveLoad_Initialized = False
      • -------- Leave as is. Used to autocreate variables when copy & pasting to a new map --------
      • Set Code = AceHart
      • Set Save[1] = 0
      • Set SaveCount = 1
      • Set Validate = False
      • Set SaveLoad_Compress[1] = 0
      • Set SaveLoad_Uncompress[1] = 0


Trigger:
  • SaveLoad Save Hero
    • Events
      • Player - Player 1 (Red) types a chat message containing -save as An exact match
      • Player - Player 2 (Blue) types a chat message containing -save as An exact match
      • Player - Player 3 (Teal) types a chat message containing -save as An exact match
      • Player - Player 4 (Purple) types a chat message containing -save as An exact match
      • Player - Player 5 (Yellow) types a chat message containing -save as An exact match
      • Player - Player 6 (Orange) types a chat message containing -save as An exact match
      • Player - Player 7 (Green) types a chat message containing -save as An exact match
      • Player - Player 8 (Pink) types a chat message containing -save as An exact match
      • Player - Player 9 (Gray) types a chat message containing -save as An exact match
      • Player - Player 10 (Light Blue) types a chat message containing -save as An exact match
    • Conditions
    • Actions
      • -------- Prepare the save array with this player's Hero --------
      • Set SaveCount = 0
      • -------- Take all Heroes (assumes there is only one) --------
      • Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True)) and do (Actions)
        • Loop - Actions
          • -------- Save the Hero --------
          • Set SaveCount = (SaveCount + 1)
          • Set TempUnit = (Picked unit)
          • Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Unit2Integer( udg_TempUnit )
          • -------- Hero level --------
          • Set SaveCount = (SaveCount + 1)
          • Set Save[SaveCount] = (Hero level of (Picked unit))
          • -------- Gold --------
          • Set SaveCount = (SaveCount + 1)
          • Set Save[SaveCount] = ((Triggering player) Current gold)
          • -------- Save Skills --------
          • -------- Alchemy --------
          • Set SaveCount = (SaveCount + 1)
          • Set Save[SaveCount] = Alchemy_Level[(Player number of (Triggering player))]
          • -------- Gardening --------
          • Set SaveCount = (SaveCount + 1)
          • Set Save[SaveCount] = Gardening_Level[(Player number of (Triggering player))]
          • -------- Magic --------
          • Set SaveCount = (SaveCount + 1)
          • Set Save[SaveCount] = Magic_Level[(Player number of (Triggering player))]
          • -------- Security --------
          • Set SaveCount = (SaveCount + 1)
          • Set Save[SaveCount] = Security_Level[(Player number of (Triggering player))]
          • -------- Woodcutting --------
          • Set SaveCount = (SaveCount + 1)
          • Set Save[SaveCount] = Woodcutting_Level[(Player number of (Triggering player))]
          • -------- Items --------
          • For each (Integer A) from 1 to 6, do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Item carried by Hero[(Player number of (Triggering player))] in slot (Integer A)) is owned) Equal to True
                • Then - Actions
                  • -------- The actual item --------
                  • Set SaveCount = (SaveCount + 1)
                  • Set TempItem = (Item carried by Hero[(Player number of (Triggering player))] in slot (Integer A))
                  • Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
                • Else - Actions
      • -------- Turn values into code --------
      • Custom script: set udg_Code = SaveLoad_Encode()
      • -------- Show code to player --------
      • Quest - Display to (Player group((Triggering player))) the Secret message: Your code:
      • Game - Display to (Player group((Triggering player))) for 60.00 seconds the text: Code
      • Game - Display to (Player group((Triggering player))) for 60.00 seconds the text:


Trigger:
  • SaveLoad Load Hero
    • Events
      • Player - Player 1 (Red) types a chat message containing -load as A substring
      • Player - Player 2 (Blue) types a chat message containing -load as A substring
      • Player - Player 3 (Teal) types a chat message containing -load as A substring
      • Player - Player 4 (Purple) types a chat message containing -load as A substring
      • Player - Player 5 (Yellow) types a chat message containing -load as A substring
      • Player - Player 6 (Orange) types a chat message containing -load as A substring
      • Player - Player 7 (Green) types a chat message containing -load as A substring
      • Player - Player 8 (Pink) types a chat message containing -load as A substring
      • Player - Player 9 (Gray) types a chat message containing -load as A substring
      • Player - Player 10 (Light Blue) types a chat message containing -load as A substring
    • Conditions
      • (Substring((Entered chat string), 1, 6)) Equal to (Matched chat string)
      • (Length of (Entered chat string)) Greater than 6
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Hero[(Player number of (Triggering player))] Equal to No unit
        • Then - Actions
        • Else - Actions
          • Game - Display to (Player group((Triggering player))) the text: You already have a ...
          • Skip remaining actions
      • -------- Try to decode what was typed --------
      • Set Code = (Substring((Entered chat string), 7, (Length of (Entered chat string))))
      • Custom script: set udg_Validate = SaveLoad_Decode( udg_Code )
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Validate Equal to False
        • Then - Actions
          • -------- Invalid code --------
          • Game - Display to (Player group((Triggering player))) the text: There's some error ...
          • Skip remaining actions
        • Else - Actions
      • -------- It worked, let's do something with it --------
      • Unit Group - Pick every unit in (Units owned by (Triggering player) of type Hero Selection) and do (Actions)
        • Loop - Actions
          • Unit - Remove (Picked unit) from the game
      • Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True)) and do (Actions)
        • Loop - Actions
          • Unit - Remove (Picked unit) from the game
      • Set SaveCount = 1
      • Custom script: set udg_TempUnitType = SaveLoad_Integer2Unit(udg_Save[udg_SaveCount])
      • Unit - Create 1 TempUnitType for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
      • Set Hero[(Player number of (Triggering player))] = (Last created unit)
      • Set SaveCount = (SaveCount + 1)
      • Hero - Set (Last created unit) Hero-level to Save[SaveCount], Hide level-up graphics
      • Set SaveCount = (SaveCount + 1)
      • Player - Set (Triggering player) Current gold to Save[SaveCount]
      • -------- Alchemy --------
      • Set SaveCount = (SaveCount + 1)
      • Set Alchemy_Level[(Player number of (Triggering player))] = Save[SaveCount]
      • -------- Gardening --------
      • Set SaveCount = (SaveCount + 1)
      • Set Gardening_Level[(Player number of (Triggering player))] = Save[SaveCount]
      • -------- Magic --------
      • Set SaveCount = (SaveCount + 1)
      • Set TempLoader = (Triggering player)
      • For each (Integer A) from 1 to Save[SaveCount], do (Actions)
        • Loop - Actions
          • Set Magic_Level[(Player number of (Triggering player))] = (Integer A)
          • Trigger - Run Magiccheck <gen> (ignoring conditions)
      • -------- Security --------
      • Set SaveCount = (SaveCount + 1)
      • Set Security_Level[(Player number of (Triggering player))] = Save[SaveCount]
      • -------- Woodcutting --------
      • Set SaveCount = (SaveCount + 1)
      • Set Woodcutting_Level[(Player number of (Triggering player))] = Save[SaveCount]
      • -------- Items --------
      • For each (Integer A) from 1 to Save[SaveCount], do (Actions)
        • Loop - Actions
          • Set SaveCount = (SaveCount + 1)
          • Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
          • Hero - Create TempItemType and give it to (Last created unit)
 

Yoshii

New Member
Reaction score
74
is it loading/saving everything else?
your way of saving is a different than mine and we both use that system;probably cuz I used the basic save at base and edited to my fitting but still.
 

Denegoth

New Member
Reaction score
18
is it loading/saving everything else?
your way of saving is a different than mine and we both use that system;probably cuz I used the basic save at base and edited to my fitting but still.

Yeah, it just seems to be items
 

Yoshii

New Member
Reaction score
74
Trigger:
  • Set TempItem = (Item carried by Hero[(Player number of (Triggering player))] in slot (Integer A))

you are running a loop from 1 to 6 and tempitem is set each time to a different slot item so basically the trigger will only save the item in slot 6

atleast thats the thing i see that doesnt seem right.
 

Denegoth

New Member
Reaction score
18
Right, from what I can see it's just saving items in slot 1. I tried adding an array to the TempItem, but it didn't work.
 

Yoshii

New Member
Reaction score
74
Right, from what I can see it's just saving items in slot 1. I tried adding an array to the TempItem, but it didn't work.
Set TempItem[A] = (Item carried by Hero[(Player number of (Triggering player))] in slot (Integer A))

is that what you wrote? you woudl also need to edit the load part array must have size of 6
 

Denegoth

New Member
Reaction score
18
Set TempItem[A] = (Item carried by Hero[(Player number of (Triggering player))] in slot (Integer A))

is that what you wrote? you woudl also need to edit the load part array must have size of 6

I tried that. I also added some stuff to the Jass part.
 

Denegoth

New Member
Reaction score
18
should work with all item and up to 6 i tested with 1 2 3 4 5 6 and it worked.

msg me for any question

I tried editing mine to be similar to yours, but it just won't work. It's saving only a few of the items. Thanks for your help anyway though, I guess I'll remove item saving from my map.
 

Yoshii

New Member
Reaction score
74
I tried editing mine to be similar to yours, but it just won't work. It's saving only a few of the items. Thanks for your help anyway though, I guess I'll remove item saving from my map.

you can send me the map if you want
 
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