Tags Variables & Shine FX para Scripts Lua
Saturday, November 20, 2010 5:10:02 PM
Siempre que vamos a usar una función en otro programa o en este caso de otra manera porque template y script lua son casi lo mismo divergiendo en un par de cosas. hay que tener en cuenta que todos los valores a usar sean los equivalentes bajo el modo que usemos:
La primera función Shine FX vemos que hace uso de las variables
-"j" & "maxj"
-"maxloop"
-"interpolate_alpha"
Usando scripts lua tendríamos que cambiar los primeros 2 valores, no estoy seguro pero creo que no podemos hacer uso de maxloop así que tendremos que usar un for para así generar el efecto. Los valores equivalentes para los 2 primeros serian el nombre de la variable usada para el for, Ejemplo:
for k = 1 , 20 do...
"j" seria igual a "k" que es el indice de la variable y "20" seria igual a "maxj" que es el numero maximo de iteraciones
luego tenemos interpolate alpha que usa un valor para ir desde el primer parámetro hasta el segundo que es igual a j/maxj bajo template, para usarlo en script lua seria: "k/20". "k" el indice y "20" el numero máximo de iteraciones.
ya con eso agregamos los valores necesarios a la función para que podamos generar el fx quedando así:
function Get_Shine(index,maxloop,strength,scale,x,y,mode1,mode2,time1,time2)
if not mode2 then
setmod = "pos"
else
setmod = "move"
end
set_a = _G.ass_alpha(math.ceil((strength*0.01)*255))
int_alpha = _G.interpolate_alpha(index/maxloop , set_a , "&HFF&" )
x_size,y_size = 100+(index*scale) , 100+(index*scale)
tsh1,tsh2 = 0+(index-1)*2 , 0+(index)*2
-- MODE 1--
if mode1 == 1 then
x_pos,y_pos = x-(index-1) , y+(index-1)
elseif mode1 == 2 then
x_pos,y_pos = x , y+(index-1)
end
if mode1 == 3 then
x_pos,y_pos = x+(index-1) , y+(index-1)
elseif mode1 == 4 then
x_pos,y_pos = x-(index-1) , y
end
if mode1 == 5 then
x_pos,y_pos = x , y
elseif mode1 == 6 then
x_pos,y_pos = x+(index-1) , y
end
if mode1 == 7 then
x_pos,y_pos = x-(index-1) , y-(index-1)
elseif mode1 == 8 then
x_pos,y_pos = x , y-(index-1)
end
if mode1 == 9 then
x_pos,y_pos = x+(index-1) , y-(index-1)
end
--MODE 2--
if mode2 == 1 then
x_pos2,y_pos2 = x-(index-1) , y+(index-1)
elseif mode2 == 2 then
x_pos2,y_pos2 = x , y+(index-1)
end
if mode2 == 3 then
x_pos2,y_pos2 = x+(index-1) , y+(index-1)
elseif mode2 == 4 then
x_pos2,y_pos2 = x-(index-1) , y
end
if mode2 == 5 then
x_pos2,y_pos2 = x , y
elseif mode2 == 6 then
x_pos2,y_pos2 = x+(index-1) , y
end
if mode2 == 7 then
x_pos2,y_pos2 = x-(index-1) , y-(index-1)
elseif mode2 == 8 then
x_pos2,y_pos2 = x , y-(index-1)
end
if mode2 == 9 then
x_pos2,y_pos2 = x+(index-1) , y-(index-1)
end
if setmod == "pos" then
intpos = x_pos..","..y_pos
shine = "\\"..setmod.."("..intpos..")".."\\alpha&HFF&".."\\fscx"..x_size.."\\fscy"..y_size.."\\t("..tsh1..","..tsh2..",\\alpha"..int_alpha..")"
elseif setmod == "move" then
intpos = x_pos..","..y_pos..","..x_pos2..","..y_pos2
shine = "\\"..setmod.."("..intpos..","..time1..","..time2..")".."\\alpha&HFF&".."\\fscx"..x_size.."\\fscy"..y_size.."\\t("..tsh1..","..tsh2..",\\alpha"..int_alpha..")"
end
return shine
end
Si se dan cuenta quite el valor lenght y agregue index, maxloop. También cambie todos los valores que usaban "j" dentro de la funcion cambiando por "index" y de igual manera con "maxloop", en intepolate alpha. Igual solo puse "index/maxloop" para que funcione también.
Ya que tenemos la función lista para usar la podemos pegar para los usuarios de Zheolib en esta misma o si no crear otro archivo con las funciones no olvidándose de cargarlo en el script a usar.
Para la funcion GetVTags esta mas fácil, lo único a tomar en cuenta es el tiempo que usaremos para generar el fx. En la función para template use el valor retornado por line.duration que bajo template retorna el valor total de la duración de la linea donde se use la variable, no importando si agregamos o quitamos tiempo esta variable retorna el valor absoluto de la duración de la linea. En scripts lua creo que no funciona iwal si no que devuelve el valor total pero de la linea completa y no toma en cuenta si agregamos o quitamos tiempo de duración, sabiendo eso vamos a cambiar ese valor quedando la función así:
function GetVTags(ldur,valst,data1,data2,data3)
if not data3 then
setmode = 2
else
setmode = 4
end
sylvi = "" time1 = 0 index = 0
while time1 < ldur do
in2=1 index = (index+in2)%setmode
if setmode == 2 then
if index == 1 then
setdata = data1
elseif index == 0 then
setdata = data2
end
elseif setmode == 4 then
if index == 1 then
setdata = data1
elseif index == 2 then
setdata = data3
end
if index == 3 then
setdata = data2
elseif index == 0 then
setdata = data3
end
end
val = valst
sylvi = sylvi.."\\t("..time1..","..time1+val..","..setdata..")"
time1 = time1+val
end
return sylvi
end
Como ven solo agregue el valor "ldur" y luego cambie "line.duration" de la función reemplazándolo por ldur, de esa manera ya tenemos las 2 funciones listas para usar bajo scripts lua solo como dije antes agregamos a la Zheolib o generamos otro archivo con las 2 funciones listas.
bien ahí esta, ahora podemos usarlas incluso en Nyu FX
ADJUNTOS
Script Con Las Funciones
Shine
Tags Variables
No se si la Zheolib ha cambiado mucho últimamente pero espero que no aunque no siendo así al menos los scripts les servirán de guía














ALKOONalkoon # Sunday, April 10, 2011 11:41:04 AM
I have question !
the function have 3 data (data1,data2,data3)
can be 4 data like --> (data1,data2,data3,data4)
??