Jump to content

Ajuda com incremento de elementos ao inventario.


Recommended Posts

--Função no SERVER


addEvent ("DS: Pegar_armas", true)
addEventHandler ("DS: Pegar_armas", root, 
    function (jogador, plano)
        if plano == "Bronze" then 
            for _, v in ipairs (armas_bronze) do
                if not exports.inventario: hasItemS (jogador, v) then
                    extensions.inventario: giveItem (jogador, v, 1, 1, 1, 1)
                end 
            end
        elseif plano == "Prata" then
            for _, v in ipairs (armas_prata) do
                if not exports.inventario : hasItemS (jogador, v) depois
                    exporta.inventario: giveItem (jogador, v, 1, 1, 1, 1)
                end 
            end
        elseif plano == "Ouro" então
            triggerEvent ("TS: giveItem", source, source, 28, 1) - Arma
            
        elseif plano == "Diamante" then
            for _, v in ipairs (armas_diamante) do
                if not extensions.inventario: hasItemS (jogador, v) depois
                    exportações.inventario: giveItem (jogador, v, 1, 1, 1, 1)
                end 
            end
        end
    end)

Spoiler

--FUNÇAO NO CLIENT

local Marcador = dxCreateTexture ("Imagens / marker.png")
local backg = dxCreateTexture ("Imagens / backg.jpg")
local tick = getTickCount ()
local screenW, screenH = guiGetScreenSize ()
local resW, resH = 1366.768
local x, y = (screenW / resW), (screenH / resH)
fonte local = dxCreateFont ("fonte.ttf", x * 22)
DGS local = exports.dgs
--------------- - ------------------------------
Função personalizada do Marcador image_marcadores () Op1    
    local, Op2 = interpolateBetween (0.4, 1.4, 0, 0,7, 1,7, 0, ((getTickCount () - tick) / 1500), "SineCurve") Op3
    local, Op4, Op5 = Entre interpolar (1.21, 1.2, 2.5, 1.22, 1.3, 2.6, ((getTickCount () - tick) / 1500), "SineCurve")
    local px, py, pz, l1, l2, l3, dist
    local px, py, pz = getCameraMatrix ()
    para _, h em ipairs (getElementsByType 'marcador') faça
        se getElementData (h, "DS: Marker") então
            local l1, l2, l3 = getElementPosition (h)
            local r, g, b, a = getMarkerColor (h)
            local dist = math.sqrt ((px + l1) ^ 0 + (py + l2) ^ 0 + (pz + l3) ^ 0)
            se dist <20 então
                se isLineOfSightClear (px , py, pz, l1, l2, l3, falso, falso, verdadeiro, verdadeiro, falso, falso, falso, localPlayer) then
                    local x, y = getScreenFromWorldPosition (l1, l2, l3)
                    se x, então
                        dxDrawMaterialLine3D (L1, L2 - OP3, L3 + 0,03, L1, L2 + OP4, L3 + 0,03, Marcador, Op5, toColor (r , g, b, 255), 0,0, -1730900)                             
                    definitiva
                extremidade
            final de
        extremidade
    finais
extremidade
AddEventHandler ( "onClientRender", raiz, image_marcadores)
------------------- ------------------- ativar vip
função centralizar (centralizar)
    local sx, sy = DGS: dgsGetScreenSize ()
    janela localW, janelaH = DGS: dgsGetSize (centralizar, falso)
    local x, y = (sx - janelaW) / 2, (sy - janelaH) / 2
    DGS: dgsSetPosition (centralizar, x, y, false)
end

