Jump to content

Ajuda sobre inventario


Recommended Posts

Posted

Olá parei com todos os meus projetos e estou desenvolvendo um inventario simples como não sou muito bom ainda com programação

Queria saber se tem como fazer um botão para Armar e Guardar, por exemplo o player compra uma arma e ele abre um dx que tem o botao de guardar, quando ele clica em guardar ela altomaticamente some dos slots da hud e da mao do player mais ele continuaria com ela , depois no botao de baixo ele pode habilitar "armar" com a arma e ela voltaria a aparecer na hud e apareceria na mao do jogador para ele poder usar, alguem poderia me ajudar nessa parte

Posted

mano eu não manjo em dx mais eu me dou bem com ele

Isso vai ajudar muito porque pretendo fazer sistema de revista e quando o player tiver com a arma guardada nao ira aparecer para o police

Posted

Vamos por partes:

  • Primeiro faça a base de seu inventário;
  • Logo após planeje onde vão ficar os ícones das armas, pegando as coordenadas e dimensões dos mesmos;
  • Após isso começamos a parte funcional.
Posted

Certo , isso tudo eu ja fiz e as funções tambem consigo aplicar a cada botao dx , no caso da hud e pra depois porque vou ter que sintoniza junto com o inventario, pra agora oque eu quero é quando clico em certo botao ele some da mao do jogador e quando ele usa o scroll não aparece , so ira aparecer quando ele apertar no outro botao para armar

Posted

Exatamente quando aperta o botao , ela desaparece da mao do jogador e quando ele usa o scroll ela nao aparece, agora quando ele aperta o outro botao ela aparece na mao dele normalmente e ele pode usar o scroll que ela vai aparecer normalmente

Posted

Oque estou fazendo de errado 

Jogador = getLocalPlayer()
for slot = 0, 12 do
for Armas = 1, 40 do
local Armamentos = (getPedWeapon (Jogador, slot) == Armas) 
end
end

if Armamentos == 30 then
    dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
	else
	dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 100), false)
end

Estou tentando fazer com que se o player tiver a arma ak-47 sendo no slot 0 ao 12 ela aparece com 255 opacidade se não tiver a arma ele tem 100 de opacidade

Posted
35 minutes ago, LucasMTA said:

Oque estou fazendo de errado 


Jogador = getLocalPlayer()
for slot = 0, 12 do
for Armas = 1, 40 do
local Armamentos = (getPedWeapon (Jogador, slot) == Armas) 
end
end

if Armamentos == 30 then
    dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
	else
	dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 100), false)
end

Estou tentando fazer com que se o player tiver a arma ak-47 sendo no slot 0 ao 12 ela aparece com 255 opacidade se não tiver a arma ele tem 100 de opacidade

Isso é da Hud, ou do inventário?

Posted

inventario

arrumei algumas coisas mais msm assim nada 

local Jogador = getLocalPlayer()
for slot = 0, 12 do
for Armas = 1, 40 do
local Armamentos = (getPedWeapon (Jogador, slot) == Armas) 


if Armamentos == 30 then
    dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
	else
	dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 100), false)
end
end
end

 

Posted

Tente assim:

function verificarArmasInv()
   for slot = 1,12 do
      local w = getPedWeapon(localPlayer, slot)
      if w and w ~= 0 then
         weapons[slot] = w
      end
   end
end

addEventHandler("onClientRender", root,
function() --//Recomendo que você nomeie sua função, caso ela seja chamada em breve
   dxDrawImage((weapons[12] and "diretório/img" or "diretorio/img"), coordenadas, e afins) --// Onde está 12 você altera pelo ID de sua arma que quer obter
end
)

 

Posted
attempt to index global 'weapons' (a nil value)

está dando erro na linha 5 que está juntamente com a linha 4 ne oque significa esse erro

Posted (edited)
local Slot = getPedWeaponSlot (localPlayer)
local Arma = getPedWeapon (localPlayer)
	if (Slot == 5 and Arma == 30)	then
	   dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)--img 1
       else
	   dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 80), false)--img 2
	end

eu tentei dessa forma , funcionou porem quando eu tiro a arma da mao ela simplesmente fica na img 2 não na img 1

tambem tentei dessa maneira, mais nao obetive sucesso tambem :[

if (getPedWeapon (localPlayer, 30) == 5) then 
    dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) --img 1
else
    dxDrawImage(x*640, y*285, x*30, y*30, "imagens/armas/1.png", 0, 0, 0, tocolor(255, 255, 255, 80), false) --img 2
end

 

Edited by LucasMTA
  • Other Languages Moderators
Posted

Não é possível. Você não pode ter 2 armas diferentes no mesmo slot.

Cada slot só suporta 1 arma. Mais detalhes no Weapons

Edit: talvez seja possível através de gambiarras, o que não é recomendável

Posted

entendi em relação ao botao que eu sitei la em cima pra fazer com que a arma seja guardada vamos supor que ela nao apareça no slot mais o player msm assim tenha ela oque eu devo usar

 

Posted

Voltei denovo sobre o inventario , eu tenho uma função armas que e uma aba do meu painel dx estou tentando clicar em um botao que fiz nela mais nao to conseguindo oque estou errando

 

    if DX_Inventario == true then
        if state == "down" then
            if Posicao_Mouse_Inventario(x*440, y*320, x*180, y*35) then --Armas
			    playSound("sounds/click.mp3", false)
                addEventHandler("onClientRender", root, armas)
				removeEventHandler ( "onClientRender", getRootElement(), informacoes )
				removeEventHandler ( "onClientRender", getRootElement(), comidas )
				removeEventHandler ( "onClientRender", getRootElement(), Inventario )
				if Posicao_Mouse_Inventario(x*445, y*445, x*80, y*20) then --Click IMG1
			        playSound("sounds/click.mp3", false)
				end
            end
        end
    end

 

Posted
5 hours ago, LucasMTA said:

Voltei denovo sobre o inventario , eu tenho uma função armas que e uma aba do meu painel dx estou tentando clicar em um botao que fiz nela mais nao to conseguindo oque estou errando

 


    if DX_Inventario == true then
        if state == "down" then
            if Posicao_Mouse_Inventario(x*440, y*320, x*180, y*35) then --Armas
			    playSound("sounds/click.mp3", false)
                addEventHandler("onClientRender", root, armas)
				removeEventHandler ( "onClientRender", getRootElement(), informacoes )
				removeEventHandler ( "onClientRender", getRootElement(), comidas )
				removeEventHandler ( "onClientRender", getRootElement(), Inventario )
				if Posicao_Mouse_Inventario(x*445, y*445, x*80, y*20) then --Click IMG1
			        playSound("sounds/click.mp3", false)
				end
            end
        end
    end

 

Cadê o evento "onClientClick" mnin?

@LucasMTA use o Posição Mouse do playSound como condição alternativa

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