HRCodWar - API

Referencia del API via web para desarrolladores.
¿Que es el API web?

Se pone a disposición de cualquier usuario que esté interesado en desarrollar aplicaciones relacionadas con la campaña una forma y sencilla de averiguar los datos almacenados referentes a cualquier misión. Básicamente se trata de un RESTFul simplificado, en el que la única operación posibles es la de consulta. Para aquellos que no estén familiarizados con este tipo de servicios web, se trata de obtener información mediante llamadas http a un script, el cual devolverá un objeto json con la información requerida, obviamente, codificado en UTF-8.

Parámetros

La url del api es la siguiente: http://sg1.es/hrcodwarweb/api/datos.php

Todos los parámetros deben pasarse via url (get). El orden es independiente:

  • c : La clave de tropa del bando que se quiere interrogar.
  • n : El nº de la misión volada.
  • f : El nombre del fichero que se quiere interrogar.
En el siguiente ejemplo, leeremos los eventos que se registraron en la misión nº 2:

http://sg1.es/hrcodwarweb/api/datos.php?c=password&n=2&f=eventos

El resultado
El objeto json devuelto tiene las siguientes variables:
  • r : Es el resultado de la consulta, valor booleano, true o false.
  • m : Solo lleva valor en el caso de que r==false, y devuelve el mensaje de error.
  • d : Son los datos propiamente dicho, el fichero leido, el cual tiene una estructura propia.
Los ficheros

HRCodWar almacena tanto en el servidor como en la web, los ficheros necesarios para el transcurso de la campaña, de esta forma, podemos averiguar cualquier dato que necesitemos de la misma. Como ya se ha explicado en otras ocasiones, no usa una base de datos, si no ficheros json almacenados en distintos directorios. Estos ficheros son los que podemos interrogar, y algunos será totalmente públicos ya que no guardan información sensible sobre el bando, como por ej. pilotos.json, sin embargo otros como eventos.json serán filtrados y solo se podrá leer los eventos del bando interrogado.

Cada fichero almacena los datos en una estructura propia, con los campos necesarios para almacenar información durante la ejecución en el servidor, pero que a efectos prácticos del API carecen de sentido, sin embargo serán leidos tal cuales y devueltos con la totalidad de sus campos aunque éstos se encuentren vacíos. A continuación se documentan los campos válidos para un uso estadístico, el resto de trabajo interno no serán referenciados (aunque si devueltos).

El nombre exacto de los ficheros a interrogar con el parámetro f (comunes y públicos) y los datos devueltos en el json encontrado en d son:

La puntuación acumulada de cada bando.

  • bando: 1 aliado, 2 eje.
  • puntuacion: La puntuación en esa misión.
  • puntuacion_anterior: La puntuación en la anterior misión.
  • puntuacion_diferencia: Diferencia de puntos entre misiones.
  • tendencia_actual: +1 o -1 segun la diferencia.
  • tendencia: La suma de las tendencias actuales en cada misión.

Almacena la puntuación de todos los escuadrones.

  • nick: El nick del escuadrón.
  • bando: 1 aliado, 2 eje.
  • puntuacion: La puntuación del escuadrón en esa misión.

Almacena la estadística básica de todos los pilotos.

  • nombre: El nick del piloto.
  • bando: 1 aliado, 2 eje.
  • escuadron: El nick del escuadrón al que pertenece.
  • unidades_clases_destruidas: Colección de valores json con la clase del aparato destruido y las veces, ej: {"BlenheimMkIV":1,"SpitfireMkIIa":5}
  • unidades_nombres_destruidas: Colección de valores json con el nombre de las entidades destruidas y las veces, ej: {"BlenheimMkIV#77":3,"Fábrica nº 5":1,"nickpiloto":2}
  • ndespegues: Nº de despegues registrados.
  • ncapturado: Nº de veces capturado.
  • nmuertes: Nº de muertes registradas.
  • nmisionmuerto: Nº de la misión donde ocurrió el fallecimiento (si se activa el modo vida única).

Almacena la situación de todos los puertos.

  • coord: Otro objeto json con las coordenadas x/y del sector del puerto, se refiere a la esquina inferior izquierda.
  • sector: Nombre del sector del puerto.

El nombre exacto de los ficheros a interrogar con el parámetro f con información sensible de cada bando y los datos devueltos en el json encontrado en d son:

Información de las bases del bando interrogado.

  • escuadron: El nick del escuadrón al que pertenece.
  • nombre: El nombre de la base.
  • sector: Nombre del sector donde se encuentra.
  • bando: 1 aliado, 2 eje.
  • coord: Otro objeto json con las coordenadas x/y.
  • recursos_fuel: Kilos de combustible.
  • recursos_municion: Munición, unidades.
  • recursos_bombas: Bombas, unidades.
  • recursos_reparacion: Kits de reparación, unidades.
  • aparatos_disponibles: Colección de valores json con los aparatos disponibles en la base, ej: {"BlenheimMkIV":10,"HurricaneMkI_100oct":12}
  • aparatos_en_reparacion: Listado de valores json con los aparatos en reparación en la base, ej: ["SpitfireMkIIa@5","BlenheimMkIV@202"]
  • prestamos: Nº de aparatos que la base puede prestar.
  • id: Corresponde al nº de la base, usado en los comandos chat.

