Jump to content

Explicación


Sticmy

Recommended Posts

Perdón la tardanza.

La librería debe ser acomodada, puesto que está hecha para ser importada a un script mediante la función require, pero MTA no permite su uso de manera tan abierta.

En cuanto a cada función, los argumentos son:

  • t = Tiempo transcurrido
    b = Extremo inicial del interpolado
    c = Tamaño de la interpolacion (final-inicio)
    d = Duración en tiempo.

Acá dejo un ejemplo bastante sencillo:

local marker =  createMarker (-2405, -598, 132, 'cylinder', .8 ) --Un simple marcador para ver la funcion en ejecucion 
local s = getTickCount() --Tiempo de inicio 
  
local function outBounce(t, b, c, d) --Añado la funcion al codigo 
  t = t / d 
  if t < 1 / 2.75 then --Estas divisiones pueden ser reemplazadas por multiplicaciones, son mas rapidas. 
    return c * (7.5625 * t * t) + b 
  elseif t < 2 / 2.75 then 
    t = t - (1.5 / 2.75) 
    return c * (7.5625 * t * t + 0.75) + b 
  elseif t < 2.5 / 2.75 then 
    t = t - (2.25 / 2.75) 
    return c * (7.5625 * t * t + 0.9375) + b 
  else 
    t = t - (2.625 / 2.75) 
    return c * (7.5625 * t * t + 0.984375) + b 
  end 
end 
  
addEventHandler( 'onClientRender', root, 
    function() 
        local t = getTickCount() - s --Defino t como el tiempo transcurrido. 
        local z = t < 1800 and outBounce(t, 132+4, -4, 1800) or 132 --Altero la variable Z para que en 1800 ms ejecute el interpolado para un total de 4 metros que caen desde 136 metros hasta 132. Asegurate de que la funcion no pase de largo pues no hay nada que detenga su ejecucion mas alla del tiempo de duracion. 
        outputChatBox( t..'/'..z ) 
        setElementPosition( marker, -2405, -598, z ) --Aca utilizo la recien definida Z. 
    end 
) 

Link to comment
  • Recently Browsing   0 members

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