SAIL Syntax/es
From Original War Support Wiki
Contents |
Intro
La sintaxis del SAIL está basada en el Pascal pero se diferencia en algunos aspectos. Lo que esta continuación se ha diseñado para darle a usted un conocimiento básico acerca de él conocimiento de la sintaxis del SAIL. Hay que tener en cuenta que todos los códigos de sintaxis deben estar en inglés (por ejemplo Begin ,End ,For ,Case ,Function ,etc.) pero los nombres de las variables o los nombres de las funciones puede ser cualquier cosa.
Starting
El bloque Starting sólo puede utilizarse una vez. Es el lugar donde la primera porción de código SAIL será corrida y se usa normalmente para configurar el mapa.
Starting Begin Wait(1000); End;
Export
Para permitir a otro módulo acceder a las funciones y/o variables de un módulo, se necesita utilizar un Export. (Cada "página" de código es llamada módulo)
Variables:
Export MiVariable; Export MiVariable2,MiVariable3;
Funciones:
Export Function MiFunción; begin // end;
Las cosas exportadas son llamadas y utilizadas al igual que las normales. La única diferencia es que se encuentran globalmente abiertas a cualquier módulo.
Declarando variables
Si uno no quiere que una variable sea global necesita utilizar Var para declarar variables. En el SAIL las variables no tienen tipo en particular, pueden ser cualquier cosa.
Var MiVariable; Var MiVariable2,MiVariable3;
Function MiFunción; Var MiVariable; begin // end;
Functions
En el SAIL se puede utilizar una función tanto como para procedimientos como para otras funciones. Las funciones pueden recibir parámetros y largar un resultado.
Sin Parámetros:
Function MiFunción; Begin // end;
Con Parámetros:
Function miFunción(UnaVariable); begin // end;
Resultado:
Function MiFunción(UnaVariable); begin Result := UnaVariable; end;
unaVariable2 := MiFunción(5);
Comments
Es posible agregar comentarios al código, simplemente tipeando //. Todo lo que tenga // se considera un commentario.
Wait(10); // Un Comentario Wait(10); // Un Comentario // Wait(10); <---- se considera un comentario
If Then
El If Then le permite ver si el resultado de una variable o función es igual o diferente a alguna variable o al valor de una constante.
If UnaVariable = 5 then Wait(1);
If Query("Q1") = 1 then Wait(1);
Los comandos If Then pueden tener también Else
If UnaVariable = 1 then Wait(1) else Wait(2);
Begin End
Begin y End agrupan cierta cantidad de código y son utilizadas generalmente luego de otros comandos de sintaxis como For Loops, If Thenm etc.
If UnaVariable = 1 then begin Wait(1); Wait(2); end;
For Do loop
For Loops repiten la línea que se encuentra bajo los mismos, desde X a X.
For X := 1 to 5 do Wait(1);
For x := 1 to 5 do begin wait(1); end;
y := 1; j := 5; For x := y to j do begin wait(1); end;
Repeat Unit Loop
Los Repeat Until loops corren el mismo código una y otra vez sin cesar hasta que se cumpla una determinada condición.
x := 0; Repeat x := x + 1; Until x := 5;
While Do Loop
Los While loops son iguales a los Repeat Untils, con la excepción de que va primero la condición.
x := 0; While x < 5 do begin x := x + 1; end;
Case
El Comando Case le permite simplemente correr el código dependiendo del valor de una variable o del resultado de una función.
case Query('Q1') of 1:begin // código a correr si el resultado de un Query es 1 end; 2:begin // end; end;
case UnaVariable of 1:begin // end; 2:begin // end; end;
En vez de utilizar valores se pueden utilizar también constantes.
case AVarible of unit_human:begin // unit_human es en OW una constante predefinida. Al usarla, Se puede facilmente verificar si una unidad específica es un humano. end; unit_vehicle:begin // end; end;