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 + -
显示快捷键?