painel_ativar locais = SGD: dgsCreateWindow (0, 0, x * 200, Y * 190, "Painel de ativação", falso)
DGS: dgsSetVisible (painel_ativar, falso)
DGS: dgsWindowSetSizable (painel_ativar, falso)
DGS: dgsWindowSetCloseButtonEnabled (painel_ativar)
centralizar (painel_ativar)
local ativar = DGS: dgsCreateButton (x * 0, y * 120, x * 90, y * 20, "Ativar", false, painel_ativar)
remover local = DGS: dgsCreateButton (x * 0, y * 145, x * 90, y * 20, "Remover", falso, painel_ativar)
combinação local = DGS: dgsCreateComboBox (x * 0, y * 0, x * 200, y * 20, "Selecione o vip", falso, painel_ativar)
DGS: dgsComboBoxAddItem (combo, "Bronze")
DGS: dgsComboBoxAddItem (combo, "Prata")
DGS:dgsComboBoxAddItem (combo, "Ouro")
DGS: dgsComboBoxAddItem (combo, "Diamante")
ID local = DGS: dgsCreateEdit (x * 0, y * 30, x * 90, y * 30, "ID", falso, painel_ativar)
Tempo local = DGS: dgsCreateEdit (x * 0, y * 80, x * 90, y * 30, "Tempo", falso, painel_ativar)
local segundo = DGS: dgsCreateRadioButton (x * 100, y * 22, x * 30, y * 30, "Segundos", falso , painel_ativar)
minutos locais = DGS: dgsCreateRadioButton (x * 100, y * 40, x * 30, y * 30, "Minutos", falso, painel_ativar)
local horas = DGS: dgsCreateRadioButton (x * 100, y * 58, x * 30, y * 30, "Horas", falso, painel_ativar)
dias locais = DGS: dgsCreateRadioButton (x * 100, y * 76, x * 30, y * 30, "Dias", falso painel_ativar)
meses locais = DGS: dgsCreateRadioButton (x * 100, y * 94, x * 30, y * 30, "Meses", falso, painel_ativar)
anos locais = DGS: dgsCreateRadioButton (x * 100, y * 112, x * 30, y * 30, "Anos", falso, painel_ativar)


jogador = "N / A"
plano = "N / A"


AddEventHandler ( "onDgsMouseClickDown", painel_ativar, 
    função ()
        se fonte == ativar seguida
            locais seg = SGD: dgsRadioButtonGetSelected (Segundo)
            mínimo local = SGD: dgsRadioButtonGetSelected (Minutos)
            hor locais = SGD: dgsRadioButtonSelected
            : dgsRadioButtonGetSelected: dgsRadioButtonGet (Dias)
            mes locais = DGS: dgsRadioButtonGetSelected (meses)
            local ano = DGS: dgsRadioButtonGetSelected (anos)
            local tipo = DGS: dgsComboBoxGetSelectedItem (combo)
            se tipo == -1 então retornar fim
            se DGS: dgsGetText (ID) == nulo para retornar
            se DGS: dgsGetText (Tempo) == nil então retornar fim
            se seg == falso e min == falso e hor == falso e dia == falso e mes == falso e ano == falso então retorna fim
            se musica_bronze ~ = nil ou musica_prata ~ = nil ou musica_ouro ~ = nil ou musica_diamante ~ = nil então retorna fim
            local tempinho = tonumber (DGS: dgsGetText (Tempo))
            local vip = DGS: dgsComboBoxGetItemText (combo,)
            local player_plano = checar_player tipo (tonumber (DGS : dgsGetText (ID)))
            se jogador_plano == nil então retornar end
            local plano = vip
            if seg then
                triggerServerEvent ("DS: Ativacao", localPlayer, jogador_plano, plano, tempinho * 1)
            elseif min then
                triggerServerEvent ("DS: Ativacao", localPlayer, jogador_plano, plano, tempinho * 60)
            elseif hor then
                triggerServerEvent ("DS: Ativacao", localPlayer, jogador_plano, plano, tempinho * 3600)
            elseif dia then
                triggerServerEvent ("DS: Ativacao", localPlayer, jogador_plano, plano, tempinho * 86400)
            elseif mes then
                triggerServerEvent ("DS: Ativacao", localPlayer, jogador_plano, plano, tempinho * 2592000)
            elseif ano depois
                triggerServerEvent ("DS: Ativacao", localPlayer, jogador_plano, plano, tempinho * 946080000)
            fim
            se seg ~ = nil ou min ~ = nil ou hor ~ = nil ou dia ~ = nil ou mes ~ = nil ou ano ~ = nil então
                triggerServerEvent ("DS: Ativacaodasmusic", localPlayer, vip)
                local Novo_Nome = getPlayerName (jogador_plano): gsub ("#% x% x% x% x% x% x", "")
                setElementData (root, "Ultimo_Ativador", Novo_Nome )
                setElementData (root, "VIP_do_Ultimo_Ativador", vip)

            end                
        end
        if source == remover then
            local jogador_plano = checar_player (tonumber (DGS: dgsGetText (ID)))
            local tipo = DGS: dgsComboBoxGetSelectedItem (combo)
            if tipo ~ = -1 then
                local vip = DGS: dgsComboBoxGetItemText (combo, tipo)
                triggerServerEvent ("DS: Remover_", localPlayer, localPlayer, jogador_plano, vip)
            end
        end
    end)

