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