Autor Tema: Editor del Cliff of Dover  (Leído 2270 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Ootoito

  • Sir
  • Moderator
  • Polkovnik
  • *******
  • Mensajes: 12678
  • Carisma: 423
    • Ver Perfil
Editor del Cliff of Dover
« en: Febrero 05, 2013, 01:48:05 pm »
Bueno pues manos a la obra.

1º ¿Que es un trigger? Pues de forma sencilla y como su traducción indica, un gatillo, algo que se desata, se produce, sucede dependiendo de unas condiciones establecidas...

2º ¿Que triggers tiene el COD? Por el momento y supongo que así quedará, lo que he encontrado es lo siguiente:

-TTime: Es un trigger que se dispara transcurrido un cierto numero de segndos, OJO SEGUNDOS, si queremos que sean minutos pues multiplicar por 60, es decir, 10 minutos son 600 segundos.

P.ej.:
TFusilo TTime 600; // pasados 10 minutos te fusilo

// lo que va detrás de // es un comentario y no se "ejecuta" como código, son comentarios para identificar y ayudar a la comprensión del codigo.

-TGroupDestroyed: Es un trigger que se dispara cuando cierto porcentaje de un grupo aviones o vehículos es destruido.

P.ej.:
THeMatao TGroupDestroyed Tu 50; // destruyen un 50% del grupo Tu


-TGroundDestroyed: Igual que el anterior, pero con la particularidad que los objetos destruidos estan dentro de un circulo establecido con unas coordenadas X,Y y un radio Z

P.ej.:
THeRebentao TGroundDestroyed 50 146394 197308 1500; // han rebentao un 50% de objetos en un circulo de radio 1500 en las coordenadas X146394 e Y197308

-TPassThrough: En este último caso, este trigger se activa dos veces, la primera cuando algún grupo indicado, entra en el radio del mismo, establecido por unas coordenadas X e Y y un radio Z, y otra cuando dicho grupo lo abandona...

P.ej.:
THeAvisao TPassThrough 1 Tu 226609 103789 7500; // El grupo Tu ENTRA en el circulo de radio 7500 ubicado en X226609 e Y103789

En este caso, creo, no estoy seguro, que el "1" puede variar para indicar si se ejecuta cuando "ENTRA" o cuando "ABANDONA" el trigger.

3º ¿Que podemos hacer con los triggers?
Bueno, pues aquí viene lo mejor, supongo que cuanto mas se aprenda mas cosas se podrán hacer con ellos, los triggers al fin y al cabo no son mas que la posibilidad de interactuar con la misión dependiendo de los eventos que vayan sucediendo en ella, es decir, de poder predecir unas acciones a tomar en el caso de que se produzcan otras previstas.

Un ejemplo. Supongamos que estamos en una patrulla sobre Londres, la estación de alerta nos avisa de bombarderos enemigos aproximandose a Londres con rumbo oeste a una altitud de 20.000 pies y activa a otros grupos que se encontraban en alerta temprana para apoyarnos.

Lo primero que haremos (cuando pueda lo acompaño con dibus al estilo Graino) será crear un trigger que detecte la presencia del grupo de bombarderos enemigos, lo llamaré TVienenLosMalos.

TVienenLosMalos TPassThrough 1 LW_He111_STG77 226609 103789 5000;

Bajo la etiqueta de [Triggers] en la mision aparecerá este trigger que como ya deberiais saber, detecta la entrada de un grupo llamado "LW_He111_STG77" en una posición X:226609 e Y:103789 con un radio de 5000 metros, para asegurarnos que pasan por ahí.

Ahora crearemos una acción para crear un vuelo de Spitfires que vendrán en nuestro socorro para la interceptación. Lo primero que haremos en el editor es crear el vuelo de los Spitfires y enviarles a donde se supone que deben ir, a los cielos de Londres. ES OBLIGATORIO, indicar que se trata de un grupo creado por script, para que no sea lanzado al comienzo de la misión, para ello debemos marcar la opcion "Script Spawn C" (no tengo la traducción aquí) al crear el grupo de Spitfires.

Hecho esto crearemos la acción de su "aparición milagrosa" en el editor. En el menú de scripts hay una pestaña de "Acciones" la única disponible por ahora :-), es la de crear grupos de la nada, spawngroups.

