dizi.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 119 行
C
119 行
// heaven_soldier.c#include <ansi.h>inherit NPC;void backattack();void create(){ set_name("弟子", ({ "dizi", "guard" }) ); set("long", "这是一位专门担任保护之责的弟子。\n"); set("attitude", "friendly"); set("max_neili", 1000); set("neili", 1000); set("max_jing", 500); set("max_qi", 500); set("str", 40); set("dex", 60); set("combat_exp", 200000); set_skill("sword", 70); set_skill("parry", 70); set_skill("dodge", 70); setup(); carry_object(__DIR__"obj/sword")->wield(); carry_object("/clone/cloth/male3-cloth")->wear(); }int heal_up(){ if( environment() && !is_fighting() ) { call_out("leave", 1); return 1; } return ::heal_up() + 1;}void leave(){ object owner; message("vision", name() + "说道:属下随时谨听召唤!\n\n" + name() + "闪了闪就消失不见了。\n" , environment(), this_object() ); if(objectp(owner=this_object()->query("possessed"))) owner->add_temp("number",-1); destruct(this_object());}void invocation(object who, int level){ int i; object *enemy; who=this_player();// if (who->query("combat_exp") < 200000 || who->query("age") <= 18)// return notify_fail("你的能力不足以指挥别人.\n");// if (who->query("jing") < 100 )// return notify_fail("你的精不足以指挥别人.\n");// if (who->query("neili") < 100 )// return notify_fail("你的内力不足以指挥别人.\n");// if (who->query("qi") < 100 )// return notify_fail("你的气不足以指挥别人.\n");// if (who->query("qi") < 100 )// return notify_fail("你的气不足以指挥别人.\n");// if ((int)who->query_condition("zdizi_busy")) // return notify_fail("你刚招过随身弟子.\n"); who->apply_condition("zdizi_busy",4); level=who->query("combat_exp"); set_skill("sword", 70 + random(300)); set_skill("parry", 70 + random(300)); set_skill("dodge", 70 + random(300)); set("combat_exp", 100000 + random(level/4)); message("vision", name() + "喝道:胆子倒不小,敢在太岁头上动土!\n" NOR, environment(), this_object() ); enemy = who->query_enemy(); i = sizeof(enemy); while(i--) { if( enemy[i] && living(enemy[i]) ) { kill_ob(enemy[i]); if( userp(enemy[i]) ) enemy[i]->fight_ob(this_object()); else enemy[i]->kill_ob(this_object()); } } set_leader(who); set("possessed",who);}void backattack(){ int i; object owner, *enemy; if(objectp(owner=this_object()->query("possessed"))) { enemy = this_object()->query_enemy(); i = sizeof(enemy); while(i--) { if( enemy[i] && living(enemy[i]) ) { owner->kill_ob(enemy[i]); enemy[i]->kill_ob(owner); } } }}void die(){ object owner; if(objectp(owner=this_object()->query("possessed"))) owner->add_temp("number",-1); backattack(); ::die();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?