Jump to content

Spawn por ACL


Recommended Posts

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?

Link to post
  • Other Languages Moderators

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

Link to post
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.

Link to post
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. 

 

Link to post

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)

 

 

Link to post
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
Link to post

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...