Scripts zijn platte tekstbestanden waarmee je aangepaste, dynamische gedragingen aan je games kunt toevoegen. Je kunt scripts gebruiken om in-game evenementen te activeren, te reageren op spelersinvoer, spelersgegevens op te slaan, ranglijsten te maken, vijanden te spawnen, NPC-gedrag te controleren en nog veel meer.
Luau
Roblox-scripts gebruiken de Luau programmeertaal, die is afgeleid van Lua 5.1.
- In vergelijking met Lua 5.1 voegt Luau prestatieverbeteringen en veel nuttige functies toe, waaronder een optioneel type-systeem, stringinterpolatie en gegeneraliseerde iteratie voor tabellen.
- Alle geldige Lua 5.1-code is geldige Luau-code, maar het omgekeerde is niet waar.
De meeste boeken en online bronnen voor Lua zijn nog steeds breed toepasbaar op Luau. Voor een gedetailleerde samenvatting van de verschillen, zie Compatibility in de Luau-documentatie. Voor taalsyntaxis, zie de Luau reference.
Luau basisprincipes
Luau is geleidelijk getypeerd, dus je hoeft geen type op te geven wanneer je een variabele maakt. Je kunt type() gebruiken om het objecttype te controleren:
logMessage = "De gebruiker heeft meer dan 10 items!"
print(logMessage) --> De gebruiker heeft meer dan 10 items!
print(type(logMessage)) --> stringLuau heeft globale en lokale scopes, maar het is bijna altijd beter om variabelen en functies lokaal te declareren met het local sleutelwoord:
local logMessage = "De gebruiker heeft meer dan 10 items!"
local function printMessage()
print(logMessage)
end
printMessage() --> De gebruiker heeft meer dan 10 items!Luau gebruikt nil om niet-bestaande of niets te vertegenwoordigen, wat als false evalueert in conditionele uitspraken:
local messageToUser
print(messageToUser) --> nil
print(type(messageToUser)) --> nil
if messageToUser then
-- uitspraak evalueert naar false
endZoals je misschien hebt opgemerkt, begint -- een eenregelige opmerking. --[[]] creëert een blokopmerking:
--[[
Zet de kosmische maanstraal onmiddellijk uit.
Moet alleen binnen 15 minuten voor middernacht Mountain Standard
Tijd worden aangeroepen om schade aan de kosmische maanstraal te voorkomen.
]]
local function stopCosmicMoonRay()
-- voeg dit later toe, het kan belangrijk blijken te zijn
endTabellen zijn de algemene term voor arrays en woordenboeken. Arrays zijn één-gebaseerd in plaats van nul-gebaseerd, dus het eerste item is [1]. Je declareert arrays en woordenboeken met een enkele set accolades:
local myArray = {"chips", "sprankelend water", "salsa"}
local myDictionary = {
snack = "chips",
drank = "sprankelend water",
dip = "salsa"
}
print(myArray[1]) --> chips
print(myDictionary.dip) --> salsaJe kunt over tabellen itereren met for-lussen met de ipairs() functie voor arrays en de pairs() functie voor woordenboeken, maar Luau laat je ook deze functies weglaten voor een schonere syntaxis:
for index, value in ipairs(myArray) do -- standaard Lua
print(index, value)
end
for key, value in pairs(myDictionary) do -- standaard Lua
print(key, value)
end
for key, value in myDictionary do -- Luau gegeneraliseerde iteratie
print(key, value)
endJe eerste script
In Roblox Studio, beweeg de muis over ServerScriptService in het Explorer venster en klik op +.
Selecteer Script om een nieuw script toe te voegen.
Klik met de rechtermuisknop op het script en hernoem het naar HelloScript.
Dubbelklik op het script om het te openen in de Script Editor.
Voeg de volgende code toe aan het bestand:
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))Zorg ervoor dat het Output venster open is.
Voer je game uit en let op de output:
hel (x2)owereld
Maak je comfortabel
Een groot deel van het aanpassen aan een nieuwe ontwikkelomgeving is het configureren ervan om aan je behoeften te voldoen en het begrijpen van de tools die je tot je beschikking hebt:
- De sectie Script Editor van Studio Settings laat je kwaliteitsverbeteringen zoals lettertype, kleuren, inspringing, autocompleteren, haakjes en tooltips aanpassen. Je wilt misschien ook de donkere modus inschakelen in de sectie Studio.
- Door Ctrl of Command ingedrukt te houden en op een functie of variabele te klikken, ga je naar de declaratie in je codebase (of de online documentatie). Het gebruik van Zoeken en Alles Zoeken kan je helpen om grotere projecten te navigeren.
- Het Output venster is het meest basale hulpmiddel om het gedrag van je scripts te begrijpen. Gebruik het ⋯ menu om Show Context en Show Source in te schakelen.
- Het Script Analysis venster toont een samenvatting van fouten en waarschuwingen, maar je kunt de bruikbaarheid beperkt vinden; de Script Editor markeert deze problemen al terwijl je typt.
Voor meer informatie over het configureren van Studio voor scripting, zie Script Editor.
Je tweede script
In Roblox Studio, voeg een script toe aan ReplicatedStorage in het Explorer venster en hernoem het naar OhNo.
Voeg de volgende code toe aan het bestand:
print("Hallo script types en locaties!")Let op hoe de output niet anders is dan toen je je eerste script uitvoerde.
Om te begrijpen waarom het script niet werd uitgevoerd, zie Script Types and Locations.