Jump to content

Spawn por ACL


Recommended Posts

Posted

Olá, sou novo aqui, estou criando um servidor, e gostaria de saber como eu faço para criar diferentes para cada jogador de spawn, exemplo: 

ACL 
Spawn All (Todos que entrarem no servidor sem "tag / acl" 
Tempo 1 
Tempo 2 
Tempo 3

quando o jogador entrar no servidor sem nenhuma tag adicionada, ele spawnar em um local, depois, que eu adicionar uma tag / acl e ele entrar no servidor ele respawnar toda vez nesse mesmo local, e quando ambos morrerem eu conseguir escolher o local para nascer também, alguém poderia me ajudar?

  • Moderators
Posted

Tópico movido para Programação em Lua, visto que é uma dúvida de programação.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
On 01/05/2021 at 15:20, yNexter said:

Olá, sou novo aqui, estou criando um servidor, e gostaria de saber como eu faço para criar diferentes para cada jogador de spawn, exemplo: 

ACL 
Spawn All (Todos que entrarem no servidor sem "tag / acl" 
Tempo 1 
Tempo 2 
Tempo 3

quando o jogador entrar no servidor sem nenhuma tag adicionada, ele spawnar em um local, depois, que eu adicionar uma tag / acl e ele entrar no servidor ele respawnar toda vez nesse mesmo local, e quando ambos morrerem eu conseguir escolher o local para nascer também, alguém poderia me ajudar?

Poderia elaborar melhor sua questão? Não entendi muito bem.


Dê um THANKS se minha ajuda ou comentário foi útil para você.   spacer.png 

Posted
4 hours ago, KronoS Lettify said:

Poderia elaborar melhor sua questão? Não entendi muito bem.

Vamos supor, quando você estra no servidor deve existe alguma acl atribuida a você como por exemplo "guest" eu quero colocar um spawn para essas pessoas, e quando eu adiciona alguém a ACL "console" ou outros tipos de grupos, eles darem spawn diferente toda fez que entra no servidor não só quando morre,  como por exemplo, você loga o no servidor e nasce na prefeitura, mas o cara do bope, loga e nasce na dp. 

 

Posted

Olá.

Fiz um código de exemplo (não testei):

Spoiler

local defaultX, defaultY, defaultZ = 111, 333, 13 -- Posição em que jogadores fora de ACL irão nascer
local spawnsACL = {
    --[[
        [NOME DA ACL] = {
            {x, y, z}
        }
    ]]
    ["Console"] = {
        {0, 0, 4},
        {2, -5, 4}
    },
    ["BOPE"] = {
        {95, -2, 3}
    }
}

function getPlayerSpawnFromAccount(account)
    local x, y, z
    local accountName = getAccountName(account)

    for aclName, data in pairs(spawnsACL) do
        if isObjectInACLGroup("user." .. accountName, aclGetGroup(aclName)) then
            local index = data[math.random(#data)]
            x, y, z = data[index][1], data[index][2], data[index][3]
            break
        end
    end

    return x or defaultX, y or defaultY, z or defaultZ
end

addEventHandler("onPlayerLogin", root, function(_, playerAccount)
    local x, y, z = getPlayerSpawnFromAccount(playerAccount)
    setElementPosition(source, x, y, z)
end)

 

 

Hello, world.


Tutorial sobre interação de BOTs do Discord com o seu servidor - Visitar (Brazilian Portuguese)
Tutorial sobre tabelas - Visitar (Brazilian Portuguese)
Tutorial sobre banco de dados - Visitar (Brazilian Portuguese)
Posted
12 hours ago, andr0xy said:

Olá.

Fiz um código de exemplo (não testei):

  Hide contents


local defaultX, defaultY, defaultZ = 111, 333, 13 -- Posição em que jogadores fora de ACL irão nascer
local spawnsACL = {
    --[[
        [NOME DA ACL] = {
            {x, y, z}
        }
    ]]
    ["Console"] = {
        {0, 0, 4},
        {2, -5, 4}
    },
    ["BOPE"] = {
        {95, -2, 3}
    }
}

function getPlayerSpawnFromAccount(account)
    local x, y, z
    local accountName = getAccountName(account)

    for aclName, data in pairs(spawnsACL) do
        if isObjectInACLGroup("user." .. accountName, aclGetGroup(aclName)) then
            local index = data[math.random(#data)]
            x, y, z = data[index][1], data[index][2], data[index][3]
            break
        end
    end

    return x or defaultX, y or defaultY, z or defaultZ
end

addEventHandler("onPlayerLogin", root, function(_, playerAccount)
    local x, y, z = getPlayerSpawnFromAccount(playerAccount)
    setElementPosition(source, x, y, z)
end)

 

 

O index, invés de local index = data[math.random(#data)] não deveria ser local index = math.random(#data)? Da primeira forma me parece que vai sortear e atribuir a variável index a tabela com os valores de x, y e z, não o index.

 

Se eu não tiver brisando acho que deveria ficar de um dos dois jeitos essa parte:

local index = data[math.random(#data)]
x, y, z = index[1], index[2], index[3]

OU

local index = math.random(#data)
x, y, z = data[index][1], data[index][2], data[index][3]

 

  • Haha 1

Te ajudei? Me ajude também deixando seu Thanks! :Dspacer.png

 

Discord: _muelzera_

Posted

Opa HAUHAUAU, verdade. Cometi um errinho ali. Obrigado por corrigir.

  • Haha 1

Hello, world.


Tutorial sobre interação de BOTs do Discord com o seu servidor - Visitar (Brazilian Portuguese)
Tutorial sobre tabelas - Visitar (Brazilian Portuguese)
Tutorial sobre banco de dados - Visitar (Brazilian Portuguese)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...