Información de las fábricas del bando interrogado.

  • escuadron: El nick del escuadrón al que pertenece.
  • coord: Otro objeto json con las coordenadas x/y.
  • destruida: Valor booleano que indica si en esa misión esta destruida.
  • mision_destruida: Nº de la misión de cuando fue destruida.
  • sector: Nombre del sector donde se encuentra.
  • bando: 1 aliado, 2 eje.
  • id: Corresponde al nº de la fábrica, usado en los comandos chat.
  • puntos: Puntos de creación almacenados en esa misión.
  • esastillero: Valor booleano que indica si la fábrica es un astillero o no.

Información de las refinerías del bando interrogado.

  • escuadron: El nick del escuadrón al que pertenece.
  • coord: Otro objeto json con las coordenadas x/y.
  • destruida: Valor booleano que indica si en esa misión esta destruida.
  • mision_destruida: Nº de la misión de cuando fue destruida.
  • sector: Nombre del sector donde se encuentra.
  • bando: 1 aliado, 2 eje.
  • id: Corresponde al nº de la refinería, usado en los comandos chat.
  • fuel: Kilos de combustible almacenados en esa misión.

Información de las centrales eléctricas del bando interrogado.

  • coord: Otro objeto json con las coordenadas x/y.
  • destruida: Valor booleano que indica si en esa misión esta destruida.
  • mision_destruida: Nº de la misión de cuando fue destruida.
  • sector: Nombre del sector donde se encuentra.
  • bando: 1 aliado, 2 eje.
  • id: Corresponde al nº de la central.

Listado de las unidades aliadas supervivientes en la misión.

  • nombre: El nombre de la unidad.
  • escuadron: El nick del escuadrón al que pertenece.
  • clase: La clase de objeto del CLOD.
  • bando: 1 aliado, 2 eje.
  • coord: Otro objeto json con las coordenadas x/y donde se encuentra, si esta embarcada es 0,0
  • vector: Dirección hacia "donde mira", si esta embarcada es 0.0
  • sector: Nombre del sector donde se encuentra, si esta embarcada esta vacio.
  • tipo: Tipo de unidad, numérido, valores: blindado 0, navio_mercante 1, navio_escolta 2, navio_barcaza 3, aaa 4, aaapopa 5, aaaproa 6, artilleria 7, columna 8
  • embarcable: Boolenado que indica si la unidad puede ser embarcada en un mercante o no.
  • embarcada: Si estaba embarcada, el nombre del mercante donde viajaba.
  • unidades_embarcadas: Si es un mercante, listado de los nombres de las unidades que viajaban en la bodega.
  • carga: Si es un transporte (tipo 8 columna), lo que transporta y su cantidad.
  • mision_movida: El nº de la misión donde fue movida.

Listado de las unidades destruidas en esa misión, cada item almacena:

  • nombre: El nombre de la unidad.
  • escuadron: El nick del escuadrón al que pertenece.
  • clase: La clase de objeto del COD.
  • bando: 1 aliado, 2 eje.
  • coord: Otro objeto json con las coordenadas x/y.
  • vector: Dirección hacia "donde mira".
  • sector: Nombre del sector donde se encuentra.
  • tipo: Tipo de unidad, numérido, valores: blindado 0, navio_mercante 1, navio_escolta 2, navio_barcaza 3, aaa 4, aaapopa 5, aaaproa 6, artilleria 7, columna 8
  • embarcada: Si estaba embarcada, el nombre del mercante donde viajaba.
  • unidades_embarcadas: Si es un mercante, listado de los nombres de las unidades que viajaban en la bodega.
  • causantes: Descripción de los causantes del daño.
  • hora_destruida: Hora de la misión en la que fue destruida.

Listado de los eventos registrados en esa misión.

  • mision: Nº de misión del evento.
  • bando: 1 aliado, 2 eje.
  • tipo: Un entero que identifica al tipo de evento. Estos se pueden consultar leyendo el siguiente fichero aquí (tambien en formato json).
  • coord: Objeto json con las coordenadas x/y donde ocurre el evento.
  • sector: Nombre del sector donde ocurre el evento.
  • clase: La clase del objeto al que se asocia el evento.
  • nombre_origen: El nombre identificativo de la entidad que provoca el evento.
  • texto: Información adicional a cada evento, usado para maquetar el briefing.
  • hora_destruida: Hora de la misión en la que se produce.

Mal llamado briefing de la misión, ya que en realidad es el informe de los sucedido. Es el que se muestra en la web y se usa eventos.json para su maquetación

  • bando: 1 aliado, 2 eje.
  • texto: Maquetación arbitraria (fiel, dramática y a veces jocosa) del evento ocurrido.