Skripte sind einfache Textdateien, mit denen Sie benutzerdefiniertes, dynamisches Verhalten zu Ihren Spielen hinzufügen können. Sie können Skripte verwenden, um In-Game-Ereignisse auszulösen, auf Spielerinteraktionen zu reagieren, Spieldaten zu speichern, Bestenlisten zu erstellen, Gegner zu beschwören, NPC-Verhalten zu steuern und vieles mehr.
Luau
Roblox-Skripte verwenden die Programmiersprache Luau, die von Lua 5.1 abgeleitet ist.
- Im Vergleich zu Lua 5.1 fügt Luau Leistungsverbesserungen und viele nützliche Funktionen hinzu, darunter ein optionales Typsystem, String-Interpolation und verallgemeinerte Iteration für Tabellen.
- Alle gültigen Lua 5.1-Codes sind gültiger Luau-Code, aber das Gegenteil ist nicht der Fall.
Die meisten Bücher und Online-Ressourcen für Lua sind auch für Luau allgemein anwendbar. Für eine detaillierte Zusammenfassung der Unterschiede siehe Kompatibilität in der Luau-Dokumentation. Für die Sprachsyntax siehe das Luau-Referenzhandbuch.
Luau-Grundlagen
Luau ist allmählich typisiert, sodass Sie keinen Typ angeben müssen, wenn Sie eine Variable erstellen. Sie können type() verwenden, um den Objekttyp zu überprüfen:
logMessage = "Benutzer hat mehr als 10 Gegenstände!"print(logMessage) --> Benutzer hat mehr als 10 Gegenstände!print(type(logMessage)) --> string
Luau hat globale und lokale Scopes, aber es ist fast immer besser, Variablen und Funktionen lokal mit dem Schlüsselwort local zu deklarieren:
local logMessage = "Benutzer hat mehr als 10 Gegenstände!"
local function printMessage()
print(logMessage)
end
printMessage() --> Benutzer hat mehr als 10 Gegenstände!
Luau verwendet nil, um Nicht-Existenz oder Nichtigkeit darzustellen, was in Bedingungserklärungen als false ausgewertet wird:
local messageToUserprint(messageToUser) --> nilprint(type(messageToUser)) --> nilif messageToUser then-- Erklärung bewertet sich als falschend
Wie Sie vielleicht bemerkt haben, beginnt -- einen einzeiligen Kommentar. --[[]] erstellt einen Blockkommentar:
--[[
Deaktiviert den kosmischen Mondstrahl sofort.
Sollte nur innerhalb von 15 Minuten nach Mitternacht Mountain Standard
Time aufgerufen werden, um Schäden am kosmischen Mondstrahl zu vermeiden.
]]
local function stopCosmicMoonRay()
-- später hinzufügen, könnte wichtig sein
end
Tabellen sind der generische Begriff für Arrays und Wörterbücher. Arrays sind eins-basiert statt null-basiert, sodass das erste Element [1] ist. Sie deklarieren Arrays und Wörterbücher mit einem einzelnen Satz geschweifter Klammern:
local myArray = {"chips", "Sprudelwasser", "Salsa"}local myDictionary = {snack = "chips",drink = "Sprudelwasser",dip = "Salsa"}print(myArray[1]) --> chipsprint(myDictionary.dip) --> Salsa
Sie können über Tabellen mit for-Schleifen mit der Funktion ipairs() für Arrays und der Funktion pairs() für Wörterbücher iterieren, aber Luau ermöglicht es Ihnen auch, diese Funktionen für eine sauberere Syntax wegzulassen:
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 verallgemeinerte Iterationprint(key, value)end
Ihr erstes Skript
Öffnen Sie Roblox Studio, fahren Sie mit der Maus über ServerScriptService im Explorer-Fenster und klicken Sie auf +.
Wählen Sie Script aus, um ein neues Skript hinzuzufü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 Script Editor zu öffnen.
Fügen Sie den folgenden Code in die Datei ein:
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 Output-Fenster geöffnet ist.
Führen Sie Ihr Spiel aus und notieren Sie die Ausgabe:
hel (x2)oworld
Sich wohlfühlen
Ein großer Teil der Anpassung an eine neue Entwicklungsumgebung besteht darin, sie so zu konfigurieren, dass sie Ihren Bedürfnissen entspricht, und die Werkzeuge zu verstehen, die Ihnen zur Verfügung stehen:
- Der Abschnitt Script Editor in den Studio Settings ermöglicht es Ihnen, Lebensqualitätsfunktionen wie Schriftart, Farben, Einrückung, Autovervollständigung, Klammern und Tooltips anzupassen. Sie möchten möglicherweise auch den Dunkelmodus im Abschnitt Studio aktivieren.
- Halten Sie Ctrl oder Command gedrückt und klicken Sie auf eine Funktion oder Variable, um zu deren Deklaration in Ihrem Code zu gelangen (oder zu deren Online-Dokumentation). Die Verwendung von Find und Find All kann Ihnen helfen, sich in größeren Projekten zurechtzufinden.
- Das Output-Fenster ist das grundlegendste Werkzeug, um das Verhalten Ihrer Skripte zu verstehen. Verwenden Sie das ⋯-Menü, um Show Context und Show Source zu aktivieren.
- Das Script Analysis-Fenster zeigt eine Zusammenfassung von Fehlern und Warnungen an, aber Sie könnten seinen Nutzen als begrenzt empfinden; der Script Editor hebt diese Probleme schon während des Tippens hervor.
Für weitere Informationen zur Konfiguration von Studio für das Skripting siehe Script Editor.
Ihr zweites Skript
Fügen Sie in Roblox Studio ein Skript zu ReplicatedStorage im Explorer-Fenster hinzu und benennen Sie es in OhNo um.
Fügen Sie den folgenden Code in die Datei ein:
print("Hallo Skripttypen und -lokationen!")Beachten Sie, dass die Ausgabe nicht anders ist als als Sie Ihr erstes Skript ausgeführt haben.
Um zu verstehen, warum das Skript nicht ausgeführt wurde, siehe Script Types and Locations.