最後安全區

設定

基本設定

設定項目 預設值 最小值 最大值
隊伍數量 3 1 3
玩家數量 3 1 4
回合數 4 1 7
無限彈藥 true - -
無限凝膠護盾 false - -
無限投擲物 false - -

雖可修改上述數值,但若超過最大值或低於最小值,可能導致部分介面與邏輯功能失效。

調整地圖位置

欲將地圖移至新位置,需將下列關卡物件移動至其他地點。預設位置位於Katulistiwa。
katulistiwa-location

只需將這些關卡物件移至其他位置,即可移動整個地圖。

關卡物件 圖像 數量
安全區 safe-zone 1
出生點與販賣機 出生點與販賣機 每隊1個

此外,可在此處修改介面顯示的區域名稱:
區域名稱顯示介面

可透過 屬性設置 -> 總體規則 -> LocationName 調整
change-location-name

安全區域設定

安全區域分為兩階段:

  1. 首次縮減將持續特定時間,邊界中心位置固定不變
  2. 第二階段從首階段中心點移轉至新中心點,同時將當前半徑縮減至0。

第一階段安全區域

此階段安全區域的多數設定可透過安全區關卡物件調整。
安全區域第一階段設定

下列設定可於特定限制下調整:

| 屬性 | 預設值 | 最小值 | 最大值 |
| -------------------- | ------------- | --------- | ----------------------- – |
| 起始半徑 | 35.00 | - | - |
| 終止半徑 | 15.00 | - | - |
| 起始時間(秒) | 0 | - | 短於地圖時長 |
| 起始縮減時間(秒) | 5 | - | 短於地圖時長 |
| 縮減持續時間(秒) | 30 | - | 少於地圖持續時間 |
| 內部傷害(s) | 2 | - | - |
| 傷害 | 20 | - | - |
| 結束時間(s) | 40 | - | 少於地圖持續時間 |

若起始時間或結束時間設定為大於或等於地圖持續時間,安全區的第二階段將不存在。

第二階段安全區

所有第二階段安全區屬性皆可透過「屬性設置」中的「總體規則」進行設定。可調整項目如下:

| 屬性 | 預設值 | 最小值 | 最大值 |
| ----------------- | ----------------- - | ---------------- | ------------------------ |
| SZMoveMin | Vector3{30, 0, 30} | Vector3{0, 0, 0} | - |
| SZMoveMax | Vector3{50, 0, 50} | Vector3{0, 0, 0} | - |
| SZMoveDuration(s) | 100 | 0 | 短於地圖持續時間 |
| SZDamage | 40 | 1 | - |

SZMoveMinSZMoveMax 決定安全區第二階段的中心位置。預設情況下,安全區中心將在 X 軸與 Z 軸上移動 30 至 50 單位。

SZMoveDuration 控制安全區移動與縮減的持續時間。

調整玩家裝備

玩家初始裝備

玩家初始裝備可於玩家腳本中修改,具體位置在 Configure 函式內

player-starting-equipment

投擲物數量

投擲物數量設定位於 屬性設定玩家規則 區塊。
可調整項目如下:

  • GlooWallNum:每回合凝膠護盾數量。
  • GrenadeNum:每回合手榴彈數量。
  • GlooMelterNum:每回合凝膠腐蝕手榴彈數量。
  • FlashFreezeNum:每回合冰凍手榴彈數量。
  • 吸入器數量:每回合呼吸器數量。
  • 醫療包數量:每回合急救包數量。
  • 超級醫療包數量:每回合超級急救包數量。

player-rules

調整玩家商店設定

預設情況下,所有模板中的販賣機皆使用同一商店。可透過以下流程調整商店內容:點擊更多,再點擊商店和經濟
access-shop-step-1-2

接著點擊此圖示進入商店編輯介面:
access-shop-step-3

進入此介面後即可進一步編輯當前商店。
access-shop-result

設定出生點隨機化流程

預設情況下,每回合開始時雙方隊伍的出生點位置皆會變動。此設定可透過遊戲實體元件進行切換。
toggle-spawn-randomization

隨機化池中的潛在出生點清單可於全局腳本的Configure函數中查閱。僅需在此函數中增刪已定義的出生點,即可變更可使用的出生點位置。
spawn-point-config-global-script

預設生成點清單包含 4 個位置,如下圖所示。
spawn-point-location

腳本說明

全局腳本

當回合開始時,會透過 Configure 函數進行一些設定。TeamAcedCnt(用來儲存本回合被淘汰的隊伍數)和 TeamWon(用來儲存本回合的勝利隊伍)都會被重置。此外,安全區域及其終點位置也會在此時透過 ResetBorderRandBorderEndLoc 函數更新。
global-on-round-start
在這個階段,所有的重生點都會被加入到一個清單中以便進行隨機打亂。這份清單可以被隊伍腳本用來在每回合開始時隨機化各隊伍的重生點。
global-configure-randomize-spawn
接著,RandBorderEndLoc 會執行其功能:
global-randborderendloc

  1. 從安全區的第一階段中取得所有必要屬性,接著計算安全區第二階段的終點位置。
  2. 該函數會等待第一階段結束後,再開始第二階段。
    在比賽進行中,當某個隊伍被淘汰時,遊戲會檢查是否所有隊伍都已被淘汰。此函數將更新 TeamWon 以供後續使用。同時也會更新獲勝隊伍的分數。
    global-on-team-ace
    global-check-end-round
    在重置邊界的過程中,會手動關閉上一回合的安全區,以確保從第二回合開始時不會產生兩個安全區。
    global-reset-border

團隊腳本

當回合開始時,會將儲存在全局腳本中的重生點清單進行隨機打亂。隨後,團隊腳本會使用這份已打亂的清單來決定各隊伍的玩家將被傳送到哪個重生點。
team-on-round-start
要切換此功能,請參閱設定教學。

玩家腳本

當玩家加入遊戲時,會執行以下函數以設定玩家:
player-on-awake
Configure 中,可以找到與玩家初始武器相關的設定。SetProperty 用於控制玩家屬性(生命值、被淘汰時掉落物品等)。顧名思義,PreloadEquipmentPreloadAccessory 會為遊戲模式預先加載必要的裝備(背包、武器等)。
當回合開始時,玩家的裝備會透過 ResetWeapon 被重置。ResetWeapon 函數會重置玩家的投擲物(手榴彈等)及消耗品(醫療包)。在此階段,遊戲狀態 UI 也會根據隊伍數量、玩家、玩家狀態及隊伍分數建立並更新。
player-on-round-start
當玩家被淘汰時,所有玩家都需要更新遊戲狀態 UI,以顯示各隊伍正確的剩餘玩家數。
player-on-player-eliminated
player-updateplayernum
UpdatePlayerNum 函數透過以下步驟更新各隊伍的玩家數量:

  1. 計算每個隊伍中仍存活的玩家數。
  2. 更新對應的 UI。
    這個函數也會在每個階段開始時更新,以確保玩家數量在整場比賽中維持正確。
    player-on-phase-start
    UI 的刪除是透過多種方式處理的。第一種是在玩家退出或比賽結束時;第二種是玩家中途退出;第三種是透過階段 ID 檢查遊戲是否結束。
    player-destroy-ui

HUD 腳本

MatchStatus 腳本

比賽狀態 UI 不依賴於玩家,但會自動更新自己,特別是計時器與地圖位置。這兩項任務會在每個階段開始時自動啟動,並在每階段結束時停止。
matchstatus-on-phase-start-end
當透過 SetLocation 設定位置時,地點名稱會直接從 管理元件 (Manage Component) 菜單的 遊戲實體 (Game Entity) 中取得。
matchstatus-set-location
計時器則是透過從階段實體中計算秒與分鐘的值,每秒為每位玩家更新。
matchstatus-starttimer