北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 2327|回复: 2

unset walk_speed时walk遇到的问题

[复制链接]
发表于 2022-9-11 00:19:33 | 显示全部楼层 |阅读模式
bug投诉
发生时间: 2022.9.10
涉及账号(相关账号务必写清楚,乱写或者写any/all可能导致无法处理): holymja
投诉内容: walk缓存命令的问题
确认信息完整:  
今天想试试unset walk_speed时walk的情况,节省点精力,走路是不是可以舒心点,结果问题挺多,根本用不起来,主要表现为:1、如果walk后面还是其他命令,走几步歇一歇时,前面的walk还没走完,后面的命令就开始执行了,当然这就不对了
2、如果walk没走完就执行其他命令,还会导致walk命令没反应(walk没反应了 https://pkuxkx.net/forum/forum.php?mod=viewthread&tid=47374&fromuid=24352 (出处: 北大侠客行MUD论坛)

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



北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 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的一部分
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2022-9-11 08:46:06 | 显示全部楼层
现在的情况是必须set walk_speed=-1才能保证可以多个walk连用,walk_speed其他值就没有意义。特别是新人创建角色时,默认没有设置walk_speed,刚学会用walk,开开心心加了个扬州去襄阳的alias:walk xinyang;walk xiangyang,结果老是在半路就停了,游戏体验太差。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-1 07:24 PM , Processed in 0.014355 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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