[Actions]
SpitisSalvadores ASpawnGroup 1 BoB_RAF_F_610Sqn_Early.01

Hecho esto, hay que decirle al "juego" que cuando el grupo de la LW entre en el trigger TVienenLosMalos ejecute la acción SpitsSalvadores. (también lo del mensaje que lo veremos ahora).
Esta parte la he cogido de una mision de Snafu, no se si el propio editor la crea o la debemos escribir nosotros en el editor de scripts del juego, supongo que es esta segunda, también lo puntualizaré, de todas formas la pongo para que la conozcais.

if ("TVienenLosMalos".Equals(shortName) && active)
   {

   GamePlay.gpHUDLogCenter("Aviones de la Luftwaffe localizados al este de Londres, enviamos apoyo");
        AiAction action = GamePlay.gpGetAction("SpitisSalvadores");
          if (action != null)
                {
                     action.Do();
                }
                GamePlay.gpGetTrigger(shortName).Enable = false;     

   }

Como veis, en el IF se evalua si el TVienenLosMalos se ha activado y en caso afirmativo entra dentro de las llaves para ejecutar:

1º GamePlay.gpHUDLogCenter("mensaje al chat") Envia un mensaje a la pantalla, supongo que hay un sistema para diferenciar entre mensajes a la RAF o a la LW, pero no tengo claro cual es todavía, estoy empezando.

2º AiAction action = GamePlay.gpGetAction("SpitisSalvadores"); Solicita se ejecute la acción con nombre "SpitsSalvadores" y recoge el resultado en la variable "action".

3º Evalua si la variable "action" NO ha devuelto un NULL, si devuelve un NULL es que no existe en la mision, es decir, que en la etiqueta [Actions] no hay ninguna acción con este nombre, una letra puede echar al traste el script, si por ejemplo se nos cuela una S y en lugar de SpitsSalvadores escribimos SSpitsSalvadores, devolverá NULL y por lo tanto no entrará dentro de las llaves del if (action != null)
En caso de no ser NULL es que existe la accion y entonces la ejecuta action.Do();

4º Al ejecutar la acción, el grupo de Spits que habiamos creado y que no se había activado, pues estaba a la espera de ser activado por código, recibirá el visto bueno y aparecerá en la mision, en el primer punto de vuelo que le hayamos dicho con los datos tal y como los crearamos en el editor...

Con esto habremos conseguido detectar la llegada a un punto de los bombarderos de la LW, enviar un mensaje de alerta y enviar grupos de apoyo a dicha interceptación.

Ahora podeís imaginar por ejemplo si divido el canal en zonas, en cada una pongo un Trigger de activación y una acción para cada uno de ellos... dependiendo de donde se detecte el grupo enemigo aparecerá un mensaje y se tomarán o no acciones en consecuencia... como si fuera un sistema de radar.

:-)

En el próximo capitulo explicaremos la reproducción de la oruga araña, que no muerde, sino araña.  :M8:

P.d.: Yo no he profundizado todavía en el editor, estoy como quien dice aprendiendo, pero si engancho a otros a probar estas cosas puede que creemos un grupo de edición y creación de misiones, aprendiendo todos de todos ... :-)


Todos esos momentos se perderan en el tiempo como lagrimas en la lluvia, es hora de morir.

Grainovich

  • Polkovnik
  • ********
  • Mensajes: 21269
  • Carisma: 645
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #1 en: Febrero 05, 2013, 07:48:44 pm »
mmmm... eso mismo ;D , a partir de ahora el que diga que no sabe crear misiones le fusilamos 5 veces!! con 5 triggers que avisen de su maltrecha situación y con do.action al final para hacer respawn de los enterradores que vengan a llevarselo ;D

pd: reveeeeeeeeentaaaaaaaaaaaaaaaaaaaoooooooooooooooooooooooooooooo!!!!!

ppd: Por cierto, efectivamente, los mensajes se pueden enviar al bando que queramos, incluso a un player en particular, se puede hacer lo que se quiera...
« Última modificación: Febrero 05, 2013, 07:50:37 pm por Grainovich »

"Fue en España donde los hombres aprendieron que uno puede tener razón y ser derrotado, que la fuerza puede destruir el alma, y que a veces el coraje no obtiene recompensa" - Albert Camus

Barripower

  • Global Moderator
  • Polkovnik
  • *********
  • Mensajes: 18108
  • Carisma: 290
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #2 en: Febrero 06, 2013, 09:45:22 am »
Ah, ahora lo entiendo todo, sí  :M8:

"Sólo me dan miedo las monjas, el agua y los niños"

Stalin

  • Polkovnik
  • ********
  • Mensajes: 2836
  • Carisma: 122
  • Sexo: Masculino
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #3 en: Febrero 06, 2013, 10:17:31 am »
[Actions]
SpitisEsomepasatambienami,  :nt: ASpawnGroup 1 BoB_RAF_F_610Sqn_Early.01

if ("TVienenLosMalos".Equals(shortName) && active)
   {

   GamePlay.gpHUDLogCenter("Aviones de la Luftwaffe localizados al este de Londres, enviamos apoyo");
        AiAction action = GamePlay.gpGetAction("SpitisSalvadores");
          if (action != null)
                {
                     action.Do();
                }
                GamePlay.gpGetTrigger(shortName).Enable = false;     

   }

Ootoito

  • Sir
  • Moderator
  • Polkovnik
  • *******
  • Mensajes: 12678
  • Carisma: 423
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #4 en: Febrero 06, 2013, 02:30:12 pm »
Saludos,

Maricas.

Graino, ¿como usas el log? ¿tienes que activarlo en el conf.ini para que lo grabe? algo como log=1 donde pone log=0 ...

En este hilo parece que muestra otra forma de "comprobar errores del script"

Todos esos momentos se perderan en el tiempo como lagrimas en la lluvia, es hora de morir.

Grainovich

  • Polkovnik
  • ********
  • Mensajes: 21269
  • Carisma: 645
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #5 en: Febrero 06, 2013, 03:46:04 pm »
No lo tienes siempre activado por defecto? ;D , no se... yo siempre lo he tenido ahí...

Lo que muestra ese hilo es lo del editor ese cachipiruli que comentó Nag y es el que uso, sobre todo para añadir las librearías del COD y conocer los parámetros de los objetos, lo de los errores es que te lo escupe directamente al log.txt  , esta noche lo miro a ver donde tengo yo eso del log=1 y si existe algo asi...

"Fue en España donde los hombres aprendieron que uno puede tener razón y ser derrotado, que la fuerza puede destruir el alma, y que a veces el coraje no obtiene recompensa" - Albert Camus

Grainovich

  • Polkovnik
  • ********
  • Mensajes: 21269
  • Carisma: 645
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #6 en: Febrero 06, 2013, 08:25:10 pm »
Oto, yo tengo esto en el confs.ini

Código: [Seleccionar]
[Console]
IP=20000
IPS=
LOG=0
LOGTIME=0
LOGFILE=logs.txt
HISTORY=128
HISTORYCMD=128
WRAP=1
PAUSE=1
PAGE=20
LOGKEEP=1

Es curioso porque tengo log=0 pero siempre lo he tenido.. igual 0 es tenerlo y 1 quitarlo ;D

"Fue en España donde los hombres aprendieron que uno puede tener razón y ser derrotado, que la fuerza puede destruir el alma, y que a veces el coraje no obtiene recompensa" - Albert Camus

Naglfar

  • Polkovnik
  • ********
  • Mensajes: 4756
  • Carisma: 110
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #7 en: Febrero 06, 2013, 08:33:08 pm »
O igual es porque el confs.ini es la configuracion del server dedicado :iOi:

La ciudad ha caido... ¡Que presagio más funesto!

