book61.c

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

C
101
字号
// 属性检测卷轴

#include <ansi.h>
inherit ITEM;
object offensive_target(object me)
{
	int sz;
	object *enemy;

	enemy = me->query_enemy();
	if( !enemy || !arrayp(enemy) ) return 0;

	sz = sizeof(enemy);
	if( sz > 4 ) sz = 4;

	if( sz > 0 ) return enemy[random(sz)];
	else return 0;
}

void create()
{
        set_name(HIY"属性检测卷轴"NOR, ({ "dele axes", "1axes" }) );
        set_weight(500);
        if( clonep() )
                set_default_object(__FILE__);
        else {
                set("long", "这是一个魔法卷轴可以使用(spell id)上面的魔法。\n") ;

                set("unit", "个");
                set("value", 30000);
                set("zhen", 3);
        }
        setup();
}

void init()
{
        add_action("do_shot","spell");
}

int do_shot(string arg)
{
        object me,ob,target;
        int myskill , tgskill;
        int mylev ,damage;

        me = this_player();

 	if (!id(arg))
	return notify_fail("你要使用什么卷轴?\n");
        if( !arg ) return notify_fail("你想对谁使用属性检测卷轴?\n");

      if( !target ) target = offensive_target(me);

      if( !target || !target->is_character() || !me->is_fighting(target) )
              return notify_fail("属性检测卷轴只能对战斗中的对手使用。\n");

        if( !target->is_character() || target->is_corpse() )
                return notify_fail("看清楚一点,那并不是活物。\n");

        if( me->query("combat_exp")< 500000)
        return notify_fail("你的经验太少用不了!\n");



if (userp(me) && userp(target) && target->query("combat_exp",1) < me->query("combat_exp",1)) 
	return notify_fail("魔法不是用来对付弱小玩家的!\n");

        if(me->is_busy() )
                return notify_fail("你正忙着哪。\n");

        if( this_object()->query("zhen") < 1 ) {
        message_vision(HIY"\n$N"HIY"上的魔法力量用完了!  $N"HIY"消失了。\n"NOR,this_object(),target);
        destruct(this_object());
return 1;
                }

        if( !objectp(ob = present("dele axes", me)) )
                return notify_fail("你没有这种东西。\n");

        message_vision(HIY"\n$N"HIY"突然发光  探测光波动!!  一道白光打向$n。\n"NOR,this_object(),target);
if ((int)target->query("magicgift")==1)
tell_object(me, HIR"\n敌人的能量属性是火。\n" NOR);
if ((int)target->query("magicgift")==2)
tell_object(me, HIW"\n敌人的能量属性是水。\n" NOR);
if ((int)target->query("magicgift")==3)
tell_object(me, HIC"\n敌人的能量属性是气。\n" NOR);
if ((int)target->query("magicgift")==4)
tell_object(me, YEL"\n敌人的能量属性是土。\n" NOR);
if ((int)target->query("magicgift")==5)
tell_object(me, BLK"\n敌人的能量属性是暗。\n" NOR);
if ((int)target->query("magicgift")==6)
tell_object(me, HIY"\n敌人的能量属性是光。\n" NOR);
if (!target->query("magicgift"))
tell_object(me, HIG"\n敌人没有能量属性。\n" NOR);

        this_object()->add("zhen", -1);
        me->start_busy(1) ;
        return 1;
}

⌨️ 快捷键说明

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