Hello guys, as you can see the title, my problem is related to AceHart's SaveLoad, in my orpg, I had so many data to save, that I did 2 saves & 2 loads to keep everything okay (codes would become so long that you couldn't write everything in warcraft's chat).
Here are the triggers :
(Note: I'm actually a french baguette, so I translated as good as I could for you guys, I might have forgot some words :/)
The first save load basically save : Herotype, Level of 3 spell relative to your herotype, Gold&Wood, Boost related to completed quests, HeroExperience, Items, Stack of your items (potions etc..)
Here are the triggers :
(Note: I'm actually a french baguette, so I translated as good as I could for you guys, I might have forgot some words :/)
Code:
Save 1
Event
Player - Player 1 (Red) types a chat message containing -save as exact string
Conditions
Actions
-------- Prepare the save array --------
Set SaveCount = 0
-------- Take all Heroes --------
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 )
-------- Abilities --------
For each (Integer C) from 1 to ChoiceHeroes_ButtonsNumber, do (Actions)
Boucle - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Picked unit)) equal to BonusStats_UnitType[C]
Then - Actions
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = (Level of BonusStats_Passive[((C x 9) - 8)] for (Picked unit))
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = (Level of BonusStats_Passive[((C x 9) - 7)] for (Picked unit))
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = (Level of BonusStats_Passive[((C x 9) - 6)] for (Picked unit))
Set C = ChoiceHeroes_ButtonsNumber
Else - Actions
-------- Gold --------
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = ((Triggering player) actual Gold)
-------- Wood --------
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = ((Triggering player) actual Wood)
-------- Boost stats --------
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = (Level of Bonus de stats [quests] for (Picked unit))
-------- Hero experience --------
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = (Hero experience of (Picked unit))
-------- How many items does he carry --------
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = (Number of items carried by (Picked unit))
-------- Add all 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 (Picked unit) in slot (Integer A)) is owned) Egal to TRUE
Then - Actions
-------- The actual item --------
Set SaveCount = (SaveCount + 1)
Set TempItem = (Item carried by (Picked unit) in slot (Integer A))
Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
-------- The number of charges it has --------
Set SaveCount = (SaveCount + 1)
Set Save[SaveCount] = (Charges remaining in (Item carried by (Picked unit) in slot (Integer A)))
Else - Actions
-------- Turn values into code --------
Custom script: set udg_Code = SaveLoad_Encode()
-------- Show code to player --------
Game - Display to (Player group((Triggering player))) for 300.00 seconds the text: Your 1st code:
Game - Display to (Player group((Triggering player))) for 300.00 seconds the text: Code
Code:
Load 1
Event
Joueur - Joueur 1 (Rouge) 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)) superior to 6
Actions
-------- Try to decode --------
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 is a error in your code!
Skip remaining actions
Else - Actions
-------- It worked --------
Set Load_WaitingDrop[(Player number of (Triggering player))] = TRUE
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 (Center of Drop_Regions[(Player number of (Triggering player))]) facing random angle
For each (Integer C) from 1 to ChoiceHeroes_ButtonsNumber, do (Actions)
Boucle - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Last created unit)) equal to BonusStats_UnitType[C]
Then - Actions
Set SaveCount = (SaveCount + 1)
Unit - Add BonusStats_Passive[(((Integer B) x 9) - 8)] to (Last created unit)
Unit - Set level of BonusStats_Passive[(((Integer B) x 9) - 8)] for (Last created unit) to Save[SaveCount]
Set SaveCount = (SaveCount + 1)
Unit - Add BonusStats_Passive[(((Integer B) x 9) - 7)] to (Last created unit)
Unit - Set level of BonusStats_Passive[(((Integer B) x 9) - 7)] for (Last created unit) to Save[SaveCount]
Set SaveCount = (SaveCount + 1)
Unit - Add BonusStats_Passive[(((Integer B) x 9) - 6)] to (Last created unit)
Unit - Set level of BonusStats_Passive[(((Integer B) x 9) - 6)] for (Last created unit) to Save[SaveCount]
Set C = ChoiceHeroes_ButtonsNumber
Else - Actions
Set SaveCount = (SaveCount + 1)
Joueur - Set (Triggering player) actual Gold to Save[SaveCount]
Set SaveCount = (SaveCount + 1)
Joueur - Set (Triggering player) actual Wood to Save[SaveCount]
Set SaveCount = (SaveCount + 1)
Unit - Add Bonus de stats [quests] to (Last created unit)
Unit - Set level of Bonus de stats [quests] for (Last created unit) to Save[SaveCount]
Set SaveCount = (SaveCount + 1)
Heroes - Add Save[SaveCount] experience to (Last created unit), Hide level-up graphics
Set SaveCount = (SaveCount + 1)
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])
Heroes - Create TempItemType and give it to (Last created unit)
Set SaveCount = (SaveCount + 1)
Items - Set charges remaining in (Last created item) to Save[SaveCount]