tongzi.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 89 行

C
89
字号
//tongzi.c
inherit NPC;
int do_bi(string arg);
void greeting(object);
void init();
void create()
{
	set_name("陪练童子", ({ "tongzi"}) );
	set("gender", "男性" );
	set("age", 16);
	set("long", "这是个陪人练功的陪练童子。\n");
	set("attitude", "friendly");
	set("shen_type", -1);

	set("str", 21);
	set("int", 21);
	set("con", 21);
	set("dex", 20);

	set("max_qi", 200);
	set("combat_exp", 10000);
	set("score", 500);
	set_skill("force", 20);
	set_skill("dodge", 20);
	set_skill("unarmed", 20);
	set_skill("parry",20);
	create_family("白驼山派",10,"弟子");
	setup();
}

void init()
{
	object ob;
	add_action("do_bi","bi");


	if( interactive(ob = this_player()) && !is_fighting() ) {
		remove_call_out("greeting");
		call_out("greeting", 1, ob);
	}

}
void greeting(object ob)
{
	if( !ob || environment(ob) != environment() ) return;
	if (((string)ob->query("family/family_name") == "白驼山派")
	    &&ob->query("combat_exp")<10000)
	 message_vision("陪练童子冲着$N叫道:快来跟我比划几招。(bi tongzi)\n",ob);
}

void attempt_apprentice(object ob)
{
     command("say 我不能收徒。你还是拜李教头吧。\n");
     return;
}

int do_bi(string arg)
{
  object ob=this_player();
  if(!arg||arg!="tongzi") return  notify_fail("你要和谁比划?\n");
  if ((int)ob->query("combat_exp")>10000)
   return notify_fail("陪练童子摇头道:以你的武功,我不能做你的陪练了。\n");
  say("陪练童子同意作你的陪练。\n");
  set("combat_exp",ob->query("combat_exp"));
  command("hit "+(string)ob->query("id"));
  if(query("qi")<40)
    message_vision("陪练童子对$N大加赞赏!\n",ob);
  else
    message_vision("陪练童子对$N笑笑道:努力吧。\n",ob);

  set("eff_qi",200);
  set("qi",200);
  set("combat_exp",10000);
  return 1;
}

int accept_fight(object ob)
{
      if ((string)ob->query("family/family_name") == "白驼山派")
	 {
	  if((int)ob->query("combat_exp")<5000)
	    return notify_fail("陪练童子笑道:你的经验太低了,还是先到比划吧!(bi tongzi)\n");
	  }
    message_vision("陪练童子对$N叫道:那我就不让你了!\n",ob);
    return 1;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?