RM2K3 CUSTOMSAVELOADPATCH: CREATE YOUR OWN SAVE/LOAD SYSTEM!

Posts

Pages: first 12 next last
readme.txt
=========================
RM2k3 CustomSaveLoadPatch
=========================
For RPG Maker 2003 v1.08
by Cherry
www.cherrytree.at
cherry@cherrytree.at

This patch allows you to create your own save/load system.

FEATURES
--------

1) Save the game directly using an event
2) Load the game directly using an event
3) Check if a savestate exists using an event
4) Query information (name, level and HP of first hero) of a savestate using an event
5) Use as many savestates as you like (not limited to 1-15!)

INSTALLATION
------------

You need to have BetterAEP installed, otherwise loading games won't work. Get it here: http://cherrytree.at/download/?did=17

1) To install the CustomSaveLoadPatch, get Lunar IPS from here: http://fusoya.eludevisibility.org/lips/
2) Open Lunar IPS
3) Click "Apply IPS"
4) Select "RPG_RT_CustomSaveLoadPatch.ips" and click "Open"
5) At the next screen, select "All files" as filetype, navigate to your project folder, select your "RPG_RT.exe" file and click "Open"

USAGE
-----

A) SAVING THE GAME

1) Write the number of the save slot you want to use into variable 3351 (not limited to 1-15! Can also be zero or a number greater than 15.)
2) Open the save menu

EXAMPLE:
<> Change Variable {3351:SaveID} = 20
<> Call Save Menu
This will save the game into slot 20.

There is no visible or audible feedback when saving.

Note that when the user manually picks "Save" from the game menu, the game will be saved to the slot specified in variable 3351 and the menu will then be closed.
So if you want to use this feature, make sure variable 3351 is set to the right slot in the time the player is able to use the menu.

B) LOADING THE GAME

1) Write the number of the save slot you want to use into variable 3351 (not limited to 1-15! Can also be zero or a number greater than 15.)
2) Write 1 into variable 3350
3) Call the "End Event Processing" function

Note that steps 2 and 3 require BetterAEP to be installed.

EXAMPLE:
<> Change Variable {3351:SaveID} = 4
<> Change Variable {3350:BetterAEP} = 1
<> End Event Processing
This will load the game from slot 4.

When loading, the music and the screen will fade out.

If you try to load a nonexistent savestate, it will appear to work (the screen and music will fade out and in again), but nothing will happen.

C) QUERYING INFORMATION ABOUT A SAVESTATE

1) Write the number of the save slot you want to check into variable 3352 (not limited to 1-15! Can also be zero or a number greater than 15.)
2) Process the information as you wish

After writing a value to variable 3352, information about the savestate will be stored like this:

IF THE SAVESTATE EXISTS:
1) Variable 3352 will be 1
2) Variable 3353 will contain the level of the first hero in the savestate's party
3) Variable 3354 will contain the HP of the first hero in the savestate's party
4) The hero with ID 99 will get the name of the first hero in the savestate's party
IF THE SAVESTATE DOES NOT EXIST:
1) Variable 3352 will be 0
2) Variables 3353 and 3354 and hero 99 won't be changed

MAKE SURE YOU HAVE AT LEAST 99 HEROES IN YOUR DATABASE WHEN USING THIS FEATURE, OTHERWISE THE GAME WILL CRASH ("Event script referenced a hero that doesn't exist")!

EXAMPLE:
<> Change Variable {3352:SaveQuery} = 10
<> Branch If Var{3352:SaveQuery} == 1
... <> Message: Savestate 10 exists!
... : Hero Level: \v{3353}
... : Hero HP: \v{3354}
... : Hero Name: \n{99}
... <>
: Else
... <> Message: Savestate 10 doesn't exist!
... <>
: End
This will check whether savestate 10 exists, and if it does, it will display information about it.



Have fun!
Cherry

Download: http://cherrytree.at/downloads/customsaveload.rar

PS: Note that I replaced all square brackets with curly brackets, because otherwise the forum would swallow parts of my post.
This doesn't belong in the Help & Request section.
author=pyrodoom
This doesn't belong in the Help & Request section.

Cherry is helping.
author=Jude
author=pyrodoom
This doesn't belong in the Help & Request section.
Cherry is helping.

OH! Well, I always thought people posted here if they needed help, and then people post to their topics to help them out, not post topics to help people out, and the people who need it just uses the help, that's what tutorials are for! Sorry if I'm sounding rude, but it's just got me wandering...
Semantics. Let's just enjoy the new patch.

I'm definitely going to try this one out. Thanks for your continued advancements to this engine.
author=pyrodoom
author=Jude
author=pyrodoom
This doesn't belong in the Help & Request section.
Cherry is helping.
OH! Well, I always thought people posted here if they needed help, and then people post to their topics to help them out, not post topics to help people out, and the people who need it just uses the help, that's what tutorials are for! Sorry if I'm sounding rude, but it's just got me wandering...


Yeah you are right. Sorry. Moderators, feel free to move this topic around :D
This is very useful. Even the existing capabilities in DestinyPatch don't match this and if I'm ever working outside the normal menus in the future, this will be very helpful. Thanks again, Cherry.
Pyrodoom is right. This should be submitted as a utility! Because otherwise it's just going to get buried in the forums.
A little improvement, if somebody wants it:

http://share.cherrytree.at/showfile-6748/rpg_rt_save_switch_1005.ips
If you additonally apply this IPS patch, the "Save" command in the default menu does something different: It sets switch 1005 to ON and closes the menu. With this feature, you can then open your own (save) menu.

