📄 lookold.c
字号:
// 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)//#define TIME_TICK1 (time()*60-900000000)//#define TIME_TICK1 ((time()-900000000)*24)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;}void realtime_map(object me,object env){ object room_obj; mapping exits; int i; string map_room, map_room2,jiantou; string *dirs; mapping alldirs=([ "northwest" : " ", "north" : " ", "northup" : " ", "northeast" : " ", "west" : " ", "east" : " ", "southeast" : " ", "south" : " ", "southwest" : " ", "southdown" : " ", "eastup" : " ", "southup" : " ", "northdown" : " ", "eastdown" : " ", "westup" : " ", "westdown" : " ", "enter" : " ", "out" : " ", "up" : " ", "down" : " ", "left" : " ", "right" : " ", ]); if( mapp(exits = env->query("exits")) ) { dirs=keys(exits); for(i=0;i< sizeof(dirs);i++) { if(!room_obj=find_object(exits[dirs[i]])) room_obj=load_object(exits[dirs[i]]); if(room_obj){ if (room_obj->query("short")) alldirs[dirs[i]]=room_obj->query("short"); ; } } jiantou=" "; map_room2=alldirs["enter"]; if(alldirs["enter"]!=" "){ map_room2=alldirs["enter"]; jiantou=HIR+"∧"+NOR; } if(alldirs["up"]!=" "){ map_room2=alldirs["up"]; jiantou=HIC+"〓"+NOR; } if(alldirs["northdown"]!=" "){ map_room2=alldirs["northdown"]; jiantou="↓"; } if(alldirs["northup"]!=" "){ map_room2=alldirs["northup"]; jiantou="↑"; } if(alldirs["north"]!=" "){ map_room2=alldirs["north"]; jiantou="|"; } map_room=map_room2; for(i=0;i<(10-strlen(map_room2))/2;i++) { map_room =map_room+" "; map_room =" "+map_room; } printf(" %10s %-10s %-10s\n", alldirs["northwest"],map_room,alldirs["northeast"]); printf(" %s %s %s\n", alldirs["northwest"]==" " ? " ":"\", jiantou, alldirs["northeast"]==" " ? " ":"/"); jiantou=" "; map_room2=alldirs["westdown"]; if(map_room2!=" ") jiantou="→"; if(alldirs["left"]!=" "){ map_room2=alldirs["left"]; jiantou="〈"; } if(alldirs["westup"]!=" "){ map_room2=alldirs["westup"]; jiantou="←"; } if(alldirs["west"]!=" "){ map_room2=alldirs["west"]; jiantou="--"; } printf(" %10s%s",map_room2,jiantou); map_room2=env->query("short") ? env->query("short"): "----------"; map_room=HIG+map_room2+NOR; for(i=0;i<(10-strlen(map_room2))/2;i++) { if(alldirs["east"]==" ") map_room =map_room + " "; else map_room=map_room + "-"; if(alldirs["west"]==" ") map_room =" "+ map_room; else map_room ="-"+map_room; } printf("%s",map_room); jiantou=" "; map_room2=alldirs["eastup"]; if(map_room2!=" ") jiantou="→"; if(alldirs["right"]!=" "){ map_room2=alldirs["right"]; jiantou="〉"; } if(alldirs["eastdown"]!=" "){ map_room2=alldirs["eastdown"]; jiantou="←"; } if(alldirs["east"]!=" "){ map_room2=alldirs["east"]; jiantou="--"; } printf("%s%-10s\n",jiantou,map_room2); jiantou=" "; map_room2=alldirs["out"]; if(alldirs["out"]!=" "){ map_room2=alldirs["out"]; jiantou=HIR+"∨"+NOR; } if(alldirs["down"]!=" "){ map_room2=alldirs["down"]; jiantou=HIC+"〓"+NOR; } if(alldirs["southdown"]!=" "){ map_room2=alldirs["southdown"]; jiantou="↑"; } if(alldirs["southup"]!=" "){ map_room2=alldirs["southup"]; jiantou="↓"; } if(alldirs["south"]!=" "){ map_room2=alldirs["south"]; jiantou="|"; } map_room=map_room2; for(i=0;i<(10-strlen(map_room2))/2;i++) { map_room =map_room + " "; map_room =" "+map_room; } printf(" %s %s %s\n", alldirs["southwest"]==" " ? " ":"/", jiantou, alldirs["southeast"]==" " ? " ":"\"); printf(" %10s %-10s %-10s\n", alldirs["southwest"],map_room,alldirs["southeast"]); } else { map_room2=env->query("short") ? env->query("short"): "----------"; map_room=HIG+map_room2+NOR; for(i=0;i<(10-strlen(map_room2))/2;i++) { if(alldirs["east"]==" ") map_room =map_room + " "; else map_room=map_room + "-"; if(alldirs["west"]==" ") map_room =" "+ map_room; else map_room ="-"+map_room; } printf("\n %s\n",map_room); } return;}int look_room(object me, object env){ int i,amount,j, k, l; object *inv; object obj,room; mixed *cmds; mapping exits,my,*data; string str, *dirs,message,str2,modify; if( !env ) { write("你的四周灰蒙蒙地一片,什麽也没有。\n"); return 1; } k = 0; data = allocate(3000); reset_eval_cost(); 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( sizeof(dirs)==0 ) str += HIR + " 这里没有任何明显的出路。\n"NOR; else 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 += BLU + " 天色太黑了,你看不清明显的出路。\n"NOR; else if( sizeof(dirs)==1 ) str += YEL + " 这里唯一的出口是 " + BOLD + dirs[0] + NOR + "。\n"; else{ dirs = sort_array(dirs,"sort_exits"); str += sprintf( HIG + " 这里明显的"+ HIC +"【出口】"+ HIG +"是" + BOLD + "%s" + NOR + " " + HIG + "和 " + BOLD + "%s" + NOR + "。\n", implode(dirs[0..sizeof(dirs)-2], "、"), dirs[sizeof(dirs)-1]); } }else str += " 这里没有任何明显的出路。\n"; write(str); return 1; } if(env->query("outdoors",1)) str2 = NOR+HIC"室外"NOR; if(!env->query("outdoors",1)) str2 = NOR+HIC"室内"NOR; if (wizardp(me) && !me->query("env/show_room")) str = sprintf( HIC"〖"HIW"%s"HIC"〗 %s"+NOR+" - "+RED+"%s\n"+NOR+" %s", env->query("short"),str2, SECURITY_D->valid_read(file_name(env),me)? file_name(env): "", env->query("long")); else str = sprintf( HIC"〖"HIW"%s"HIC"〗 %s"+NOR+"\n %s",env->query("short"),str2,env->query("long"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -