Recommended Posts

Spoiler

bindKey("mouse2","down",function()
    Crosshair_table = {}
    if getElementData(getLocalPlayer(),"sight") then
        if oldSight and oldSight == getElementData(getLocalPlayer(),"sight") then
            return 
        end    
        if default then
            default = getElementData(getLocalPlayer(),"sight")
        else
            default = "utilitarios/painel/images/false.png"
        end
        local defaults = dxCreateTexture(default)
        local oldSight = getElementData(getLocalPlayer(),"sight")
        Crosshair_table = dxCreateShader("utilitarios/painel/texreplace.fx")
        engineApplyShaderToWorldTexture(Crosshair_table, "siteM16")
        dxSetShaderValue(Crosshair_table, "gTexture", defaults)
    end    
end)    

 Pode me ajuda a arruma esse bug? fica dando aviso quando clico com o 'mouse2' 
 

Spoiler

bad argument @'dxcreateTexture' [expecte mumber at argument 2, got none]

Onde eu errei no script?

Edited by felipebaidoloko

Share this post


Link to post

Favor utilizar a ferramenta de código no formato LUA para postar seu código.
MSHAyJ3.png

Edited by Lord Henry

Share this post


Link to post
bindKey("mouse2","down",function()
    Crosshair_table = {}
    if getElementData(getLocalPlayer(),"sight") then
        if oldSight and oldSight == getElementData(getLocalPlayer(),"sight") then
            return 
        end    
        if default then
            default = getElementData(getLocalPlayer(),"sight")
        else
            default = "utilitarios/painel/images/false.png"
        end
        local defaults = dxCreateTexture(default)
        local oldSight = getElementData(getLocalPlayer(),"sight")
        Crosshair_table = dxCreateShader("utilitarios/painel/texreplace.fx")
        engineApplyShaderToWorldTexture(Crosshair_table, "siteM16")
        dxSetShaderValue(Crosshair_table, "gTexture", defaults)
    end    
end)  

Aviso que da é esse 
 

bad argument @'dxcreateTexture' [expecte mumber at argument 2, got none]

 Eu nao sabia como mostrar, mais esta ai
 

Share this post


Link to post
local defaults = dxCreateTexture(default)

O erro basicamente diz que está faltando um argumento numérico como segundo argumento. (depois do default)
Isso acontece quando o primeiro argumento não é um caminho de arquivo válido e nem uma informação de pixel.
Leia mais em: DxCreateTexture

Experimente trocando todas as barras ( / ) do caminho por contra barras. ( \ )
Tenha certeza de que o caminho está declarado corretamente.

default = "utilitarios\painel\images\false.png"

 

Edited by Lord Henry

Share this post


Link to post

Sim ele esta certo, esse sistema é um painel de miras para armas (rifles,pistolas,12, etc) ele tem um monte de mira, ai vc seleciona a mira que vc quer e aplica ai nao da esse aviso.. 

So que esse aviso so mostra para o jogador que nao seleciono a mira então eu coloquei uma mira ate ele selecionar uma que é o 

default = "utilitarios\painel\images\false.png"

.. So que ainda continua o aviso

Share this post


Link to post

Coloque isso:

outputChatBox (tostring(default))

Logo após as condições, para ver o valor de default ao clicar. Me diga o que aparece no chat.

Por curiosidade, como está organizado seu resource? O script que está dando o erro está dentro de uma pasta dentro do resource ou está na raiz do resource?

Edited by Lord Henry

Share this post


Link to post

Estou usando dentro da GM, voce tem Discord? ai podemos conversa por la
vou ver o aviso que da no chat

 

bindKey("mouse2","down",function()
	Crosshair_table = {}
	if getElementData(getLocalPlayer(),"sight") then
		if oldSight and oldSight == getElementData(getLocalPlayer(),"sight") then
			return 
		end	
		defaults = dxCreateTexture(getElementData(getLocalPlayer(),"sight"))
		oldSight = getElementData(getLocalPlayer(),"sight")
		Crosshair_table = dxCreateShader("utilitarios/painel/texreplace.fx")
		engineApplyShaderToWorldTexture(Crosshair_table, "siteM16")
		dxSetShaderValue(Crosshair_table, "gTexture", defaults)
	end	
end)

esse erro esta apenas no script da resource, ela esta funcionando normal so que da erro
a função original é essa 

 

ai fiz aquela função pra ver se ia sair o aviso

Edited by felipebaidoloko
Edit

Share this post


Link to post

 

10 minutes ago, felipebaidoloko said:

Estou usando dentro da GM, voce tem Discord? ai podemos conversa por la
vou ver o aviso que da no chat

 


bindKey("mouse2","down",function()
	Crosshair_table = {}
	if getElementData(getLocalPlayer(),"sight") then
		if oldSight and oldSight == getElementData(getLocalPlayer(),"sight") then
			return 
		end	
		defaults = dxCreateTexture(getElementData(getLocalPlayer(),"sight"))
		oldSight = getElementData(getLocalPlayer(),"sight")
		Crosshair_table = dxCreateShader("utilitarios/painel/texreplace.fx")
		engineApplyShaderToWorldTexture(Crosshair_table, "siteM16")
		dxSetShaderValue(Crosshair_table, "gTexture", defaults)
	end	
end)

