| 10-22-2003, 09:18 AM | #1 |
not long ago i played a RPG , where soon as you wanted to leave u could save your hero with exact items , exp, and gold . how can this be done? |
| 10-22-2003, 03:53 PM | #2 |
Um... could you be more specific? Was it a single-player RPG or a multiplayer RPG? Once you saved them, what did you do with the saved data? Are you talking about the Hero Save program currently on the front page or something else? |
| 10-22-2003, 05:48 PM | #3 |
oops sorry here it is: - You press a save button - It then saves your hero with its exact exp, gold, and items and gives u a random genarated code - next game you enter. - you type the code in and u get ur exact hero and gold items as u did last time - |
| 10-22-2003, 06:22 PM | #4 |
Oh THAT trick! Ah, you might best not get me started down that road. ;) This is an old programmer's trick that's always been near and dear to my heart. But since you're still reading, I assume you still want to hear this, so here goes: The trick is that that code is not random, it holds the information on your character encoded within its complex and bizarre structure. This trick has been used since time immemorial to transfer information between two games/levels/maps/etc it might not otherwise be able to move between. Recently, the Golden Sun series of Game Boy Advance RPGs used it to transfer save data from the first game in the series to the second. The first place I ever saw it was a long time ago on an old thing called ZZT. ZZT was renowned for the fact that it had a complete world editor, and that was hot stuff back then. (Sure, it had only 16-color ASCII graphics, but dammit, that world editor rocked!) There was nothing like a game cache to move data between games, so you either had to make everything in one big game file or use passwords to transfer stuff between. Anyway, enough rambling. The secret is to create a code. We're going to create a String variable and then keep adding new code letters onto the end of it as we encode them. For example, let's say you want to record the hero's level first of all. You might make A stand for level 1, B for 2, etc. all the way up to whatever level is your highest. Of course, it might be wise to use something a little more complex than just A=1, B=2, C=3, etc so that it won't be so easy to break your code, but you get the idea. Then you might want to store things like which hero it was (1=paladin, 2=mountain king, J=lich) or what items they had, etc. I wish I could find a good tutorial on it somewhere, but I can't seem to locate any. Each time you want to add something, just Set Variable your code variable to Concatenate Strings and concatenate it and the new stuff you want to add. Now, to decode it, first get the player to input the password. Then check the sequences of the string that you encoded using the Substring option. I.E. You might have an If and use a String Comparison and then for one of the strings you're comparing, use Substring to get part of the password. Substring works by taking just PART of a string, just the letters between the points you set. Blizzard has a perfect example in WE once you select Substring. Anyway, for example, if you know the first letter is the level of the hero, you would use Substring to get that letter, then check which it was and set the hero's level to be that. Capiche? For a faster, if less secure, system, you could also use the built-in ability to convert integers/reals/etc to strings and vice-versa. I realize that that's a pretty high-level explanation, and my best advice to you is to just try it and experiment with setting variables and things. It's a cool system, not an easy one. If you have any more questions, feel free to ask. I'll do my best to explain it. But your best bet is to go in and check out the Set Variable action, make a couple variables of different types, and then see how you can set an integer to be equal to the value of a string, for example. (In the "Value" option, select Function: Conversion - Convert String To Integer, and then select the string you want for that value. You can use substring in there to select just part of a string as well.) |
| 10-22-2003, 06:29 PM | #5 |
sounds pretty darn complex..... could we contact the author of that map so he could give us the triggers to ...experiment ? :))))) |
| 10-22-2003, 06:35 PM | #6 |
I seem to recall something about one of the World Editor replacement programs being able to make a hero save trigger -- not sure if this is what you have in mind, Hezza, but it'd be worth looking into. |
| 10-22-2003, 09:52 PM | #7 |
You know, I never thought about that, but you're absolutely right. World Editor Unlimited can save a hero to a password with one of its oh-so-loveable custom triggers. So the new, shorter answer is: Use WEU! :D |
| 10-22-2003, 10:34 PM | #8 |
Yea, but WEU only works for Single Player maps, or multi if the people playing start War3 using the WEU Game Patch |
| 10-23-2003, 06:54 AM | #9 |
You are correct, but this only applies if you use the functions that require the game patch. The hero password save business is one of the WEU triggers that does not require the game patch tp be applied to Warcraft for it to run, thus a map that uses it will work just fine in Warcraft normally. |
| 10-23-2003, 07:40 AM | #10 |
so did they do this in a game called lagacies tides of the serpent they tpye -save a code pop up u write it lol |
| 01-06-2004, 05:23 PM | #11 |
Ok thanks it helps but how ecaxtly do we do with these triggers and stuff intergers? e.g player types -load a (event) player as wisp alive (condition) then load paladin Also could you tell me how to save units too? |
| 01-06-2004, 05:57 PM | #12 |
http://www.wc3campaigns.com/forums/s...threadid=11792 I made this way before TFT came out. Its a very simple hero saving method (simple as in no encryption easy to crack) |
| 01-06-2004, 06:42 PM | #13 |
Tides of the Serpent had this, I think. It has a negative side on it, too. The only hosted maps of that kind are now "HIGH LVL CHARACTERS ONLY PLZ!!!1". :/ |
| 01-07-2004, 12:17 PM | #14 |
The makers of TotS were, dumbasses. They did not allow 1 player play. Why? Stop cheats. Take 10 seconds and you can make a nice, easy anti-cheat trigger. Even a retard can. But no, instead you have to play with idiots who are level 10 and kill everything. |
