Scripting

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Les scripts sont des fichiers de texte simples qui vous permettent d'ajouter un comportement personnalisé, dynamique à vos expériences. Vous pouvez utiliser des scripts pour déclencher des événements dans le jeu, répondre à l'entrée du joueur, enregistrer les données du joueur, créer des classements, inviter des ennemis, contrôler le comportement du NPC et bien plus encore.

Luau

Les scripts Roblox utilisent la langue de programmation Luau, qui est dérivée de Lua 5.1.

  • Par rapport à Lua 5.1, Luau ajoute des améliorations de performance et de nombreuses fonctionnalités utiles, y compris un système de saisie facultatif, une interpolationde chaîne et une itération générale pour les tableaux.
  • Tout le code Lua 5.1 valide est un code Luau valide, mais le contraire n'est pas vrai.

La plupart des livres et des ressources en ligne pour Lua sont toujours applicables en grande partie à Luau. Pour un résumé détaillé des différences, voir Compatibilité dans la documentation Luau. Pour laSyntaxe des langues, voir la Référence Luau.

Luau Basics

Luau est écrit graduellement, vous n'avez donc pas besoin de spécifier un type lorsque vous créez une variable. Vous pouvez utiliser type() pour vérifier le taper'objet :


logMessage = "User has more than 10 items!"
print(logMessage) --> L'utilisateur a plus de 10 articles !
print(type(logMessage)) --> string

Luau a des scope globale et locale, mais il est presque toujours préférable de déclarer les variables et les fonctions localement avec le local mot-clé :


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

Lua utilise nil pour représenter l'existence ou l'inexistence, ce qui se valide comme false dans les déclarations conditionnées :


local messageToUser
print(messageToUser) --> rien
print(type(message)) --> rien
if messageToUser then
-- la déclaration évalue à faux
end

Comme vous l'avez peut-être remarqué, -- démarre un commenteren une ligne. --[[]] crée un commenterde bloc :


--[[
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()
-- ajouter plus tard, il pourrait être important
end

Les tables sont le terme générique pour les tableaux et les dictionnaires. Les tableaux sont uniques plutôt que zéro, donc le premier élément est [1] . Vous déclarez les tableaux et les dictionnaires avec un seul ensemble de parenthèses courbes :


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

Vous pouvez itérer sur les tables en utilisant for boucles avec la fonction ipairs() pour les tableaux et la fonction pairs() pour les dictionnaires, mais Luau vous permet également d'omettre ces fonctions pour une meilleure syntaxe :


for index, value in ipairs(myArray) do -- Lua standard
print(index, value)
end
for key, value in pairs(myDictionary) do -- Lua standard
print(key, value)
end
for key, value in myDictionary do -- Luau générateur d'itération
print(key, value)
end

Votre premier script

  1. Dans Roblox Studio, passez la souris sur ServerScriptService dans la Explorateur fenêtre et cliquez sur +.

  2. Sélectionnez Script pour ajouter un nouveau script.

  3. Faites un clic droit sur le script et renommez-le en HelloScript .

  4. Double-cliquez sur le script pour l'ouvrir dans le Éditeur de scripts.

  5. Ajoutez le code suivant au fichier :


    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. Assurez-vous que la Fenêtre de sortie est ouverte.

  7. Cliquez sur Jouer pour exécuter votre expérience.

  8. Notez la sortie :


    h
    e
    l (x2)
    o
    world

Se sentir à l'aise

Une grande partie de l'adaptation à un nouveau environnement de développement est de le configurer pour répondre à vos besoins et de comprendre les outils à votre disposition :

  • La section Éditeur de scripts de Paramètres du studio vous permet d'ajuster les fonctionnalités de qualité de vie comme les polices, les couleurs, l'alignement, l'autocollage, les brackets et les outils de pointe. Vous voudrez peut-être également activer le mode sombre dans la section Studio.
  • Maintiens Ctrl ou Commande et clique sur une fonction ou une variable vous mène à sa déclaration dans votre codebase (ou sa documentation en ligne). L'utilisation de Trouver et trouver tous peut vous aider à naviguer dans de plus grands projets.
  • La sortie window est le plus basique des outils pour comprendre le comportement de vos scripts. Utilisez le menu pour activer Afficher le contexte et 1>Afficher la source1>.
  • La analyse du script fenêtre affiche un résumé des erreurs et des avertissements, mais vous pourriez trouver son utilité limitée ; le éditeur de script souligne déjà ces problèmes au fur et à mesure que vous taper.
  • Les capacités de journalisation sont minimales, avec aucun concept de niveaux de journal comme DEBUG ou FATAL. Utilisez print() et 1> Global.RobloxGlobals.warn()1>.

Pour plus d'informations sur la configuration de Studio pour le scripting, voir Éditeur de script. Pour plus d'informations sur l'utilisation de votre éditeur de texte favori et sur le système de contrôle de la version, voir Outils externes.

Votre deuxième script

  1. Dans Roblox Studio, ajoutez un script à ReplicatedStorage dans la Explorateur fenêtre et renommez-le en OhNo .

  2. Ajoutez le code suivant au fichier :


    print("Hello script types and locations!")
  3. Cliquez sur Jouer pour exécuter votre expérience.

  4. Notez que la sortie n'est pas différente de lorsque vous avez exécuté votre premier script.

Pour comprendre pourquoi le script n'a pas lancer, voir Types et emplacements de scripts .