wendaokoujin 发表于 2024-12-27 06:51:25

分享一个自动战斗的脚本(paotin)

战斗后根据不同的情况做不同的处理,比如一开始战斗马上白虎xueshi,然后血低了补血,上限低了吃药,气势高了perform,武器被打掉了就自动wield武器,我这里做了一个自动的模板,供大家参考
就是启动战斗后设置一个tick,不断的判断各种条件,有一个问题是什么时候启动这个tick,所以又加了一个action,如果启动后没有开始战斗就会#show一个提示,根据这个自动提示继续再次尝试

使用方法就是快开始战斗后,执行 p ,然后就会一直提示 ”未启动自动战斗" 直到敌人开始攻击你之后,战斗结束后tick自动结束,如果战斗一直不开始,就执行 ps 停止尝试 ,战斗全程不用操作,唯一需要手动就是怕wimpy不及时,需要看情况执行一个 hh 指令,就是halt然后随便找一个出口逃跑
#alias hh {halt;halt;#local exits @list.FromSlist{$gMapRoom}[1];okLog $exits;$exits}

#action {%*卸除了你的兵器%*} {#var is.weapon 0}
#action {你装备%*做武器} {#var is.weapon 1}
#action {你已经装备著了} {#var is.weapon 1}
#action {未启动自动战斗} { #delay 0.5 {p}}
#alias ps {#unaction {未启动自动战斗}; #delay 2 {#action {未启动自动战斗} { #delay 0.5 {p}}}}
#var is.weapon 1
#var is.xushi 0
#var is.combat 0
#alias combat {
    #if { @isTrue{$char[战斗中]}} {
      #if { @char.IsBusy{} } {
            #return;
      };
      #if { $char[当前气血] < 3000} {
            #if {$char[气血百分比] < 100} {
                e1;
                #return;
            };
            #else {
                okLog 大郎,该吃药了;
            }
      };
      #if { $is.weapon == 0} {
            wield hammer;
      };
      #if { $char[气势] > 18} {
            perform huoyan-dao.daoqi;
            #return;
      };
      #if { $char[气势] > 12} {
            perform dashou-yin.tianyin;
      };
    };
    #else {
      #var is.xushi 0;
      #untick p.tick;
      okLog 终于都干掉了;
      #var is.combat 0
    };
}
#alias p {
    #if { @isFalse{$char[战斗中]}} {
      #show 未启动自动战斗;
      #return;
    };
    #if { $is.combat == 1} {
      #show 未启动自动战斗;
      #return;
    };
    #if { $is.xushi == 0} {
      xushi;
      okLog 小伙伴们,high起来................;
      #var is.xushi 1;
    };
    okLog 起来了,起来战斗了,敌人打上门来了.........;
    #var is.combat 1;
    combat;
    #tick p.tick {combat;} 0.2;
}

kingyeli 发表于 2024-12-27 10:35:34

自动战斗是个庞大的系统:
pfm选择
武器更换
生命检测
逃跑
返回
查找

多npc时,先kill谁?
对手是否需要下武器?busy?debuff?......谁的武器已被下?谁被busy?谁被debuff
......

jarlyyn 发表于 2024-12-27 10:54:46

kingyeli 发表于 2024-12-27 10:35 AM
自动战斗是个庞大的系统:
pfm选择
武器更换


我基本是CD系统,条件变量,武器系统

逃跑,返回和查找不在战斗系统里,属于任务模块的。

kingyeli 发表于 2024-12-27 11:56:54

逃跑,返回和查找基本都差不多,直接弄成单独模块要好维护点。
刚才看了一下,战斗时还要需要考虑职业技能,国家技能,特技激发,武功转换,灌注内力,内力运用,武器附带技能,还有针对不同任务的不同策略等

kingyeli 发表于 2024-12-27 12:01:11

jarlyyn 发表于 2024-12-27 10:54 AM
我基本是CD系统,条件变量,武器系统

逃跑,返回和查找不在战斗系统里,属于任务模块的。 ...

杰哥的武器系统,可以实现不 i,都能始终清楚左右手分别拿什么武器吗?(或空手)
我做出来的,经常出现错误。明明 wi sword at right,结果却是放在了左手上。

jarlyyn 发表于 2024-12-27 15:50:26

kingyeli 发表于 2024-12-27 12:01 PM
杰哥的武器系统,可以实现不 i,都能始终清楚左右手分别拿什么武器吗?(或空手)
我做出来的,经常出现 ...

这个我是通过定义哪个武器再哪个手的

比如
wield sword 1 at right
wield sword2 at left

然后通过战斗中定时或者触发 i sword来查看

比如这样会是这样

( 1)(装) 长剑(Changjian)

说明我装备着 sword 1。

至于是左手还是右手,我选择信任配置的wield指令

kingyeli 发表于 2024-12-27 16:06:37

左右手还是很重要的,很多pfm需要右手拿武器或空手,如果能确定右手是否拿了武器,拿的什么武器,在pfm之前处理一下就好。不然,打出去了,再告诉你拿的武器不能使用pfm,还得uw all,再wi。感觉现在wi 都很耗资源了。

jarlyyn 发表于 2024-12-27 16:27:45

kingyeli 发表于 2024-12-27 04:06 PM
左右手还是很重要的,很多pfm需要右手拿武器或空手,如果能确定右手是否拿了武器,拿的什么武器,在pfm之前 ...

我A前没遇到过这机制出错误啊

我之前还把高兵的use也用进去了。

kingyeli 发表于 2024-12-27 16:43:55

wi sword 两只手都有可能
wi sword at right;wi sword 2 at right.....多做几次,有时剑也拿在了左手

jarlyyn 发表于 2024-12-27 17:33:59

kingyeli 发表于 2024-12-27 04:43 PM
wi sword 两只手都有可能
wi sword at right;wi sword 2 at right.....多做几次,有时剑也拿在了左手 ...

我A的时候不会……

我那时候经验最高的明教和全真ID都依赖副手出空手perform的

是不是有别的地方有wield的触发?
页: [1] 2
查看完整版本: 分享一个自动战斗的脚本(paotin)