Mostrando entradas con la etiqueta Script LUA. Mostrar todas las entradas
Mostrando entradas con la etiqueta Script LUA. Mostrar todas las entradas

Creación de Timer.


Un Timer es un script el cual podremos agregar a cualquier function para que en un determinado tiempo, Segundos, suceda algo!, ya sea la finalización de la misión,  que de un objetivo cumplido, la llegada de enemigos, amigos, etc.. 

Ademas de crear timer simples también se puede crear un Timer con un mensaje en pantalla con la cuenta regresiva y así dar a conocer al jugador de cuanto tiempo le queda para arrancar de un mortero.  



Los ejemplos que usare han sido usados en mas de alguna misión creada por mi. y les daré un ejemplo MSSN  para que puedan utilizarlo y analizarlo en el editor de misiones. 


Ejemplo 1:
Al entrar el jugador a la zona, se detecta la caída de un Mortero enemigo, El Timer es de 10 segundos lo cual da tiempo para arrancar de la zona. 


function onEnter_triggerzone(zoneName, unitName)
OFP:disableEvent("onEnter_triggerzone")
OFP:addTimer("TEMPO", 1000); --Se crea el Timer llamado TEMPO.
remain = 10   --Duración del Timer.
end

function onTimer_TEMPO ()
remain = remain - 1  --Quita 1 segundo de la cuenta
OFP:displaySystemMessage("Mortero Detectado:"..remain); --Mensaje en pantalla.
OFP:displaySystemMessage("\n \n \n \n \n");  --Cuenta en pantalla.
if (remain == 0) then   --Al llegar la cuenta a 0 cae el mortero.
OFP:callArtilleryStrike("1", "waypoint", "HeavyMortar", "HE", "Single");
end
OFP:setTimer ("TEMPO", 1000);
end

El Script anterior lo podremos ver y analizar en el siguiente link:

DESCARGAR EJEMPLO MSSN.



Ejemplo 2:
En este Script apreciamos que al matar al oficial enemigo HAN se activa el Mortero en 15 segundos. Ademas se agrega un Speech a la linea de código de la muerte de HAN y el tipo de mortero final es "Harassing" por lo tanto caerán varios morteros en la zona al azar.

function onDeath_han(victim, killer)
OFP:callArtilleryStrike("1","ba10lsbbamI2","Mortar","Smoke","Single");
OFP:playPlayerSpeech({"inf7_08_m02_02"});  --speech
OFP:addTimer("JDD", 1000);
remain = 15
end
function onTimer_JDD ()
remain = remain - 1
OFP:displaySystemMessage("MORTAR DETECTED : " .. remain )
OFP:displaySystemMessage(" \n \n \n")
if (remain == 0) then
OFP:callArtilleryStrike("1", "ba10lsbbamI2", "HeavyMortar", "HE", "Harassing")
OFP:removeTimer("JDD");
end
  OFP:setTimer("JDD", 1000)
end

Nota:
En este ejemplo el nombre del mortero es JDD y la caída es en un objeto y no en un waypoint como en el ejemplo anterior.

DESCARGAR EJEMPLO MSSN


Ejemplo 3:
Pero no solo para morteros se puede utilizar los Timer, también sirven  finalizar misiones o para capturar zonas. En el siguiente ejemplo deberemos estar 20 segundos en la zona para que se de por cumplido un objetivo.


function onEnter_Triggerzone( )
OFP:disableEvent(" onEnter_Triggerzone")
OFP:addTimer("CAPTURE", 1000);
remain = 0 --La cuenta comienza en cero.
end

function onTimer_CAPTURE ()
remain = remain + 1  --Agrega 1 segundo a la cuenta.
OFP:displaySystemMessage("TIEMPO DE CAPTURA : " .. remain )
OFP:displaySystemMessage(" \n \n \n")
if (remain == 20) then  --Al llegar la cuenta a 20 el objetivo se cumple.
OFP:setObjectiveState("objective", "COMPLETED");
OFP:removeTimer("CAPTURE");
end
  OFP:setTimer("CAPTURE", 1000)
end

Nota:
En este ejemplo observamos que el timer comienza en cero y que al llegar a 20 segundos el objetivo se completa. 

DESCARGAR EJEMPLO MSSN,

Como han podido ver en los diferentes ejemplo las posibilidades de usar y modificar el script son infinitas, solo les queda la imaginación de ustedes para implementarlo correctamente en su misión...

suerte.

Morteros Tipo Sar


Script para la caída de morteros enemigos al entrar a una zona, la caída del mortero es advertida por una señal de humo y al cabo de 6 segundos cae el mortero.





Al entrar los jugadores a la zona se lanza el humo, al cabo de 6 segundos se lanza el mortero.

function onEnter_triggerzone(zoneName, unitName)

OFP:callArtilleryStrike("1","waypoint","Mortar","Smoke","Single");
OFP:callArtilleryStrike("1","waypoint","HeavyMortar","HE","Single","6000");

end

DESCARGAR EJEMPLO MSSN.


Suerte.

Voz al poner C4 en un Objetivo.


Script de la funcion onFiring en el cual al poner una carga de C4 en un objetivo este salte el Speech: "Cargas Listas...a Cubierto" .Dispongo ademas un ejemplo mssn  para que lo descargen y vean como funciona en el editor de misiones.