0 Üye ve 1 Ziyaretçi konuyu incelemekte.
textureList = { -- "texture ismi 1", "texture ismi 2", ...}-- silah texture isimlerini otomatik tabloya ekleme;for i=321,372 do -- model id'leri (silah model id'leri 321 ile 372 arasında) local textures = engineGetModelTextureNames(tostring(i)) -- model texturelarını çektik for j=1,#textures do if not textures[j]:find("icon") and not textures[j]:find("muzzle") then -- texture isminde "icon" (hud iconu) ve "muzzle" (namlu ateşi) yoksa table.insert(textureList,textures[j]) -- texture isimlerini tuttuğumuz tabloya ekledik end endendaddCommandHandler("ışıklısilah",function() if getElementData(localPlayer,"dtc:silahShader") then -- oyuncuda data varsa setElementData(localPlayer,"dtc:silahShader",false) -- datayı false yaptık (sildik) else -- oyuncuda data yoksa setElementData(localPlayer,"dtc:silahShader",true) -- datayı true yaptık (ekledik) endend)function setPlayerWeaponShaderState(player,state) if not shader then -- eğer shader yoksa (performansta düşüş olmaması için ilk kullanılana kadar shaderı oluşturmadık) shader = dxCreateShader("shader.fx",nil,nil,true,"all") end if state then -- eğer true ise (açılacaksa) for i=1,#textureList do engineApplyShaderToWorldTexture(shader,textureList[i],player) -- oyuncuya shaderı uyguladık end else -- true değilse (açılmayacaksa) for i=1,#textureList do engineRemoveShaderFromWorldTexture(shader,textureList[i],player) -- oyuncudan shaderı sildik end endendaddEventHandler("onClientElementDataChange",root,function(key,_,new) -- element datası değiştiğinde if key == "dtc:silahShader" and getElementType(source) == "player" then -- data ismi shader datası ve değeri değişen element oyuncu ise setPlayerWeaponShaderState(source,new) -- datayı direkt olarak fonksiyonumuza gönderiyoruz -- datayı set yaparken true veya false yaptığımız için fonksiyona direkt göndermemizde herhangi bi sorun yok endend)-- performansta tasarruf etmek için stream alanında olmayan (görünmeyen, uzakta olan) oyunculardan shaderı kaldırıyoruzaddEventHandler("onClientElementStreamIn",root,function() -- element stream olduğunda if getElementType(source) == "player" and getElementData(source,"dtc:silahShader") then -- eğer element oyuncu ve shader datası varsa setPlayerWeaponShaderState(source,true) -- oyuncuya shader ekledik endend)addEventHandler("onClientElementStreamOut",root,function() -- element stream alanından çıktığında if getElementType(source) == "player" and getElementData(source,"dtc:silahShader") then -- eğer element oyuncu ve shader datası varsa setPlayerWeaponShaderState(source,false) -- oyuncudan shaderı kaldırdık endend)
// ertrldtcufloat gTime : TIME;float4 color = float4( 1.0, 0.3, 0.0, 0.8);// Lua'dan rengini değiştirmek için;// dxSetShaderValue( shader , "color" , r/255 , g/255 , b/255, a/255 )float4 pixelShader(float2 pos : TEXCOORD0) : COLOR0 { float c = 1.-distance(abs(sin(pos.x + gTime)),1.)*20.; return float4(color.r*c,color.g*c,color.b*c,color.a*c);} technique dtc { pass Pass0 { FillMode = 2; CullMode = 3; PixelShader = compile ps_2_0 pixelShader(); }}