作者laechan (小太保)
看板mud_sanc
標題Re: [問題] 問題
時間Tue Apr 8 18:40:53 2014
※ 引述《justinj (黑旋風)》之銘言:
: 問題 1:
: 你發覺蟑螂對你展開攻擊!
: ☆☆☆ 戰 鬥 開 始 ☆☆☆
: 你發覺蟑螂對你展開攻擊!
: 你發覺蟑螂對你展開攻擊!
: 你發覺蟑螂對你展開攻擊!
: 你發覺蟑螂對你展開攻擊!
: 你發覺蟑螂對你展開攻擊!
: 其實只有3隻而已....這個通常發生在那個房間還沒啟動時
這原因很簡單,因為新型態區域的寫法問題,我有空把它修一下好了。
(在舊區域不會有這問題)
: 問題2:
: 不知道是不是副本沒寫完..
: instance_data :([ "short" : "[副本]武魂殿的廚房", "long" : "\n 這裡是武魂
: 殿的廚房,時常有黑色的生物從這裡進進出出的\n,所以這裡的衛生不太好,請將這裡打
: 掃乾淨保持衛生。\n\n" ])
: long :"\n這裡是一片廣大的草原,穿越了層層的雜草來到了這裡,你被眼\n
: 前的景象嚇了一跳,竟然會是一小片的矮草區,雖然此處的草都\n長不高,但前面盡是一
: 堆比你還要高的草,你心想應該是過不去\n了。你仔細一看,發現地上有些許\的圓形痕
: 跡,而且周圍的草卻\n沒有枯\萎看來似乎是某種神奇的力量所造成的。\n\n"
: short :"[副本]\t -- 坎達尼亞草原 --"
: 我想房間設定上面那個short及long..
這要檢查 create_instance
// 然後載入 iroom 的預先設定集
if(instance_data[tmp])
{
tmps2=keys(instance_data[tmp]);
if(sizeof(tmps2)>0)
foreach(tmp2 in tmps2)
iroom->set(tmp2,instance_data[tmp][tmp2]);
}
// iroom 剩下的未設定項目就使用 oroom 原來的設定
// 而且限定在 short, long, item_desc 三項
if(!iroom->query("short"))
iroom->set("short","[副本]"+oroom->query("short"));
從上面你可以發現,如果 instance_data 裡面有設定 short 資料,
它就會先在 iroom 上面設定 short,則「理論上」,oroom 的short
就不會設到 iroom 上面。
iroom: 副本房間 oroom: 原先的房間
所以除非 if(!iroom->query("short")) 這一句有問題,而我在撰寫
之初這一句是的確有問題的,我改成 query_ob_data() 的做法後就
解決,我最近會再改成這種做法。
: 問題3:
: 副本那邊..有沒有法子全部都是載入同一種房間(反正就問題2是這個沒法度去設定才出現的)
: instance_files=({
: "083","084","085","086","087","088","089","090",
: "091","092","093","094","095","096","097","098","099","100",
: });
這什麼意思?
另外我會給副本房間一些彈性,如果它偵測到 "/" 就直接讀檔,沒
有偵測到就 INSTANCE_PATH + files[i] 這樣。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.75.120
※ 文章網址: http://www.ptt.cc/bbs/mud_sanc/M.1396953656.A.D1F.html
※ 編輯: laechan (61.224.75.120), 04/08/2014 18:43:31
推 justinj :原本的副本是"截取"一段現存的區域變成副本(但原區域 04/09 08:36
→ justinj :長什麼樣子副本就是這個樣子) 04/09 08:37
→ justinj :我想多一種副本是 一個房間+地圖(或只給房間方向)去 04/09 08:38
→ justinj :演變成副本....不過問題2解決了.那問題3我自己改改看 04/09 08:39
我不太建議這樣─但是副本系統可以支援。
不太建議的原因是,這樣你的副本檔 xxx.c 會設定過長,它有折衷
的做法就是你可以用區域產生器,把副本地圖丟進去,讓它產生出房
間,這樣你的 xxx.c 檔就可以只設定 short、long 及生怪資料,而
不必包含 exits 資料。
我之前有貼一篇說明「為何我覺得每一個副本都有一個原生區域會比
較好」的文,你可以參看:
http://www.ptt.cc/bbs/mud_sanc/M.1393213631.A.8DD.html
我猜測暗黑三也是同樣的做法,它並不是玩家每一次進去都是隨機地
圖隨機產生出口,而是「地圖早就存在了,只是讓玩家覺得隨機」,
關鍵就在於它不是單一伺服器,以聖殿的說法就是,聖殿就算只有單
一伺服器,我也可以先產生出一百張「每張之間都只有些微差異的地
圖」,然後玩家每次進一張地圖就是從這一百張裡面隨機挑一張,這
樣同樣能具現所謂的隨機地圖。
換言之,我認為你自己寫一個 001.c 然後
instance_rooms=({
"001","001","001",......
});
這樣也可以,因為 instance_rooms 有包括出口設定,你自訂出口就
相當於每個房間都是不同出口,甚至在 init_instance 裡面寫隨機
改變出口的呼叫也不是不行,但是與其這樣,還不如一開始就有原生
區域(尤其現在從地圖→區域是已經有現成工具了),你會更好設定,
設定檔也不會過長,我是覺得,一但連每個房間的 long 都要設定到
xxx.c 那還不如現在就思考有沒有更好的設定方式,我的原意是只有
少數房間需要額外設定 long。
Laechan
※ 編輯: laechan (210.61.157.53), 04/09/2014 10:31:15