Jump to content

Shader error.


JanKy

Recommended Posts

Hi guys, i need some help with a script that i think is a problem on my server. I mean i need it but there are always lag spikes and at a certain point a freeze. This happens to all players and i think it is because of the shader script.
 

-------------------------------------
--Resource: Screen FX v0.05        --
--Author: Ren712                   --
-------------------------------------

local scx, scy = guiGetScreenSize()
local orderPriority = "-1.8"

Settings = {}
Settings.var = {}
fxScreenEnable = false

----------------------------------------------------------------------------------------------------------------------------
-- Standard settings
----------------------------------------------------------------------------------------------------------------------------
function fxScreenSettings()

	v = Settings.var
	v.effectType = {}
	--Color
	v.effectType[1] = {}
	v.effectType[1].enabled = false
	v.effectType[1].fadeSpeed = 0.015
	v.effectType[1].streng = 0
	v.effectType[1].maxStreng = 1
	v.effectType[1].speed = 0.6
	v.effectType[1].choke = 1
	--Shake
	v.effectType[2] = {}
	v.effectType[2].enabled = false
	v.effectType[2].fadeSpeed = 0.015
	v.effectType[2].streng = 0
	v.effectType[2].maxStreng = 1
	v.effectType[2].speed = 8.0
	--Wobble
	v.effectType[3] = {}
	v.effectType[3].enabled = false
	v.effectType[3].fadeSpeed = 0.015
	v.effectType[3].streng = 0
	v.effectType[3].maxStreng = 1
	v.effectType[3].speed = 0.1 
	v.effectType[3].size = 0.005 
	v.effectType[3].density = 50
	--Esotropia
	v.effectType[4] = {}
	v.effectType[4].enabled = false
	v.effectType[4].fadeSpeed = 0.015
	v.effectType[4].streng = 0
	v.effectType[4].maxStreng = 1
	v.effectType[4].speed = 0.2
	v.effectType[4].intens = 0.1
	v.effectType[4].blur = 0.5 
	v.effectType[4].choke = 0.85
	--Global
	v.maxAlpha = 255
end


----------------------------------------------------------------------------------------------------------------------------
-- onClientResourceStart
----------------------------------------------------------------------------------------------------------------------------
function enableScreenEffects()
	if fxScreenEnable then 
		return true
	end
		-- Create things
		colorTex = dxCreateTexture("tex/color.png")
        myScreenSource = dxCreateScreenSource( scx, scy)

        esotropiaHShader = dxCreateShader( "fx/esotropiaH.fx" )
        esotropiaVShader = dxCreateShader( "fx/esotropiaV.fx" )
		colorsShader = dxCreateShader( "fx/colors.fx" )
		wobbleShader = dxCreateShader( "fx/wobble.fx" )
		shakeShader = dxCreateShader( "fx/shake.fx" )	
		-- Check everything is ok
	-- Get list of all elements used
	effectParts = {
						colorTex,
						myScreenSource,
						esotropiaHShader,
						esotropiaVShader,
						colorsShader,
						wobbleShader,
						shakeShader,
					}

	-- Check list of all elements used
	bAllValid = true
	for _,part in ipairs(effectParts) do
		bAllValid = part and bAllValid
	end
	if not bAllValid then
		outputChatBox( "Screen FX: The resource failed to start.", 255, 0, 0 )
		return false
	end
	fxScreenEnable = true
	fxScreenSettings()
	fxScreenTimer = setTimer (
			function ( )
				changeEffectIntensity()
			end, 100, 0 )
	outputDebugString('Screen FX: Effects started.')
	return true
end


----------------------------------------------------------------------------------------------------------------------------
-- Switch effect off
----------------------------------------------------------------------------------------------------------------------------
function disableScreenEffects()
	if not fxScreenEnable then 
		return 
	end
	-- Destroy all shaders
	for _,part in ipairs(effectParts) do
		if part then
			destroyElement( part )
		end
	end
	
	effectParts = {}
	bAllValid = false
	RTPool.clear()
	killTimer( fxScreenTimer )
	fxScreenTimer = nil

	-- Flag effect as stopped
	fxScreenEnable = false
	outputDebugString('Screen FX: Effects stopped.')
	return true
end

function changeEffectIntensity()
local v = Settings.var
	for i,this in ipairs(v.effectType) do
		v.effectType[i].streng = effectFade( v.effectType[i].enabled, v.effectType[i].streng, v.effectType[i].fadeSpeed, v.effectType[i].maxStreng )
	end
end

function effectFade( effectOn, value, eSpeed, eMax )
	local efVal = value
	if (( effectOn == true ) and (efVal < eMax )) then
		efVal = efVal + ( eSpeed )
	end
	if (( effectOn == false ) and (efVal > 0 )) then
		efVal = efVal - ( eSpeed )
	end 
	if efVal <= 0 then 
		efVal = 0 
	end
	if efVal >= eMax then 
		efVal = eMax 
	end
	return efVal
end 
	
----------------------------------------------------------------------------------------------------------------------------
-- onClientHUDRender
----------------------------------------------------------------------------------------------------------------------------
addEventHandler( "onClientHUDRender", root,
    function()
	if not fxScreenEnable or not bAllValid or not Settings.var then 
		return
	end

	local v = Settings.var	
	-- Reset render target pool
	RTPool.frameStart()			
	-- Update screen
	dxUpdateScreenSource( myScreenSource, true )
	
	-- Start with screen
	local current = myScreenSource
	
	-- Apply all the effects, bouncing from one render target to another
	if v.effectType[4].streng > 0 then
		current = applyEsotropiaH( current, v.effectType[4].maxStreng * v.effectType[4].blur, 0, v.effectType[4].intens / 100, v.effectType[4].speed, v.effectType[4].choke, v.effectType[4].streng ) 
		current = applyEsotropiaV( current, v.effectType[4].maxStreng * v.effectType[4].blur, v.effectType[4].intens, 0, v.effectType[4].speed, v.effectType[4].choke, v.effectType[4].streng ) 
	end
	if v.effectType[3].streng > 0 then 
		current = applyWobble( current, v.effectType[3].maxStreng * v.effectType[3].speed, v.effectType[3].size, v.effectType[3].density, v.effectType[3].streng ) 
	end
	if v.effectType[1].streng > 0 then 
		current = applyColors( current, colorTex, v.effectType[1].speed, v.effectType[1].choke, v.effectType[1].streng ) 
	end
	if v.effectType[2].streng > 0 then
		current = applyShake( current, v.effectType[2].speed, v.effectType[2].maxStreng, v.effectType[2].streng )
	end
	-- When we're done, turn the render target back to default
	dxSetRenderTarget()
	
	local scrAlpha = math.max( v.effectType[4].streng, v.effectType[3].streng, v.effectType[1].streng, v.effectType[2].streng ) * 255
	local col = tocolor( 255, 255, 255, scrAlpha * v.maxAlpha/255 )
	if current and scrAlpha > 0 then
		dxDrawImage( 0, 0, scx, scy, current, 0, 0, 0, col )
	end
end
,true ,"low" .. orderPriority )

----------------------------------------------------------------------------------------------------------------------------
-- Apply the different stages
----------------------------------------------------------------------------------------------------------------------------

