作者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
1F:推 justinj :1意思是如果玩家不在那格的话....就怪清掉,不然玩家 02/29 18:10
2F:→ justinj :...没事...反正就是玩家不在那格时再来清就对了... 02/29 18:11