HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Codemaker Engine

05-18-2005, 10:29 PM#1
Vexorian
Allows to encode an integer array into a Password, and to load an Integer array from a password.

In simple and foolish words you can SAVE in Battle.net , well that is a lie actually but it works like those nintedo games that gave you passwords you could use later to go to a different level.

It is bit based and has 2 safelocks: CRC and It encodes the password with the player's name, so it won't work if player x gives you his code.

Includes 3 samples and one of them is a "hero save/load code"

It is also able to do some extra stuff like coloring the code to give Capital letters and symbols different colors from other letters, and to show it as a serial in groups of characters to make it easier to read/copy.

It is also really flexible and allows you to have multiple charmaps in the same map, so you can save different stuff in different codes.

Codemaker.w3x
05-19-2005, 08:01 PM#2
Vexorian
I accidentally uploaded the wrong version yesterday, the crc wasn't making any protection at all in that version, that is fixed now.

Please comment, I don't want any silent downloader.
05-21-2005, 05:41 PM#3
Guest
First time actualy posting....anyways yea ive tried like 3 different save/loads havent got any of them to work and then one uses jass so im even more in the dark....if u could explain what i need to change and where that would help.

o yea i do know like a little of basic and c++ but i havent done it in while
05-22-2005, 10:15 PM#4
Vexorian
I think I explain that in the map itself
05-22-2005, 10:55 PM#5
curi
i downloaded so uhh not being silent, let's see ... i read text and skimmed code in map, interesting thanks. might use it not sure.

one problem i thought of with hero save/load codes is you can hand someone all your gold, then he saves and hands you all the gold, then you save. now when you both reload you'll have double the gold between you, and you can repeat all you want. do you know any solution to this?
05-22-2005, 11:13 PM#6
Vexorian
Don't save gold, don't allow people to give gold, log gold changes, make a password that saves the gold state of all the players, so they have to reload it separatelly and aren't able to use a gold code twice.
05-22-2005, 11:24 PM#7
curi
hmm how would logging work ... if it kept track of all gold ever transfered and undid this when you saved A) someone might go negative if they'd spent it B) you couldn't trade gold, basically because it'd be undone at some point (I'd like to allow trading gold). it could only undo transfers in the last 15 minutes, which would probably stop most cheaters as long as it was undocumented, and would rarely mess up normal play. not perfect though, someone could still go negative and might sometimes confuse legit people. am i missing a way to do it better?

also the same issue applies to trading items and saving.

edit: another idea for gold but not items is to have a maximum amount of gold that can be given to another player per 5 minutes, so you can give a little but not enough to make cheating worthwhile.
05-22-2005, 11:49 PM#8
Vexorian
Actually, I gladly didn't make this for saving characters and the one I have in the map for that is just a demo.

Never liked saving heroes, it is kind of lame.

The reason I designed this is for saving other things, for example your title and record, and that's why I spent more time making it player account specific and protected.

-------

Swapping items - gold seems like something someone has to deal with, this is afterall only the thing that translates the array into password and the opposite.


For items I would do one of these:

- Making items unshareable so if you drop them other player can't pick them, but this would kill a gameplay part.

- When item is getting saved add a flag to the item, an attached boolean variable that says already saved and for what player it was saved. If another player saves a hero and one of the items was flagged for another player, just ignore it when saving.


Seems that the thing for gold would be forgetting about it, the player already restored a hero with level skills and items, let the player do some effort for god's sake.

Or the code that saves all the gold of each player when they are teamed. Team gold or something like that
07-08-2005, 04:04 AM#9
uberfoop
"Never liked saving heroes, it is kind of lame."
-vexorian

hell yah, thats why i never played orcs vs humans. its lame when youre lvl 1 and every1 else is like lvl 20+
07-08-2005, 07:21 PM#10
Guest
I like the saving thing on rpg's but when I went and played humans vs orcs I was undead and there was a lvl 30 paly chasing me using holy light. Then all the humans are giving each other codes for samuri sword and the game just gets gay
07-08-2005, 07:41 PM#11
Tim.
Anyway back on topic.

Looks great as always Vex, I'll most likely modify this slightly and use it to save your username stats on my map. Good stuff, keep it up.
07-09-2005, 12:56 AM#12
EdwardSwolenToe
You can save illusions... which results in dire concequences.
07-09-2005, 02:37 PM#13
Vexorian
Err, this only saves the thing, Now the method using for saving, and the hero you save depends on the map maker, it is not a big deal to add a not(IsUnitIllusion check.
07-15-2005, 09:18 AM#14
Anitarf
Hey, Vex, I was thinking about using this in my next project to store a player's rank based on what difficulty he or she beats the game. However, the rank would be just a single integer from 1 to 4, so i was wondering how much encryption do you have in your system, how long a code would a single integer give to a player? Should I calculate additional dummy integers based on the player's name to make the code longer, thus reducing a player's chance to guess a rank, or would that chance be low enough with the algorythms you use already even with only a single integer?
07-18-2005, 09:24 PM#15
Vexorian
Since it is 0 to 4 you would need 3 bits, it is a few, but CRC will work, and it combined with the player's name sholdn't be too weak

You can add 2 integers of 5 bits that are random numbers and must match if you want. Since 4 bits would make very short codes anyways