請問我的世界怎樣才能建一座好的平面迷宮?
想在我的世界地皮建一座百層迷宮塔,但上網搜到的迷宮生成器做出來的都是貼牆走就能過那種,而且出入口都在外圍,而我需要的是出入口都在內部的迷宮(因為是塔),請問我怎樣建才能不那麼容易讓人通過?是有死胡同還是沒有好?還有出入口之間距離是遠還是近?
這是我的迷宮,是先用生成器生成,然後我自己再把所有死胡同去掉建成的,入口在右下角,出口還沒想好設在哪裡,我是op,打算給通過100層的玩家一定獎勵,現在剛弄好第一層,還沒封頂,光是弄這一層就已經花掉了不少時間,不過因為要封頂,所以別人也看不到內部的情況,不知道能不能困住玩家一段時間
其實我們不必藉助第三方工具,直接使用《Minecraft》原版命令方塊就能生成一個合格的迷宮。
我於近期製作了一個 OOC(一鍵命令方塊),版本為原版 1.12,只要你在作弊模式中輸入命令 /give @p comm 再按 Tab 鍵,再按回車,你就得到了一個命令方塊。然後將命令方塊放地上,創造模式下輸入以下預先設定好的命令(命令將在答案最後附上,想要的直接跳到答案末尾複製即可),按一下「紅石控制」變為「保持開啟」再點「完成」,命令方塊就會自動運行。
首先生成一個用於生成迷宮用的高♂聳♂入♂雲的命令方塊柱:
然後稍等片刻,你會發現命令方塊柱的東偏南方向生成了一大片城牆,若俯視它,會看到迷宮正在漸漸生成:
再等片刻,迷宮生成完畢後,那串高聳入雲的命令方塊柱也隨之消失,這樣,一個完整的迷宮就生成好了。注意,這是隨機迷宮,每次生成的迷宮都是不一樣的。
迷宮的大小為 31 x 31,之所以設定成這個大小,是因為方便結構方塊對其進行保存。
注意,在命令運行的過程中,盡量不要干其他事情;請在開闊的地方運行命令,否則破壞地形概不負責;另外由於命令方塊柱有幾十米高,所以請不要在 y 坐標高於 200 的地方運行命令。
原理也很簡單,參照最小生成樹的 Kruskal 演算法。
鳴謝 @pca 製作的 OOC 生成小程序~
另外有一個彩蛋,就是殭屍為了追村民而走迷宮哦~
最後附上命令,想玩的自行複製(再次提醒,版本為原版 1.12,較低版本不支持):
/summon falling_block ~ ~1.5 ~ {Time:1,Block:"minecraft:redstone_block",Motion:[0d,-1d,0d],Passengers:[{id:falling_block,Time:1,Block:"minecraft:activator_rail",Passengers:[{id:commandblock_minecart,Command:"blockdata ~ ~-2 ~ {auto:0b,Command:""}"},{id:commandblock_minecart,Command:"gamerule commandBlockOutput false"},{id:commandblock_minecart,Command:"scoreboard objectives add mazevars dummy"},{id:commandblock_minecart,Command:"scoreboard objectives add mazest dummy"},{id:commandblock_minecart,Command:"scoreboard objectives add mazeco dummy"},{id:commandblock_minecart,Command:"scoreboard objectives add mazeset dummy"},{id:commandblock_minecart,Command:"scoreboard objectives add mazedif dummy"},{id:commandblock_minecart,Command:"scoreboard players set maze_two mazevars 2"},{id:commandblock_minecart,Command:"summon area_effect_cloud ~5 ~-1 ~ {Duration:2147483647,Tags:["maze_origin","maze_used"]}"},{id:commandblock_minecart,Command:"setblock ~2 ~43 ~0 chain_command_block 1 replace {Command:"execute @e[type=area_effect_cloud,tag=maze_cond1] ~ ~ ~ blockdata ~ ~ ~ {auto:1b}",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~42 ~0 chain_command_block 9 replace {Command:"kill @e[tag=maze_start]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~41 ~0 chain_command_block 9 replace {Command:"execute @e[tag=maze_start] ~ ~ ~ fill ~ ~ ~ ~ 255 ~ air",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~40 ~0 chain_command_block 9 replace {Command:"kill @e[tag=maze_used]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~39 ~0 chain_command_block 1 replace {Command:"say Finished.",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~38 ~0 chain_command_block 9 replace {Command:"execute @e[type=area_effect_cloud,tag=maze_cond1] ~ ~ ~ blockdata ~ ~ ~ {auto:0b}",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~37 ~0 chain_command_block 1 replace {Command:"testfor @e[tag=maze_edge]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~36 ~0 chain_command_block 1 replace {Command:"scoreboard players tag @e[tag=maze_latter] remove maze_latter",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~35 ~0 chain_command_block 1 replace {Command:"scoreboard players tag @e[tag=maze_former] remove maze_former",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~34 ~0 chain_command_block 1 replace {Command:"kill @e[tag=maze_south,score_mazedif_min=0,score_mazedif=0]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~33 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_south] ~ ~ ~1 scoreboard players operation @s mazedif -= @e[tag=maze_grid,dx=0,dy=255,dz=0] mazeset",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~32 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_south] ~ ~ ~-1 scoreboard players operation @s mazedif = @e[tag=maze_grid,dx=0,dy=255,dz=0] mazeset",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~31 ~0 chain_command_block 1 replace {Command:"kill @e[tag=maze_east,score_mazedif_min=0,score_mazedif=0]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~30 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_east] ~1 ~ ~ scoreboard players operation @s mazedif -= @e[tag=maze_grid,dx=0,dy=255,dz=0] mazeset",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~29 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_east] ~-1 ~ ~ scoreboard players operation @s mazedif = @e[tag=maze_grid,dx=0,dy=255,dz=0] mazeset",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~28 ~0 chain_command_block 1 replace {Command:"scoreboard players operation @e[tag=maze_grid,score_mazedif_min=0,score_mazedif=0] mazeset = @e[tag=maze_former] mazeset",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~27 ~0 chain_command_block 1 replace {Command:"scoreboard players operation @e[tag=maze_grid] mazedif -= @e[tag=maze_latter] mazeset",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~26 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ scoreboard players operation @s mazedif = @s mazeset",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~25 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_chosen] ~ ~ ~ fill ~ ~ ~ ~ ~1 ~ air",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~24 ~0 chain_command_block 9 replace {Command:"execute @e[tag=maze_chosen] ~ ~ ~1 scoreboard players tag @e[tag=maze_grid,dx=0,dy=255,dz=0] add maze_latter",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~23 ~0 chain_command_block 9 replace {Command:"execute @e[tag=maze_chosen] ~ ~ ~-1 scoreboard players tag @e[tag=maze_grid,dx=0,dy=255,dz=0] add maze_former",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~22 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_chosen] ~ ~ ~ testfor @s[tag=maze_south]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~21 ~0 chain_command_block 9 replace {Command:"execute @e[tag=maze_chosen] ~1 ~ ~ scoreboard players tag @e[tag=maze_grid,dx=0,dy=255,dz=0] add maze_latter",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~20 ~0 chain_command_block 9 replace {Command:"execute @e[tag=maze_chosen] ~-1 ~ ~ scoreboard players tag @e[tag=maze_grid,dx=0,dy=255,dz=0] add maze_former",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~19 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_chosen] ~ ~ ~ testfor @s[tag=maze_east]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~17 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ scoreboard players operation @s mazeset = @s mazest",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~16 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ testfor @e[tag=maze_grid,score_mazest=0]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~15 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[tag=maze_grid] mazest 0",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~14 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ fill ~ ~ ~ ~ ~1 ~ air",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~13 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid,score_mazeco_min=1] ~ ~ ~ summon area_effect_cloud ~ ~ ~1 {Duration:2147483647,Tags:[\"maze_south\",\"maze_edge\",\"maze_used\"]}",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~12 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ scoreboard players operation @s mazeco = @s mazest",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~11 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~1 testfor @e[tag=maze_grid,dx=10000,dy=255,dz=10000]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~10 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid,score_mazeco_min=1] ~ ~ ~ summon area_effect_cloud ~1 ~ ~ {Duration:2147483647,Tags:[\"maze_east\",\"maze_edge\",\"maze_used\"]}",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~9 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ scoreboard players operation @s mazeco = @s mazest",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~8 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~1 ~ ~ testfor @e[tag=maze_grid,dx=10000,dy=255,dz=10000]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~7 ~0 chain_command_block 1 replace {Command:"kill @e[tag=maze_grid,score_mazeco=0]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~6 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ scoreboard players operation @s mazeco %= maze_two mazevars",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~5 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ scoreboard players operation @s mazeco = @s mazest",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~4 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ testfor @e[tag=maze_grid,dx=10000,dy=255,dz=10000]",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~3 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[tag=maze_grid] mazest 0",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~2 ~0 chain_command_block 1 replace {Command:"execute @e[tag=maze_grid] ~ ~ ~ stats entity @s set SuccessCount @s mazest",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~1 ~0 chain_command_block 1 replace {Command:"blockdata ~ ~-1 ~ {auto:0b}",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~0 ~0 command_block 1 replace {Command:"execute @e[tag=maze_origin] ~ ~ ~ fill ~-1 ~-1 ~-1 ~29 ~1 ~29 stonebrick"}"},{id:commandblock_minecart,Command:"setblock ~2 ~-1 ~0 chain_command_block 1 replace {Command:"blockdata ~ ~1 ~ {auto:1b}",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~-2 ~0 command_block 1 replace {Command:"execute @e[tag=maze_origin] ~ ~ ~ fill ~ ~-1 ~ ~28 ~-1 ~28 command_block 0 replace {Command:\"summon area_effect_cloud ~ ~1 ~ {Duration:2147483647,Tags:[\\\"maze_grid\\\",\\\"maze_used\\\"]}\",auto:1b}"}"},{id:commandblock_minecart,Command:"setblock ~2 ~18 ~0 repeating_command_block 9 replace {Command:"scoreboard players tag @r[type=area_effect_cloud,tag=maze_edge] add maze_chosen",auto:1b}"},{id:commandblock_minecart,Command:"summon area_effect_cloud ~2 ~-2 ~0 {CustomName:"maze_1",Duration:2147483647,Tags:["maze_start"]}"},{id:commandblock_minecart,Command:"summon area_effect_cloud ~2 ~39 ~0 {CustomName:"maze_2",Duration:2147483647,Tags:["maze_cond1","maze_used"]}"},{id:commandblock_minecart,Command:"execute @e[type=area_effect_cloud,tag=maze_start] ~ ~ ~ blockdata ~ ~ ~ {auto:1b}"},{id:commandblock_minecart,Command:"setblock ~ ~1 ~ command_block 0 replace {auto:1b,Command:"fill ~ ~ ~ ~ ~-2 ~ air"}"},{id:commandblock_minecart,Command:"kill @e[type=commandblock_minecart,r=1]"}]}]}
首先我表達我個人的一個觀點,你為什麼要設置迷宮,什麼時候需要設置迷宮,迷宮如何不讓玩家感到厭煩。
首先,不知道你是製作什麼類型的地圖,不同類型的地圖迷宮的目的都不一樣,但是總的來說,是為了讓玩家能夠自己主動去探索一些地方。所以說,我認為樓主應該先說清楚你是什麼類型的地圖,需要設置到迷宮。
迷宮需要死胡同嗎?需要,太需要,不然就不叫迷宮了,那只是比較繞的路而已。但是,如何平衡好死胡同給玩家帶來的挫敗感呢?我認為有以下方法:
如果是RPG類遊戲,在死胡同處放一些有價值的道具,這至少能讓玩家覺得這趟路雖然是錯的,但是不至於太虧。
不可離分支路線太遠。儘可能的減少玩家在死胡同的時間,能夠儘快回到正道上。有些RPG遊戲是進死胡同後能夠快速回到起點(比如仙劍3的土靈珠能直接回到起點)。
有明確的標識,迷宮的目的是讓玩家能夠更多的探索,以及進行一些簡單的解密,切勿太過,讓玩家毫無頭緒等。場景重複度盡量要低,不要太過重複,並且在一些關鍵線路有明確的標識(可以是腳本設計讓一些方塊破壞或者出現,比如仙劍3草海的迷宮會出現很多石頭斷你後路的情況,能加深玩家的印象),讓玩家不至於完全沒有解密的頭緒。
迷宮的設計可以是多樣的,比如先跑到A處開了機關才能去B處,以及迷宮裡可以有各種有趣的小遊戲互動,讓玩家在探索迷宮的時候不至於太過無聊,那麼,你迷宮就設計得很成功了。
當然,不同的遊戲的迷宮概念也不一樣,這個看你具體是啥類型的地圖,望樓主能夠提供更多細節。
更新:
說實話……這種迷宮是最基礎也是最無聊的一種,首先是場景過於狹窄,人在裡面呆久了會非常的不適,尤其是有幽閉恐懼症的玩家。
如果確實希望有這種迷宮,建議對道路進行加寬(三格左右),並且更換為更加友好的方塊,使顏色看起來不這麼單調。當然,也請勿使用太多顏色,不建議超過三種不同的顏色。我個人推薦使用樹葉來進行搭配,看起來效果會好很多。
既然你的目的是希望多困住他們的話,陷阱是肯定必須要有的,甚至可以加上少量的跑酷內容(比如TNT Run),只是不知道樓主是什麼類型的伺服器,是否有能力使用CB或者插件來恢復一些機關等。
【Minecraft里造迷宮的有什麼特別的技巧?】沈薇恩:如果有WE創世主插件的話, 就像這麼做: (上次20分鐘造了一個,做出來走了半小時都沒出去… https://www.zhihu.com/question/28695231/answer/43421637 (分享自知乎網)
(接上)
我的知乎回答:Minecraft里造迷宮的有什麼特別的技巧? 同受最高贊者啟發 再其基礎上又想了一個新花樣 [圖片] [圖片] [圖片] (ps:真想作弊,肯定也是… https://www.zhihu.com/question/28695231/answer/121511303百層的話聽起來挺有挑戰,不知道玩家會不會厭煩。發的過程不說了 搭好了如果看不清可以放水然後看整體哦(′?ω?`)
其實迷宮根本不存在難易的說法,困難的也無非是面積龐大,岔路繁多,只要永遠優先嘗試最左邊的路然後逐漸向右推總能走出去,所以困難的迷宮無非是逼迫你不停繞圈的,這種可以在有限的面積里讓人多走彎路
不過這麼單調的迷宮完全吸引不了人來玩,倒不如簡化迷宮,多放置幾個刷怪點說說自己建的迷宮吧,創造模式里大面積挨著種樹,特別是叢林木,樹可以長得很高,長在一起的就可以直接當牆了,個別的會中間長不起來,就會空出來!不過我覺得建之前要有個基本的框架設計!而且通道的距離要大一點,因為樹葉太多,兩邊都是圍起來的會顯得很有壓迫感,樹葉有的長得比較過分的,會擋住路(&>▽&<),然後還要自己清理!不過每條路都很魔性,迷宮中間設置了一個大的「自助」餐廳←_←,有各種吃的!還有展覽館,玻璃圈著各種怪物;還有賣各種魔法藥水的商店!好吧,つ﹏?我哈利波特中毒太深,貌似不太像迷宮,歡脫了點靈感來源於哈利波特,其實是受到到《哈利波特與火焰杯》里三強爭霸賽最後一關那個影響!後來帶親戚孩子玩這個,他們沿用了這個想法,成功地困住了我!反正我是沒走出來…
三分鐘後罵作者系列
或者加點刷怪的內容?
推薦閱讀:
※關於我的世界盜版在中國盈利,且得不到管理,應該怎樣看待?
※如何評價《我的三體》第二季?
※如何評價《我的三體·羅輯傳》第三話(我的三體S2E3)?
※如何評價國內minecraft伺服器的質量?
※《我的世界》是否為開源項目?我能否用其引擎以及所創造的世界進行商用目的?比如建築教學等方面?
TAG:我的世界Minecraft | 迷宮 |