八荒湮隳-天蓬元帅的自动修行

        面对黑神话,晕3D的人表示绝对不会沉迷;但面对4399,有的人却常常无法自拔......

        几个月前,吴巨星发来一个文件,竟然是B站up主早春樱花的神作《八荒湮隳》!几星期前突发奇想,准备帮这师徒四人提升一下修行速度。于是昨天趁着放假,给天蓬元帅量身打造了修行方案。事实证明打造过程虽不跌宕,但也小有起伏......

        操作内容:实现角色自动修行,即实现自动往前走、放技能打怪、自动重新闯关。

        基本操作:C、T、Rap、L...咳错了,重来:A(左移)、D(右移)、K(跳);八戒技能U(战争怒吼)、I(巨石破)(个人习惯);W(返回地图)。之所以不偏心悟空,是因为天蓬元帅的U技能太好用了!

        怎么实现自动往前跑呢?只要按“D”就好了。原思路是使用电脑搜狗自带的软键盘,调用虚拟鼠标定位“D”,轻松解决;现实是切换到游戏页面,软键盘就没了,打脸orz...解决思路:调用虚拟键盘,按顺序“D→K→K→U→I”连跑带A怪,完美!

打完终极BOSS,怎么结束关卡?从地图最右侧按“A”向左位移,大概0.7秒,跑到发光的“W”处,然后停止左移,虚拟键盘按“W”,进入结算画面。

        结算画面会弹出“重新挑战”和“返回地图”,怎么进入下个循环?调用pynput,虚拟鼠标锁定“重新挑战”位置并点击,perfect!

        晚上挂一夜,懒得计算时间,外循环直接设置成无限次(用while True:),实现每轮关卡的无限循环;内循环(释放技能)次数由于关卡不同所以略有差异,25次到60次不等。至此,基本代码已经写好了。Python,运行!

        你问我运行代码之后怎么切游戏?哈哈,自动不了一点,纯纯手动!调用time库,根据手速设置sleep时间,然后运行代码后在sleep时间内切换至提前打开的游戏地图页面,于是一个伪联动就造好了!

        你问我没蓝了怎么办?角色挂了怎么办?哈哈,感谢游戏策划,商城里有一个头衔叫修成正果,穿上它直接无敌!!

        万一漏了小怪怎么办?哈哈,因为天蓬元帅怎么会犯这种低级错误,技能U可不是吓唬人的!

        你可能会抬杠:都无敌了,还刷什么级?额饿呃好问题!有没有一种可能,,玩代码比玩游戏更有趣?!

        言归正传,以“水帘洞”关卡为例,八戒的自动修行正式开始!代码见下:

# 操作内容:虚拟操作-八戒的自动升级之路
# 问题关键:A(左跑)、D(右跑)、K(跳跃);八戒技能U(战争怒吼)、I(巨石破);W(返回地图)
# 八荒湮隳,启动!!
# 选一个地图(注:排除桃花源,墙高)(此处桃花源为例)
# 设置头衔:修成正果(后期不用)
# 运行此代码并在三秒内切换至游戏界面
# sleep or watch show time


import time
import pydirectinput
from pynput.mouse import Controller, Button
mouse = Controller()

time.sleep(3)   # 反应时间,切换至水帘洞关卡
while True:    # 外循环XX次,或者改成while True无限循环
    for j in range(25):  # 内循环25次,具体看地图合理修改;可调大些增加容错
        # 按D不松手,向右一直跑
        pydirectinput.keyDown('d')
        # 按k两次,二连跳(有些图不需要)
        pydirectinput.keyDown('k')
        time.sleep(0.1)  # 按住U键0.1秒
        pydirectinput.keyUp('k')
        time.sleep(0.1)  # 间隔0.1秒

        pydirectinput.keyDown('k')
        time.sleep(0.1)  # 按住U键0.1秒
        pydirectinput.keyUp('k')
        time.sleep(0.1)  # 间隔0.1秒
        # 按U进行战争怒吼
        pydirectinput.keyDown('u')
        time.sleep(0.1)  # 按住U键0.1秒
        pydirectinput.keyUp('u')
        time.sleep(0.1)  # 间隔0.1秒
        # 按I进行巨石破
        pydirectinput.keyDown('i')
        time.sleep(0.1)  # 按住U键0.1秒
        pydirectinput.keyUp('i')
        time.sleep(0.1)  # 间隔0.1秒
        time.sleep(1)   # 往前跑3秒
        pydirectinput.keyUp('d')  # 不跑了
        # time.sleep(3)

    # 准备结算
    time.sleep(1)  # 切换时间
    pydirectinput.keyDown('a')  # 按A向左跑
    time.sleep(1.5)
    pydirectinput.keyUp('a')  # 松开A停止移动
    # 按W
    pydirectinput.keyDown('w')  # 按w结束战斗
    pydirectinput.keyUp('w')  # 松开w完结撒花
    time.sleep(3)  # 结束画面反应时间
    mouse.position = (380, 280)  # 移动鼠标到 空白区(具体看屏幕尺寸)
    mouse.click(Button.left, 1)  # 左键单击
    mouse.position = (380, 480)  # 移动鼠标到 "重新挑战"(具体看屏幕尺寸)
    mouse.click(Button.left, 1)  # 左键单击

        下次一定:怎样适配多个地图?虚拟鼠标还要找好位置,换成像素识别等高端操作?其他角色怎么不漏小怪?下次一定下次一定!

——2025.01.17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值