副本 (多層式副本) - 聖殿英雄傳說 MUD
By Anonymous
at 2018-05-15T16:06
at 2018-05-15T16:06
Table of Contents
以下是出口設定的變通做法,我認為在特定地圖路線下是可行的,
供 wiz 參考。
map2data=@LONG
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
--
供 wiz 參考。
map2data=@LONG
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
--
Tags:
線上
All Comments
Related Posts
無限制 庫魯特otk主教
By Rebecca
at 2018-05-15T14:17
at 2018-05-15T14:17
20180520 CatWorld/Doom/WindCloud 停機公告
By William
at 2018-05-15T10:46
at 2018-05-15T10:46
在Mac上玩昆特牌破圖
By Eden
at 2018-05-14T23:54
at 2018-05-14T23:54
來分享一下可愛的烏龜與兔子
By Tom
at 2018-05-14T21:12
at 2018-05-14T21:12
統一投手
By Yuri
at 2018-05-14T19:51
at 2018-05-14T19:51