📄 zhou.c
字号:
return 1; } if (hubo == 22) { if ( ob->query("kar") > 40 ){ if( random(ob->query("kar")) > 30 ){ message_vision("$N微微一笑,凝神守一,心地空明,随随便便的伸出双手手指,左手画了一个方块,右手画了一个圆圈,\n"+ "方者正方,圆者浑圆。\n", ob); say("周伯通大吃一惊,过了半晌才道:“这定是你从娘胎里学来的本领,那便易办了。”\n"); message_vision("周伯通将他领悟出来的这门天下无比的奇功,一古脑儿都教给了$N。\n", ob); ob->delete_temp("zuoyou_hubo");// log_file("ZHOU",sprintf("%s(%s)从周伯通处领悟到双手互搏于: %s\n",ob->name(1), getuid(ob), ctime(time()))); ob->set("double_attack", 1); return 1; } else { ob->delete_temp("zuoyou_hubo"); message_vision("$N又伸出两根食指在地上划画,但画出来的仍旧是方块有点象圆圈,圆圈又有点象方块。\n", ob); write("看来并不是这么简单。\n"); ob->add("zhou/failed", 1); return 1; } } message_vision("$N又伸出两根食指在地上划画,但画出来的仍旧是方块有点象圆圈,圆圈又有点象方块。\n", ob); message_vision("$N终于发现自己是一辈子也练不会这门功夫了。\n", ob); ob->delete_temp("zuoyou_hubo"); ob->add("zhou/failed", 1); command("disapp " + ob->query("id")); return 1; } return 0;}int do_draw(string arg){ object ob=this_player(); if (!ob->query_temp("zuoyou_hubo")) return 0; if (arg == "fang" || arg == "方" || arg == "yuan" || arg == "圆") return notify_fail("周伯通怒道:让你同时画方圆!\n"); if (arg == "fang yuan" || arg == "方圆") return do_fangyuan(); return 0;}int do_learn(string arg){ object me=this_player(); string skill, teacher, skill_name; object ob; int master_skill, my_skill, gin_cost, rand; if (me->is_busy()) return 0; if(!arg || (sscanf(arg, "%s %s", teacher, skill)!=2 )) return 0; if (teacher != "zhou" && teacher != "botong") return 0; if( me->is_fighting() ) return 0; if( !(ob = present(teacher, environment(me))) || !ob->is_character()) { write("你要向谁求教?\n"); return 1; } if( !living(ob) ) { write("嗯....你得先把" + ob->name() + "弄醒再说。\n"); return 1; } if( !me->query("zhou/jieyi")) { write("周伯通奇怪地看着你,问道:你是谁呀?\n"); return 1; } if (skill != "kongming-quan" && skill != "空明拳") { write("这项技能你恐怕必须找别人学了。\n"); return 1; } my_skill = me->query_skill(skill, 1); master_skill = ob->query_skill(skill, 1); if( my_skill >= master_skill ) { write("你在空明拳上的造诣已经不下老顽童了!\n"); return 1; } if( !SKILL_D(skill)->valid_learn(me) ) { write("你必须是空手并且有足够的内功和内力才可以学习空明拳。\n"); return 1; } gin_cost = 150 / (int)me->query("int"); if( !my_skill ) { gin_cost *= 2; me->set_skill(skill,0); } rand = random(20); if (rand == 4) gin_cost *= 2; else if (rand == 15) gin_cost += 4; if( (int)me->query("potential") < 1 ) { write("你的潜能已经发挥到极限了,没有办法再学了。\n"); return 1; } message_vision("$N向$n请教有关「空明拳」的问题。\n", me, ob); if( (int)me->query("jing") > gin_cost ) { write("周伯通念道:老子《道德经》里有句话道:“埏植以为器,当其无,有器之用。凿户牖以为室,当其无,有室之用。”\n"); write("周伯通吟口诀道:大成若缺,其用不弊,大盈若冲,其用不穷。\n"); if( (string)SKILL_D(skill)->type()=="martial" && my_skill * my_skill * my_skill / 10 > (int)me->query("combat_exp") ) { write("也许是缺乏实战经验,你对老顽童的讲解总是无法领会。\n"); } else { if (rand == 13) { write("就在你试图领悟其中道理的时候,老顽童忽然在你旁边大做鬼脸,又故意放了个屁来捣乱,搞得你心烦意乱。\n"); write("结果你什么都没学到。\n"); return 1; } else if (rand == 5) { write("周伯通讲解了两句,忽然不耐烦起来,拉着你道:“咱俩玩四个人打架可好?”\n"); write("结果你只好陪他玩耍了一阵。\n"); return 1; } else if (rand == 4) { write("就在你试图领悟其中道理的时候,老顽童忽然在你旁边大做鬼脸,又故意放了个屁来捣乱,搞得你心烦意乱。\n"); write("结果你花了比平常多一倍的精力。\n"); } else if (rand == 15) { write("就在你试图领悟其中道理的时候,老顽童忽然在你旁边大做鬼脸,又故意放了个屁来捣乱,搞得你心烦意乱。\n"); write("结果你花了比平常多得多的精力。\n"); } if(skill_name = SKILL_D(skill)->query_skill_name(my_skill)) write("你听了老顽童的指导,对「" + skill_name + "」这一招似乎有些心得。\n"); else write("你听了老顽童的指导,似乎有些心得。\n"); me->add("potential", -1); me->improve_skill(skill, random(me->query_int())); } } else { gin_cost = me->query("jing"); write("你今天太累了,结果什么也没有学到。\n"); } me->receive_damage("jing", gin_cost ); return 1;}void finish(object me){ me->delete_temp("jiuyin/asking"); me->delete_temp("jiuyin/question"); me->delete_temp("jiuyin/story"); if (me->query_temp("jiuyin/count") > 0 && random(me->query_temp("jiuyin/count")) > 10) { me->delete_temp("jiuyin/count"); me->set_temp("jiuyin/passed", 1); command("admire " + me->query("id")); command("say 原来我们是同道中人啊。"); command("hoho"); message_vision("\n", me); command("say 你陪我陪了这么久,一定很无聊吧?"); command("hmm"); command("ah " + this_object()->query("id")); command("say 这样吧,我教你点好玩的功夫!"); command("grin"); } else { me->delete_temp("jiuyin/count"); me->add("jiuyin/shang-failed", 1); command("disapp"); command("say 真可惜,你的见闻实在太差,下次再来陪我玩吧。"); }}int ask_quest(){ object me = this_player(); if (me->query_temp("jiuyin/story") == 2) { if (me->query_temp("jiuyin/asking")) { command("say 我们不是正在玩么?专心点!"); command("kick " + me->query("id")); return 1; } me->set_temp("jiuyin/asking", 1); me->set_temp("jiuyin/count", 0); command("say 准备好,我们开始啦!"); call_out("ask_question", 1, me); call_out("finish", 60, me ); return 1; } return 0;}int do_answer(string arg){ object me = this_player(); string answer; if (!me->query_temp("jiuyin/asking") || !me->query_temp("jiuyin/question")) return 0; if( !arg || arg=="" ) { write("想好答案再回答。\n"); return 1; } switch ((int) me->query_temp("jiuyin/question")) { case 1: answer="hamagong"; break; case 2: answer="xianglong-zhang"; break; case 3: answer="tanzhi-shentong"; break; case 4: answer="hubo"; break; case 5: answer="xiantian-qigong"; break; case 6: answer="qixing-array"; break; case 7: answer="shuishangpiao"; break; case 8: answer="yiyang-zhi"; break; case 9: answer="qimen-wuxing"; break; case 10: answer="wugou"; break; case 11: answer="anran-zhang"; break; case 12: answer="six-finger"; break; case 13: answer="beiming-shengong"; break; case 14: answer="lingboweibu"; break; case 15: answer="lonely-sword"; break; case 16: answer="qiankun-danuoyi"; break; case 17: answer="kanglongwuhui"; break; case 18: answer="jiuyang-shengong"; break; case 19: answer="jiuyin-baiguzhua"; break; case 20: answer="kongming-quan"; break; } if (arg == answer) { me->add_temp("jiuyin/count", 1); command("say 不错不错,有点头脑嘛。"); command("praise " + me->query("id")); } else { me->add_temp("jiuyin/count", -1); command("say 错!"); command("papaya " + me->query("id")); } command("say 再来一题吧。"); me->delete_temp("jiuyin/question"); call_out("ask_question", 1, me); return 1;}void ask_question(object me){ int quest; if (me->query_temp("jiuyin/asking")) { message_vision("\n", me); command("say 注意听好了!"); message_vision(HIW"用 answer 来回答,回答请使用拼音输入,不要用汉字。\n"NOR, me); quest = random(20); command("say " + questions[quest]); message_vision("\n", me); me->set_temp("jiuyin/question", quest+1); } return;}int accept_object(object who, object ob){ if ((string)ob->query("id") == "fan he") { command("say 是黄老邪的小丫头叫你帮忙送饭来么?"); message_vision(HIC"周伯通不等$N回答,已经开始将食物塞进嘴中。\n"NOR, who); message_vision(HIC"周伯通吃完,干笑了一下,才对$N问道:“不知道你吃过了没有?\n"NOR, who); command("say 黄老邪想要我的九阴真经,把我关了十五年啦。"); command("sing3"); command("say 你想不想听听我说故事?"); call_out("destroying", 1, ob); who->set_temp("jiuyin/fanhe", 1); return 1; } if (who->query("jiuyin/xia") && (string)ob->query("id") == "jiuyin xiajuan") { command("ah " + who->query("id")); command("say 这正是我被黄老邪骗去的九阴真经下卷。"); command("say 不知道你有没有拿到上卷呢?"); call_out("destroying", 1, ob); who->set_temp("jiuyin/give", 1); return 1; } if (who->query("jiuyin/shang") && (string)ob->query("id") == "jiuyin shangjuan") { if (!who->query_temp("jiuyin/give")) { command("say 这本九阴真经上卷你不想要了?"); return 0; } who->delete_temp("jiuyin/give"); call_out("destroying", 1, ob); message_vision(HIC"周伯通将手上的九阴真经的上卷和下卷合而为一。\n"NOR, who); command("say 兄弟,我就把这本九阴真经交给你了,你可要好好保管它!"); who->delete("jiuyin/shang"); who->delete("jiuyin/xia"); who->set("jiuyin/full", 1); new("/clone/book/jiuyin-book.c")->move(who); message("channel:rumor", MAG"【谣言】某人:"+who->query("name")+"拿到《九阴真经》啦。\n"NOR, users()); return 1; } return 0;}void destroying(object obj){ if (!obj) return; destruct(obj);}int ask_kungfu(){ object me = this_player(); if (me->query_temp("jiuyin/passed")) { me->delete_temp("jiuyin/passed"); command("say 这些功夫是我自己的创作,可厉害的很啊。"); if (me->query("kar") > 40 && random(10) == 0) { command("say 上次我碰巧误闯入黄老邪的五行阵,就把书藏在那里了。"); command("say 本来想自己去拿的,谁知道那个五行阵很邪,差点把老命送在那里了。"); command("say 我看小兄弟的运气好象不错,你自己去试试吧!"); me->delete("jiuyin/shang-failed"); me->set("jiuyin/shang", 1); } else { command("heihei " + this_object()->query("id")); message_vision(HIC"周伯通却只是告诉$N如何施展,完全不演练给$N看。\n", me); message_vision("$N无论怎么练习就是无法成功。\n"NOR, me); command("sigh"); command("say 我这高深武功,你大概别想学了吧。"); me->add("jiuyin/shang-failed", 1); } return 1; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -