HRCodWar - ¿Como empezamos?

Vale, me gusta las características de la campaña... ¿como planificamos la campaña? ¿por donde empezamos?.

Es de lo mas normal que te hagas esas preguntas. Vamos a intentar explicar los pasos lógicos para cualquier escuadrón que pretenda planificar una HRCODWAR y no morir en el intento :)

Paso 1 - ¿Quienes volamos?

Lo primero es contactar con varios escuadrones y comprobar de cuantos pilotos puede contar cada escuadrón, para saber si tienen suficientes para gestionar su propio frente, es decir, sus bases, tropas, etc. Vamos a poner un ejemplo en todos los pasos. Supongamos 4 escuadores: SQ1, SQ2, SQ3, SQ4 (SQ es de SQUAD), SQ1 y SQ2 volarán de aliados, SQ3 y SQ4 del eje.
Sin embargo, hay un SQ5 que tambien desea volar del eje pero tiene pocos pilotos para gestionar recursos propios, solo son 3 pilotos, SQ5_Pilot1, SQ5_Pilot2 y SQ5_Pilot3, ¿como lo solucionamos?. Entre los escuadrones del eje se ponen de acuerdo de quien va alistarlos en sus tropas, pongamos que SQ3 volará con SQ5, por lo que los pilotos de SQ5 deben cambiarse en el nick de steam a SQ3_Pilot1, SQ3_Pilot2, SQ3_Pilot3 ó SQ3_SQ5_Piloto1, SQ3_SQ5_Piloto2 y SQ3_SQ5_Piloto3, lo importante es que primero aparezca el TAG del escuadrón que gestiona una plantilla y por tanto recursos propios.

Paso 2 - ¿Donde volamos?

Ahora, hay que decidir en que mapa y en que parte del mapa va a tener lugar la batalla. Hay que elegir el mapa y la zona de combate, lo suficientemente grande o pequeña, para que todos los pilotos puedan encontrarse y combatir entre ellos. Tambien hay que tener en cuenta que el área elegida tenga suficientes bases para poder ocupar por ambos bandos.
Hay un detalle importante en este paso que es la elección del tamaño de la cuadrícula, si se elige un tamaño muy grande las unidades de tierra pueden avanzar muy rapidamente, si por el contrario se elige un tamaño muy pequeño, avanzarán muy lentamente y los movimientos pueden eternizarse, a no ser que se modifique adecuadamente el velocidades.json que se explica a continuación.
Una vez elegido el mapa y la zona de combate, se elige la hora de comienzo y se salva el mapa vacio como /missions/hrcodwar/hrcodwa.mis, dando lugar a la misión inicial y el patrón para las plantillas que veremos mas adelante.
El .mis debería tener este aspecto:

[PARTS]
  core.100
  bob.100
[MAIN]
  MAP Land$English_Channel_1940
  BattleArea 200000 180000 130000 90000 2500
  TIME 10
  WeatherIndex 0
  CloudsHeight 1000
  BreezeActivity 10
  ThermalActivity 10
[splines]
[CustomChiefs]
[Stationary]
[Buildings]
[BuildingsLinks]
Como se ve, no debe almacenar nada mas.

Paso 3 - ¿Con que volamos y cuanto vale?

Los escuadrones deberán ponerse de acuerdo en los costes de las unidades y las unidades a usar. Aquí debemos decir que los Halcones Rojos ya hemos hecho un trabajo exaustivo previo para comprobar que unidades "estan a la par" y pueden usarse equilibradamente unas contra otras, pero cualquier es libre de añadir, quitar y modificar sus costes.
Estos datos se encuentran en missions/hrcodwar/datos_sistema en formato .json como cualquier dato que maneja la campaña:

  • aliados_aaa_ligeras.json: AAA ligera aliada, clase y coste.
  • aliados_aaa_pesadas.json: AAA pesada aliada, clase y coste.
  • aliados_artilleria_ligera.json: Artillería ligera aliada, clase y coste.
  • aliados_blindados_ligeros.json: Blindados pesados aliados, clase y coste.
  • aliados_blindados_pesados.json: Blindados lijeros aliados, clase y coste.
  • aliados_aparatos.json: Aparatos aliados, clase y coste.
  • eje_aaa_ligeras.json: AAA ligera del eje, clase y coste.
  • eje_aaa_pesadas.json: AAA pesada del eje, clase y coste.
  • eje_artilleria_ligera.json: Artillería ligera del eje, clase y coste.
  • eje_blindados_ligeros.json: Blindados pesados del eje, clase y coste.
  • eje_blindados_pesados.json: Blindados lijeros del eje, clase y coste.
  • velocidades.json: Los sectores que avanza cada unidad (especificada en los ficheros anteriores). Recuerda que las unidades se mueven por sectores y no por distancias. Se hace notar que las columnas de suministro las crea la campaña y se llaman "columna_xx_x", estas siempre deberán estar en el fichero.
  • eje_aparatos.json: Aparatos del eje, clase y coste.
  • aparatos_suministran.json: Los aparatos que pueden realizar suministros aéreos y su carga.
  • navios_escolta.json: Navios de escolta, destructores, iguales para los dos bandos, clase y coste.
  • navios_mercantes.json: Navios mercantes, iguales para los dos bandos, clase y coste.
  • recursos_costes.json: Lo que vale fabricar cada unidad de recurso.
  • puntos.json: La puntuación que suma al bando destruir cada unidad descrita en los ficheros, o algunos eventos como conquista o destruir infraestructuras. A parte de las clases de unidades que se reconocen porque aparecen en los otros ficheros de costes, tenemos las siguientes entidades:
    • 3_inch_20_CWT_QF_Mk_I_StandAlone1: Es la AAA pesada que se puede montar en la proa y popa del mercante.
    • Bofors_StandAlone: Es la AAA ligera que se puede montar en la proa y popa del mercante.
    • MotorBarge_Large1: Son las lanchas de embarco y desembarco.
    • piloto: Puntuación correspondiente a un piloto muerto.
    • piloto_capturado: Puntuación correspondiente a un piloto capturado.
    • fabrica: Puntuación correspondiente a una fábrica destruida.
    • refineria: Puntuación correspondiente a una refinería destruida.
    • central: Puntuación correspondiente a una central destruida.
    • almacen_combustible: Puntuación correspondiente a un almacén de combustible en los aeródromos.
    • almacen_bombas: Puntuación correspondiente a un almacén de bombas en los aeródromos.
    • almacen_municion: Puntuación correspondiente a un almacén de munición en los aeródromos.
    • almacen_reparacion: Puntuación correspondiente a un almacén de kits de reparación en los aeródromos.
    • Car.xxx: Son los objetos que se usan en las columnas de suministro.
    • Tank.xxx: Son los objetos que se usan en las columnas de suministro, la AAA.
    • conquista_base: La puntuación que se consigue al conquistar una base.
    • conquista_fabrica: La puntuación que se consigue al conquistar una fábrica.
    • conquista_refineria: La puntuación que se consigue al conquistar una refinería.
    • conquista_central: La puntuación que se consigue al conquistar una central.
    • desembarco: La puntación máxima conseguida si se desembarca en territorio enemigo unidades_carga_mercante del conf.ini, quiere decir que es proporcional a las unidades desembarcadas.

Paso 4 - ¿En que condiciones volamos?

Ahora los participantes deberían ponerse de acuerdo en los valores del conf.ini que gobiernan la campaña, lo que significa cada valor ya se explica en esa sección.

Paso 5 - ¿La plantilla? ¡oh no! ¡sálvese quien pueda!

Una vez que cada bando sabe de cuantos puntos de creación dispone, deberían decidir entre los escuadrones de cada bando cuantos puntos va a usar cada uno, bases a ocupar y recursos a usar, ya que las necesidades de un escuadrón que vuela con 10 pilotos no son las mismas que las de uno que vuela con 20 pilotos, aunque todo esto es muy relativo. Al fin y al cabo, una vez comenzada la campaña siempre se pueden alistar tropas de unas a otras, o suministrar recursos de unos a otros.

Sabiendo cada escuadrón de cuantos recursos dispone... llevamos finalmente al temido momento de.. ¡¡ "crear la plantilla" !!.

Cada escuadrón deberá copiarse el missions/hrcodwar/hrcodwa.mis y renombrarlo con su nick de escuadron , por ej. sq2.mis para usarla como patrón inicial. La creación de la plantilla ya se encuentra descrita y explicada perfectamente este magnífico manual que puedes descargar aquí, por lo que no vamos a explicarlo ahora. Simplemente decir, que al acabar, se almacenará en missions/hrcodwar/plantillas como missions/hrcodwar/plantillas/sq2.mis.

