看板 mud_sanc 關於我們 聯絡資訊
※ 引述《justinj (黑旋風)》之銘言: : 假如我想要#define顯示的...這個要怎麼寫 : 例如 check GUILD ----->顯示 /std/guild : check HIR ----->顯示 "[1;31m" 之類的 : 這個是為的要有下列這種情況的 : setp HIR"設定" ----->顯示出 設定 : 也就是說可以設個顏色進去(又可以用內定的變數) 我寫了一個暫時可以用的。 :::::::::::::: /open/laechan.c :::::::::::::: // Laechan@Sanc add in 2011/03/30 // check xx.h 的 define 變數 #include <daemons.h> #include <config.h> #include <race.h> inherit ROOM; void init() { add_action("check_xxx","check"); } int check_xxx(string str) { object ob; string tmp; if(!str || str=="") return notify_fail("check: 你要輸入東西喔.\n"); tmp=@LONG inherit ROOM; mixed return_check() { LONG + "#ifdef "+str+"\n"+ " return \"check: "+str+" = \"+identify("+str+")+\"\\n\";\n"+ "#else\n"+ " return \"check: 沒有 "+str+" 這個定義喔.\\n\";\n"+ "#endif\n"+ "}\n"; write(tmp); write_file("/open/check_tmp_room.c",tmp); if(!catch(ob=find_object_or_load("/open/check_tmp_room"))) write(ob->return_check()); else write("沒有 "+str+" 這個定義喔.\n"); rm("/open/check_tmp_room.c"); "/cmds/wiz/_update.c"->cmd_update("/open/check_tmp_room"); return 1; } 一、把幾個常用到的 .h 檔先 include 進來 (聖殿則預設會先 include mudlib.h 以及 color.h) 二、再用 check 指令去 show 結果 > check ROOM =======它會先產生 /open/check_tmp_room.c 如下======== inherit ROOM; mixed return_check() { #ifdef ROOM return "check: ROOM = "+identify(ROOM)+"\n"; #else return "check: 沒有 ROOM 這個定義喔.\n"; #endif } ===================================================== // 然後去 call 上面的檔案做 return_check 的動作 check: ROOM = "/std/ob/room" Update: /open/check_tmp_room.c 不存在. 載入 的檔案從記憶體中移除. // 然後將上面的檔案順手再移除 底下是實驗結果.. > check OBJECT check: OBJECT = "/std/ob/object" > check GUILD check: GUILD = "/std/guild" > check XXX check: 沒有 XXX 這個定義喔. 寫更複雜一點則可以把顯示結果裡頭的 ESC 控制碼拿掉, 或換成別的字元,更動一下上面的檔案即可,我已經更動 了,你可以自行實驗.. > check HIR check: HIR = "*[1;31m" 這也是 godware 的應用,不過不熟的話不建議使用。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.80.169.63
justinj :...也就是我最近問的都是同一種用法..wa~~ 03/30 17:52
laechan :理論上應該存在著 matlab 所用的那種方法,不過我不會 03/30 20:50
laechan :事實上如果 mud 是架在 win 下的話, 可以切一塊記憶 03/30 20:51
laechan :體來當放 mud 的地方, 這樣 write_file/read_file 就 03/30 20:51
laechan :可以盡情使用 03/30 20:51