以下是出口设定的变通做法,我认为在特定地图路线下是可行的,
供 wiz 参考。
[email protected]
001
|
002
|
003-004-005-006
LONG
;
如上,虽然是一张地图但实际上副本区域切成两块,这时候设定
003 会跑 instance_check:
instance_check()
{
case "003":
flags=room->query("instance_flags");
switch(flags)
{
case 0:
room->set("instance_flags",1);
ob=room->query("exits/east");
room->set("tmp_east",ob);
room->delete("exits/east");
break;
.
.
}
break;
return 1;
}
这样理论上房间被加载时,往 east 的出口是不存在的,等到满
足出口打开的条件时
ob=room->query("tmp_east");
room->set("exits/east",ob);
再让出口产生就行了。
这种写法的好处就是不需要去读取 instance_rooms.c,缺点就
是不适用层数极多且实际地图极长、或出口较特别的区域,但极
适用总房间数不多的副本区域。
Laechan