隨機地圖產生器 - 聖殿英雄傳說 MUD

Puput avatar
By Puput
at 2018-11-28T10:29

Table of Contents

※ [本文轉錄自 mud 看板 #1R_VpCQ1 ]

作者: laechan (揮淚斬馬雲) 看板: mud
標題: Re: [閒聊] 隨機地圖產生器
時間: Wed Nov 28 10:26:15 2018


網頁好讀版:https://www.ptt.cc/bbs/mud/M.1543371980.A.681.html


隨機地圖產生器 v1 版本
https://sites.google.com/view/randomapv1

Demo 參考影片
https://www.youtube.com/watch?v=PNlr272JP4k


有興趣的人可以玩玩看 ^_^


形成 x-x 圖後,各 mud 的 coder 可透過以下 code 輕易將它
轉成 001~xxx 的圖:

// 假設產生的 x-x 圖如底下
[email protected]
x-x-x-x-x-x-x
| | | |
x-x x-x-x-x x
| | | | |
x-x x-x x-x-x
| | | |
x-x x-x x
| | |
x-x-x-x-x-x x
LONG
;
tmps=explode(tmp,"\n");
s=sizeof(tmps);
new_tmp="";
for(i=0;i<s;i=i+2)
{
tmp=tmps[i];
sln=strlen(tmp);
for(j=0;j<sln;j=j+2)
{
if(tmp[j..j]=="x")
{
r++;
if(r<10)
new_tmp+="00"+r;
else if(r<100)
new_tmp+="0"+r;
else
new_tmp+=""+r;
}
else
new_tmp+=" ";
if(j+1>=sln) break;
new_tmp+=tmp[j+1..j+1];
}
new_tmp+="\n";
if(i+1>=s) break;
tmp=tmps[i+1];
sln=strlen(tmp);
for(j=0;j<sln;j=j+2)
{
if(tmp[j..j]=="|")
new_tmp+=" | ";
else
new_tmp+=" ";
if(j+1>=sln) break;
new_tmp+=" ";
}
new_tmp+="\n";
}
write(new_tmp+"\n這張地圖共 "+r+" 個房間.\n");

執行結果如下:

001-002-003-004-005-006-007
| | | |
008-009 010-011-012-013 014
| | | | |
015-016 017-018 019-020-021
| | | |
022-023 024-025 026
| | |
027-028-029-030-031-032 033

這張地圖共 33 個房間.

coder 再依自己的需求去讀取每一個數字格,經過適當的轉換
後,就能生成 001.c~033.c 區域房間檔,以 sanc 為例:

> more map
:::::::::::::: /open/test/map ::::::::::::::

001-002-003-004-005-006-007
| | | |
008-009 010-011-012-013 014
| | | | |
015-016 017-018 019-020-021
| | | |
022-023 024-025 026
| | |
027-028-029-030-031-032 033

> trans map to /open/test by area_script
圖檔: /open/test/map
目錄: /open/test
腳本: /open/test/area_script
請按[enter]鍵進行圖檔轉換...
資料讀取完成,共讀進了 33 個房間資料。
區域產生完成,共產生了 33 個房間檔案。

> ls
1 001.c 1 010.c 1 019.c 1 028.c
1 002.c 1 011.c 1 020.c 1 029.c
1 003.c 1 012.c 1 021.c 1 030.c
1 004.c 1 013.c 1 022.c 1 031.c
1 005.c 1 014.c 1 023.c 1 032.c
1 006.c 1 015.c 1 024.c 1 033.c
1 007.c 1 016.c 1 025.c 1 area_script
1 008.c 1 017.c 1 026.c 1 map
1 009.c 1 018.c 1 027.c



當 mud 有提供這種將 x-x 圖轉換成 數字圖,再轉換成區域房間
檔的機制時,生成地圖的工作就可以由玩家來做,mud 管理者則可
以設定 x-x 圖的徵稿機制,設定徵稿條件:

1.區域的大小範圍
2.區域的房間數量(數量/面積 = 密度,也可以約定密度)
3.需提供區域從起點走到終點的路線
(可複製隨機地圖產生器產生的路徑,也可以透過目視自己key)
4.需附上左側的 x-x 文字串,以及右側的截圖。截圖例
https://i.imgur.com/EoiYH1Q.jpg
這樣管理者一看就知道玩家所投稿的地圖長怎樣。


以上一點分享。

Laechan

--

『無窮的宇宙,無盡的時空,無限的可能,與無常的人生之間
的永恆矛盾,從倪匡這顆腦袋中編織出來。 』

──金庸評倪匡

--
Tags: 線上

All Comments

隨機地圖產生器

Regina avatar
By Regina
at 2018-11-28T10:26
網頁好讀版:https://www.ptt.cc/bbs/mud/M.1543371980.A.681.html 隨機地圖產生器 v1 版本 https://sites.google.com/view/randomapv1 Demo 參考影片 https://www.youtube.com/watch? ...

菜逼八+回鍋

Damian avatar
By Damian
at 2018-11-28T08:30
小弟我最近回鍋 發現我帳號裡唯一一台車是夜鷹SR 等級是彩色手套套 大概 25 26等吧 於是最近把一些基本招式練一下 照著影片跑法 用升等開到的舒適9-xe 跑快速的成高 勉強跑到1:53 (橋上大直線最有障礙) 換句話說 回鍋以來 我每場都失敗 沒跑完過 其實以上都廢話 我只是想問 我現 ...

20181128修改事項

Carolina Franco avatar
By Carolina Franco
at 2018-11-28T07:24
昨晚睡的不錯,不過睡眠時間仍沒有拉長多少,待會想再去瞇 一下下。今天會進行隨機地圖產生器的網頁移植工作,如果順 利的話今天就可以釋出網址讓各位先玩玩 v1 版本的。 (就是先前已寫好的版本) 若還有空,今天會嚐試修改 base_shop.c,也就是一般商店繼 承檔,我想試看看能否於一般商店內販賣虛擬物品, ...

《戰車世界》十歲了!

Dinah avatar
By Dinah
at 2018-11-28T06:22
伺服器:asia 連結:https://worldoftanks.asia/zh-tw/news/game-events/10yrgiveaway-26nov18/ NA也有 https://worldoftanks.com/en/news/announcements/well-deserved-rewar ...

BBO是不是快沒東西出了?

Sarah avatar
By Sarah
at 2018-11-28T03:45
從封測開始玩 早年卡片非常難買 素質都很差 但感受得出 官方很努力想新點子更新 倒也玩得開心 但近幾年 都朝向強化卡片能力更新 卡片越做越誇張 框大的跟海一樣 又失去多樣性的有趣感 (必裝爆發力、打來打去 都是那幾支球隊) 甚至只有一種模式-正規九局 (以前有一堆奇奇怪怪的模式 蠻有趣的) 很久沒那種 ...