作者laechan (小太保)
看板mud_sanc
标题Re: [闲聊] 巴尔BUG原因猜测
时间Thu Apr 8 09:53:20 2010
依据
#1B8wpom2
我猜各位提到的「巴尔」是指 /d/ppl/wide/virtue/mob/baal.c
一、void create ()
{
set("level",235);
::create () ;
set("id",({"baal"}));
通常我会建议 mob 在 ::create() 下面多一行
seteuid(getuid(this_object()));
这有时候可以解决一些没心跳的问题,因为有些动作或函数
的呼叫,它会看 UID。
set(xxx,-3000000+(-100000*random(50)));
看到这一行我突然想到这应该可以用在幻影术的幻影攻击力
折算上。
二、set_temp("selfshield2",({500000,1,this_object(),this_object()}));
有用到 temp data 的怪物最好 inherit SMONSTER;
其实 boss 类的若不是血牛型,最好都 inherit SMONSTER
会比较好一些。
三、在 special_fun 里有几个错误..
// foreach(ob in obs)
call_other(....,
ob,frog,....);
因为你把 foreach 给 // 了,所以 ob 这时是空物件。
把 ob 改成 ppl 应该就 ok 了(这应该是把 foreach 给 // 的原意)
if(!present("BAGOL DAGOR",room))
{
room=environment(frog);
在怪物消失的瞬间 frog 会变空物件。有时会变成 ppl
瞬间消失(如 quit),这个有时要做必要的判断,特别是..
clone_object(VS"dagor_att") -> move(room);
这个最好写成
if(room)
clone_object(VS"dagor_att") -> move(room);
这是我自己的经验。底下也是..
foreach(ob in obs)
{
if(!ob) continue;
dex = (int)ob->query("stat/dex") / 100;
上面的可以改改看再测。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.161.132