Save/Load Code, Yet Another

Discussion in 'Tutorial Repository' started by AceHart, Jan 21, 2007.

  1. DarK_L3g10N

    DarK_L3g10N New Member

    Ratings:
    +0 / 0 / -0
    deci imi da script errors la „SaveLoad Load” si la „SaveLoad Save”
    si scrie mai jos „set udg_Validate = SaveLoad_Decode( udg_Code )”
    si „set udg_Save[udg_SaveCount] = SaveLoad_Unit2Integer( udg_TempUnit )”
    ce ar trebui sa fac??????????????
     
  2. Whoareyou.

    Whoareyou. New Member

    Ratings:
    +24 / 0 / -0
    English please?
     
  3. DarK_L3g10N

    DarK_L3g10N New Member

    Ratings:
    +0 / 0 / -0
    sorry do not speak English
    So it gives me script errors on "SaveLoad Load" and "Save SaveLoad"
    and write down the set udg_Validate = SaveLoad_Decode (udg_Code)
    and "set udg_Save [udg_SaveCount] = SaveLoad_Unit2Integer (udg_TempUnit)
    Why should I do ??????????????
    I do not know English
    :))
     
  4. Warplord

    Warplord Cool Member

    Ratings:
    +0 / 0 / -0
    I really like that but ... can someone tell me one small question?

    I want the system to save non-hero abilities, which are added to the hero during the game. It doesn't do it right now. Can anyone write what lines should I add to the save/load/init triggers? THank you.
     
  5. Nestharus

    Nestharus o-o

    Ratings:
    +83 / 0 / -0
  6. visitor85

    visitor85 New Member

    Ratings:
    +0 / 0 / -0
    Can anyone help me fixing acehart's save/load system? I'm trying to modify it to save hero level/exp ; gold ; items/item charges and abilities. Sometimes it works and sometimes I get wrong loading data(unspent ability points, wrong items and others) I'm a newbie to map editing, so this was the easiest system I found(I know there are better ones, but they are too complicated...)

    Code:
     SaveLoad Save All Copy
     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)
     -------- Take all Heroes --------
     Set UnitGroup = (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))
     Set SaveCount = (SaveCount + 1)
     Set Save[SaveCount] = (Number of units in UnitGroup)
     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 Experience --------
     Set SaveCount = (SaveCount + 1)
     Set Save[SaveCount] = (Hero experience of (Picked unit))
     -------- Hero Position X --------
     Set SaveCount = (SaveCount + 1)
     Set Save[SaveCount] = (Integer((X of (Position of (Picked unit)))))
     -------- Hero Position Y --------
     Set SaveCount = (SaveCount + 1)
     Set Save[SaveCount] = (Integer((Y of (Position 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
     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 --------
     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
    Code:
     SaveLoad Load All Copy
     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
     -------- 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 = 1
     -------- Restore Gold --------
     Player - Set (Triggering player) Current gold to Save[SaveCount]
     -------- For "number of Heroes", do --------
     Set SaveCount = (SaveCount + 1)
     For each (Integer B) from 1 to Save[SaveCount], do (Actions)
     Loop - Actions
     -------- 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 Default building facing degrees
     -------- Set Experience --------
     Set SaveCount = (SaveCount + 1)
     Hero - Set (Last created unit) experience to Save[SaveCount], Hide level-up graphics
     -------- Move to saved position --------
     Set SaveCount = (SaveCount + 1)
     Unit - Move (Last created unit) instantly to (Point((Real(Save[SaveCount])), (Real(Save[(SaveCount + 1)]))))
     Set SaveCount = (SaveCount + 1)
     -------- 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]
     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)
     
  7. Scytharius

    Scytharius You can change this now in User CP.

    Ratings:
    +0 / 0 / -0
    Can anybody tell me how to increase the hero cap for saving and loading with this system? This system only saves 5 heroes, I need it so it saves at least 10. I looked at the system 7 times and I can't find out how. Anybody know how?
     
  8. Scytharius

    Scytharius You can change this now in User CP.

    Ratings:
    +0 / 0 / -0

    Save 10 heroes per player I mean.
     

Share This Page