请问一个zmud7.21列表型变量计算的问题
假设变量A={1|2|3|4|5|4},对应变量B{a|b|c|d|e|f},A里存的是状态,B是命令还有个变量C={4|3|2|5|1},表示优先级。
意思检索A里存的状态,按C的优先级顺序进行对应,第一优先级是4,那么只要A序列里存在4,我们就执行第一个4对应的那个命令d,如果A序列里没有4,那么从C里取第二优先,查询A里是否有3。
请问zmud7.21里,这命令该怎么编写?
北大侠客行MUD,中国最好的MUD 我觉得首先numc=1;numa=1;
alias Z #if (@numc<=%numbers(@C)) {#if (@numa<=%numbers(@A)) {#if (%item(@A,@numa)=%item(@C,@numc)) {%item(@b,@numa)} {#math numa @numc+a;Z}} {#math numc @numc+1;numa=1;Z}} {#say 没有}
不知道对否。呵呵。 谢谢兄台,大概看懂你的意思了,思路很巧妙啊,不过用alias内部嵌套引用自己来实现,这个zmud不会出问题么?
另外#math numa @numc+a,是不是应该是#math numa @numa+1 ?
这个用#add numa 1,可能会更简洁。 是的,那里写错了。用alias内部嵌套自己只要不溢出和死循环没事。呵呵我也是门外汉研究的。 嘿嘿,这个我要用来提高护镖效率。 呵呵没事可以,一起探讨,我是晨曦。 知道原理了,进游戏,就这么一点东西还是弄了几个小时才成功啊,上面还有个错误,%numbers应该是 %numitems 是用来挑选护镖目的地么?如果目的是为了每次接镖能多推几步,可以考虑在路径设置中解决 alucar一语点醒梦中人啊,确实只要把路径直接改成多绕点路,就可以了。不过这个只要弄好还是有用处的,比如可以优先选择岔路少的目的地。算法实现了,修改目的地优先级是很容易的事。
昨天这么个小功能我弄到半夜才弄好,总是有小错误,基本就没做任务。唉,到底是新手不熟悉啊。 本帖最后由 lcx 于 2012-3-21 04:22 AM 编辑
我从不挑剔。你不用非得选岔路少的啊。我过河过江一样推。也不用非得磨那么多步完成吧。如果找岔路少是为了解决的乱入,有信不乱入啊。就开始乱入手动搞下不就好了。以前我不知道有信不乱入。还搞个大米跟着怕乱入。
页:
[1]
2