#Oldmeat#
引言
最近在Steam上关注到了一些特别的点击类挂机游戏:Banana、egg、cats、Burger等。这类游戏有鲜明的共同点——点击玩法,而且玩法上只有点击。点击类的挂机游戏有很多,比如点击英雄、愚公移山、pick crafter等,是一种经典老式的挂机模式,随后都逃避不了数值膨胀的问题。不过最近出现的这些游戏,玩法单一的甚至有点不像游戏。挂机一定时间给你一点奖励,或者说点击足够次数给你一定的奖励作为反馈。可以说反馈周期长,而且”玩“久了没啥乐趣可言。
开发动机
因此,我打算自己开发一个连点器小程序来刷Burger的成就(doge)
对,其实很无聊,我不想慢慢点,也不想网上一直找乱七八糟的流氓软件。所以我干脆调戏一下GTP,让他给我狠狠生产好了(好吃表情)
代码
用的Python写的,方便。不过我没打包,这个没想着做大,就一个py自己跑着玩玩得了。
先别急着运行,先装头文件:(Pycharm终端运行)
pip install pynput
然后也不多废话,直接上代码:
import time
from pynput.mouse import Button, Controller
from pynput import keyboard
import threading
mouse = Controller()
clicking = False
click_count = 0
max_clicks = 1000000 # 100万次
def start_clicking():
global clicking, click_count
clicking = True
print("开始点击")
while clicking and click_count < max_clicks:
mouse.click(Button.left, 1)
click_count += 1
if click_count % 1000 == 0:
print(f"已点击 {click_count} 次")
time.sleep(0.005) # 每秒200次点击
if click_count >= max_clicks:
print("点击已完成,共点击100万次")
def stop_clicking():
global clicking
clicking = False
print("停止点击")
def on_press(key):
try:
if key == keyboard.Key.ctrl_l or key == keyboard.Key.ctrl_r:
stop_clicking()
except AttributeError:
pass
def start_listener():
listener = keyboard.Listener(on_press=on_press)
listener.start()
listener.join()
print("程序将在5秒后开始连点...")
time.sleep(5)
# 启动按键监听线程
listener_thread = threading.Thread(target=start_listener)
listener_thread.start()
# 开始点击
start_clicking()
注释
用了全局的鼠标点击效果,其实非常简单,有了这个库非常方便。先确定一个正在点击和没有在点击的状态,然后利用循环重复这两个状态的转换。(我这样说的过程可能有一点点小问题,不过实现起来还是简单的。)max_clicks用来储存你想要点击的最多次数,用来自己收菜。time.sleep其实就是在设置每秒的点击频率。不过游戏识别起来有一个上限,我自己测试Burger的识别上限大概是每秒250次点击,超过上限游戏是读取不到左键信号滴。因为我们这个是连点器,不是内置脚本,后续会整点真正的”脚本“尝尝。不过想要用这个程序刷点击次数的话,需要从Steam外部启动游戏,不然的话窗口识别的是Steam而不是游戏本身。
也就是从Steam->Common->里面寻找Burger等游戏。从游戏本身启动就可以使用啦。
启动程序默认有5s前摇,如果说你想停止连点,按下Ctrl按键就可以停下啦。
运行效果
结语
小东西,没打包。说实话,这个东西适用范围并不广泛,也就自己平时图一乐呵。我已经全开源了,希望你不要用于破坏PVP游戏的平衡,否则小猫会很生气的!(生气的表情)。如果有任何需要改进之处,欢迎评论区留言讨论。希望大家都能在Burger开心地投喂小猫🐱OvO