Ok, here are some tips for you how to make your requested features.
Backpack system: you can use a scrollable multiboard with cursor. Here, take my old project and find that scrollable full-functional multiboard in it. Don't forget to edit it, as it more represents an engine-like umm err just open the map ok, I don't remember already much about it.
As Hearthstone system you can use a variable which indicates a unit. When you trigger something, your hero is teleported to that unit's position.
The VARIABLEOFTYPE_UNIT is set in some other trigger which runs this trigger checking its conditions.
-
Mark a town
-
Events
-
Conditions
-
Unit classification (can be found in boolean conditions) of VARIABLEOFTYPE_UNIT is a Hero Equal to True
-
Actions
-
Set VARIABLEOFTYPE_UNIT_N2[(Player Number of (Owner of (VARIABLEOFTYPE_UNIT)))] = Town Hall 0567 <gen>
-
Teleport to a location after death
-
Events
-
Unit - A unit dies
-
Conditions
-
(Dying unit) is a Hero Equal to True
-
Actions
-
Hero - Revive hero at (Position of (VARIABLEOFTYPE_UNIT_N2[(Player Number of (Owner of (Triggering unit)))])
-
or
-
Unit - Move Instantly
Save/Load system is based on text that you enter. Here's the most basic one:
-
Load a hero
-
Events:
-
Player - Player 1 (Red) types a chat message containing (empty string) as a substring
-
Conditions:
-
Length of (Entered chat string) Greater than 1
-
Substring 1,1 of (Entered chat string) Equal to "-"
-
Actions:
-
If (Substring 2,2 of (Entered chat string) Equal to Q) then do (Create 1 Footman for Player 1 (Red) at center of playable map area facing default building facing degrees) else do (If (Substring 2,2 of (Entered chat string) Equal to J) then do (Create 1 Knight at for Player 1 (Red) at center of playable map area facing default building facing degrees) else do (Do nothing)
-
If (Substring 3,3 of (Entered chat string) Equal to 1) then do (Create an item of type Ring of Protection +1 and give it to (Last Created Unit)) else do (If (Substring 3,3 of (Entered chat string) Equal to 9) then do (Create an item of type Ring of Protection +2 and give it to (Last Created Unit)) else do (Do nothing)
So when you type -Q1 you spawn a footman with ring of protection +1. But that's an awful save/load system as you'll have to work on it for the rest of your life in case if you're planning to make a map with wide variety of heroes and items.
A good save/load system would be the one using object's raw names. As the entered chat string would be too long then and not have enough place to be typed, the save/load can use only first two letters of the raw name of an object. This feature will require use of JASS or custom script, but that's still pretty simple.
EDIT2: I've found an other old project with a bit different and more advanced scrollable multiboard.