查看: 299|回复: 1

闲来无事,发个霸刀python宏键技能。

[复制链接]

3

帖子

14

威望

0

LV.1

Rank: 1

积分
10
碎银
0
发表于 2019-9-5 23:01:17 | 显示全部楼层 |阅读模式
我是PVP党,霸刀大概正儿八经的完了半年吧,剑三自带的宏不能PVP,所以,发挥电子信息专业优势,做了个机械键盘。用python控制键盘逻辑。真实的底层USB报文。直接**代码。纯属个人兴趣爱好,不针对任何游戏。视频可以直接抖音搜索leon_cora,不喜勿喷。

按键盘数字键6可触发下面的操作。
#锁足<定身<眩晕<击倒<击退(控制效果优先级)
#秦龙掐招式->大刀体态->破釜->踏宴(3s)->割据,雷走->割据,雷走,破斧->割据3,雷走,楚河,地毯,切回大刀
#->上将军印->踏宴扬旗->项王击鼎->踏宴扬旗->项王击鼎-关门打狗->项王击鼎风车
#霸刀技能快捷键设置,务必根据你的真实情况设置
#------大刀技能------
xcbg='f2'#西楚悲歌(体态切换)
xwjd='1' #项王击鼎 =1
pfcz='3' #破釜沉舟 =2
sjjy='4' #上将军印 =3
gjqg='2' #割据秦宫 =4
#------双刀技能------
slx ='`'#散流霞(体态切换) =·
qllz='1'#秦龙六斩=1
nxm ='2'#闹须弥 =2
sjt ='3'#碎江天 =3
#腿法技能
lxhb='q'#龙骧虎步 =q
tyyq='e'#踏宴杨旗 =e
lzfq='r'#雷走风切 =r
#------远程体态技能------
lydh='f3'#临渊蹈壑(体态切换)
zzbs='2' #醉斩白蛇 =2
fxdy='1' #风啸刀吟 =1
chhj='3' #楚河汉界 (大墙)=3
jbqy='4' #(地毯) =4
fyzs='e' #封渊镇煞(小墙)=e
#目标切换快捷键
sel_enemy='tab' #选择敌人
sel_self ='f1'  #选中自己,掐招时使用
kill_skill='esc'#断读条

#脚本开关快捷键
scriptEn='f12'#使能脚本的按键
hotkey='6'    #一键技能触发
#—————————————技能对应的cd————————————————————
**=1500#公共CD 1500
import km
import led
import key
#开启和关闭脚本
RunEn=0#脚本是否使能
def Runscript():
        #检测是否开启脚本 运行LED亮,不运行灭
        global RunEn,scriptEn
        while key.isdown(scriptEn):
                if RunEn==0:
                        RunEn=1
                        print('脚本已打开\n')
                        led.on(scriptEn,0,1,0) #脚本开关灯绿灯亮
                elif RunEn==1:
                        RunEn=0
                        led.on(scriptEn,0,0,0) #关灭灯
                        print('脚本已关闭\n')
                while  key.isdown(scriptEn):#等待按键抬起
                        km.delay(10)
        return RunEn
#获取当前体态
now_tt=0#当前的体态
def get_tt():
        #获取当前体态值
        global xcbg,now_tt,lydh,slx
        if key.isdown(xcbg) and now_tt!=xcbg:#当前秀明尘身体态
                if  key.isdown(slx) or key.isdown(lydh):#其他两个体态的按键没有松开
                        return now_tt#保持原来的体态
                now_tt = xcbg  
                print('秀明尘身体态\n')
        if key.isdown(slx) and now_tt!=slx:#散流霞体态
                if  key.isdown(xcbg) or key.isdown(lydh):#其他两个体态的按键没有松开
                        return now_tt#保持原来的体态
                now_tt=slx         
                print('散流霞体态\n')
        if key.isdown(lydh) and now_tt!=lydh:#雪絮金屏体态
                if  key.isdown(xcbg) or key.isdown(slx):#其他两个体态的按键没有松开
                        return now_tt#保持原来的体态
                now_tt=lydh
                print('雪絮金屏体态\n')
        return now_tt

#项王击鼎 一共3段  0:**中 其他表示是第几段
last_ready_time=0#执按键时的时间
xwjd_duan=0 #记录当前是第几段(每一段的持续时间不一样)
def skill_xwjd():
        global **,xwjd_duan,last_ready_time
        if **<=0:
                if xwjd_duan==0 or xwjd_duan==3:#首次使用 或者循环使用
                        xwjd_duan=1
                        **=1500
                elif xwjd_duan==1:
                        xwjd_duan=2
                        **=1500
                elif xwjd_duan==2:
                        xwjd_duan=3
                        **=2000 #第三段的持续风车时间不确定默认2s
                key.press(xwjd,10,100)
                last_ready_time=km.gettick() #保存按键时的cpu时钟
                print("项王击鼎x%d"%(xwjd_duan))
                return xwjd_duan
        else:
                **=**-km.gettick()+last_ready_time #刷新CD
                print('项王击鼎**中...%d'%(**))
                return 0

