1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. The 15th Mini-Mapping Contest came to an end. The Secrets of Warcraft 3 are soon to be revealed! Come and vote in the public poll for your favorite maps.
    Dismiss Notice
  4. The 12th incarnation of the Music Contest is LIVE! The theme is Synthwave. Knight Rider needs a song to listen to on his journey. You should definitely have some fun with this theme!
    Dismiss Notice
  5. Join other hivers in a friendly concept-art contest. The contestants have to create a genie coming out of its container. We wish you the best of luck!
    Dismiss Notice
  6. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Codeless Save and Load (Multiplayer) - v3.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.

* This system is intended for GUI users.

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)
Previews
Contents

Codeless Save & Load v1.3.9 (Map)

Codeless Save & Load v3.0.0 (Map)

Reviews
Moderator
Awaiting further review
  1. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    7
    Resources:
    0
    Resources:
    0
    Good night people
    wanted help to add an extra bag to save ...
    grateful..
     
  2. 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
     
  3. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,573
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    Impossible. You cannot automatically start another map unless it is in a campaign.
     
  4. 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?
     
  5. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,573
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
  6. Recklessness

    Recklessness

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

    Chaosy

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

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,632
    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.
     
  9. 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.
     
  10. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    7
    Resources:
    0
    Resources:
    0
  11. Clanzion

    Clanzion

    Joined:
    Jul 4, 2016
    Messages:
    384
    Resources:
    0
    Resources:
    0
     
  12. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    7
    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
  13. 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?
     
  14. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,632
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    It works without enabling anything as of patch 1.30.
     
  15. 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:
     
  16. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    7
    Resources:
    0
    Resources:
    0
  17. 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.
     
  18. ZiGOR

    ZiGOR

    Joined:
    Mar 17, 2012
    Messages:
    569
    Resources:
    2
    Maps:
    2
    Resources:
    2
    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? :)
     
  19. Uncle

    Uncle

    Joined:
    Aug 10, 2018
    Messages:
    220
    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
  20. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,632
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    Updated, 3.0.0.
    • Patch 1.31 support.
    • Removed Sync and SyncInteger libraries and replaced them with the new sync natives introduced in Patch 1.31.
    • Updated FileIO to v1.1.0.
    • Added SavePlayerLoading variable to the initialization trigger to prevent an unknown variable error when copying to a new map.