找回密码
 注册
搜索
查看: 4367|回复: 236

武当绕指1vs1解决方法by wuhun

  [复制链接]
门派:姑苏慕容
发表于 2022-6-3 11:23:48 | 显示全部楼层 |阅读模式
以下只是我的理解,还请大师兄指正。
绕指是武当最有用的技能,没有之一,武当弟子在相当长时间里(甚至可以说永远)都要用绕指进行克制,所以把绕指设置好就是武当弟子的必修课了。
绕指buff持续时间8秒,cd2秒,在buff持续期间可重复覆盖,可通过set设定快,正,奇,刚,柔,妙,险,空,太极剑300级开始,每增加100级太极剑,增加一个设定,以上是对绕指一般性的认识。
现有的机器,无论是公版还是各种定制版,kezhiwugong的框架基本是同一个,在应对敌人不同属性武功时,根据任务不同调用不同系列的克制变量,比如pzheng这一系列,或者是zpk这一系列,等等。如果把绕指的pfm直接加入到这些变量里,会出现反复raozhi导致合气积攒不起来的问题,因为上面的这些克制变量都是被kezhiwugongpfm调用,然后每次心跳都要执行一遍,为了应对这个问题,之前有一些解决方案,比如
如版的
http://www.sjever.net/bbs/forum. ... hlight=%C8%C6%D6%B8
井冈山的
http://www.sjever.net/bbs/forum. ... hlight=%C8%C6%D6%B8
我以前写的
http://www.sjever.net/bbs/forum. ... hlight=%C8%C6%D6%B8
这些都有不同程度的问题,基本上总结起来就是两大问题
1、使用unset 绕指;jifa sword taiji-jian,或者使用jifa sword none;jifa sword taiji-jian来实现切换太极剑慢属性的问题。这里有一个误区,经过我多次观察再加上请教大师兄,在绕指buff持续期间,这些方法是没办法切换到慢属性的,只能等绕指buff消失,如果想强行取消raozhibuff只能用清除所有buff的那个set,那就得不偿失了。因为有这样的问题,所以在用太极剑做任务时,不要使用慢属性进行克制,除非npc是不变招的,否则一定出问题。
2、当npc连续快速变招时,无法准确及时切换克制,释放绕指,最明显的就是应对官府任务npc时,经常会克制混乱。前面的3个版本都有这个问题。

针对第一个问题,很容易解决,就是不使用慢属性,使用raozhi里有的属性进行替代进行克制,具体用什么,要根据太极剑的等级而定,如果是900级以上的太极剑,那当然就是用险来代替慢了。

针对第二个问题,可以把以往填写在pzheng或者zpk这些克制变量里的命令分成三个独立的部分,每部分用单独的代码控制:

第一部分是战斗指令部分,这部分是现有机器自带的,心跳执行,不需要修改,只是在设置pzheng或者zpk时,填写除了set 绕指和perform sword.raozhi之外的所有用到的命令。

第二部分是set 绕指 部分,这部分需要增加新的函数进行控制。把set 绕指和perform sword.raozhi分开来写,是有很多好处的,既方便编写程序,又可以应对与游戏服务器交互的延迟所带来的影响,具体自行体会。多说一句,set这个指令很有意思,可以set xxx yyy,这里的xxx和yyy可以是任意的东西,可以用set这里指令作很多有用的触发。

第三部分是perform sword.raozhi部分,这部分要用timer控制,保证及时发出raozhi,在合气不足或者npc处于不能应战状态(多条命)也要继续发raozhi,直到发出来为止(除非战斗已经完全结束)。

具体解决方法如下:
-----------------------------------------------------------

kezhi_valueraozhi={--应对npc不同属性时,set 绕指 的属性,这个要根据太极剑等级设置,这个表是1000级太极剑的,具体按自己需要修改
    ["正"]='妙',
    ["奇"]='险',
    ["刚"]='快',
    ["柔"]='险',
    ["快"]='柔',
    ["慢"]='刚',
    ["妙"]='奇',
    ["险"]='正',
    ["空"]='空',
    ["无"]='快',  
}
function setraozhi_trigger()--增加raozhi的触发判断语句
        create_trigger_t('raozhi1','^(> )*你施展出太极剑法中的绕指柔剑,剑势陡然变(\\D*)手中\\D*','','raozhi_on')
        create_trigger_t('raozhi2','^(> )*你剑意一滞,又恢复到原来的攻势','','raozhi_off')
        create_trigger_t('afight_raozhi','^(> )*设定环境(\\D*)','','raozhi_go')
        SetTriggerOption("raozhi1","group","afightRZ")
        SetTriggerOption("raozhi2","group","afightRZ")
end

