Jump to content

Unusual high sniping activity of very few players


ffm2
 Share

Recommended Posts

1 hour ago, Player of 0AD said:

Can you explain how to do it step by step? Couldn't make it work

 

Put the script in the right folder:

  • On Windows (Vista or newer): C:\Users\{name_of_user}\Documents\My Games\0ad\replays\
  • On OSX: ~/Library/Application Support/0ad/replays/
  • On Linux: ~/.local/share/0ad/mods/ (may be found in GUI via Home/.local/share/0ad/replays/)

 

Adjust line 8 to be the folder containing the replay:

path = "0.0.26/1ADDA938C7135CC0/" # stockfish; max. 96, total 1407

 

Install dependencies:

small: matplotlib, numpy, python 3;

(Or I use Spyder [on Windows install Anaconda] if you'd like to use a visual variable explorer, but not necessary just to run this).

 

run the script:

python load_replay.py

 

2 Figures get saved to the folder containing the replay and also pop up as windows in which you can zoom, pan etc.

Link to comment
Share on other sites

But note that you need more than one or two games. I also encourage to look at the turn in the text file if you found something to double check.

Attached is one game that seems suspicious with berhudar and weirdJokes and others, but if you look at other games of weirdJokes (berhudar has only one upload) you don't see him with that high of a number. I think this was a heavy lagging game since a lot of players have such high values.

e.g. just glancing at total number of commands:

https://replay-pallas.wildfiregames.ovh/Replays/ReplayDetails/46D647BA5A8FA5C8

https://replay-pallas.wildfiregames.ovh/Replays/ReplayDetails/C7CF37877668B4F0

weirdJokes.png

Link to comment
Share on other sites

The funny thing is when I was 130 earlier like you saw I was sniping and my units were walking around the barracks to get to the individual targets I set. I failed this one bad lol.

This was before Sniper got a new PC so the game was horrendously laggy. I can confirm all of these were manual clicks (my mouse costs 4 dollars and comes from grocery store)

Edited by BreakfastBurrito_007
Link to comment
Share on other sites

https://clickspeedtest.com/ says:

According to Recordsetter - a website that lets player post record for everything, Per the same website, Dylan Allred from Las Vegas holds the world record for most mouse clicks in 10 seconds. The data suggest that Allerd click the mouse 1,051 times in 10 seconds.

Assuming they have some verification for this records. With a smooth game that would be 1051 / 10 * 0.2 = 21 clicks per turn.

Then additionally to this you'd need also point on the target and then click (not just clicking like this test)

Link to comment
Share on other sites

18 hours ago, ffm2 said:

https://clickspeedtest.com/ says:

According to Recordsetter - a website that lets player post record for everything, Per the same website, Dylan Allred from Las Vegas holds the world record for most mouse clicks in 10 seconds. The data suggest that Allerd click the mouse 1,051 times in 10 seconds.

Assuming they have some verification for this records. With a smooth game that would be 1051 / 10 * 0.2 = 21 clicks per turn.

Then additionally to this you'd need also point on the target and then click (not just clicking like this test)

So many clicks per second is very unrealistic. That would be 100 clicks per second. At another spot the side says that the record is 17 clicks per second, which is more realistic.

Link to comment
Share on other sites

An idea: in order to ascertain the cause of these superhuman click rates, we can write a keylogger program that captures the mouse input of a volunteer. Then we can match the inputs to the turn times to check whether the commands were indeed issued by the physical hardware or 0ad bug or snipe script.

One very simple example is to log the mouse click activity of the volunteer over the duration of one game and check the maximum mouse click rate

Link to comment
Share on other sites


@ffm2, can you explain the difference between single attack and group attack?

Here are 2 graphs from a replay that I saved:

group_attacks.png.b9a089cf697a9e5bf09c1e57aa259c93.png

 

sigle_unit_attacks.png.89eecfe133fc38445492379d27ecb6fd.png

 

Being Astra- (1550) myself, I am sure that I didn't click on units 8 times in one second. I was not that fast. My main attack moves were Ctrl+Q and occasionally selecting 25 archers as dedicated snipers. My snipe move was holding down shift then right click on enemy units, which makes the sniper team kill off selcted enemies one by one. I didn't use Alt-click as I don't know how.

  • Like 1
Link to comment
Share on other sites

24 minutes ago, AInur said:

the difference between single attack and group attack

A single attack looks like this in the commands.txt:

cmd 8 {"type":"attack","entities":[10681],"target":8109,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}

The one unit with the entity ID 10681 get the command to attack unit 8109, not queued. AFAIK this can be done

  • either selecting the unit and right click on the enemy unit
  • or selecting this unit and other units with higher entity IDs and hold alt right click on the enemy unit

 

A group command looks like this:

cmd 6 {"type":"attack","entities":[452,6571,6572],"target":203,"queued":false,"pushFront":false,"allowCapture":false}

The units 452 6571 and 6572 get the command to attack the unit 203 at the same time probably with one control group and just right click.

 

 

24 minutes ago, AInur said:

My snipe move was holding down shift then right click on enemy units

this should look something like this:

cmd 1 {"type":"attack","entities":[9341,9342],"target":9345,"queued":true,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}

so with "queued":true. In these two plots it should always be not queued as this is the pattern I was looking for.

 

 

Please check the replay and think what you would do in the situation on the timestamp. Maybe you can replicate it.

  • Like 2
Link to comment
Share on other sites

 

25 minutes ago, ffm2 said:

either selecting the unit and right click on the enemy unit

This is exactly what I did, but repeated maybe 2 times in 1 second? I often use alt + E to select cavalry and alt to select infantry. Maybe that was counted in this.

I made an upgraded version of your script which batch processes all replays in the replay folder, writing the output graphs to each replay folder. This is more automatic, faster and fail proof B)

