Comandos
IF COND ELSE ENDIF


Se utilizan para procesar comandos bajo ciertas condiciones que podamos establecer durante el transcurso del juego.
En nuestra aventura tendremos que controlar multitud de situaciones para procesar los comandos adecuados en los momentos adecuados según el jugador interactúa con el juego. Estos comandos nos ayudarán a 'encerrar' entre condiciones los comandos que queremos que se procesen en cada momento.


Sintaxis:
IF COND condición_o_condiciones
  comandos_a_procesar_SI
  .
  .
  .
ELSE
  comandos_a_procesar_NO
  .
  .
  .
ENDIF

Significado de los parámetros de este comando:

  • condición_o_condiciones: Condición o condiciones que se han de cumplir.

  • comandos_a_procesar_SI: Líneas de comandos que se procesarán si todas las condiciones se han cumplido.

  • comandos_a_procesar_NO: Líneas de comandos que se procesarán si una o más condiciones NO se han cumplido.


    Puedes usar los siguientes símbolos en las comparaciones COND:
    = para comprobar si los dos valores comparados son iguales.
    ! para comprobar si los dos valores comparados son diferentes.
    > para comprobar si el primer valor es mayor que el segundo valor.
    < para comprobar si el primer valor es menor que el segundo valor.


    Ejemplo:
    No permitir atacar al demonio si el jugador no dispone como mínimo de 8 puntos de salud:
    IF COND EVENTO_ACCION=SI COND ACCION_SELECCIONADA=Atacar COND OBJETO_SELECCIONADO=7 COND ZONA_SELECCIONADA=8 COND DEMONIO_MUERTO=0
      IF COND SALUD>7
        COMANDO TEXTO_CONSOLA Has conseguido acabar con el demonio 
        COMANDO CARGAR_VARIABLE DEMONIO_MUERTO=1
      ELSE
        COMANDO TEXTO_CONSOLA No tienes la suficiente salud para enfrentarte al demonio	
      ENDIF
    ENDIF
    En este ejemplo si se cumple todo: que el jugador realiza una acción, que esa acción es atacar, que lo hace usando la espada (objeto 7), que lo hace sobre la zona 8 (demonio) y que el demonio aún está vivo .... entonces no está todo comprobado ya que queremos presentar un mensaje si el jugador no tiene suficiente salud, por eso ponemos ese segundo IF que controla la salud para procesar las líneas que matan al demonio y con la línea detrás del ELSE la que presenta el mensaje que nos interesa.

    Este es un ejemplo muy sencillo, pero supongo que te habrás dado cuenta de la potencia de control que permiten estos comandos y lo que puedes llegar a controlar con la adecuada combinación de condiciones, variables y comandos para dotar a tu juego del mecanismo particular que requiera cada situación.

    Puedes encontrar más ejemplos de estos comandos condicionales en combinación con otros en las secciones de los comandos correspondientes.
    Puedes usar los comandos condicionales IF COND unos dentro de otros IF COND si quieres chequear condiciones antes de chequear otras condiciones.
    Detrás del comando IF puedes poner las condiciones que quieras mientras las separes con COND.
    No es obligatorio que uses ELSE si no lo necesitas en una condición.
    No te olvides de cerrar todos los IF con su correspondiente ENDIF, de lo contrario te encontrarás con un mal funcionamiento de las condiciones.



    Consulta la estructura de datos de los ficheros 'local.ini' y del fichero .ini de la localidad, para saber en que orden debes incluir los comandos dentro de estos ficheros.
    Es bastante recomendable que te acostumbres a realizar este tipo de escalonamientos de líneas que ves en los ejemplos cuando uses comandos 'IF COND ELSE ENDIF' para que te resulte más fácil de entender que líneas se procesan al cumplir la condición y que líneas no se procesan si no se cumple o que condición está dentro de otra.
    Consulta la sección 'Variables del sistema' para saber que son estas variables y como utilizarlas.