Les scripts sur Roblox ont une identité de thread qui indique quel accès de sécurité ils ont à l'API de script. Certains membres de la classe dans l'API de script ne peuvent être utilisés que par des scripts disposant de l'autorisation requise.
Contenu
- 1 Identités
- 2 autorisations
- 3 rôles
- 4 machines virtuelles
- 5 Restrictions supplémentaires
- 6 Voir aussi
- Remarques 7
Identités
Une identité de thread est une identité (un entier) donnée à un thread qui indique les autorisations dont il dispose.
L'identité d'un thread peut être trouvée en utilisant la fonction printidentity. Cette fonction affichera l'identité du thread, préfixée par le dernier argument qui lui est donné s'il s'agit d'une chaîne ou d'un nombre, "(null)" sinon, et d'un espace. Si aucun argument ne lui est donné, il le préfixera par "L'identité actuelle est", suivi d'un espace.
ExempleDans un script avec l'identité 2, printidentity() afficherait l'identité actuelle est 2 dans la sortie.L'identité d'un thread dépendra généralement de son origine. Par exemple, les threads exécutés en tant que plugins ont une identité de 6, les threads exécutant du code à partir de la barre de commandes ou de l'option "exécuter le script" ont une identité de 5, et les scripts et les scripts locaux ont généralement une identité de 2.[note 1]
Identités
Identité | Détails |
---|---|
0 | Fils de discussion anonymes |
1 | Actions initiées par l'utilisateur dans Roblox Studio |
2 | Objets BaseScript dans n'importe quel DataModel |
3 | Objets BaseScript dans n'importe quel DataModel, dans un endroit créé par Roblox |
4 | Objets BaseScript dans n'importe quel DataModel, s'ils ont été créés par Roblox |
5 | Barre de commandes Studio, "Exécuter le script", paramètre de ligne de commande -script |
6 | Plugins Studio, API COM |
7 | API de services Web |
8 | Réception de données via la réplication |
Permission
Chaque propriété, méthode, événement ou rappel dans l'API de script peut nécessiter une autorisation. Les autorisations existantes sont PluginSecurity, RobloxPlaceSecurity, LocalUserSecurity, WritePlayerSecurity, RobloxScriptSecurity, RobloxSecurity, TestLocalUserSecurity, ScriptWriteRestricted : [NotAccessibleSecurity] et ScriptWriteRestricted : [PluginSecurity]. Tous les threads ont accès aux membres qui ne nécessitent pas d'autorisation.
Permission
Autorisation | Détails |
---|---|
Aucun | Toute identité peut accéder à cette fonctionnalité, y compris les scripts du jeu. |
Brancher | Deuxième niveau d'accès le plus bas, juste au-dessus du script du jeu. |
RobloxPlace | Lieux créés par Roblox, où les scripts sont plus fiables et les fonctionnalités préliminaires sont autorisées. |
Utilisateur local | Autorisation non liée au jeu, généralement pour Roblox Studio. |
WritePlayer | Autorisations pour changer le nom du joueur, l'ID utilisateur, etc. |
RobloxScript | Un script, tel qu'un CoreScript, qui est exécuté dans un jeu. |
Roblox | Niveau d'autorisation le plus élevé. |
TestUtilisateurLocal | Dans les versions de test, cela équivaut à aucune autorisation, mais dans les versions normales, cela équivaut à LocalUser. |
Rôles
Le tableau ci-dessous montre quelles autorisations sont associées à chaque identité.
Rôles
Identité | Permission |
---|---|
0 | Aucun |
1 | Plugin, RobloxPlace, LocalUser |
2 | Aucun |
3 | RobloxPlace |
4 | Plugin, RobloxPlace, LocalUser, RobloxScript |
5 | Plugin, RobloxPlace, LocalUser |
6 (construction en studio) | Brancher |
6 (construit non-studio) | Toutes les permissions |
7 | Toutes les permissions |
8 | RobloxPlace, WritePlayer, RobloxScript |
Rien d'autre | Aucun, plus un échec d'assertion |
Machines virtuelles
Les threads avec des identités différentes peuvent être exécutés avec différentes machines virtuelles Lua, afin que les scripts utilisateur ne soient pas mélangés avec des scripts créés par Roblox. Il n'y a actuellement que deux machines virtuelles, une pour les CoreScripts et les autres threads qui ont un accès RobloxScript et une autre pour tous les autres threads. Dans les versions de studio, il existe une troisième machine virtuelle utilisée pour les plugins de studio.
Restrictions supplémentaires
Si la propriété RobloxLocked d'un objet est vraie, seuls les scripts avec l'autorisation Plugin pourront indexer les signaux et les enfants de l'objet, définir ses propriétés ou affecter ses rappels, appeler les fonctions de production de l'objet, changer le parent des enfants de l'objet , ou créez des objets avec l'objet comme parent en utilisant Instance.new(class, parent). De plus, les scripts qui n'ont pas cette autorisation ne pourront pas appeler les fonctions non cédantes de l'objet à moins qu'il ne soit un descendant de CoreGui. Cette propriété est utilisée, entre autres, pour les objets GUI créés par CoreScripts.
Voir également
- Liste des membres par titre
Notes
- Ils peuvent avoir un identifiant de 3 lorsqu'ils sont exécutés dans un jeu créé par Roblox et un identifiant de 4 lorsqu'ils sont ajoutés à la liste blanche par Roblox.