ltblue
发表于 2015-4-9 11:13:54
仔细看可以看到,两个迷宫的描述是不同的,换句话说,完全可以识别是在哪个迷宫内
从游戏代码看,松树林1共4个文件,互相勾结,没有出口,通过一个h文件,来保证一路向南可以出去
松树林2共2个文件,互相勾结,只有一个文件的一个出口,能通往松树林1
事实上,我们一般只走松树林1,因为要找枯荣......松树林2大家很少走,那个地方比较偏僻,进去也没啥用......
ltblue
发表于 2015-4-9 11:18:34
我的迷宫文件,就用这两个节点代表了这个迷宫,没有其他的了。
大体解释一下内容哈
area、descriptions、exits、location、name。每个节点都有,没什么可解释的
maze和tomaze两个,我目前只是个标示,实际没啥用,至少目前没啥用
跟一般节点不同的,只有
mazeout = {
cmd = "s;s;s;s;s;s;s;s;s;s",
trytimes = 3,
okmsg = "你筋疲力尽,终于走出了松林。",
refind = 1,
gto = 1044,
stop = 1,
},
这个代表了一个方向,寻址的时候,是跟其他方向平等的,只是多了几个属性
trytimes是尝试次数
okmsg是走出去的描述
refind 是走出去之后要重新寻址
stop是走路之前要先停一下(以免指令过多)
另外,还有
walk = {
= "s",
= "s",
= "e",
= "e",
= "s",
},
这个是为了在迷宫内找人用的,怕杀手在迷宫里,所以就加了这个
大体就是这样吧,吃饭去先
ltblue
发表于 2015-4-9 11:18:42
我的迷宫文件,就用这两个节点代表了这个迷宫,没有其他的了。
大体解释一下内容哈
area、descriptions、exits、location、name。每个节点都有,没什么可解释的
maze和tomaze两个,我目前只是个标示,实际没啥用,至少目前没啥用
跟一般节点不同的,只有
mazeout = {
cmd = "s;s;s;s;s;s;s;s;s;s",
trytimes = 3,
okmsg = "你筋疲力尽,终于走出了松林。",
refind = 1,
gto = 1044,
stop = 1,
},
这个代表了一个方向,寻址的时候,是跟其他方向平等的,只是多了几个属性
trytimes是尝试次数
okmsg是走出去的描述
refind 是走出去之后要重新寻址
stop是走路之前要先停一下(以免指令过多)
另外,还有
walk = {
= "s",
= "s",
= "e",
= "e",
= "s",
},
这个是为了在迷宫内找人用的,怕杀手在迷宫里,所以就加了这个
大体就是这样吧,吃饭去先
ltblue
发表于 2015-4-9 11:19:20
至于挡路的问题,我也写在里面了
= {
area = "大雪山",
descriptions = {
= "这座法堂重檐盔顶,纯木结构,四面环以明廊,腰檐设有平座,建筑精湛,",
= "精巧别致。廊下环栽着长青松柏,庭中更有一株几抱粗的百年梅花树,树干黝",
= "黑似铁,苍劲挺拔。",
},
exits = {
south = {
cmd = "s",
gto = 928,
},
up = {
cmd = "up",
gto = 932,
stoper = {
= {
id = "zayi lama",
level = 10,
mes = "杂役喇嘛拦住了你,小心翼翼地道:“施主留步,本寺方丈正在清修,不许打搅,施主",
name = ".*",
},
},
},
},
location = {
= "法堂二楼",
= "〓",
= "萨迦法堂",
= "|",
= "梵音阁",
},
name = "萨迦法堂",
},
ltblue
发表于 2015-4-9 11:19:59
开门的问题
= {
area = "大雪山",
descriptions = {
= "阁为三间单体高台建筑,阁内四面均有砖砌成的许多个方形小佛龛,龛内",
= "各供泥塑佛像一尊。均身披袈裟,盘足坐莲台上,头部冒出佛光。是寺内诵经",
= "礼佛的地方。在东南角有扇不大起眼的黑漆木门。",
},
exits = {
east = {
cmd = "e",
gto = 929,
},
north = {
cmd = "n",
gto = 931,
},
northwest = {
beforego = {
= {
cmd = "open door",
waitovermsg = "你将黑漆木门打开。",
waittime = 0.1,
waittimemax = 1,
},
},
cmd = "nw",
gto = 942,
move = 1,
stoper = {
= {
id = "Hufa lama",
level = 40,
mes = "护法喇嘛拦住你道:“后山是本寺重地,你没有方丈的手谕,不能进去。",
name = ".*",
},
},
},
southdown = {
cmd = "sd",
gto = 925,
},
west = {
cmd = "w",
gto = 927,
},
},
location = {
= "镜庐佛堂 萨迦法堂",
= "↖ |",
= "金刚院----梵音阁----大经堂",
= "↑",
= "护法扎仓",
},
name = "梵音阁",
},
silvent
发表于 2015-4-9 14:41:37
书剑玩家吧。。
ltblue
发表于 2015-4-9 14:44:54
回复 16# silvent
是滴。7年前在北侠玩过一段,那时候上大学。
silvent
发表于 2015-4-9 14:44:58
function alias:caidi_cunzhongxin()
wait.make(function()
world.Send("north")
local l,w=wait.regexp("^(> |)菜地 \\- .*$|^(> |)你乱走了一通,居然发现自己走回了原地。$|^(> |)你的动作还没有完成,不能移动。$|^(> |)什么?$|^(> |)这个方向没有出路。$",3)
if l==nil then
self:caidi_cunzhongxin()
return
end
if string.find(l,"你的动作还没有完成") then
wait.time(0.5)
self:caidi_cunzhongxin()
return
end
if string.find(l,"你乱走了一通,居然发现自己走回了原地") then
self:finish()
return
end
if string.find(l,"这个方向没有出路") orstring.find(l,"什么") then
local w
w=walk.new()
w.walkover=function()
self:finish()
end
w:go(651)
return
end
if string.find(l,"菜地") then
wait.time(0.5)
self:caidi_cunzhongxin()
return
end
if not string.find(l,"菜地") then
local w
w=walk.new()
w.walkover=function()
self:finish()
end
w:go(651)
return
end
end)
end
silvent
发表于 2015-4-9 14:45:09
给你参考
silvent
发表于 2015-4-9 14:47:57
迷宫处理模块,是要单独拿出来的。一般在walk模块里,迷宫进出是用特殊得walk行走比如alias模块控制,但是迷宫遍历,必须要替换,所以可以重新定义下walk