function applyShake( Src, wSpeed, wStrenght, strenght )
	if not Src then return nil end
	local mx,my = dxGetMaterialSize( Src )
	local newRT = RTPool.GetUnused( mx, my )
	if not newRT then return nil end
	dxSetRenderTarget( newRT, true ) 
	dxSetShaderValue( shakeShader, "TEX0", Src )
	dxSetShaderValue( shakeShader, "TEX0SIZE", mx,my )
	dxSetShaderValue( shakeShader, "wSpeed", wSpeed ) 
	dxSetShaderValue( shakeShader, "wStrenght", wStrenght * 0.1, wStrenght * 0.1 )
	dxSetShaderValue( shakeShader, "strenght", strenght )	
	dxDrawImage( 0, 0, mx, my, shakeShader )
	return newRT
end

function applyWobble( Src, wSpeed, wSize, wDensity, strenght )
	if not Src then return nil end
	local mx,my = dxGetMaterialSize( Src )
	local newRT = RTPool.GetUnused( mx, my )
	if not newRT then return nil end
	dxSetRenderTarget( newRT, true ) 
	dxSetShaderValue( wobbleShader, "TEX0", Src )
	dxSetShaderValue( wobbleShader, "TEX0SIZE", mx,my )
	dxSetShaderValue( wobbleShader, "wSpeed", wSpeed ) 
	dxSetShaderValue( wobbleShader, "wSize", wSize ) 
	dxSetShaderValue( wobbleShader, "wDensity", wDensity )
	dxSetShaderValue( wobbleShader, "strenght", strenght, strenght )		
	dxDrawImage( 0, 0, mx, my, wobbleShader )
	return newRT
end

function applyColors( Src, Col, pSpeed, pChoke, strenght)
	if not Src then return nil end
	local mx,my = dxGetMaterialSize( Src )
	local newRT = RTPool.GetUnused( mx, my )
	if not newRT then return nil end
	dxSetRenderTarget( newRT, true ) 
	dxSetShaderValue( colorsShader, "TEX0", Src )
	dxSetShaderValue( colorsShader, "TEX0SIZE", mx,my )
	dxSetShaderValue( colorsShader, "TEX1", Col )
	dxSetShaderValue( colorsShader, "pendulumSpeed", pSpeed )
	dxSetShaderValue( colorsShader, "pendulumChoke", pChoke )
	dxSetShaderValue( colorsShader, "strenght", strenght )	
	dxDrawImage( 0, 0, mx, my, colorsShader )
	return newRT
end

function applyEsotropiaH( Src, blur, propX, propY, pSpeed, pChoke, strenght )
	if not Src then return nil end
	local mx,my = dxGetMaterialSize( Src )
	local newRT = RTPool.GetUnused( mx, my )
	if not newRT then return nil end
	dxSetRenderTarget( newRT, true ) 
    local prop = { propX, propY }
	dxSetShaderValue( esotropiaHShader, "TEX0", Src )
	dxSetShaderValue( esotropiaHShader, "TEX0SIZE", mx,my )
	dxSetShaderValue( esotropiaHShader, "pendulumSpeed", pSpeed )
	dxSetShaderValue( esotropiaHShader, "pendulumChoke", pChoke )
	dxSetShaderValue( esotropiaHShader, "Prop", prop )
	dxSetShaderValue( esotropiaHShader, "sBlur", blur )
	dxSetShaderValue( esotropiaHShader, "strenght", strenght )	
	dxDrawImage( 0, 0, mx, my, esotropiaHShader )
	return newRT
end

function applyEsotropiaV( Src, blur, propX, propY, pSpeed, pChoke, strenght )
	if not Src then return nil end
	local mx,my = dxGetMaterialSize( Src )
	local newRT = RTPool.GetUnused( mx, my )
	if not newRT then return nil end
	dxSetRenderTarget( newRT, true ) 
    local prop = { propX, propY }
	dxSetShaderValue( esotropiaVShader, "TEX0", Src )
	dxSetShaderValue( esotropiaVShader, "TEX0SIZE", mx,my )
	dxSetShaderValue( esotropiaVShader, "pendulumSpeed", pSpeed )
	dxSetShaderValue( esotropiaVShader, "pendulumChoke", pChoke )
	dxSetShaderValue( esotropiaVShader, "Prop", prop )
	dxSetShaderValue( esotropiaVShader, "sBlur", blur )
	dxSetShaderValue( esotropiaVShader, "strenght", strenght )	
	dxDrawImage( 0, 0, mx,my, esotropiaVShader )
	return newRT
end

----------------------------------------------------------------------------------------------------------------------------
-- Pool of render targets
----------------------------------------------------------------------------------------------------------------------------
RTPool = {}
RTPool.list = {}

function RTPool.frameStart()
	for rt,info in pairs(RTPool.list) do
		info.bInUse = false
	end
end

function RTPool.GetUnused( sx, sy )
	-- Find unused existing
	for rt,info in pairs(RTPool.list) do
		if not info.bInUse and info.sx == sx and info.sy == sy then
			info.bInUse = true
			return rt
		end
	end
	-- Add new
	outputDebugString( "creating new RT " .. tostring(sx) .. " x " .. tostring(sy) )
	local rt = dxCreateRenderTarget( sx, sy )
	if rt then
		RTPool.list[rt] = { bInUse = true, sx = sx, sy = sy }
	end
	return rt
end

function RTPool.clear()
	for rt,info in pairs(RTPool.list) do
		destroyElement(rt)
	end
	RTPool.list = {}
end

----------------------------------------------------------------------------------------------------------------------------
-- onClientResourceStart
----------------------------------------------------------------------------------------------------------------------------
addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource()),
function()
	outputDebugString('Screen FX: The resource is started.')
	enableScreenEffects()
	disableScreenEffects()
end
)

Every time i log on the server it says 'Screen FX: The resource failed to start." but the shader is working, but i think it is lagging , and after many crashes, i stop seeing the shader ( and i get two more messages : "Could not create shader. Please use debugscript 3", "Could not create night shader. Please use debugscript 3" ) and i see everything like default, but others are able to see the shader, and i need to restart my pc in order to see it too. Please help me fix it.
And here is the file with the debugscript error messages : 
 

--By Fanbox

local maxDarkness = 0.4 -- [1] = lightest || [0] = darkest 1-- 0.05  2-- 0.1 3-- 0.5 4-- 0.3 5-- 0.4

local speed = 0.0001 -- 0.001

local b = 1
local shaderList = {}
local fading = false
local clone
local nightShader