function raozhi_on(n,l,w)  
        if score.party=='武当派' and job.name~='pk' and job.name~='hubiao' and job.name~='songmoya' then
            EnableTimer('walkWait22',false)
            DeleteTimer("walkWait22")
            EnableTimer('walkWait33',false)
            DeleteTimer("walkWait33")
            flag.raozhibuff=true
            raozhi_tmp=nil
            raozhi_tmp=tostring(w[2])
            print("绕指柔剑开启!")
            EnableTrigger('afight_raozhi',true)
        end
end
function raozhi_off()
        if score.party=='武当派' and job.name~='pk' and job.name~='hubiao' and job.name~='songmoya' then
            flag.raozhibuff=false
            print("绕指柔剑关闭!")
            raozhi_start_a()             
        end
end
function raozhi_start_a()
        EnableTimer('walkWait22',true)
        if score.party=='武当派' and flag.raozhibuff==false and flag.raozhibutton==true then
        print("打开绕指!")
            exe('perform sword.raozhi')
        end
        create_timer_s('walkWait22',0.5,'raozhi_start_a')
end
function raozhi_start_b()--似乎是不需要用这个函数,可以都用raozhi_start_a(),最初写这部分的时候是考虑了定时器未正常关闭的问题,懒得改了,谁测试一下只用raozhi_start_a()有没有问题。
        EnableTimer('walkWait33',true)
        if score.party=='武当派' and flag.raozhibuff==false and flag.raozhibutton==true then
        print("打开绕指!")
            exe('perform sword.raozhi')
        end
        create_timer_s('walkWait33',0.5,'raozhi_start_b')
end

function raozhi_restart(kzValue) --根据npc变招重新设定绕指
    local raozhi_sx=kezhi_valueraozhi[kzValue]
        print(raozhi_sx)
    EnableTimer('walkWait33',false)
        DeleteTimer("walkWait33")
        exe('set 绕指 '..raozhi_sx..'')
end

function raozhi_go(n,l,w)
        if string.find(w[2],"绕指") then
                raozhi_set=nil
            if string.find(w[2],"快") then
                        raozhi_set="快"
            elseif string.find(w[2],"正") then
                          raozhi_set="正"
            elseif string.find(w[2],"奇") then
                          raozhi_set="奇"
            elseif string.find(w[2],"刚") then
                          raozhi_set="刚"
            elseif string.find(w[2],"柔") then
                          raozhi_set="柔"
            elseif string.find(w[2],"妙") then
                          raozhi_set="妙"
            elseif string.find(w[2],"险") then
                          raozhi_set="险"
            elseif string.find(w[2],"空") then
                          raozhi_set="空"
            elseif string.find(w[2],"无") then
                          raozhi_set="无"
                else
                        print("绕指设定识别失败!")
                end
        else
                return                             
    end
        if score.party=='武当派' and job.name~='pk' and job.name~='hubiao' and job.name~='songmoya' then
                if raozhi_set~=nil and raozhi_set~=tostring(raozhi_tmp) then
               flag.raozhibuff=false
               raozhi_start_b()
               print("判断成功!")
            end
        end                       
end
--------------------------------------
上面是增加的函数,直接写到kezhiwugong文件的后面,以下是需要在现有代码里增加的部分
1、function kezhiwugongAddTarget(t_name,t_id)
函数里增加代码,加到kezhiwugongStart()前面即可
if job.name~='pk' and job.name~='hubiao' and job.name~='songmoya' then
                        exe('set 绕指 空')--这里是为了进入战斗盲打一个空属性绕指,如果太极剑不足1000,可以把空改成快
                end

2、function kezhiwugongStart()里for循环前面加入
if job.name~='pk' and job.name~='hubiao' and job.name~='songmoya' then
        raozhi_start_a()
        end
在一系列settriggeroption的最后增加
if job.name~='pk' and job.name~='hubiao' and job.name~='songmoya' then
                        setraozhi_trigger()
                        end
在EnableTriggerGroup('afight',true)后面增加
EnableTriggerGroup('afightRZ',true)
EnableTrigger('afight_raozhi',false)

3、在function kezhiwugongSetPerform(tempatt,i,targetid)最后一个end前增加
if job.name~='pk' and job.name~='hubiao' and job.name~='songmoya' then
                raozhi_restart(tempatt)
        end
4、在function kezhiwugong()增加
                raozhi_tmp=nil
        flag.raozhibuff=false
        flag.raozhibutton=true
5、在function kezhiwugongclose()增加
EnableTriggerGroup('afightRZ',false)
               DeleteTriggerGroup("afightRZ")
        EnableTrigger('afight_raozhi',false)
        DeleteTrigger("afight_raozhi")
               flag.raozhibuff=false
        flag.raozhibutton=false
        EnableTimer('walkWait22',false)
        DeleteTimer("walkWait22")
        EnableTimer('walkWait33',false)
        DeleteTimer("walkWait33")
