北大侠客行MUD论坛

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

怎么把短方向转换成常规方向?

[复制链接]
发表于 2014-8-18 05:51:48 | 显示全部楼层 |阅读模式
本帖最后由 xsaturn 于 2014-8-18 01:02 AM 编辑

zmud7.21,写了下面的函数:
#fu direction_convert %if( %pos( s, %1)!=0, "south", %if( %pos( n, %1)!=0, "north", %if( %pos( w, %1)!=0, "west", %if( %pos( e, %1)!=0, "east", %if( %pos( "nw", %1)!=0, "northwest", %if( %pos( "ne", %1)!=0, "northeast", %if( %pos( "sw", %1)!=0, "southwest", %if( %pos( "se", %1)!=0, "southeast", %if( %pos( "enter", %1)!=0, "enter", %if( %pos( "out", %1)!=0, "out"))))))))))


用pathback储存路径list,然后想试着引用:
#var directionlist ""
#forall pathback {%additem( @direction_convert(%i), @directionlist)}

结果directionlist是空的。应该怎么写才对呢?或者有没有更方便的把短方向转成常规方向的办法?

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-8-18 10:32:43 | 显示全部楼层
定义两个list分别放短方向和对应的全称方向,对应取出就是
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-8-18 21:53:35 | 显示全部楼层
举四个方向的例子给你看看:
long="east|south|west|north"
short="e|s|w|n"

把%1从短方向换成长方向: %item(@long,%ismember(%1,@short))

没必要做你那个复杂的函数
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-8-19 08:33:06 | 显示全部楼层
谢谢!
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-9-29 01:42:37 | 显示全部楼层
这样不是好办法,forall计算长的路径会占用资源,最简单就是%replace
方案:
S|e|w|n
第一步replace为|s||e||w||n
第二步replace|s|为|south|
然后再复原。

这个思路和转换中文数字到阿拉伯数字一样
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 05:25 AM , Processed in 0.009338 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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