Skripte sind einfache Textdateien, mit denen du deinen Erlebnissen ein benutzerdefiniertes, dynamisches Verhalten hinzufügen kannst. Du kannst Skripte verwenden, um In-Game-Ereignisse zu triggern, auf Spieler-Eingaben zu reagieren, Spielerdaten zu speichern, Ranglisten zu erstellen, Feinde zu spawnen, NPC-Verhalten zu steuern und vieles mehr.
Luau
Roblox-Skripte verwenden die Luau-Programmiersprache, die abgeleitet von Lua 5.1 ist.
- Verglichen mit Lua 5.1 fügt Luau Leistungssteigerungen und viele nützliche Funktionen hinzu, darunter ein optionales Schreibsystem, eine Strings Interpolation und eine generalisierte Iteration für Tabellen.
- Alle gültigen Lua 5.1-Codes sind gültige Luau-Codes, aber das Gegenteil ist nicht wahr.
Die meisten Bücher und Online-Ressourcen für Lua sind immer noch breit anwendbar auf Luau. Für eine detaillierte Zusammenfassung der Unterschiede, siehe Kompatibilität in der Luau-Dokumentation. Für SprachSyntax, siehe die Luau-Referenz.
Luau-Grundlagen
Luau wird schrittweise geschrieben, so dass Sie beim Erstellen einer Variable nicht einen Typ angeben müssen. Sie können type() verwenden, um den Objekt eingebenzu überprüfen:
logMessage = "User has more than 10 items!"print(logMessage) --> Benutzer hat mehr als 10 Artikel!print(type(logMessage)) --> string
Luau hat globale und lokale Zielfernrohre, aber es ist fast immer besser, Variablen und Funktionen lokal mit dem local-Kennwort zu deklarieren:
local logMessage = "User has more than 10 items!"
local function printMessage()
print(logMessage)
end
printMessage() --> User has more than 10 items!
Lua verwendet nil , um Nichtexistenz oder Nichtigkeit zu repräsentieren, was als false in Bedingungenszwischenhaltern bewertet wird:
local messageToUserprint(messageToUser) --> nullprint(type(message)) --> nullif messageToUser then-- zwischenergebnis: falseend
Wie du vielleicht bemerkt hast, -- beginnt einen einzeiligen Kommentar posten. --[[]] erstellt einen Kommentar posten:
--[[
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()
-- füge dies später hinzu, es könnte wichtig sein
end
Tabelle(n) sind die Standardbezeichnung für Arrays und Dictionaries. Arrays sind ein-basis- statt zero-basis, sodass der erste Element ist [1] . Du erklärst Arrays und Dictionaries mit einer einzigen Reihe von Lockbalken:
local myArray = {"chips", "sparkling water", "salsa"}local myDictionary = {snack = "chips",drink = "sparkling water",dip = "salsa"}print(myArray[1]) --> chipsprint(myDictionary.dip) --> salsa
Du kannst Tabellen mit for Loops mit der ipairs() Funktion für Arrays und der pairs() Funktion für Dictionaries durchlaufen, aber Luau erlaubt dir auch, diese Funktionen für eine saubere Syntax zu überspringen:
for index, value in ipairs(myArray) do -- Standard-Luaprint(index, value)endfor key, value in pairs(myDictionary) do -- Standard-Luaprint(key, value)endfor key, value in myDictionary do -- Luau-Generalisierungprint(key, value)end
Ihr Erste Skript
In Roblox Studio, bewegen Sie den Mauszeiger über ServerScriptService in dem Explorer-Fenster und klicken Sie auf + .
Wähle Skript , um ein neues Skript, das. PL: die Skriptshinzuzufügen.
Klicken Sie mit der rechten Maustaste auf das Skript und benennen Sie es in HelloScript um.
Doppelklicken Sie auf das Skript, um es im Skript-Editor zu öffnen.
Füge den folgenden Code dem Datei hinzu:
local helloArray = {"h", "e", "l", "l", "o"}local worldArray = {"w", "o", "r", "l", "d"}for index, value in helloArray doprint(value)endprint(table.concat(worldArray))Stellen Sie sicher, dass das Ausgabe-Fenster geöffnet ist.
Klicken Sie auf Spielen , um Ihr Erlebnis zu starten.
Beachten Sie die Ausgabe:
hel (x2)oworld
Komfortable werden
Ein großer Teil der Anpassung an ein neues Entwicklungs-Umfeld ist es, ihn so zu konfigurieren, dass er deinen Anforderungen entspricht, und die Werkzeuge in deiner Verfügbarkeit zu verstehen:
- Der Skript-Editor-Bereich von Studio-Einstellungen lässt Sie die Qualität von Leben-Funktionen wie Schriftart, Farbe, Ausrichtung, Autovervollständigung, Brackets und Werkzeugtips anpassen. Sie möchten vielleicht auch den Dunkelmodus im 1>Studio1>-Bereich aktivieren.
- Das Halten von Ctrl oder Command und das Klicken auf eine Funktion oder Variable führt Sie in seine Erklärung in deiner Codebase (oder seiner Online-Dokumentation) zu. Wenn du Alle finden und finden verwendest, kann dies dir helfen, größere Projekte zu navigieren.
- Das Ausgabe-Fenster ist das grundlegendste Werkzeug, um das Verhalten Ihrer Skripte zu verstehen. Verwenden Sie das ⋯ -Menü, um Kontext anzeigen und 1> Quelle anzeigen1> zu aktivieren.
- Das Skript-Analysen-Fenster zeigt eine Zusammenfassung von Fehlern und Warnungen, aber Sie finden seine Utility begrenzt; der Skript-Editor betont bereits diese Probleme, wenn Sie eingeben.
- Die Log-Fähigkeiten sind minimal, mit keinem Konzept von Log-Ebenen wie DEBUG oder FATAL. Verwenden Sie print() und 1> Global.RobloxGlobals.warn() .
For more information about configuring Studio for Scripting, see Skript-Editor . For information on using your favorite text editor and version control system, see External Tools .
Dein zweites Skript
In Roblox Studio fügen Sie ein Skript zu ReplicatedStorage in das Explorer-Fenster und benennen Sie es zu OhNo um.
Füge den folgenden Code dem Datei hinzu:
print("Hello script types and locations!")Klicken Sie auf Spielen , um Ihr Erlebnis zu starten.
Beachten Sie, wie die Ausgabe nicht anders ist als, wenn Sie Ihr erstes Skript ausgeführt haben.
Um zu verstehen, warum das Skript nicht ausführenwurde, sehen Sie Skriptarten und Standorte.