以下是出口設定的變通做法,我認為在特定地圖路線下是可行的,
供 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