Save/Load Code, Yet Another

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,497
> None of the custom scripts are working.

That's a classic in this thread here...

Open the save/load map,
trigger editor,
click on the map's name at the very top of the trigger list.

See that bunch of text there?

Select it all and copy & paste it into your own map's custom header.
 

Josan

New Member
Reaction score
0
-load (unspent)Hero Skill Points...

Hello, I'm trying to make the code remember hero's skill points (unspent) after learned skills. But every time I load the hero with learned skills it does not have the correct skill point amount (has amount equal to level - skill learned instead of real amount)...
So far I got it to remember my hero, exp, str, dex, int, gold, lumber, items and learned skills. Just need this skill points to be saved! I tried putting

(save trigger) Set Save[SaveCount]=(Unspent skill points of Picked unit))
and
(load trigger) Hero - Modify unspent skill points of (Picked unit): Set to Save[SaveCount]

before and after the abilities loop and neither worked so far... argh:banghead:

anyway thanks for code ace, here's a hart 4 u <3

EDIT: on further testing it seems that triggers wont add a skill point if hero has all skills learned... anyone know a way around that?
Also the code is only remembering 2 skills learned... how would I make it 5? and the skill only can load up to level 3? how could i make that 10 or more?

well heres my codes...
Code:
SaveLoad Save All
    Events
        Player - Player 1 (Red) types a chat message containing -save as An exact match
    Conditions
    Actions
        -------- Prepare the save array with this player's Hero --------
        Set SaveCount = 0
        Set UnitGroup = (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))
        Unit Group - Pick every unit in UnitGroup 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 Skill Points --------
                Set SaveCount = (SaveCount + 1)
                Set Save[SaveCount] = (Unspent skill points of (Picked unit))
                -------- Hero Experience --------
                Set SaveCount = (SaveCount + 1)
                Set Save[SaveCount] = (Hero experience of (Picked unit))
                -------- Hero Strength --------
                Set SaveCount = (SaveCount + 1)
                Set Save[SaveCount] = (Strength of (Picked unit) (Exclude bonuses))
                -------- Hero Dexterity --------
                Set SaveCount = (SaveCount + 1)
                Set Save[SaveCount] = (Agility of (Picked unit) (Exclude bonuses))
                -------- Hero Intelligence --------
                Set SaveCount = (SaveCount + 1)
                Set Save[SaveCount] = (Intelligence of (Picked unit) (Exclude bonuses))
                -------- 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)
                -------- 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
                -------- 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
        -------- Turn values into code --------
        Custom script:   set udg_Code = SaveLoad_Encode()
        -------- Show code to player --------
        Cinematic - Clear the screen of text messages for (Player group((Triggering player)))
        Quest - Display to (Player group((Triggering player))) the Secret message: (Saved: Level  + ((String((Hero level of TempUnit))) + (  + (Name of TempUnit))))
        Game - Display to (Player group((Triggering player))) for 300.00 seconds the text: Code

Code:
SaveLoad Load All
    Events
        Player - Player 1 (Red) 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: Invalid code!
                Skip remaining actions
            Else - Actions
        -------- 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
        Set TempInteger = SaveCount
        Set SaveCount = 0
        -------- Restore Hero --------
        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 (Random angle) degrees
        -------- Set Skill Points --------
        Set SaveCount = (SaveCount + 1)
        Hero - Modify unspent skill points of (Picked unit): Set to Save[SaveCount] points
        -------- Set Experience --------
        Set SaveCount = (SaveCount + 1)
        Hero - Set (Last created unit) experience to Save[SaveCount], Hide level-up graphics
        -------- Set Strength --------
        Set SaveCount = (SaveCount + 1)
        Hero - Modify Strength of (Last created unit): Set to Save[SaveCount]
        -------- Set Dexterity --------
        Set SaveCount = (SaveCount + 1)
        Hero - Modify Agility of (Last created unit): Set to Save[SaveCount]
        -------- Set Intelligence --------
        Set SaveCount = (SaveCount + 1)
        Hero - Modify Intelligence of (Last created unit): Set to Save[SaveCount]
        -------- Restore Gold --------
        Set SaveCount = (SaveCount + 1)
        Player - Set (Triggering player) Current gold to Save[SaveCount]
        -------- Restore Lumber --------
        Set SaveCount = (SaveCount + 1)
        Player - Set (Triggering player) Current lumber to Save[SaveCount]
        -------- Recreate all items --------
        Set SaveCount = (SaveCount + 1)
        For each (Integer A) from 1 to Save[SaveCount], do (Actions)
            Loop - Actions
                -------- The actual item --------
                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)
                -------- Number of charges --------
                Set SaveCount = (SaveCount + 1)
                Item - Set charges remaining in (Last created item) to Save[SaveCount]
        -------- Add all abilities --------
        For each (Integer SaveCount) from (SaveCount + 1) 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 ] ] )
                Set SaveCount = (SaveCount + 1)
 

Warplord

Cool Member
Reaction score
0
there are 2 things that bother me ...
first, I tried to use a paladin, it loads but No items are being loaded (the same ones that the blood mage loads)
and the next is that I cannot save the abilities and their level for the hero I'm saving.... pls help
 

Warplord

Cool Member
Reaction score
0
I think I understood to make this thing work for my needs, but one thing reamins:
Is there ANY way to make it save Hero Abilities and thier current Lvl
(e.g. Holy Light 4 lvl on 15 lvl Paladin Hero)
and wjen I load the Paladin will have his ability not 4 abbility points ...
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,497
There's three categories:
- one that saves a bunch of numbers
- one that saves a basic Hero
- one that does it all

Have a look at what they do and how and get some inspiration from there.
 

Warplord

Cool Member
Reaction score
0
I am trying to make this save agil str and int (ignoring bonuses) as well as Health ...
I've created integers SaveLoadSlotsgil/str/int but I have no idea how to make them save ?
would it be like gold or ... ?
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,497
There's an array, that holds a list of numbers.
That's it already.
And a counter to tell the code how many numbers are in that array.
What you do with them is something the code does not care about.

> would it be like gold

Yes.
 

foodflare

You can change this now in User CP.
Reaction score
32
i was looking through and couldnt find where you set code=(the encoded mush)
 
Z

zackj191

Guest
I need some help with a code for saving a integer, like in NotD. I saw the one a couple pages back but... i got confused... I make maps alot just, save/load kills me. i can never figure it out. Please can someone explain it like your talking to a 10 year old...(im not 10 by the way!)
 

Holloweye

New Member
Reaction score
0
Can any1 help me with modyfi it so it saves this:
Hero
Items
Items Charges
Gold
Lumber
Experiance

I have tried but i just get alot of errors and stuff. So if you could Attach a file or something so i can get it. It would be very helpfull.
 
1

1-Cent

Guest
AceHart, how can I add all my "Kills", "Deaths", "PvPPoints" ect. to the code?
Thanks :)
 
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