snipe_analyser_pro.py

Edited by AInur
  • Like 2
Link to comment
Share on other sites

sanafur claimed in the lobby that he's using a gaming mouse:

Quote

[21:25:03] <sanafur> Geriatrix no there is only discovery that so me players using gaming mouse with tripple clicks and I even publicly caimed it .-) if using hardware is cheating I do cheat.... it is not on you to judge it

Wouldn't that mean we should see 3 identical commands in the replays for each action?

Link to comment
Share on other sites

51 minutes ago, Dunedan said:

sanafur claimed in the lobby that he's using a gaming mouse:

Wouldn't that mean we should see 3 identical commands in the replays for each action?

Unless it's a toggle :) It doesn't seem really useful to build three cs when you only want one

Link to comment
Share on other sites

36 minutes ago, Stan&#x60; said:
1 hour ago, Dunedan said:

sanafur claimed in the lobby that he's using a gaming mouse:

Wouldn't that mean we should see 3 identical commands in the replays for each action?

Unless it's a toggle :) It doesn't seem really useful to build three cs when you only want one

If I'd do, it I'd use a dedicated key with the multiplier to avoid this. One for usual play, the other for sniping. But this explanation does not make sense to me. Here is a zoom to the first burst of the first figure of the sanafur part. The sequence is

10, 6, 4, 8, 4, 8, 4, 7, 13, 8, 5, 8, 5...

so the sniping is no multiplication of 2 or (like claimed) 3.

Figure_1_sanafur_zoom.png

Link to comment
Share on other sites

This is the first spike of 10 commands:

turn 4273 200
cmd 8 {"type":"attack","entities":[333],"target":8632,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[334],"target":8632,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[335],"target":8632,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[336],"target":8632,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[337],"target":8634,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[6278],"target":8629,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[6354],"target":8629,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[6454],"target":8629,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[6475],"target":8634,"queued":false,"pushFront":false,"allowCapture":false}
cmd 8 {"type":"attack","entities":[6592],"target":8634,"queued":false,"pushFront":false,"allowCapture":false}
end

