怎么把短方向转换成常规方向?
本帖最后由 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 定义两个list分别放短方向和对应的全称方向,对应取出就是 举四个方向的例子给你看看:
long="east|south|west|north"
short="e|s|w|n"
把%1从短方向换成长方向: %item(@long,%ismember(%1,@short))
没必要做你那个复杂的函数 谢谢! 这样不是好办法,forall计算长的路径会占用资源,最简单就是%replace
方案:
S|e|w|n
第一步replace为|s||e||w||n
第二步replace|s|为|south|
然后再复原。
这个思路和转换中文数字到阿拉伯数字一样
页:
[1]