Jump to content

Skins de autos / Paintjobs


MBAUser

Recommended Posts

Buenas noches!!, Alguien sabe si se puede de alguna manera tener varios "Skins de autos" y que sea visibles por todos¿?
Otra pregunta es si esta función se puede hacer para un team nada mas, pero que los demas la puedan ver.
Y la ultima si los coches que no tengan paintjob se pueden aplicar mas de 4, y de que manera, si alguno sabe aunque sea uno me seria de gran ayuda, gracias!

function CambiarSkin1()
	
	txd = engineLoadTXD("mod.txd", 411)
	engineImportTXD(txd, 411)	
	dff = engineLoadDFF("mod.dff", 411)	
	engineReplaceModel(dff, 411)
	
end
addEventHandler("onClientResourceStart", resourceRoot, CambiarSkin1) --Hay alguna forma de cambiarlo para que solo un team se le aplique?

 

Link to comment

Un poco tarde pero bueno xD

1 y 2. Lo de skins de autos te refieres a modelos o texturas diferentes para un coche solo? Si te refieres a modelos siempre puedes remplazar coches de gta por otros de internet,lo cual si remplazas un turismo siempre el turismo se vera como lo remplazaste no se puede hacer para una persona o grupo solo,  si te refieres a diferentes texturas para el mismo auto serian shaders. Cuando remplazas un modelo de vehículo ya es visible para todos.

3. Se podrían añadir paintjobs unicos con shaders.

  • Like 1
Link to comment

Gracias igual por contestar! A lo que me referia es que tener varias texturas para un mismo vehiculo que importé. El problema ahora es que no se como poner determinados paintjob a vehiculos como este:
21et6c6.jpg
No necesito que cambie de color el vehiculo, solo que pueda aceptar diferentes texturas... ¿Es posible?

Link to comment

@Starztec  Siempre puedes usar shaders para añadir paintjobs customs a vehículos con el uv map bien hecho.

Para saber el nombre de una textura de un vehículo remplazado, siempre puedes abrir el .txd del vehículo y ahí puedes exportar la textura para crear un paintjob o ver el nombre de la textura para remplazarla en el shader.

Puedes usar este shader para remplazar la textura

Shader.fx

texture gTexture; 
  
technique TexReplace 
{ 
    pass P0 
    { 
        Texture[0] = gTexture; 
    } 
} 

 

Y luego en cliente usas estas funciones para remplazar la textura

dxCreateShader()   dxCreateTexture()   engineApplyShaderToWorldTexture()   dxSetShaderValue()

Edited by Jose76Tron
  • Thanks 1
Link to comment
function addPaintjob(commandName,paintjobID)
    me = getLocalPlayer()
if isPedInVehicle ( me ) then
    triggerServerEvent ( "addPJ", resourceRoot, tonumber(paintjobID), me )
end
end
addCommandHandler ("addpaintjob",addPaintjob)

function addPaintjob2(paintjobID,player)
if paintjobID == 1 then
    myTexture = dxCreateTexture( "paintjob1.png" )
    elseif paintjobID == 2 then
    myTexture = dxCreateTexture( "paintjob2.png" )
    elseif paintjobID == 3 then
    myTexture = dxCreateShader( "paintjob3.png" )
    elseif paintjobID == 4 then
    myTexture = dxCreateShader( "paintjob4.png" )
    elseif paintjobID == 5 then
    myTexture = dxCreateTexture( "paintjob5.png" )
    elseif paintjobID == 6 then
    myTexture = dxCreateTexture( "paintjob6.png" )
    else
    if player == getLocalPlayer() then
    outputChatBox ("There is no such paintjob ID!")
    return
    end
    end
    engineRemoveShaderFromWorldTexture ( shader_cars, "vehiclegrunge256", getPedOccupiedVehicle(player) )
    shader_cars, tec = dxCreateShader ( "shader.fx" )
    engineApplyShaderToWorldTexture ( shader_cars, "vehiclegrunge256", getPedOccupiedVehicle(player) )
    dxSetShaderValue ( shader_cars, "TX0", myTexture ) 
end
addEvent( "addPJ2", true )
addEventHandler( "addPJ2", getLocalPlayer(), addPaintjob2 )