setElementData (localPlayer, "DS: Mostrar_mensagem", "Não")
function mensagem_na_tela ()
    if getElementData (localPlayer, "DS: Mostrar_mensagem") == "Sim" then
        dxDrawText ("O (A) Jogador (a)" ..getElementData (localPlayer, "Ultimo_Ativador") .. "\ nAtivou um Plano VIP" ..getElementData (localPlayer, "VIP_do_Ultimo_Ativador") .. "com Sucesso!", x * 0 + 1, y * 0 + 1, x * 1366 + 1, y * 768 + 1, tocolor (255, 255, 255, 255), x * 1.00, fonte, "center", "center", false, false, false, true, false)
    end
end
addEventHandler ("onClientRender" , getRootElement (), mensagem_na_tela)

addEvent ("DS: Tocar_musica", true)
addEventHandler ("DS: Tocar_musica", root, 
    function (VIP)
        setElementData (localPlayer, "DS: Mostrar_mensagem", "Sim")
        setTimer (function () setElementData (localPlayer, "DS: Mostrar_mensagem "," Não ") end, 7000, 1)
        if VIP ==" Bronze "then
            musica_bronze = playSound (" musicas / bronze.mp3 ")
            setTimer (function ()
                stopSound (musica_bronze)
                musica_bronze = nil
            end, 7000, 1 )
        elseif VIP == "Prata" then
            musica_prata = playSound ("musicas / prata.mp3")
            setTimer (function ()
                stopSound (musica_prata)
                musica_prata = nil
            end, 7000, 1)
        elseif VIP == "Ouro" then
            musica_ouro = playSound ("musicas / ouro.mp3")
            setTimer (function ()
                stopSound (musica_ouro)
                musica_ouro = nil
            end, 7000, 1 )
        elseif VIP = = "Diamante" then
            musica_diamante = playSound ("musicas / diamante.mp3")
            setTimer (function ()
                stopSound (musica_diamante)
                musica_diamante = nil
            end, 7000, 1)
        end
    end)

função checar_player (ID)
    para _, k em ipairs (getElementsByType ("player")) faz
        se getElementData (k, "ID") == ID então
            retorna k
        end
    end
end
addEvent ("DS: Abrir_painel_ativacao", true)
addEventHandler ( "DS: Abrir_painel_ativacao", root, 
    function ()
        if DGS: dgsGetVisible (painel_ativar) then
            DGS: dgsSetVisible (painel_ativar, false)
        else
            DGS: dgsSetVisible (painel_ativar, true)
        end
    end)

addEvent ("DS: Abrir_pronto", true)
addEventHandler ("DS: Abrir_pronto", root,
    função (jogador)
        triggerEvent ("DS: Abrir_painel_ativacao", jogador)
    end)

function abrir_painel ()
    triggerServerEvent ("DS: Abrir_painel_ativacao_", localPlayer, localPlayer)
end
bindKey ("f6", "down", abrir_painel)
--------------------- ----------------------------------- Abrir painel vip
local painel_pegar_itens = DGS: dgsCreateWindow (0, 0, x * 450, y * 300, "Painel de vip", false, nil, 25, nil, 0xFF000000, nil, 0xFF000000)
DGS: dgsSetVisible (painel_pegar_itens, false)
DGS: dgsWindowSetSizable (painel_pegar_itens, false)
DGS: dgsWindowSetCloseButton
local ) tabPanel = DGS: dgsCreateTabPanel (0, 0, x * 1, y * 1, verdadeiro, painel_pegar_itens)
centralizar (painel_pegar_itens)
local arma = dxCreateTexture ("Imagens / armas.png")
local avatar1 = dxCreateTexture ("Imagens / avatar1.png")
local avatar2 = dxCreateTexture ("Imagens / avatar2.png")
local carro = dxCreateTexture ("Imagens / carro.png")
local colete = dxCreateTexture ("Imagens / colete.png ")
local heli = dxCreateTexture (" Imagens / heli.png ")
local moto = dxCreateTexture (" Imagens / moto.png ")