esse erro esta apenas no script da resource, ela esta funcionando normal so que da erro
a função original é essa 

 

ai fiz aquela função pra ver se ia sair o aviso

'-'
Não entendi as alterações que vc fez...
Cade o outputChatBox? O que saiu nele?

Edited by Lord Henry

Share this post


Link to post
1 hour ago, felipebaidoloko said:

Apareceu isso aqui quando mirei sem eu selecionar a mira no painel
 


utilitarios/painel/images/false.png
0
0
0
0
0
0

 

Você clicou 7 vezes, não é?

Quantas vezes apareceu o erro?
6 ou 7 vezes?

===================================

De acordo com esse primeiro código:

bindKey("mouse2","down",function()
    Crosshair_table = {}
    if getElementData(getLocalPlayer(),"sight") then
        if oldSight and oldSight == getElementData(getLocalPlayer(),"sight") then
            return 
        end    
        if default then
            default = getElementData(getLocalPlayer(),"sight")
        else
            default = "utilitarios/painel/images/false.png"
        end
        local defaults = dxCreateTexture(default)
        local oldSight = getElementData(getLocalPlayer(),"sight")
        Crosshair_table = dxCreateShader("utilitarios/painel/texreplace.fx")
        engineApplyShaderToWorldTexture(Crosshair_table, "siteM16")
        dxSetShaderValue(Crosshair_table, "gTexture", defaults)
    end    
end)

No primeiro clique ele não encontrou um valor no default (nulo), por isso entrou naquela segunda condição do caminho da imagem e colocou o texto do caminho no default.
No segundo clique ele encontrou um valor no default "utilitarios/painel/images/false.png" e portanto entrou na primeira condição, que alterou o valor de default para getElementData(getLocalPlayer(),"sight") que ao ser convertido para texto, gerou "0". Isso indica que o jogador está com a Data "sight" valendo 0.
Dai que ocorre o erro, pois quando default é um número (no caso, 0) ele exige um segundo parâmetro numérico no dxCreateTexture e é exatamente isso que ele está reclamando, ele está dizendo que esperava um segundo argumento numérico, mas obteve nada.

Edited by Lord Henry

Share this post


Link to post

certo e o que devo fazer?

apareceu apenas 1 vez o 0... cada vez que eu clicava aparecia 0

 

mais no primeiro click deu 

utilitarios/painel/images/false.png

 ai cada click que dava aparecia 0

 

Share this post


Link to post
20 hours ago, felipebaidoloko said:

certo e o que devo fazer?

apareceu apenas 1 vez o 0... cada vez que eu clicava aparecia 0

 

mais no primeiro click deu 


utilitarios/painel/images/false.png

 ai cada click que dava aparecia 0

 

Foi oq eu disse...
No primeiro clique ele entra na segunda condição e coloca o caminho no default, depois ele fica entrando sempre na primeira condição e coloca 0 no default.

Share this post


Link to post
20 hours ago, felipebaidoloko said:

certo e o que devo fazer?

O erro só acontece quando vc não seleciona nenhuma das miras do painel, né?
E quando nenhuma das miras está selecionada, ele deve usar automaticamente essa imagem utilitarios/painel/images/false.png na mira, né?
Creio que a variável default deveria sempre receber aquele valor da Data do jogador, independente dela estar vazia ou não. Supondo que ao selecionar cada mira, o valor Data mude, você pode usar o valor 0 justamente para colocar essa mira false.png
Se a Data não for 0, significa que ele selecionou alguma mira e então ele não vai criar a mira padrão.

bindKey("mouse2","down",function()
    Crosshair_table = {}
    if getElementData(getLocalPlayer(),"sight") then -- Isso é um verificador para caso não exista essa Data no jogador.
        if oldSight and oldSight == getElementData(getLocalPlayer(),"sight") then -- Não sei pra quê isso...
            return
        end
        if getElementData(getLocalPlayer(),"sight") == 0 then -- Se a Data sight do jogador for 0, faz isso:
            default = "utilitarios/painel/images/false.png" -- default é a imagem da mira padrão.
            defaults = dxCreateTexture(default) -- defaults cria a mira na tela.
            local oldSight = getElementData(getLocalPlayer(),"sight")
            Crosshair_table = dxCreateShader("utilitarios/painel/texreplace.fx")
            engineApplyShaderToWorldTexture(Crosshair_table, "siteM16")
            dxSetShaderValue(Crosshair_table, "gTexture", defaults)
        end
    end    
end)

 

Share this post


Link to post

so tem um porem esse 

getElementData(getLocalPlayer(),"sight")

ele que seta a mira do painel, quando voce seleciona a mira e clica em aplicar mira, ai ele aplica no dxCreateTexture

e o 

utilitarios/painel/images/false.png"

so coloquei ele pra selecionar uma mira na dela, pois ficava um quadrado branco na tela ate alguem selecionar a mira por isso dava aviso

Share this post


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.