holygb 发表于 2022-9-11 00:19:33

unset walk_speed时walk遇到的问题

今天想试试unset walk_speed时walk的情况,节省点精力,走路是不是可以舒心点,结果问题挺多,根本用不起来,主要表现为:1、如果walk后面还是其他命令,走几步歇一歇时,前面的walk还没走完,后面的命令就开始执行了,当然这就不对了
2、如果walk没走完就执行其他命令,还会导致walk命令没反应(walk没反应了 https://pkuxkx.com/forum/forum.php?mod=viewthread&tid=47374&fromuid=24352 (出处: 北大侠客行MUD论坛))

按照正常理解,walk xxx的指令应该是展开路径,和后面的指令一起进入一个命令队列顺序执行,就算再输入命令,也应该放到命令队列的末尾等待执行。
希望巫师能修复这个问题,在walk_speed=0或1~4时,虽然走得慢,也能走得好。



zine 发表于 2022-9-11 01:51:30

展开路径后面命令加入队列会造成其他问题,普通命令队列不会管是否成功都会继续往下执行。

walk现在必须确认走路成功才会进行下一步,举例,e,e,e,n,n,n,第三个e时候给busy一下,没有正常达到预定地点,这里可以用walk pause恢复走下面的e,e,e。
如果作为普通命令进入队列,则会像普通alias一样,中间停下来但命令队列继续执行不能执行的n;n;n,接下来后面append的入队列命令比如ask xxx about job也不会在预期的环境执行。

walk自身维护一个特殊的移动队列,本身验证比常规命令队列复杂得多。

类似玩家定义的walk yangzhou;e;n;
假如walk yangzhou解析成n;e;n;e;n;e,它在自己的context里执行检查
e;n 等于普通命令在自己的队列里依次执行

解决这个问题最好的办法就是定义node,这样后面的e;n会被解析成walk的一部分

holygb 发表于 2022-9-11 08:46:06

现在的情况是必须set walk_speed=-1才能保证可以多个walk连用,walk_speed其他值就没有意义。特别是新人创建角色时,默认没有设置walk_speed,刚学会用walk,开开心心加了个扬州去襄阳的alias:walk xinyang;walk xiangyang,结果老是在半路就停了,游戏体验太差。
页: [1]
查看完整版本: unset walk_speed时walk遇到的问题