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

📄 suck.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// suck.c// by star 亮晶晶 98.12.4#include <ansi.h>inherit F_SSERVER;int perform(object me,object target){        int temp;        int my_skill,my_force,tg_age,skill_count,duli;int sk1,sk2;	object where = environment(me);//  if ( !target || target == me ) target = offensive_target(me);//  target = present(arg,environment(me));    if( (int)me->query_skill("wudu-shengong",1) < 50 )                return notify_fail("你的五毒神功修为还不够!\n");    if( (int)me->query_skill("duji",1) < 50 )                return notify_fail("你的毒技(duji)修为还不够!\n");    if( (int)me->query_skill("qianzhu-wandushou",1) < 50 )                return notify_fail("你的千蛛万毒手修为还不够!\n");    if( !objectp(target)    ||  target->query("host_id") != me->query("id") )           return notify_fail("你要吸取什么毒虫的毒素?\n");    if( target->query("age") < 99 )        return notify_fail("你看清楚点,那东西像是毒虫吗?\n");    my_skill = (int)me->query_skill("qianzhu-wandushou", 1);    my_force = (int)me->query_skill("wudu-shengong", 1);sk1=(int)me->query_skill("duji", 1)/30+1;sk2=my_skill/30+1;    tg_age = (int)target->query("age");    if( my_skill < 50 )        return notify_fail("你的千蛛万毒手火候太浅,不能用来吸取毒素!\n");    if( objectp(me->query_temp("weapon")) )        return notify_fail("你必须空手才能修炼千蛛万毒手!\n");    if( me->is_fighting() )        return notify_fail("战斗中无法修炼千蛛万毒手!\n");if (environment(me)->query("sleep_room"))                return notify_fail("卧室不能吸取毒素,会影响别人休息。\n");if( environment(me)->query("no_beg") &&      environment(me)->query("no_fight") &&       environment(me)->query("no_steal"))           return notify_fail(HIY"\n不要影响别人,还是找一个别的地方吧。\n"NOR);    if( me->is_busy() )        return notify_fail("你正忙着呢!\n");    if( target->is_fighting() || target->is_busy() )        return notify_fail("毒虫正忙着呢,不能和你配合!\n");    if( me->query_temp("wudu_suck") )        return notify_fail("你正在修炼中!\n");    if( my_skill > 100 && my_skill < 160 && tg_age < 999 )        return notify_fail(target->query("name")+"的毒力对你来说已经太轻微了!\n");    if( my_skill > 159 && tg_age < 9999 )        return notify_fail(target->query("name")+"的毒力对你来说已经太轻微了!\n");    if( (int)me->query("neili") < 200 )        return notify_fail("你的内力不够,不足以对抗毒气,别把小命送掉。\n");    if( (int)target->query("qi") < 50 )        return notify_fail( target->query("name") + "已经这样了,你无法从他体内吸取任何毒素!\n");    if( (int)me->query("qi") < 50 )        return notify_fail( "你快不行了,再练会送命的!\n");    if( (int)me->query("jing") < 50 )        return notify_fail( "你快不行了,再练会送命的!\n");    message_vision(BLU"$N小心翼翼的将手伸到$n的面前,$n张嘴就咬住了$N的中指。\n" NOR, me, target);    message_vision(BLU"只见$N深吸一口气,面上顿时罩着一股黑气,豆大的汗珠从额头滚了下来。\n" NOR, me, target);    tell_object(me, HIG "你只觉得" + target->query("name") + "的毒素自伤处源源不绝地流了进来,随真气遍布全身。\n" NOR );    target->receive_wound("qi", 10);    me->add("jing",-30);    me->add("qi",-40);    me->start_busy(5);    if( tg_age < 999 ){        me->add("combat_exp",1+random(4));        me->add("potential",1 );        duli=3;    }    if( tg_age > 999 && tg_age < 9999){        me->add("combat_exp", 1+random(5));        me->add("potential", 1+random(2));        duli = 5;    }    if( tg_age > 9999 ){        me->add("combat_exp", 2+random(5));        me->add("potential", 1+random(2));        duli=7;    }    /*    if( (int)me->query("potential") > (int)me->query_max_pot() )        me->set("potential", me->query_max_pot());*/        skill_count = duli*(10+random((int)me->query_int()))/2;    me->improve_skill("qianzhu-wandushou", skill_count);    me->set_temp("wudu_suck", 1);    call_out("del_wudusuck", 5, me, target);    switch( random(duli) ){    case 0:        temp = (int)me->query("combat_exp");        target->add("combat_exp", temp/1000 + sk1+sk2);        if( (int)target->query("combat_exp") > (temp*12/10) )            target->set("combat_exp", temp*12/10);        else            tell_object(me, HIG+ target->query("name") + "的经验提高到" +                chinese_number((int)target->query("combat_exp")) +"点。\n"NOR );        break;    case 1:        target->add_temp("apply/attack",1+sk2/2);        if( (int)target->query_temp("apply/attack")>200 )            target->set_temp("apply/attack",200);        else            tell_object(me, HIG+ target->query("name") + "的攻击力提高到" +                chinese_number((int)target->query_temp("apply/attack")) + "点。\n"NOR );        break;    case 2:        target->add_temp("apply/defense",1+sk2/2);        if((int)target->query_temp("apply/defense")>200)            target->set_temp("apply/defense",200);        else            tell_object(me, HIG+ target->query("name") + "的防御力提高到" +                chinese_number((int)target->query_temp("apply/defense")) +"点。\n"NOR );        break;    case 3:        target->add_temp("apply/armor",1+sk2/2);        if( (int)target->query_temp("apply/armor") > 1000 )            target->set_temp("apply/armor", 1000);        else            tell_object(me, HIG+ target->query("name") + "的抗打击能力提高到" +                chinese_number((int)target->query_temp("apply/armor")) +"点。\n"NOR );        break;    case 4:        target->add("max_qi",10+sk1);        if( target->query("max_qi") > 10000 )            target->set("max_qi", 10000);        else            tell_object(me, HIG+ target->query("name") + "的生命力提高到" +                chinese_number((int)target->query("max_qi")) +"点。\n"NOR );        break;    case 5:        target->add("max_jing",10+sk1);        if( target->query("max_jing") > 10000)            target->set("max_jing", 10000);        else            tell_object(me, HIG+ target->query("name") + "的精提高到" +                chinese_number((int)target->query("max_jing")) +"点。\n"NOR );        break;    case 6:        temp = (int)target->query_skill("dodge",1);        target->set_skill("dodge",temp+1+sk2/2);        if((int)target->query_skill("dodge",1)>300)            target->set_skill("dodge",300);        else            tell_object(me, HIG""+ target->query("name") + "的躲闪技能提高到" +                chinese_number((int)target->query_skill("dodge",1)) +"级。\n"NOR );    }    return 1;}void del_wudusuck(object me,object target){   if (!me) return;   if (!target) return;   if( me->query_temp("wudu_suck") ){        me->delete_temp("wudu_suck");        message_vision(HIG            "只见$N的肚子越涨越大,“吧嗒”一声,松开口掉在地上。\n" NOR, target );        message("vision", target->query("name") +            "吸饱了鲜血,身上透出一层宝光,身子顿时涨大了许多!\n",            environment(me), ({ me }) );        me->receive_damage("qi", 20);   }   target->set("eff_jing", target->query("max_jing"));   target->set("jing",   target->query("max_jing"));   target->set("eff_qi", target->query("max_qi"));   target->set("qi", target->query("max_qi"));   target->set("neili", target->query("max_neili"));   target->set("food", target->max_food_capacity());   target->set("water", target->max_water_capacity());   target->set_temp("nopoison", 0);}

⌨️ 快捷键说明

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