Paso 6 - Probando la plantilla

¡ATENCIÓN! Se suponen conocimientos en configuración del servidor dedicado del IL2 Sturmovik Cliff of Dover.

Es interesante (y necesario) que cada comandante disponga de la instalación de la campaña en su propio ordenador y que sepa como funciona, ya que una vez creada la plantilla de su escuadrón debería probar que gasta y crea todos los recursos que se les ha asignado a su escuadrón sin pasarse y sin quedarse corto, ¿como se hace esto?, vamos a ello.

Supongamos que somos SQ2 y queremos probar nuestra plantilla, lo mejor es configurase un servidor dedicado como explicamos en la sección de Instalación de la Campaña aquí, luego nos vamos al conf.ini y editamos los siguientes valores.

  • [GENERAL]
    • analiza_plantilla_siempre = true Le decimos al sistema que siempre que lance la misión, analice las plantillas iniciales, realmente siempe será la misión 0.
    • informe_plantillas = true Este valor es crucial en este proceso, si se activa sacará informes en la pantalla del server de lo que esta analizando, de esta forma el comandante sabe si ha gastado bien los recursos destinados a su escuadrón.
    • calcula_coordenadas_recursos = false El sistema calcula automáticamente la posición de los recursos de la base en las 4 coordenadas cardinales, evita que los almacenes caigan sobre otros edificios. Esta operación solo se lleva a cabo cuando se analiza la plantilla en la misión 0 y conlleva un coste de tiempo extra, si queremos probar la plantilla varias veces (por que corregimos errores aquí y allá) perdemos mucho tiempo, es mejor desactivarlo para que las cree fijas donde caigan, ahora mismo, no nos importa esa circustancia.
    • web_activa_soporte = false Deshabilitamos la comunicación web para evitar provocar errores de comunicación, al fin y al cabo, no somos el server real de la campaña.
  • [GUERRA]
    • mision = 0 Asegúrate de que el nº de misión es 0, ya que en la misión 0 es cuando se procesan las plantillas.
    • escuadrones_aliados = SQ2 Deja solo el tag de la plantilla a probar, en este caso el del escuadrón SQ2.
    • escuadrones_eje = Deja el valor en blanco, para que no busque otras plantillas.

Una vez modificado estos valores, lanzaremos la misión como si fuéramos el server, en la ventana del server veremos lo que el sistema esta haciendo. HRCODWAR detectará el bucle inicial activado y aunque lancemos mil veces, siempre será la misión 0 y analizará la plantilla siempre, detectará que solo está la plantilla de SQ2 para analizar y la cargará, analizando todos sus recursos y unidades, sacando por pantalla un resumen de lo encontrado y gastado. De esta forma, el comandante del SQ2 podrá ver sin necesidad de ser el server real y sin tener que enviarsela a la nadie, si su plantilla cumple lo pactado con el resto de escuadrónes de su bando o incluso con el bando contrario.

Bien, una vez que la tiene creada, ha llegado el momento de comprobar el cáculo de posición de los almacenes. Modificaremos el conf.ini a:

  • [GENERAL]
    • calcula_coordenadas_recursos = true Para que calcule las coordenadas finales de los recursos.

Lo primero que notará el comandante es que tarda mas en procesarse ya que esta calculando las coordenadas reales de los almacenes de recursos de las bases. En estos instantes puede ser que el sistema lance algun mensaje de advertencia como que no se ha podido calcular adecuadamente la posición de algún grupo y se pone fija. "Poner fija" un grupo de almacenes quiere decir que la deja en su posición al norte, o al oeste, o al este, o al sur a rango_recursos_base metros de donde situo el objeto de Birthplace, ya que no ha encontrado un lugar "libre" para situar los grupos. Esto quiere decir que pueden aparecer en medio de un pueblo o en medio de un bosque. Esta es una operación automática que se realiza para ahorrar trabajo al comandante que reliza la plantilla pero que tiene estos inconvenientes. Sabiéndolo no tiene mayor importancia, lo único que se puede hacer, es mover el objeto un poco arriba, abajo, izquierda o a la derecha para "salvar" esa circustancia, aunque tambien se pueda dejar tal cual, pero puede ser considerado como una "trampa" por el adversario. Si no da ningún otro mensaje, todo esta correcto.

