mud_sanc 板


LINE

上一篇刪除,是因為這一篇可能才是我真正想做的東西。 以 /d/wiz/room/disc.c 巨型高塔來說,玩家往 down 離開時, 它會跑到 /d/map/lodoos/room/wiz_tower.c 這個房間。 那能不能在往 down 離開時動一點手腳呢? 例如在 /open/area 目錄建立 /open/area/d/map/lodoos/room 的相對目錄(若沒有這些子目錄就新增),當玩家往 down 離開: // 讀取 wiz_tower 房間檔 files=here->query("exits/"+directs); htm_files="/open/area"+files+".htm"; if(!file_exists(htm_files)) { if(ob=find_object_or_load(files)) { // 這裡只是簡單寫一下,實際上要對讀出來的東西做處理 str=sprintf("<html>\n%s<room_short/>\n%s<room_long/><p>\n<t><t>明顯出口:\n", ob->query("short"),ob->query("long")); tmps=ob->query("exits"); foreach(tmp in tmps) str+="<a href=\"/open/area"+ob->query("exits/"+tmp)+".htm\">"+ tmp+"</a>,\n"; write_file(htm_files,str[0..strlen(str)-4]+"</html>\n"); } } 這樣產生出的 htm 檔,其內容類似如下 /open/area/d/map/lodoos/room/wiz_tower.htm =========================================================== <html> 巨型高塔下<room_short/> 眼前是一座純白色大理石建構成的高塔,塔似劍般刺向天空,石 牆映照著日光,令人無法直視。西邊則有一間神秘的房子,你看 到有許多人在那裡進進出出的。<room_long/><p> <t><t>明顯出口: <a href="/open/area/d/map/lodoos/room/sq-w1.htm">south</a>, <a href="/open/area/d/wiz/room/race.htm">west</a>, <a href="/open/area/d/wiz/room/disc.htm">up</a> </html> =========================================================== 這個檔若以瀏覽器開啟的話,會類似底下這樣: https://i.imgur.com/HjILx6z.jpg
也就是說,只要靠 _go.c 這個指令,就能自動建立與房間 .c 檔 相對映的 .htm 檔,這時只要用瀏覽器任意點開一個 .htm 檔,就 能靠著點超連結去「瀏覽」與其相鄰的其它房間的內容。 因為它是自動產生的,而且實際上只要 .htm 檔存在,它每次只多 做一個 file_exists 的判斷而已,耗費不了多少資源。 當 /open/area 裡面的 .htm 檔達一定量時,就能將它單獨下載到 「本機」,然後在本機以瀏覽器開啟,就能在本機走房間了。 它有幾個注意事項: 一、寫進 .htm 的實際字串內容,需經過適當的處理。例如 linux 環境下目錄是像 /open/area/.. 這樣的格式,可是在 windows 下,它是讀 d:\open\area\.. 這樣的格式。 也就是說,要預設玩家會把 release 出的東西預設放在 win 的電腦下的 d:\ 目錄,才能順利點開各個 .htm 檔。 但如果是開放 mud server 端的 http 瀏覽時,就要照 linux 下的路徑格式。 二、當一個 mud 的玩家數夠多時,理論上 .htm 檔的產生會很順 利,而且要是產生的不對,只要 rm 掉整個 /open/area 下的 目錄,就可以讓 _go.c 自己重新產生。 三、原則上可對 .htm 檔做後製,例如說次元鏡所在的房間,我們 可以額外增加下拉式選單,把次元鏡所有出口放在選單內,玩 家選擇了某一出口,就自動開啟對映的 .htm 檔即可。 最後,這麼做有什麼目的呢?就是不需釋出房間的 .c 原始檔,也 可以釋出 sanc 的區域資料,線上玩家走過的區域越多,可釋出的 資料也越多。 然後才是 javascript 可發揮的部份,當我一個目錄下有 .htm 檔 時,如果我預設它們都會 import 某個我寫好的 .js 檔的話,那麼 就可以讓每個 .htm 可擁有特殊的功能,例如: 1.進行即時統計(房間數多少、..) 2.甚至進行即時周邊地圖繪製呈現(抓超連結來分析就行了) └呈現出來的地圖有格子,點格子即跳到那一格 3.方便進行各種搜尋(比方找房間的特定敘述) 最後是這個 project 的最大優點,就是由使用者在自己[本機]上 操作,耗費的是本機的資源,對處於伺服器端的 sanc 來說不會有 任何影響。當然缺點是它沒有辦法即時更新,但通常一個已發展成 熟的 mud,已存在的區域,其資料通常也不會有啥變動。 這項計劃會在今年找一天開始做,實際上的做法不會跟上面完全一 樣,會有所變化,但方向是一致的,而且將不會只侷限在區域上。 Laechan --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.66.104 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/mud_sanc/M.1561089952.A.635.html







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP