我是神行祭司
由於本身很長一段時間大概都不會再製作地圖
所以先以整理一些廢話為目標OAO
之後也許會不定期發類似的文章(前提是我不會太懶...)
這篇是先當試水溫
並且我只會發PVP地圖比較相關的東西
其他類型還請其他人去做說明
[地圖範例說明]的用意
是為了能讓某些剛開始製做地圖的製圖者能有地方可以參考
以"目標"來解釋我個人會為了達成目標使用的"過程"
從而讓新手製圖者能找到解決問題的辦法
當然也要先打預防針
這類文章不是唯一解決辦法或"正解"
最重要的還是個人的創造組合應變能力
並且底下文字會佔大多數
所以請做好準備再閱讀
橘色(單獨)是代表使用的指令方塊橘色或一般命令,沒特別說明都是平常不通電狀態
綠色(連鎖)是代表使用的指令方塊綠色,沒特別說明都是持續通電狀態
紫色(重覆)是代表使用的指令方塊紫色,沒特別說明都是平常不通電狀態
連接是代表這個指令方塊必須接在上一個指令方塊後面
有條件是代表這個指令方塊的條件選項為打開狀態,沒特別說明就是無條件狀態
-------------------------------------------------------------------------------------------
在PVP地圖當中
基本90%以上都會要在最一開始有一個分隊的地方
因為我們不太可能要玩家一進去就開始戰鬥
所以我們會先做一個大廳來讓玩家做分隊的動作
而在最一般的情況下我們普遍會分成兩隊
在這邊就假設最常見的紅隊/藍隊
以將玩家分成這兩隊為解說目標
而首先建立一個世界重生點
這個重生點必須要是露天的(也就是說直到天空都不能有其他東西)
/setworldspawn <x> <y> <z>
<x><y><z>填入需要的座標即可
<x><y><z>填入需要的座標即可
而如果我們要讓玩家從世界重生點重生時只能在那一格
/gamerule spawnRadius 0
改變遊戲數值讓重生距離為0
當然0這個數值能做修改
然後在世界重生點那格底下放置一個紫色指令方塊
持續通電紫色 /tp @a[r=5] <x> <y> <z>
這邊的xyz就是填入大廳的座標
把所有在世界重生點的玩家送至大廳
在這邊我們就完成讓剛加入的玩家重生在大廳的準備階段了
-------------------------------------------------------------------------------------------
我們要在戰鬥開始前
讓大廳裡的玩家分成兩邊隊伍
這時後指令方塊就很重要了
我們必須要先創立記分板隊伍假設叫Red和Blue(紅隊/藍隊)
/scoreboard teams add Red
/scoreboard teams add Blue
然後在大廳的左右兩側分別放置按鈕
如果玩家要加入紅隊
按下按鈕後連接到指令方塊
橘色 /scoreboard teams join Red @p[r=5]
連接 /tp @p[team=Red,r=6] <x> <y> <z>
這樣我們就能把最靠近的玩家加入隊伍Red
並且緊接著綠色指令方塊會把範圍5內的紅隊玩家傳送到指定地點
而這個地點一般會先設成紅隊所有玩家的準備室
而當然為了以防萬一
我們也能在準備室裡面設定一個按鈕讓玩家退出隊伍
橘色 /scoreboard teams leave @p[r=5]
連接 /tp @p[team=!Red,r=6] <x> <y> <z>
這邊代表我們先把玩家移出隊伍(Red)
然後將不是Red隊伍的玩家傳送到指定地點(例如大廳)
這樣就能讓玩家自由選擇隊伍了
-------------------------------------------------------------------------------------------
當玩家都選好隊伍後
我們就要讓玩家準備開始
通常我會讓兩邊隊伍分別有一個準備按鈕
當他們按下準備按鈕時
連接到指令方塊
橘色 /setblock <x> <y> <z> Redstone_block
這邊我通常會使用放置一個紅石磚
讓起使按鈕上面可能紅石燈之類的亮起來
玩家就會知道他們自己的隊伍準備好了
當然也可以用指令同時讓全部人都知道準備資訊
例如:
橘色 /setblock <x> <y> <z> Redstone_block
連接 /tellraw @a ["",{"text":"紅隊準備好了","color":"red","bold":true}]
這樣當他們按下按鈕後就會公告給所有玩家
-------------------------------------------------------------------------------------------
當我們兩隊都按下準備按鈕後
我們因為前面分別各放置了一個紅石磚
就能以紅石磚來當作偵測兩隊是否都準備好的依據
所以我們要利用以下
紫色持續通電 /testforblock <x> <y> <z> redstone_block (xyz填入紅隊放製的紅石磚座標)
有條件連接 /testforblock <x> <y> <z> redstone_block (xyz填入藍隊放製的紅石磚座標)
而在第二個綠色指令方塊後面連接比較器
這邊說明一下紫色指令方塊不斷偵測紅隊那位置是否有紅石磚(準備狀態)
而當偵測到後才會偵測綠色指令方塊的藍隊紅石磚
如果藍隊紅石磚也被偵測到就會輸出訊號(比較器)
而我們比較器就能連接讓戰鬥開始的一堆指令方塊
這就要看各位地圖需要而發揮了
最基本上就是例如連接到
橘色 /tp @a[team=Red] <x> <y> <z>
連接 /tp @a[team=Blue] <x> <y> <z>
來讓兩邊隊伍被tp到他們戰鬥場地上該站的位置
-------------------------------------------------------------------------------------------
進階說明
底下這區塊主要是針對一些可能較複雜或著難以簡單說明的東西
也有可能會新增一些人的詢問與回答
但由於不想浪費時間所以會以較直接的指令來做說明
-------------------------------------------------------------------------------------------
Q1:如果選擇隊伍我不想使用按鈕該怎麼辦?
A1:
那就選定一個區域例如座標x1,y1,z1
踩到上面的玩家會選擇進入Red隊伍
紫色 /scoreboard teams join Red @p[x1,y1,z1,r=1]
有條件連接 /tp @p[team=Red,x1,y1,z1,r=1] <x> <y> <z>
這樣只要進到針測範圍的玩家就會被自動加入紅隊並且傳送到準備室了
Q2:如果我不想用準備室但又想分隊?
A2:
那就直接在大廳放置一個區域或按鈕讓玩家加入隊伍
然後在正中央設立一個遊戲開始的按鈕
不過這有可能會造成有人一不小心按下去就開始的窘境
Q3:如果中途加入的玩家該怎麼辦?
A3:
如果是能中途加入的對戰類型
如果是能中途加入的對戰類型
在遊戲開始後通電底下兩個
紫色 /tp @p[team=Red,x1,y1,z1,r=?] <x> <y> <z>
紫色 /tp @p[team=Blue,x2,y2,z2,r=?] <x> <y> <z>
xyz分別是兩對伍的準備室座標
r的距離就看準備室的大小囉
以不會不小心傳送到已經在戰鬥場的玩家為前提即可
把進入準備室的玩家送到他們該在的地方
Q4:我想要讓所有人都離開紅隊/藍隊,但有人下線了怎麼辦?
A4:
最簡單的方法
把對伍刪除再創立就可以囉
橘色 /scoreboard teams remove Red
連接 /scoreboard teams remove Blue
連接 /scoreboard teams add Red
連接 /scoreboard teams add Blue
輕鬆讓對伍重置
Q5:世界重生點為什麼要遠離大廳?
A5:
因為世界重生點在玩家重生時
他會挑最高的位置重生
要是大廳有屋頂之類的便會讓玩家重生在大廳的屋頂而非內部...
不過如果大廳是沒屋頂狀態
那直接將世界重生點設定於大廳內要的位置即可~
也就省掉tp這一層過程囉~
待補
有任何問題歡迎詢問
如果我能回答我會盡量回答
太累的話可能就會晚點回答或請人代答...
-------------------------------------------------------------------------------------------
順便貼基本上沒在做地圖也不發文的放空粉絲頁OAO(所以大概也不用去按讚...)