北大侠客行MUD论坛

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

请教一个cmud的alias问题

[复制链接]
发表于 2010-3-23 14:18:40 | 显示全部楼层 |阅读模式
原zmud中,抓取一个任务地点存入变量@where,然后设置一个alias,#alias go [email={@where]{@where[/email]},命令中直接使用这个alias go就可以走到任务地点(alias预先做好),但是在cmud中直接用go 只是显示出变量@where的内容,确不执行,请问什么原因?哪位能指点一下,谢谢!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-3-23 15:36:00 | 显示全部楼层
原帖由 seagate 于 2010-1-24 09:23 PM 发表
其实我用cmud以后发现#exec命令处理变量会产生许多许多问题。最好的办法是
#alias alias1 @var1
#alias +0.5 {alias1}
因为alias1产生需要一定时间所以给个延迟比较好。这样执行大命令串也没问题。
否则我以前常 ...


看到这篇,解决了,再去学习一下,时间控制的问题!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-3-23 16:15:02 | 显示全部楼层
#exec自身有一个问题,就是无法执行#字头的系统指令。包括#wa。
因为系统分析input首先分析#,解析出#exec自身就是#字头的指令,对#exec后的内容,并不采取解析input的环节(非递归调用),因此无法识别#字头的指令

[ 本帖最后由 bluse 于 2010-3-23 04:20 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-3-23 16:33:28 | 显示全部楼层
Thanks!
糖果教程回复中有这样一篇:
原帖由 sghjjj 于 2010-1-14 11:41 PM 发表


在721中,对于将变量的值直接作为命令执行,按语法错误来处理的,不是像555那样灵活
所以像@temp2就造成了语法错误,在721中应该用#exec @temp2
另外也还有很多跟555中不一样的地方


如果不用#exec,其他还有没有方法?
另外我在721中,直接将变量的值做命令执行,好像也可以的?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-3-23 21:38:05 | 显示全部楼层
#exec执行内部命令比如#wa都能执行,但是#exec的问题是执行命令太长的话会容易出问题。
原因就不清楚了。
所以我都是用#alias a1 @var;然后稍微延迟执行a1,这样子可以执行足够复杂的命令。
而且给变量赋值也很简单。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-3-23 21:42:39 | 显示全部楼层
zeze 幸福呀,嘿嘿。。我学mush的时候,怎么就没人这么教我
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-3-23 21:46:25 | 显示全部楼层
我的主要问题是,以变量值做为命令,不能执行。
根据seagate的讲解,如果变量值是一个alias的名称,这个alias做的比较长,那用#exec就会出问题了。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-3-23 21:57:29 | 显示全部楼层
你可以#alias a1 @var把变量转换成alias,直接执行alias就不会有问题了。你执行#exec是用他来执行变量,变量太复杂#exec就有极低概率会发傻!也就是说最好不要#exec @var。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-3-23 22:03:01 | 显示全部楼层
学习了,多谢指导!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:46 AM , Processed in 0.011914 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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