⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hubo.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
//by sdong 07/98

#include <ansi.h>

inherit F_SSERVER;

private int remove_effect(object me, int amount,object weapon);

int perform(object me, object target)
{
        int skill, skill1, skill2;
        object victim;
        object weapon,weapon2;
    object *inv;
    int i, count;
        string bei_skill;

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


        if( !victim || !victim->is_character() || !me->is_fighting(victim) )
                return notify_fail("双剑和璧左右互搏只能对战斗中的对手使用。\n");


        if(     me->query_skill("yunv-jian",1) < 1 ||
                me->query_skill("quanzhen-jian",1) < 1 
                )
                return notify_fail("必须通晓并备有玉女剑法与全真剑法才能双剑和璧左右互搏!\n");

        if(me->query_skill("quanzhen-jian",1) <120)
                return notify_fail("你的全真剑法不够熟练,不能双剑和璧左右互搏!\n");

        if(me->query_skill("yunv-jian",1) <180)
                return notify_fail("你的玉女剑法不够熟练,不能双剑和璧左右互搏!\n");

        if( me->query_skill_mapped("force") != "yunv-xinfa" 
                )
                return notify_fail("你所用的并非玉女心经,无法施展双剑和璧左右互搏!\n");

        if( me->query_skill("yunv-xinfa", 1) < 180 
                )
                return notify_fail("你的玉女心经火候未到,无法施展双剑和璧左右互搏!\n");
        if( !objectp(weapon = me->query_temp("weapon"))
                || (string)weapon->query("skill_type") != "sword" )
                return notify_fail("必须持有双剑才能和璧左右互搏!\n");

     inv = all_inventory(me);
     for(count=0, i=0; i<sizeof(inv); i++) {
           if( inv[i]->query("equipped") || weapon == inv[i] ) continue;
           if( inv[i]->query("skill_type") == "sword" ) 
                   {
                           weapon2 = inv[i];
                           break;
                   }
     }
        if( me->query("neili") <= 400 )
                return notify_fail("你的内力不够使用双剑和璧左右互搏!\n");
        if( me->query("jing") <= 100 )
                return notify_fail("你的精不够使用双剑和璧左右互搏!\n");

        skill =  ( me->query_skill("yunv-jian",1) + me->query_skill("yunv-jian",1)
                + me->query_skill("quanzhen-jian",1) +me->query_skill("yunv-xinfa",1) 
                + me->query_skill("yunv-xinfa")) / 10; 
        message_vision(
        HIR "$N突然间左手抽出另一把剑,双手使出截然不同的剑法,正是左右互搏绝技。\n"+HIC"只见$N双剑一交,左右手玉女剑法与全真剑法配合得天衣无缝,攻守之势猛然大增!\n\n" NOR, me);

        me->add_temp("apply/attack", skill/2);
        me->add_temp("apply/damage", skill/2);
        me->add_temp("apply/dodge",  skill/2);
        me->add_temp("apply/parry",  skill/2);
        me->set_temp("hubo", 1);

    me->add_temp("apply/damage", 180);

        bei_skill = me->query_skill_mapped("sword");
    me->map_skill("sword", "yunv-jian");
        message_vision(HIG"浪迹天涯!\n" NOR,me,target);
        COMBAT_D->do_attack(me, victim, me->query_temp("weapon"));
    me->map_skill("sword", "quanzhen-jian");
        me->setup();
        message_vision(HIY"花前月下!\n" NOR,me,target);
        COMBAT_D->do_attack(me, victim, me->query_temp("weapon"));
    me->map_skill("sword", "yunv-jian");
        me->setup();
        message_vision(HIG"抚琴按萧!\n" NOR,me,target);
        COMBAT_D->do_attack(me, victim, me->query_temp("weapon"));
    me->map_skill("sword", "quanzhen-jian");

        message_vision(
        HIR "$N剑招愈来愈怪,可是互相呼应,厉害杀招却是层出不穷\n" NOR, me);

        me->setup();
        message_vision(HIY"小园艺菊!\n" NOR,me,target);
        COMBAT_D->do_attack(me, victim, me->query_temp("weapon"));
    me->map_skill("sword", "yunv-jian");
        me->setup();
        message_vision(HIG"西窗夜话!\n" NOR,me,target);
        COMBAT_D->do_attack(me, victim, me->query_temp("weapon"));
    me->map_skill("sword", "quanzhen-jian");
        me->setup();
        message_vision(HIY"松下对弈!\n" NOR,me,target);
        COMBAT_D->do_attack(me, victim, me->query_temp("weapon"));
    me->map_skill("sword", "quanzhen-jian");
        me->setup();
        message_vision(HIG"清饮小酎!\n" NOR,me,target);
        COMBAT_D->do_attack(me, victim, me->query_temp("weapon"));

    me->map_skill("sword", bei_skill);
        me->setup();
    me->add_temp("apply/damage", -180);
        me->add("jing", -50);
        me->add("neili", -400);
        me->start_busy(2+random(2));


        me->start_call_out( (: call_other, __FILE__, "remove_effect", me, skill/2,weapon2 :), 6);
        return 1;
}

private int remove_effect(object me, int amount,object weapon)
{
        int skill;
        skill =  ( me->query_skill("yunv-jian",1) + me->query_skill("yunv-jian",1)
                + me->query_skill("quanzhen-jian",1) +me->query_skill("yunv-xinfa",1) 
                + me->query_skill("yunv-xinfa")) / 10; 

        me->add_temp("apply/attack", -skill/2);
        me->add_temp("apply/damage", -skill/2);
        me->add_temp("apply/parry", -skill/2);
        me->add_temp("apply/dodge", -skill/2);
        me->delete_temp("hubo");
        message_vision(
        HIY "\n$N吸了一口气,左手潇洒地将手足的剑" + HIY "插回剑鞘,收回左右互搏绝技!\n\n" NOR, me,weapon);

        return 0;
}

⌨️ 快捷键说明

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