
地圖簡介
Game Mechanics(Re-Editable)是Free Fire CraftLand編輯器預置的官方玩法模板之一,為開發者提供可重複創建的基礎玩法功能藍本,主要包含地圖場景、規則設置與圖元腳本三大部分。
在本模板中,您可以體驗並學習核心玩法——通過與已設計好邏輯的各式機關交互並體驗其反饋——的編輯方法。
同時,您也可以快速掌握並深入學習遊戲中其他常見的交互機制,包括啟動自定義觸發器、增加/減少玩家的生命值、生成怪物(殭屍)、移動物件、傳送玩家到指定位置、顯示自定義文本、更換角色外觀、與自定義HUD界面交互等常用腳本邏輯,並在此基礎上進行拓展與二次編輯,進一步創造屬於自己的作品。
地圖場景
首先介紹場景設計,整體場地基於默認的空白場景、簡單搭建了方形封閉場地,並在其中分散搭建了可交互的機關(下圖上方紅框內);玩家可以分散在三支隊伍中,在進入遊戲後將出生在地圖的一側(下圖下方紅框內)、自由進行核心玩法的體驗。

除了直接在場景內對物件進行快速調整,您還可以通過點擊更多-物件管理器對場景內物件進行整體管理。

功能相關
規則
關於玩法規則的構建,需要點擊 設定-玩法設置-玩法規則編輯

您可以在此處編輯針對該張模板的詳細規則,包括:模式、屬性設置、經濟與相機。
當前模板的規則設置主要在以下位置和默認設置有區別:模式與經濟,下面將列出具體不同的規則條目。
模式
回合設定:用於設定回合相關的參數。
隊伍設定:用於決定單局遊玩玩家數量、可分配到的隊伍數量以及能使遊戲開始的最小玩家數量。

經濟
編輯商店:用於決定玩家可在特定位置通過消費代幣獲取的道具及其價格。
注意:由於當前模板的核心玩法以機關體驗為主,因此並未設置 自動販賣機,如有需要可以從物件庫中拖入場景並創建。


用戶交互界面
關於自定義 UI 的構建,需要點擊 更多-自定HUD

您可以在此處編輯玩家在局內可交互的自定義 HUD 界面,並可跳轉進行相應的腳本設計。
當前模板的自定義 HUD 界面僅為 按鈕門 機關服務。
關於具體控件的編輯,需要點擊 編輯布局 → 在左側列表中選擇想要編輯的控件。


您可以在此處對具體控件的各項屬性進行調整,如:尺寸、位置、旋轉角度、可見性、透明度、顏色、顯示內容等。
跳轉對應圖元腳本設計:
點擊 編輯腳本 → 跳轉到 HUD 腳本編輯界面,具體的腳本製作方式會在下文中詳細介紹。

局內 HUD 界面總覽:(當玩家角色進入 按鈕門 的自定義觸發器範圍內時自動顯示)

該按鈕用於控制 按鈕門 機關中門的開啟/關閉。
圖元
更多的玩法規則需要用到圖元編輯器,打開方式是:
點擊 更多-圖元腳本,然後在界面右上角選擇具體想要編輯的腳本。


本版塊主要介紹 “Game Mechanics” 這一核心玩法以及其他具體規則基於腳本的實現方式。
您可以在此處編輯具體腳本並調整相關數值。
對於需要重點了解的腳本功能,您可以通過點擊具體的腳本來進行查看。
自定義觸發器腳本
本部分將針對各機關逐一介紹效果與腳本內容
序號 | 案例機關名稱 |
---|---|
① | 治療區域 |
② | 傷害區域 |
③ | 怪物生成區域 |
④ | 陷阱區域 |
⑤ | 傳送區域 |
⑥ | 文本展示區域 |
⑦ | 換裝區域 |
⑧ | 升降電梯 |
⑨ | 自動門 |
⑩ | 按鈕門 |
治療區域

- 玩家角色進入後以每秒 15 的速度持續恢復生命值,同時在角色身上播放治療特效
總覽:
- 該機關的核心功能——治療玩家(使玩家的生命值增加)——被封裝為以下函數,可以對進入該機關的每一位符合條件的玩家執行;下面是具體的腳本實現方式:
區域2-3
“Updatetreat” 函數
- 若 “ListOfTreat” 長度>0,若遊戲時間 - 自定義變數 “LastUpDateTime” 的結果大於 1000,則設置 “LastUpDateTime” = 遊戲時間
- 索引資料容器 “ListOfTreat” 的元素 “Player”,若玩家當前血量<該玩家最大血量,則增加該玩家 15 血量

- 在玩家受到治療時,也通過特效的視覺反饋提醒玩家該功能正在發生中,此功能也被封裝為以下函數;下面是具體的腳本實現方式:
區域2-2
“CreateEffects” 函數
- 將玩家追加到列表 “ListOfTreat”
- 在玩家身上創建上升氣流特效,循環類型=循環,即刻播放=真,返回 “SpecialEffect”
- 將 “SpecialEffect” 插入列表 “SpecialEffect” 中,索引為其在玩家處最先出現的位置
- 創建 “SpecialEffect” 對玩家的目標跟隨,XYZ 軸方向均無偏移,無參考座標系並即刻播放,返回 “Tween”
- 設置 “SpecialEffect” 顏色=綠色
- 設置 “SpecialEffect” 特效縮放率 = XYZ 軸各方向 0.5 倍
- 將 “Tween” 插入列表 “Tween” 中索引為其在玩家處最先出現的位置

- 此處腳本主要包括:定義變數確定事件的執行時機、對進入/離開機關的玩家做相應處理、適時調用函數
區域2-1
- 當階段開始時,使自定義變數 “LastUpDateTime” = 遊戲時間
- 當玩家角色進入該自定義觸發器時,調用 “CreateEffects” 函數
- 當玩家角色離開該觸發器時,批量銷毀&刪除目標的值(部分需要通過列表索引)
- 當更新時,調用 “Updatetreat” 函數

附:該腳本下需要用到的自定義變數與函數,可以點擊 變數 與 函數 查看和管理
傷害區域

- 玩家角色進入後以每秒 15 的速度持續失去生命值
總覽:
- 該機關的核心功能——傷害玩家(使玩家生命值減少)——被封裝為以下函數,可以對進入該機關的每位符合條件玩家執行;下面是具體腳本實現:
區域3-2
“UpdateInjure” 函數
- 若 “ListOfInjure” 長度>0
- 若遊戲時間 - 自定義變數 “LastUpDateTime” 結果>1000,則設置 “LastUpDateTime” = 遊戲時間,索引資料容器 “ListOfInjure” 的元素 “Player”
- 若玩家當前血量≠0,則對該玩家造成 15 傷害

- 此處內容:定義變數用於確定事件時機、進入/離開機關處理、適時調用函數
區域3-1
- 當階段開始時,設置 “LastUpDateTime” = 遊戲時間
- 當玩家角色進入/離開觸發器,將玩家追加至/刪除出 “ListOfInjure”
- 當更新時調用 “UpdateInjure” 函數

附:該腳本下需用到的自定義變數與函數,可通過 變數、函數 進行管理
怪物生成區域

- 玩家角色進入時在該區域附近生成一隻殭屍
- 核心功能——生成殭屍——可被進入者觸發,並生成相應音效;具體腳本如下:
- 當玩家角色進入該自定義觸發器時,在座標 XYZ= (玩家X-2, 玩家Y, 玩家Z-2),創建一隻 自動索敵=真、行為類型=被動、無路徑 的普通殭屍
- 創建無目標的音效,循環類型=一次,立即播放=真

陷阱區域


- 玩家角色進入時頭頂的陷阱籠子會掉落,將玩家困在該區域
- 陷阱籠子掉落後將顯示 10 秒倒計時,並於倒計時結束後恢復陷阱
總覽:
- 該機關的核心功能——陷阱籠子掉落並困住玩家——被封裝為以下函數,可對進入機關的玩家執行。
- 同時,該機關的初始化也被封裝為函數,內容包括:統一編組陷阱物件、提前隱藏倒計時文本等。
區域4-2
“TrapFalls” 函數
- 若 “TrapState” 為真,索引資料容器 “Trap” 中元素 “Trap”,使關卡物件 “Trap” 移動到 XYZ=(TrapX, TrapY-2, TrapZ)
- 設置 “TrapState” 為假
“Initialization” 函數
- 將 “Iron Fence1-4” 追加至 “Trap”
- 設置 “TrapTime” 為真
- 在 XYZ=(BlockX, BlockY+3, BlockZ)建立文本物件,返回 “Text”
- 設置變數 “Time” = “Text”
- 設置 Text 位置 XYZ=(BlockX, BlockY+3, BlockZ)
- 設置 Text 內容 = “10”
- 設置 Text 縮放為 XYZ 軸方向 0

區域4-3
“UpdateInjure” 函數
- 若 TrapState=假,且遊戲時間-LastUpDateTime>1000,則更新 LastUpDateTime,將 “Time” 轉換為整數 Result,並設置 “Time” 內容為 Result-1
- 若 Time=0,則隱藏文本、重置為10,呼叫 TrapRecovery 函數,並設 TrapState=真

區域4-4
- 若 TrapState=假,索引容器 “Trap” 的元素 “Each”,使其上升 Y+2
- 設置 “Time” 縮放倍率 = 2

區域4-1
- 遊戲開始 → 調用 Initialization 函數
- 玩家進入觸發器 → 等待0.3秒 → 調用 “TrapFalls” 與 “CountDown” 函數
- 更新時 → 調用 “UpdateInjure”

附:使用到的自定義變數與函數
傳送區域


- 玩家角色進入後顯示 3 秒倒計時,並播放傳送特效
- 倒計時結束後將玩家傳送至指定座標
總覽:
區域5-2
“MyUpdate” 函數
- 檢測玩家狀態,若狀態=1,則計算停留時間與倒計時。
- 若倒計時仍大於0,更新 Text 顯示;否則將玩家傳送至 TeleportTar+2 的位置。

區域5-3
“InitPlayerData” 函數
- 將玩家追加至清單,並建立 TextEntity 與火花 VisualEffect 特效,分別跟隨玩家並加入列表。

區域5-4
“ReadyToTeleport” 函數
- 設定玩家的 State=1,記錄進入時間,顯示倒計時文本與特效。

區域5-5
“AbortTeleport” 函數
- 重置玩家狀態並隱藏倒計時與特效。

區域5-1
- 循環每0.2秒調用 MyUpdate
- 玩家進入 → 初始化數據 → ReadyToTeleport
- 玩家離開 → AbortTeleport

附:使用到的自定義變數與函數
文本顯示區域

- 玩家角色進入時,顯示 “HelloWorld” 文本
- 玩家角色離開時,關閉該文本
- 功能核心:顯示或關閉 HelloWorld 文本,被封裝為 CreateTips/DeleteTips 函數。
腳本:
- 玩家進入/離開觸發器 → 在 ListOfPlayer 中增減玩家
- 在 “CueArea” 位置呼叫 CreateTips 或 DeleteTips
“CreateTips” 函數
- 在 (LocationX, LocationY+2, LocationZ) 創建文本物件
- 設置內容 = “Hello World”
“DeleteTips” 函數
- 若玩家列表長度 ≤0,則銷毀文本

附:需用到的變數與函數
換裝區域

- 玩家角色進入時,根據角色性別改變對應造型。
- 核心功能:為玩家更換相應性別的服飾,可被每位進入者觸發。
實現方式:
- 遊戲開始時,將套裝追加到 “Women’sWardrobe” 與 “Men’sWardrobe”
- 玩家進入觸發器時,若性別=2,則打亂 “Men’sWardrobe” 並設定其套裝;否則打亂 “Women’sWardrobe” 並使用。

附:此腳本需用到的自定義變數,可通過 變數 查看
升降電梯

- 玩家進入電梯 → 電梯緩緩上升,直至最高點
- 玩家離開電梯 → 電梯緩緩下降,直至初始位置
總覽:
- 功能核心:使電梯在玩家進入時上升、離開時下降,被封裝為以下函數:
區域6-2、6-3
“CreateAnElevator” 函數
- 設定變數 “ElevatorsLocation” 為 Elevator 位置
- 當 “PlayerList” 長度>0 → 循環 0.5 秒,逐步 Y+0.2 → 更新位置,直到長度≤0 或 Mark≥20
“DescendElevator” 函數
- 當 “PlayerList”=0 → 循環 0.5 秒,逐步 Y-0.2 → 更新位置,直到有人進入或 Y≤2.8


