referee.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 134 行
C
134 行
// referee.c 公平子inherit NPC;#include <ansi.h>;int do_bihua(string arg);string ask_me();int do_halt();int do_no();void create(){ set_name("公平子", ({ "gongping zi", "zi", "referee" }) ); set("gender", "男性"); set("age", 35); set("no_get", 1); set("long", "这是一位仙风道骨的中年道人,早年云游四方,性好任侠,公正无私。\n"); set("combat_exp",60000); set("shen_type", 1); set("attitude", "friendly"); set("apply/attack", 50); set("apply/defense", 50); set("max_qi", 800); set("max_jing", 800); set("max_neili", 800); set_skill("force", 80); set_skill("unarmed", 80); set_skill("sword",80); set_skill("parry",80); set_skill("dodge", 80); set("inquiry", ([ "比武大会" : (: ask_me :), "武林大会" : (: ask_me :), ])); setup(); carry_object("/clone/misc/cloth")->wear(); carry_object("/clone/weapon/changjian")->wield();}void init(){ ::init(); add_action("do_start", "start"); add_action("do_bihua", "bihua"); add_action("do_bihua", "bi"); add_action("do_bihua", "hit"); add_action("do_bihua", "kill"); add_action("do_bihua", "fight"); add_action("do_bihua", "qiecuo"); add_action("do_halt", "halt"); add_action("do_halt", "h"); add_action("do_no", "beg"); add_action("do_no", "steal"); add_action("do_no", "quanjia"); add_action("do_no", "persuade"); add_action("do_no", "touxi"); add_action("do_no", "ansuan");}string ask_me(){ object* ob; int i; ob = users(); if ( !wizardp(this_player()) ) return "你无权召开比武大会!\n";/* for ( i=sizeof(ob); i>0; i-- ) { if (environment(ob[i-1])) { ob[i-1]->move("/d/city/wudao1"); ob[i-1]->set_temp("view_leitai",1); } }*/ return "好,现在比武大会正式开始,全体集合!\n";}int do_no(){ command("say " + "这里众目睽睽,岂能做此不才之事。\n"); return 1;}int do_start(){ int i,j; object *allob, ob1, ob2, old_target, where; if (!wizardp(this_player())) { command("say " + "比武要巫师发令才开始!\n"); return 1; } allob = all_inventory(environment(this_player())); ob1 = this_object(); ob2 = this_player(); j = 0; for ( i=sizeof(allob); i>0; i-- ) { if ( userp(allob[i-1]) && !wizardp(allob[i-1])) { if (j == 0) { ob1 = allob[i-1]; j = 1; } else ob2 = allob[i-1]; } } if (ob2 != this_player()) ob1->fight_ob(ob2); if (ob1 == ob2) return notify_fail("只有一个人不能比武。\n");/* ob1 = this_player(); if ( this_object()->query_temp("busy") ) return notify_fail("每次只能有两人参加比武。\n"); if (!ob2 = present(arg,environment(ob1)) ) return notify_fail("你想跟谁比划?\n"); if (ob1 == ob2) return notify_fail("只有一个人不能比武。\n"); if( userp(ob2) && (object)ob2->query_temp("pending/fight") !=ob1 ) { message_vision("\n$N对着$n说道
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?