看板 mud_sanc 關於我們 聯絡資訊
※ 引述《justinj (黑旋風)》之銘言: : 問一下哦 : 如果我要設定這種模式...那種寫法比較好 : 1.某格只要玩家走進去就有可能隨機叫怪物出來 : 但是如果沒在戰鬥中的話,怪就移除了.... : ps.第2句我就寫不太出來了..... 你讓房間有心跳就行了,再用 heart_beat 函數的循環 判斷去抓 ppl 有沒有 query_temp("ats")。 基本上你沒有寫的很詳細。 用心跳的好處是它可以一次處理 n 位玩家不同時間進 出該房間的情況(就不必使用 init 的寫法)。 : 2.某格只要玩家走進去就有可能隨機叫怪物出來 : 但如果此格已經有怪物的話就不會叫了.... : ps.這種的話rb時間要怎麼調 : (之前我以為怪的rb是3hr的...沒想到會自己亂跳..) 這種的用 init 的寫法就好,怪物的 id 給它特別一點 的例如 SPECIAL_MOB,則房間的 init 可以這樣.. void init() { if(present("SPECIAL_MOB",this_object())) return ; // 房間已有該怪就不做任何動作 else if(query("reborn_times")>time()) return ; // 還沒到 reborn 的時間也不做動作 clone_object(怪物檔名)->move(this_object()); return ; } 然後在怪物的 die 函數裡這樣寫... int die() { object room=environment(this_object()); room->set("reborn_times",你設的時間+time()); ::die(); return 1; } 缺點是這種做法是「觸發式」的,好處則是玩家就算一 直待在那裡怪物也不會生出來,除非 init 函數被呼叫 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 223.140.215.214
justinj :1意思是如果玩家不在那格的話....就怪清掉,不然玩家 02/29 18:10
justinj :...沒事...反正就是玩家不在那格時再來清就對了... 02/29 18:11