腳本

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

腳本是一種純粹的文字文件,可以讓您在體驗中添加自訂、動態行為。您可以使用腳本來啟動遊戲事件、回應玩家輸入、儲存玩家資料、創建排行榜、生成敵人、控制 NPC 行為和很多其他內容。

路徑

Roblox 指令碼使用 Luau 程式語言,其語言來自 Lua 5.1

  • 相較於 Lua 5.1,Luau 增加了性能提升和許多有用的功能,包括可選的輸入系統、字串解析和一般化的重複對象。
  • 所有有效的 Lua 5.1 代碼都是 Luau 代碼,但相反是不是。

大多數書和網路資源對於 Lua 仍然適用於 Luau。對於語言語法,請參閱 <a href="https://developer.luau.com/forum/viewforum?id=1000000000000\&type=1\&forum=1000000000000\&id=1000000000000\&b=1000000000000\&t=1000000000000\&d=1000000000000\&r=100000000

Luau 基本概念

Luau 是隨機輸入的,因此您不需要指定類型,當您創建變量時。 您可以使用 type() 來檢查對象類型:


logMessage = "User has more than 10 items!"
print(logMessage) --> 使用者擁有超過 10 個項目!
print(type(logMessage)) --> string

Luau有全球和本地範圍,但通常來說會比較好在本地宣告變數和函數,但是會用local 字元來表示:


local logMessage = "User has more than 10 items!"
local function printMessage()
print(logMessage)
end
printMessage() --> User has more than 10 items!

Lua 使用 nil 代表不存在或不存在,這評估為 false 在條件式語句中:


local messageToUser
print(messageToUser) --> 零
print(type(message)) --> 零
if messageToUser then
-- 語句評估為 false
end

您可能已經注意到,-- 會啟用一條一行的留言。--[[]] 會創建一個區塊留言:


-- [[
Shuts off the cosmic moon ray immediately.
Should only be called within 15 minutes of midnight Mountain Standard
Time to avoid damage to the cosmic moon ray.
]]
local function stopCosmicMoonRay()
-- 稍後添加,這可能會變得很重要
end

桌子是用於表示陣列和字典的通用術語。陣列是基於單的,而不是零的,因此第一個項目是 [1]。 您用單個套裝來宣告陣列和字典:


local myArray = {"chips", "sparkling water", "salsa"}
local myDictionary = {
snack = "chips",
drink = "sparkling water",
dip = "salsa"
}
print(myArray[1]) --> 晶片
print(myDictionary.dip) --> salsa

您可以使用 for 循環使用 ipairs() 函數對陣和 pairs() 對典型,但 Luau 也允許您省略這些函數以獲得更清潔的語法:


for index, value in ipairs(myArray) do -- 標準 Lua
print(index, value)
end
for key, value in pairs(myDictionary) do -- 標準 Lua
print(key, value)
end
for key, value in myDictionary do -- Luau 一般化回合
print(key, value)
end

您的第一個脚本

  1. 在 Roblox Studio 中,將鼠標指针指向 ServerScriptServiceExplorer 窗口中,然後單擊 +

  2. 選擇 指令碼 以新增指令碼。

  3. 右鍵點擊腳本並將其重命名為 HelloScript

  4. 雙擊腳本以在 腳本編輯器 中打開。

  5. 將以下代碼添加到檔案:


    local helloArray = {"h", "e", "l", "l", "o"}
    local worldArray = {"w", "o", "r", "l", "d"}
    for index, value in helloArray do
    print(value)
    end
    print(table.concat(worldArray))
  6. 確保 輸出 窗口打開。

  7. 點擊 播放 以執行您的體驗。

  8. 注意輸出:


    h
    e
    l (x2)
    o
    world

感舒

適應新發展環境的重要部分是將它設置,以符合您的需求,並了解您擁有的工具:

  • 程式編輯器 區塊的 Studio 設定 讓您調整字體、顏色、間隔、自動完成、括號和工具提示的品質。您可能也想要在 Studio 區塊中啟用黑暗模式。
  • 按住 CtrlCommand 並點擊一個函數或變量會帶你到其在代碼資料庫 (或在線上文件資料庫) 中的宣告。使用 尋找並尋找所有項目 可以幫助您瀏覽更大的項目。
  • 輸出窗口是最基本的工具來了解您的腳本的行為。使用 選單啟用 顯示上下文 和1>顯示來源1>。
  • 指令分析 視窗顯示錯誤和警告的總結,但您可能會發現它的工具限制;指令編輯器 已將這些問題已提示您輸入時。
  • 記錄功能是最小的,沒有像 DEBUGFATAL 的概念。使用 print() 和 1> Global.RobloxGlobals.warn()1>。

有關配置 Studio 以進行指令碼化的更多資訊,請參閱 編程工作室。對於使用您最喜歡的文字編輯器和版本控制系統的資訊,請參閱 外部工具。

您的第二個脚本

  1. 在 Roblox Studio 中,將一個指令碼添加到 ReplicatedStorageExplorer 窗口中,並將其重命名為 OhNo

  2. 將以下代碼添加到檔案:


    print("Hello script types and locations!")
  3. 點擊 播放 以執行您的體驗。

  4. 注意輸出與您執行您的第一個指令相同。

要了解為什麼指令碼沒有執行,請參閱 指令碼類型和位置