So the first 4 units attack one target (8632), then comes one attacking 8634, then 3 attacking 8629 and 2 attacking 8634. So even in one turn there is no multiplicator to find.

Link to comment
Share on other sites

What is the advantage of spam clicking so many times ? Do you spam click on just one spot or do you have to select different targets then spam click on every target once?

(after trying alt + right click, I still found my queue method more effective at sniping. I just had to remember all of the numbers of archers needed to do an instant kill under different conditions)

Link to comment
Share on other sites

I think it is about using just as many arrows on one target as necessary to take it out. Not more, not less arrows.

 

The queue would only do the command after the prior target died and I thought for a long time that's how most players snipe. I could update the script of yours to also show other commands, like pressing H, sniping with queue etc.. But I'd want to clean up the graphs and code first until I blow it up.

  • Like 1
Link to comment
Share on other sites

3 hours ago, Dunedan said:

sanafur claimed in the lobby that he's using a gaming mouse:

Wouldn't that mean we should see 3 identical commands in the replays for each action?

I have 11 mouse buttons, all of them have slightly different setup,  sometimes I click button with single click, when I want  snipping with extended multi-clicks with 25ms delay after.

200ms / 25ms = 8 action * number of clicks within this period (1-4  is my range)

I agree you should see identical commands in reply for each action.

Just get such mouse and simulate it yourself.. 

Edited by 0 calories
  • Like 1
Link to comment
Share on other sites

51 minutes ago, AInur said:

What is the advantage of spam clicking so many times ? Do you spam click on just one spot or do you have to select different targets then spam click on every target once?

(after trying alt + right click, I still found my queue method more effective at sniping. I just had to remember all of the numbers of archers needed to do an instant kill under different conditions)

 you simply want to avoid overkill (shots goes nowhere) - you  have to move your mouse to spread attack to different units of course .-) so there will be many cases you just send attack to the ground (coordinates) :--) but if you zoom it correctly.. targeting is easier..

Edited by 0 calories
  • Like 1
Link to comment
Share on other sites

Yesterday i played with sanafur and while analyzing the replay i noticed the same unti behavior ffm2 described in this thread.

 

single_unit_attacks.png.fd0132c082985eef0094f70aa98540c0.png

 

Since the subject of cheating being discussed in lobby yesterday as well and sanafur claiming using a gaming mouse, i got suspicious and took a look at the command.txt and used the script that ffm2 provided to plot this graph.

Here is an excerpt from three consecutive turns within a spike of single unit attacks that shows within just over a half second sanafur makes 21 individual attack commands on 4 enemy units — no misclicks.

 

Spoiler
turn 4845 200
cmd 6 {"type":"attack","entities":[5509],"target":4059,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5607],"target":4059,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5608],"target":4059,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5685],"target":5050,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5686],"target":5006,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5748],"target":5006,"queued":false,"pushFront":false,"allowCapture":false}
end
hash-quick e4f381d36ea13ab302fc37f88ddbb20a
turn 4846 200
cmd 6 {"type":"attack","entities":[5797],"target":5006,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5850],"target":5006,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5863],"target":4342,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5867],"target":4342,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5897],"target":4059,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5922],"target":4059,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[5959],"target":5050,"queued":false,"pushFront":false,"allowCapture":false}
end
hash-quick 6dc6ee85730d9e2d1bb432853ae71b2e
turn 4847 200
cmd 6 {"type":"attack","entities":[5975],"target":5050,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[6044],"target":5050,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[6055],"target":5050,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[6087],"target":5050,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[6173],"target":5050,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[6185],"target":4059,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[6218],"target":4059,"queued":false,"pushFront":false,"allowCapture":false}
cmd 6 {"type":"attack","entities":[6265],"target":4059,"queued":false,"pushFront":false,"allowCapture":false}
end
hash-quick f258a2f73f73d438a3d14cc69f57f23c

 

 

commands.txt

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...