Jump to content

Criando um script de armas personalizadas.


Recommended Posts

Olá. Seja bem-vindo ao fórum! :)

As funções necessárias são:

  • dxCreateShader - você usará para criar o shader, pode ser aquele simples que há na Wiki;
  • dxCreateTexture - você usará para criar a textura da arma, no caso seria a imagem que você irá aplicar na arma;
  • dxSetShaderValue - essa função é usada para aplicar a textura ao shader;
  • engineApplyShaderToWorldTexture - essa função aplica o shader ao mundo, é necessário o nome de uma textura no segundo parâmetro. Esse nome, geralmente, é o mesmo que consta no arquivo .txd da arma, você deve aplicar ao localPlayer/jogador.
  • Like 1
Link to post
On 17/05/2021 at 10:26, andr0xy said:

Olá. Seja bem-vindo ao fórum! :)

As funções necessárias são:

  • dxCreateShader - você usará para criar o shader, pode ser aquele simples que há na Wiki;
  • dxCreateTexture - você usará para criar a textura da arma, no caso seria a imagem que você irá aplicar na arma;
  • dxSetShaderValue - essa função é usada para aplicar a textura ao shader;
  • engineApplyShaderToWorldTexture - essa função aplica o shader ao mundo, é necessário o nome de uma textura no segundo parâmetro. Esse nome, geralmente, é o mesmo que consta no arquivo .txd da arma, você deve aplicar ao localPlayer/jogador.

Obrigado vou estar dando uma olhada e estudando.

Link to post
Posted (edited)
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("Texturas/M4A1/M4A1-1.png") -- LOCAL AONDE ESTÁ O PNG DA TEXTURA
engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]", thePlayer) -- "M4A1[057]" é o nome da textura no .dff que vai substituir
dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4)
end
addEvent( "RK:DarM4A1-1", true)
addEventHandler("RK:DarM4A1-1", getRootElement(), SetarSkin) -- Se chamar este evento com uma M4 na mão irá mudar a skin para o PNG citado.

Está aí.. Prontinho pra você. Este vai do lado do client. Então apenas faça um esquema para dar trigger via serverside para a skin ficar visível à todos do servidor.
De nada ;)

Da um UP aí se ajudei

Edited by Rakashy
  • Like 1
Link to post
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("Texturas/M4A1/M4A1-1.png") -- LOCAL AONDE ESTÁ O PNG DA TEXTURA
engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]", thePlayer) -- "M4A1[057]" é o nome da textura no .dff que vai substituir
dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4)
end
addEvent( "RK:DarM4A1-1", true)
addEventHandler("RK:DarM4A1-1", getRootElement(), SetarSkin) -- Se chamar este evento com uma M4 na mão irá mudar a skin para o PNG citado.

Está aí.. Prontinho pra você. Este vai do lado do client. Então apenas faça um esquema para dar trigger via serverside para a skin ficar visível à todos do servidor.
De nada ;)

Da um UP aí se ajudei

Obrigado mano, pela ajuda vou dar uma estudada e obrigado demais por ta me ajudando.❤️

Link to post
Just now, AllissonD said:

Obrigado mano, pela ajuda vou dar uma estudada e obrigado demais por ta me ajudando.❤️

Pode usar ai e testar, vai funcionar certinho, ai é só replicar e alterar a textura pra ir adicionando skins, e não se esqueça de sempre desencadear esses eventos via server-side, pois se chamar o evento direto do client, a skin só irá alterar para você

  • Like 1
Link to post
Just now, Rakashy said:

Pode usar ai e testar, vai funcionar certinho, ai é só replicar e alterar a textura pra ir adicionando skins, e não se esqueça de sempre desencadear esses eventos via server-side, pois se chamar o evento direto do client, a skin só irá alterar para você

ah sim, obrigado por me explicar

Link to post
1 minute ago, Rakashy said:

spacer.png

Segue ai meu script, um exemplo do que pode ser feito.

oloko, eu vi o seu video desse script fiquei impressionado com esse script

Link to post
1 minute ago, AllissonD said:

oloko, eu vi o seu video desse script fiquei impressionado com esse script

Procure Rakashy no youtube e veja meus trabalhos com shader, hoje postei uma atualização do meu Custom de personagens, também tenho um sistema de skins de veiculos para Viaturas, e estou trabalhando em um custom de armas para adicionar Miras, silenciadores, carregadores, etc

  • Like 1
Link to post
Just now, Rakashy said:

Procure Rakashy no youtube e veja meus trabalhos com shader, hoje postei uma atualização do meu Custom de personagens, também tenho um sistema de skins de veiculos para Viaturas, e estou trabalhando em um custom de armas para adicionar Miras, silenciadores, carregadores, etc

esse custom weapons vou querer muito aprender ele e da viatura tbm to até pensando em criar 2 topicos sobre trocas de .dff e txd das armas e outro sobre txd de carros

Link to post
5 minutes ago, AllissonD said:

esse custom weapons vou querer muito aprender ele e da viatura tbm to até pensando em criar 2 topicos sobre trocas de .dff e txd das armas e outro sobre txd de carros

Eu já te dei a faca e o queijo brother. Você pode utilizar o código que te enviei para TODOS, roupas, veículos, objetos, basta trocar, no caso do veículo, ao invés da variável "ped" você utiliza "vehicle" e o restante é jogo de Textura, substitui o nome da textura, para saber qual substituir basta abrir o TXD e ver o nome da textura. 

Para objetos use a variavel "object". E para roupas a variavel e "ped" também pois o elemento está integrado ao jogador.

Um exemplo de como fazer um sistema de armas :

Pegue o modelo de uma arma limpa, sem nenhum attach, pegue o modelo de uma arma com mira, remova a mira dela pelo 3dsMax e coloque no modelo da arma "Limpa". Faça isso com outras partes, carregador, silenciador, basicamente você vai montar um modelo de uma arma completa com todos os attachs utilizando partes de outros modelos, depois jogue as texturas em cima de cada parte, mira, silenciador, carregador, etc... Exporte o dff, e pronto, vc já pode brincar com as texturas utilizando este sistema, colocando texturas invisíveis em todos os attachs e dando a arma apenas com a textura padrão, e ai ao comprar uma mira por exemplo, vc adiciona a textura da mira ao modelo, não sou mt bom pra explicar mais espero que tenha entendido o conceito

  • Like 1
Link to post
4 minutes ago, Rakashy said:

Eu já te dei a faca e o queijo brother. Você pode utilizar o código que te enviei para TODOS, roupas, veículos, objetos, basta trocar, no caso do veículo, ao invés da variável "ped" você utiliza "vehicle" e o restante é jogo de Textura, substitui o nome da textura, para saber qual substituir basta abrir o TXD e ver o nome da textura. 

Para objetos use a variavel "object". E para roupas a variavel e "ped" também pois o elemento está integrado ao jogador.

Um exemplo de como fazer um sistema de armas :

Pegue o modelo de uma arma limpa, sem nenhum attach, pegue o modelo de uma arma com mira, remova a mira dela pelo 3dsMax e coloque no modelo da arma "Limpa". Faça isso com outras partes, carregador, silenciador, basicamente você vai montar um modelo de uma arma completa com todos os attachs utilizando partes de outros modelos, depois jogue as texturas em cima de cada parte, mira, silenciador, carregador, etc... Exporte o dff, e pronto, vc já pode brincar com as texturas utilizando este sistema, colocando texturas invisíveis em todos os attachs e dando a arma apenas com a textura padrão, e ai ao comprar uma mira por exemplo, vc adiciona a textura da mira ao modelo, não sou mt bom pra explicar mais espero que tenha entendido o conceito

ok

Link to post
15 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("Texturas/M4A1/M4A1-1.png") -- LOCAL AONDE ESTÁ O PNG DA TEXTURA
engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]", thePlayer) -- "M4A1[057]" é o nome da textura no .dff que vai substituir
dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4)
end
addEvent( "RK:DarM4A1-1", true)
addEventHandler("RK:DarM4A1-1", getRootElement(), SetarSkin) -- Se chamar este evento com uma M4 na mão irá mudar a skin para o PNG citado.

Está aí.. Prontinho pra você. Este vai do lado do client. Então apenas faça um esquema para dar trigger via serverside para a skin ficar visível à todos do servidor.
De nada ;)

Da um UP aí se ajudei

mano oq é "RK:DarM4A1-1"?

Link to post
12 minutes ago, AllissonD said:

mano oq é "RK:DarM4A1-1"?

Isso é o nome que eu dei pro evento... Você pode usar qualquer nome, no caso, você vai usar este nome pra chamar a função

 

  • Like 1
Link to post
Just now, Rakashy said:

Isso é o nome que eu dei pro evento... Você pode usar qualquer nome, no caso, você vai usar este nome pra chamar a função

 

ah sim, eu to com dificuldade em criar ao server-side to muito confuso

 

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.

×
×
  • Create New...