- Joined
- Jul 25, 2005
- Messages
- 573
I've used AceHart's save/load once before in my Dark Sun RPG map, I'm using it again in a new RPG I'm working on and I need it to also save hero skill levels. I've been messing with it trying to get it to work properly but for some reason it won't load the skill levels on the hero when I load the code.
Anyone know if that part of the code in AceHart's system is bugged?
Update
Ok it works in AceHarts map however in mine something is wrong and I can't seem to pinpoint it. Suggestions? I'll post the triggers.
Here is the Save trigger. Which as far as I know works for everything other than the skill saving.
It uses a mix of his triggers to save/load Gold, Lumber, Hero, Hero level, Remaining Skill points, hero exp, skills, skill levels, and I believe thats all I'm trying to get it to save atm, it works with everything BUT the skills, it will not increase their levels.
Anyone know if that part of the code in AceHart's system is bugged?
Update
Ok it works in AceHarts map however in mine something is wrong and I can't seem to pinpoint it. Suggestions? I'll post the triggers.
Here is the Save trigger. Which as far as I know works for everything other than the skill saving.
-
SaveLoad Save Mine
-
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
- Conditions
-
Actions
- -------- Prepare the save array with this player's Hero --------
- Set SaveCount = 0
- -------- Player's Gold --------
- Set SaveCount = (SaveCount + 1)
- Set Save[SaveCount] = ((Triggering player) Current gold)
- -------- Player's Lumber --------
- Set SaveCount = (SaveCount + 1)
- Set Save[SaveCount] = ((Triggering player) Current lumber)
- -------- 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 )
- -------- Skill Points --------
- Set SaveCount = (SaveCount + 1)
- Set Save[SaveCount] = (Unspent skill points of (Picked unit))
- -------- Hero level --------
- Set SaveCount = (SaveCount + 1)
- Set Save[SaveCount] = (Hero level 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) Equal 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
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
- -------- Add all abilities --------
-
For each (Integer A) from 1 to SaveLoad_Abilities_LastIndex, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Level of SaveLoad_Abilities[(Integer A)] for (Picked unit)) Greater than 0
-
Then - Actions
- -------- The actual ability --------
- Set SaveCount = (SaveCount + 1)
- Set Save[SaveCount] = (Integer A)
- -------- Its level --------
- Set SaveCount = (SaveCount + 1)
- Set Save[SaveCount] = (Level of SaveLoad_Abilities[(Integer A)] for (Picked unit))
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
Loop - 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
-
Events
It uses a mix of his triggers to save/load Gold, Lumber, Hero, Hero level, Remaining Skill points, hero exp, skills, skill levels, and I believe thats all I'm trying to get it to save atm, it works with everything BUT the skills, it will not increase their levels.
-
SaveLoad Load Mine
-
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
-
Conditions
- (Substring((Entered chat string), 1, 6)) Equal to (Matched chat string)
- (Length of (Entered chat string)) Greater than 6
-
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
-
If - Conditions
- -------- It worked, let's do something with it --------
-
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
-
Loop - Actions
- Set TempInteger = SaveCount
- Set SaveCount = 1
- -------- Restore Gold --------
- Player - Set (Triggering player) Current gold to Save[SaveCount]
- Set SaveCount = (SaveCount + 1)
- -------- Restore Lumber --------
- Player - Set (Triggering player) Current lumber to Save[SaveCount]
- Set SaveCount = (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 SaveCount = (SaveCount + 1)
- Hero - Modify unspent skill points of (Last created unit): Set to Save[SaveCount] points
- Set SaveCount = (SaveCount + 1)
- Hero - Set (Last created unit) Hero-level to Save[SaveCount], 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])
- Hero - Create TempItemType and give it to (Last created unit)
- Set SaveCount = (SaveCount + 1)
- Item - Set charges remaining in (Last created item) to Save[SaveCount]
-
Loop - Actions
-
For each (Integer SaveCount) from Save[SaveCount] to TempInteger, do (Actions)
-
Loop - Actions
-
For each (Integer A) from 1 to Save[(SaveCount + 1)], do (Actions)
-
Loop - Actions
- Custom script: call SelectHeroSkill( GetLastCreatedUnit(), udg_SaveLoad_Abilities[ udg_Save[ udg_SaveCount ] ] )
-
Loop - Actions
- Set SaveCount = (SaveCount + 1)
-
For each (Integer A) from 1 to Save[(SaveCount + 1)], do (Actions)
-
Loop - Actions
-
Events
-
For each (Integer SaveCount) from Save[SaveCount] to TempInteger, do (Actions)
-
Loop - Actions
-
For each (Integer A) from 1 to Save[(SaveCount + 1)], do (Actions)
-
Loop - Actions
- Custom script: call SelectHeroSkill( GetLastCreatedUnit(), udg_SaveLoad_Abilities[ udg_Save[ udg_SaveCount ] ] )
-
Loop - Actions
- Set SaveCount = (SaveCount + 1)
-
For each (Integer A) from 1 to Save[(SaveCount + 1)], do (Actions)
-
Loop - Actions
Last edited: