Jump to content

script[Solucionado]


cuervox123

Recommended Posts

como puedo hacer que este script al yo usarlo ya que es un shader lo vean los demás

-- 
-- c_ped_shell.lua 
-- 
  
local myShader 
local startTickCount = 0 
  
addEventHandler( "onClientResourceStart", resourceRoot, 
    function() 
  
        -- Version check 
        if getVersion ().sortable < "1.3.1-9.04939" then 
            outputChatBox( "Resource is not compatible with this client." ) 
            outputChatBox( "Please update MTA:SA." ) 
            return 
        end 
  
        -- Create shader 
        myShader, tec = dxCreateShader ( "fx/ped_shell_layer.fx", 0, 0, true, "ped" ) 
  
        if not myShader then 
            outputChatBox( "Could not create shader. Please use debugscript 3" ) 
        else 
            outputChatBox( "Using technique " .. tec ) 
  
            -- Apply shader to local player 
            engineApplyShaderToWorldTexture ( myShader, "*", localPlayer ) 
  
            -- Hack to make GTA render the ped last, so our shell effect appears on top of the background 
            setElementAlpha( localPlayer, 254 ) 
  
            outputChatBox( "Press 'm' to see the effect" ) 
  
            -- Fire effect at startup 
            startEffect(); 
        end 
    end 
) 
  
  
---------------------------------------------------------------- 
-- Start effect here 
---------------------------------------------------------------- 
function startEffect() 
    startTickCount = getTickCount() 
end 
  
  
bindKey("m", "down", startEffect ) 
  
  
---------------------------------------------------------------- 
-- Update effect here 
---------------------------------------------------------------- 
addEventHandler( "onClientRender", root, 
    function() 
        if not myShader then return end 
  
            local timeElapsed = getTickCount() - startTickCount 
            local f = timeElapsed / 750 
            f = math.min( f, 1 ) 
  
            local alpha = math.lerp ( 1.0, 0.0, f ) 
            local size = math.lerp ( 0, 0.3, f ) 
  
            -- Expand shell 
            dxSetShaderValue( myShader, "sMorphSize", size, size, size ) 
  
            -- Fade out shell 
            dxSetShaderValue( myShader, "sMorphColor", 1, 0, 0, alpha ) 
    end 
) 
  
  
---------------------------------------------------------------- 
-- Math helper functions 
---------------------------------------------------------------- 
function math.lerp(from,to,alpha) 
    return from + (to-from) * alpha 
end 
  

Edited by Guest
Link to comment

Client:

  
local data = { shader = {}, tick = {} } 
  
  
addEvent("ped_shell", true) 
addEventHandler("ped_shell", root, 
    function (w) 
  
        if ( data.shader[w] ) then 
            destroyElement(data.shader[w]) 
            data.tick[w] = nil 
            return 
        end 
  
        data.shader[w] = dxCreateShader ( "fx/ped_shell_layer.fx", 0, 0, true, "ped" ) 
  
        engineApplyShaderToWorldTexture ( data.shader[w], "*", w ) 
  
        setElementAlpha( w, 254 ) 
  
        startEffect(w) 
  
    end 
) 
  
  
---------------------------------------------------------------- 
-- Start effect here 
---------------------------------------------------------------- 
function startEffect(w) 
    data.tick[w] = getTickCount() 
end 
  
  
---------------------------------------------------------------- 
-- Update effect here 
---------------------------------------------------------------- 
addEventHandler( "onClientRender", root, 
    function()    
        for key, value in pairs(data) do 
        for k, v in pairs(value) do 
  
            local shader = k 
            local tick = v 
  
            local timeElapsed = getTickCount() - tick 
            local f = timeElapsed / 750 
            f = math.min( f, 1 ) 
          
            local alpha = math.lerp ( 1.0, 0.0, f ) 
            local size = math.lerp ( 0, 0.3, f ) 
          
            dxSetShaderValue( shader, "sMorphSize", size, size, size ) 
            dxSetShaderValue( shader, "sMorphColor", 1, 0, 0, alpha ) 
        end 
        end  
    end 
) 
  
  
---------------------------------------------------------------- 
-- Math helper functions 
---------------------------------------------------------------- 
function math.lerp(from,to,alpha) 
    return from + (to-from) * alpha 
end 
  
  

Server

  
addCommandHandler("ped_effect",  
    function (p) 
        triggerClientEvent(root, "ped_shell", root, p) 
    end 
) 
  

Edited by Guest
Link to comment
-- 
    -- c_ped_shell.lua 
    -- 
      
    local myShader 
    local startTickCount = 0 
      
    addEventHandler( "onClientResourceStart", resourceRoot, 
        function() 
            if getVersion ().sortable < "1.3.1-9.04939" then 
                outputChatBox( "Resource is not compatible with this client." ) 
                outputChatBox( "Please update MTA:SA." ) 
                return 
            end 
      
            myShader, tec = dxCreateShader ( "fx/ped_shell_layer.fx", 0, 0, true, "ped" ) 
      
            if not myShader then 
                outputChatBox( "Could not create shader. Please use debugscript 3" ) 
            else 
                outputChatBox( "Press 'm' to see the effect" ) 
                startEffect(); 
            end 
        end 
    ) 
      
    function startEffect() 
               for t,thePlayer in ipairs(getElementsByType("player")) do 
                    if getElementData (thePlayer, "eszaraki") then 
                        if getElementData (thePlayer, "eszaraki" == true then 
                            engineApplyShaderToWorldTexture ( myShader, "*", thePlayer ) 
                            setElementAlpha( thePlayer, 254 ) 
                        end 
                    end 
                end 
        startTickCount = getTickCount() 
    end 
      
      
    bindKey("m", "down", startEffect ) 
      
    addEventHandler( "onClientRender", root, 
        function() 
            if not myShader then return end 
      
                local timeElapsed = getTickCount() - startTickCount 
                local f = timeElapsed / 750 
                f = math.min( f, 1 ) 
      
                local alpha = math.lerp ( 1.0, 0.0, f ) 
                local size = math.lerp ( 0, 0.3, f ) 
      
                dxSetShaderValue( myShader, "sMorphSize", size, size, size ) 
      
                dxSetShaderValue( myShader, "sMorphColor", 1, 0, 0, alpha ) 
        end 
    ) 
      
    function math.lerp(from,to,alpha) 
        return from + (to-from) * alpha 
    end 

Tengo entendido, sería así.

Link to comment

Esto es innecesario:

  
if getElementData (source, "eszaraki") then 
                        if getElementData (source, "eszaraki" == true then 

Y para qué querrías remover el shader de los jugadores que se supone que no lo tienen?

  
                            engineRemoveShaderFromWorldTexture ( myShader, "*", thePlayer) 
  
  

Edited by Guest
Link to comment
Esto no es innecesario:

Claro que sí campeón. Entonces, if is not innecesary then end xD

  
                            engineRemoveShaderFromWorldTexture ( myShader, "*", thePlayer) 
  

Para remover el shader a jugadores que no tenga el dato del elemento. Cuando se use el comando. Si sería un dato que se va actualizar, eso haría el trabajo de eliminar el shader a ese jugador en específico desde el lado cliente de un usuario.

------------------------------------------------------------

Cuervox123 ponele [sOLUCIONADO] al nombre del tema.

Claro que no, si el ped no tiene el shader y tampoco la data la función se triggea de todas formas y eso no debería pasar.

Link to comment
  • Recently Browsing   0 members

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