Advertisement
Flyingwr

[Transformice] Anti-Macro

Oct 10th, 2020
1,311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.30 KB | None | 0 0
  1. local key_presses = { }
  2.  
  3. local handle_keys = false
  4.  
  5. function eventNewPlayer(name)
  6.     if (not key_presses[name]) then
  7.         key_presses[name] = {
  8.             [0] = { 0, "Left" },
  9.             [1] = { 0, "Up" },
  10.             [2] = { 0, "Right" }
  11.         }
  12.     end
  13.  
  14.     for _, v in next, { 0, 1, 2 } do
  15.         system.bindKeyboard(name, v, true)
  16.     end
  17. end
  18. table.foreach(tfm.get.room.playerList, eventNewPlayer)
  19.  
  20. function eventNewGame()
  21.     handle_keys = false
  22.     ui.removeTextArea(23)
  23. end
  24.  
  25. function eventLoop(elapsed)
  26.     if (elapsed < 3500) then -- Anti-Macro keeps off while round time elapsed is less than 3.5 seconds
  27.         return
  28.     end
  29.  
  30.     handle_keys = true
  31.  
  32.     for player, v in next, key_presses do
  33.         for key, presses in next, v do
  34.             if (presses[1] > 20) then
  35.                 tfm.exec.freezePlayer(player)
  36.                 ui.addTextArea(23, string.format("<font size='10'><r>[Anti-Macro]</r> %s %s key presses detected (%s)", player, presses[1], presses[2]), nil, 2, 380, nil, nil, nil, nil, 0, true)
  37.             end
  38.  
  39.             key_presses[player][key][1] = 0
  40.         end
  41.     end
  42. end
  43.  
  44. function eventKeyboard(name, key)
  45.     if (key_presses[name][key]) then
  46.         key_presses[name][key][1] = handle_keys and (key_presses[name][key][1] + 1) or 0
  47.     end
  48. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement