作者laechan (小太保)
看板mud_sanc
標題Re: [wizs] 問題(XXX)
時間Wed Feb 29 17:02:03 2012
※ 引述《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