1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. The long-awaited results for Concept Art Contest #11 have finally been released!
    Dismiss Notice
  3. Join Texturing Contest #30 now in a legendary battle of mythological creatures!
    Dismiss Notice
  4. The Aftermath has been revealed for the 19th Terraining Contest! Be sure to check out the Results and see what came out of it.
    Dismiss Notice
  5. Hivers united and created a bunch of 2v2 melee maps. Vote for the best in our Melee Mapping Contest #4 - Poll!
    Dismiss Notice
  6. Check out the Staff job openings thread.
    Dismiss Notice

Codeless Save and Load (Multiplayer) - v2.0.0

Submitted by TriggerHappy
This bundle is marked as approved. It works and satisfies the submission rules.
Information

If you've ever wanted to transfer progress between multiplayer maps, you probably needed to type in a long code.

That is no longer needed with this system. This will allow you to read save data from your WC3 folder and sync it to all other players in the map.

The demo map features:
  1. Load without typing anything
  2. Save Hero
    • Level/XP
    • Items
    • Abilities
    • Hero Name

  3. 5 Save Slots
* Everything is customizable and you can make the system save & load anything you want.

* There are GUI and JASS examples.

* You can find more information on how the system works by looking at the core library Sync or it's documentation.

Installation

To import the system, all you have to do is copy the trigger folders over to your map and save it.

Screenshots


[​IMG]
[​IMG]
[​IMG]
[​IMG]


Credits

Pipedream (optimal save system), nestharus (file i/o)
Previews
Contents

Codeless Save & Load v1.3.9 (Map)

Codeless Save & Load v2.0.0 (Map)

