- Joined
- Jun 12, 2010
- Messages
- 413
This is a JASS/GUI Save/Load System. The plan is to have as much GUI as possible and include a guide to editing the JASS for GUI users.
This is a system I was trying to come up with to allow saving and loading of bases in RP games such as Titan Land and RoTRP (basically, any sandbox in which resources don't matter)
Unfortunately, no physics professor is going to teach you about packets and netcoding, and studying already takes up a decent chunk of my time. So instead of trying to learn the existing save/load systems, I decided to take a day off and make my own, simpler version and finally learn at least some JASS.
Warcraft 3 doesn't allow you to force messages from player, so a fairly simple python script is required.
What it does:
YouTube Demonstration: *trigger warning: No editing, recommend watching at least at 1.5x**No annotations yet, so you probably won't be able to read anything, just see things happen*
Google Drive link for Python script source code (if you want to run the script, but don't think executables and strangers go well together or if you want to check out some lazy coding)
The current version of the system has been tested in a LAN environment and worked without causing any kind of desync. I also discovered that simulating keystrokes is not possible on wc3 windows opened by UnrealLoader (nor was it possible to create macros with my G510 keyboard, so it's likely an issue with the UnrealLoader)
TODO:
-Allow a larger number of save-names and maybe save player name along with save-name
-Stop being lazy and clear leaks <- Should be done, please tell me if you find any
-General optimization
-Make a better guide and reduce the number of required steps
DLs: Demo map and zipfile containing executable SaveNLoad.exe, required files and the python script (source code)
TL;DR: Has been tested on multiple LAN games with 2-4 players (same PC). Not the best system out there, but I decided to post it anyway since it may give someone a new idea on mixing external languages and wc3, and it's JASS/GUI
Guide:
This is a system I was trying to come up with to allow saving and loading of bases in RP games such as Titan Land and RoTRP (basically, any sandbox in which resources don't matter)
Unfortunately, no physics professor is going to teach you about packets and netcoding, and studying already takes up a decent chunk of my time. So instead of trying to learn the existing save/load systems, I decided to take a day off and make my own, simpler version and finally learn at least some JASS.
Warcraft 3 doesn't allow you to force messages from player, so a fairly simple python script is required.
What it does:
- Saves the UnitTypeId,X,Y,current life and facing angle of a unit in a file for every unit in a unit group (default is all units owned by triggering player, configurable to structures only in-game, but you can change it to whatever you want in the editor)
- Using an external program (written in Python), loads the units into the game by writing chat messages. Command to request the Python program to load is issued by the player in-game
YouTube Demonstration: *trigger warning: No editing, recommend watching at least at 1.5x**No annotations yet, so you probably won't be able to read anything, just see things happen*
Google Drive link for Python script source code (if you want to run the script, but don't think executables and strangers go well together or if you want to check out some lazy coding)
The current version of the system has been tested in a LAN environment and worked without causing any kind of desync. I also discovered that simulating keystrokes is not possible on wc3 windows opened by UnrealLoader (nor was it possible to create macros with my G510 keyboard, so it's likely an issue with the UnrealLoader)
TODO:
-Allow a larger number of save-names and maybe save player name along with save-name
-Stop being lazy and clear leaks <- Should be done, please tell me if you find any
-General optimization
-Make a better guide and reduce the number of required steps
DLs: Demo map and zipfile containing executable SaveNLoad.exe, required files and the python script (source code)
TL;DR: Has been tested on multiple LAN games with 2-4 players (same PC). Not the best system out there, but I decided to post it anyway since it may give someone a new idea on mixing external languages and wc3, and it's JASS/GUI
Guide:
- Create a folder named DataManager in the wc3 directory
- Extract zipfile to DataManager folder
- Open the folder SaveNLoad
- Open the folder Settings
- Edit Warcraft-Path.txt to match your wc3 installation path (change any \ to / and don't forget / at the end)
- Go back to folder SaveNLoad and run SaveNLoad.exe
- Open the map as normal
- Commands: -save xxxx to save|-request xxxx to load (please don't do anything until you see -load end)
Attachments
Last edited: