
地圖簡介
Myconsole(Re-Editable)是Free Fire CraftLand編輯器預置的官方玩法模板之一,為開發者提供可重複創建的基礎玩法功能藍本,主要包含地圖場景、規則設定、UI界面與圖元腳本四大部分
在本模板中,您可以體驗並學習核心玩法——透過開啟已設計好的HUD介面並與之互動、來調整局內玩家各身體部位的比例或創建/銷毀隨機地形——的編輯方法
同時,您也可以快速掌握並深入學習遊戲中其他常見的互動機制,包括與針對特定玩家執行事件、傳送玩家到指定位置、顯示自訂文字等常用腳本邏輯,並在此基礎上進行拓展與二次編輯,進一步創造屬於自己的作品
地圖場景
首先介紹場景設計,整體場地使用預設的50*50冠軍島,所有玩家處於同一支隊伍,在進入遊戲後將出生在地圖的一側(下圖1紅框內),並可以在商店(下圖2紅框內)自由購買道具,然後進行核心玩法的體驗

圖1

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

功能相關
規則
關於玩法規則的構建,需要點擊設定-玩法設定-玩法規則編輯
*注意:此處隊伍數已設定為1,即玩家都處於同一支隊伍,局內將不會發生PVP,而是以體驗玩法與機制為主

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

經濟
- 編輯商店:用於決定玩家可在特定位置透過消費代幣取得的道具及其價格


使用者互動介面
關於使用者互動介面的構建,需要點擊更多-自定HUD

您可以在此編輯玩家在局內可互動的自訂HUD介面,並可跳轉進行對應的腳本設計
目前範本的自訂HUD介面控制項主要包括「Myconsole」能進行特定操作的按鈕以及觸發操作後顯示相關資訊的面板
關於特定控件的編輯,需要點擊編輯佈局-在左側列表中選擇想要編輯的控件


您可以在此處對特定控制項的各項屬性進行調整,例如:尺寸、位置、旋轉角度、可見度、透明度、顏色、顯示內容等
關於每個特定控制項的功能與實作方式將在圖元-HUD腳本詳細介紹
跳轉對應圖元腳本設計:
點選編輯腳本-跳到HUD腳本編輯介面

局內HUD介面總覽:


其中主要控制項包括:
MyConsole:(常駐)用於開啟/關閉該自訂HUD介面
1:切換到調整局內玩家身材比例的介面
u200b prev player:選擇上一位玩家,使後續big-/mini-/reset操作作用於該玩家
u200b next player:選擇下一位玩家,使後續big-/mini-/reset操作作用於該玩家
u200b big head:使選擇的玩家頭部尺寸增大
u200b mini head:使選擇的玩家頭部尺寸縮小
u200b big foot:使選擇的玩家足部尺寸增大
u200b mini foot:使選擇的玩家足部尺寸縮小
u200b big hand:使選擇的玩家手部尺寸增大
u200b mini hand:使選擇的玩家手部尺寸縮小
u200b reset:使選擇的玩家身體各部位尺寸重設為預設
2:切換到創建/銷毀隨機地形的介面
u200b create terrain1:建立隨機地形
u200b teleport:傳送玩家到設定位置
u200b clear terrain:銷毀已建立的地形
資訊顯示面板:顯示玩家按下上述按鈕後的相關回饋和提示文字
圖元
更多的玩法規則需要用到圖元編輯器,開啟方式是:
點選更多-圖元腳本,然後在介面右上角選擇具體想要編輯的腳本


本版塊主要介紹「Myconsole」這個核心玩法以及其他具體規則基於腳本的實作方式
您可以在此編輯具體腳本並調整相關數值
對於需要針對了解的腳本功能,您可以點擊特定的腳本來進行查看
HUD腳本
總覽:




核心玩法
- 首先是用於切換介面的按鈕MyConsole、1&2,由於核心玩法包括了多項功能,因此需要分類在兩個頁面中進行交互,這樣也可以使用戶感到更加清晰、有秩序感;下面是具體的腳本實現方式:
區域1-2
MyConsole:切換整個自訂HUD介面(除了該按鈕)的顯示/隱藏
1:切換到調整局內玩家各身體部位比例的自訂HUD介面,隱藏按鈕2開啟的介面,使按鈕「1」顏色高亮、按鈕「2」顏色恢復正常,呼叫「loginfo」函數顯示「player body modification menu」文本
2:切換到創建/銷毀隨機地形、傳送玩家的自定義HUD界面,隱藏按鈕1打開的界面,使按鈕“2”顏色高亮、按鈕“1”顏色恢復正常,調用“loginfo”函數顯示“terrain creation menu”文本
64-7
- 下面來到介面1,其中按鈕next player/prev player用於選擇局內的玩家,big-/mini-/reset用於調整其各身體部位的比例;下面是具體的腳本實現方式:
區域1-3、1-4
本區域的腳本展示了在玩家點擊按鈕next player/prev player後使後續事件作用於隊伍內下一名玩家/前一名玩家,並使自訂HUD介面顯示相關資訊的實現方式
- 設定索引向後/向前1名玩家,若索引數量超過玩家總數,則循環選擇到第一名/最後一名玩家
- 設定臨時變數(記錄為msg)等於左值「selected=」和右值「索引數量的值」的字串連接
- 設定該臨時變數的字串右側依序連接:“player=”;“目前索引的玩家的名稱”;“UID=”;“目前索引的玩家的UID”
- 呼叫“loginfo”函數顯示該臨時變數所包含的文本
區域1-5、1-6
本區域的腳本展示了在玩家點擊big head/mini head後觸發當前選定玩家角色的頭尺寸變大/小,並使自訂HUD介面顯示相關資訊的實現方式
- 設定臨時變數(記錄為selected_player)等於目前索引的玩家
- 設定臨時變數(記錄為head)等於目前索引的玩家角色的頭部
- 設定臨時變數(記錄為ori_scale)等於基於臨時變數“head”的骨骼縮放
- 設定臨時變數「head」新的值等於基於臨時變數「ori_scale」的骨骼在XYZ軸各方向上縮放增加/減少0.1倍
- 設定臨時變數(記錄為msg)等於左值「player=」和右值「目前索引的玩家的名稱」的字串連接
- 設定該臨時變數的字串右側依序連接:“UID=”;“目前索引的玩家的UID”;“head scale=”;“臨時變數‘head’的骨骼縮放的值”
- 呼叫「loginfo」函數顯示該臨時變數所包含的文本
區域1-7、1-8
本區域的腳本展示了在玩家點擊mini foot/big foot後觸發當前選定玩家角色的足部尺寸變小/大,並使自訂HUD介面顯示相關資訊的實作方式
—相關腳本內容詳見區域1-5、1-6,改變內容為:將臨時變數“head”更改為“left_foot”和“right_foot”;將臨時變數“msg”中的“head scale”更改為“foot scale”
區域1-9、1-10
本區域的腳本展示了在玩家點擊big hand/mini hand後觸發當前選定玩家角色的手部尺寸變大/小,並使自訂HUD介面顯示相關資訊的實作方式
—相關腳本內容詳見區域1-5、1-6,變更內容為:將臨時變數“head”改為“left_hand和“right_hand”;將臨時變數“msg”中的“head scale”改為“hand scale”
區域1-11
本區域的腳本展示了在玩家點擊reset後觸發當前選定玩家角色的所有身體部位尺寸重置為默認,並使自定義HUD界面顯示相關信息的實現方式
- 設定臨時變數(記錄為selected_player)等於目前索引的玩家
- 依序設定臨時變數(記錄為lf、rf、lh、rh、head)等於目前索引的玩家角色的骨骼的左腳、右腳、左手、右手、頭部,並設定以上骨骼的縮放在XYZ軸各方向上均等於1
- 設定臨時變數(記錄為msg)等於左值「reset scale player=」和右值「目前索引的玩家的名稱」的字串連接
- 呼叫“loginfo”函數顯示該臨時變數所包含的文本
- 下面來到介面2,其中按鈕teleport用於傳送玩家到指定的位置,create terrain1/clear terrain用於創建/銷毀隨機地形;下面是具體的腳本實現方式:
區域1-12
本區域的腳本展示了在玩家點擊teleport後觸發將當前玩家角色傳送到設定位置的實現方式
- 傳送玩家到座標位置XYZ=(0,30,0)、旋轉歐拉角XYZ=(0,0,0)
- 呼叫“loginfo”函數顯示“teleport player”文本
區域1-13
本區域的腳本展示了在玩家點擊clear terrain後觸發將現存透過「我的控制台」創建的地形清除,並使自訂HUD介面顯示相關資訊的實現方式
- 若「is_spawning」為假,則呼叫「loginfo」函式顯示「Running task, please stand by…」文本,設定「is_spawning」為真,索引資料容器為「terrain_blocks」的元素並銷毀該元素、等待1毫秒,然後將「terrain_blocks」資料清空資料,呼叫「rain」 completed”文本,設定“is_spawning”為假
- 否則呼叫「loginfo」函式顯示「System is busy now, please wait for current task」文本,等待2秒,然後若「is_spawning」為真,則呼叫「loginfo」函式顯示「Running task, please stand by…」文本
區域1-14
本區域的腳本展示了在玩家點擊create terrain1後觸發創建隨機地形,並使自訂HUD介面顯示相關資訊的實現方式
- 若「is_spawning」為假,則呼叫「loginfo」函數顯示「Running task, please stand by…」文本,設定「is_spawning」為真,索引資料容器為「terrain_blocks」的所有元素並銷毀該元素、等待1毫秒,然後清除「資料terrain_blocks」清空資料
- 設定臨時變數(記錄為offset)等於三維向量XYZ=(0~999999,30,0~999999)
- 設定臨時變數(記錄為pos0)等於三維向量XYZ=(x,0,z)
- 設定臨時變數(記錄為h)等於浮點數、值透過呼叫「terrain1」函數來確定
- 設定向量“pos0”的Y向量分量值“h”
- 呼叫“creat_block”函數建立地形
- 呼叫「loginfo」函數顯示「Terrain creating task is completed」文本,設定「is_spawning」為假
- 否則呼叫「loginfo」函式顯示「System is busy now, please wait for current task」文本,等待2秒,然後若「is_spawning」為真,則呼叫「loginfo」函式顯示「Running task, please stand by…」文本
補充規則
- 此處內容主要包括以下部分:
- 多個封裝的函數:「loginfo」函數用於將文字顯示在HUD控制項上;「create_block」函數用於建立地形實體;「terrain1」函數及其他函數則用於協同模擬演算法實現產生地形的隨機性
- 3個事件:定義變數用於判斷事件的執行情況,將玩家追加到/刪除從「全體玩家」清單中用於供按鈕next player/prev player依序選擇玩家
區域2-1
“loginfo”函數
使實體“Myconsole”的UI標籤控制項的內容等於“msg”
“terrain1”函數
透過設定臨時變數“vec2”和“r”並使用模擬柏林噪音演算法計算出創建地形的隨機狀態

區域2-2
本區域的「perlin_noise」函數用於模擬柏林噪音演算法

區域2-3
“create_block”函數
- 根據先前計算的向量「pos」的位置建立物件可破壞的木箱
- 設定臨時變數(記錄為scale)
- 設定“obj”關卡物件的本機縮放小屬性的值等於臨時變數“scale”
- 將「obj」追加到清單「terrain_blocks」中
“hash”函數
用於模擬雜湊函數

區域2-4
本區域的函數用於輔助區域2-2、區域2-3完成模擬對應演算法/函數

區域1-1
- 使4項自訂變數「is_spawning」「select_index」「terrain_blocks」「all_players」被設定為對應的值
- 當玩家加入/退出遊戲時,將該名玩家追加到/刪除從“全體玩家”

附:此腳本下需要使用到的自訂變數與函數,您可以點選變數與函數進行檢視與管理:
玩家腳本
- 為了玩家可以流暢體驗核心玩法,需要做出以下設定:使玩家介面顯示編輯好的自訂HUD、允許玩家更加自由地跳躍移動、玩家被擊殺後直接死亡且可快速復活以及復活在設定位置;下面是具體的腳本實現方式:
- 為玩家建立索引為「MyConsole」的自訂HUD
- 使玩家「跳躍高度縮放比」屬性的值為:5
- 使玩家「擊倒設定」屬性的值為:跳過擊倒
- 當玩家被擊殺時,等待1秒,將玩家傳送到設定的位置,並在下一幀復活

復活點腳本
- 在玩家進入局內開始體驗核心玩法後,復活點就成為了無功能組件,同時可能會影響到玩家的活動體驗,因此需要銷毀
回合開始時,銷毀此實體

以上就是這個範本功能的全部介紹,您可以點擊試玩進行遊玩和測試。也可以嘗試擴展更多的玩法到這個基礎模板裡,做出屬於您自己的有趣的地圖!
二次編輯建議
- 透過調整特定腳本內的數值,設定更誇張的玩家角色身材比例變化、創建隨機地形時的可能形狀,以增加遊戲的戲劇性
- 搭配玩家角色身材比例變化機制,加入PVP戰鬥玩法
- 豐富或深化控制台的功能,探索並實現玩家角色模型/地形的進一步調整