|
由于游戏底层设定在绕指状态下还可以再释放perform sword.raozhi, 所以在低合气状态下很容易反复raozhi,而其他pfm全放不出来,这个问题已经有了两类解决方案,一类是如版提出的,kk师姐完善的
给武当弟子的绕指思路
另一类是井冈山师兄提出的
关于绕指改动后脚本的修改思路
我都试用了一下,还是倾向井冈山师兄提出的方案,效率更高,潜力更大,但他给的代码还有些小问题,我尝试解决一下
主要问题就是这个raozhi_restart函数的绕指释放机制
function raozhi_restart(kzValue,i,kezhiwugongName) --这里看各自版本,公版应该是这个 这一块主要是纠错,当前绕指buff和克制绕指set有出入会按照pfmpfm或者ppp1更改set后重新放raozhi
raozhi_sx=kezhi_valueraozhi[tmp.kzValue]
if raozhi_sx~=nil and raozhi_sx~=tostring(raozhi_tmp) and score.party and score.party=='武当派' then
wait.make(function()
wait.time(0.5)
exe('perform sword.raozhi')
end)
wait.make(function()
wait.time(2.5)
exe('perform sword.raozhi')
end)
end
end
在判断完当前已释放的绕指属性和应释放的绕制属性后,如果不一致,先等待0.5s释放一次,再等待2.5秒释放一次。这个释放方法有点问题,华山2四条命,如果正好在npc每条命被终结的时候执行perform sword.raozhi是释放不出来的,再有第一个等待0.5s后的绕指释放时,通常在绕指的cd当中,这样就可能导致在一段时间内以低克制应对npc,武当华山任务无所谓,npc很弱,如果是官府任务那就惨了,我死了几次看log都是这个问题。
我把我改完之后的代码发出来
1、在kezhiwugong.lua 最后加上
kezhi_valueraozhi={--mush的变量名称,对应武功使用哪种克制
["正"]='妙',
["奇"]='险',
["刚"]='快',
["柔"]='险',
["快"]='柔',
["慢"]='刚',
["妙"]='奇',
["险"]='正'
["空"]='快',
["无"]='快', --我现在是900级太极剑,克制全了,这里就这样设了,金蛇剑法等级低还没用上,就把空的克制也弄成快了,无的克制也是
}
function raozhi_on(n,l,w)
EnableTimer('walkWait22',false)
DeleteTimer("walkWait22")
flag.raozhibuff=true
raozhi_tmp=nil
raozhi_tmp=tostring(w[2])
print("绕指柔剑开启!")
end
function raozhi_off()
flag.raozhibuff=false
print("绕指柔剑关闭!")
create_timer_s('walkWait22',1.0,'raozhi_start')
end
function raozhi_start()
EnableTimer('walkWait22',true)
if score.party=='武当派' and flag.raozhibuff==false then
exe('perform sword.raozhi')
end
create_timer_s('walkWait22',1.0,'raozhi_start')--前面这三个函数保持不变
end
function raozhi_restart(kzValue)
local raozhi_sx=kezhi_valueraozhi[kzValue]--这里我把raozhi_sx变成局域变量,如果其他地方也想调用可改成全局的
print(raozhi_sx)--这里我加了个屏幕输出,随时观察克制对错
if raozhi_sx~=nil and raozhi_sx~=tostring(raozhi_tmp) and score.party and score.party=='武当派' then
wait.make(function()--这里我只保留一个wait函数
wait.time(0.5)
exe('set 绕指 '..raozhi_sx..';perform sword.raozhi')--我直接在这里set 绕制,这样pqi、pzhen那些变量里只需要填pfm就可以了
end)
end
end
function raozhi_go()--新加个一个函数,应对前面说的raozhi释放不出来的问题
wait.make(function()
wait.time(0.5)
exe('perform sword.raozhi')
end)
end
2、然后在function kezhiwugongStart()里增加触发
create_trigger_t('afightB111','^(> )*你施展出太极剑法中的绕指柔剑,剑势陡然变(\\D*)手中\\D*','','raozhi_on')
create_trigger_t('afightB112','^(> )*你剑意一滞,又恢复到原来的攻势','','raozhi_off')
create_trigger_t('afightB113','^(> )*你的绕指柔剑技能冷却时间还有\\D*秒!','','raozhi_go')
create_trigger_t('afightB114','^(> )*绕指柔剑只能对战斗中的对手使用。','','raozhi_go')
SetTriggerOption("afightB111","group","afight")
SetTriggerOption("afightB112","group","afight")
SetTriggerOption("afightB113","group","afight")
SetTriggerOption("afightB114","group","afight")
3、再有,在function kezhiwugongSetPerform(tempatt,i,targetid)里加上raozhi_restart(tempatt),也就是这个位置:
end
raozhi_restart(tempatt)
end
function kezhiwugongsuccess(kezhi_cmd,k_order,npci)
也就是最后一个end之前
4、function kezhiwugongclose()中加入
flag.raozhibuff=false
5、function kezhiwugongStart()中加入
raozhi_start()
加到一开始的位置就可以
定制版改完没问题,山下、官府、蝶梦楼这些我都试过。公版我看了一下函数都没问题的,但我没用公版测,谁感兴趣可以拿公版测一下。
|
评分
-
1
查看全部评分
-
|