mud_sanc 板


LINE

這東西我在 tmi2_v3_改 實驗過確認是可行的。 以炙蟻地獄區域為例,底下是該區域的其中一個房間的資料: > da here Object : 房間(/u/p/ppl/hiei/redant/010) exits : ([ "south" : "/u/p/ppl/hiei/redant/026", "west" : "/u/p/ppl/hiei/redant/009" ]) exits_color :"1;31m" light : 1 long : "洞穴十分狹小,你得屈著身體才能前進,嘎吱嘎吱的走動聲音 不\n時悠q洞穴的深處傳來,在洞穴裡久居的怪物,對於自己送上門來\n的食物想必 感到非常興奮吧『C\n\n" reborn_times :1463620349 room_file :"010" short : "炙蟻地穴-第一層" 以艾恩葛朗特的區域為例,因為預設其會有 100 層區域(實際 99 層), 因此區域目錄的形式會如下圖: /u/s/sao/層數編號/區域編號/段數編號/ 例如起始城鎮的第一格房間檔: /u/s/sao/01/01/1/001.c 未來則會有個 區域名→編號編碼 的對照資料,因此實際上,該地圖資 料被儲存於玩家資料區的情況如下: maps : ([ "層數編號" : ([ "區域編號-段數編號" : "字串值", ]), ]); 區域有分段(層)的情況下,我是預設最多不會超過 512 個房間,因此, 假設最多 512 個房間,每個房間有無走過的情況用 0 與 1 來區別時: 11111111111111111001010010010101010000101..............01001010 長度共 512 取前八個 11111111 為例,如果假設它是一個二進制的東西時: (11111111) = 255 (三位數) 2 10 則上面的長度 512 的東西可拆解為 "255,......",長度就變為: 512/8 = 64, 64x(3+1)-1 = 255 從上面大致可發現「取越長的段落來做 2→10 進位會越有利」。 比方我們取前 16 個 1111111111111111 (1111111111111111) = 65535 2 10 則上面的長度 512 的東西可拆解為 "65535,....",長度就變為: 512/16 = 32, 32x(5+1)-1 = 191 那麼實務上的做法是如何呢?它首先會讀入該區域總共有幾格的資 料,會先得到一個 n,接著判斷玩家有沒有該區域資料字串值,沒 有的話就先產生出來: for(i=0;i<n;i++) str+="0"; 接著,假設玩家進去該區域的第一個房間編號是 k: str[k-1]='1'; 接著對這個 str 做拆解: for(i=0;i<n;i=i+16) { if(i+15>=n) tmp=str[i..n-1]; else tmp=str[i..i+15]; x=hex10(atoi(tmp)); new_str+=x+","; } 這樣 new_str 就是上面的 "65535,..." 這樣的形式。 拆解的方式很多,事實上我不認為這是最理想的,理論上應該有更 佳的做法,兼顧可容許的字串長度以及可負荷的換算複雜度。 (例如 "717277566556262511" 這樣的字串形式理論上也可行) 寫上面那些東西的目的在證明依目前聖殿現有的系統架構,就可以 實現變動式地圖資料及地圖分享,而不需從 tmi2_v3_改 調用。 (當然,我會把它侷限在只能使用於艾恩葛朗特) laechan --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.52.60
※ 文章網址: https://webptt.com/m.aspx?n=bbs/mud_sanc/M.1463624170.A.AC6.html
1F:推 aruka : 看不懂,今天腦袋用過度了>"< 05/20 00:41
2F:→ laechan : 等這部份在sanc實作好我會demo一下,看實際呈現結果 05/20 07:22
3F:→ laechan : 就知道這系統是做什麼的 05/20 07:23
4F:推 aruka : 好;另外剛剛下班發現sanc 掛了@@ 05/22 20:41
5F:→ laechan : 已重開. 系統自動 shutdown 後沒自動重開的關係 05/22 22:21
6F:→ aruka : 已登入。 05/23 21:52







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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP