[wizs] 新型態區域預載 npc 的做法
思考了諸多做法之後決定採最簡單的。
首先,假設房間已經依 trans 產生,然後 area_room.c 設定了
某一格有 npc,那麼
1.直接 ed 該格房間
2.在 create 函數裡新增底下這行:
::init(this_object());
則該房間不管是 update 後或是被 find_object_or_load,都能
順利產生 npc 參數
> da 133
Object : 房間(/u/p/ppl/hiei/1/133)
exits : ([ "north" : "/u/p/ppl/hiei/1/123" ])
light : 1
long : "微弱的亮光,只能照映出身邊兩步的距離,自己只能小心翼翼的\n前똊i,洞穴裡不斷有聲響傳來,像人的哭聲又像野獸的叫聲,你\n提心吊膽著,防備著下個轉씊s處,有更恐怖的怪物襲擊而來。\n\n"
npc : 怪物(cheng zhi /std/new_ob/npc)
這樣就不需要像之前 quest 或是目前 learnlist 那樣得加上很
多程式段才能載入 npc。
本設定在經測試無問題後會全面實裝,這時唯一要注意的一點就
是,如果區域房間被 rm 掉再重新 trans 產生的話,必須在重新
產生的房間加上 ::init(this_object()); 這行,而為了避免這
種情況亦可於 script_area 檔加上底下
if((int)query("room_file")==133)
::init(this_object());
這樣就算 rm 掉全部房間,重新產生的房間也會自動補上。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.61.157.53
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章