北大侠客行MUD论坛

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

Zmud 7.21 Map定位问题

[复制链接]
发表于 2014-8-19 21:10:06 | 显示全部楼层 |阅读模式
我试着用maper的教程和oolong的建议来画地图,但是在定位的时候遇到了麻烦。
目前可以自动抓取房间名,房间描述和房间出口。比方说星宿后山的豁然轩,room_name='豁然轩',room_desc='这里是风景极好,眺望远处的山峰,心中烦闷之气一吐而尽。',room_exit='s|w'。

按照oolong的建议,定位思路是用target=%mapquery([name]='@room_name' and [desc] like '% @room_desc%' and [desc] like '% @room_exit%' ),同时对比[name],[desc]和[exit]。但是遇到的问题是,哪怕room_desc的内容和地图里房间的描述一模一样,mapquery也找不到结果。我猜测可能有乱码因素,但是不知道应该怎么解决。试过把两个描述都重新赋值让它们都变成乱码,但是query的时候还是找不到结果。


有什么更简单的方法能实现定位吗?

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-8-20 07:54:10 | 显示全部楼层
修改了一下,把出口信息也放到描述里,然后可以用出口信息来定位了,但是如果用mapquery查描述的话依然找不到房间。应该怎么改才行呢?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-9-16 21:39:25 | 显示全部楼层
出口在画地图的时候自动画进去,我以我的房间举例:

朝天宫
这里是朝天宫,西面是城西大路,东面通向中城。 【exit】east|west【exit】
我将出口信息转换为east|west|south格式,前后加【exit】是为了查找方便。
(比如房间1234的出口,exit=%word(%roomdesc(1008),2,"【exit】"),不过目前看没啥作用除了定位)

定位:
name=朝天宫
desc=这里是朝天宫,西面是城西大路,东面通向中城。
exit=east|west
test=%mapquery([name]='@name' and [desc] like '%@desc%' and [desc] like '%@exit%')
#sh test = @test
结果:
test = 3879 可以运行,也可以这样写:
name=朝天宫
desc=这里是朝天宫,西面是城西大路,东面通向中城。
exit=east|west
temp=%concat( "[name]='@name' and [desc] like '%@desc%' and [desc] like '%@exit%'")
test=%mapquery( @temp)
#sh test = @test
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-9-20 21:50:37 | 显示全部楼层
回复 3# oolong
多谢前辈指点,我回头去试试。


顺便问一下,之前你的“不耻上问”系列问题,最后都是怎么解决的?我已经被走路过河等busy给卡了很久了。。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-9-21 10:22:33 | 显示全部楼层
这个每个人的处理方法完全不一样,我不用#slow很多年了啊,那个太慢了。
#slow 已经忘记怎么处理了,应该按照不能#slow的情况处理吧,比如迷宫出来等等。你特殊处理一下吧。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-9-21 13:07:43 | 显示全部楼层
这个每个人的处理方法完全不一样,我不用#slow很多年了啊,那个太慢了。
#slow 已经忘记怎么处理了,应该按 ...
oolong 发表于 2014-9-21 02:22 AM

呃不是,我是想问像坐船这样的情况用map怎么处理,因为是坐上了船后要等一段时间,有提示了才能用out下去,如果不设置的话就会一上船然后马上又下去了。。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-9-21 15:33:44 | 显示全部楼层
每个人的思路不一样啊,我不用#slow,我的模式是alias 扫街。
当知道目的地点以后会得到当前地点到目的地点的路径,再加上目标地点到周边n个房间的路径。
合成一个大的路径。
然后路径拆分
1,超过步数停顿
2,特殊路径停顿 (你说的过河就属于这一种)
我将所有特殊路径(迷宫,过河,走路busy,要特殊物品)都统一用alias命名一下,比如passxxx,做在地图里面,方便路径拆分分析。

如果你的路径是黄河南岸到北岸边,alias 为passhh1
那么你拆分路径肯定分成两个,前面是 n;passhh1 后面是n;n;n;kill npc;e;kill npc;n;kill npc这种。
当你输入passhh1以后,就是等船,用触发解决,只要做上船,出来了,根据描述立即执行后面剩余路径。
但是这种模式不适用#slow。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-9-22 05:31:08 | 显示全部楼层
每个人的思路不一样啊,我不用#slow,我的模式是alias 扫街。
当知道目的地点以后会得到当前地点到目的地点 ...
oolong 发表于 2014-9-21 07:33 AM

原来如此!不过kill的busy足够让路径停下来吗?还是说用hit,perform,然后指望perform的busy足够长?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-9-22 09:35:33 | 显示全部楼层
一般用hit;perform;知道id就可以用lookin id
e;lookin @id;s;lookin @id
只要成功了,就立即找到下面路径都浪费了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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