addEvent ("DS: Abrir_painel_vipzin", true)
addEventHandler ("DS: Abrir_painel_vipzin", root, 
    função (jogador)
    se isPedInVehicle (jogador), em, retornar fim
    local vip_bronze = getElementData (jogador_prata Bronze, "DS:
    vip_prata Bronze ") local jogador, "DS: Prata")
    local vip_ouro = getElementData (jogador, "DS: Ouro")
    local vip_diamante = getElementData (jogador, "DS: Diamante")
    if vip_bronze == false and vip_prata == false and vip_ouro == false and vip_diamante == false then return end
    if getElementData (jogador, "DS: Bronze") then
        Bronze = DGS: dgsCreateTab ("Bronze", tabPanel, 1, 1, nil,backg)
        armasb = DGS: dgsCreateButton (x * 150, y * 50, x * 130, y * 60, "", falso, Bronze, nulo, 1, 1, arma, arma, arma, 0xFFFFFFFF)
        motob = DGS: dgsCreateButton (x * 150, y * 170, x * 130, y * 80, "", false, Bronze, nil, 1, 1, moto, moto, moto, 0xFFFFFFFF)
    end
    if getElementData (jogador, "DS: Prata") então
        Prata = DGS: dgsCreateTab ("Prata", tabPanel, 1, 1, nil, backg)
        armasp = DGS: dgsCreateButton (x * 150, y * 50, x * 130, y * 60, "", false, Prata, nil, 1, 1, arma, arma, arma, 0xFFFFFFFF)
        carrosp = DGS: dgsCreateButton (x * 150, y * 170, x * 130, y * 60, "", false, Prata, nil, 1, 1, carro, carro , carro,0xFFFFFFFF)
    fim
    se getElementData (jogador, "DS: Ouro") então
        Ouro = DGS: dgsCreateTab ("Ouro", tabPanel, 1, 1, nil, backg)
        armaso = DGS: dgsCreateButton (x * 50, y * 50, x * 130, y * 60, "", falso, Ouro, nulo , 1, 1, arma, arma, arma, 0xFFFFFFFF)
        carroso = DGS: dgsCreateButton (x * 50, y * 170, x * 130, y * 60, "", false, Ouro, nil, 1, 1, carro, carro, carro, 0xFFFFFFFF)
        coleteo = DGS: dgsCreateButton (x * 280, y * 50, x * 100, y * 60, "", falso, Ouro, nulo, 1, 1, colete, colete, colete, 0xFFFFFFFF)
        skino = DGS: dgsCreateButton (x * 280, y * 170, x * 100, y * 60, "", false, Ouro, nil, 1, 1, avatar1, avatar1, avatar1, 0xFFFFFFFF)
    end
    if getElementData (jogador, "DS : Diamante ") então
        Diamante = DGS: dgsCreateTab ("Diamante", tabPanel, 1, 1, nil, backg)
        armasd = DGS: dgsCreateButton (x * 10, y * 50, x * 130, y * 60, "", falso, Diamante, nil , 1, 1, arma, arma, arma, 0xFFFFFFFF)
        carrosd = DGS: dgsCreateButton (x * 10, y * 170, x * 130, y * 60, "", falso, Diamante, nil, 1, 1, carro, carro, carro, 0xFFFFFFFF)
        coleted = DGS: dgsCreateButton (x * 180, y * 50, x * 100, y * 60, "", falso, Diamante, nil, 1, 1, colete, colete, colete, 0xFFFFFFFF)
        helicd = DGS: dgsCreateButton (x * 180, y * 170, x * 100, y * 60, "", falso, Diamante, nil, 1, 1, heli, heli, heli, 0xFFFFFFFF)
        skin1d = DGS: dgsCreateButton (x * 340, y * 50, x * 100, y * 60, "", falso, Diamante, nil, 1, 1,avatar1, avatar1, avatar1, 0xFFFFFFFF)
        skin2d = DGS: dgsCreateButton (x * 340, y * 170, x * 100, y * 60, "", false, Diamante, nil, 1,1, avatar2, avatar2, avatar2, 0xFFFFFFFF)
    end
    DGS: dgsSetVisible (painel_pegar_itens, true)
        addEventHandler ("onDgsMouseClickDown", painel_pegar_itens, 
        function ()
            if source == armasb then
                triggerServerEvent ("DS: Pegar_armas", localPlayer, localPlayer, "Bronze ClickDown")
            end
        end)
        addEvent, painel_pegar_itens, 
        function ()
            if source == armasp then
                triggerServerEvent ("DS: Pegar_armas", localPlayer, localPlayer, "Prata")
            fim
        end)
        AddEventHandler ( "onDgsMouseClickDown", painel_pegar_itens, 
        Função ()
            se a fonte == armaso então
                triggerServerEvent ( "DS: Pegar_armas", localPlayer, localPlayer, "Ouro")
            end
        end)
        AddEventHandler ( "onDgsMouseClickDown", painel_pegar_itens, 
        function ()
            se source == armasd then
                triggerServerEvent ("DS: Pegar_armas", localPlayer, localPlayer, "Diamante")
            end
        end)


        addEventHandler ("onDgsMouseClickDown", painel_pegar_itens, 
        function ()
            if source == motob then
                triggerServerEvent ("DS: Pegar_veiculo", localPlayer, localPlayer, "Bronze")
                triggerEvent ("DS: Fechar_painel_vip", localPlayer)
            end
        end)

        AddEventHandler ( "onDgsMouseClickDown", painel_pegar_itens, 
        function ()
            se uma fonte == carrosp ENTÃO
                triggerServerEvent ( "DS: Pegar_veiculo", localPlayer, localPlayer, "Prata")
                triggerEvent ( "DS: Fechar_painel_vip", localPlayer)
            end
        end)
        AddEventHandler ( " onDgsMouseClickDown ", painel_pegar_itens, 
        function ()
            if source == carroso then
                triggerServerEvent (" DS: Pegar_veiculo ", localPlayer, localPlayer," Ouro ")
                triggerEvent (" DS: Fechar_painel_vip ",localPlayer)
            end
        end)
        AddEventHandler ( "onDgsMouseClickDown", painel_pegar_itens, 
        function ()
            se uma fonte == carrosd ENTÃO
                triggerServerEvent ( "DS: Pegar_veiculo", localPlayer, localPlayer, "Diamantes")
                triggerEvent ( "DS: Fechar_painel_vip", localPlayer)
            end
        end)
        AddEventHandler ( " onDgsMouseClickDown ", painel_pegar_itens, 
        function ()
            if source == helicd then
                triggerServerEvent (" DS: Pegar_veiculo ", localPlayer, localPlayer," Diamantess ")
                triggerEvent (" DS: Fechar_painel_vip ",localPlayer)
            end
        end)
        addEventHandler ("onDgsMouseClickDown", painel_pegar_itens, 
        function ()
            if source == coleteo then
                triggerServerEvent ("DS: Pegar_colete", localPlayer, localPlayer, "Ouro")
            end
        end)

        AddEventHandler ( "onDgsMouseClickDown", painel_pegar_itens, 
        função ()
            se fonte ==
                coleted então triggerServerEvent ( "DS: Pegar_colete", localPlayer, localPlayer, "Diamond")
            extremidade
        final)
        AddEventHandler ( "onDgsMouseClickDown",             Fonte = painel_pegar_itens, 
        função
= Skino então
                triggerServerEvent ("DS: Pegar_skin", localPlayer, localPlayer, "Ouro")
            end
        end)

        addEventHandler ("onDgsMouseClickDown", painel_pegar_itens, 
        function ()
            if source == skin1d then
                triggerServerEvent ("DS: Pegar_skin", localPlayer, localPlayer, "Diamante")
            end
        end)

        addEventHandler ("onDgsMouseClickDown", painel_pegar_itens, 
        function ()
            if source == skin2d then
                triggerServerEvent ("DS: Pegar_skin", localPlayer, localPlayer, "Diamantes")
            end
        end)

fim)

addEvent ("DS: Fechar_painel_vip", true)
addEventHandler ("DS: Fechar_painel_vip", root, 
    função ()
        DGS: dgsSetVisible (painel_pegar_itens, false)
        se Bronze ~ = nulo então
            DGS: dgsDeleteTab (Bronze)
            = nulo         se fimTab (Bronze) = nulo se ~ = Prata
        fim
nulo então
            DGS: dgsDeleteTab (Prata)
            Prata =
        fim nulo
        se Ouro ~ = nulo então
            DGS: dgsDeleteTab (Ouro)
            Ouro =
        fim nulo
        se Diamante ~ = nulo então
            DGS: dgsDeleteTab (Diamante)
            Diamante =
        fim nulo
    )

-------------------------------------------------- -------
 

 

Essa função funciona da seguinte maneira, o jogador abre o painel e ao clicar para pegar armas esse elemento 'triggerEvent ("TS: giveItem", source, source, 28, 1)' seta no invetario do mesmo a arma com id 28 e 1 quantidade, na primeira vez funciona normalmente mas na segunda ele incrementa automaticamente 2 quantiade e assim sucessivamnete, o erro pode estar nesta parte?

 

 

Edited by Sparta
Link to comment

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