作者laechan (打死不投马冏,李系咩安抓)
看板mud_sanc
标题Re: [wizs]问题请教(十三)
时间Mon Jul 9 14:08:00 2007
※ 引述《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)