|
发表于 2009-10-22 12:18:01
|
显示全部楼层
if ( who->query("combat_exp",1 ) > 2000000 && job > 2000)
x = job%20;
else
x = job%50;
上面是基于经验值和job次数来判断是否符合九阳条件,当经验值大于2M并且job数大于2000时要求job数为20的整数倍,否则为50的整数倍,也就是说,当你经验值大于2M并且job数大于2000次时,每做20次job就有可能得到九阳的提示。
if ( wizardp(who))
tell_object(who,sprintf("x = %d\n", x ));
下面是真正判断是否满足解九阳条件的代码,要求job次数至少超过300次,且job次数越高几率越大,这里解释一下random函数,random(x)表示随机产生不超过x的数,假设job为301次,那么random(301)>300的概率仅为1/300,所以job次数越高越好。当然还有**的条件,!random(8) || (job > 2000 && !random(4))表示的含义是,如果job次数不超过2000次,那么只有1/8的概率,如果超过2000次,那么概率提升为1/8+1/4即3/8接近一半。
if( random(job) > 300
&& x == 0
&& !who->query("jiuyang/wei")
&& ( !random(8) || (job > 2000 && !random(4)) )
)
{
command("whisper "+who->query("id")+" 你快去张教主那里一次,他好象有什么传闻要告诉你。");
who->set("jiuyang/wei", 1);
log_file("quest/jiuyang",sprintf("%8s%-10s明教任务第%s次的时候,从韦一笑处,听到有关九阳神功的传闻。\n",
who->name(1),"("+ capitalize(getuid(who))+")",chinese_number(job)), who);
}
return 1; |
|