function removePaintjob2(player)
if     engineApplyShaderToWorldTexture ( shader_cars, "vehiclegrunge256", getPedOccupiedVehicle(player) ) then
    me = getLocalPlayer()
    engineRemoveShaderFromWorldTexture ( shader_cars, "vehiclegrunge256", getPedOccupiedVehicle(player) )
    removePaintjob2(player)
    end
end
addEvent( "removePJ2", true )
addEventHandler( "removePJ2", getLocalPlayer(), removePaintjob2 )

function removePaintjob()
triggerServerEvent ( "removePJ", resourceRoot, getLocalPlayer() )
end
addCommandHandler ("removepaintjob",removePaintjob)

Shader: 
texture TX0; 
  
technique tec0 

    pass P0 
    { 
        Texture[0] = TX0; 
    } 


La cosa es que con esto al ponerle el paintjob no me cambia el vehiculo... ahora estoy usando un bus modificado pero tampoco, intente ponerle el nombre al .PNG de la textura q usa el .BUS, pero tampoco lo cambia, sabrias porqué?

Al cambiar "vehiclegrunge256", getPedOccupiedVehicle(player) ) por la textura original que deberia ser pude, Muchas gracias!!

Link to comment
  • 1 year later...
On 14/09/2017 at 08:02, Starztec said:

function addPaintjob(commandName,paintjobID)
    me = getLocalPlayer()
if isPedInVehicle ( me ) then
    triggerServerEvent ( "addPJ", resourceRoot, tonumber(paintjobID), me )
end
end
addCommandHandler ("addpaintjob",addPaintjob)

function addPaintjob2(paintjobID,player)
if paintjobID == 1 then
    myTexture = dxCreateTexture( "paintjob1.png" )
    elseif paintjobID == 2 then
    myTexture = dxCreateTexture( "paintjob2.png" )
    elseif paintjobID == 3 then
    myTexture = dxCreateShader( "paintjob3.png" )
    elseif paintjobID == 4 then
    myTexture = dxCreateShader( "paintjob4.png" )
    elseif paintjobID == 5 then
    myTexture = dxCreateTexture( "paintjob5.png" )
    elseif paintjobID == 6 then
    myTexture = dxCreateTexture( "paintjob6.png" )
    else
    if player == getLocalPlayer() then
    outputChatBox ("There is no such paintjob ID!")
    return
    end
    end
    engineRemoveShaderFromWorldTexture ( shader_cars, "vehiclegrunge256", getPedOccupiedVehicle(player) )
    shader_cars, tec = dxCreateShader ( "shader.fx" )
    engineApplyShaderToWorldTexture ( shader_cars, "vehiclegrunge256", getPedOccupiedVehicle(player) )
    dxSetShaderValue ( shader_cars, "TX0", myTexture ) 
end
addEvent( "addPJ2", true )
addEventHandler( "addPJ2", getLocalPlayer(), addPaintjob2 )

function removePaintjob2(player)
if     engineApplyShaderToWorldTexture ( shader_cars, "vehiclegrunge256", getPedOccupiedVehicle(player) ) then
    me = getLocalPlayer()
    engineRemoveShaderFromWorldTexture ( shader_cars, "vehiclegrunge256", getPedOccupiedVehicle(player) )
    removePaintjob2(player)
    end
end
addEvent( "removePJ2", true )
addEventHandler( "removePJ2", getLocalPlayer(), removePaintjob2 )

function removePaintjob()
triggerServerEvent ( "removePJ", resourceRoot, getLocalPlayer() )
end
addCommandHandler ("removepaintjob",removePaintjob)

Shader: 
texture TX0; 
  
technique tec0 

    pass P0 
    { 
        Texture[0] = TX0; 
    } 


La cosa es que con esto al ponerle el paintjob no me cambia el vehiculo... ahora estoy usando un bus modificado pero tampoco, intente ponerle el nombre al .PNG de la textura q usa el .BUS, pero tampoco lo cambia, sabrias porqué?

Al cambiar "vehiclegrunge256", getPedOccupiedVehicle(player) ) por la textura original que deberia ser pude, Muchas gracias!!

Tengo el mismo problema, quiero añadir Paintjobs custom pero no se hacerlo. ¿Me podrias ayudar?

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