DzMGZXL Posted August 29, 2014 Posted August 29, 2014 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)
Ren_712 Posted August 29, 2014 Posted August 29, 2014 You will need this client-side event: https://wiki.multitheftauto.com/wiki/On ... ntStreamIn Whenever an element is streamed in (check the ped element name) apply shader to the ped element. https://wiki.multitheftauto.com/wiki/On ... tStreamOut remove it when the element streame out.
DzMGZXL Posted August 29, 2014 Author Posted August 29, 2014 @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 );
Skuleris Posted August 30, 2014 Posted August 30, 2014 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.
Ren_712 Posted August 30, 2014 Posted August 30, 2014 ULTRAMEN - nope. Please read the events description on the wiki. You'll find almost a fitting example there.
DzMGZXL Posted August 30, 2014 Author Posted August 30, 2014 ULTRAMEN - nope. Please read the events description on the wiki. You'll find almost a fitting example there. You can't just say what event i need to use or remake this to working?I really don't know with shaders nothing.
Ren_712 Posted September 2, 2014 Posted September 2, 2014 ULTRAMEN - onClientElementStreamIn and onClientElementStreamOut You'll also have to reverse what was done when the element is streamed in. Search for removeShaderFromWorldTexture and destroyElement.
DzMGZXL Posted September 2, 2014 Author Posted September 2, 2014 ULTRAMEN - onClientElementStreamIn and onClientElementStreamOutYou'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)
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now