作者laechan (小太保)
看板mud_sanc
标题[wizs] 新型态区域预载 npc 的做法
时间Mon Aug 19 15:04:48 2013
思考了诸多做法之後决定采最简单的。
首先,假设房间已经依 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