Skripte sind einfache Textdateien, mit denen Sie benutzerdefiniertes, dynamisches Verhalten in Ihre Spiele einfügen können. Sie können Skripte verwenden, um In-Game-Ereignisse auszulösen, auf Spieleraktionen zu reagieren, Spieldaten zu speichern, Bestenlisten zu erstellen, Feinde zu beschwören, das Verhalten von NPCs zu steuern und vieles mehr.
Luau
Roblox-Skripte verwenden die Luau Programmiersprache, 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ültige Luau-Codes, aber das Gegenteil ist nicht der Fall.
Die meisten Bücher und Online-Ressourcen für Lua sind weiterhin weitgehend auf Luau anwendbar. Für eine detaillierte Zusammenfassung der Unterschiede siehe Kompatibilität in der Luau-Dokumentation. Für die Sprachsyntax siehe das Luau-Referenzdokument.
Luau-Grundlagen
Luau ist schrittweise 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 = "Der Benutzer hat mehr als 10 Gegenstände!"
print(logMessage) --> Der Benutzer hat mehr als 10 Gegenstände!
print(type(logMessage)) --> stringLuau hat globale und lokale Scopes, aber es ist fast immer besser, Variablen und Funktionen lokal mit dem Schlüsselwort local zu deklarieren:
local logMessage = "Der Benutzer hat mehr als 10 Gegenstände!"
local function printMessage()
print(logMessage)
end
printMessage() --> Der Benutzer hat mehr als 10 Gegenstände!Luau verwendet nil, um Nichtexistenz oder Nichtigkeit darzustellen, was in bedingten Anweisungen als false ausgewertet wird:
local messageToUser
print(messageToUser) --> nil
print(type(messageToUser)) --> nil
if messageToUser then
-- die Anweisung wird als falsch ausgewertet
endWie Sie vielleicht bemerkt haben, beginnt -- einen einzeiligen Kommentar. --[[]] erstellt einen Blockkommentar:
--[[
Schaltet den kosmischen Mondstrahl sofort aus.
Sollte nur innerhalb von 15 Minuten nach Mitternacht Mountain Standard
Time aufgerufen werden, um Schäden am kosmischen Mondstrahl zu vermeiden.
]]
local function stopCosmicMoonRay()
-- das später hinzufügen, es könnte wichtig sein
endTabellen sind der allgemeine Begriff für Arrays und Wörterbücher. Arrays sind eins-basiert und nicht null-basiert, sodass das erste Element [1] ist. Sie deklarieren Arrays und Wörterbücher mit einem einzigen Satz geschweifter Klammern:
local myArray = {"Chips", "Sprudelwasser", "Salsa"}
local myDictionary = {
snack = "Chips",
drink = "Sprudelwasser",
dip = "Salsa"
}
print(myArray[1]) --> Chips
print(myDictionary.dip) --> SalsaSie 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 Lua
print(index, value)
end
for key, value in pairs(myDictionary) do -- standard Lua
print(key, value)
end
for key, value in myDictionary do -- Luau verallgemeinerte Iteration
print(key, value)
endIhr erstes Skript
Öffnen Sie Roblox Studio, fahren Sie mit der Maus über ServerScriptService im Explorer Fenster und klicken Sie auf +.
Wählen Sie Skript 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 Skript-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 Ausgabe Fenster geöffnet ist.
Führen Sie Ihr Spiel aus und beachten Sie die Ausgabe:
hel (x2)oworld
Machen Sie sich vertraut
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 Skript-Editor der Studio-Einstellungen ermöglicht es Ihnen, Funktionen zur Verbesserung der Benutzerfreundlichkeit 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 ihrer Deklaration in Ihrem Code zu gelangen (oder zu ihrer Online-Dokumentation). Die Verwendung von Suchen und Alle Suchen kann Ihnen 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 Quelle anzeigen zu aktivieren.
- Das Skriptanalyse Fenster zeigt eine Zusammenfassung von Fehlern und Warnungen an, aber Sie könnten feststellen, dass seine Nützlichkeit begrenzt ist; der Skript-Editor hebt diese Probleme bereits beim Tippen hervor.
Für weitere Informationen zur Konfiguration von Studio für das Skripting siehe Skript-Editor.
Ihr zweites Skript
Öffnen Sie Roblox Studio, fügen Sie 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 -orte!")Beachten Sie, dass die Ausgabe nicht anders ist als bei der Ausführung Ihres ersten Skripts.
Um zu verstehen, warum das Skript nicht ausgeführt wurde, siehe Skripttypen und -orte.