Jump to content

[HELP]Need help with engineApplyShaderToWorldTexture.


DzMGZXL

Recommended Posts

Okay so i make for my server small custom skin script but i have same problem like mint3d.When i'm in game and restart resource custom skin shows on me but when i go offline and then back skin doesn't show and i need restart resource again.Please help me!!!!

local sx, sy = guiGetScreenSize() 
local scrSrc = dxCreateScreenSource(sx, sy) 
  
local shaderFX = dxCreateShader("tinted_windows.fx", 1, 200, true) 
  
function skins() 
    for keys, player in ipairs(getElementsByType("player")) do 
        if ( getPlayerName(player) == "Jason_Woods" ) then 
            --local shader, tec = dxCreateShader ( "texreplace.fx" ) 
            local shader, tec = dxCreateShader("texreplace.fx", 2, 0, true, "ped") 
            local tex = dxCreateTexture ( "textures/swmyri.png") 
            engineApplyShaderToWorldTexture ( shader, "swmyri", player ) 
            dxSetShaderValue ( shader, "gTexture", tex ) 
        end 
    end 
end 
addEvent("legitimateResponceRecived", true) 
addEventHandler("legitimateResponceRecived", getRootElement(), skins) 
  
function startTheRes() 
    triggerServerEvent("tintDemSkins", getLocalPlayer()) 
end 
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), startTheRes) 
addEventHandler("tintSkins", getRootElement(), startTheRes) 

Link to comment

@Ren_712 Like this?

addEventHandler( "onClientElementStreamIn", getRootElement( ), 
    function ( ) 
        for keys, player in ipairs(getElementsByType("player", "ped")) do 
        if ( getPlayerName(player) == "Jason_Woods" ) then 
            local tex = dxCreateTexture ( "textures/swmyri.png", "dxt5" ) 
            local shader, t = dxCreateShader('texreplace.fx', 0, 0, true, 'ped') 
            engineApplyShaderToWorldTexture ( shader, "swmyri", player ) 
            dxSetShaderValue ( shader, "gTexture", tex ) 
        end 
    end 
); 

Link to comment

Before you do something with this kind of scripts, learn scripting first.

onClientElementStreamIn/Out events have variable "source" as the element it is streaming. So instead of looping entire players each time, just check if streamed element is player(as wiki example) and if it is, let it do as it is.

+in the last script there is missing one end.

Link to comment
ULTRAMEN - onClientElementStreamIn and onClientElementStreamOut

You'll also have to reverse what was done when the element is streamed in. Search for removeShaderFromWorldTexture and destroyElement.

local shaders = {} 
function loadCustomSkin(customSkin, name, ID, customText) 
    if ( (customSkin == nil) or (customSkin == 0) ) then 
        for keys, player in ipairs(getElementsByType("player")) do 
            if ( getPlayerName(player) == name ) then 
                for k, v in pairs(shaders) do 
                    if ( v[2] == ID ) then 
                        engineRemoveShaderFromWorldTexture(v[1], tostring(v[5]), player) 
                    end 
                end 
            end 
        end 
    else 
        for keys, player in ipairs(getElementsByType("player")) do 
            local ID2 = ID 
            if ( getPlayerName(player) == Jason_Woods ) then 
                local ID, tec = dxCreateShader("texreplace.fx", 2, 0, true, "ped") 
                local tex = dxCreateTexture ( "textures/"..tostring(customSkin)..".png") 
                engineApplyShaderToWorldTexture ( ID, tostring(customText) , player ) 
                dxSetShaderValue ( ID, "gTexture", tex ) 
                table.insert(shaders, {ID, ID2, name, player, customText, customSkin}) 
            end 
        end 
    end 
    for keys, player in ipairs(getElementsByType("player")) do 
        for k, v in pairs(shaders) do 
            local ids = v[1] 
            local ids, tec = dxCreateShader("texreplace.fx", 2, 0, true, "ped") 
            local tex = dxCreateTexture ( "textures/"..tostring(v[6])..".png") 
            engineApplyShaderToWorldTexture(ids, tostring(v[5]), player) 
            dxSetShaderValue ( ids, "gTexture", tex ) 
        end 
    end 
end 
addEvent("loadCustomSkin", true) 
addEventHandler("loadCustomSkin", getRootElement(), loadCustomSkin) 

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