Grainovich

  • Polkovnik
  • ********
  • Mensajes: 21269
  • Carisma: 645
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #8 en: Febrero 06, 2013, 08:41:49 pm »
O igual es porque el confs.ini es la configuracion del server dedicado :iOi:

Pero cuando lanzaba el server dedicado tambien tenía siempre el log.txt  :iOi:

Edito: No se como coño se me ha cambiado, igual fue al hacer las últimas pruebas, pero la muy puta de Nag tiene razón ;D , Oto, en el conf.ini

Citar

[Console]
  IP=20001
  UseStartLog=1
  WRAP=1
  PAUSE=1
  HISTORY=1024
  HISTORYCMD=1024
  PAGE=20
  LOG=1
  LOGTIME=1
  LOAD=console.cmd
  SAVE=console.cmd
  LOGFILE=log.txt
  LOGKEEP=1


Zorra!!  :w:

Oyep, y ya que estamos, lo del PAUSE alguien sabe que es?
« Última modificación: Febrero 06, 2013, 08:44:59 pm por Grainovich »

"Fue en España donde los hombres aprendieron que uno puede tener razón y ser derrotado, que la fuerza puede destruir el alma, y que a veces el coraje no obtiene recompensa" - Albert Camus

Naglfar

  • Polkovnik
  • ********
  • Mensajes: 4756
  • Carisma: 110
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #9 en: Febrero 06, 2013, 09:25:07 pm »
Pero cuando lanzaba el server dedicado tambien tenía siempre el log.txt  :iOi:

Si, el log.txt que te generaba tu CoD lanzado normal al conectarse a tu servidor dedicado :iOi:

La ciudad ha caido... ¡Que presagio más funesto!

Grainovich

  • Polkovnik
  • ********
  • Mensajes: 21269
  • Carisma: 645
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #10 en: Febrero 07, 2013, 08:02:05 am »
Si, el log.txt que te generaba tu CoD lanzado normal al conectarse a tu servidor dedicado :iOi:

Si.. bueno... vale.. tienes razón... puta!  :iOi:

"Fue en España donde los hombres aprendieron que uno puede tener razón y ser derrotado, que la fuerza puede destruir el alma, y que a veces el coraje no obtiene recompensa" - Albert Camus

Ootoito

  • Sir
  • Moderator
  • Polkovnik
  • *******
  • Mensajes: 12678
  • Carisma: 423
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #11 en: Febrero 11, 2013, 10:11:05 am »
Saludos,

Un truco que he descubierto y que utilizo con mucha frecuencia.

Muchas veces es necesario calcular cuando un avión llega a un punto, por ejemplo si se trata de un avión con el cual debemos reunirnos en mitad del mar del norte, suelo situar un barco, que luego borro, en el punto de reunión. La misión debe ser configurada con una hora exacta, digamos las 12:00h. Creo la ruta de dicho avión y pongo un punto cerca del barco. De esta forma obtengo un tiempo aproximado de cuando pasará el avión sobre el barco, pero este tiempo es muy impreciso, aunque le digamos que vuele a una velocidad asequible para aparato, no suelen ser muy puntuales con los tiempos dados en dichos puntos, y para ser precisos es este "truco". Tened en cuenta que si le decimos a un Tiger que vuele a 300km/h y el sim no tiene puesta como máxima velocidad 280, los puntos de ruta se calcularan como si el avión volara a 300Km/h, cosa del todo imposible para un Tiger.

Tenemos un barco.
Un avión con puntos de ruta. (hora aproximada de paso 12:15)

No podemos utilizar un crono, a no se que nos peguemos esperando los 15 minutos para asegurarnos de que el avión llega en el tiempo que dice el editor, podríamos jugar con la velocidad de los puntos buscando una asequible para el avión, pero esto lleva mucho tiempo. Usar la aceleración de tiempo impide el uso de un crono, a no ser que algún colgado se dedique a contar los segundos y multiplicarlos por 8 desde el comienzo del momento en que alcanza esta velocidad pulsando la aceleración de tiempo.

