| 10-23-2003, 07:55 AM | #1 |
I am currently working an a RPG and am having a very hard time trying to figure out how to implement a saving system. The Hero Save program won't work on my computer, no matter what I try. Saving to a cache, which I orignally used, only works for single player and I want to use this map on Battle.Net. Now I am stuck with the only option left that I can think of, which is a save code system. I have a map with a demo of a save code, but it will only save heroes up to level 36 and my heores go up to level 100. Can anyone help me come up with the triggers nessacary to save a hero up to level 100 and the items in their inventory? I have been banging my head against a wall on this one for about two weeks now. PLEASE help!!!! |
| 10-23-2003, 02:05 PM | #2 |
| 10-23-2003, 04:26 PM | #3 |
There is alot of talk that this program would get your CD-key banned though. I would not want that. Plus the program will not run on my computer to even test it out. I have figured out most of what needs to be done to make the trigger work, I am just stuck at one part... My problem lies here, in this part of the trigger. What happens is I have added a digit, but when it scrambles and sets the save code it drops digits off the end to make it the size it wants. I can find no where to correct that. Code:
Set TempInteger = 0
For each (Integer A) from 1 to 15, do (Actions)
Loop - Actions
-------- Total for modulus --------
For each (Integer B) from 0 to BASESIZE, do (Actions)
Loop - Actions
If ((Substring(SaveCode, (Integer A), (Integer A))) Equal to AlphaBaseSymbol[(Integer B)]) then do (Set TempInteger = (TempInteger + (Integer B))) else do (Do nothing)
Set ModResult = (TempInteger mod (BASESIZE + 1))
Set SaveCode = (SaveCode + AlphaBaseSymbol[ModResult])
-------- --------
If (DEBUG_SAVE Equal to True) then do (Game - Display to (Player group((Player(PlayerNumber)))) the text: (First 15 Characters Total (for modulo): + (String(TempInteger)))) else do (Do nothing)
If (DEBUG_SAVE Equal to True) then do (Game - Display to (Player group((Player(PlayerNumber)))) the text: (Modulo 36 on total: + (String(ModResult)))) else do (Do nothing)
If (DEBUG_SAVE Equal to True) then do (Game - Display to (Player group((Player(PlayerNumber)))) the text: (Your Code (Part 1) is: + SaveCode)) else do (Do nothing)
-------- ===== First scramble the symbols ===== --------
Set SaveCodeEncrypted = <Empty String>
For each (Integer A) from 1 to 16, do (Actions)
Loop - Actions
-------- Get sequence number of next save code symbol --------
For each (Integer B) from 1 to (BASESIZE + 1), do (Actions)
Loop - Actions
If ((Substring(SaveCode, (Integer A), (Integer A))) Equal to (Substring(AlphaBaseSet, (Integer B), (Integer B)))) then do (Set TempInteger = (Integer B)) else do (Do nothing)
Set SaveCodeEncrypted = (SaveCodeEncrypted + (Substring(ScrambleSymbolSet[ScrambleID], TempInteger, TempInteger)))
-------- --------
If (DEBUG_SAVE Equal to True) then do (Game - Display to (Player group((Player(PlayerNumber)))) the text: (Your Code (Part 2) is: + SaveCodeEncrypted)) else do (Do nothing)
-------- ===== Now scramble the locations ===== --------
-------- ===== Parse ScrambleLocationSet[ScrambleID] ===== --------
-------- Reset loop counter --------
Set TempInteger = 1
For each (Integer A) from 1 to 16, do (Actions)
Loop - Actions
-------- The tens column --------
Set TempString = (Substring(ScrambleLocationSet[ScrambleID], TempInteger, TempInteger))
Set TempInteger2 = ((Integer(TempString)) x 10)
-------- The units column --------
Set TempString = (Substring(ScrambleLocationSet[ScrambleID], (TempInteger + 1), (TempInteger + 1)))
Set TempInteger2 = (TempInteger2 + (Integer(TempString)))
-------- --------
Set SaveCodeArray[TempInteger2] = (Substring(SaveCodeEncrypted, (Integer A), (Integer A)))
-------- Update loop counter --------
Set TempInteger = (TempInteger + 3)
-------- Tag on ScrambleID --------
Set SaveCodeArray[16] = AlphaBaseSymbol[ScrambleID]
Set SaveCode = <Empty String>
For each (Integer A) from 1 to 16, do (Actions)
Loop - Actions
-------- Get sequence number of next save code symbol --------
For each (Integer B) from 1 to (BASESIZE + 1), do (Actions)
Loop - Actions
If (SaveCodeArray[(Integer A)] Equal to (Substring(AlphaBaseSet, ((Integer B) + 1), ((Integer B) + 1)))) then do (Set TempInteger = (Integer B)) else do (Do nothing)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
TempInteger Greater than 9
Then - Actions
Set SaveCode = (SaveCode + (|c000080ff + (SaveCodeArray[(Integer A)] + |r)))
Else - Actions
Set SaveCode = (SaveCode + (|c00ffc600 + (SaveCodeArray[(Integer A)] + |r)))
If ((((Integer A) mod 4) Equal to 0) and ((Integer A) Not equal to 16)) then do (Set SaveCode = (SaveCode + |c00ffffff-|r)) else do (Do nothing)
Game - Display to (Player group((Player(PlayerNumber)))) for 0.00 seconds the text: (Your Code is: + SaveCode)
-------- --------
If (DEBUG_INSTANTLOAD Equal to True) then do (Trigger - Run Load Character <gen> (ignoring conditions)) else do (Do nothing)
Else - Actions
Do nothing |
| 10-24-2003, 12:15 AM | #4 |
Is nobody able to help me out? |
| 10-24-2003, 05:36 PM | #5 |
bump one more time to see if I can get some help |
| 10-24-2003, 08:42 PM | #6 |
look at dracos forum! |
