Jump to content

blip do client ao morrer ou com tempo


Recommended Posts

-- client

function BlipPolicia(players)
    local blip = createBlipAttachedTo(players, 0)
end
addEvent("BlipPM", true)
addEventHandler("BlipPM", root, BlipPolicia)

-- server

function start(playerSource, qntd)
    if exports.BVNInventario:GiveAndTakeAndGetItem("get", playerSource, "maconhaembalada") >= qntd then
    local random = math.random(6, 6)
        if random == 6 then
        exports._infobox:addNotification(playerSource, "O Comprador Recusou e Chamou as Autoridades!", "error")
            for i, players in ipairs(getElementsByType("player")) do
                if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(players)), aclGetGroup("Policie")) then
                    exports._infobox:addNotification(players, "Denuncia de Traficante Vendendo Ilegais, o Traficante Foi Marcado no Mapa", "info")
                    triggerClientEvent("BlipPM", players, playerSource)
                end
            end
       else
            exports.BVNInventario:GiveAndTakeAndGetItem("take", playerSource, "maconhaembalada", qntd)
            exports.BVNInventario:GiveAndTakeAndGetItem("give", playerSource, "dinheirosujo", qntd * 2000)
            local time = qntd * 2
                if time > 5000 * 5 then
                    time = 5000 * 5
               elseif time < 5000 then
                    time = 5000
            end
            setElementFrozen(playerSource, true)
            toggleAllControls(playerSource, false, true, false)
            setPedAnimation(playerSource, "CASINO", "dealone", -1, true, false, false, false, _, true)
            triggerClientEvent(playerSource, "progressBar", playerSource, time)
            exports._infobox:addNotification(playerSource, "Vendendo a Droga...", "info")
        setTimer(function()
        setElementFrozen(playerSource, false)
        toggleAllControls(playerSource, true)
        setPedAnimation(playerSource, nil)
        exports._infobox:addNotification(playerSource, "Você Vendeu " .. tonumber(qntd) .. "x 'Maconha' e recebeu " .. tonumber(qntd * 2000) .. " de Dinheiro Sujo", "money")
        end, time, 1)
    end
    else
        exports._infobox:addNotification(playerSource, "Você não possui " .. tonumber(qntd) .. "x 'Maconha' na sua mochila", "error")
    end
end
addEvent("Start", true)
addEventHandler("Start", resourceRoot, start)

esse código faz com que crie um blip para os policiais no vendedor caso o comprador recuse a venda, porém eu gostaria que quando o playersource morrer ou passar 10 minutos os blip suma, não to conseguindo de jeito nenhum não to conseguindo passar o blip do client para o server, ajuda ai pelo amor de deus

OBS: deixei a chance em 100%, só porque eu tava testando

Edited by SciptNovato
Link to comment
  • Other Languages Moderators

Seu triggerClientEvent está incorreto, a indentação também tem que corrigir. Em vez de chamar vários triggers (1 para cada policial) é mais fácil vc primeiro obter todos os players policiais numa tabela e depois dar um único trigger para essa tabela de policiais. Sempre prefira fazer um trigger grande do que vários pequenos.

Exemplo maroto:

-- SERVER-SIDE
function getCops()
    local cops = {} -- Tabela de policiais.
    for _, players in pairs(getElementsByType("player")) do
        if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(players)), aclGetGroup("Policie")) then -- Tem certeza que a ACL Group tem esse nome?
            table.insert(cops, players) -- Adiciona esse jogador na lista "cops" se ele estiver na ACL Group "Policie".
        end
    end
    return cops
end

addCommandHandler("eae", function(thePlayer, cmd)
    local policiais = getCops() -- Obtém uma lista de players policiais online.
    if #policiais > 0 then -- Se tem algum policial no server (tabela não está vazia), então:
        triggerClientEvent(policiais, "BlipPM", thePlayer) -- Ativa esse evento só pros policiais, usando thePlayer como source do evento.
    end
end)

-- CLIENT-SIDE
function BlipPolicia()
    local blip = createBlipAttachedTo(source) -- Se o ícone for 0, não precisa declará-lo.
    setTimer(destroyElement, 5*1000, 1, blip) -- Destrói o blip após 5 segundos.
end
addEvent("BlipPM", true)
addEventHandler("BlipPM", root, BlipPolicia)

 

Edited by Lord Henry
Link to comment

e como eu implementaria o evento da morte nesse caso ? 
eu tentei usando getAttachedElements, verificando se o elemento é um blip
e se o tipo do blip é 0, ai destruiaria se sim, o blip simplesmente não some

function BlipMorte()
    local blips = getAttachedElements(source)
    for _, blip in ipairs(blips) do
        if getElementType(blip) == "blip" then
            if getBlipType(blip) == 0 then
                destroyElement(blip)
            end
        end
    end
end
addEventHandler("onPlayerWasted", root, BlipMorte)

 

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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