http://share.cherrytree.at/showfile-6749/save_switch_changer.exe
If you drag the patched RPG_RT onto this program, you can change the switch ID from 1005 to something else.
Really wondering how this works visually.. Would like to see if anyone has an example or a demo project. I know cherry usually has demo things .
Cherry, you are freaking awesome. I wish that these capabilities had been around back when I started in 2k3.
author=Cherry
A little improvement, if somebody wants it:

http://share.cherrytree.at/showfile-6748/rpg_rt_save_switch_1005.ips
If you additonally apply this IPS patch, the "Save" command in the default menu does something different: It sets switch 1005 to ON and closes the menu. With this feature, you can then open your own (save) menu.

http://share.cherrytree.at/showfile-6749/save_switch_changer.exe
If you drag the patched RPG_RT onto this program, you can change the switch ID from 1005 to something else.

Cherry, is it possible to get a patch/dynrpg plugin that does this exact thing when you go to "Quit" from the menu? I'd like to bypass this menu option and write a custom "System" menu if possible! Similar to this: http://yanflychannel.wordpress.com/rmvxa/menu-scripts/system-options/
author=PepsiOtaku
author=Cherry
A little improvement, if somebody wants it:

http://share.cherrytree.at/showfile-6748/rpg_rt_save_switch_1005.ips
If you additonally apply this IPS patch, the "Save" command in the default menu does something different: It sets switch 1005 to ON and closes the menu. With this feature, you can then open your own (save) menu.

http://share.cherrytree.at/showfile-6749/save_switch_changer.exe
If you drag the patched RPG_RT onto this program, you can change the switch ID from 1005 to something else.
Cherry, is it possible to get a patch/dynrpg plugin that does this exact thing when you go to "Quit" from the menu? I'd like to bypass this menu option and write a custom "System" menu if possible! Similar to this: http://yanflychannel.wordpress.com/rmvxa/menu-scripts/system-options/


you mean the quit command from the default 2k3 menu? if you are making a custom system menu, wouldn't you be using your own CMS anyways? sorry if i'm missing something ^.^;

i haven't had a chance to use this plugin yet, just discovered it a few days ago, but it's awesome! thanks cherry
author=Link_2112
author=PepsiOtaku
author=Cherry
A little improvement, if somebody wants it:

http://share.cherrytree.at/showfile-6748/rpg_rt_save_switch_1005.ips
If you additonally apply this IPS patch, the "Save" command in the default menu does something different: It sets switch 1005 to ON and closes the menu. With this feature, you can then open your own (save) menu.

http://share.cherrytree.at/showfile-6749/save_switch_changer.exe
If you drag the patched RPG_RT onto this program, you can change the switch ID from 1005 to something else.
Cherry, is it possible to get a patch/dynrpg plugin that does this exact thing when you go to "Quit" from the menu? I'd like to bypass this menu option and write a custom "System" menu if possible! Similar to this: http://yanflychannel.wordpress.com/rmvxa/menu-scripts/system-options/
you mean the quit command from the default 2k3 menu? if you are making a custom system menu, wouldn't you be using your own CMS anyways? sorry if i'm missing something ^.^;

i haven't had a chance to use this plugin yet, just discovered it a few days ago, but it's awesome! thanks cherry


I don't need to remake the whole menu. I'd just like to add some customizations. By replacing "Quit" with some kind of Switch activation, I can choose to have it say "System" and then add a Quit command into the System screen, while adding all of the other crap I want to add.
author=PepsiOtaku
I don't need to remake the whole menu. I'd just like to add some customizations. By replacing "Quit" with some kind of Switch activation, I can choose to have it say "System" and then add a Quit command into the System screen, while adding all of the other crap I want to add.

oh, you can do that in 20xx heh
Could you make a "lite" version? I kinda like the Load as is before the ips, but I do want to check whether the lsd save is present/absent.

author=Cherry
WIN32_FIND_DATA lpFindFileData;
HANDLE hFind = FindFirstFile("save??.lsd", &lpFindFileData)
if(hFind != INVALID_HANDLE_VALUE) {
RPG::switches = true;
FindClose(hFind);
} else {
RPG::switches = false;
}

What includes do I need to get this to work (is it windows.h)? C++ is really not my strong suit. I want to use this with an onComment to be able to call it on command. Something like @check_save with the parameter being the switch it gets stored to.

Hold on, I'm gonna try tinkering around with it.

Mkay, I did the following:

if(!cmd.compare("check_save"))
{
int save = parsedData->parameters[0].number;

WIN32_FIND_DATA lpFindFileData;
HANDLE hFind = FindFirstFile("save??.lsd", &lpFindFileData)
if(hFind != INVALID_HANDLE_VALUE)
{
RPG::switches[save] = true;
FindClose(hFind);

}
else
{
RPG::switches[save] = false;

}

return false;
}

This comment call worked for alot of code, but in this case I don't actually know my way around windows.h code. So yea, it gave me about a zillion undefined reference errors, possibly because I didn't define most of this code.
Oh I posted that plugin in the DynRPG thread. Get this & check out the readme.
http://rpgmaker.net/users/PepsiOtaku/locker/save_detector_v02.rar

This version only checks onStartup, but if you wanted additional checks, you could probably copy that code into an onSetVariable or onSetSwitch function.
If I can figure it out, I'll make a version 03.

If I can't, well, I'll just use it on Startup.
http://rpgmaker.net/users/bulmabriefs144/locker/save_detector_v03.zip

It's an exercise in redundancy, but assuming you wanna check whether you've save since startup, it could be useful. Just add @check_save to comment.

Agh, stupid. I doubleposted.
better aep is a RPG_RT.exe, but if you have the project patched with dynrpg?
there is no way of add better aep patching to a another RPG_RT.exe with dynrpg?
Pages: first 12 next last