zine 发表于 2022-9-11 02:29:38

walk几个问题重启后的修复

这个帖子本来最合适放在公告里,但是公告版玩家没法回复反馈新问题,就放在这里。以便修复其他问题。

1.walk迷路之后不能继续使用


这里我用到快速行走且walk没执行完就加入新命令,造成目标房间不一致,迷路的情况

修复如下,回到起点walk可以正常使用


2.玩家希望拼接walk xxx;部分自定义方向再walk yyy的情况
这里有2种办法解决,一是把walk xxx;e;n;w;s;walk yyy定义为node,主站已经可以这样解决
如果实在希望用自己的alias
需要特殊方式把非walk部分用{}括起来,例如


执行情况

箭头部分可以看出达到曲阜鼓楼之后(walk qufu)有个n;s执行再走回扬州(walk yangzhou)的部分,括号{}的作用是告诉walk,这是路径的一部分,不是普通命令,必须按顺序执行
括号方式重启后才会生效
注:{}只有在walk之后才需要, {e;w};walk qufu 是没有意义的,{e;w}会被丢弃掉不执行
walk qufu;{e;w}则在达到曲阜后往东一步,往西一步


3.什么时候在含有walk的alias中不需要用括号?
一些对环境没有依赖的命令,比如hp之类

holygb 发表于 2022-9-11 10:44:01

今天上午又在和walk搏斗,即使在walk_speed=-1时,walk路径较长时,walk期间后面的指令也会先执行,要么走不到,要么迷路。我没有用论坛里的插件,都是自己写的alias,接任务都是先几个walk,再加一些方向指令到npc那里,现在都没用了。
比如下面的指令应该怎么改:
walk aaa;
walk bbb;
w;n;ask xxx about quest;
walk还没走完,后面的w;n;ask xxx about quest;就执行了,难道要一路触发过去?
不知道其他人有没有遇到这样的问题,请赐教!

icer 发表于 2022-9-11 11:45:38

holygb 发表于 2022-9-11 10:44 AM
今天上午又在和walk搏斗,即使在walk_speed=-1时,walk路径较长时,walk期间后面的指令也会先执行,要么走 ...

按照上面zine的恢复,在walk之后的命令前后加上大括号试试啊

holygb 发表于 2022-9-11 12:13:19

icer 发表于 2022-9-11 11:45 AM
按照上面zine的恢复,在walk之后的命令前后加上大括号试试啊

但是zmud解析命令时不会把{}发送出去,在alias里的walk qufu;{s;n};walk yangzhou和walk qufu;s;n;walk yangzhou是一样的

icer 发表于 2022-9-11 12:16:02

我记得加个~就可以不解析

holygb 发表于 2022-9-11 12:43:48

中午重启后测试下walk后面加{}的情况,还是出错了。又试了下不加{},依旧迷路了,但是比以前好,回到扬州walk可以继续用。


zine 发表于 2022-9-11 12:52:00

holygb 发表于 2022-9-10 09:43 PM
中午重启后测试下walk后面加{}的情况,还是出错了。又试了下不加{},依旧迷路了,但是比以前好,回到扬州wa ...
这是你自己问题,信阳就没直通南阳的walk.

┌───信阳─────────┬─────────────┐
│目的地                      │拼音名称                  │
├──────────────┼─────────────┤
│汉口镇                      │hankou                  │
│濠州府                      │haozhou                   │
│长江渡口[江州]            │jiangzhou               │
│荆州府                      │jingzhou                  │
│往生堂                      │shashou                   │
│襄阳                        │xiangyang               │
│许昌                        │xuchang                   │
│扬州                        │yangzhou                  │


我打赌你第二个walk改成正常节点中任何一个就没问题了

holygb 发表于 2022-9-11 12:55:45

简单数了下,有一百多个alias是walk+自定义命令的组合,修改工作量好大,心太累,简直劝退。而且改完还不知道以后会不会又变更机制,不如抛弃walk,全部用常规路径,这样只要处理命令缓存、走路绊倒、走不动的情况了。

holygb 发表于 2022-9-11 13:11:40

zine 发表于 2022-9-11 12:52 PM
这是你自己问题,信阳就没直通南阳的walk.

┌───信阳─────────┬───────────── ...

是我搞错了,试了下walk xinyang;walk xiangyang;{e;e};是可以的。但是这种模式只适合简单指令,不适用判断指令,比如:
walk jiangzhou;{s;e;e;#if (@jobdone=1) {ask han about finish;};}
walk后面的if语句不会被解析,直接原文发出去了,walk系统肯定是不认的。


all 发表于 2022-9-11 13:19:01

walk就是走路,你非得搞判断
页: [1] 2
查看完整版本: walk几个问题重启后的修复