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

📄 look.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
📖 第 1 页 / 共 3 页
字号:
// look.c// colored by ReyGod in 1/10/1997 ----- I love colorful world :)// 星星6/16 以前辈发现号(find)在inventory.c中的记数方法改成现在// 这个look.c中极重要的一部份,特此感谢find,得罪得罪。#include <room.h>#include <ansi.h>#include <combat.h>//#define TIME_TICK1 (time()*60-900000000)#define TIME_TICK1 (time()*60)//#define TIME_TICK1 ((time()-900000000)*24)//#define TIME_TICK1 (time()*60-890000000)inherit F_CLEAN_UP;int look_room(object me, object env);int look_item(object me, object obj);int look_living(object me, object obj);int look_room_item(object me, string arg);string getper(object me, object obj);string tough_level(int power);string gettof(object me, object obj);string getdam(object me, object obj);string *tough_level_desc = ({BLU"不堪一击"NOR,BLU"毫不足虑"NOR,BLU"不知所以"NOR,BLU"新学乍练"NOR,BLU"勉勉强强"NOR,BLU"初窥门径"NOR,BLU"初出茅庐"NOR,BLU"略知一二"NOR,BLU"普普通通"NOR,BLU"平平淡淡"NOR,HIB"平淡无奇"NOR,HIB"粗通皮毛"NOR,HIB"半生不熟"NOR,HIB"马马虎虎"NOR,HIB"略有小成"NOR,HIB"已有小成"NOR,HIB"渐入佳境"NOR,HIB"登堂入室"NOR,HIB"挥洒自如"NOR,HIB"融会贯通"NOR, CYN"心领神会"NOR,CYN"炉火纯青"NOR,CYN"了然於胸"NOR,CYN"略有大成"NOR,CYN"已有大成"NOR,CYN"豁然贯通"NOR,CYN"出类拔萃"NOR,CYN"无可匹敌"NOR,CYN"技冠群雄"NOR,CYN"神乎其技"NOR,HIC"出神入化"NOR,HIC"非同凡响"NOR,HIC"傲视群雄"NOR,HIC"登峰造极"NOR,HIC"无与伦比"NOR,HIC"所向披靡"NOR,HIC"一代宗师"NOR,HIC"精深奥妙"NOR,HIC"神功盖世"NOR,HIC"举世无双"NOR,HIR"惊世骇俗"NOR,HIR"撼天动地"NOR,HIR"震古铄今"NOR,HIR"超凡入圣"NOR,HIR"威镇寰宇"NOR,HIR"空前绝后"NOR,HIR"天人合一"NOR,HIR"深藏不露"NOR,HIR"横扫江湖"NOR,HIR"深不可测"NOR,HIY"威不可挡"NOR,HIY"技惊四座"NOR,HIR"强绝天下"NOR,HIY"威镇武林"NOR,HIR"前无古人"NOR,HIY"返璞归真"NOR,HIY"独步天下"NOR,HIY"旷古绝伦"NOR,HIY"天下无敌"NOR,HIY"天下第一"NOR,});string *heavy_level_desc= ({	"极轻",	"很轻",	"不重",	"不轻",	"很重",	"极重"	});void create() { seteuid(getuid()); }int main(object me, string arg){        object obj;        int result;        if( !arg ) result = look_room(me, environment(me));        else if( (obj = present(arg, me)) || (obj = present(arg, environment(me))))             {                if( obj->is_character() ) result = look_living(me, obj);                else result = look_item(me, obj);             } else result = look_room_item(me, arg);        return result;}int look_room(object me, object env){        int i, j, k, l;        object *inv;        mapping exits,*data;        string str, *dirs;                k = 0;	data = allocate(3000);        if( !env ) {                write("你的四周灰蒙蒙地一片,什么也没有。\n");                return 1;        }// 天气颜色       switch (NATURE_D->outdoor_room_outcolor())        {              case "BLK":        str = sprintf( BLK + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + BLK + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "RED":        str = sprintf( RED + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + RED + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "HIR":        str = sprintf( HIR + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + HIR + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "GRN":        str = sprintf( GRN + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + GRN + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "HIG":        str = sprintf( HIG + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + HIG + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "YEL":        str = sprintf( YEL + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + YEL + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "HIY":        str = sprintf( HIY + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + HIY + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "BLU":        str = sprintf( BLU + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + BLU + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "HIB":        str = sprintf( HIB + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + HIB + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "MAG":        str = sprintf( MAG + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + MAG + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "HIM":        str = sprintf( HIM + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + HIM + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "CYN":        str = sprintf( CYN + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + CYN + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "HIC":        str = sprintf( HIC + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + HIC + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "WHT":        str = sprintf( WHT + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + WHT + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              case "HIW":        str = sprintf( HIW + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + HIW + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;              default:        str = sprintf( HIC + "【"+ "%s"+"】"+ NOR + " - %s\n    %s" + HIG + "%s" + NOR,                env->query("short"),                wizardp(me)? file_name(env): "",                env->query("long"),                env->query("outdoors")? NATURE_D->outdoor_room_description():"");                   break;	}// 天气到此结束/*    if (!objectp(present("fire", me))  && environment(me)->query("outdoors")     && !wizardp(this_player())     &&   ((strsrch(CHINESE_D->chinese_date(TIME_TICK1), "子时") >= 0) ||         (strsrch(CHINESE_D->chinese_date(TIME_TICK1), "丑时") >= 0) ||         (strsrch(CHINESE_D->chinese_date(TIME_TICK1), "寅时") >= 0) ||         (strsrch(CHINESE_D->chinese_date(TIME_TICK1), "亥时") >= 0))     )    str = sprintf( "%s"+NOR+BLU+"\n    夜晚了,你虽然睁大了眼睛仔细观看,可还是看不清楚周围的事物。\n"+			"一切都被夜色所笼罩,连脚下的道路都模糊不清了...\n"+NOR+"",        env->query("short"));*/        if( mapp(exits = env->query("exits")) ) {                dirs = keys(exits);                for(i=0; i<sizeof(dirs); i++)                        if( (int)env->query_door(dirs[i], "status") & DOOR_CLOSED )                                dirs[i] = 0;                dirs -= ({ 0 });/*                if ( env->query("outdoors") &&                    !present("fire", this_player()) &&                    !wizardp(this_player()) &&                    ((strsrch(CHINESE_D->chinese_date(TIME_TICK1), "子时") >= 0) ||                     (strsrch(CHINESE_D->chinese_date(TIME_TICK1), "丑时") >= 0) ||                     (strsrch(CHINESE_D->chinese_date(TIME_TICK1), "寅时") >= 0) ||                     (strsrch(CHINESE_D->chinese_date(TIME_TICK1), "亥时") >= 0)))                        str += BLU + "    天色太黑了,你看不清明显的出路。\n"NOR;                else  */				//	dirs -= ({ 0 });		if( sizeof(dirs)==0 )                        str += HIR + "    这里没有任何明显的出路。\n"NOR;		else if( sizeof(dirs)==1 )                        str += YEL + "    这里明显的"+ HIC +"【出口】"+ HIG +"是" + BOLD + dirs[0] + NOR + "。\n";		else                        str += sprintf(  HIG + "    这里明显的"+ HIC +"【出口】"+ HIG +"是" + BOLD + "%s" + NOR + " " + HIG + "和  " + BOLD + "%s" + NOR + "。\n",                                implode(dirs[0..sizeof(dirs)-2], "、"), dirs[sizeof(dirs)-1]);

⌨️ 快捷键说明

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