setjmsg.c

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

C
166
字号
//setwmsg.c// SetWeaponMsg//Creat by ZCooker 97.12.6#include <ansi.h>inherit F_CLEAN_UP;string creat_info(string msg1,int flag);//flag is a variable to say which should be returnedint help();int main(object me, string info){        string msg,command,msg1;        object weapon;        if( !info ) return help();        if (strsrch(info, "【") > 0)                return notify_fail("描述里出现了非法字符!\n");        if (strsrch(info, "】") > 0)                return notify_fail("描述里出现了非法字符!\n");        if (strsrch(info, "仙子") > 0)                return notify_fail("描述里出现了非法字符!\n");        if (strsrch(info, "风儿") > 0)                return notify_fail("描述里出现了非法字符!\n");        if (strsrch(info, "巫师") > 0)                return notify_fail("描述里出现了非法字符!\n");        if (strsrch(info, "天神") > 0)                return notify_fail("描述里出现了非法字符!\n");        if (strsrch(info, "告诉") > 0)                return notify_fail("描述里出现了非法字符!\n");        if (strsrch(info, "回答") > 0)                return notify_fail("描述里出现了非法字符!\n");        if( !(me->query("jia/make")))                return notify_fail("你没有自制的兵器!\n");sscanf(info ,"%s %s" ,command ,msg1);if (command=="-n"){	if( (strlen(info) < 6) || (strlen(info) > 20 ) )                 return notify_fail("请注意一下字数!\n");        if( (strsrch(info, " ") >= 0))                return notify_fail("请注意一下字数!\n");}else{        if (strsrch(info, "$N") < 0)                return notify_fail("描述里要有$N表示你自己!\n");        if (strsrch(info, "$WEAPON$") < 0)                return notify_fail("描述里要带$WEAPON$表示你的兵器!\n");}        weapon = present( "my "+(me->query("jia/id")), me );        if( !objectp(weapon))                return notify_fail("你的兵器不在身边!\n");        sscanf(info ,"%s %s" ,command ,msg1);        switch(command)        {                case "-n":                        msg = creat_info(msg1,1);                        me->set("jia/name",msg +NOR);                        weapon->set("name",msg +NOR);                        break;                case "-w":                        msg = creat_info(msg1,1);                        me->set("jia/wear_msg",msg);                        weapon->set("wear_msg",msg+"\n");                        break;                case "-u":                        msg = creat_info(msg1,1);                        me->set("jia/unequip_msg",msg);                        weapon->set("unequip_msg",msg+"\n");                        break;                default :                        return notify_fail("描述设置失败,请选择具体参数。详细请看帮助文件。\n");        }        write("Ok.\n");        return 1;}string creat_info(string msg1,int flag){        string w_name,name;        int w_lv,color;        w_lv = this_player()->query("jia/lv");        w_name = this_player()->query("jia/name");        color = (w_lv/10);        color = w_lv - color*10;        switch(color){                case 1:                case 2:                        name = HIR + w_name + NOR;                        break;                case 3:                case 4:                        name = HIG + w_name + NOR;                        break;                case 5:                case 6:                        name = HIY + w_name + NOR;                        break;                case 7:                case 8:                        name = HIB + w_name + NOR;                        break;                case 9:                        name = HIM + w_name + NOR;                        break;                case 0:                        name = HIC + w_name + NOR;                        break;        }        if ( flag==2 )                return name;        msg1 = replace_string(msg1, "$WEAPON$",name);        msg1 = replace_string(msg1, "$BLK$", BLK);        msg1 = replace_string(msg1, "$RED$", RED);        msg1 = replace_string(msg1, "$GRN$", GRN);        msg1 = replace_string(msg1, "$YEL$", YEL);        msg1 = replace_string(msg1, "$BLU$", BLU);        msg1 = replace_string(msg1, "$MAG$", MAG);        msg1 = replace_string(msg1, "$CYN$", CYN);        msg1 = replace_string(msg1, "$WHT$", WHT);        msg1 = replace_string(msg1, "$HIR$", HIR);        msg1 = replace_string(msg1, "$HIG$", HIG);        msg1 = replace_string(msg1, "$HIY$", HIY);        msg1 = replace_string(msg1, "$HIB$", HIB);        msg1 = replace_string(msg1, "$HIM$", HIM);        msg1 = replace_string(msg1, "$HIC$", HIC);        msg1 = replace_string(msg1, "$HIW$", HIW);        msg1 = replace_string(msg1, "$NOR$", NOR);        if ( flag==1)                return msg1;}int help(){        string  f=RED+"★"+NOR;        write("指令格式 : setjmsg -w|-u <具体描述>\n"+"\n"+f+"这个指令可以让你为自己的武器加入装备以及卸下时的描述\n"+"    语言。\n"+"    -n : 武器名字设定。\n"+"    -w : 将后续文字作为兵器装备时的描述语言。\n"+"    -u : 将后续文字作为卸下兵器时的描述语言。\n"+"\n"+f+"你如果希望在描述中使用 ANSI 的控制字元改变颜色,\n"+"    可以用以下的控制字串:\n"+"\n"+"$BLK$ - 黑色    $NOR$ - 正常色   $RED$ - 红色    $HIR$ - 亮红色\n"+"$GRN$ - 绿色    $HIG$ - 亮绿色   $YEL$ - 土黄色  $HIY$ - 黄色\n"+"$BLU$ - 深蓝色  $HIB$ - 蓝色     $MAG$ - 浅紫色  $HIM$ - 粉红色\n"+"$CYN$ - 蓝绿色  $HIC$ - 天青色   $WHT$ - 浅灰色  $HIW$ - 白色\n"+"其中系统自动会在字串尾端加一个 $NOR$。\n"+"\n"+f+"在描写中使用$N代替自己;使用$WEAPON$代替兵器名称。\n"+"\n"+f+"注意如果在兵器名称后还有描写文字那么需要从新定义颜色\n"+"    否则按默许颜色处理。\n"        );        return 1;}

⌨️ 快捷键说明

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