biguan.c

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

C
260
字号
// breakup.c#include <ansi.h>inherit F_CLEAN_UP;int breaking(object me);int halt_breaking(object me);void create() { seteuid(getuid()); }int main(object me, string arg){        int exercise_cost;        object where;        int maxneili;        seteuid(getuid());        where = environment(me);                if (where->query("pigging"))                return notify_fail("你还是专心拱猪吧!\n");        if (me->query("breakup"))                return notify_fail("你已经打通了任督二脉了,似乎没有必要再来一次。\n");        if (! where->query("no_fight"))                return notify_fail("在这里打通任督二脉?不太安全吧?\n");        if (! where->query("sleep_room"))                return notify_fail("你得找一个能够休息的地方闭关修行。\n");        if ( where->query("pingan"))                return notify_fail("这个地方不允许。\n");        if ( where->query("biwu"))                return notify_fail("这个地方不允许。\n");        if ( where->query("citybiwu"))                return notify_fail("这个地方不允许。\n");        if (me->query_temp("biguan"))                return notify_fail("你正在打通任督二脉。\n");        if (me->is_busy())                return notify_fail("你现在正忙着呢。\n");        if (me->query("potential") < 500)                return notify_fail("你的潜能不够,没法闭关修行以打通任督二脉。\n");        if ((int)me->query("qi") * 100 / me->query("max_qi") < 90)                return notify_fail("你现在的气太少了,无法静心闭关。\n");        if ((int)me->query("jing") * 100 / me->query("max_jing") < 90)                return notify_fail("你现在的精太少了,无法静心闭关。\n");        if ((int)me->query("neili") < 4000)                return notify_fail("你觉得内力颇有不足,看来目前还难以"                                   "打通任督二脉。\n");        if ((int)me->query("neili") * 100 / me->query("max_neili") < 90)                return notify_fail("你现在的内力太少了,无法静心闭关。\n");        if (me->query_condition("bg_busy"))                return notify_fail("你刚闭过关,休息几天再来吧!\n");        if ((int)me->query_skill("force", 1) < 250)                return notify_fail("你觉得自己的内功火候还有限,看来需"                                   "要先锻炼好内功才行。\n");        message_vision("$N盘膝坐下,开始冥神运功,闭关修行。\n", me);        me->set("startroom", base_name(where));        me->set("doing", "breakup");        me->set_temp("biguan", 1);        me->apply_condition("bg_busy",100);        me->start_busy(10);                           CHANNEL_D->do_channel(this_object(), "rumor",                              sprintf("%s%s(%s)开始闭关修行,试图打通任督二脉。",                              "",me->name(1), me->query("id")));        if (call_out("breaking", 10, me) && !me->query("breakup"))                call_out("breaking", 10, me);        return 1;}int continue_breaking(object me){        me->start_busy(60);                tell_object(me, HIR "\n你继续闭关修行以打通任督二脉...\n" NOR);        return 1;}private void stop_breaking(object me){        if (! interactive(me))        {                me->force_me("chat* sigh");                call_out("user_quit", 0, me);        }}int breaking(object me){        string msg;if (!me)  return notify_fail("你已经断线了!\n");if((int)me->query("potential") - (int)me->query("learned_points") < 200 )         {                tell_object(me, "你的潜能耗尽了。\n");                message_vision("$N睁开双目,缓缓吐了一口气,站了起来。\n", me);                CHANNEL_D->do_channel(this_object(), "rumor",                                      sprintf("听说%s(%s)闭关结束,似乎没有太大的进展。",                                      me->name(1), me->query("id")));                if (! interactive(me))                {                        me->force_me("chat* sigh");                        me->set_temp("biguan", 0);                        call_out("user_quit", 0, me);                }                return 0;        }	if( (int)me->query("learned_points") < 1 )        {                tell_object(me, "你的潜能耗尽了。\n");                message_vision("$N睁开双目,缓缓吐了一口气,站了起来。\n", me);                CHANNEL_D->do_channel(this_object(), "rumor",                                      sprintf("听说%s(%s)闭关结束,似乎没有太大的进展。",                                      me->name(1), me->query("id")));                if (! interactive(me))                {                        me->force_me("chat* sigh");                        me->set_temp("biguan", 0);                        call_out("user_quit", 0, me);                }                return 0;        }        if (me->query("potential") <= me->query("learned_points"))        {                tell_object(me, "你的潜能耗尽了。\n");                message_vision("$N睁开双目,缓缓吐了一口气,站了起来。\n", me);                CHANNEL_D->do_channel(this_object(), "rumor",                                      sprintf("听说%s(%s)闭关结束,似乎没有太大的进展。",                                      me->name(1), me->query("id")));                if (! interactive(me))                {                        me->force_me("chat* sigh");                        me->set_temp("biguan", 0);                        call_out("user_quit", 0, me);                }                return 0;        }        me->add("potential",-1);        if (random(10))        {               call_out("breaking", 10, me);              return 1;        }               if (random(4000) < me->query("con") && !me->query("breakup"))        {                message_vision(HIW "只见$N" HIW "头上白雾腾腾、浑身"                               "如同笼罩在云中,看来已经到了三花聚顶、"                               "五气朝元、龙虎相济、天人交会的紧要关头!\n" NOR, me);                tell_object(me, HIR "你觉得内力在丹田源源而生,不断"                            "冲击诸处大穴,浑身燥热难当,几欲大声呼喊。\n" NOR);                message_vision(HIC "突然$N" HIC "大喝一声,一股无形气浪"                               "陡然散布开来,四周空气登时变得燥热。\n" NOR, me);                tell_object(me, HIG "你顿时觉得浑身一阵轻松,一股清凉之意油然"                            "而起,心灵一片空明,内力没有丝毫阻滞,舒泰之极。\n" NOR);                me->set_temp("biguan", 0);                me->set("breakup", 1);                CHANNEL_D->do_channel(this_object(), "rumor",                                      sprintf("听说%s(%s)经过闭关苦修,终于打通"                                              "了任督二脉,窥视到了无上的武学境界。",                                      me->name(1), me->query("id")));                if (me->can_improve_skill("force"))                        me->improve_skill("force", 500000);            me->add("max_jing",1000);            me->add("eff_jing",1000);            me->add("max_jingli",100);            me->add("eff_jingli",100);   	    me->set_skill("biguan",200);//                CHAR_D->setup_char(me);                stop_breaking(me);                return 0;        }        switch (random(5))        {        case 0:                msg = "你默默运转内力,隐隐有些感觉。\n";                me->start_busy(5);                break;        case 1:                msg = "你将内力运出丹田,过紫宫、入泥丸、透十二重楼,遍布奇筋八脉,然后收回丹田。\n";                me->start_busy(5);                break;        case 2:                msg = "你将内力运经诸穴,抵四肢百赅,然后又回收丹田。\n";                me->start_busy(5);                break;        case 3:                msg = "你在丹田中不断积蓄内力,只觉得浑身燥热。\n";                me->start_busy(5);                break;        default:                msg = "你缓缓呼吸吐纳,将空气中水露皆收为己用。\n";                me->start_busy(5);                break;        }        tell_object(me, msg);        call_out("breaking", 5, me);        return 1;}int halt_breaking(object me){//        CLOSE_D->user_opened(me);        tell_object(me, "你中止了闭关。\n");        message_vision(HIY "$N" HIY "轻轻叹了一口气,缓缓的睁开眼。\n\n" NOR, me);                        me->set_temp("biguan", 0);//        me->add("potential", me->query("potential")/ 2);        CHANNEL_D->do_channel(this_object(), "rumor", "听说" + me->name(1) +                              "闭关中途突然复出。");        return 1;}private void user_quit(object me){        if (! me || interactive(me))                return;              me->force_me("quit");}int help(object me){        write(@HELP指令格式 : biguan闭关修行以打通任督二脉,需要非常深厚的内力和内功功底才能做到。而且会消耗潜能。一旦打通了任督二脉可以同时扩展精、气、精力、内力的上限。HELP );        return 1;}

⌨️ 快捷键说明

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