asksky 发表于 2016-6-8 22:00:26

关于武当新手任务阵法触发,有没有像我这样做的

新人先报到,久仰pkuxkx大名,以前在西游记总站和几个地方站混过,来这里一看,果然博大精深,按内容丰富程度来说,西游记岂能与pkuxkx同日而语。
好了,言归正传
我做武当阵法触发开始的思路是根据开始的位置来判断是开始是第几步该走哪个位置,比如#if @start_wei="金" {#var step 1}和教头提示正/反次数比如#add step +1,再根据根据五行相生相克顺序#if @step=... {zouwei ......},能实现,但感觉有点小麻烦。
后来看wiki介绍的时候说其他弟子走完位置,剩下的就是该走的,于是想到个简单的方法。
开始#var total 15;
清*一会儿站在金位。
#add total -1
清*一会儿站在木位。
#add total -2
水 -3 火-4 土 -5
#if @total=1 {zouwei 金;#var total 15}
#if @total=2 {zouwei 木;#var total 15}
...
...

测试可行。
有没有像我这样做的啊

北大侠客行MUD,中国最好的MUD

flyingfire 发表于 2016-6-8 22:13:58

学习下你的思路。。做其他任务用得上。

xman 发表于 2017-5-11 12:45:46

按照你的思路,尝试编一个试试,自己盯着太累人了

acerrelaxx 发表于 2017-11-4 20:34:46

#if @total=1 {zouwei 金;#var total 15}
#if @total=2 {zouwei 木;#var total 15}
这个用什么触发?

doyou 发表于 2020-3-25 20:31:43

#if {@zj_me=½e} {zj_me=ľ} {#if {@zj_me=ľ} {zj_me=íá} {#if {@zj_me=íá} {zj_me=Ë®} {#if {@zj_me=Ë®} {zj_me=»e} {#if {@zj_me=»e} {zj_me=½e}}}}};zouwei @zj_me
分四个提示句

doyou 发表于 2020-3-25 20:35:12

#if {@zj_me=金} {zj_me=木} {#if {@zj_me=木} {zj_me=土} {#if {@zj_me=土} {zj_me=水} {#if {@zj_me=水} {zj_me=火} {#if {@zj_me=火} {zj_me=金}}}}};zouwei @zj_me
四个语句分别触发

markdeny 发表于 2021-12-30 00:09:12

楼主的思路挺好的,但是好像改了,触发不了
我用的笨办法,两个变量,正反每个变量5个条件判断,每走一个位置用通配符取一次五行位置变量位置,每变一次极性取一次极性变量
大概如下:
#TRIGGER {从自己现在的位置按照『(*)五行阵』的要求往下走一步}
{#if %1="正" {#var jixing 1};
#if %1="反" {#var jixing 0};
#wa 4000;
#if @jixing=1 {
        #if @weizhi="金" {zouwei 水};
        #if @weizhi="木" {zouwei 火};
        #if @weizhi="水" {zouwei 木};
        #if @weizhi="火" {zouwei 土};
        #if @weizhi="土" {zouwei 金}};
#if @jixing=0 {
        #if @weizhi="金" {zouwei 木};
        #if @weizhi="木" {zouwei 土};
        #if @weizhi="水" {zouwei 火};
        #if @weizhi="火" {zouwei 金};
        #if @weizhi="土" {zouwei 水}
        }
}

wangshiyan 发表于 前天 01:37 PM

本帖最后由 wangshiyan 于 2025-7-5 01:51 PM 编辑

这个任务极简明,死活拢共就五个位置,初值极固定无变化;死活拢共被NPC耗掉四个,余值即正解,数量极固定无变化。因此可以有多种基本操作都能满足这个简明情景。楼主极具灵性的思想在这里大材小用了,这个思想的价值一定应该是在其他更高更复杂的场合中才有更好的发挥,现已纳入笔记小库,致敬楼主!
这个任务我用刚性对照表已实现。近日刚开始系统学习语法知识,学到列表时想起这个任务来了,作为自己的列表习题又写了一遍。
逻辑很简明:
一、教习说“一会站在*位”,这个不需要任何列表和计算,机械执行便是。
二、教习说“……的要求往下走一步”,此时若是使用对照表那必须关注“正”或“反”的信息,但本题是使用列表进行排除操作,所以不必关注“正”或“反”,只需要初始化一个含有五个元素的列表。
三、用“走向*位”来捕获NPC的走位,每捕获一个就从列表中抠掉对应元素。抠完四个即得出自己的走位结果。这里我采用的是每抠走一个元素都判断列表长度,当长度为1时正解出炉。
四、不必销毁残表,当教习又说“……的要求往下走一步”时,现场再初始化五元素列表即可。
据此,代码段如下(调试手段未擦除,鉴个谅):
#nop 处理集体走位指令
#action {的要求往下走一步。} {
    okLog 建好列表了;
    #list current_wuxing create {金;木;水;火;土};
    #class npc_steps_capture open;
    #action {走向%*位。$} {
      #var wz %%1;
      okLog 捕获到$wz;
      #list current_wuxing filter {} {$wz};
      #list current_wuxing {size} {len};
      okLog 列表长度现为$len;
      #if {$len == 1} {
            #class npc_steps_capture kill;
            #send zouwei $current_wuxing;
      };
    };
    #class npc_steps_capture close;
};当然我这个也显得很没必要,主要是因为想巩固刚学的列表知识,才强用列表的。更简洁的手段应该是一个字符串变量
#var wuxing 金木水火土;然后每捕获一个NPC的走位就从中摘除
#replace wuxing 金 {};


页: [1]
查看完整版本: 关于武当新手任务阵法触发,有没有像我这样做的