El truco consiste en situar un avión pilotado por el jugador, acelerar el tiempo y cuando el avión estee sobre el barco darle a pause. Entonces en la cabina del piloto se mira el reloj de cabina y se observa la hora, este tiempo es exacto al transcurrido de mision e independiente de la velocidad a la que situemos la simulación. En mis pruebas los aviones siempre llegan a la hora acordada ajustandolos con este sistema.

Es útil en muchos casos, para reuniones, emboscadas, bombardeos, despegues en mitad de un ataque, etc, etc, etc.

Ahí lo dejo por si a alguno le viene bien.

Todos esos momentos se perderan en el tiempo como lagrimas en la lluvia, es hora de morir.

Grainovich

  • Polkovnik
  • ********
  • Mensajes: 21269
  • Carisma: 645
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #12 en: Febrero 11, 2013, 08:05:40 pm »
pero que reventao por dios!!   :XDDDD:

"Fue en España donde los hombres aprendieron que uno puede tener razón y ser derrotado, que la fuerza puede destruir el alma, y que a veces el coraje no obtiene recompensa" - Albert Camus

Barripower

  • Global Moderator
  • Polkovnik
  • *********
  • Mensajes: 18108
  • Carisma: 290
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #13 en: Febrero 12, 2013, 09:37:20 am »
Jeje, yo también hice eso mismo para una reunión en las misiones de instrucción

"Sólo me dan miedo las monjas, el agua y los niños"

Ootoito

  • Sir
  • Moderator
  • Polkovnik
  • *******
  • Mensajes: 12678
  • Carisma: 423
    • Ver Perfil
Re:Editor del Cliff of Dover
« Respuesta #14 en: Febrero 12, 2013, 01:10:30 pm »
Jeje, yo también hice eso mismo para una reunión en las misiones de instrucción
Creo que son interesantes estos trucos, de esta forma a veces uno encuentra formas de plasmar cosas que de otra forma se pueden alargar buscando soluciones.

Anoche terminé otra misión, aunque es una cosa general, en el sistema Snafu, se suele dar como objetivo completo si un recon de regreso llega hasta un punto, digamos sobre la base donde debe aterrizar, entonces ese recon se supone que ha aterrizado.
La duda me surgió pues para un grupo de bombarderos, el objetivo está en destruir un blanco, o en regresar del bombardeo. Se puede comprobar que porcentaje de aparatos regresan, y dar un mensaje dicendo que los bombarderos han llegado, ¿pero se puede dar el caso de que ambos bandos consigan el exito de sus misiones?
Digamos que para los rojos el exito se haya calculado para derribar un 75% de un grupo de bombarderos, digamos que son 9.
Para los azules el éxito será bombardear unos objetivos y destruir al menos el 50%.
Pues bien, ambos serian exitosos si los azules destruyen ese porcentaje y los rojos tras bombardear regresan mas del 75% ... ¿es correcto? pues imagino que si, se establecen unos objetivo, no quiere decir que se trate de  blanco o negro, simplemente que cada grupo cumpla con lo especificado.

Una duda que me ha surgido, es que si establecemos un 75% de bombarderos destruidos de una formación de 9, que deben ser formados por 3 vuelos de 3, del mismo escuadron y distintas escuadrillas, al indicar en el trigger el porcentaje de destrucción este lo calcula con respecto al "grupo" que seleccionemos, 1 de esos 3, o con respecto a la escuadrilla? si es esto ultimo la solución es sencilla, y si no Graino que me corrija, pero si establezco 3 triggers, cada uno a un grupo con un 66% de destrucción, es decir 2 de cada grupo, y los concateno en la misma condicion:

if (TriggerGrupo1Destroy)&&(TriggerGrupo2Destroy)&&(TriggerGrupo3Destroy) then
Objetivo red conseguido

6.75 de 9 son un 75%, no se si detectará la destrucción de 6 ó 7 bombarderos, peo es una forma de conseguir establecer porcentajes de objetivos de formaciones superiores a 3
« Última modificación: Febrero 12, 2013, 01:24:46 pm por Ootoito »

Todos esos momentos se perderan en el tiempo como lagrimas en la lluvia, es hora de morir.