#破釜沉舟 0:调息中  其他值表示当前释放的是几段破釜沉舟
pfcz_duan=0 #记录当前是第几段(每一段的调息时间不一样)
cd_pfcz=0
def skill_pfcz():
        global **,cd_pfcz,last_ready_time,pfcz_duan
        if **<=0:
                if pfcz_duan==0 or pfcz_duan==2:
                        pfcz_duan=1
                elif pfcz_duan==1:
                        pfcz_duan=2
                        cd_pfcz=km.gettick()
                key.press(pfcz,20,80)
                last_ready_time=km.gettick() #保存按键时的cpu时钟
                **=1500
                print("破釜沉舟")
                return pfcz_duan
        else:
                **=**-km.gettick()+last_ready_time #刷新CD
                print('破釜沉舟**中...%d'%(**))
                return 0

#上将军印  
cd_sjjy=0
def skill_sjjy():
        global **,cd_sjjy,last_ready_time
        if **<=0:
                key.press(sjjy,10,60)
                last_ready_time=km.gettick() #保存按键时的cpu时钟
                **=1500
                cd_sjjy=last_ready_time
                print("上将军印")
                return 1
        else:
                **=**-km.gettick()+last_ready_time #刷新CD
                print('上将军印**中...%d'%(**))
                return 0

#割据秦宫 0:cd中 其他:段数
gjqg_duan=0
cd_gjqg=0
def skill_gjqg():
        global cd_gjqg,**,gjqg_duan,last_ready_time
        if **<=0:
                if gjqg_duan==0 or gjqg_duan==3:#首次使用
                        gjqg_duan=1
                        **=1500
                elif gjqg_duan==1:
                        gjqg_duan=2
                        **=1500
                elif gjqg_duan==2:
                        gjqg_duan=3
                        **=1500
                        cd_gjqg=km.gettick()
                key.press(gjqg,20,50)
                last_ready_time=km.gettick() #保存按键时的cpu时钟
                print("割据秦宫%d"%(gjqg_duan))
                return gjqg_duan
        else:
                **=**-km.gettick()+last_ready_time #刷新CD
                print('割据秦宫**中...%d'%(**))
                return 0

#雷走风切 无**
cd_lzfq=0        #雷走风切技能CD
lzfq_duan=0 #第几段雷走风切
def skill_lzfq():
        global cd_lzfq,lzfq_duan
        km.delay(5)
        if lzfq_duan==0 or lzfq_duan==3:
                lzfq_duan=1
        elif lzfq_duan==1:
                lzfq_duan=2
        elif  lzfq_duan==2:
                lzfq_duan=3
                cd_lzfq=km.gettick()
        key.press(lzfq,20,60)
        km.delay(5)
        print("雷走风切x%d"%(lzfq_duan))
        return lzfq_duan



#踏宴扬旗 cd20秒 大刀体态3次,双刀体态1次
tyyq_duan=0
cd_tyyq=0
def skill_tyyq():
        global cd_tyyq,**,last_ready_time,tyyq_duan
        if **<=0:
                if tyyq_duan==0 or tyyq_duan==3:#首次使用
                        tyyq_duan=1
                        **=1500
                elif gjqg_duan==1:
                        tyyq_duan=2
                        **=1500
                elif gjqg_duan==2:
                        tyyq_duan=3
                        **=1500
                        cd_tyyq==km.gettick()
                key.press(tyyq,10,50)
                last_ready_time=km.gettick() #保存按键时的cpu时钟
                print("踏宴扬旗%d"%(tyyq_duan))
                return tyyq_duan
        else:
                **=**-km.gettick()+last_ready_time #刷新CD
                print('踏宴扬旗**中...%d'%(**))
                return 0
回复

使用道具 举报

21

帖子

57

威望

0

LV.2

Rank: 2

积分
91
碎银
0
发表于 2019-10-29 17:06:45 | 显示全部楼层
你真有劲儿哈哈,PYTHON做脚本还是比较爽的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver| 剑侠情缘网络版叁  

Powered by Discuz! X3.1

Copyright © 2014 Kingsoft Corporation.All rights reserved. 金山软件 版权所有

快速回复 返回顶部 返回列表
论坛导航