※ 引述《laechan (打死不投馬冏,李系咩安抓)》之銘言:
: : 問題二:
: : 影子傳說的那種快速再生怎樣寫?
: : 就是總量不變,死了後會馬上在別格重生的那個。
: : 恩,不知道放哪。而且好像也看不了。
: 這是商業機密。
其實很簡單啦,我稍微提一下,假設 1.c 房間設定怪物...
set("objects",([SM"red":1,SM"blue":2]));
設定一隻赤忍,兩隻青忍,那怪物死後希望它重生到其它房間
,於是在怪物檔案內自訂 die 函數...
void die()
{
object ninja;
ninja=clone_object(base_name(this_object()));
// base_name(this_object()) = 檔名 = 讀取該怪物檔名
// clone_object(檔名) 等於叫出該怪物
ninja->move_player( SR + (1+random(20)) );
// 1+random(20) = 1~20, SR + 1~20 = 第 1~20 個房間
::die(); // 再讓怪物執行原先的 die
}
這樣你打死忍者,忍者就在第 1~20 房間隨機重生。
但是,若你希望怪物被系統重生一次就好,接下來都讓打死
怪物->重生在另一個地方 的方式不斷重生(總量不變),那就
要加參數...
set("pre_clean",1); // 設定房間不 reborn
if(!query("already_clone"))
{
set("already_clone",1);
set("objects",([SM"red":1,SM"blue":2]));
::reset();
}
這樣房間只會執行一次 reset(),除非 already_clone 參
數消失。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: laechan 來自: 61.225.184.78 (07/09 14:08)