Os scripts no Roblox têm uma identidade de thread que indica qual acesso de segurança eles têm à API de script. Alguns membros da classe na API de script só podem ser usados por scripts que têm a permissão necessária.
Conteúdo
- 1 identidades
- 2 permissões
- 3 funções
- 4 máquinas virtuais
- 5 restrições adicionais
- 6 Veja também
- 7 notas
Identidades
Uma identidade de thread é uma identidade (um inteiro) dada a uma thread que indica quais permissões ela possui.
A identidade de um thread pode ser encontrada usando a função printidentity. Esta função irá imprimir a identidade da thread, prefixada pelo último argumento dado a ela se for uma string ou um número, "(null)" caso contrário, e um espaço. Se nenhum argumento for fornecido a ele, será prefixado por "A identidade atual é", seguido por um espaço.
Exemplo Em um script com identidade 2, printidentity () mostraria que a identidade atual é 2 na saída.A identidade de um thread geralmente depende de onde ele vem. Por exemplo, os threads executados como plug-ins têm uma identidade 6, os threads que executam o código da barra de comando ou a opção "executar script" têm uma identidade 5 e os scripts e scripts locais geralmente têm uma identidade 2. [nota 1]
Identidades
Identidade | Descrição |
---|---|
0 | Tópicos anônimos |
1 | Ações iniciadas pelo usuário no Roblox Studio |
2 | Objetos BaseScript em qualquer DataModel |
3 | Objetos BaseScript em qualquer DataModel, em um local criado por Roblox |
4 | Objetos BaseScript em qualquer DataModel, se forem de autoria de Roblox |
5 | Barra de comando do Studio, "Execute Script", parâmetro de linha de comando script |
6 | Plug-ins do Studio, COM API |
7 | API de serviço da web |
8 | Recebendo dados via replicação |
Permissões
Cada propriedade, método, evento ou retorno de chamada na API de script pode exigir uma permissão. As permissões existentes são PluginSecurity, RobloxPlaceSecurity, LocalUserSecurity, WritePlayerSecurity, RobloxScriptSecurity, RobloxSecurity, TestLocalUserSecurity, ScriptWriteRestricted: [NotAccessibleSecurity] e ScriptWriteRestricted: [PluginSecurity]. Todos os tópicos têm acesso a membros que não requerem permissão.
Permissões
Permissão | Descrição |
---|---|
nenhum | Qualquer identidade pode acessar esse recurso, incluindo scripts no jogo. |
Plugin | Segundo nível de acesso mais baixo, logo acima do script do jogo. |
RobloxPlace | Locais criados pela Roblox, onde os scripts são mais confiáveis e os recursos preliminares são permitidos. |
LocalUser | Permissão fora do jogo, geralmente para Roblox Studio. |
WritePlayer | Permissões para alterar o nome do jogador, ID do usuário, etc. |
RobloxScript | Um script, como um CoreScript, que é executado dentro de um jogo. |
Roblox | Mais alto nível de permissão. |
TestLocalUser | Em compilações de teste, isso é equivalente a nenhuma permissão, mas em compilações regulares é equivalente a LocalUser. |
papéis
A tabela abaixo mostra quais permissões estão associadas a cada identidade.
papéis
Identidade | Permissões |
---|---|
0 | nenhum |
1 | Plugin, RobloxPlace, LocalUser |
2 | nenhum |
3 | RobloxPlace |
4 | Plugin, RobloxPlace, LocalUser, RobloxScript |
5 | Plugin, RobloxPlace, LocalUser |
6 (construção de estúdio) | Plugin |
6 (versão não de estúdio) | Todas as permissões |
7 | Todas as permissões |
8 | RobloxPlace, WritePlayer, RobloxScript |
Algo mais | Nenhum, mais uma falha de afirmação |
Máquinas virtuais
Threads com identidades diferentes podem ser executados com diferentes máquinas virtuais Lua, de modo que os scripts do usuário não sejam misturados com os scripts criados por Roblox. Atualmente, existem apenas duas máquinas virtuais, uma para CoreScripts e outras threads que têm acesso RobloxScript e outra para todas as outras threads. Em compilações de estúdio, há uma terceira máquina virtual usada para plug-ins de estúdio.
Restrições adicionais
Se a propriedade RobloxLocked de um objeto for verdadeira, apenas scripts com a permissão Plugin serão capazes de indexar sinais e filhos do objeto, definir suas propriedades ou atribuir seus retornos de chamada, chamar funções de produção do objeto, alterar o pai dos filhos do objeto ou crie objetos com o objeto como pai usando Instance.new (classe, pai). Além disso, os scripts que não têm essa permissão não poderão chamar funções não produtivas do objeto, a menos que ele não seja descendente de CoreGui. Esta propriedade é usada, entre outras coisas, para objetos GUI criados por CoreScripts.
Veja também
- Lista de membros por segurança
Notas
- ↑ Eles podem ter uma identificação 3 quando executados em um jogo criado pelo Roblox e uma identificação 4 quando estiverem na lista de permissões do Roblox.