Reviews
Moderator
Awaiting further review
  1. krolergmp

    krolergmp

    Joined:
    Aug 24, 2014
    Messages:
    28
    Resources:
    0
    Resources:
    0




    It worked
    Thanks :D +rep
     
    Last edited: Feb 13, 2019
  2. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    6
    Resources:
    0
    Resources:
    0
    Good night people
    wanted help to add an extra bag to save ...
    grateful..
     
  3. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    53
    Resources:
    0
    Resources:
    0
    How could I make it so when a player walks through a region all current players are sent to a new map and their heroes are loaded
     
  4. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,529
    Resources:
    17
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    17
    Impossible. You cannot automatically start another map unless it is in a campaign.
     
  5. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    53
    Resources:
    0
    Resources:
    0
    I'm trying to make an RPG essentially that has instances for dungeons or large cities if I make the map a campaign would it not work this way?
     
  6. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,529
    Resources:
    17
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    17
  7. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    53
    Resources:
    0
    Resources:
    0
    And this could work in a multiplayer map?
     
  8. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,529
    Resources:
    17
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    17
    No. Game Caches only work in campaigns and campaigns are single player.
     
  9. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,578
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    Your only option at the moment for multiplayer is to make your map large enough to contain all the instances you want to create. Then, you can create a region surrounding the entire area and change the player's camera bounds.
     
  10. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    53
    Resources:
    0
    Resources:
    0
    I'll be trying that out the only real issue I've begun to realize is the 480x480 space is not enough for me lol, but I might just scale everything down.
     
  11. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    6
    Resources:
    0
    Resources:
    0
  12. Clanzion

    Clanzion

    Joined:
    Jul 4, 2016
    Messages:
    358
    Resources:
    0
    Resources:
    0
     
  13. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    6
    Resources:
    0
    Resources:
    0
    I saw this post but it did not work ...

    I know it's asking too much ... does anyone have a map that has them both working?

    TriggerHappy

    I have a problem creating the character in SAVE / LOAD and the Equipment TOGETHER ... if anyone can help?
     
    Last edited by a moderator: Mar 25, 2019
  14. ToggleModGoat

    ToggleModGoat

    Joined:
    Jan 19, 2019
    Messages:
    9
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Someone probably asked this, but does it work without allowing local files or do any player who wants to save, need to enable that?
     
  15. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,578
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    It works without enabling anything as of patch 1.30.
     
  16. ToggleModGoat

    ToggleModGoat

    Joined:
    Jan 19, 2019
    Messages:
    9
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Amazing.

    But it looks too complicated for me tho. I only need to save Tech-Type for my map, so im trying around with stuff :confused:
     
  17. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    6
    Resources:
    0
    Resources:
    0
  18. Azoth

    Azoth

    Joined:
    Sep 10, 2013
    Messages:
    18
    Resources:
    0
    Resources:
    0
    Something doesn't work right with the GUI -save/-load system.

    If you save your progress (type: "-save") for the first time, for example a Hero lvl 5, quit the game, restart it and type "-load", the lvl 5 Hero will be loaded. Until here everything is fine. But ...
    ... if you save him again (for example with lvl 7) and load him again, you will get your past saved game with an Hero of lvl 5.
     
  19. ZiGOR

    ZiGOR

    Joined:
    Mar 17, 2012
    Messages:
    561
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Hello. I've never done saving before. How can I save the Integer variable for every player in the game and load it next game using this system? :)
     
  20. Uncle

    Uncle

    Joined:
    Aug 10, 2018
    Messages:
    76
    Resources:
    0
    Resources:
    0
    Is there a limitation to how much you can save? I'm having issues with my map, I have a Diablo style item system that needs to store a lot of different variables to an item.

    • Save Items
      • Events
      • Conditions
      • Actions
        • Set SaveTempUnit = Player1StashIndex[1]
        • 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 SaveTempUnit in slot (Integer A)) Not equal to No item
              • Then - Actions
                • Set TempItem = (Item carried by SaveTempUnit in slot (Integer A))
                • Set TempInteger = (Custom value of TempItem)
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemMod1[TempInteger]
                • Set SaveMaxValue[SaveCount] = 50
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemMod2[TempInteger]
                • Set SaveMaxValue[SaveCount] = 50
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveMaxValue[SaveCount] = 50
                • Set SaveValue[SaveCount] = ItemMod3[TempInteger]
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemRoll1[TempInteger]
                • Set SaveMaxValue[SaveCount] = 100
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemRoll2[TempInteger]
                • Set SaveMaxValue[SaveCount] = 100
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemRoll3[TempInteger]
                • Set SaveMaxValue[SaveCount] = 100
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemTier1[TempInteger]
                • Set SaveMaxValue[SaveCount] = 10
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemTier2[TempInteger]
                • Set SaveMaxValue[SaveCount] = 10
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemTier3[TempInteger]
                • Set SaveMaxValue[SaveCount] = 10
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemBase[TempInteger]
                • Set SaveMaxValue[SaveCount] = 25
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemType[TempInteger]
                • Set SaveMaxValue[SaveCount] = 25
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemRarity[TempInteger]
                • Set SaveMaxValue[SaveCount] = 5
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemLevel[TempInteger]
                • Set SaveMaxValue[SaveCount] = 100
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemGoldValue[TempInteger]
                • Set SaveMaxValue[SaveCount] = 999
              • Else - Actions


    • Load Items
      • Events
      • Conditions
      • Actions
        • Set TurnOffLoop = False
        • 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
                • TurnOffLoop Equal to False
              • Then - Actions
                • Set SaveCount = (SaveCount + 1)
                • Set SaveMaxValue[SaveCount] = 999
                • Custom script: call SaveHelper.GUILoadNext()
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • SaveValue[SaveCount] Not equal to 0
                  • Then - Actions
                    • Game - Display to (All players) for 5.00 seconds the text: (Load Item + (String((Integer A))))
                    • Item - Create Dummy Item at (Center of (Playable map area))
                    • Set AIndexItemCount = (AIndexItemCount + 1)
                    • Set IndexItem[AIndexItemCount] = (Last created item)
                    • Item - Set the custom value of (Last created item) to AIndexItemCount
                    • Set TempInteger = AIndexItemCount
                    • -------- - --------
                    • Set ItemGoldValue[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 100
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemLevel[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 5
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemRarity[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 25
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemType[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 25
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemBase[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 10
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemTier3[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 10
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemTier2[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 10
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemTier1[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 100
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemRoll3[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 100
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemRoll2[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 100
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemRoll1[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 50
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemMod3[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 50
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemMod2[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 50
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemMod1[TempInteger] = SaveValue[SaveCount]
                  • Else - Actions
                    • Set TurnOffLoop = True
                    • Set SaveCount = (SaveCount - 1)
              • Else - Actions

    I can only Save and Load up to 4 items before this stops working. If there is no limit to how much I can save then what am I doing wrong?
     
    Last edited: May 17, 2019 at 1:42 AM