链游
最近元宇宙、NFT、GameFi爆火,一堆链游爆发,资本疯狂涌入炒作,小白争先恐后入局,正是逐利的好时机。 以【农民世界】https://farmersworld.io 为例,游戏仅仅上线3个月,用户就突破了30万,NFT资金价值突破60个亿,作为农民世界运行的公链WAX网络的平台代币WAXP也是一路飙升。
农民世界
有资本,有用户,有游戏,有利润,自然就有游戏辅助软件。 农民世界20天回本的案例快速传播,一条新的产业链开始崛起:游戏脚本商。 Axie 的神话,为大众描绘了链游的广阔前景,而 “元宇宙” 天然与游戏相性的贴合、政策监管的升级,更是将链游推向了新的高潮。 伴随着农民世界回本周期的稳定性和持续性,让不少玩家杀入这个游戏,谁都不想错过风口。 游戏工作室的业务开始出现排队的情况,他们开始大量招聘技术服务和营销人员。 一台电脑、一个脚本就搞定,每天做的事情就是卖出游戏的产出木头和金子。
账号被盗
由于农民世界这个游戏,需要每隔1-4小时去点击采集操作,这么麻烦的事情人工来做太麻烦了,所以很多人从网上找来了一些脚本和辅助软件,但是2021年11月7日的一个事件让大家震惊。 农民世界玩家账户出现大面积盗号事件,初步了解被盗资产价值超过3亿,超过200件超级装备被盗号者转走其中包括:电锯、挖机、渔船等,超过1000个账户被盗。。 【链游农民世界被盗近3亿,涉及账户1000余个】 被盗之后,不少玩家通过农民世界官方电报去维权,可是得到的回复是: 很抱歉,这TM是区块链、这TM是加密市场,被盗了谁也没有 办法找回。 现实就是那么残酷,链上资产一旦被转移,谁也没有办法阻止和找回,哪怕是项目方,哪怕是公链平台,都没有权利去修改链上数据。而且链游现在还处于刚刚兴起的阶段,没有什么特别的防盗号措施,只要电脑感染了病毒,账号密码泄露,里面的全部资产就有可能全部被盗。 自从出了这个事情以后,很多玩家都不敢再用脚本了,一些投资较大的老板干脆请人两班倒,24小时守在电脑前去做采集操作。
脚本开发
农民世界这样的网页游戏,做自动化脚本是很容易的,自然是难不倒程序员出身的我们。 三个思路可以走:
1.Web自动化
Web开发和Web测试那么成熟,自然也有很多成熟的Web自动化测试框架可用,比如大名鼎鼎的【Selenium】https://www.selenium.dev 支持Python、Ruby、Java、C#、JavaScript等多种编程语言,支持Firefox、Internet Explorer、Chrome、Safari、Opera、Edge等多种浏览器的自动化,支持Windows、Linux、macOS跨平台,随便你怎么喜欢怎么来 最简单的思路就是通过Selenium对网页上的元素进行模拟点击,判断状态,这是最简单的,也是能最快出东西,最快用上的方案,非常适合个人玩家自己开发自己使用
2.注入JavaScript
如果觉得模拟点击太Low,或者很难做稳定,另一个思路就是在Selenium的基础上,对浏览器注入JavaScript进行操作,JavaScript操作dom本身就有优势,开发更方便,最重要的是,JavaScript注入后,可以直接调用游戏本身的函数,从而悄无声息的实现自动操作,即浏览器中的游戏界面没有任何变化,没有任何点击动作,但是注入的JavaScript在背后默默的调用游戏本身的代码,向服务器发送请求,完成操作 据我所知,农民世界社区里,有个比较出名的辅助脚本【蛮龙助手】就是通过在浏览器中注入JavaScript实现的自动化操作,不过他并没有使用Selenium,其实想想也没有必要了,直接用C#的winform,拖个Webbrowser进去,启动后注入写好的JavaScript就可以了,不过【蛮龙助手】的界面是用【Electron】做的,整个程序都是JavaScript实现的,看来也是一些比较前卫的程序员
3.模拟HTTP请求
实际上,只需对链游稍作研究,就会发现,链游实际上是没有中心服务器的,即游戏的关键数据,并没有保存在游戏开发商的服务商上,像【农民世界】这样简单的链游,更是将所有玩家数据都保存在区块链上,所有玩家的所有游戏操作,都是直接调用开发者在链上部署的智能合约,也就是说,玩游戏的时候,游戏本身是不需要和开发商的服务器交互的,除了启动的时候需要从游戏开发商的服务器上下载H5客户端资源,开始游戏后,游戏客户端和游戏开发商的服务器甚至于一个网络请求都没有,客户端仅仅只需要通过区块链的公共RPC节点,调用智能合约即可。 那么以【农民世界】为例,这是部署在WAX网络上的链游,而WAX网络就是从EOS克隆过来的,DAPP和SDK都是兼容的。 我们可以使用EOS的SDK去访问链上数据,调用智能合约。 其实EOS Chain API https://developers.eos.io/manuals/eos/latest/nodeos/plugins/chain_api_plugin/api-reference/index 本身就是REST API,可以直接通过HTTP请求和它交互,但是这样搞起来比较麻烦,直接使用EOS官方提供的SDK 【eosjs】https://developers.eos.io/manuals/eosjs/latest/index 【github】https://github.com/EOSIO/eosjs 会方便很多,不过目前只有JavaScript版本,没有其它语言版本的SDK 而玩农民世界的玩家,大多数都是使用WAX云钱包【WAX Cloud Wallet】,该钱包也提供了SDK 【waxjs】https://developer.wax.io/waa/use-waxjs/ 那么只需要这两个SDK,就可以在WAX链上和农民世界的智能合约交互了,这样甚至可以脱离浏览器,实现脱机辅助软件,即不需要打开浏览器,也不需要显示游戏界面,更看不到模拟操作,程序就可以悄无声息的实现自动化操作
|