hufa.c

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

C
137
字号
#include <ansi.h>inherit NPC;void create(){   set_name("护法", ({ "baobiao" }) );   set("long", "这是盟主身边的一位护法。\n");   set("attitude", "friendly");   set("class", "fighter");   set("max_jing", 1200);   set("max_qi", 1500);   set("max_neili", 1000);   set("neili",1000);   set("combat_exp", 400000);      set("str", 40);   set("con", 80);   set_skill("parry", 50);   set_skill("dodge", 40);   set_skill("unarmed", 50);   set_skill("anranxiaohun-zhang", 150);   set_skill("shaolin-shenfa", 150);   map_skill("dodge", "shaolin-shenfa");   map_skill("unarmed","anranxiaohun-zhang");   setup();  }void leave(){ object owner;   message("vision", name() + "四周张望了一下,说道:既然无事,属下先行告退。\n", environment(), this_object() );        if(objectp(owner=this_object()->query("possessed")))		owner->add_temp("number",-1);   destruct(this_object());}void show(object who){   string *cname = ({"左护法", "右护法"});   string *ename = ({"-left", "-right"});   int current = 0;   current = (int)who->query_temp("number");   if(current < 1 || current > 2 )   {     destruct(this_object());     return;   }   this_object()->set_name(cname[current-1], ({ (string)who->query("id")+ename[current-1] }) );      message_vision("一阵黑风刮过,从中走出一个人,到$N面前行了个礼,大声说道:在下随时听调!\n", who);    //set the leader of this bing.   set("owner_id", (string)who->query("id"));    set_leader(who);}void relay_whisper(object me, string msg){   if (query("owner_id") != me->query("id"))   {     message_vision((string)this_object()->query("name")         + "对着$N冷哼了一声。\n", me);     return;   }      //note, do not allow the order contain "chat", "tell"...   //may need disable more later...   if( strsrch(msg, "chat") != -1 ||       strsrch(msg, "tell") != -1 ||       strsrch(msg, "apprentice") != -1 ||       strsrch(msg, "recruit") != -1 )      return;   message_vision((string)this_object()->query("name") + "对着$N点了点头。\n", me);   if (msg)   {          call_out ("relaying", 1+random(3), msg);   }}void relaying (string msg){//execute the order.   command (msg);}int heal_up(){	if( environment() && !is_fighting() ) {		call_out("leave", 60);		return 1;	}	return ::heal_up() + 1;}void init(){   object me=this_player();   object owner;   int i;   ::init();//make sure this bing always follow his owner.   if ( (string)this_object()->query("owner_id") == (string)me->query("id") )   {     this_object()->set_leader(me);   }   //if owner leaves, let this bing have chance to disappear.   if( this_object()->query("owner_id") != 0 )   {     owner = find_player( (string)this_object()->query("owner_id") );     if( !owner ) owner=find_living( (string)this_object()->query("owner_id") );     if( !owner )     {        call_out ("leave", 1);     }   }   }void die(){object owner;        if(objectp(owner=this_object()->query("possessed")))                owner->add_temp("number",-1);	::die();}

⌨️ 快捷键说明

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