Vc pode verificar isso quando o jogador faz login.
local bases = {} -- Tabela com todas as bases criadas. (vc precisará adaptar sua função createBase para colocá-las nesta tabela)
local blips = {} -- Tabela com todos os blips das bases.
function baseBlip(_, _, theSource) -- theSource só existe quando essa função é chamada lá no createBase()
if not theSource then
theSource = source -- Se essa função foi chamada ao fazer login, theSource passa a ser quem logou.
end
for i, base in pairs(bases) do -- Para cada base da tabela, faça:
if getPlayerFromSerial (getElementData(base, "owner")) then -- Se o jogador que tem o serial do dono desta base está online, então:
if getPlayerFromSerial (getElementData(base, "owner")) == theSource then -- Se o jogador que logou é dono desta base, então:
if isElement(blips[i]) then -- Se já existe o blip desta base, então:
setElementVisibleTo (blips[i], theSource, true) -- Torna este blip visível para este jogador que logou.
else -- Se ainda não existe o blip desta base, então:
local x, y, z = getElementPosition(base) -- Obtém a posição da base para usar no blip.
blips[i] = createBlip(x, y, z, 58, 1, 255, 255, 255, 255, 0, 8500, theSource) -- Cria o blip visível somente para o jogador que logou.
end
end
end
end
end
addEventHandler("onPlayerLogin", root, baseBlip)
function unBlip()
for i, base in pairs(bases) do -- Para cada base da tabela, faça:
if getPlayerFromSerial (getElementData(base, "owner")) then -- Se o jogador que tem o serial do dono desta base está online, então:
if getPlayerFromSerial (getElementData(base, "owner")) == source then -- Se o jogador que deslogou é dono desta base, então:
if isElement(blips[i]) then -- Se essa base tem o blip criado, então:
setElementVisibleTo (blips[i], source, false) -- Para de mostrar pra esse jogador que deslogou ou saiu do servidor.
end
end
end
end
end
addEventHandler("onPlayerLogout", root, unBlip)
addEventHandler("onPlayerQuit", root, unBlip)
function getPlayerFromSerial (serial) -- Função útil que pega o player online com este serial.
assert (type(serial) == "string" and #serial == 32, "getPlayerFromSerial - invalid serial")
for i, player in pairs (getElementsByType ("player")) do
if getPlayerSerial(player) == serial then
return player
end
end
return false
end
E lá no final da sua função createBase() adicione isso lá dentro:
table.insert(bases, baseCol) -- Adiciona a base que foi criada na tabela de bases.
baseBlip(false, false, getPlayerFromSerial(owner)) -- Tenta criar o blip para o dono da base, se ele estiver online.