selfpractice.c

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

C
99
字号
// practice.c#include <ansi.h>inherit F_CLEAN_UP;int check_valid_create(string skillname);int main(object me, string arg){        object where = environment(me);        string skillname;        int skill, skill_basic;        seteuid(getuid());        if (where->query("pigging"))                return notify_fail("你还是专心拱猪吧!\n");        if (me->is_busy())                return notify_fail("你现在正忙着呢。\n");        if( me->is_fighting() )                return notify_fail("你已经在战斗中了,学一点实战经验吧。\n");        if( !arg ) return (__DIR__"enable")->main(me, arg);        if( !stringp(skillname = me->query_skill_mapped(arg)) )                return notify_fail("你只能练习用 enable 指定的特殊技能。\n");        skill_basic = me->query_skill(arg, 1);        skill = me->query_skill(skillname, 1);        if( skill < 1 )                return notify_fail("你好像还没有学过这项技能吧?最好先去请教别人。\n");        if( skill_basic < 1 )                return notify_fail("你对这方面的技能还是一窍不通,最好从先从基本学起。\n"); //here add something.....        if(check_valid_create(skillname)==0)                return notify_fail("这不是你创建的功夫呀?\n");                   if( skill_basic/2 <= skill/3 )                return notify_fail("你的基本功火候未到,必须先打好基础才能继续提高。\n");        notify_fail("你现在不能练习这项技能。\n");        if( !SKILL_D(skillname)->valid_learn(me) ) return 0;                notify_fail("你试着练习" + to_chinese(skillname) + ",但是并没有任何进步。\n");        if( SKILL_D(skillname)->practice_skill(me) ) {//original num is skill_basic/5 now to 4//it should be adrusted properly                me->improve_skill(skillname, skill_basic/4 +1, skill_basic > skill? 0: 1);                write( HIY "你的" + to_chinese(skillname) + "进步了!\n" NOR);                return 1;        }        else return 0;}int check_valid_create(string skillname){string file,*list,playername;object me;me=this_player();file=read_file(SKILL_D(skillname+".c"));if(!file)      return 0;list = explode(file, "\n");playername=geteuid(me);if(list[1]!="// "+playername)      return 0;if(list[0]!="// THIS IS PLAYER'S OWN SKILL (write by maxim@nju_fengxue)")           return 0;return 1;}int help(object me){        write(@TEXT指令格式:selfpractice <技能种类>这个指令让你练习某个自己创建的技能,这个技能必须是经过 enable 的专业技能。如果你对这方面的基本技能够高,可以经由练习直接升级,而且升级的上限只跟你基本技能的等级有关,换句话说,勤加练习是使你的所学「青出于蓝胜于蓝」的唯一途径,当然,在这之前你必须从实际运用中获得足够的经验以提升你的基本技能。例如:practice unarmed,practice sword......TEXT        );        return 1;}

⌨️ 快捷键说明

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