| 12-04-2008, 02:19 PM | #1 |
Hey Folks, i wondered how does Warcraft III detect that 2 maps are the same, and if not, issue the warcraft of a player with a different version of the map (but same filename obviously) to download the version the host has. And how can you bypass this check, e.g. for a map in different laguages (like e.g DotA has ..i dont any other map yet) and be able to play together with this different versions ...(without dl the version host has). Any Ideas ? |
| 12-04-2008, 03:32 PM | #2 |
It's probably map's version number. Go to scenario > something and you'll see it. DotA uses a third party MPQ editor in order to get strings from other language imported, after the map is saved. |
| 12-04-2008, 04:18 PM | #3 |
i dont think its so simple ..i cant access a warcraft III at the time ... maybe tomorrow to check that.. but if it would be so simple there would probably be more maps with multiple languages like dota |
| 12-04-2008, 04:46 PM | #4 |
| 12-04-2008, 07:43 PM | #5 |
Short answer: It uses a checksum. |
| 12-04-2008, 09:49 PM | #6 |
dooh ..i am currently too drunk to gte any of that code 0.o.. mb tomoroow eh ...and btw ..what languge is that ???? defiently not C++,C#,JASS ...mb Jvaa ? i dunno Java :( |
| 12-04-2008, 11:05 PM | #7 |
There is a way to get around the check, and modify a map while making wc think it is the same, to gain an advantage. Though I don't know how to do it |
| 12-05-2008, 09:38 PM | #8 | |
maybe somehow modify the checked files in a way that the checksum would still be the same ... Still i dont get that checksum algorithm. Somebody got it in a different language the VB maybe ? The Code posted in the Thread Ammorth mentioned seems to use functions that are not in the standard libraries ...
e.g. ShiftRotateLeft ...what does it do ? takes a bit and inserts it 3 bits to the left ?! Problem is i cant read VB properly... Someone can write it c++ ...or in a more readable way ..(dont has to be real code ...german word for that is "Pseudocode" dunno in english xD) |
| 12-08-2008, 05:37 PM | #9 |
hmpf... Does ShiftRotateLeft(SomeBit Sequence,3) something like: 01011101 => 11101010 or maybe vice versa ?: 01011101 => 10101011 hmpf Strilancs code is not documented :/ and it totally seems to miss the context.. |
| 12-10-2008, 09:00 PM | #10 |
Agreed with the OP that some explanation would be nice. I too would be interested in learning how to host multiple language versions that do not conflict. If all else fails OP I will just ask Icefrog on AIM sometime... |
| 12-11-2008, 03:47 PM | #11 |
@OP: Talked with Icefrog, he said he would email me directions when he gets a chance. It has something to do with strings in .txt and not in .w3a, but I'll know more when I get the email. |
| 12-11-2008, 05:11 PM | #12 |
well it seems like the strings in *.txt files are not checked to check if maps are same ...at least in the ghost++ script of Strilancs code they arent .. |