6、在wudang.lua文件的function wudangBack(n,l,w)中增加
        flag.raozhibutton=false
在huashan.lua文件的huashan_getget=function()函数中增加
flag.raozhibutton=false
在guanfu.lua文件的function guanfuSuspectDie()函数中增加
flag.raozhibutton=false
这里把经常需要作的3个任务改了一下,雪山任务,蝶梦楼任务,可以自行修改,把flag.raozhibutton=false加到类似的函数里,也就是判断npc被打死或者任务结束的函数,避免在战斗结束到执行kezhiwugongclose之间的这一段时间还在不断的发perform sword.raozhi指令。

---------------------------------------------
以上是代码,其中进入战斗盲打一个raozhi是沿用井冈山的思路,你也可以不盲打,根据npc出招进行判断再出raozhi,或者更进一步买了vpearl,l npc直接看到npc的武功属性,直接出对应克制的绕指,不过这就需要自己修改代码了。
再有上面的是用在1vs1战斗里的,pk被我排除了,pk肯定要自己另外写的,再有排除的就是护镖和颂摩崖,这两个是1vs n的战斗肯定不能直接用上面的,需要增加一个函数,比如颂摩崖加一个raozhiset函数,根据两个npc的属性确定set 绕指的属性。
以上代码最好在太极剑等级500级以后使用,这样克制就比较全了,用来做官府任务最好太极剑要有700级以上,否则比较危险,官府任务我小号的最低配置是,武器伤害450,镶嵌4级合气宝石,quest解满左右互博,内力不要太低7、8万还是要有的,zpk里除了get、jifa之类的就只用perform sword.lian来打,目前小号150M还是可以随便打的,120、130的圣阶克制在防御上还是很猛的,基本可以无视npc的攻击,如果被npc busy了导致无法及时切换raozhi那确实没办法,只能等以后声望够了解个凌波微步疾,那就更稳妥了,不过前期来看,基本死亡率很低,2、3天死一次吧,已经远强于其他门派了。
门派:昆仑派
发表于 2022-6-14 19:30:28 | 显示全部楼层
ganjiang@tj 发表于 2022-6-14 17:55
女号好像也就只有这个优势了,综合看起来感觉还是不如男号

基本没什么区别 重要的quest都不分男女
门派:明教
发表于 2022-6-3 12:29:30 | 显示全部楼层
刚一上来就看到了满满的干货贴,这个是武魂兄的心血,需要好好学习领悟一下,非常感谢
门派:姑苏慕容
 楼主| 发表于 2022-6-3 12:51:59 | 显示全部楼层
imageman@tj 发表于 2022-6-3 12:29
刚一上来就看到了满满的干货贴,这个是武魂兄的心血,需要好好学习领悟一下,非常感谢

你测试一下,看有什么问题贴出来。等干将师弟测一下公版的,公版我没测试
门派:明教
发表于 2022-6-3 13:05:02 | 显示全部楼层
wuhun@tj 发表于 2022-6-3 12:51
你测试一下,看有什么问题贴出来。等干将师弟测一下公版的,公版我没测试

我这两天抄作业试一下,有问题我再请教你
门派:姑苏慕容
 楼主| 发表于 2022-6-3 14:36:13 | 显示全部楼层
imageman@tj 发表于 2022-6-3 13:05
我这两天抄作业试一下,有问题我再请教你

小错误,修正一下
function raozhi_restart(kzValue)里的这个exe改一下,改成这个
        exe('set 绕指 '..raozhi_sx)
门派:昆仑派
发表于 2022-6-3 14:59:59 | 显示全部楼层
感谢师兄分享 我现在用的设置就是师兄以前发的贴子
门派:昆仑派
发表于 2022-6-3 15:00:56 | 显示全部楼层
现在这个主要是针对官府任务的吧 先研究研究了
门派:明教
发表于 2022-6-3 15:15:21 | 显示全部楼层
tour@tj 发表于 2022-6-3 15:00
现在这个主要是针对官府任务的吧 先研究研究了

你马上就要官府了,可以好好研究一下
门派:明教
发表于 2022-6-3 15:15:52 | 显示全部楼层
tour@tj 发表于 2022-6-3 14:59
感谢师兄分享 我现在用的设置就是师兄以前发的贴子

我用的也是,武魂兄造福我们武当派了
门派:昆仑派
发表于 2022-6-3 15:18:19 | 显示全部楼层
imageman@tj 发表于 2022-6-3 15:15
你马上就要官府了,可以好好研究一下

早呢 看师兄给的条件 还要好久呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-19 01:14 , Processed in 0.026967 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表