DzMGZXL Posted August 29, 2014 Share 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) Link to comment
lcd12321 Posted August 29, 2014 Share Posted August 29, 2014 when event legitimateResponceRecived trigger? Link to comment
Ren_712 Posted August 29, 2014 Share 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. Link to comment
DzMGZXL Posted August 29, 2014 Author Share 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 ); Link to comment
Skuleris Posted August 30, 2014 Share 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. Link to comment
Ren_712 Posted August 30, 2014 Share Posted August 30, 2014 ULTRAMEN - nope. Please read the events description on the wiki. You'll find almost a fitting example there. Link to comment
DzMGZXL Posted August 30, 2014 Author Share 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. Link to comment
Ren_712 Posted September 2, 2014 Share 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. Link to comment
DzMGZXL Posted September 2, 2014 Author Share 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) Link to comment
DzMGZXL Posted September 4, 2014 Author Share Posted September 4, 2014 Please help! still don't work Link to comment
DzMGZXL Posted September 4, 2014 Author Share Posted September 4, 2014 Don't need help anymore i FIX it. Link to comment
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