InselMapStart = function()
  for i1 = 4212, 4222 do
    removeWorldModel(i1, 10000, 0, 0, 0)
  end
  for i2 = 4715, 4717 do
    removeWorldModel(i2, 10000, 0, 0, 0)
  end
  for i3 = 4720, 4725 do
    removeWorldModel(i3, 10000, 0, 0, 0)
  end
  for i4 = 4739, 4752 do
    removeWorldModel(i4, 10000, 0, 0, 0)
  end
  for i5 = 5057, 5059 do
    removeWorldModel(i5, 10000, 0, 0, 0)
  end
  for i6 = 5661, 5665 do
    removeWorldModel(i6, 10000, 0, 0, 0)
  end
  for i7 = 5990, 5992 do
    removeWorldModel(i7, 10000, 0, 0, 0)
  end
  for i8 = 6192, 6196 do
    removeWorldModel(i8, 10000, 0, 0, 0)
  end
  for i9 = 7072, 7097 do
    removeWorldModel(i9, 10000, 0, 0, 0)
  end
  for j1 = 7206, 7208 do
    removeWorldModel(j1, 10000, 0, 0, 0)
  end
  for j2 = 7221, 7226 do
    removeWorldModel(j2, 10000, 0, 0, 0)
  end
  for j3 = 7280, 7280 do
    removeWorldModel(j3, 10000, 0, 0, 0)
  end
  for j4 = 7331, 7333 do
    removeWorldModel(j4, 10000, 0, 0, 0)
  end
  for j5 = 7892, 7892 do
    removeWorldModel(j5, 10000, 0, 0, 0)
  end
  for j6 = 7942, 7944 do
    removeWorldModel(j6, 10000, 0, 0, 0)
  end
  for j7 = 8372, 8372 do
    removeWorldModel(j7, 10000, 0, 0, 0)
  end
  for j8 = 9088, 9089 do
    removeWorldModel(j8, 10000, 0, 0, 0)
  end
  for j9 = 9121, 9129 do
    removeWorldModel(j9, 10000, 0, 0, 0)
  end
  for k1 = 9154, 9159 do
    removeWorldModel(k1, 10000, 0, 0, 0)
  end
  for k2 = 9277, 9283 do
    removeWorldModel(k2, 10000, 0, 0, 0)
  end
  for k3 = 9285, 9286 do
    removeWorldModel(k3, 10000, 0, 0, 0)
  end
  for k4 = 9885, 9886 do
    removeWorldModel(k4, 10000, 0, 0, 0)
  end
  for k5 = 9932, 9934 do
    removeWorldModel(k5, 10000, 0, 0, 0)
  end
  for k6 = 10057, 10058 do
    removeWorldModel(k6, 10000, 0, 0, 0)
  end
  for k7 = 10146, 10147 do
    removeWorldModel(k7, 10000, 0, 0, 0)
  end
  for k8 = 11410, 11412 do
    removeWorldModel(k8, 10000, 0, 0, 0)
  end
  for k9 = 13461, 13461 do
    removeWorldModel(k9, 10000, 0, 0, 0)
  end
  for t1 = 13461, 13461 do
    removeWorldModel(t1, 10000, 0, 0, 0)
  end
  for t2 = 13484, 13485 do
    removeWorldModel(t2, 10000, 0, 0, 0)
  end
  for t3 = 13493, 13493 do
    removeWorldModel(t3, 10000, 0, 0, 0)
  end
  for t4 = 17954, 17957 do
    removeWorldModel(t4, 10000, 0, 0, 0)
  end
end

addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), InselMapStart)


local removables = {
	'tx*',
	--'coronastar',
	--'shad_exp*',
	'radar*',
	'*icon',
	'font*',
	'lampost_16clr',
	'headlight',
	'vehiclegeneric256',
	'skybox_tex',
	'siteM16'
}

function night_init()
 if getVersion ().sortable < '1.1.0' then
  return false
 end

 local testShader, tec = dxCreateShader('night.fx')
 if not testShader then
  outputChatBox('Could not create night shader. Please use debugscript 3')
 else
  nightShader = dxCreateShader('night.fx', 0, 0, false, "all")
  for c=48,122 do   
   engineApplyShaderToWorldTexture(nightShader, string.format('%c*', c))
  end

  for i,v in pairs(removables) do
   engineRemoveShaderFromWorldTexture(nightShader, v)
  end

  table.insert(shaderList, nightShader)
 end
 addEventHandler('onClientHUDRender', root, night_render)
 nightTimer = setTimer(night_check, 1000, 0)
end

function night_check()
	local hours, minutes = getTime()
		setSkyGradient(65,80,83,65,80,84)
		setFarClipDistance(200)-----Расстояник до тумана днём
		setFogDistance(15)
	if hours >= 5 and hours < 12 then
		fading = false
		setSkyGradient(65,80,83,65,80,84)
		setWeather (9)
	elseif hours >= 12 and hours < 18 then
		fading = false
		setSkyGradient(65,80,83,65,60,64)
		setWeather (15)
	elseif hours >= 18 and hours < 21 then
		fading = false
		setSkyGradient(65,80,83,55,70,74)
		setWeather (14)
	elseif hours >= 21 and hours < 5 then
		fading = false
		setSkyGradient(65,80,83,35,40,44)
		setWeather (12)
	else
		fading = true
		setSkyGradient( 0, 0, 0, 10, 10, 10 )
		setFarClipDistance(100)--1000
		setFogDistance(35)--100
	end
end


function night_render()
	local int, dim = getElementInterior(localPlayer), getElementDimension(localPlayer)
	if fading then
		if b > maxDarkness then
			b = b - speed
		elseif b <= maxDarkness then
			b = maxDarkness
		end
	else
		if b < 1.0 then
			b = b + speed
		elseif b >= 1.0 then
			b = 1.0
		end
	end
	for _,shader in ipairs(shaderList) do
		if int == 0 and dim == 0 then
			dxSetShaderValue(shader, 'NIGHT', b, b, b)
		else
			dxSetShaderValue(shader, 'NIGHT', 1.0, 1.0, 1.0)
		end
	end
end

night_init()


