📄 yangguo.c
字号:
// yangguo.c 杨过// By Kayin @ CuteRabbit Studio 99-4-16 21:10 new#include <ansi.h>inherit NPC;inherit F_MASTER;int ask_job();int ask_fail();void create(){ set_name("杨过", ({ "yang guo", "yang" })); set("nickname", HIG "神雕大侠" NOR); set("gender", "男性"); set("age", 30); set("per",30); set("con",30); set("str", 30); set("class","gumu"); set("dex", 30); set("long", "他是一位高大的男子,相貌俊秀。\n"+ "一只长袖空空如也,显是断了一臂,尽管如此,\n"+ "仍然掩不住他迷人的风采。你可以跟他切磋(qiecuo)\n"); set("combat_exp", 10000000); set("score", 10000); set("shen_type", 1); set("attitude", "peaceful"); set_skill("sword", 350); set_skill("force", 400); set_skill("unarmed", 400); set_skill("dodge", 350); set_skill("parry", 350); set_skill("anranxiaohun-zhang",340); set_skill("xuantie-sword", 300); set_skill("xiantian-qigong", 100); set_skill("yunv-shenfa",300); map_skill("sword", "xuantie-sword"); map_skill("parry", "anranxiaohun-zhang"); map_skill("unarmed","anranxiaohun-zhang"); map_skill("dodge", "yunv-shenfa"); set("chat_chance_combat", 80); set("chat_msg_combat", ({ (: perform_action, "parry.xiaohun" :), (: perform_action, "sword.feihongrudian" :), }) ); set_temp("apply/attack", 200); set_temp("apply/defense", 100); set_temp("apply/armor", 240); set_temp("apply/damage", 200); set("neili", 5000); set("max_neili", 5000); set("max_qi", 10000); set("qi",10000); set("inquiry", ([ "小龙女" : "她就在小屋里。\n","拜师": "先让我试试你的武功,然后再决定收不收你。你想试试(accept test)?\n","切磋":"你可以跟我进行切磋(qiecuo)\n", "job" : (: ask_job() :), "失败" : (: ask_fail() :), ]) ); create_family("古墓派", 3, "弟子"); setup(); carry_object("/clone/misc/cloth")->wear(); carry_object("d/gumu/npc/obj/tiesword")->wield(); add_money("gold", 2);}void init(){ ::init(); add_action("do_accept", "accept"); add_action("do_qiecuo","qiecuo"); add_action("do_killing", "kill");}void attempt_apprentice(object ob){ if(!ob->query("marks/beguo")) return;else { command("recruit " + ob->query("id") );ob->set("title",HIW"杨过嫡传弟子"NOR);} return;}int recognize_apprentice(object ob){ if(!ob->query("marks/win_guo_time")) return 0; if((time() - ob->query("marks/win_guo_time") ) > 900) { say("杨过说道:你从我这学了不少了,我们来再砌磋(qiecuo)一下吧!\n"); return 0; } return 1;}int do_qiecuo(){ mapping guild; int skee,dkee; object me,target; me=this_player(); target=this_object(); skee=target->query("qi"); if((time()-me->query("marks/win_guo_time"))<900) { command("say 你的功夫真不错,不用再切磋啦!\n"); return 1; } //if who have qiecuo,and the time have beyond 2 hours,then he can qiecuo if(time() - me->query("marks/qiecuo_last_time")>72000) { COMBAT_D->do_attack(me,target,me->query_temp("weapon")); say("\n杨过道:一招....\n"); COMBAT_D->do_attack(me,target,me->query_temp("weapon")); say("\n杨过道:二招....\n"); COMBAT_D->do_attack(me,target,me->query_temp("weapon")); say("\n杨过道:三招....\n"); dkee=target->query("qi"); if(!(dkee<skee)) { say("杨过说道:看来你武功不行,等你练好些再来吧!\n"); me->set("marks/qiecuo_last_time",time()); } else { say("\n杨过说道:你的功夫真不错,从今以后我们就相互学习吧!\n"); me->set("marks/win_guo_time",time()); } return 1; } say("杨过说道:你不久前才输给我!过两天再比吧!\n"); return 1;}int do_accept(string arg){ mapping guild; if( arg== "test" ) { if((string)this_player()->query("family/family_name") != "古墓派") { command("say 你先去拜我姑姑吧。\n"); return 1; } else if(this_player()->query("shen")>50000) { command("say 我杨过向来不跟你们这些所谓的正派人物打交道。\n"); return 1;} else if(this_player()->query("shen")<-50000) { command("say 我杨过向来最痛恨你们这些邪派人物,快给我滚!\n"); return 1;} else if(this_player()->query("str")<28) { command("say 你臂力太差,学不会我的武功。\n"); return 1;} else if(this_player()->query("combat_exp")<1000000) { command("say 你当我是谁,连你也想学我武功?。\n"); return 1;} else if(this_player()->query("family/master_id") == this_object()->query("id")) { say("\n杨过拍拍你的头道:你将来必定是一个可造之才了!\n"); return 1; } say("\n杨过点了点头,说道:很好,我试你三招,这是第一招....\n\n"); COMBAT_D->do_attack(this_object(), this_player(), query_temp("weapon")); if( (int)this_player()->query("qi") < 1 ) { say("杨过叹了口气,说道:连第一招都撑不过,真是自不量力....\n"); this_player()->die(); return 1; } say("\n杨过说道:不错,这是第二招....\n\n"); COMBAT_D->do_attack(this_object(), this_player(), query_temp("weapon")); if( (int)this_player()->query("qi") < 1 ) { say("杨过「哼」地一声,说道:便是有这许多不怕死的家伙....\n"); this_player()->die(); return 1; } say("\n杨过说道:第三招来了....\n\n"); COMBAT_D->do_attack(this_object(), this_player(), query_temp("weapon")); if( (int)this_player()->query("qi") < 1 ) { say("杨过叹道:可惜,至今竟无有缘人....\n"); this_player()->die(); return 1; } say("\n杨过哈哈大笑,说道:今日终於觅得一个可造之才!\n\n"); this_player()->set("marks/beguo",1); return 1; } return 0;}int do_killing(string arg){ object player, victim, weapon; string name; player = this_player(); if( !arg) return 0; if( objectp(victim = present(arg, environment(this_object()))) && living(victim)) { name = (string)victim->name(); if( (string)name == "小龙女") { message_vision("$N冷笑一声道:敢杀我姑姑,我看你活得太长了。\n", this_object()); this_object()->kill_ob(player); player->kill_ob(this_object()); return 1; } } return 0; }int ask_job(){ object me = this_player(); object guo = this_object(); object ob; mapping quest; mapping skl; string *sname, place; int i, skill = 0; quest = (__DIR__"lagjob")->query_quest(); skl = me->query_skills(); if ( !skl ) { tell_object(me, "你去学一些本事先吧!\n"); return 1; } sname = sort_array( keys(skl), (: strcmp :) ); for(i=0; i<sizeof(skl); i++) if (skl[sname[i]] >= skill && sname[i] != "literate" && sname[i] != "taoism") skill = skl[sname[i]]; if (skill < 80) skill = 80; if (guo->query_condition("menpai_busy")) { message_vision("$N对着$n说:本任务十五分钟一次,你等会再来吧!\n", this_object(), me); return 1; } if( me->query("family/family_name") != "古墓派") { message_vision("$N对着$n大喝一声:本派弟子才能做任务。你是哪来的奸细?\n", this_object(), me); return 1; } if ((int)me->query_condition("menpai_busy")) { message_vision("杨过对着你摇了摇头说:你办事不利,等会再来!\n", me); return 1; } if (me->query("combat_exp") < 100000) { command("say " + RANK_D->query_respect(me) + "保家卫国很难的,你还是练高经验再来吧"); return 1;} if ((int)me->query_condition("menpai_busy")) { message_vision("$N对着$n摇了摇头说:你办事不利,等会再来!\n", this_object(), me); return 1; } if (me->query("potential") < 200 || me->query("combat_exp") < 300) { command("say 你连本钱都没有,我怎么放心要你去保家卫国?"); return 1; } if (me->query("kill_gumu") == 1) { command("kick " + me->query("id")); command("say 我不是给了你任务了吗?"); return 1; } else { command("nod" + me->query("id")); command("say " + RANK_D->query_respect(me) + "能为国家出力,真是太好了。"); command("say " + me->query("id") + " 一队蒙古兵在『" + quest["short"] + "』出现,快去吧!\n" NOR); me->set("kill_gumu", 1); guo->apply_condition("menpai_busy",16); me->set("quest/quest_type", "杀"); me->set("quest/quest", "蒙古兵"); me->set("task_time", time() + 300); ob = new(__DIR__"qiangdao",1); } ob->move(quest["place"]); ob->set_temp("owner/id",me->query("id")); ob->set("combat_exp", me->query("combat_exp")); ob->set("max_force", me->query("max_force")); ob->set("eff_kee", me->query("max_kee")); ob->set("max_kee", me->query("max_kee")); ob->set("kee", me->query("max_kee")); ob->set_skill("dodge", skill); ob->set_skill("force", skill); ob->set_skill("parry", skill); ob->set("force_factor", random(10)); return 1; } //}int ask_fail(){ object me = this_player(); if (me->query("kill_gumu") == 1) { command("sigh"); command("say 你这身手也来保家卫国,扣你150点POT."); me->add("potential",-50); me->delete("kill_gumu"); me->apply_condition("menpai_busy",10); call_out("delete", 1); return 1; }}int delete(){ this_player()->delete("kill_gumu"); return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -