|
由于本站100%结拜,30%互博 懂的可以参考我的code来解互博
// Modify By River@SJ about jieyi and hubo
// Modify by Darken for taohua quest 2k
// Modify By River@Sj for jiuyin quest
// Update by lsxk@hsbbs add通宝物品提高解quest几率. 2007/7/20
//by spiderii@ty 取消解迷的变态人数限制
inherit NPC;
#include <skill.h>
#include <ansi.h>
#include "question.h"
int ask_jieyi();
int do_answer(string arg);
int questions(object me);
int ask_jiuyin();
int ask_hubo();
int do_fangyuan();
int do_learn(string arg);
int ask_story();
int ask_skill();
int ask_story2();
void waiting(object ob);
void create()
{
set_name("周伯通", ({ "zhou botong", "zhou", "botong" }) );
set("nickname", "老顽童");
set("long", "他满头长发,直垂至地,长眉长须,鼻子嘴巴都被遮掩住了。\n"
"他须发苍然,并未全白,只是不知有多少年不剃,就如野人一般毛茸茸地甚是吓人。\n"
"他的举止犹如孩童一样。\n");
set("gender", "男性" );
set("age", 48);
set("attitude", "peaceful");
set("apprentice", 1);
set("str",28);
set("int",25);
set("con",30);
set("dex",29);
set("unique", 1);
set("pur", 30);
set("per", 24);
set("no_get", "周伯通对你而言太重了。\n");
set("max_qi", 12000);
set("max_jing", 10000);
set("max_neili", 21000);
set("jiali", 150);
set("combat_exp", 5600000);
set("eff_jingli", 9500);
set("double_attack", 1);
set("score", 5000);
set("chat_chance_combat", 80);
set("chat_msg_combat", ({
(: perform_action, "sword.qixing" ,
(: perform_action, "sword.sanqing" ,
(: perform_action, "cuff.kong" ,
(: perform_action, "cuff.ming" ,
}));
set_skill("force", 380);
set_skill("xiantian-gong", 380);
set_skill("dodge", 390);
set_skill("tiyunzong", 390);
set_skill("cuff", 380);
set_skill("kongming-quan", 380);
set_skill("parry", 380);
set_skill("sword", 380);
set_skill("quanzhen-jianfa", 380);
set_skill("taoism", 200);
set_skill("literate", 260);
map_skill("force", "xiantian-gong");
map_skill("dodge", "tiyunzong");
map_skill("cuff", "kongming-quan");
map_skill("sword", "quanzhen-jianfa");
map_skill("parry", "quanzhen-jianfa");
prepare_skill("cuff", "kongming-quan");
set("rank_info/respect", "老顽童");
set("shen_type", 1);
create_family("全真教", 2, "弟子");
set("class", "taoist");
set("inquiry", ([
"name": "叫我周伯通就好了。",
"rumors": "我被那个臭东邪关在这里十几年,每天就是一个哑仆来送饭。",
"here": "这里是桃花岛。寒雨那个小坏蛋在这里加了无数的quest,看你能不能找全了。",
"东邪": "是黄药师这个无耻的家伙,骗了我的九....去看。",
"黄药师": "这个无耻的家伙,骗了我的九....去看。",
"中神通": "我的师兄是天下武功最高的,第一次华山论剑时公推为第一高手。",
"王重阳": "我的师兄是天下武功最高的,第一次华山论剑时公推为第一高手。",
"周伯通": "找我有什么事吗?",
"瑛姑": "四张机,鸳鸯织就欲双飞....",
"刘瑛": "四张机,鸳鸯织就欲双飞....",
"段皇爷": "老顽童做事对不起他,没脸再见他了。",
"段智兴": "老顽童做事对不起他,没脸再见他了。",
"南帝": "老顽童做事对不起他,没脸再见他了。",
"老顽童": "我就是啊,找我有什么事吗?",
"空明拳": "空明拳共七十二路,口诀是:空朦洞松、风通容梦、冲穷中弄、童庸弓虫。",
"kongming-quan": "空明拳共七十二路,口诀是:空朦洞松、风通容梦、冲穷中弄、童庸弓虫。",
"黄蓉": "是几个月前来陪我聊天的那个小姑娘吗?",
"郭靖": "那是我的结义兄弟,人虽然傻,心肠倒好。",
"寒雨": "说起来也是他创造了我,不过这家伙是个造quest狂。",
"jpei": "说起来也是他创造了我,不过这家伙是个造quest狂。",
"桃花岛": "这里就是桃花岛。寒雨那个小坏蛋在这里加了无数的quest,看你能不能找全了。",
"方": "方要正方!",
"fang": "方要正方!",
"圆": "圆要浑圆!",
"yuan": "圆要浑圆!",
"九阴真经": (: ask_jiuyin ,
"双手互搏": (: ask_hubo ,
"左右互搏": (: ask_hubo ,
"结义": (: ask_jieyi ,
"结拜": (: ask_jieyi ,
"故事": (: ask_story ,
"后来怎样": (: ask_story2 :),
"武功": (: questions :),
"功夫": (: ask_skill :),
]));
setup();
if(random(2))
carry_object(BINGQI_D("changjian"))->wield();
carry_object("/d/wudang/obj/white-robe")->wear();
}
void init()
{
object ob = this_player();
add_action("do_fangyuan","fangyuan");
add_action("do_draw","draw");
add_action("do_draw","hua");
add_action("do_answer","answer");
add_action("do_learn","learn");
add_action("do_learn","xue");
::init();
if (ob->query("family/family_name") == "全真教") {
command("angry " + ob->query("id"));
command("say 怎么你到今天才来找我?!明天我就去和处机说让他打你屁股。");
}
}
void kill_ob(object me)
{
command("chat* crazy " + me->query("id"));
::kill_ob(me);
}
void unconcious()
{
command("chat* 叹道:老顽童今日是要归天了,到阴世玩玩两只鬼打架,那些大头鬼、无常鬼一定瞧得莫名其妙,鬼色大变。");
::unconcious();
}
int ask_story()
{
object me = this_player();
string msg;
msg = CYN"周伯通听到$N要他讲故事,登时兴高采烈。\n"NOR;
msg+= CYN"周伯通开始讲起九阴真经和黄裳的故事。\n"NOR;
msg+= CYN"周伯通看$N不问后来怎样,便赌气不说了。\n"NOR;
message_vision(msg, me);
me->set_temp("thd/story",1);
return 1;
}
int ask_story2()
{
object me = this_player();
string msg;
if (me->query_temp("thd/story") == 1){
msg = CYN"周伯通一听$N问他后来怎样,又口沫横飞的说起来。\n";
msg+= CYN"周伯通讲完又开始对$N说起他和全真教的故事。\n";
msg+= CYN"$N听着,也学到了些全真教练气的皮毛。\n"NOR;
msg+= HIW"周伯通说完故事,又无聊的问道:“兄弟,有什么好玩的武功么?\n"NOR;
message_vision(msg, me);
me->set_temp("thd/story",2);
return 1;
}
message_vision(CYN"周伯通奇怪的问道:“什么后来怎样?”\n"NOR, me);
return 1;
}
int ask_jieyi()
{
object ob=this_player();
int i, time;
i = ob->query("combat_exp") - 1000000;
i /= 1000000;
time = time() - ob->query("quest/jiebai/time");
if (ob->query("quest/jiebai/pass")) {
command("? " + ob->query("id"));
command("say 咱俩不是结拜过了吗?");
return 1;
}
if (ob->query("quest/jiebai/fail") >=3 && ob->query("registered") < 3){
command("hmm");
command("say 我不是说了,我没兴趣和你结拜啊!");
return 1;
}
if ( ob->query("quest/jiebai/time") && time < 86400 ) {
command("shake");
command("say 我现在可没空,我忙着玩呢。");
return 1;
}
if ( ob->query("quest/jiebai/fail") >= i ){
command("shake");
command("say 我现在可没空,我忙着玩呢。");
return 1;
}
/*
if (!wizardp(ob) && ob->query("age") > 48 ){
command("shake");
command("say 我老顽童只喜欢和青年人玩,和你结拜?没意思,没意思!");
return 1;
}
*/
if (ob->query("gender") != "男性" && ob->query("gender") != "女性") {
if (ob->query("age") > 48)
command("say 我本来也想与你结拜,就是不知是兄弟相称还是姐弟相称?");
else
command("say 我本来也想与你结拜,就是不知是兄弟相称还是兄妹相称?");
command("laugh");
return 1;
}
if ( ob->query("class") =="bonze" || ob->query("class") == "huanxi"){
command("monk "+ ob->query("id"));
command("say "+RANK_D->query_respect(ob)+",老顽童我可没有兴趣和你结拜。");
return 1;
}
if ( ob->query("int") > 25) {
command("shake");
command("say 你这个人鬼灵精,保不准打着什么主意呢。");
return 1;
}
if ( ob->query("shen") <= -1) {
command("shake");
command("say 我虽然天性随便,但师尊教诲不敢忘,于正邪之道还是要分清的。");
return 1;
}
if ( ob->query("combat_exp") < 1000000) {
command("shake "+ ob->query("id"));
command("say 这位"+RANK_D->query_respect(ob)+"你的武艺实在太糟糕了,我可没兴趣和你结拜。");
return 1;
}
if (random(ob->query("kar")) < 20 || random(ob->query_int(1)) < 30){
command("shake");
command("say 我现在没有空,要不你先陪我玩玩?");
ob->add("quest/jiebai/fail", 1);
ob->set("quest/jiebai/time", time());
log_file("quest/jiebai",
sprintf("%-18s想与周伯通结拜,失败%s次。\n",
ob->name(1)+"("+capitalize(getuid(ob))+")",
chinese_number(ob->query("quest/jiebai/fail"))
), ob
);
return 1;
}
command("nod " + ob->query("id"));
if (ob->query("gender") == "男性") {
command("say 好吧,你我就结拜为兄弟吧。");
}
else if (ob->query("gender") == "女性") {
if (ob->query("age") > 48)
command("say 好吧,你我就结拜为姐弟吧。");
else
command("say 好吧,你我就结拜为兄妹吧。");
}
message_vision("周伯通与$N并肩而跪,朗声说道:“老顽童周伯通,今日与" + ob->name(1) +"义结金兰,日后有福共享,有难共当。\n"+
"若是违此盟誓,教我武功全失,连小狗小猫也打不过。”\n", ob);
log_file("quest/jiebai",
sprintf("%-18s失败%s次后,成功与周伯通结拜,福:%d,悟:%d。\n",
ob->name(1)+"("+capitalize(getuid(ob))+")",
chinese_number(ob->query("quest/jiebai/fail")),
ob->query("kar"),
ob->query_int(1)
), ob
);
ob->set("quest/jiebai/pass", 1);
ob->set("quest/jiebai/exp", ob->query("combat_exp"));
return 1;
} |
|