local shaderMap = {
	['img/1.union'] = {
	--'metalflooring4',
	'forestfloorblendb',
		'con2sand1c',
		'sjmhoodlawn42b',
		'venturas_fwend',
		'pavemiddirt_law',
		'hiway2sand1a',
		'des_dam_conc',
		'forestfloor3',
		'grasstype4_forestblend',
		'forestfloor_sones256',
		'cw2_mounttrailblank',
		'cw2_mounttrail',
		'sw_sandgrass' ,
		'desertstones256forestmix',
		'bow_abpave_gen',
		'desgreengrassmix',
		'grasstype4blndtomud',
		'grasstype4blndtodirt',
		'des_dirtgrassmix_grass4',
		'grasstype10_4blend',
		'rocktq128_forestblend2',
		'forestfloor3_forest',
		'dirtkb_64hv',
		'trainground1',
		'des_dirt2stones',
		'sjmscorclawn',
		'scumtiles3_lae',
		'backalley1_lae',
		'desertgravelgrassroad' ,
		'sw_sandgrass',
		'desclifftypebsmix',
		'desertgravelgrassroad',
		'sw_grassb01',
		'sw_crops',
		'cos_hiwayins_256',
		'cos_hiwayout_256',
		'hiwayoutside_256',
		'hiwaygravel1_256',
		'hiwayinside2_256',
		'bow_grass_gryard',
		'con2sand1b',
		'con2sand1a',
		'grasslawnfade_256',
		'tenniscourt1_256',
		'golf_heavygrass',
		'golf_fairway3',
		'golf_fairway1',
		'golf_fairway2',
		'golf_greengrass',
		'des_dirt1_glfhvy',
		'seabed',
		'concretedust2_256128',
		'des_dirt1_grass',
		'vgsroadirt2_256',
		'brngrss2stonesb',
		'dirtblendlit',
		'cw2_mountdirt2grass',
		'cw2_mountdirt',
		'des_dirt2grass',
		'cw2_mountrock',
		'desmudgrass',
		'desmud',
		'des_dirtgrassmixbmp',
		'des_dirtgrassmixb',
		'des_dirtgrassmixc',
		'concretemanky',
		'grassdeep256',
		'grass_lawn_128hv',
		'sw_sandgrass4',
		'mountainskree_stones256',
		'grasstype4_mudblend',
		'grass4dirtytrans',
		'bow_church_dirt',
		'newcrop3',
		 'des_ripplsand',
		 'des_dirt1',
		 'des_rocky1_dirt1',
		 'des_scrub1_dirt1',
		 'des_scrub1',
		 'desstones_dirt1',
		 'des_dirt2dedgrass',
		 'des_dirt2',
		 'des_dirtgravel',
		 'des_dirt2blend',
		 'des_rocky1',
		 'des_roadedge1',
		 'des_roadedge2',
		 'des_panelconc',
		 'des_oldrunwayblend',
		 'desertstones256',
		 'grasstype5',
		 'grasstype5_dirt',
		 'grasslong256',
		 'desgreengrass',
		 'sw_grass01',
		 'sw_grass01a',
		 'yardgrass1',
		 'grasstype7',
		 'grassdeadbrn256',
		 'desgreengrassmix',
		 'desertgryard256',
		 'desgrassbrn',
		 'des_grass2scrub',
		 'des_scrub1_dirt1b',
		 'des_scrub1_dirt1a',
		 'bow_church_grass_gen',
		 'grifnewtex1x_las',
		 'grassdead1',
		 'forestfloor256',
		 'forestfloorblendded',
		 'forestfloor256_blenddirt',
		 'grasstype10',
		 'grass4_des_dirt2',
		 'grasstype4_10',
		 'des_dirt2grgrass',
		 'grass10_stones256',
		 'grass10des_dirt2',
		 'grasstype510',
		 'grasstype510_10',
		 'cs_rockdetail',
		 'forestfloorbranch256',
		 'ffbranch_mountdirt',
		 'forestfloorblend',
		 'desmud2forstfloor',
		 'forestfloor4',
		 'grasstype4_staw',
		 'grassshort2long256',
		 'grass10forest',
		 'grass10dirt',
		 'forestfloor256mudblend',
		 'ws_patchygravel',
		 'grasstype4',
		 'ws_traingravelblend',
		 'forestfloorgrass',
		 'des_dirt1grass',
		 'grasstype5_desdirt',
		 'des_dirt1',
		 'des_grass2dirt1',
		 'blendrock2grgrass',
		 'sfn_rocktbrn128',
		 'sfn_rockhole',
		 'sfn_grass1',
		 'grass_128hv',
		 'grassdead1blnd',
		 'desertgravelgrass256',
		 'grass4dirty',
		 'cw2_mountdirt2forest',
		 'grasstype3',
		 'grassdry_128hv',
		 'obhilltex1',
		 'grasstype4-3',
		 'cst_rock_coast_sfw',
		 'newrockgrass_sfw',
		 'sf_garden3',
		 'dt_road2grasstype4',
		 'grassbrn2rockbrn',
		 'greyground2sand',
		 'grassgrnbrn256',
		 'sl_sfngrass01',
		 'sl_sfngrssdrt01',
		 'grass',
		 'desertgryard256grs2',
		 'grasstype5_4',
		 'brngrss2stones',
		 'desgrassbrn_grn',
		 'desgrasandblend',
		 'hiwayinside4_256',
		 'grassdirtblend',
		 'roadblend:O',
		 'greyground256',
		 'forest_rocks',
		 'sidewgrass4',
		 'ws_drysand2grass',
	},
	['img/2.union'] = {
	'sw_farmroad01',
		 'desmudtrail',
		 'desmudtrail2',
		 'dirttracksgrass256',
		 'desgreengrasstrckend',
		 'cw2_weeroad1',
		 
	},
		['img/3.union'] = {
		 'grifnewtex1b',
		 'des_dirttrackl',
	     'cw2_mountroad',
		 'des_dirttrack1r',
		 'des_dirttrack1',
		 'des_dirt2track' ,
		 'des_quarryrd',
		 'des_quarryrdr',
		 'des_quarryrdl',
		 'des_dirt2 trackl' ,
		 'des_dirt2trackr',
		 'tar_1line256hvtodirt',
	},
	
	
	['img/4.union'] = {
		'des_oldrunway' ,
		'ws_runwaytarmac' ,
		'plaintarmac1' ,
		'ws_carpark2',
	},
	
	['img/5.union'] = {
		 'sam_camo',
         'bonyrd_skin2',
		 'concretewall22_256',
		 'corugwall_sandy',
	},


	
	['img/UNION.union'] = {
         'unnamed',



	},
	['img/MDD.union'] = {

		 'telepole2128',
		 'board64_law',
		 'metatelepole1',
		 'cj_w_wood',

	},
	['img/FROND.union'] = {
         'cj_flag2',
	},
	
	['img/6.union'] = {
		'ws_freeway3blend',
		'dt_roadblend',
		'kbpavementblend',
		'ws_freeway3',
         'dt_road',
		 'roadnew4blend_256',
		 'craproad1_lae',
		 'craproad7_lae7',
		 'snpedtest1',
		 'cos_hiwaymid_256',
		 'hiwaymidlle_256',
		 'roadnew4_512',
		 'roadnew4_256',
		 'vegasroad1_256',
		 'vegasroad2_256',
		 'vegasroad3_256',
		 'hiwayend_256',
		 'sf_road5',
		 'sf_junction2',
		 'vegasdirtyroad1_256',
		 'vegasdirtyroad2_256',
		 'vegastriproad1_256',
		 'vgsroadirt1_256',
		 'vegasdirtyroad3_256',
		 'sf_tramline2',
	},
	['img/7.union'] = {
         'ws_traintrax1',
	},

	['img/8.union'] = {
		'pavebsandend',
		'sidewgrass_fuked',
		'sidewgrass3',
		'lasunion994',
		'kbpavement_test',
		'laroad_centre1',
		'sjmndukwal2',
         'macpath_lae',
		 'sjmhoodlawn41',
		 'sidewgrass5',
		 'sidewgrass1',
		 'sidewgrass2' ,
		 'pavebsand256',
		 'vegasdirtypaveblend1',
		 'dirt64b2',
		 'ws_sub_pen_conc3',
		 'concretenewb256',
		 'ws_sub_pen_conc',
		 'ws_tunnelwall2',
		 'vegaspavement2_256',
		 'blendpavement2b_256',
		 'hiwayinside5_256',
		 'dt_road_stoplinea',
		 'pierplanks02_128',
		 'vegasdirtypaveblend2',
		 'vegasdirtypave1_256',
		 'hiwayinside_256',
		 'hiwayinsideblend3_256',
		 'des_pave_trackstart',
		 'sf_pave6',
		 'stonesandkb2_128',
		 'ws_nicepave',
		 'sidelatino1_lae',
		 'kbpavement_test',
		 'craproad5_lae',
		 'pavebsand256grassblended',
		 'pavebsand256',
		 ':Oroad01_law',
	},
	['img/9.union'] = {
		 'newpavement',
		 'dockpave_256',
		 	'pavea256',
	},
	['img/10.union'] = {
         'sjmhoodlawn41',
         'plaintarmac1',
	},
	['img/11.union'] = {
		 'sw_stonesgrass',
		 'stones256',
		 'grassbrn2rockbrng' ,
		 'ws_traingravel',
		 ':Obrnclifftop',
		 ':Obrncliffbtmbmp',
		 'redclifftop256',
		 'redcliffroof_la',
		 'hllblf2_lae',
	},
	['img/12.union'] = {
	--'rocktbrn128blndlit',
		'lasclifface',
		 'rocktbrn128',
		 'cs_rockdetail2',
		 'cw2_mountdirtscree',
		 'sw_rockgrassb1',
		 'sw_rockgrass1' ,
		 'des_redrock1',
		 'rocktbrn128blnd',
		 'des_redrock2',
		 'sw_traingravelb1',
	},
	['img/13.union'] = {
		 'sw_sand',
		 'sandstonemixb',
		 'sandnew_law',
		 'ws_drysand',
		 'ws_wetdryblendsand',
		 'ws_wetsand',
		 'desertgravel256',
	},

	['img/14.union'] = {
		'tar_venturasjoin',
		'crossing_law',
		'snpdwargrn1',
		'tar_1line256hvblend',
		'roaddgrassblnd',
		'tar_1line256hvlightsand',
		'tar_1line256hvgtravel',
		'tar_1line256hvblend2',
		'tar_1line256hvblenddrtdot',
		'tar_freewyleft',
		 'tar_1line256hv',
		 'des_1line256',
		 'des_1linetar',
		 'tar_1linefreewy',
		 'tar_lineslipway',
		 'des_1lineend',
		 'sf_junction3',
		 'sf_junction5',
		 'tar_1line256hvblenddrt',
		 'tar_freewyright',
	},

	['img/16.union'] = {
		 'gras07si',
		 'kb_ivy2_256',
	},
	['img/17.union'] = { -- дерево
		 'bcorya0',
		 'sm_bark_light',
		 'gen_log',
		 'bpiced1',
		 'bpinud2',
		 'sm_redwood_bark',
		 'bchamae',
		 'bzelka1',
		 'bgleda0',
		 'oakbark64',
		 'veg_bevtreebase',
		 'sm_josh_bark',
		 'bfraxa1',
		 'bthuja1',
	},

	['img/18.union'] = {
	'fancy_slab128',
	'coasty_bit4_sfe',
		'stoneclad1',
		'taxi_256',
		'offwhitebrix',
		'des_ranchwall1',
		'ws_oldpaintedyello',
		'ws_oldpaintedyello_b' ,
		'vgs_shopwall01_128',
		'block2_high',
		'sea_wall_temp',
		'block',
		'concretebigb256128',
		'sw_tunnel01',
		'sw_tunnel02bmp',
		'sw_tunnel01lod',
		'stormdrain3_nt',
		'brick',
		'carparkwall12_256',
		'stormdrain1_nt',
		'macbrij2_lae',
		'rufwaldock1',
		'stormdrain3_nt',
		'stormdrain2_nt',
		'laroad_offroad1',
		'gb_nastybar20',
		'ws_freeway2',
		'ws_freeway1',
		'wallgreyred128',
		'stormdrain6',
		'ws_coppersheet2',
		'ws_goldengate2',
		'ws_goldengate5b',
		'stormdrain5_nt',
		'sw_wallbrick_06',
		'lasdockbar',
		'cj_white_wall2',
		'upt_conc floorclean',
		 'craproad3_lae',
		 'bow_warehousewall',
		 'macbrij4_lae',
		 'forumstand1_lae',
		 'block2_low',
		 'block2',
		 'woodsuport1_128' , 
		 'woodsuport2_128',
	},
	['img/19.union'] = {
		 'sfncn_rockgrass3',
	},
	['img/20.union'] = {
		 'vgs_rockmid1a',
		 'vgs_rockbot1a',
		 'rocktq128_forestblend',
		 'rocktq128',
		 'rock_country128',
		 'rocktq128_dirt',
		 'rocktq128blender',
		 'rocktq128_grass4blend',
		 'sw_stones',
		 'des_redrockmid',
		 'sm_rock2_desert',
		 'des_redrockbot',
		 'des_yelrock',
		 'des_dirt2gygrass',
		 'rocktb128',
		 'greyrockbig' ,
	},
	['img/21.union'] = {
		 --'txgrass0_1',
		 'sm_des_bush2',
		 'sm_des_bush3',
		 'sm_des_bush1',
	},
	['img/22.union'] = { --Листя
		 'newtreeleaves128',
		 'newtreed256',
		 'tree19mi',
		 'sprucbr',
		 'elm_treegrn4' ,
		 'locustbra',
		 'oakb',
		 'oak2b',
		 'trunk3',
		 'elmdead',
		 'sm_pinetreebit',
		 'oakleaf1',
		 'oakleaf2',
		 'elm_treegrn2',
		 
		 'hazelbranch',
		 'hazelbrnch',
		 'pinebrnch1',
		 'ashbrnch',
		 'cedarwee',
		 'cedarbare',
		 'elmtreered',
		 'elm_treegrn',
		 'weeelm',
		 
	},

	['img/23.union'] = {
		 'des_dirttrackx',
	},
	['img/24.union'] = {
		 'ws_oldpainted2',
		 'ws_goldengate5bnoalpha',
		 'dish_roundbit_a',
		 'ws_goldengate5',
	},
	['img/25.union'] = {
		'telewireslong2',
		'telewireslong',

	},
	--Земля
	['img/26.union'] = {
		'stones256128',
		'trainground2',
		'newgrnd1brn_128',
		'sw_dirt01',
		'ws_rotten_concrete1',
		'des_crackeddirt1',
		'redstones01_256',

	},
	--Брукывка
	['img/27.union'] = {
		'indund_64',
		'brickred2',
		'brickred',
		'sm_conc_hatch',
		'grass_concpath_128hv',
		'tilered',
		'd0acbe76',


	},

	--Битон земля
	['img/28.union'] = {
		'ws_carparknew2',
		'ws_carparknew1',
		'ws_carparknew2a',
		'lasjmslumwall',
		'bow_abattoir_conc2',
		'ws_sub_pen_conc2',
		'carpark_128',
		'parking2plain',
		'parking2',
		'heliconcrete',
		'hseconcblend1_256',
		'ws_carparknew2b',
		'dustyconcrete',
		'concretedust2_line',
		'des_dustconc',
		'drvin_ground1',
		'grass_path_law',
		'ws_airpt_concrete',
	},
	
	--Криша
	['img/29.union'] = {
		'sanpedock5',
		'fastfood1_lae',
		'shingles3',
		'des_oldtinroof',
		'sjmscruffhut4',
		'sw_cabinroof',
		'sw_corrugtile',
		'sw_slate01',
		'ws_corr_metal3',
		'ws_corr_metal2',
		'acrooftop1256',
		'corr_roof1',
		'des_shingles',
		'des_ghotwood1',
		'genroof02_128',
		'ws_corr_2_plain',
		'roof01l256',
		'browntin1',
		'vgspawnroof02_128',
		'shingles5',
		'rooftiles1',
		'hospunder_law',
		'shingles2',
		'woodroof01_128',
		'rooftiles2',
		'trail_wall1',
		'corrroof_64hv',
	},
	
	--Метал
	['img/30.union'] = {
		'banding9_64hv',
		'redmetal',
		'des_bytower1',		 
		'metal1_128',
		'bluemetal',
		'des_facmetalsoild',
		'sm_quarry_crusher1',
		'lampost_16clr',
		'lamppost',
		'cj_lamppost1',
		'lamppost2',
		'cj_sheetmetal',
		'a51_blastdoor',
		'ws_greymetal',
		'drvin_back',
		'drvin_panel',
		'iron',
		'des_rails1',
	},
	
		--Шифер
	['img/31.union'] = {
		'des_sherrifwall1',
		'a51_vent1',
		'block2bb',
		'newall11-1',
		'airportmetalwall256',
		'dirtyledge_law',
		'ws_corrugated1',
		'ws_corrugated2',
		'corrugated5_64hv',
		'corugwall2-1',
		'bluemetal02',
		'sanpedock1',
		'ws_airportwin3',
		'ws_airportwall2',
		'ws_whitewall2_top',
		'coasty_fencet_sfe',
		'crencouwall1',
		'woodenpanels256',
		'hilcouwall2',
		'woodwalllight2256',
 
	},
	
		--Дерево стыни
	['img/32.union'] = {
		'des_redslats' ,
		'des_motelwall5',
		'sw_barnwood1',
		'gb_nastybar08',
		'des_woodfence1',
		'des_bywall2',
		'des_bywall1',
		'boardwalk_la',
		'des_greyslats',
		'darkplanks1',
		'ws_vic_wood1',
		'sw_barnwoodblu',
		'des_motelwall4',
		'corugwall1',
		'cratetop128',
		'ws_green_wall1',
		'des_greyboards',
		'trail_side1',
		'trail_wall2',
		'des_ntwnwall1',
 
	},
	
	--Битон стыни
	['img/33.union'] = {
		'latranswall1',
		'latranswall2',
		'newall4-4',
		'puttywall1',
		'compcouwall1',
		'ws_sandstone1',
		'trail_wall3',
		'ws_rottenwall',
		'sanpedock96',
		'ws_airportwall1',
		'ws_whitewall2_bottom',
		'yellowall_la',
		'corugwallnew6_128',
		'bluapartwall1_256',
		'des_brick1',
		'des_roswin4',
		'des_adobewall2',
		'dockwall1',
		'conc_wall2_128h',
		'comptwall10',

	},
		--Кровь
	['img/34.union'] = {
		'bloodpool_64',

	},

    --Ефекти 
	['img/afterburner.union'] = { 'afterburner',}, 
	['img/ashes.union'] = { 'ashes',}, 
	['img/ashes2.union'] = { 'ashes2',}, 
	['img/beam.union'] = { 'beam',}, 
	['img/beamcorona.union'] = { 'beamcorona',}, 
	['img/beastie.union'] = { 'beastie',}, 
	['img/Bgush1.union'] = { 'Bgush1',}, 
	['img/Bgush2.union'] = { 'Bgush2',}, 
	['img/Bgush3.union'] = { 'Bgush3',}, 
	['img/Bgush4.union'] = { 'Bgush4',}, 
	['img/blaze1.union'] = { 'blaze1',}, 
	['img/blaze2.union'] = { 'blaze2',}, 
	['img/blaze3.union'] = { 'blaze3',}, 
	['img/blaze4.union'] = { 'blaze4',}, 
	['img/blood1.union'] = { 'blood1',}, 
	['img/blood2.union'] = { 'blood2',}, 
	['img/blood3.union'] = { 'blood3',}, 
	['img/blood4.union'] = { 'blood4',}, 
	['img/BloodCloud.union'] = { 'BloodCloud',}, 
	['img/blooddrop1.union'] = { 'blooddrop1',}, 
	['img/blooddrop2.union'] = { 'blooddrop2',}, 
	['img/blooddrop3.union'] = { 'blooddrop3',}, 
	['img/blooddrop4.union'] = { 'blooddrop4',}, 
	['img/BloodRayne.union'] = { 'BloodRayne',}, 
	['img/BloodSplash.union'] = { 'BloodSplash',}, 
	['img/Bnitro.union'] = { 'Bnitro',}, 
	['img/boatsplash.union'] = { 'boatsplash',}, 
	['img/boatwake1.union'] = { 'boatwake1',}, 
	['img/bsplat1.union'] = { 'bsplat1',}, 
	['img/bsplat2.union'] = { 'bsplat2',}, 
	['img/bsplat3.union'] = { 'bsplat3',}, 
	['img/bsplat4.union'] = { 'bsplat4',}, 
	['img/bsplat5.union'] = { 'bsplat5',}, 
	['img/bubbles.union'] = { 'bubbles',}, 
	['img/burn1.union'] = { 'burn1',}, 
	['img/burn2.union'] = { 'burn2',}, 
	['img/burn3.union'] = { 'burn3',}, 
	['img/burn4.union'] = { 'burn4',}, 
	['img/butterfly1.union'] = { 'butterfly1',}, 
	['img/butterfly2.union'] = { 'butterfly2',}, 
	['img/butterfly3.union'] = { 'butterfly3',}, 
	['img/By.union'] = { 'By',}, 
	['img/cardebris1.union'] = { 'cardebris1',}, 
	['img/cardebris2.union'] = { 'cardebris2',}, 
	['img/cardebris3.union'] = { 'cardebris3',}, 
	['img/cardebris4.union'] = { 'cardebris4',}, 
	['img/cardebris5.union'] = { 'cardebris5',}, 
	['img/cardebris_01.union'] = { 'cardebris_01',}, 
	['img/cardebris_02.union'] = { 'cardebris_02',}, 
	['img/cardebris_03.union'] = { 'cardebris_03',}, 
	['img/cardebris_04.union'] = { 'cardebris_04',}, 
	['img/cardebris_05.union'] = { 'cardebris_05',}, 
	['img/carsplash_02.union'] = { 'carsplash_02',}, 
	['img/cement.union'] = { 'cement',}, 
	['img/cloudmasked.union'] = { 'cloudmasked',}, 
	['img/coronaringa.union'] = { 'coronaringa',}, 
	['img/Debris1.union'] = { 'Debris1',}, 
	['img/Debris2.union'] = { 'Debris2',}, 
	['img/Debris3.union'] = { 'Debris3',}, 
	['img/DebrisGaEX.union'] = { 'DebrisGaEX',}, 
	['img/dirt1.union'] = { 'dirt1',}, 
	['img/dirt2.union'] = { 'dirt2',}, 
	['img/dragon.union'] = { 'dragon',}, 
	['img/drift1.union'] = { 'drift1',}, 
	['img/drift2.union'] = { 'drift2',}, 
	['img/drift3.union'] = { 'drift3',}, 
	['img/drift4.union'] = { 'drift4',}, 
	['img/driftb1.union'] = { 'driftb1',}, 
	['img/driftb2.union'] = { 'driftb2',}, 
	['img/driftb3.union'] = { 'driftb3',}, 
	['img/driftb4.union'] = { 'driftb4',}, 
	['img/Drop1.union'] = { 'Drop1',}, 
	['img/Drop2.union'] = { 'Drop2',}, 
	['img/electric1.union'] = { 'electric1',}, 
	['img/electric2.union'] = { 'electric2',}, 
	['img/electric3.union'] = { 'electric3',}, 
	['img/electric4.union'] = { 'electric4',}, 
	['img/electric5.union'] = { 'electric5',}, 
	['img/electric6.union'] = { 'electric6',}, 
	['img/electric7.union'] = { 'electric7',}, 
	['img/electric8.union'] = { 'electric8',}, 
	['img/Fdebris1.union'] = { 'Fdebris1',}, 
	['img/Fdebris2.union'] = { 'Fdebris2',}, 
	['img/Fdebris3.union'] = { 'Fdebris3',}, 
	['img/Fdebris4.union'] = { 'Fdebris4',}, 
	['img/feather.union'] = { 'feather',}, 
	['img/fireball1.union'] = { 'fireball1',}, 
	['img/fireball10.union'] = { 'fireball10',}, 
	['img/fireball2.union'] = { 'fireball2',}, 
	['img/fireball3.union'] = { 'fireball3',}, 
	['img/fireball4.union'] = { 'fireball4',}, 
	['img/fireball5.union'] = { 'fireball5',}, 
	['img/fireball6.union'] = { 'fireball6',}, 
	['img/fireball7.union'] = { 'fireball7',}, 
	['img/fireball8.union'] = { 'fireball8',}, 
	['img/fireball9.union'] = { 'fireball9',}, 
	['img/FireEX.union'] = { 'FireEX',}, 
	['img/fireball2.union'] = { 'wjet6',}, --
	--['img/FireEX.union'] = { 'bullethitsmoke',}, --
	['img/FireFlame.union'] = { 'FireFlame',}, 
	['img/FireFlame3.union'] = { 'FireFlame3',}, 
	['img/flake1.union'] = { 'flake1',}, 
	['img/flake2.union'] = { 'flake2',}, 
	['img/flame1.union'] = { 'flame1',}, 
	['img/flame2.union'] = { 'flame2',}, 
	['img/flame3.union'] = { 'flame3',}, 
	['img/flame4.union'] = { 'flame4',}, 
	['img/flamethrower.union'] = { 'flamethrower',}, 
	['img/flash1.union'] = { 'flash1',}, 
	['img/flash2.union'] = { 'flash2',}, 
	['img/flash3.union'] = { 'flash3',}, 
	['img/flash4.union'] = { 'flash4',}, 
	['img/fly1.union'] = { 'fly1',}, 
	['img/fly2.union'] = { 'fly2',}, 
	['img/fly3.union'] = { 'fly3',}, 
	['img/Fnitro.union'] = { 'Fnitro',}, 
	['img/Foliage.union'] = { 'Foliage',}, 
	['img/Function-X-.union'] = { 'Function-X-',}, 
	['img/gameleaf01_64.union'] = { 'gameleaf01_64',}, 
	['img/gensplash.union'] = { 'gensplash',}, 
	['img/glassmall.union'] = { 'glassmall',}, 
	['img/glowlight.union'] = { 'glowlight',}, 
	['img/gore1.union'] = { 'gore1',}, 
	['img/gore2.union'] = { 'gore2',}, 
	['img/gore3.union'] = { 'gore3',}, 
	['img/gore4.union'] = { 'gore4',}, 
	['img/gum.union'] = { 'gum',}, 
	['img/GunFlash.union'] = { 'GunFlash',}, 
	['img/GunFlash1.union'] = { 'GunFlash1',}, 
	['img/GunFlash2.union'] = { 'GunFlash2',}, 
	['img/GunFlash3.union'] = { 'GunFlash3',}, 
	['img/GunFlash4.union'] = { 'GunFlash4',}, 
	['img/gunshell.union'] = { 'gunshell',}, 
	['img/headshot1.union'] = { 'headshot1',}, 
	['img/headshot2.union'] = { 'headshot2',}, 
	['img/headshot3.union'] = { 'headshot3',}, 
	['img/headshot4.union'] = { 'headshot4',}, 
	['img/headshot5.union'] = { 'headshot5',}, 
	['img/inferno1.union'] = { 'inferno1',}, 
	['img/inferno2.union'] = { 'inferno2',}, 
	['img/inferno3.union'] = { 'inferno3',}, 
	['img/inferno4.union'] = { 'inferno4',}, 
	['img/inferno5.union'] = { 'inferno5',}, 
	['img/inflame1.union'] = { 'inflame1',}, 
	['img/inflame2.union'] = { 'inflame2',}, 
	['img/inflame3.union'] = { 'inflame3',}, 
	['img/inflame4.union'] = { 'inflame4',}, 
	['img/inflamed1.union'] = { 'inflamed1',}, 
	['img/inflamed2.union'] = { 'inflamed2',}, 
	['img/inflamed3.union'] = { 'inflamed3',}, 
	['img/inflamed4.union'] = { 'inflamed4',}, 
	['img/laser.union'] = { 'laser',}, 
	['img/leaf1.union'] = { 'leaf1',}, 
	['img/leaf2.union'] = { 'leaf2',}, 
	['img/light1.union'] = { 'light1',}, 
	['img/light2.union'] = { 'light2',}, 
	['img/light3.union'] = { 'light3',}, 
	['img/light4.union'] = { 'light4',}, 
	['img/light5.union'] = { 'light5',}, 
	['img/light6.union'] = { 'light6',}, 
	['img/lightning1.union'] = { 'lightning1',}, 
	['img/lightning2.union'] = { 'lightning2',}, 
	['img/lightning3.union'] = { 'lightning3',}, 
	['img/lightning4.union'] = { 'lightning4',}, 
	['img/lightning5.union'] = { 'lightning5',}, 
	['img/molotov1.union'] = { 'molotov1',}, 
	['img/molotov2.union'] = { 'molotov2',}, 
	['img/molotov3.union'] = { 'molotov3',}, 
	['img/molotov4.union'] = { 'molotov4',}, 
	['img/muzzle1.union'] = { 'muzzle1',}, 
	['img/muzzle2.union'] = { 'muzzle2',}, 
	['img/muzzle3.union'] = { 'muzzle3',}, 
	['img/muzzle4.union'] = { 'muzzle4',}, 
	['img/neon.union'] = { 'neon',}, 
	['img/NewFx1.union'] = { 'NewFx1',}, 
	['img/NewFx2.union'] = { 'NewFx2',}, 
	['img/NewFx3.union'] = { 'NewFx3',}, 
	['img/newspaper.union'] = { 'newspaper',}, 
	['img/Overdoseeffects.union'] = { 'Overdoseeffects',}, 
	['img/paper1.union'] = { 'paper1',}, 
	['img/paper2.union'] = { 'paper2',}, 
	['img/paper3.union'] = { 'paper3',}, 
	['img/paper4.union'] = { 'paper4',}, 
	['img/Pnitro.union'] = { 'Pnitro',}, 
	['img/pointlight.union'] = { 'pointlight',}, 
	['img/puke.union'] = { 'puke',}, 
	['img/railex.union'] = { 'railex',}, 
	['img/rain1.union'] = { 'rain1',}, 
	['img/rain2.union'] = { 'rain2',}, 
	['img/rain3.union'] = { 'rain3',}, 
	['img/rain4.union'] = { 'rain4',}, 
	['img/realex1.union'] = { 'realex1',}, 
	['img/realex2.union'] = { 'realex2',}, 
	['img/realex3.union'] = { 'realex3',}, 
	['img/realex4.union'] = { 'realex4',}, 
	['img/realexb1.union'] = { 'realexb1',}, 
	['img/realexb2.union'] = { 'realexb2',}, 
	['img/realexb3.union'] = { 'realexb3',}, 
	['img/realexb4.union'] = { 'realexb4',}, 
	['img/realfire1.union'] = { 'realfire1',}, 
	['img/realfire2.union'] = { 'realfire2',}, 
	['img/realfire3.union'] = { 'realfire3',}, 
	['img/realfire4.union'] = { 'realfire4',}, 
	['img/rope1.union'] = { 'rope1',}, 
	['img/rope2.union'] = { 'rope2',}, 
	['img/snow1.union'] = { 'snow1',}, 
	['img/snow2.union'] = { 'snow2',}, 
	['img/snow3.union'] = { 'snow3',}, 
	['img/sonic1.union'] = { 'sonic1',}, 
	['img/sonic2.union'] = { 'sonic2',}, 
	['img/sparkdebris1.union'] = { 'sparkdebris1',}, 
	['img/sparkdebris2.union'] = { 'sparkdebris2',}, 
	['img/sparkdebris3.union'] = { 'sparkdebris3',}, 
	['img/sparkdebris4.union'] = { 'sparkdebris4',}, 
	['img/Sparks.union'] = { 'Sparks',}, 
	['img/Sparks2.union'] = { 'Sparks2',}, 
	['img/Sparks3.union'] = { 'Sparks3',}, 
	['img/Sparks4.union'] = { 'Sparks4',}, 
	['img/Sparks5.union'] = { 'Sparks5',}, 
	['img/Sparks6.union'] = { 'Sparks6',}, 
	['img/Sparks7.union'] = { 'Sparks7',}, 
	['img/SparksFlash.union'] = { 'SparksFlash',}, 
	--['img/sphere.union'] = { 'sphere',}, 
	['img/sphere_CJ.union'] = { 'sphere_CJ',}, 
	['img/splash1.union'] = { 'splash1',}, 
	['img/splash2.union'] = { 'splash2',}, 
	['img/splash3.union'] = { 'splash3',}, 
	['img/splash4.union'] = { 'splash4',}, 
	['img/splash5.union'] = { 'splash5',}, 
	['img/splash6.union'] = { 'splash6',}, 
	['img/splash_up.union'] = { 'splash_up',}, 
	['img/splash_up1.union'] = { 'splash_up1',}, 
	['img/splash_up2.union'] = { 'splash_up2',}, 
	['img/splatter1.union'] = { 'splatter1',}, 
	['img/splatter2.union'] = { 'splatter2',}, 
	['img/splatter3.union'] = { 'splatter3',}, 
	['img/splatter4.union'] = { 'splatter4',}, 
	['img/water1.union'] = { 'water1',}, 
	['img/water2.union'] = { 'water2',}, 
	['img/water3.union'] = { 'water3',}, 
	['img/water4.union'] = { 'water4',}, 
	['img/waterripple1.union'] = { 'waterripple1',}, 
	['img/waterripple2.union'] = { 'waterripple2',}, 
	['img/waterripple3.union'] = { 'waterripple3',}, 
	['img/waterripple4.union'] = { 'waterripple4',}, 
	['img/waterspark.union'] = { 'waterspark',}, 
	['img/waterspark_16.union'] = { 'waterspark_16',}, 
	['img/wgush1.union'] = { 'wgush1',}, 
	['img/wjet2.union'] = { 'wjet2',}, 
	['img/wjet4.union'] = { 'wjet4',}, 
	['img/wjet6.union'] = { 'wjet6',}, 
	['img/wood1.union'] = { 'wood1',}, 
	['img/wood2.union'] = { 'wood2',}, 
	['img/wood3.union'] = { 'wood3',}, 
	['img/wood4.union'] = { 'wood4',}, 
	['img/fx2/carfx1.union'] = { 'carfx1',}, 
	['img/fx2/cloud1.union'] = { 'cloud1',}, 
	['img/fx2/cloudhigh.union'] = { 'cloudhigh',}, 
	['img/fx2/cloudmasked.union'] = { 'cloudmasked',}, 
	['img/fx2/coronaheadlightline.union'] = { 'coronaheadlightline',}, 
	['img/fx2/coronamoon.union'] = { 'coronamoon',}, 
	['img/fx2/coronareflect.union'] = { 'coronareflect',}, 
	['img/fx2/coronaringb.union'] = { 'coronaringb',}, 
	['img/fx2/coronastar.union'] = { 'coronastar',}, 
	['img/fx2/finishFlag.union'] = { 'finishFlag',}, 
	['img/fx2/handman.union'] = { 'handman',}, 
	['img/fx2/headlight.union'] = { 'headlight',}, 
	['img/fx2/headlight1.union'] = { 'headlight1',}, 
	['img/fx2/lamp_shad_64.union'] = { 'lamp_shad_64',}, 
	['img/fx2/lockon.union'] = { 'lockon',}, 
	['img/fx2/lockonFire.union'] = { 'lockonFire',}, 
	['img/fx2/lunar.union'] = { 'lunar',}, 
	['img/fx2/particleskid.union'] = { 'particleskid',}, 
	['img/fx2/rainfx.union'] = { 'rainfx',}, 
	['img/fx2/roadsignfont.union'] = { 'roadsignfont',}, 
	['img/fx2/seabd32.union'] = { 'seabd32',}, 
	['img/fx2/shad_bike.union'] = { 'shad_bike',}, 
	['img/fx2/shad_car.union'] = { 'shad_car',}, 
	['img/fx2/shad_exp.union'] = { 'shad_exp',}, 
	--['img/fx2/shad_heli.union'] = { 'shad_heli',}, 
	['img/fx2/shad_ped.union'] = { 'shad_ped',}, 
	['img/fx2/shad_rcbaron.union'] = { 'shad_rcbaron',}, 
	['img/fx2/Sky.union'] = { 'Sky',}, 
	['img/fx2/Sky2.union'] = { 'Sky2',}, 
	['img/fx2/Sky3.union'] = { 'Sky3',}, 
	['img/fx2/Skysnow.union'] = { 'Skysnow',}, 
	['img/fx2/target256.union'] = { 'target256',}, 
	['img/fx2/txgrassbig0.union'] = { 'txgrassbig0',}, 
	['img/fx2/txgrassbig1.union'] = { 'txgrassbig1',}, 
	['img/fx2/waterclear256.union'] = { 'waterclear256',}, 
	['img/fx2/waterwake.union'] = { 'waterwake',}, 
	['img/fx2/white.union'] = { 'white',}, 
	['img/fx2/wincrack_32.union'] = { 'wincrack_32',}, 
	
	['1.png'] = { 'sphere',}, 


} 


function loadShaders () 
	for path,texstures in pairs (shaderMap) do
		local shader = dxCreateShader('shader.fx')
		table.insert(shaderList, shader)
		local terrain = dxCreateTexture(path)
		dxSetShaderValue(shader, 'gTexture', terrain)
	    for i,txd in ipairs (texstures) do 
			engineRemoveShaderFromWorldTexture(nightShader, txd)
			engineApplyShaderToWorldTexture(shader,txd)
		end	
	end
end

addEventHandler( "onClientResourceStart", resourceRoot, loadShaders )

 

Edited by Dutchman101
Removed script author email as per Ren's request in post (you failed to do so)
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...