D
Decapatater
Guest
Ok, I know it is HUGE!
I would suggest coppying the codes...
Ok, my cuz gave me this txt file with this tutorial in it and told me to post it here because his internet was messed. (he sent it on a floppy) I do not know why he wanted me to do it so bad but...
First of all, you must understand how one works; this is the most important part!
So, how does a save/load system save data? It doesn't! Here's what a save/load system actually does; it first bunches data together, then encrypts it. Next, the load decrypts it and extracts the data from the correct positions. For this tutorial, I will you use the following as an example: let's say I want to save the player's name and gold.
First, I would have the save/load system bunch the data together into a string; for this example, I'll use:
01Koga73-3-999xxx
Now, to break it down. The "01" tells what codeset will be used to encrypt the data (which I will explain later), the "koga73" is the player's name, and the "3" is how many digits of the ammount of gold to read. So, if the player doesn't have 6 digits of gold, it'll only read the first 3, and the last 6 digits is the ammount of gold. The "xxx" represent blank characters that are unused and just hold place so the code is always the same length.
Right, so what's a code set you ask? Well, a code set is a dedicated character to character encryption process, so:
a = g
b = t
c = y
d = 6
e = 8
and so on. So, first you would need to assemble a string containing all the basic letters in order such as:
abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Then, assemble your code sets into arrays:
ArraySlotString[1] = badcfehgjilknmporqtsvuxwzy0987654321`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
ArraySlotString[2] = qwertyuiopasdfghjklzxcvbnm2143658709`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
And so on, for up to 99 code sets as long as your only using 2 digit numbers for the code set to use within the code. Simple!
Now, how do we encode it?
Well, here's the coding part for my trigger:
-------- xxxENCRYPTxxx --------
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
Set Koga73sInputCode[(Integer A)] = (Substring(Koga73sFullCode, (Integer A), (Integer A)))
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
For each (Integer B) from 1 to 68, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sInputCode[(Integer A)] Equal to (Substring(Koga73sUnEncryptedCodeSet, (Integer B), (Integer B)))
Then - Actions
Set Koga73sOutputCode[(Integer A)] = (Substring(Koga73sEncryptedCodeSets[Koga73sRandomCodeSetsToUse], (Integer B), (Integer B)))
Else - Actions
For each (Integer A) from 3 to 13, do (Actions)
Loop - Actions
Set Koga73sFullCode = (Koga73sFullCode + Koga73sOutputCode[(Integer A)])
If you dont understand this, here's what it's doing:
First, it takes each character within our completed bunched string, and puts it into an array.
Array[1] = "k"
Array[2] = "o"
Array[3] = "g"
Array[4] = "a"
And so on. Then, after it selects a code set to use, it takes that number, and uses a loop to do a check where the character it's currently on is equal to "A", then it would set it equal to the first character in the first code set. It's all done by letter positions. So, lets say the first array slot equals "A", then it would use code set 1 (or the selected code set) and use its first character (since this is corresponding to a). If the character in array slot 1 equals "Z", then its going to use the 26th letter/number in the selected code set. After it selects which corresponding character to use, it sets it into a string slot called "Output". If array slot 1 equals "A" and the matching character equals "G", then it would set this:
ArrayOutputString[1] = "g"
Simple. Next, after it has done this to every letter in the code (excluding the first 2, we dont want to encrypt the first 2 characters in our bunched code, otherwise when it loads it wont know what number code set to read). It then just sets a string to itself and arrayslot. For this example:
output[1] = "h"
output[2] = "g"
output[3] = "q"
Then it would just set this:
TOTAL = "hgq"
Now that it's all encrypted, show the encryted text to the player, so it would look like:
01wuqp38-9-usjyyy
Now for loading!
Loading does the same exact thing, except backwards. It first takes the entered code, and checks the first 2 characters and sets that to a variable so it knows what code set to use. The next thing it does is it uses a loop to do the same thing: compare the code sets character with the normal sets characters, replaces them, and sets the completed code back into:
01koga73-3-999xxx
Now, we need to get the correct information, so we're going to want to use substrings. A substring is just a part of a string, so:
the example string = summer
substring(summer, 2, 4) = "umm"
This is how we divide it up! So, first get the player's name, so we would do a substring and set it to a variable. Then compare that variable to the name of the player who typed the load code; if they are different, they can't load and it stops. Otherwise, it then goes and looks at the "3" and decides to then read 3 digits of the gold amount, which equals "999". Finally, it takes the "999" and sets that to the player's gold amount. Simple!
It takes a few hours to make a system like this, but it's worth it! And you can then get more complicated by replacing the unused variables "xxx" with randomly selected characters to just confuse people and such.
If you want to see the actual triggers, here they are (I didn't show the code sets to keep the code on the map uncrackable).
omg, it is soooo big!
Well have fun, lmao!
I would suggest coppying the codes...
Ok, my cuz gave me this txt file with this tutorial in it and told me to post it here because his internet was messed. (he sent it on a floppy) I do not know why he wanted me to do it so bad but...
First of all, you must understand how one works; this is the most important part!
So, how does a save/load system save data? It doesn't! Here's what a save/load system actually does; it first bunches data together, then encrypts it. Next, the load decrypts it and extracts the data from the correct positions. For this tutorial, I will you use the following as an example: let's say I want to save the player's name and gold.
First, I would have the save/load system bunch the data together into a string; for this example, I'll use:
01Koga73-3-999xxx
Now, to break it down. The "01" tells what codeset will be used to encrypt the data (which I will explain later), the "koga73" is the player's name, and the "3" is how many digits of the ammount of gold to read. So, if the player doesn't have 6 digits of gold, it'll only read the first 3, and the last 6 digits is the ammount of gold. The "xxx" represent blank characters that are unused and just hold place so the code is always the same length.
Right, so what's a code set you ask? Well, a code set is a dedicated character to character encryption process, so:
a = g
b = t
c = y
d = 6
e = 8
and so on. So, first you would need to assemble a string containing all the basic letters in order such as:
abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Then, assemble your code sets into arrays:
ArraySlotString[1] = badcfehgjilknmporqtsvuxwzy0987654321`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
ArraySlotString[2] = qwertyuiopasdfghjklzxcvbnm2143658709`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
And so on, for up to 99 code sets as long as your only using 2 digit numbers for the code set to use within the code. Simple!
Now, how do we encode it?
Well, here's the coding part for my trigger:
-------- xxxENCRYPTxxx --------
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
Set Koga73sInputCode[(Integer A)] = (Substring(Koga73sFullCode, (Integer A), (Integer A)))
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
For each (Integer B) from 1 to 68, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sInputCode[(Integer A)] Equal to (Substring(Koga73sUnEncryptedCodeSet, (Integer B), (Integer B)))
Then - Actions
Set Koga73sOutputCode[(Integer A)] = (Substring(Koga73sEncryptedCodeSets[Koga73sRandomCodeSetsToUse], (Integer B), (Integer B)))
Else - Actions
For each (Integer A) from 3 to 13, do (Actions)
Loop - Actions
Set Koga73sFullCode = (Koga73sFullCode + Koga73sOutputCode[(Integer A)])
If you dont understand this, here's what it's doing:
First, it takes each character within our completed bunched string, and puts it into an array.
Array[1] = "k"
Array[2] = "o"
Array[3] = "g"
Array[4] = "a"
And so on. Then, after it selects a code set to use, it takes that number, and uses a loop to do a check where the character it's currently on is equal to "A", then it would set it equal to the first character in the first code set. It's all done by letter positions. So, lets say the first array slot equals "A", then it would use code set 1 (or the selected code set) and use its first character (since this is corresponding to a). If the character in array slot 1 equals "Z", then its going to use the 26th letter/number in the selected code set. After it selects which corresponding character to use, it sets it into a string slot called "Output". If array slot 1 equals "A" and the matching character equals "G", then it would set this:
ArrayOutputString[1] = "g"
Simple. Next, after it has done this to every letter in the code (excluding the first 2, we dont want to encrypt the first 2 characters in our bunched code, otherwise when it loads it wont know what number code set to read). It then just sets a string to itself and arrayslot. For this example:
output[1] = "h"
output[2] = "g"
output[3] = "q"
Then it would just set this:
TOTAL = "hgq"
Now that it's all encrypted, show the encryted text to the player, so it would look like:
01wuqp38-9-usjyyy
Now for loading!
Loading does the same exact thing, except backwards. It first takes the entered code, and checks the first 2 characters and sets that to a variable so it knows what code set to use. The next thing it does is it uses a loop to do the same thing: compare the code sets character with the normal sets characters, replaces them, and sets the completed code back into:
01koga73-3-999xxx
Now, we need to get the correct information, so we're going to want to use substrings. A substring is just a part of a string, so:
the example string = summer
substring(summer, 2, 4) = "umm"
This is how we divide it up! So, first get the player's name, so we would do a substring and set it to a variable. Then compare that variable to the name of the player who typed the load code; if they are different, they can't load and it stops. Otherwise, it then goes and looks at the "3" and decides to then read 3 digits of the gold amount, which equals "999". Finally, it takes the "999" and sets that to the player's gold amount. Simple!
It takes a few hours to make a system like this, but it's worth it! And you can then get more complicated by replacing the unused variables "xxx" with randomly selected characters to just confuse people and such.
If you want to see the actual triggers, here they are (I didn't show the code sets to keep the code on the map uncrackable).
Code:
save trigger
Events
Player - Player 1 (Red) types a chat message containing -save as An exact match
Player - Player 2 (Blue) types a chat message containing -save as An exact match
Player - Player 3 (Teal) types a chat message containing -save as An exact match
Player - Player 4 (Purple) types a chat message containing -save as An exact match
Player - Player 5 (Yellow) types a chat message containing -save as An exact match
Player - Player 6 (Orange) types a chat message containing -save as An exact match
Player - Player 7 (Green) types a chat message containing -save as An exact match
Player - Player 8 (Pink) types a chat message containing -save as An exact match
Player - Player 9 (Gray) types a chat message containing -save as An exact match
Player - Player 10 (Light Blue) types a chat message containing -save as An exact match
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Length of (Name of (Triggering player))) Less than 3
Then - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000Your A Sp...
Skip remaining actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sHasSavedOrNot[(Player number of (Triggering player))] Equal to True
Then - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000You Have ...
Skip remaining actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
PlayersSelectedHeros[(Player number of (Triggering player))] Equal to No unit
Then - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000You Canno...
Skip remaining actions
Else - Actions
-------- xxxSET CODE SETSxxx --------
-------- xxxAMMOUNT = 25xxx --------
Set Koga73sUnEncryptedCodeSet = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[1] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[2] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[3] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[4] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[5] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[6] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[7] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[8] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[9] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[10] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[11] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[12] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[13] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[14] =
abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[15] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[16] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[17] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[18] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[19] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[20] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[21] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[22] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[23] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[24] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[25] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
-------- xxxRESET VARIABLESxxx --------
Set Koga73s3CodeName = <Empty String>
Set Koga73sEXPAmmount = 0
Set Koga73sEXPStringAmmount = <Empty String>
Set Koga73sFastRandomCharacter = 0
Set Koga73sFullCode = <Empty String>
Set Koga73sLengthToReadOfEXP = 0
Set Koga73sRandomCodeSetsToUse = 0
Set Koga73sSTRINGRCSTU = <Empty String>
Set Koga73sTypedInCode = <Empty String>
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
Set Koga73sInputCode[(Integer A)] = <Empty String>
Set Koga73sOutputCode[(Integer A)] = <Empty String>
-------- xxxSET VARIABLESxxx --------
Set Koga73s3CodeName = (Substring((Name of (Triggering player)), 1, 3))
Set Koga73sEXPAmmount = (Hero experience of PlayersSelectedHeros[(Player number of (Triggering player))])
Set Koga73sLengthToReadOfEXP = (Length of (String(Koga73sEXPAmmount)))
Set Koga73sRandomCodeSetsToUse = (Random integer number between 1 and 25)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sRandomCodeSetsToUse Less than 10
Then - Actions
Set Koga73sSTRINGRCSTU = (0 + (String(Koga73sRandomCodeSetsToUse)))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sRandomCodeSetsToUse Greater than or equal to 10
Then - Actions
Set Koga73sSTRINGRCSTU = (String(Koga73sRandomCodeSetsToUse))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sEXPAmmount Equal to 0
Then - Actions
Set Koga73sEXPAmmount = 1
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sEXPAmmount Greater than 999999
Then - Actions
Set Koga73sEXPAmmount = 999999
Else - Actions
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Length of (String(Koga73sEXPAmmount))) Not equal to 6
Then - Actions
Set Koga73sEXPAmmount = (Koga73sEXPAmmount x 10)
Else - Actions
-------- xxxGENERATE UNENCRYPTEDxxx --------
Set Koga73sFullCode = (Koga73sFullCode + Koga73sSTRINGRCSTU)
Set Koga73sFullCode = (Koga73sFullCode + (Substring((String(Koga73sEXPAmmount)), 1, 3)))
Set Koga73sFullCode = (Koga73sFullCode + (Substring(Koga73s3CodeName, 1, 1)))
Set Koga73sFullCode = (Koga73sFullCode + -)
Set Koga73sFullCode = (Koga73sFullCode + (String(Koga73sLengthToReadOfEXP)))
Set Koga73sFullCode = (Koga73sFullCode + (Substring((String(Koga73sEXPAmmount)), 4, 6)))
Set Koga73sFullCode = (Koga73sFullCode + (Substring(Koga73s3CodeName, 2, 3)))
Set Koga73sFullCode = (String(Koga73sFullCode) as Lower case)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sDebugStatus[1] Equal to 1
Then - Actions
Game - Display to (Player group((Triggering player))) the text: (|c00800080Debug Mode:|r CODE BEFORE ENCRYPTION: + Koga73sFullCode)
Else - Actions
-------- xxxENCRYPTxxx --------
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
Set Koga73sInputCode[(Integer A)] = (Substring(Koga73sFullCode, (Integer A), (Integer A)))
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
For each (Integer B) from 1 to 68, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sInputCode[(Integer A)] Equal to (Substring(Koga73sUnEncryptedCodeSet, (Integer B), (Integer B)))
Then - Actions
Set Koga73sOutputCode[(Integer A)] = (Substring(Koga73sEncryptedCodeSets[Koga73sRandomCodeSetsToUse], (Integer B), (Integer B)))
Else - Actions
Set Koga73sFullCode = <Empty String>
Set Koga73sFullCode = Koga73sSTRINGRCSTU
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 1
Then - Actions
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[4] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[5] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[9] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[10] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[11] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 2
Then - Actions
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[5] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[9] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[10] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[11] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 3
Then - Actions
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[9] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[10] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[11] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 4
Then - Actions
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[10] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[11] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 5
Then - Actions
Set Koga73sFastRandomCharacter = (Random integer number between 1 and 36)
Set Koga73sOutputCode[11] = (Substring(Koga73sEncryptedCodeSets[(Random integer number between 1 and 25)], Koga73sFastRandomCharacter, Koga73sFastRandomCharacter))
Else - Actions
For each (Integer A) from 3 to 13, do (Actions)
Loop - Actions
Set Koga73sFullCode = (Koga73sFullCode + Koga73sOutputCode[(Integer A)])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sDebugStatus[2] Equal to 1
Then - Actions
Game - Display to (Player group((Triggering player))) the text: (|c00800080Debug Mode:|r CODE AFTER ENCRYPTION: + Koga73sFullCode)
Else - Actions
Game - Display to (Player group((Triggering player))) for 60.00 seconds the text: (|c00800080Successfully Saved, Code = |r + (|c00ffcc00 + (Koga73sFullCode + |r)))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sDebugStatus[3] Equal to 0
Then - Actions
Set Koga73sHasSavedOrNot[(Player number of (Triggering player))] = True
Else - Actions
Code:
load trigger
Events
Player - Player 1 (Red) types a chat message containing -load as A substring
Player - Player 2 (Blue) types a chat message containing -load as A substring
Player - Player 3 (Teal) types a chat message containing -load as A substring
Player - Player 4 (Purple) types a chat message containing -load as A substring
Player - Player 5 (Yellow) types a chat message containing -load as A substring
Player - Player 6 (Orange) types a chat message containing -load as A substring
Player - Player 7 (Green) types a chat message containing -load as A substring
Player - Player 8 (Pink) types a chat message containing -load as A substring
Player - Player 9 (Gray) types a chat message containing -load as A substring
Player - Player 10 (Light Blue) types a chat message containing -load as A substring
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Length of (Name of (Triggering player))) Less than 3
Then - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000Your A Sp...
Skip remaining actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sHasLoadedOrNot[(Player number of (Triggering player))] Equal to True
Then - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000You Have ...
Skip remaining actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Length of (Entered chat string)) Not equal to 19
Then - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000Incorrect...
Skip remaining actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sHasSavedOrNot[(Player number of (Triggering player))] Equal to True
Then - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000You Have ...
Skip remaining actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sPlayerNoLoad[(Player number of (Triggering player))] Equal to True
Then - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000You Do No...
Skip remaining actions
Else - Actions
-------- xxxSET CODE SETSxxx --------
-------- xxxAMMOUNT = 25xxx --------
Set Koga73sUnEncryptedCodeSet = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[1] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[2] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[3] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[4] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[5] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[6] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[7] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[8] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[9] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[10] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[11] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[12] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[13] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[14] =
abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[15] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[16] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[17] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[18] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[19] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[20] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[21] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[22] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[23] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[24] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
Set Koga73sEncryptedCodeSets[25] = abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
-------- xxxRESET VARIABLESxxx --------
Set Koga73s3CodeName = <Empty String>
Set Koga73sEXPAmmount = 0
Set Koga73sEXPStringAmmount = <Empty String>
Set Koga73sFastRandomCharacter = 0
Set Koga73sFullCode = <Empty String>
Set Koga73sLengthToReadOfEXP = 0
Set Koga73sRandomCodeSetsToUse = 0
Set Koga73sSTRINGRCSTU = <Empty String>
Set Koga73sTypedInCode = <Empty String>
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
Set Koga73sInputCode[(Integer A)] = <Empty String>
Set Koga73sOutputCode[(Integer A)] = <Empty String>
-------- xxxSET VARIABLESxxx --------
Set Koga73sTypedInCode = (String((Entered chat string)) as Lower case)
Set Koga73sRandomCodeSetsToUse = (Integer((Substring(Koga73sTypedInCode, 7, 8))))
Set Koga73sTypedInCode = (Substring((Entered chat string), 7, 19))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sDebugStatus[6] Equal to 1
Then - Actions
Game - Display to (Player group((Triggering player))) the text: (|c00800080Debug Mode:|r CODESET TO USE: + (String(Koga73sRandomCodeSetsToUse)))
Else - Actions
-------- xxxENCRYPTxxx --------
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
Set Koga73sInputCode[(Integer A)] = (Substring(Koga73sTypedInCode, (Integer A), (Integer A)))
For each (Integer A) from 1 to 13, do (Actions)
Loop - Actions
For each (Integer B) from 1 to 68, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sInputCode[(Integer A)] Equal to (Substring(Koga73sEncryptedCodeSets[Koga73sRandomCodeSetsToUse], (Integer B), (Integer B)))
Then - Actions
Set Koga73sOutputCode[(Integer A)] = (Substring(Koga73sUnEncryptedCodeSet, (Integer B), (Integer B)))
Else - Actions
Set Koga73sFullCode = <Empty String>
Set Koga73sFullCode = Koga73sSTRINGRCSTU
For each (Integer A) from 3 to 13, do (Actions)
Loop - Actions
Set Koga73sFullCode = (Koga73sFullCode + Koga73sOutputCode[(Integer A)])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sDebugStatus[4] Equal to 1
Then - Actions
Game - Display to (Player group((Triggering player))) the text: (|c00800080Debug Mode:|r CODE AFTER DECRYPTION: + Koga73sFullCode)
Else - Actions
-------- xxxSET STATSxxx --------
Set Koga73s3CodeName = ((Substring(Koga73sFullCode, 4, 4)) + (Substring(Koga73sFullCode, 10, 11)))
Set Koga73sLengthToReadOfEXP = (Integer((Substring(Koga73sFullCode, 6, 6))))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 1
Then - Actions
Set Koga73sEXPStringAmmount = (Koga73sEXPStringAmmount + (Substring(Koga73sFullCode, 1, 1)))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 2
Then - Actions
Set Koga73sEXPStringAmmount = (Koga73sEXPStringAmmount + (Substring(Koga73sFullCode, 1, 2)))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 3
Then - Actions
Set Koga73sEXPStringAmmount = (Koga73sEXPStringAmmount + (Substring(Koga73sFullCode, 1, 3)))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 4
Then - Actions
Set Koga73sEXPStringAmmount = (Koga73sEXPStringAmmount + ((Substring(Koga73sFullCode, 1, 3)) + (Substring(Koga73sFullCode, 7, 7))))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 5
Then - Actions
Set Koga73sEXPStringAmmount = (Koga73sEXPStringAmmount + ((Substring(Koga73sFullCode, 1, 3)) + (Substring(Koga73sFullCode, 7, 8))))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sLengthToReadOfEXP Equal to 6
Then - Actions
Set Koga73sEXPStringAmmount = (Koga73sEXPStringAmmount + ((Substring(Koga73sFullCode, 1, 3)) + (Substring(Koga73sFullCode, 7, 9))))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sDebugStatus[7] Equal to 1
Then - Actions
Game - Display to (Player group((Triggering player))) the text: (|c00800080Debug Mode:|r FIRST 3 LETTERS OF PLAYER NAME FROM CODE: + Koga73s3CodeName)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sDebugStatus[8] Equal to 1
Then - Actions
Game - Display to (Player group((Triggering player))) the text: (|c00800080Debug Mode:|r EXPERIENCE LOADED: + Koga73sEXPStringAmmount)
Else - Actions
-------- xxxFINISH LOADxxx --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73s3CodeName Equal to (String((Substring((Name of (Triggering player)), 1, 3))) as Lower case)
(Integer(Koga73sEXPStringAmmount)) Less than or equal to 999999
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
PlayersSelectedHeros[(Player number of (Triggering player))] Equal to No unit
Then - Actions
Set Koga73sHasPickedUnitAndLoaded[(Player number of (Triggering player))] = False
Game - Display to (Player group((Triggering player))) the text: |c0000ff00LOAD SUCC...
Countdown Timer - Pause Koga73sTimers[(Player number of (Triggering player))]
Countdown Timer - Destroy TimerWindows[(Player number of (Triggering player))]
Set Koga73sPlayerNoLoad[(Player number of (Triggering player))] = True
Set Koga73sLoadedEXPPerPlayer[(Player number of (Triggering player))] = (Integer(Koga73sEXPStringAmmount))
Unit - Unpause (Random unit from (Units owned by (Triggering player) of type Soul))
Set Koga73sLoadedEXPPerPlayer[(Player number of (Triggering player))] = (Integer(Koga73sEXPStringAmmount))
Else - Actions
Hero - Set PlayersSelectedHeros[(Player number of (Triggering player))] experience to Koga73sLoadedEXPPerPlayer[(Player number of (Triggering player))], Hide level-up graphics
Game - Display to (Player group((Triggering player))) the text: |c0000ff00LOAD SUCC...
Countdown Timer - Pause Koga73sTimers[(Player number of (Triggering player))]
Countdown Timer - Destroy TimerWindows[(Player number of (Triggering player))]
Set Koga73sPlayerNoLoad[(Player number of (Triggering player))] = True
Unit - Unpause (Random unit from (Units owned by (Triggering player) of type Soul))
Set Koga73sLoadedEXPPerPlayer[(Player number of (Triggering player))] = (Integer(Koga73sEXPStringAmmount))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Koga73sDebugStatus[5] Equal to 0
Then - Actions
Set Koga73sHasLoadedOrNot[(Player number of (Triggering player))] = True
Else - Actions
Else - Actions
Game - Display to (Player group((Triggering player))) the text: |c00c80000INVALID CODE
omg, it is soooo big!
Well have fun, lmao!


