// practice.c

#include <ansi.h>

inherit F_CLEAN_UP;

int main(object me, string arg)
{
        object where = environment(me);
        string skillname, sname;
        int skill, skill_basic, cnt = 0;
        int improve;

        seteuid(getuid());

        if (where->query("pigging"))
                return notify_fail("你还是专心拱猪吧！\n");
        if ( me->is_busy() )
                return notify_fail("你现在正忙着呢。\n");
	if ( me->is_exert() || me->is_perform() )
                return notify_fail("你正使用着某种特殊技能呢，怎能分心两用？\n");
        if( me->is_fighting() )
                return notify_fail("你已经在战斗中了，学一点实战经验吧。\n");

        if( !arg ) return (__DIR__"cha")->main(me, arg);



        sscanf(arg, "%s %d", arg, cnt);



         skillname = arg;

        skill = me->query_skill(arg, 1);
        if( skill < 1 )
                return notify_fail("你好像还没有学过这项技能吧？最好先去请教别人。\n");
	if((int)me->query("potential") < 1 ) 
             return notify_fail("你从实战中得到的潜能已经用完了。\n");
        


                if (!random(3)) tell_room(environment(me),
                         me->name() +
                        "正在专心练习" +
                        to_chinese(skillname) + "。\n", ({ me }));
                write ("你" + ((cnt == 1)?"试着":"反复") + "练习" + to_chinese(skillname));
                if (stringp(sname = SKILL_D(skillname)->query_skill_name(random(me->query_skill(skillname,1)))))
                        write ("中「" + sname + "」这一招");
                write( "，获得了" + ((cnt == 1)?"少许":"不少") + "进步！\n");
              
                me->improve_skill(skillname, 3000);
                me->add("potential",-10);
                return 1;
     
}

int help(object me)
{
        write(@TEXT
指令格式：practice|lian <技能种类> <次数>

这个指令让你练习某个种类的技能，这个技能必须是经过 enable 的专业技能。

如果你对这方面的基本技能够高，可以经由练习直接升级，而且升级的上限只跟
你基本技能的等级有关，换句话说，勤加练习是使你的所学「青出于蓝胜于蓝」
的唯一途径，当然，在这之前你必须从实际运用中获得足够的经验以提升你的基
本技能。
如果不指定次数，表示练到不能练为止。
TEXT
        );
        return 1;
}
