xuan.c

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

C
81
字号
#include <ansi.h>inherit F_SSERVER;#define XUAN "「" HIW "太玄激劲" NOR "」" int perform(object me, object target){        string msg;        int count;        int lvl;        int i, ap, dp,t;        object weapon;        if (! target) target = offensive_target(me);        if (! target || ! me->is_fighting(target))                return notify_fail(XUAN "只能对战斗中的对手使用。\n");        	if ((int)me->query("neili") < 800)		return notify_fail("你的真气不够,无法施展" XUAN "!\n");        if (me->query("max_neili") < 5000)                return notify_fail("你的内力修为还不足以使出" XUAN "。\n");	if ((int)me->query_skill("force") < 300)		return notify_fail("你的内功火候不够,难以施展" XUAN "!\n");	if ((lvl = (int)me->query_skill("taixuan-gong", 1)) < 240)		return notify_fail("你的太玄功还不够熟练,无法使用" XUAN "!\n");        if ((int)me->query_skill("literate", 1)> 5 )                return notify_fail("你觉得太玄神功深奥之极,一时间难以领会。\n");                             weapon = me->query_temp("weapon");	if( objectp(me->query_temp("weapon")) )		return notify_fail("你必须空手才能使用!\n");	             if (me->query_skill_mapped("unarmed") != "taixuan-gong"                 || me->query_skill_prepared("unarmed" != "taixuan-gong"))                       return notify_fail("你没有准备太玄功,无法使用" XUAN "。\n");        if (! living(target))              return notify_fail("对方都已经这样了,用不着这么费力吧?\n");	msg = HIW "\n霎时间$N" HIW "只觉思绪狂涌,当即闭上双眼,再不理睬$n"              HIW "如何招架,只管施招攻出!\n此时侠客岛石壁上的千百种招"              "式,转眼已从$N" HIW "心底传向手足,尽数向$n" HIW "袭去!\n" NOR;	message_vision(msg, me, target);	me->add("neili", -600);        ap = me->query_skill("taixuan-gong, 1");        dp = target->query_skill("dodge", 1);               if (ap / 3 + random(ap) > dp)                  count = ap / 8;          else count = 0;t=8;if (me->query("double_attack"))t=4;        me->add_temp("apply/attack", 50);        for (i = 0; i < t; i++)        {                if (! me->is_fighting(target))                        break;                if (random(2) == 1 && ! target->is_busy())                        target->start_busy(1);        	COMBAT_D->do_attack(me, target, 0, i * 2);        }        me->add_temp("apply/attack", -50);	me->start_busy(3);	return 1;}

⌨️ 快捷键说明

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