This is a replay from Nexus Word Wars. I know it's a custom game, but I do believe that cheat can work for any other Starcraft map.
Watch MrNukealizer in the replay. He is playing pretty much alone against 3 of the best players and he instantly kills every unit without typing.
1st: You can't automate a script that types all the words because there are more than 6000 of them, and they come randomly.
2nd: He is not even typing. He killed units with words like "antidisestablishmentarianism" in less than 0.2 seconds. At this speed, you didn't even press "Enter" yet. And he DIDN'T read the word above the unit before instant killing the unit (follow his cam).
People are quite upset that he can kill every unit instantly without even typing. I cannot imagine how could he be doing that except that is an instant kill hack.
edit: It seems MrNukealizer is one of the creators of the public maphack's. He also hacked blizz bank signatures...
I don't know the coding details, but I'd say he's found a way to create a program that reads words as they pop up and then instantly inserts them into chat.
I don't know the coding details, but I'd say he's found a way to create a program that reads words as they pop up and then instantly inserts them into chat.
He did not type. His team confirmed.
What I really think is that he found a way to call triggers ignoring the trigger conditions.
You could also try internally obfuscating the words that appear on players' screens. Do something to the effect of combining substrings in some strange order. This is assuming that he's scanning the memory in your code and not doing something else like using a screen reader or listening into the text output stream.
Of course, I like DogmaiSEA's solution much better, it makes no assumptions and it'll cover most situations. But suppose you had a legitimate player who could type that fast, like The Flash? ;)
An easy fix would be to add a wait in there between entries the player submitted. If it is found to be faster than this permaban the player.
Have you seen how fast he was killing units? That is just the time to send to the server the order to kill. You don't have even time to press "Enter" to open the chat box.
Also, he was not reading all the words he "typed." Nothing was coming out in the chat. He wasn't typing. He wasn't even opening the chat box. Units were just dying instanly, all of them (less than 0.2 seconds).
The most convincing explanation so far is that he was able to change triggers (perhaps found a way to ignore conditions). Imagine if he does that for a map like Blizzard DOTA? O.o
I would guess that he reads the words from the screen. Everything that he "types" was on the screen. I guess he somehow sends the events with a program. That would allow it to kill everything without really typing that.
You should try to record some stats of the player like reaction times per word.
If someone writes too fast (dependent on the length of the word) and has a high percentage of his kills as fast kills, then he might be cheating or the game is very laggy.
I would check their inputs over time, too. If someone spams a ton of messages while having a good score and a good reaction time, he might be cheating.
I would count threads per player and leave the message-threads alive for a second to track them (player's counter +1 at start, counter -1 on destruction). If someone has a lot of threads multiple times or a very high amount of threads once, something isn't right.
The delay is explained by the time the text appears on the user's screen and the lag from user to server and back. So these inputs were really close of being as fast as it is possible on battle.net. I think battle.net uses a simulated lag of 125ms. But I'm not sure if that lag value is applied twice (sending + receiving). Just assume that everything has a minimum reaction time of 250ms in real time. In my offline tests that was pretty comparable to the performance I had on battle.net.
So, someone just reported to me that there is a player who is capable of instant killing every unit.
Here's the replay: https://www.chatroomcontest.com/sc2/InstantKillReplay.SC2Replay
This is a replay from Nexus Word Wars. I know it's a custom game, but I do believe that cheat can work for any other Starcraft map.
Watch MrNukealizer in the replay. He is playing pretty much alone against 3 of the best players and he instantly kills every unit without typing.
1st: You can't automate a script that types all the words because there are more than 6000 of them, and they come randomly.
2nd: He is not even typing. He killed units with words like "antidisestablishmentarianism" in less than 0.2 seconds. At this speed, you didn't even press "Enter" yet. And he DIDN'T read the word above the unit before instant killing the unit (follow his cam).
People are quite upset that he can kill every unit instantly without even typing. I cannot imagine how could he be doing that except that is an instant kill hack.
edit: It seems MrNukealizer is one of the creators of the public maphack's. He also hacked blizz bank signatures...
I don't know the coding details, but I'd say he's found a way to create a program that reads words as they pop up and then instantly inserts them into chat.
He did not type. His team confirmed.
What I really think is that he found a way to call triggers ignoring the trigger conditions.
He is either sniffing packets or your coding is allowing this ...
An easy fix would be to add a wait in there between entries the player submitted. If it is found to be faster than this permaban the player.
You could also try internally obfuscating the words that appear on players' screens. Do something to the effect of combining substrings in some strange order. This is assuming that he's scanning the memory in your code and not doing something else like using a screen reader or listening into the text output stream.
Of course, I like DogmaiSEA's solution much better, it makes no assumptions and it'll cover most situations. But suppose you had a legitimate player who could type that fast, like The Flash? ;)
Have you seen how fast he was killing units? That is just the time to send to the server the order to kill. You don't have even time to press "Enter" to open the chat box.
Also, he was not reading all the words he "typed." Nothing was coming out in the chat. He wasn't typing. He wasn't even opening the chat box. Units were just dying instanly, all of them (less than 0.2 seconds).
The most convincing explanation so far is that he was able to change triggers (perhaps found a way to ignore conditions). Imagine if he does that for a map like Blizzard DOTA? O.o
I would guess that he reads the words from the screen. Everything that he "types" was on the screen. I guess he somehow sends the events with a program. That would allow it to kill everything without really typing that.
You should try to record some stats of the player like reaction times per word.
If someone writes too fast (dependent on the length of the word) and has a high percentage of his kills as fast kills, then he might be cheating or the game is very laggy.
I would check their inputs over time, too. If someone spams a ton of messages while having a good score and a good reaction time, he might be cheating.
I would count threads per player and leave the message-threads alive for a second to track them (player's counter +1 at start, counter -1 on destruction). If someone has a lot of threads multiple times or a very high amount of threads once, something isn't right.
The delay is explained by the time the text appears on the user's screen and the lag from user to server and back. So these inputs were really close of being as fast as it is possible on battle.net. I think battle.net uses a simulated lag of 125ms. But I'm not sure if that lag value is applied twice (sending + receiving). Just assume that everything has a minimum reaction time of 250ms in real time. In my offline tests that was pretty comparable to the performance I had on battle.net.