Jump to content

No me activa el shader blackandwhite


Rayzer

Recommended Posts

Posted

Hola, tengo un problema este script no me activa el shader, se supone que me activaria el shader cuando tenga 2000 de vida pero nada :( Bueno dejo el script y el shader. (el shader torna a blanco y negro la pantalla) Gracias (:.

local w, h = guiGetScreenSize( ); 
isEnablededededed = false 
  
function renderEffect2( ) 
    dxSetRenderTarget( ); 
    dxUpdateScreenSource( screenSrc2 ); 
    dxDrawImage( 0, 0, w, h, screenShader2 ); 
end 
  
function enableBlackWhite(enable) 
    if enable then 
        if isEnablededededed then return end 
        screenShader2 = dxCreateShader( "blackwhite.fx" ); 
        screenSrc2 = dxCreateScreenSource( w, h ); 
        if screenShader and screenSrc2 then 
            dxSetShaderValue( screenShader2, "BlackWhiteTexture", screenSrc2 ); 
            addEventHandler( "onClientHUDRender", getRootElement( ), renderEffect2 ); 
        end 
        isEnablededededed = true 
    else 
        if screenShader2 and screenSrc2 then 
            destroyElement( screenShader2 ); 
            destroyElement( screenSrc2 ); 
            screenShader2, screenSrc2 = nil, nil; 
            removeEventHandler( "onClientHUDRender", getRootElement( ), renderEffect2 ); 
            isEnablededededed = false 
        end 
    end 
end 
  
function enableBlackWhite2( ) 
    if getElementData(getLocalPlayer(),"blood") < 2000 then 
        enableBlackWhite(true) 
    else 
        enableBlackWhite(false) 
    end 
end 
setTimer(enableBlackWhite2,1000,0) 

texture BlackWhiteTexture;   
  
sampler screenSampler = sampler_state 
{ 
    Texture = <BlackWhiteTexture>; 
}; 
  
float4 main(float2 uv : TEXCOORD0) : COLOR0  
{  
    float4 Color;  
    Color = tex2D( screenSampler , uv);  
    Color.rgb = (Color.r+Color.g+Color.b)/3.0f;  
    if (Color.r<0.2 || Color.r>0.9) Color.r = 0; else Color.r = 1.0f;  
    if (Color.g<0.2 || Color.g>0.9) Color.g = 0; else Color.g = 1.0f;  
    if (Color.b<0.2 || Color.b>0.9) Color.b = 0; else Color.b = 1.0f; 
    return Color;  
}; 
  
technique BlackWhite 
{ 
    pass P1 
    { 
        PixelShader = compile ps_2_0 main(); 
    } 
} 

Posted
Ese codigo activara el shader cuando el element data "blood" sea menor que 2000, no igual que.

Eso ya lo se, pero aun así sigue sin activarse, no me fije en ese pequeño detalle cuando explique :S sorry

Posted

No se mucho sobre DayZ (no se para qué es 'blood'), pero, ¿estás seguro que 'blood' es menor a 2000? Puedes comprobarlo usando el resource 'runcode'.

/crun getElementData(localPlayer,"blood")

En el chat te dirá algo como:

Result: x [number] o false [boolean]

Posted

blood es la variable de la sangre en el gamemode, y si estoy mas que seguro de que blood llega a menos de 2000 y no pasa nada , probare con ese resource que me dices y actualizo este mensaje con la info que salio

Salio Command results: 2000[number]

Posted
blood es la variable de la sangre en el gamemode, y si estoy mas que seguro de que blood llega a menos de 2000 y no pasa nada , probare con ese resource que me dices y actualizo este mensaje con la info que salio

Salio Command results: 2000[number]

Te salió que tu 'blood' es 2000, y en el resource dice que se active debes tener menos de 2000.

Posted

Ya lo se... Pero de todas maneras no se activa aun así tenga 1 en la variable blood, cuando ejecute el comando tenia esa vida, pero aun así tenga 5 o 150 de vida sigue sin activarse

Posted
  
local w, h = guiGetScreenSize( ); 
isEnablededededed = false 
  
function renderEffect2( ) 
    dxSetRenderTarget( ); 
    dxUpdateScreenSource( screenSrc2 ); 
    dxDrawImage( 0, 0, w, h, screenShader2 ); 
end 
  
function enableBlackWhite(enable) 
    if enable then 
        if isEnablededededed then return end 
        screenShader2 = dxCreateShader( "blackwhite.fx" ); 
        screenSrc2 = dxCreateScreenSource( w, h ); 
        if screenShader2 and screenSrc2 then 
            dxSetShaderValue( screenShader2, "BlackWhiteTexture", screenSrc2 ); 
            addEventHandler( "onClientHUDRender", getRootElement( ), renderEffect2 ); 
        end 
        isEnablededededed = true 
    else 
        if screenShader2 and screenSrc2 then 
            destroyElement( screenShader2 ); 
            destroyElement( screenSrc2 ); 
            screenShader2, screenSrc2 = nil, nil; 
            removeEventHandler( "onClientHUDRender", getRootElement( ), renderEffect2 ); 
            isEnablededededed = false 
        end 
    end 
end 
  
function enableBlackWhite2( ) 
    if getElementData(getLocalPlayer(),"blood") < 2000 then 
        enableBlackWhite(true) 
    else 
        enableBlackWhite(false) 
    end 
end 
setTimer(enableBlackWhite2,1000,0) 
  

El problema estaba en la línea 15, decía 'screenShader' en vez de 'screenShader2'.

Posted

Sigue sin activarse jajaja mejor dejemos lo así... (: Gracias de igual manera :D

AAH Una cosa :$ aprovechando este post, este script no me funciona, se supone que es para unos binoculares en el dayz pero no me dibuja la imagen.

function updateCamera () 
local weapon = getPedWeapon(getLocalPlayer()) 
if weapon == 43 and (getControlState("aim_weapon")) then 
    dxDrawImage(0, 0, 300, 300, "binoculars.png") 
end 
addEventHandler ( "onClientRender", root, updateCamera ) 

Posted
Sigue sin activarse jajaja mejor dejemos lo así... (: Gracias de igual manera :D

AAH Una cosa :$ aprovechando este post, este script no me funciona, se supone que es para unos binoculares en el dayz pero no me dibuja la imagen.

function updateCamera () 
local weapon = getPedWeapon(getLocalPlayer()) 
if weapon == 43 and (getControlState("aim_weapon")) then 
    dxDrawImage(0, 0, 300, 300, "binoculars.png") 
end 
addEventHandler ( "onClientRender", root, updateCamera ) 

El script que te di funciona.. lo acabo de probar.

Sobre éste último debería funcionar. Con los binoculares te refieres a los lentes de Night Vision o a la Cámara?

Posted

me refiero a la cámara, Jajaja es enserio No me funciono TnT! Jaja volvere a intentar aver que pasa, en el meta lo tengo así

Sigue sin funcionar :( tengo 1000 de vida y aun sigo viendo a colores :(

yKSVP6n.png?1

Posted
local w, h = guiGetScreenSize( ) 
local isShaderEnabled = false 
  
addEventHandler ( "onClientResourceStart", resourceRoot, 
    function ( ) 
        onBloodChange ( "blood" ) 
    end 
) 
  
function renderEffect2 ( ) 
    dxSetRenderTarget ( ) 
    dxUpdateScreenSource ( screenSrc2 ) 
    dxDrawImage ( 0, 0, w, h, screenShader2 ) 
end 
  
function enableBlackWhite ( enable ) 
    if ( enable ) then 
        if ( isShaderEnabled ) then 
            return 
        end 
  
        screenShader2 = dxCreateShader ( "blackwhite.fx" ) 
        screenSrc2 = dxCreateScreenSource ( w, h ) 
        if ( screenShader2 and screenSrc2 ) then 
            dxSetShaderValue ( screenShader2, "BlackWhiteTexture", screenSrc2 ) 
            addEventHandler ( "onClientHUDRender", getRootElement( ), renderEffect2 ) 
        end 
    else 
        if ( screenShader2 and screenSrc2 ) then 
            destroyElement ( screenShader2 ) 
            destroyElement ( screenSrc2 ) 
            screenShader2, screenSrc2 = nil, nil 
            removeEventHandler ( "onClientHUDRender", getRootElement( ), renderEffect2 ) 
        end 
    end 
    isShaderEnabled = enable 
end 
  
  
function onBloodChange ( dataName ) 
    if ( dataName == "blood" ) then 
        local blood = ( tonumber ( getElementData ( localPlayer, "blood" ) ) or 0 ) 
        if ( blood < 2000 ) then 
            enableBlackWhite ( true ) 
        else 
            enableBlackWhite ( false ) 
        end 
    end 
end 
addEventHandler ( "onClientElementDataChange", localPlayer, onBloodChange ) 

Probalo.

Posted
local w, h = guiGetScreenSize( ) 
local isShaderEnabled = false 
  
addEventHandler ( "onClientResourceStart", resourceRoot, 
    function ( ) 
        onBloodChange ( "blood" ) 
    end 
) 
  
function renderEffect2 ( ) 
    dxSetRenderTarget ( ) 
    dxUpdateScreenSource ( screenSrc2 ) 
    dxDrawImage ( 0, 0, w, h, screenShader2 ) 
end 
  
function enableBlackWhite ( enable ) 
    if ( enable ) then 
        if ( isShaderEnabled ) then 
            return 
        end 
  
        screenShader2 = dxCreateShader ( "blackwhite.fx" ) 
        screenSrc2 = dxCreateScreenSource ( w, h ) 
        if ( screenShader2 and screenSrc2 ) then 
            dxSetShaderValue ( screenShader2, "BlackWhiteTexture", screenSrc2 ) 
            addEventHandler ( "onClientHUDRender", getRootElement( ), renderEffect2 ) 
        end 
    else 
        if ( screenShader2 and screenSrc2 ) then 
            destroyElement ( screenShader2 ) 
            destroyElement ( screenSrc2 ) 
            screenShader2, screenSrc2 = nil, nil 
            removeEventHandler ( "onClientHUDRender", getRootElement( ), renderEffect2 ) 
        end 
    end 
    isShaderEnabled = enable 
end 
  
  
function onBloodChange ( dataName ) 
    if ( dataName == "blood" ) then 
        local blood = ( tonumber ( getElementData ( localPlayer, "blood" ) ) or 0 ) 
        if ( blood < 2000 ) then 
            enableBlackWhite ( true ) 
        else 
            enableBlackWhite ( false ) 
        end 
    end 
end 
addEventHandler ( "onClientElementDataChange", localPlayer, onBloodChange ) 

Probalo.

Sigue sin activarse, ya dejemos lo así xD Jaja :(

JZlTnhR.png?1

Posted
Pues segun esta linea del codigo dice que se activa si es menor a 2000
if getElementData(getLocalPlayer(),"blood") < 2000 then 

Aquí dejo una imagen donde solo tengo 1 de vida y sigue sin activarse, para que veas que no funciona Cx

http://i.imgur.com/2b4F2sv.png?1

2b4F2sv.png?1

Ash, disculpa, ando un poco cansado y confundo las cosas t_T

Falta el meta.

Posted
Pues segun esta linea del codigo dice que se activa si es menor a 2000
if getElementData(getLocalPlayer(),"blood") < 2000 then 

Aquí dejo una imagen donde solo tengo 1 de vida y sigue sin activarse, para que veas que no funciona Cx

http://i.imgur.com/2b4F2sv.png?1

2b4F2sv.png?1

Ash, disculpa, ando un poco cansado y confundo las cosas t_T

Falta el meta.

Descuida suele pasar!

cierto se me olvido el meta, aquí lo dejo https://mega.co.nz/#!VsRxFIpa!pRwR6H68WEv5TyCDkv_vehY1S3EE7SKL5s4bdlbKMtk

Posted
Acabo de probar el script que yo te di, y funciona perfectamente.

¿Entonces sera que este interfiriendo con alguna otro script o alguna cosa así?

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...