|  | 
 
 发表于 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;
 | 
 |