Rayzer Posted April 7, 2015 Share Posted April 7, 2015 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(); } } Link to comment
Castillo Posted April 7, 2015 Share Posted April 7, 2015 Algun error en el debugscript? Link to comment
Rayzer Posted April 7, 2015 Author Share Posted April 7, 2015 No, no me tira ningún error Link to comment
Castillo Posted April 7, 2015 Share Posted April 7, 2015 Ese codigo activara el shader cuando el element data "blood" sea menor que 2000, no igual que. Link to comment
Rayzer Posted April 7, 2015 Author Share Posted April 7, 2015 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 sorry Link to comment
Tomas Posted April 7, 2015 Share Posted April 7, 2015 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] Link to comment
Rayzer Posted April 7, 2015 Author Share Posted April 7, 2015 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] Link to comment
Tomas Posted April 7, 2015 Share Posted April 7, 2015 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 salioSalio Command results: 2000[number] Te salió que tu 'blood' es 2000, y en el resource dice que se active debes tener menos de 2000. Link to comment
Rayzer Posted April 7, 2015 Author Share Posted April 7, 2015 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 Link to comment
Tomas Posted April 7, 2015 Share Posted April 7, 2015 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'. Link to comment
Rayzer Posted April 7, 2015 Author Share Posted April 7, 2015 Sigue sin activarse jajaja mejor dejemos lo así... (: Gracias de igual manera 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 ) Link to comment
Tomas Posted April 7, 2015 Share Posted April 7, 2015 Sigue sin activarse jajaja mejor dejemos lo así... (: Gracias de igual manera 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? Link to comment
Rayzer Posted April 7, 2015 Author Share Posted April 7, 2015 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 Link to comment
Castillo Posted April 7, 2015 Share Posted April 7, 2015 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. Link to comment
Rayzer Posted April 8, 2015 Author Share Posted April 8, 2015 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í Jaja Link to comment
Castillo Posted April 8, 2015 Share Posted April 8, 2015 Subi el recurso a algun sitio, tipo mediafire, y postea el link. Link to comment
Tomas Posted April 8, 2015 Share Posted April 8, 2015 No ves que dice que tienes 1000 de blood en el costadito? ... El shader se activa cuando tienes menos de 200.. Link to comment
Rayzer Posted April 8, 2015 Author Share Posted April 8, 2015 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 Por otro lado aquí dejo los archivos https://mega.co.nz/#!YhwGGZxC!k8Iirsm7dRJZtGICH5QlD4-ft51ZHj02Dk7Cgoh3nBE Link to comment
Tomas Posted April 8, 2015 Share Posted April 8, 2015 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 Ash, disculpa, ando un poco cansado y confundo las cosas t_T Por otro lado aquí dejo los archivos https://mega.co.nz/#!YhwGGZxC!k8Iirsm7dRJZtGICH5QlD4-ft51ZHj02Dk7Cgoh3nBE Falta el meta. Link to comment
Rayzer Posted April 8, 2015 Author Share Posted April 8, 2015 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 Ash, disculpa, ando un poco cansado y confundo las cosas t_T Por otro lado aquí dejo los archivos https://mega.co.nz/#!YhwGGZxC!k8Iirsm7dRJZtGICH5QlD4-ft51ZHj02Dk7Cgoh3nBE Falta el meta. Descuida suele pasar! cierto se me olvido el meta, aquí lo dejo https://mega.co.nz/#!VsRxFIpa!pRwR6H68WEv5TyCDkv_vehY1S3EE7SKL5s4bdlbKMtk Link to comment
Castillo Posted April 8, 2015 Share Posted April 8, 2015 Acabo de probar el script que yo te di, y funciona perfectamente. Link to comment
Rayzer Posted April 9, 2015 Author Share Posted April 9, 2015 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í? Link to comment
Recommended Posts