La partida lanzada en ese momento es lo de menos, probablemente no se lance nada porque se aborte por algún error del tipo "no se han encontrado todas las centrales eléctricas", eso es lo de menos, lo importante es que el comandante del SQ2 tiene una herramienta a mano para comprobar lo que esta haciendo. Todos los comandante de los escuadrones deberían hacer lo mismo, para que cuando se la envién al que va hacer de server realmente y lance la partida inicial, no ocurran problemas y se pueda volar la misión inicial en ese instante sin necesidad de tocar nada.

Todo esto puede parecer complicado, pero cualquier operación de esto tipo lo es al principio. Si sigues los pasos que indicamos verás como no es tan complicado, pero nadie nace enseñado :)

Paso 7 - ¡Ok todo correcto! ¿volamos ya?... ¡NO!

Cuando todos los comandantes ya han creado sus plantillas y esta todo listo hay que comprobar que realmente todo va funcionar junto. La máquina que va hacer de server debería disponer de todas la plantillas (como es lógico) y almacenarlas en su missions/hrcodwar/plantillas, siguiendo el ejemplo, ese directorio debería almacenar, SQ1.mis, SQ2.mis, SQ3.mis y SQ4.mis.

La operación que viene a continuación, debería realizarla el server antes de que llegara el día y la hora de volar para asegurarse de que todas las plantillas juntas operan bien. Ni que decir tiene que como en cualquier competición de este tipo, las personas implicadas se suponen adultas y realizan esta actividad para su mutua diversión, por lo que las sutilezas obvias derivadas de una posible actividad engañosa, es decir, "hacer trampas", quedan fuera de toda consideración. Asi pues, editaremos el conf.ini así.

  • [GENERAL]
    • analiza_plantilla_siempre = true
    • informe_plantillas = false
    • calcula_coordenadas_recursos = true
    • web_activa_soporte = false
  • [GUERRA]
    • mision = 0
    • escuadrones_aliados = SQ1,SQ2
    • escuadrones_eje = SQ3,SQ4

Ahora comprobaremos si todas las plantillas juntas funcionan, pero se calcularán las posiciones reales de los recursos de las bases (la operación llevará mas tiempo) y el server no lanzará mensajes del análisis. De esta forma el que lo esta haciendo no verá detalles de las operaciones y su subsconciente no almacenará ninguna información sensible. Si todo esta correcto, el server verá que se recrea el frente y comienza la guerra.

Si ocurre algún error y el sistema no comienza la guerra, es el momento de activar informe_plantillas = true y analizar que ha ocurrido.

En este punto, si se dispone de soporte web, es decir, de este proyecto web que estas viendo ahora mismo y esta correctamente configurada, y esta todo correcto, el server podría activar la comunicación web para realizar una misión 0 falsa, y salvar a web todos los datos analizados, para que todos los participantes puedan visualizarlos via web y comprobar que todo esta correcto.

  • [GENERAL]
    • web_activa_soporte = true Activamos la comunicación web
    • web_script_url = http://www.mydomain.com/hrcodwar/ajax/services.php?a=datos Especificamos la dirección web del script que se usa para comunicarse ambos programas.
    • web_script_clave = LA_CLAVE_ELEGIDA Ponemos la misma clave que almacena la web en CFG_CLAVE_ACEPTA_ENVIOS de su config.inc.php.

Si esta todo bien configurado, cuando se termine la misión, con un "battle stop" una vez iniciada desde la ventana del server, el sistema enviará los datos analizados a la web y todos los participantes ya podrán entrar y ver como ha quedado todo sobre el mapa. Esta es una misión falsa, porque cuando se vuele la primera misión de verdad, esos datos serán sobreescritos con la misión 0 "de verdad".

Paso 8 - ¿ya? ¿volamos ya?... si, ahora si

Todo preparado y listo, solo queda configurar el conf.ini del server para la gran cita. Las variables importantes que debes tener en cuenta son:

  • [GENERAL]
    • analiza_plantilla_siempre = false Para desactivar el bucle inicial y siga con la batalla.
    • informe_plantillas = false Para no dar informes de lo que analiza, de lo contrario lo vería todo el mundo.
    • calcula_coordenadas_recursos = true
  • [GUERRA]
    • mision = 0
    • id_siguiente_unidad = 0 Asegurate que es 0 (es el contador de identificadores de unidades para hacerlas únicas en el mapa)

Y solo queda entrar al server y ganar la guerra :)