Jump to content

Aplicação de Textura personalizada em armas


Recommended Posts

Olha eu aqui de novo kkk, então, to trabalhando num projeto de "/Skins". Até ai tudo bem, base feita, script funcionando, a questão é, quando eu aplico a textura com o comando por exemplo /Skin2, a skin carrega pra todos os jogadores presentes, e eu queria saber como faço pra ela carregar apenas para o jogador que utilizou o comando, (Ainda quero que todos consigam ver a skin na mão do jogador, porém a skin só muda pra arma dele). Tentei fazer a checagem via Server side mais não tive mt sucesso, sou bem leigo com shader..

Parte do Client:

function SetarSkin()
local ShaderM4 = [[
    texture tex;
    technique replace {
        pass P0 {
            Texture[0] = tex;
        }
    }
]]

local ShaderM4_RK = dxCreateShader(ShaderM4, 0, 0, false, "ped")
local Texture_M4 = dxCreateTexture("Skin1.png") -- Textura
engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]")
dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4)
end
addEvent( "DarSkin", true)
addEventHandler("DarSkin", getRootElement(), SetarSkin)

Server side:

function Skin(source)
if getElementData(source, "PermSkin") == "Sim" then
triggerClientEvent("DarSkin", source)
else
outputChatBox("Você não tem permissão")
end
end
addCommandHandler("Skin22", Skin)

Como podem ver, a skin carrega e consigo ver de ambos os lados, porém carrega pra todos os jogadores, então resumindo, como faço pra alterar apenas a textura na arma do jogador que digitou o comando ?

spacer.png

Link to comment
function SetarSkin(thePlayer)
local ShaderM4 = [[
    texture tex;
    technique replace {
        pass P0 {
            Texture[0] = tex;
        }
    }
]]

local thePlayer = source
local ShaderM4_RK = dxCreateShader(ShaderM4, 0, 0, false, "ped")
local Texture_M4 = dxCreateTexture("image2.png") -- Textura
engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]", thePlayer)
dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4)
end
addEvent( "DarSkin", true)
addEventHandler("DarSkin", getRootElement(), SetarSkin)

Então mano, fiz desta forma e parece funcionar bem agora, pode dar uma olhada e me dizer se está de fato correto agora ?

Link to comment
14 hours ago, Rakashy said:

function SetarSkin(thePlayer)
local ShaderM4 = [[
    texture tex;
    technique replace {
        pass P0 {
            Texture[0] = tex;
        }
    }
]]

local thePlayer = source
local ShaderM4_RK = dxCreateShader(ShaderM4, 0, 0, false, "ped")
local Texture_M4 = dxCreateTexture("image2.png") -- Textura
engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]", thePlayer)
dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4)
end
addEvent( "DarSkin", true)
addEventHandler("DarSkin", getRootElement(), SetarSkin)

Então mano, fiz desta forma e parece funcionar bem agora, pode dar uma olhada e me dizer se está de fato correto agora ?

Aparentemente sim, dá uma testada pra ter certeza. Essa função aí vc está dando um trigger para todos os players passando o jogador com skin como parâmetro, né?

Link to comment
  • Other Languages Moderators

É pra funcionar sim. Só uma correção. Não se usa source como parâmetro de função. Como aqui, por exemplo (ignora a seta, vou falar depois):
UG8OQEG.png

Sobre a setinha vermelha, você já está passando o jogador que usou o comando "Skin22", então lá no client-side, basta usar source. Lembrando que é uma variável pré-definida, então não precisa declará-la em nenhum lugar.
4oBSmfA.png

Link to comment

Obrigado pela ajuda pessoal, mais agora talvez viajando além da conta, é só  uma dúvida... Além de alterar a textura para o jogador, também serial possível alterar o .dff da arma ? Se sim, como? Ou eu estou viajando de mais kkk? Se alguém souber e puder me dar um norte de onde começar, eu aceito

Link to comment

Tenho mais um problema e gostaria da ajuda de vocês, eu consigo substituir a textura da M4 tranquilamente, porém não estou conseguindo com outras armas, por exemplo, tentei com a Desert Eagle, e quando aplico a textura, a textura carregam porém não está alterando a skin da arma, tem algo que eu deva fazer no .dff da Desert Eagle para que ela aceite as texturas ? vi algo sobre ter que tirar o UV pra poder conseguir substituir as texturas, mais removendo o UV do .dff fica uma skin totalmente branca...A M4 eu consegui sem problemas pois encontrei o modelo da Arma já pronta para baixar, então não precisei modificar nada no .dff dela.

Link to comment
  • 1 month later...
On 16/04/2021 at 04:15, Boechat said:

Aparentemente sim, dá uma testada pra ter certeza. Essa função aí vc está dando um trigger para todos os players passando o jogador com skin como parâmetro, né?

Tô com esse problema também, eu consigo ver a skin mas os outros players não, pode ajudar ?

Link to comment
16 hours ago, Noxis said:

Tô com esse problema também, eu consigo ver a skin mas os outros players não, pode ajudar ?

Provavelmente você tem que dar um trigger com triggerClientEvent no lado do servidor para todos os players chamando a função de mudar a skin com o player que vai mudar de skin como parâmetro, assim o player vai mudar a skin dele em todos os clients.

Link to comment
On 19/05/2021 at 08:43, Boechat said:

Provavelmente você tem que dar um trigger com triggerClientEvent no lado do servidor para todos os players chamando a função de mudar a skin com o player que vai mudar de skin como parâmetro, assim o player vai mudar a skin dele em todos os clients.

É exatamente isso mesmo, a gente que não tem tanta experiência na área as vezes passa uns sufoco besta né? eu igual doido tentando resolver os B.O pra no final ver que era algo tão simples... Consegui resolver todos os problemas tranquilamente quando parei pra ler com calma a wiki.. Obrigado pela ajuda, e pode encerrar o tópico.

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