區域6-1
- 玩家進入 → 加入 PlayerList,調用 “CreateAnElevator”
- 玩家離開 → 移除 PlayerList,若空則調用 “DescendElevator”
- 遊戲開始 → 設置 Elevator 為「High-Tech Platform A1」

附圖:用到的自定義變數與函數
自動門

- 玩家靠近門(進入觸發範圍) → 門自動打開
- 玩家遠離門(離開範圍) → 門自動關閉
總覽:
區域7-3、7-4
“OpenTheDoor” 函數
- 若 PlayerList≥0 且 Mark≤5 → 門每0.5秒往兩側逐步打開 → Mark+1
“CloseTheDoor” 函數
- 若 PlayerList=0 且 Mark≥0 → 門每0.5秒往內逐步關閉 → Mark-1


區域7-1、7-2
- 遊戲開始 → 設定 Mark=0
- 玩家進入/離開觸發範圍 → 等待到下一幀,更新 PlayerList,呼叫 Open/Close 函數


附:需用到的變數與函數
按鈕門


- 玩家靠近 → UI 顯示按鈕
- 點擊後開門,再次點擊後關門
- 玩家遠離 → 按鈕消失,門保持當前狀態
- 功能核心:門開關由玩家點擊觸發,封裝為函數
腳本:
- 玩家進入觸發器 → 設 HUD 可見=真
- 玩家進入遊戲 → 呼叫 CreateHUD 函數
- CreateHUD 函數:
- 對應玩家創建自定義 HUD 按鈕 → 插入 HudList → 默認隱藏
- 玩家離開觸發器 → 設 HUD 可見=假

附:使用到的變數與函數
全局腳本
- 為了精簡腳本內容、便於通過單一的變數判斷多個機關的運行狀態(如:機關⑧ 升降電梯 中電梯的運行時長、機關⑩ 按鈕門 中門的開關狀態),我們需要在全局腳本處設置一個變數(記錄為 Mark)。
- 當遊戲開始時,設置自定義變數 “Mark” = 0

附:該腳本下需要使用到的自定義變數,可以通過 變數 進行查看與管理。
玩家腳本
- 為了使玩家可以流暢體驗核心玩法,需要允許玩家在死亡後復活;下面是具體的腳本實現方式:
- 當玩家加入遊戲時,設置自定義變數 “DamageDetermina” = 假
- 當玩家被擊殺時,等待3秒,並在下一幀復活

附:該腳本下需要使用到的自定義變數,可以通過 變數 進行查看與管理。
HUD 腳本
總覽:
- 由於玩家點擊按鈕時會根據門當前的狀態觸發不同的行為,因此需要在此處檢測實體屬性與變數 Mark 的值,進而觸發對應函數;以下是腳本細節:
區域1-1
- 當按鈕
被點擊時,若物件 “Frozen Steel Panel A1” 的 X 軸位置≥2 且 Mark≠1 → 調用 CloseTheDoor 函數
- 否則 → 調用 OpenTheDoor 函數

區域1-2、1-3
“OpenTheDoor” 函數:
- 若 Mark=0,則 Mark=1
- 開始執行循環:等待0.5秒,物件沿 X 軸移動 0.2 → 直到 X≥2,設置 Mark=2 並中斷循環
“CloseTheDoor” 函數:
- 若 Mark=2,則 Mark=1
- 開始執行循環:等待0.5秒,物件沿 X 軸移動 -0.2 → 直到 X≤1,設置 Mark=0 並中斷循環


附:此腳本下需用到自定義函數,可通過 函數 進行查看與管理。
復活點腳本
- 在玩家進入局內開始體驗核心玩法後,復活點屬於無功能元件,可能會影響遊戲體驗,因此需要設為未激活狀態。
腳本:
- 當回合開始時,設置該實體的活動狀態 = 真
- 等待 2 秒
- 設置該實體的活動狀態 = 假

二次編輯建議
- 通過調整腳本值,設置更加誇張或隨機的機關行為,以增加遊戲戲劇性
- 搭配商店等機制,加入 PVP 對戰,使機關作為障礙的一部分
- 豐富或深化機關的功能,探索並實現更多腳本機制應用,進一步拓展樂趣