马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
前面有段时间水帖比较少,因为一时兴起,沉迷于这个事情
之前社区有人分享过按键精灵脚本挂机给小号刷每日经验的帖子
起初并没啥兴趣
后来又见到几次类似的帖子,就去了解了一下按键精灵这软件
简单来说就是,通过软件录制或者编写脚本模拟一段鼠标和键盘的操作
本质上两者是一样的,只是录制的脚本难免冗余,杂乱,也无法完成一些复杂的操作
适用于没有编程基础的人,通过录制一段简单的键鼠操作,替代一些简单重复的手动操作
而编写脚本代码则能使键鼠操作更加精细、准确和复杂
这要是放在其他一些操作性游戏里,应该算得上跟“鼠标宏”类似的东西吧,虽然我也只是听过,并未去作任何的了解
而对于三国杀这种卡牌类的残疾人游戏、聪明人游戏来说
按键精灵脚本应该跟外挂扯不上关系
因为并不涉及任何游戏内部数据,也没利用任何游戏程序内部接口
所做的仅仅是完成鼠标和键盘的点击操作自动化
至于操作如何有序进行,所依赖的只不过是游戏互动界面上的像素点(找色,或者找图)以及编写代码的人的逻辑
它能替代的只是所有玩家能手动操作的部分
本来只是一点好奇,接触之后觉得有点乐趣,就断断续续写了一些代码,毕竟编程语言都是相通的,上手还算简单
看了下,总共大概写了2500行代码吧
采集了300来个桌面版客户端的标记点坐标数据以及部分标记点像素颜色数据
当然这其中有很多过程代码实际上并未用上
比如,命令库代码部分有1000行左右,其中有很大一部分是为了处理软件自带的找色方法的不够精确问题
自己去学习了一下几种颜色空间和颜色相似度算法,最后功能脚本中也只取用了其中效果相对最好的一种
另外,很多地方,虽然预留了接口,但觉得目前没有多大意义去具体实现,也就只是放在那里没管
上面的脚本大多不涉及什么复杂的逻辑,甚至说谈不上逻辑,仅仅是简单枯燥的键鼠操作
自动出牌这个脚本,倒是需要需要一些逻辑来维持运行
目前根据输入的参数不同支持4种方式运行
盖主、挂机、防守(托管)、进攻(包括简单的身份标记以及部分简单的技能)
说到底,脚本里所有的出牌逻辑的判断依据只不过是游戏界面上可见的像素点
这与游戏内部出牌程序的实现方法根本不同,也无法比拟
所以实现复杂的逻辑的难度是比较大的
举个例子,我采用了一个比较笨的方法来简单标记身份
任何人对自己打出伤害类牌,就标记他为敌方(只标记前几个,对于反贼身份抗金来说,还是挺有效的)
就这么一个简单的操作,实现起来却需要一系列更为复杂的操作
对于人手动打牌,一眼就能定位
对于游戏内部程序,是谁的回合,打出的是什么牌也都是标记好了的,一步定位
而对于我这个脚本,首先需要判断是需要响应什么类型的牌(固定点找色)
然后还需要判断是谁的回合(多点依次找色)
将可见的像素点变化和键鼠操作转化为出牌逻辑
这三种方式的复杂程度显而易见
总的来说这套脚本代码除了盖主模式,其他并无多大实际作用,纯个人娱乐
之前写来是8人局三开,主忠反挂机,剩5个AI,3反打2忠内,反胜获得经验
这是一个并不算好的刷经验方法,但能凑合。要论实际效率,自然不如盖主刷反简单高效。
后来给挂机的反加入了自动出牌逻辑,算做0.5个AI,勉强可再挂机一反,2.5反打2忠内,也基本反胜
但由于加入了复杂的判断逻辑,鼠标的点击操作也频繁起来,使得本就容易崩的客户端程序能正常运行的时间更短了
另外就是挂机时自动回复消息这个脚本,更加只是为了娱乐
之前用它调戏过某社区小伙伴
他一度怀疑我被盗号
其实我一直有看着他和我写的弱智小助手“对话”,假装不在,偷着乐
其他脚本倒是用得着的
对于有好些小号的我来说,招募活动期间自动签到和祈福白漂倒是省事不少
其他时候拿来做做师徒小号的任务和刷刷经验
脚本会操作键盘和鼠标,所以只能在电脑闲着或者不需要操作的时候(比如看剧)用一用
近期不打算再写其他用途的脚本,不过也算是给枯燥无味的三国杀找到了新的乐趣
以后没准会写个特定武将的出牌脚本,精细化逻辑,放出去和小杀一起玩,或者跑到新手场调戏萌新
|
我也说一句