Szerző Téma: Paintjob shader  (Megtekintve 989 alkalommal)

Nem elérhető Live

  • 507
    • Profil megtekintése
Paintjob shader
« Dátum: 2015. Július 23. - 12:17:10 »
0 Show voters
Üdvözletem!
Vegyük elő az elegyet, az elegynek van alapból 3 paintjobja, viszont én szeretnék neki egy 4-ediket is csinálni.
Arra lennék kíváncsi, hogy ezt hogy lehetséges, már próbálkoztam többféle módon, de vagy minden elegynek lecserélte a textúráját, vagy csak az alap 3 paintjob működött, illetve valamikor csak 1 paintjob textúrát töltött be.
texturechanger.fx:
 

texture gPaintjobTexture;
technique paintjob
{
pass P0
{
Texture[0] = gPaintjobTexture;
}
}

 
paintjobC.lua:
 

local paintjobTextures = {}
local paintjobShaders = {}
local paintjobs = {
Elegy = {
[1] = \"elegy1body256\",
[2] = \"elegy2body256\",
[3] = \"elegy3body256\"
}
}
addEventHandler(\"onClientResourceStart\", getRootElement(),
function()
for k, v in ipairs(getElementsByType(\"vehicle\")) do
   local vehiclePaintjob = getElementData(v, \"vehicle.tuning.paintjob\") or 0
   local vehicleName = getVehicleName(v)
   if vehiclePaintjob > 0 and paintjobs[vehicleName][vehiclePaintjob] then
      paintjobShaders[k] = dxCreateShader(\"files/texturechanger.fx\")
      paintjobTextures[k] = dxCreateTexture(\"files/paintjobs/\" .. paintjobs[vehicleName][vehiclePaintjob] .. \".png\")
      if paintjobShaders[k] and paintjobTextures[k] then
         dxSetShaderValue(paintjobShaders[k], \"gPaintjobTexture\", paintjobTextures[k])
         engineApplyShaderToWorldTexture(paintjobShaders[k], paintjobs[vehicleName][vehiclePaintjob])
      end
   end
end
end
)

 
Válaszokat előre is köszönöm.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal