Vous êtes sur la page 1sur 41

Manual de edición en español por Keké - V.

Estas notas están dirigidas a todos aquellos que, como yo, ya se han peleado algo con el editor
de Arma 3 y conocen los principios básicos.

Todos los script y trucos que vais a ver los he encontrado en páginas de Internet, foros o
videos, yo no he creado ninguno de ellos, lo único que he hecho ha sido recopilarlos y en
muchos casos traducirlos, explicarlos y documentarlos como a mí me ha parecido mejor.

También me ha parecido una guía práctica para utilizar cuando estamos editando y no
recordamos el script adecuado.

Algunas funciones han quedado desfasadas con las actualizaciones de Bohemia, pero las dejo
porque a veces pueden servir para alguna acción en particular.

Desde aquí gracias a todos los que se han molestado en publicarlos y a aquellos que me han
ayudado con las dudas.

Diciembre 2017

Página 1 de 41
Manual de edición en español por Keké - V.4

ÍNDICE:

1.- Mueve a una unidad dentro de un vehículo, determinando la posición.

2.- Define la torreta en la cual se colocará al soldado.

3.- Mover a un soldado a la posición de carga de un vehículo.

4.- Para que aparezca un pequeño cuadrado de texto en la parte superior derecha.

5.- Para que aparezca un mensaje de radio escrito en la parte de abajo

6.- Para disparar automáticamente ráfagas de artillería.

7.- Para crear un IED.

8.- Para fijar un marcador a una unidad.

9.- Para que la IA se lance en paracaídas de forma progresiva sobre el terreno.

10.- Para que se pueda encender una luz (roja o verde) dentro de cualquier vehículo.

11.- Para abrir y cerrar automáticamente la barrera de control de carreteras.

12.- Para que las unidades aparezcan con animaciones.

13.- Para abrir y cerrar las puertas de un helicóptero.

14.- Para mejorar la inteligencia de la IA.

15.- Para activar un activador cuando se destruya un objeto que sea del mapa.

16.- Para que un objeto, que no sean del mapa, active un activador cuando se destruya.

17.- Para que una unidad active un activador independientemente de la condición del bando.

18.- Para activar un activador al entrar o salir de un vehículo.

19.- Para solicitar apoyo mediante un activador.

20.- Para modificar el contenido de los suministros y colocar una granada de humo en la caja
enviada por el proveedor de apoyo.

21.- Para que una unidad se una o deje de estar unida a tu grupo sin waypoint.

22.- Para que la IA use la linterna mientras patrulla de noche.

23) Para que un vehículo controlado por la IA mantenga las luces encendidas.

24.- Para activar un activador haciendo un recuento de unidades.

25.- Para crear un cartel o señal en el mapa.

Página 2 de 41
Manual de edición en español por Keké - V.4

51.- Para cargar algún objeto en un vehículo y poder transportarlo.

52) Para insertar imágenes en las tareas

53) Para que la IA aterrice un avión en un aeropuerto determinado

54) Para ver el id de los objetos en el mapa

55) Para crear marcador al activarse un activador

56) Para que un marcador cambie de color con un activador

57) Para destruir una ciudad

58) Para crear una animación con un avión o helicóptero

59) Para eliminar los objetos fijos del mapa

60) Coger objetos

61) Instrucciones para escribir en color las tareas o el texto en un activador

62) Para apagar o encender las luces en una zona

63) Para abrir y cerrar el Terminal de Datos

64) Para escribir texto en la introducción de la misión

65) Para texturizar unidades

66) Para no te maten mientras chequeas las misiones

Página 3 de 41
Manual de edición en español por Keké - V.4

1) Mueve a una unidad dentro de un vehículo y determina la posición de carga.

this moveInCargo [ 1# , 2# ]

Sus variables son: 1# y 2#. La primera variable define el nombre del vehículo, la segunda la
posición definida en número.
volver al índice

2) Define la torreta en la cual se colocara al soldado.

this moveinturret [ 1# ,[ 2# ]]

Sus variables son #1 y 2#. La primera define el nombre del vehículo y la segunda el número de
la torreta.
volver al índice

3) Mover a un soldado a la posición de carga de un vehículo.

this moveincargo #1

Esto se añade en la casilla de Iniciación (Init) de un soldado para moverlo a la posición de Carga
de cualquier vehículo, siendo el nombre del vehículo la variable #1 (acordaos de ponerle un
nombre al vehículo, también podéis usar estos.

this moveingunner #1 = Para artillero


this moveindriver #1 = Para conductor

volver al índice

4) Para que aparezca un pequeño cuadrado de texto en la parte superior derecha.

hint "texto"

Este comando se suele usar en Activadores en la casilla AL ACTIVARSE y lo que hace es que
aparezca un pequeño cuadrado en la parte superior derecha de la pantalla mostrando el texto
que hayamos escrito.

volver al índice

Página 4 de 41
Manual de edición en español por Keké - V.4

5) Para que aparezca un mensaje de radio escrito en la parte de abajo.

#1 sideChat "texto";

Esto es lo mismo que el hint solo que nos lo mostrará como un mensaje de radio escrito en la
parte de abajo. La variable #1 es el nombre del jugador. También sirven estos:

 #1 globalChat "texto"; = Mensaje para todos


 teamchat "texto" = Mensaje para el equipo
 vehiclechat "texto" = Mensaje para los componentes de un vehículo.

volver al índice

6) Para disparar automáticamente ráfagas de artillería.

mortero1 doArtilleryFire [getmarkerpos "negades", "8Rnd_82mm_Mo_shells", 8];

Esta instrucción nos permite disparar automáticamente ráfagas de artillería (en este caso
morteros).

Para ello debemos hacer lo siguiente:

1. Colocamos un mortero y lo denominamos “mortero1” (en el ejemplo)


2. Colocamos un activador y en la casilla AL ACTIVARSE colocamos el script:
mortero1 doArtilleryFire [getmarkerpos "negades", "8Rnd_82mm_Mo_shells", 8];
3. Colocamos un marcador y lo denominamos “negades” (por ejemplo, en este caso el
nombre del pueblo que queremos bombardear, obviamente el marcador deberá estar
sobre el pueblo de Negades)

Lo que sucederá será que cuando el activador se active el mortero1 disparará 8 proyectiles
sobre el pueblo de Negades.

Trucos:

Puedes colocar todos los activadores que quieras con las mismas instrucciones pero
cambiando solamente el nombre del mortero (por ejemplo mortero1, mortero2, mortero3) y
superponer los activadores unos encima de otros, de esta manera cuando se activen los
activadores los tres morteros dispararan las 8 salvas, cada uno sobre el marcador.

Página 5 de 41
Manual de edición en español por Keké - V.4

También puedes mover los marcadores a distintos sitios y los proyectiles caerán sobre
distintos objetivos, en este caso también deberás cambiar el nombre de los marcadores (por
ejemplo negades1, negades2, negades3
Igual que con los morteros puedes hacer lo mismo con cualquier unidad de artillería, por
ejemplo con el “M24 Scorcher”, en este ejemplo lo hemos llamado “blindado1”

blindado1 doArtilleryFire [getmarkerpos "negades", "32Rnd_155mm_Mo_shells", 32];


Observar que tenemos que cambiar el tipo de munición de la "8Rnd_82mm_Mo_shells" de los
morteros a la "32Rnd_155mm_Mo_shells” del M24, sino no funcionaría ya que lógicamente el
M24 no dispara munición de 82mm y podemos observar también que en vez de disparar 8
rondas disparará 32 rondas de proyectiles (32Rnd).

El tipo de munición para cada arma lo podemos encontrar en la página de Bohemia:

https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Vehicle_Weapons
volver al índice

7) Para crear un IED

bomba="M_Mo_82mm_AT_LG" createVehicle(getPos IED_1); deleteVehicle IED_1;


bomba="M_Mo_82mm_AT_LG" createVehicle(getPos IED_2); deleteVehicle IED_2;

Esta instrucción sirve para crear un IED (Artefacto explosivo improvisado, en inglés Improvised
Explosive Device)

Para ello creamos un objeto (bolsa de basura, caja, vehículo, etcétera, incluso un helipuerto
invisible o hasta un hombre bomba) y le damos nombre (en este ejemplo hemos creado dos y
los hemos llamado IED_1 e IED_2) a continuación colocaremos un activador y en la casilla AL
ACTIVARSE escribiremos el script, de esta forma cuando el activador se active explotará la
bomba destrozando o inutilizando la unidad o unidades que lo haya activado.

Podéis colocar tantos IED como os parezca y activarlos con un solo activador o con varios.
También podéis cambiar el tipo de artefacto explosivo, por ejemplo en vez de
“M_Mo_82mm_AT_LG” podéis utilizar otro cualquiera, ahí tenéis una pequeña lista:

Media explosión

"M_Titan_AT"
"M_Mo_120mm_AT"
"M_Mo_120mm_AT_LG"

Página 6 de 41
Manual de edición en español por Keké - V.4

Gran explosión

"M_Mo_82mm_AT_LG"
"R_80mm_HE"
"R_60mm_HE"
"Bo_Mk82"
"Bo_GBU12_LGB"
"R_230mm_HE"
"Sh_120_HE"
"Sh_120mm_AMOS"
"Sh_120mm_AMOS_guided"
"Sh_120mm_AMOS_LG"

volver al índice

8) Para fijar un marcador a una unidad.

[] spawn {while{not isnull Heli1} do {"Marker_Heli1" setmarkerpos getpos Heli1; sleep 0.5;};
};
Con este script se puede agregar un marcador a una unidad, para ello hay que esto en el
init.sqf (en caso de no tener el init.sqf pues nosotros mismos lo creamos)

Podemos hacer varios marcadores solo copiando y pegando el script y llamándolo de otra
manera en vez de heli1.

[] spawn {while{not isnull Heli1} do {"Marker_Heli1" setmarkerpos getpos Heli1; sleep 0.5;};
};

Explicación:
 Heli1 = Unidad que el marcador sigue.
 "Marker_Heli1 = Nombre del marcador.
 sleep 0.5 = Tiempo de los cambios de marcador, aquí 0,5 segundos.

volver al índice

9) Para que la IA se lance en paracaídas.

#1 action (“Eject”, #2)

Este script hace que la IA se lance en paracaídas.

Página 7 de 41
Manual de edición en español por Keké - V.4

La variable #1 será el nombre del soldado y la variable #2 el nombre del vehículo.

Para dotar a las unidades de paracaídas podemos hacerlo en “editar equipamiento” o


colocando en el init de cada unidad el script: this addBackpack "B_Parachute";
Como ejemplo vamos a tomar a diez soldados de Blufor, nombrándolos s1, s2, s3, s4, s5, s6, s7,
s8, s9 y s10, que estarán montados en el helicóptero denominado huron1,
Colocamos un helicóptero y lo denominamos huron1.
Se coloca un activador, que se active mediante la presencia de Blufor, y en la casilla de
ejecución le daremos la siguiente instrucción:

s1 action ["Eject",huron1]

En este caso cuando el helicóptero pase por el activador saltará el soldado s1.

Si el helicóptero no lo manejamos manualmente, tendremos que hacer que pase por todos los
activadores que deseemos mediante la “edición de puntos de referencia” (waypoints)

A continuación copiaremos el activador anterior y solamente cambiaremos el nombre del


soldado de s1 a s2 así sucesivamente hasta 10 activadores. (Uno por cada soldado).
Por ultimo colocaremos los activadores de forma sucesiva en el mapa, donde queramos que
cada soldado salte y se efectuará la acción.

Para que todos salten más o menos en el mismo punto podemos ahorrarnos colocar tantos
activadores, solamente habremos de poner uno repitiendo la instrucción y cambiando el
nombre del soldado. Por ejemplo:

s1 action ["Eject",huron1]; s2 action ["Eject",huron1]; s3 action ["Eject",huron1]; s4 action


["Eject",huron1]; s5 action ["Eject",huron1]; s6 action ["Eject",huron1]; s7 action
["Eject",huron1]; s8 action ["Eject",huron1]; s9 action ["Eject",huron1]; s10 action
["Eject",huron1]
volver al índice

10) Para que se pueda encender una luz (roja o verde) dentro de cualquier vehículo.

{[_x] execVM "redlight.sqf"}forEach vehicles;

Para ello se deben seguir los siguientes pasos:


Primero hemos de ir a la pagina siguiente:
http://armaholic.com/page.php?id=25598

Página 8 de 41
Manual de edición en español por Keké - V.4

Y descargar el fichero IntLight.sqf, una vez descargado le cambiamos el nombre a redlight.sqf.


Luego, con el bloc de notas, creamos un archivo denominado init.sqf y colocamos la siguiente
instrucción: {[_x] execVM "redlight.sqf"}forEach vehicles; tanto este archivo como el anterior
los tenemos que crear en la carpeta de la misión en la que estemos trabajando.
Mis documentos/Arma 3 - Other Profiles/…./missions/…../
En este caso tendríamos tres archivos en la carpeta de la misión:

mission.sqm redlight.sqf init.sqf

A partir de aquí cada vez que nos montemos en un vehículo podemos encender la luz interior
del vehículo, en color rojo o verde.

Si no queremos que todos los vehiculos tengan este sistema no debemos crear la carpeta
init.sqf, la otra, redlight.sqf, sí y poner en el init del vehículo que queramos que se encienda la
luz interior, la instrucción null = [this] execVM “redlight.sqf”;
volver al índice

11) Para abrir y cerrar automáticamente la barrera de control de carreteras.

Este script colocado en un activador sirven para abrir y cerrar la barrera de control de
carreteras.
#1 animate ["Door_1_rot", 1] // #1 animate ["Door_1_rot", 0]

Para ello debemos crear una barrera, denominarla con el nombre que nos parezca, luego
colocamos un ativador y en la casilla AL ACTIVARSE escribimos el script: #1 animate
["Door_1_rot", 1] donde la variable #1 es el nombre que le hayamos dado a la barrera y en la
casilla AL DESACTIVARSE escribimos el script: #1 animate ["Door_1_rot", 0]

Debemos colocar la activación en “repetidas veces” sino el activador solo actuará una vez y
abrirá la barrera pero no la cerrará y ya no hará nada más.

volver al índice

12) Para que las unidades aparezcan con animaciones.

Este script colocado en la casilla de inciación de una unidad permite que las unidades
aparezcan con distintas animaciones.

Página 9 de 41
Manual de edición en español por Keké - V.4

[this,"#1", "#2"] call BIS_fnc_ambientAnim;


En este caso aunque la unidad detecte a un enemigo o sea atacada no hace nada, sigue en la
misma posición.
[this,"#1", "#2"] call BIS_fnc_ambientAnim;

Este script anula al anterior y la unidad vuelve a ponerse en movimiento.

this call BIS_fnc_ambientAnim__terminate;

Este otro script es mucho más completo porque nos permite animar a las unidades y en el
momento que la unidad detecta a un enemigo o es atacada deja la animación y ataca.

[this,"#1", "#2"] call BIS_fnc_ambientAnim;


0 = this spawn {waitUntil {behaviour _this == "combat"};
_this call BIS_fnc_ambientAnim__terminate;}

En la variable #1 podemos colocar las siguientes animaciones:


 "STAND" - de pie, moviéndose ligeramente hacia los lados, con el arma.
 "STAND_IA" - de pie, moviéndose ligeramente hacia los lados, con el arma.
 "STAND_U3" - de pie, moviéndose ligeramente hacia los lados, sin arma.
 "WATCH1" - de pie y se da la vuelta hacia la derecha, con el arma.
 "WATCH2" - de pie y se da la vuelta hacia la izquierda, con el arma.
 "GUARD" - de pie inmóvil, como en guardia con las manos detrás del cuerpo.
 "LISTEN_BRIEFING" - de pie, con las manos detrás de la espalda, sin arma.
 "LEAN_ON_TABLE" - de pie inclinado sobre la mesa.
 "LEAN" - de pie mientras se inclina sobre una pared.
 "BRIEFING" - de pie, con movimientos aleatorios ocasionales.
 "BRIEFING_POINT_LEFT" - de pie, señalando a la izquierda y arriba.
 "BRIEFING_POINT_RIGHT" - de pie, señalando a la derecha y arriba.
 "BRIEFING_POINT_TABLE" - de pie, señalando delante y abajo, al igual que en la mesa.
 "SIT3" - sentado en la silla o un banco, con el arma.
 "SIT_U3" - sentado en la silla o un banco, sin arma.
 "SIT_AT_TABLE" - sentado en la silla, con las manos en la mesa.
 "SIT_HIGH2" - sentado en los objetos más altos, con las piernas colgando, sin arma.
 "SIT_LOW" - sentado en el suelo, con el arma.
 "SIT_LOW_U" - sentado en el suelo, sin arma.
 "SIT_SAD2" - sentado en una silla, mirando muy triste.
 "KNEEL" - de rodillas, con el arma.
 "PRONE_INJURED_U2" - tendido en el suelo, herido, sin arma.
 "PRONE_INJURED" - tendido en el suelo con una rodilla levantada, sin arma.
 "KNEEL_TREAT" - de rodillas, realizando una cura.

Página 10 de 41
Manual de edición en español por Keké - V.4

 "REPAIR_VEH_PRONE" - reparando un vehículo tendido de espalda.


 "REPAIR_VEH_KNEEL" - reparando un vehículo de rodillas (como cambiar una rueda)
 "REPAIR_VEH_STAND" - reparando o limpiando un vehículo de pie.

En la variable #2 podemos colocar el equipamiento que porta la unidad, describe como está
equipada la unidad cuando aparece en la animación.
 "NONE" - sin gafas, casco, chaleco y arma.
 "LIGHT" - sin gafas, casco y chaleco.
 "MEDIUM" - sin gafas y casco.
 "FULL" - sin gafas.
 "ASIS" - con todo el equipamiento.
 "RANDOM" - (valor predeterminado), el equipo se asigna al azar de acuerdo con el
conjunto de la animación.

También se pueden realizar otras animaciones utilizando el Visor de animaciones del juego,
para ello hay que darle un nombre a la unidad y escribir en el ini de la misma la siguiente
instrucción:

Nombre_de_la_unidad switchMove "nombre_de_la_animación"

El nombre de la animación lo copiamos del visor de animaciones con ctrl+c y ctrl+v.

Por ejemplo:

Jugador_1 switchMove "Acts_JetsShooterMoveAway_stillpose_m"

volver al índice

13) Para abrir y cerrar las puertas de un helicóptero.

#1 AnimateDoor ["Door_1_source", 1, true]


La variable #1 es el nombre que le hemos de poner al vehículo.

Para ver que animaciones de puerta tiene cada vehículo debermos hacer lo siguiente:

Colocamos en el editor el vehículo en cuestión. Dejando el cursor del ratón sobre el vehículo,
pulsamos botón derecho y nos aparecerá un desplegable. Buscamos “Registro” y continuación
“Resgistrar clases en el portapapeles”. De esta forma habremos copiado en el portapales el
Classname del helicóptero. Lo podremos pegar donde queramos y veremos el nombre del
Classname.

Página 11 de 41
Manual de edición en español por Keké - V.4

Luego vamos a “Herramientas”, “Visor de configuraciones” y buscamos el Classname del


helicóptero. Una vez que lo encontremos, pulsamos (doble click) sobre el simbolo + y
buscamos "AnimationSources", una vez que lo tengamos volvemos a pulsar sobre el simbolo +
y buscamos la palabra “Door”, dependiendo del vehículo nos aparecerán distintos tipos de
Door, por ejemplo: Door_1, Door_L, Door_LF, etc.
Entonces salimos del visor de consfiguraciones creamos un activador con la condición de
activación que deseemos y en la casilla AL ACTIVARSE escribimos el script: #1 AnimateDoor
["Door_1_source", 1, true] para cerrar la puerta escribimos en la casilla AL DESACTIVARSE la
misma instrucción pero cambiando el 1 en 0 y, en su caso, true en false.
Ejemplos: (En el primer caso abrir y cerrar en los siguientes solo abrir, para cerrar cambiar el 1
por 0 y, en su caso, true por false)

Taru

Abrir: #1 animateDoor ["Door_1_source", 1];


Cerrar: #1 animateDoor ["Door_1_source", 0];

Hunter

#1 animateDoor ["Door_LF", 1];


#1 animateDoor ["Door_RF", 1];
#1 animateDoor ["Door_LB", 1];
#1 animateDoor ["Door_RB", 1];

Ifrit

#1 animateDoor ["Door_LF", 1];


#1 animateDoor ["Door_RF", 1];
#1 animateDoor ["Door_LM", 1];
#1 animateDoor ["Door_RM", 1];
#1 animateDoor ["Door_rear", 1];

Strider

#1 animateDoor ["Door_LF", 1];


#1 animateDoor ["Door_RF", 1];

C-67 Huron (desarmado)

#1 animateDoor [“Door_rear_source”, 1];

Página 12 de 41
Manual de edición en español por Keké - V.4

#1 animateDoor [“Door_L_source”, 1];


#1 animateDoor ["Door_R_source", 1];

CH-49 Mohawk

#1 animateDoor ["Door_Back_L", 1];


#1 animateDoor ["Door_Back_R", 1];
#1 animate ["CargoRamp_Open",1];

Mi-48 Kajman

#1 animateDoor ["Door_L", 1];


#1 animateDoor ["Door_R", 1];

UH-80 Ghost Hawk

#1 animateDoor ["Door_L", 1];


#1 animateDoor ["Door_R", 1];

volver al índice

14) Para mejorar la inteligencia de la IA


Deberemos escribir el siguiente script en el init de cada unidad:

this setSkill ["aimingAccuracy",0.9];this setSkill ["aimingShake",0.9];this setSkill


["aimingSpeed",0.9];this setSkill ["spotTime",0.9];this setSkill ["spotDistance",0.9];this setSkill
["reloadSpeed",0.9];

Si consideramos que hacer esto para cada enemigo es mucho curro, podemos hacer lo
siguiente:
En la carpeta de la misión creamos un fichero que se llame "init.sqf"
Dentro de este fichero ponemos lo que sigue a continuación, teniendo en cuenta que east son
los OPFOR, si queremos escribirlo en otra facción, deberemos cambiarlo por la que le
corresponde:
{
if ((side _x) == east) then
{
_x setSkill ["aimingAccuracy", 0.25];

Página 13 de 41
Manual de edición en español por Keké - V.4

_x setSkill ["aimingShake", 0.25];


_x setSkill ["aimingSpeed", 0.25];
_x setSkill ["Endurance", 0.35];
_x setSkill ["spotDistance", 0.15];
_x setSkill ["spotTime", 0.15];
_x setSkill ["Courage", 0.25];
_x setSkill ["reloadSpeed", 0.25];
_x setSkill ["Commanding", 0.25];
_x setSkill ["General", 0.25];
};

} forEach allUnits;
};

Estas son las denominaciones de las tropas en el juego:


 Blufor = west
 Opfor = east
 Independientes = guerrila
 Civiles = civilian

El significado de los Skill son los siguientes:

AimingAccuracy - Puntería
 Afecta a lo bien que la AI puede conducir un objetivo.
 Afecta a la precisión con la gama estimación AI y calcula caída de la bala.
 Afecta a lo bien que la AI compensa la dispersión arma.
 Afecta a la cantidad de la IA sabrá que tiene que compensar el retroceso (valor
superior = fuego más controlada).
 Afecta a la forma de que la AI debe ser alrededor de su objetivo previsto, antes de
abrir fuego.

AimingShake
 Afecta la regularidad del IA puede sostener un arma (valor superior = balanceo menos
armas).
AimingSpeed
 Afecta a la rapidez con la IA puede girar y estabilizar su objetivo (valor más alto = más
rápido, menos errores).

Página 14 de 41
Manual de edición en español por Keké - V.4

Endurance
 Desactivada en Arma3
SpotDistance - Distancia a la que puede detectar y disparar a un enemigo.
 Afecta a la capacidad de detectar AI objetivos en un radio que es visual o rango audible
(valor más alto = más probabilidades de detectar)
 Afecta a la precisión de la información (valor superior = información más precisa)
 Por ejemplo 0,15 = 150 metros, 0,50 = 500 metros, 1 = 1.000 metros.
SpotTime
 Afecta a la rapidez con la IA reacciona a la muerte, daños o la observación de un
enemigo (valor superior = reacción más rápida)
Courage
 Afecta a la moral de los subordinados de la unidad (valor más alto = más valor)
ReloadSpeed
 Afecta a la demora entre la conexión o volver a cargar un arma (valor superior =
menos retraso)
Commanding
 Afecta la forma en objetivos rápidamente reconocidos son compartidos con el grupo
(valor más alto = más rápido de informes).
General
 Prima "Habilidad", el valor se distribuye a los sub-habilidades a menos que se defina lo
contrario. Afecta a la toma de decisiones de la IA.
volver al índice

15) Para activar un activador cuando se destruya un objeto del mapa.

Para activar un activador cuando se destruya un objeto del mapa (faro, torre de
comunicaciones, casa, etc.)

En primer lugar debemos conocer la ID del objeto, para ello en el menú de herramientas
abrimos la consola de depuración y ponemos:

do3DENAction "ToggleMapIDs";

Luego pulsamos en ejecutar local y habilitará o deshabilitara las ID´s de los Objetos.

Página 15 de 41
Manual de edición en español por Keké - V.4

Una vez conocida la ID del objeto colocamos una lógica del juego y colocamos:

edificioobjetivo= getPos this nearestObject 1193021;

A continuación colocamos un activador y en condición colocamos:

(damage edificioobjetivo) > 0.8

Por ejemplo vamos a destruir una antena de comunicaciones con cargas explosivas, cuando
esto ocurra y la antena quede destruida se activará un activador y ejecutará las acciones que
le hayamos dado, por ejemplo finalizar una misión, para ello:

Nos posicionamos encima de la torre de comunicaciones, abrimos la consola de depuración y


colocamos do3DENAction "ToggleMapIDs"; una vez que pulsemos ejecutar local nos aparecerá
el ID de la antena (por ejemplo 15895)
Una vez hecho esto creamos una lógica del juego y en la casilla INIC colocamos antena= getPos
this nearestObject 15895; posteriormente creamos un activador y en la casilla CONDICIÓN
escribimos (damage antena) > 0.8

volver al índice

16) Para que uno o varios objetos, que no sean del mapa, activen un activador cuando sean
destruidos o eliminados.

!alive nombre del objeto

Para activar un activador cuando se destruya un objeto o incluso varios que tú coloques en la
misión (no pueden ser objetos fijos del mapa como torres, faros, casas, etcétera) se puede
utilizar la expresión !alive (seguida del nombre del objeto) por ejemplo !alive blindado1
colocándola en la CONDICIÓN del activador.

También se pueden encadenar varias veces la expresión !alive para que el objetivo a cumplir
sea la destrucción o eliminación de varios objetivos.

Supongamos que el objetivo de la misión es destruir tres blindados. No uno, ni dos, sino los
tres. Para ello en la casilla de nombre de cada blindado pondremos blindado1, blindado2 y
blindado3 (ojo en los nombres no dejar espacios en blanco)

Luego colocamos un activador sin distancia, quiero decir, eje A = 0 y eje B = 0 y en la condición
del activador colocamos !alive blindado1 && !alive blindado2 && !alive blindado3; de esta
manera cuando hayamos destruido los tres blindados el activador se activará. Si destruimos
uno o dos blindados el activador no hará nada, debemos destruir los tres.

Página 16 de 41
Manual de edición en español por Keké - V.4

Insisto, esta función sirve para cualquier cosa que podamos colocar en la misión y podamos
darle un nombre (personas, vehículos y cosas), para que la expresión !alive funcione debemos
poder darle un nombre al objeto, si no, deberemos utilizar el método del ejemplo anterior.

La diferencia de este método con el anterior es que en el caso anterior el objeto debe estar
presente dentro del activador, y esto puede ser complicado para el caso de unidades que se
pueden mover y salir del activador, sin embargo en este caso aunque la unidad se aleje del
activador la función se seguirá cumpliendo.

En resumen para los objetos fijos en el mapa es mejor el sistema anterior, para objeto que
coloquemos nosotros es mejor este sistema.
volver al índice

17) Para que una unidad active un activador independientemente de la condición del bando.

soldado1 in thislist;
Esto se pone en el CONDICION del activador y en la casilla ACTIVACION hemos de poner
cualquiera.

Con esta expresión haremos que cuando una unidad (en este caso denominada soldado1)
llegue a la zona del activador, este se active.
Esto tiene una ventaja con respecto a las condiciones de activación propias del juego.

Ejemplo de la expresión #1 in thislist:

Se trata de liberar a un oficial, de nuestro propio bando, y llevarlo de vuelta a la base. La


misión habrá acabado cuando el oficial llegue a la base. En este ejemplo seremos Blufor.
Si en la base colocamos un activador con Blufor presente no podremos tener otras tropas en
base ya que podrían activar el activador o nosotros mismos podríamos activarlo. En resumen
se trata de que el juego reconozca que el oficial que llega a la base es el objetivo de la misión
y active la misión como éxito.
Para ello le damos un nombre al oficial (por ejemplo Pepe) y en la base colocamos un
activador en cuya casilla CONDICION pondremos Pepe in thislist; de esta forma el activador
se activará solo y exclusivamente cuando llegue Pepe.

Esta instrucción junto con la instrucción !alive te puede dar mucho juego para crear un final
de misión bastante buena.

Ejemplo de la expresión #1 in thislist junto con la función ¡alive:

Página 17 de 41
Manual de edición en español por Keké - V.4

Supongamos una misión típica de francotirador.

Se trata de matar a un oficial enemigo (vamos a llamarlo zoquete), escapar de la zona de


conflicto y volver a la base a reportar al oficial al mando. La misión se dará por terminada
cuando hayas eliminado al oficial y reportes al oficial al mando. Se tienen que cumplir las dos
condiciones.

Al oficial enemigo, en la casilla NOMBRE, lo denominamos zoquete y a nuestra unidad,


también en la casilla NOMBRE, la denominamos pepe.

En este caso colocaríamos un activador de radio pequeño (eje A = 2 y eje B = 2), al lado del
oficial al que habremos de reportar, y en la casilla CONDICION pondremos !alive zoquete &&
pepe in thislist; esto quiere decir que la condición se cumplirá cuando el “zoquete” esté
muerto y “pepe” esté en el radio de activación del activador (en este caso en un radio de
menos de dos metros del oficial al mando).

A partir de aquí colocas un módulo de MISIÓN CUMPLIDA y lo sincronizas con el activador,


cuando hayas eliminado al “zoquete” y estés al lado del oficial al mando el activador dará la
misión por cumplida con éxito.

Ejemplo de la expresión #1 in thislist encadenada:

Se trata de rescatar a dos rehenes (los vamos a denominar rehen1 y rehen2) y hemos de
llegar a nuestra base con los rehenes (nosotros nos llamamos jugador)
En este caso colocaríamos un activador en la base, con el radio que nos parezca oportuno, y
en la casilla CONDICION pondremos jugador in thislist and rehen1 in thislist and rehen2 in
thislist; esto quiere decir que la condición se cumplirá solo cuando jugador el rehen1 y el
rehen2 estén dentro del radio de activación del activador. Si falta uno de los tres la condición
no habrá sido cumplida y el activador no se activará.

volver al índice
18) Para que una unidad active un activador cuando esté dentro o fuera de un vehículo.

Vehicle soldado1 == soldado1 y Vehicle soldado1 == camion1;


Esto se pone en la casilla CONDICION del activador.

Para que se repita al entrar y salir marcar en el activador la casilla “repetible”.

Con esta expresión haremos que cuando una unidad (en este caso denominada soldado1)
entre en un vehículo (en este caso denominado vehiculo1) el activador se active o que cuando
esté fuera de cualquier vehículo también pueda activarse.

Página 18 de 41
Manual de edición en español por Keké - V.4

Esta condición se cumple cuando soldado1 está fuera de cualquier vehículo.

Vehicle soldado1 == soldado1

Esta condición se cumple cuando la unidad está dentro del vehículo llamado camion1

Vehicle soldado1 == camion1

En este último caso también sirve la instrucción: soldado1 in camion1

Estas dos instrucciones sirven para cualquier tipo de vehículo (terrestre, marino o aéreo)
incluidas las torretas (morteros, ametralladoras, etc.)

volver al índice

19) Para solicitar apoyo mediante un activador.

apoyo1 synchronizeobjectsAdd[soldado1];
Se trata de un script muy útil para utilizar con los módulos de apoyo sin que aparezcan desde
el principio de la misión sino que se activen dependiendo de una condición determinada que
pondremos en un activador.

Para ello habremos de dar un nombre a nuestra unidad (por ejemplo soldado1) y también
debemos nominar el módulo de solicitante de apoyo (por ejemplo apoyo1)

Colocamos un activador con la condición de cumplimiento que queramos y en la casilla AL ACT


deberemos escribir apoyo1 synchronizeobjectsAdd[soldado1]; Una vez hecho esto
sincronizamos el activador con el módulo de solicitante de apoyo y este con el módulo de
proveedor de apoyo y este con la unidad que nos va a prestar el apoyo. Cuando la condición se
cumpla y el activador se active aparecerá el mensaje de radio de que las unidades de apoyo
están listas y se podrá solicitar el apoyo correspondiente.

Ejemplo:

Somos un francotirador y vamos a eliminar a un oficial desde una larga distancia y queremos
que en cuanto eliminemos al oficial podamos solicitar un helicóptero de transporte para la
evacuación.

Para ello colocamos a un oficial enemigo y en la casilla NOMBRE lo denominamos oficial1,


colocamos un activador, en la casilla CONDICIÓN colocamos !alive oficial1 y en la casilla AL ACT
escribimos apoyo1 synchronizeobjectsAdd[soldado1]; posteriormente colocamos un módulo

Página 19 de 41
Manual de edición en español por Keké - V.4

de solicitante de apoyo y otro módulo de proveedor de apoyo y por último un helicóptero en


una zona cualquiera. Por último sincronizamos el activador con el módulo de solicitante de
apoyo, éste con el de proveedor de apoyo y éste con el helicóptero.
Lo que sucederá será que cuando matemos al oficial el activador se activará y se cumplirá la
condición que le hemos puesto al activarse y podremos solicitar el helicóptero de evacuación.

volver al índice

20) Para modificar el contenido de los suministros y colocar una granada de humo en la caja
enviada por el proveedor de apoyo.

CREAR GRANADA DE HUMO:


signal = "smokeShellYellow" createVehicle position _this;

Este script se pone en el módulo del proveedor de apoyo en la casilla CAJA INIC de iniciación.

Diferentes tipos de granada de humo dependiendo del color:

signal = "smokeShellYellow" createVehicle position _this;


signal = "smokeShellOrange" createVehicle position _this;
signal = "smokeShellGreen" createVehicle position _this;
signal = "smokeShellBlue" createVehicle position _this;
signal = "smokeShellPurple" createVehicle position _this;

CUSTOMIZAR CONTENIDO DE LA CAJA:


clearMagazineCargo _this; clearWeaponCargo _this; clearItemCargo _this; clearBackpackCargo
_this; _this addMagazineCargo ["nombreCargador", numeroCargadores]; _this
addWeaponCargo ["nombreArma", numeroArmas]; _this addItemCargo ["nombreObjeto",
numeroObjetos]; _this addBackpack ["nombreMochila", numeroMochilas];
UNIR HUMO A LA CAJA DE SUMINISTROS:
signal attachTo [_this];

Ejemplo:
Creamos la granada, customizamos el contenido (lo vaciamos todo y cargamos 10 cargadores
del calibre 408 y 10 kits de primeros auxilios) y unimos la granada a la caja.
signal = "smokeShellPurple" createVehicle position _this; clearMagazineCargo _this;
clearWeaponCargo _this; clearItemCargo _this; clearBackpackCargo _this; _this

Página 20 de 41
Manual de edición en español por Keké - V.4

addMagazineCargo ["7Rnd_408_Mag", 10]; _this addItemCargo ["FirstAidKit", 10]; signal


attachTo [_this];

Nota: para ver el nombre de las armas, cargadores, ítem, etc. ir a:


https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Weapons

Nota: En caso de helicóptero virtual, el nombre lo hemos de poner entre corchetes y comillas,
por ejemplo: ["B_Heli_Light_01_F"]

volver al índice

21) Para que una unidad se una a tu grupo sin necesidad de usar un waypoint de unirse y
liderar.

[heli1] join keke;

De esta forma podemos hacer que una unidad se una a tu grupo mediante un activador
durante la partida y no mediante un waypoint de unirse.

Ejemplo:

Vamos a suponer que tenemos a un helicóptero de transporte y que a partir de un momento


determinado queremos que pertenezca al grupo para poder darle órdenes y que nos
transporte, todo ello sin utilizar el módulo de apoyo, que a veces falla en multijugador.

a. Tendremos que dar nombre al helicóptero (heli1).


b. Tendremos que nominar a nuestra unidad (jugador).
c. Creamos un activador que se activará mediante radio Alpha con el script en la casilla
AL ACTIVARSE:

[heli1] join jugador;

Esto hará que cuando marques Radio Alpha (0,0,1) el helicoptero se unirá a tu grupo y podrás
darle las instrucciones que quieras.

Para que la unidad deje de estar unida a tu grupo podemos colocar otro activador, en este
caso utilizaremos la ACTIVACIÓN mediante Radio Bravo con el script en la casilla AL
ACTIVARSE:

Página 21 de 41
Manual de edición en español por Keké - V.4

[heli1] join grpnull;


Esta instrucción se suele utilizar junto con la anterior.

En resumen:

Con estos dos activadores, cada vez que marques Radio Alpha unes el helicóptero al grupo y
cuando marques Radio Bravo deja de estarlo. Lo mismo puedes hacer con cualquier unidad.

Nota importante: En ambos activadores deberemos colocar repetidas veces, de esta


forma podremos hacerlo cada vez que queramos a lo largo de la partida.

Tambien podemos hacer que varias unidades se unan al grupo o que dejen de estar unidas.
Solo deberemos colocar en el activador las mismas instrucciones encadenadas:

Unir tres unidades al grupo: [unidad_1, unidad_2, unidad_3] join jugador;


Desunir las tres unidades del grupo: [unidad_1, unidad_2, unidad_3] join grpnull;
Estas instrucciones funcionan tanto para unidades de transporte y apoyo como para unidades
de infanteria aunque, en el caso de estas últimas, te obliga a nombrar cada unidad y las
instrucciones en el activador pueden ser tediosas.

Un ejemplo clásico para utilizar esta instrucción en unidades de infanteria, en vez del waypoint
de unirse y liderar, es la del rescate de rehenes.

En el caso del rescate de rehenes con el uso del waypoint te encuentras con el incoveniente de
que el juego, en algunos niveles, te marca la distancia para unirse y liderar desde el principio,
con lo que se pierde inmersión en la partida, mientras que de esta forma te evitas este
incoveniente.

volver al índice

22) Para que la IA use la linterna mientras patrulla.


Hay dos formas:
1. Para todas las IAS.
2. Para aquellas que quieras seleccionar.

Para todas las IAS

En el init.sqf debes poner la siguiente instrucción:

if ( isserver) then
{
{

Página 22 de 41
Manual de edición en español por Keké - V.4

if ((side _x) == east) then


{
_x addPrimaryWeaponItem "acc_flashlight";
_x enableGunLights "forceon";
};
} foreach allunits;
};

Para aquellas IAS que tú selecciones:

Lo debes poner en el init de cada unidad, porque solo quieres unas pocas unidades
específicas con linterna:

if ( isserver) then
{
this addPrimaryWeaponItem "acc_flashlight";
this enableGunLights "forceon";
};
En singleplayer también funciona perfectamente la instrucción: (ojo tal como está escrito,
con tres espacios después del primer punto y coma, no me preguntéis porque).

this addPrimaryWeaponItem "acc_flashlight"; this enableGunLights "forceon";

Con la opción 1) funciona perfectamente para todo el bando. Con la opción 2) lo pones solo
en las IAS que quieras, sean del bando que sean.

Esta instrucción solo funciona con las unidades de infantería no con los vehículos.

No olvides que tienes que tener una linterna en el inventario y que el fusil debe poder
equipar una.
volver al índice

23) Para que un vehículo controlado por la IA mantenga las luces encendidas.
Con esta instrucción colocada en el init del vehículo controlado por la IA, este mantiene las
luces encendidas. Por ejemplo un helicóptero patrullando.

if (isServer) then {0=[this]spawn{while{alive driver (_this select 0)}do{driver (_this select 0)


action ["LightOn", (_this select 0)]}}};

Está instrucción también funciona:

null=[] spawn { while {true} do { player action ["lightOn", NOMBRE_VEHICULO]; sleep 0.01};};

Página 23 de 41
Manual de edición en español por Keké - V.4

En este caso debes nominar al vehículo en el NOMBRE DE VARIABLE y colocar el mismo


nombre en NOMBRE_VEHICULO.

Por ejemplo:

Nominas a un helicóptero como heli_1 y en la casilla INIT escribes la instrucción:

null=[] spawn { while {true} do { player action ["lightOn", heli_1]; sleep 0.01};};

volver al índice

24) Para activar un activador haciendo un recuento de unidades.

Count thislist #1 #2
Colocando esta instrucción en la casilla condición de un activador, podemos activar el mismo
dependiendo del recuento de unidades que queramos controlar.
La variable #1 se corresponde con las condiciones “mayor que” (>), “igual a” (==) o “menor
que” (<). La variable #2 se corresponde con el número de unidades que queramos chequear.

En la casilla ACTIVACIÓN deberemos colocar el bando que queremos contar o chequear.

En la siguiente tabla se muestra un ejemplo:

Para que la condición se cumpla, unidades


Activación: Condición:
que han de estar dentro del activador.

Blufor count thislist < 5 menos de 5 unidades blufor


Blufor count thislist > 5 más de 5 unidades blufor
Blufor count thislist == 5 exactamente 5 unidades blufor
Opfor count thislist < 5 menos de 5 unidades opfor
Opfor count thislist > 5 más de 5 unidades opfor
Opfor count thislist == 5 exactamente 5 unidades opfor
Independientes count thislist < 5 menos de 5 unidades independientes
Independientes count thislist > 5 más de 5 unidades independientes
Independientes count thislist == 5 exactamente 5 unidades independientes
Civiles count thislist < 5 menos de 5 unidades civiles

Página 24 de 41
Manual de edición en español por Keké - V.4

Civiles count thislist > 5 más de 5 unidades civiles


Civiles count thislist == 5 exactamente 5 unidades civiles
Cualquiera count thislist < 5 menos de 5 unidades (del bando que sean)
Cualquiera count thislist > 5 más de 5 unidades (del bando que sean)
Cualquiera count thislist == 5 exactamente 5 unidades (del bando que sean)

Con esta instrucción da igual que se seleccionen las casillas “una vez”, “repetidas veces”,
“presente” o “no presente”.

Nota importante: En el caso de los civiles también cuentan los objetos vacíos, como por
ejemplo una silla o una caja de munición (no me preguntéis porque, cosas de BI).

Por ejemplo: Una misión se da por cumplida con éxito cuando lleguemos a la base con más de
tres rehenes civiles y nos presentemos al oficial junto con los civiles. Dentro del activador
estará el oficial al lado de una mesa, una silla y un mapa de Altis. Pues, en este caso, la
condición a colocar en el activador será: count thislist > 6 (la mesa, la silla, el mapa y más de
tres rehenes)

volver al índice

25) Para crear un cartel, fotografía o señal, personalizada, en el mapa.


this setObjectTexture [0,"foto1.jpg"]

Con este script podemos colocar un cartel, dibujo o fotografía personalizada en el mapa, el
número (0) indica la altura del objeto sobre el terreno.

Para ello:

Primero.- Crear el cartel, fotografía o lo que deseemos y guardarlo como un archivo *.jpg.
Segundo.- Colocar este archivo en la carpeta de la misión.
Tercero.- Entramos en el editor del juego, deberemos ir a Vacío/ Objetos (ayuda) / textura de
usuario y elegir el tamaño que queremos (1m, 1x2 m o 10 m).
Cuarto.- En el iniciador del objeto colocamos la instrucción this setObjectTexture
[0,"archivo.jpg"]
De esta forma ya tenemos un cartel creado en el mapa.

Lo habitual es colocar primero una señal Vacío/ Objetos (señales) / señal o tablón de anuncios
y luego superponemos la textura de usuario que hayamos creado.

Página 25 de 41
Manual de edición en español por Keké - V.4

Ejemplo:

Queremos colocar un cartel con instrucciones.

1. Creamos un archivo *.jpg con la señal de radioactividad y el texto que queramos


escribir, lo llamaremos: peligro.jpg
2. Colocamos el archivo en la carpeta de la misión.
3. Con el editor creamos la señal Vacío/ Objetos (señales) / señal.
4. Con el editor creamos la textura Vacío/ Objetos (ayuda) / textura de usuario / 1 m.
5. En la casilla iniciación escribimos la instrucción this setObjectTexture [1,4,"peligro.jpg"]
6. Superponemos la textura de usuario a la señal, siempre un poco más adelantada.

volver al índice

26) Para cargar algún objeto en un vehículo.

#1 attachTo [#2, [0, -2, -0.5] ];


Para cargar algún objeto en un vehículo, transportarlo y luego, si nos interesa, descargarlo.

Las variables del script significan:

La primera variable (#1) el nombre del objeto; la segunda (#2) el nombre del vehículo; el
primer número, el movimiento a lo ancho (del objeto dentro del vehículo); el segundo número,
el movimiento a lo largo y el tercer número, el movimiento en altura.
Tenemos varias opciones:
 Para que lo cargue en el vehículo y lo transporte, nada más.
En este caso podemos escribir en la casilla de iniciación de la caja de munición
caja attachTo [auto1, [0, -2, -0.5] ];

Instrucción para cambiar la dirección del objeto transportado con respecto al que lo
transporta:

this setDir (getDir moto_1) -30;

Insisto, en este caso solo lo transportaría y podríamos cargar municiones, etcétera pero sin
que la caja se descargase del vehículo.
 Para cargar y descargar mediante activadores:

Página 26 de 41
Manual de edición en español por Keké - V.4

En este caso da mucho más juego porque podemos cargar el vehículo cuando entremos en el
vehículo, transportarlo al lugar donde está la tropa y descargar toda la munición una vez
hayamos llegado. Para ello deberemos utilizar, al menos, dos activadores uno para cargar y
otro para descargar.

Para cargar podemos utilizaremos las funciones “Vehicle soldado1 == auto1” o “soldado1 in
auto1”, cuando nuestro muñeco entre en el vehículo se cargará la caja.

Para descargar deberemos crear un objeto y nominarlo. Por ejemplo un helipuerto (al que
llamaremos heli) luego en la casilla CONDICIÓN del activador utilizaremos la función “soldado1
in thislist” lo que significa que cuando el soldado1 salga del vehículo y entre en la zona del
activador la caja se descargará en la zona del helipuerto y en la casilla AL ACTIVARSE
colocaremos la función “caja attachTo [heli, [-4, 1, 0.3] ];

Como se puede apreciar las coordenadas han cambiado porque hemos de situar la caja en la
nueva posición. Recordar que el primer número es el movimiento a lo ancho, el segundo
número el movimiento a lo largo y el tercer número el movimiento en altura.

Con esta instrucción anulas la instrucción attachTo detach objeto

Para transportar un vehículo y que no se destruyan primero tienes que pasar el


vehículo trasportado a una zona fuera del vehículo y luego le das la instrucción detach.

Ejemplo:

En la casilla Inic. del avión escribimos:

avion_1 attachTo [auto_2, [0, -13, 5.2] ];

En el activador, en la casilla Activación “Radio Alpha” en la casilla AL ACTIVARSE del


activador escribimos:

avion_1 attachTo [auto_2, [0, -20, 5.5] ]; detach avion_1

Esto hará que cuando entremos en el vehículo se cargará la caja de munición, luego
podemos transportarla donde queramos y cuando nos acerquemos al helipuerto
(donde habremos puesto el activador) y salgamos del vehículo ésta se descargará y se
colocará donde la hayamos indicado, permitiendo a los compañeros poder
reamunicionarse.

De esta forma podemos cargar, trasportar y descargar cualquier objeto, desde una caja
de munición a un helicóptero.

Si queremos que un objeto inanimado tenga animación (que se pueda mover), por
ejemplo los camiones mineros de Tanoa, podemos colocar la instrucción anterior en el

Página 27 de 41
Manual de edición en español por Keké - V.4

camión y como moto_1 colocamos una moto que en Atributos/Estados especiales/


desactivamos la casilla mostrar modelo (esto hará que la moto no aparezca en el juego
aunque las acciones que realiza si tengan consecuencia), luego colocamos distintos
puntos de referencia a la moto y de esta forma parecerá que el camión minero se está
moviendo solo aunque, eso sí, sin mover las ruedas.

this attachTo [moto_1, [0, -10, 3.2]]; this setDir (getDir moto_1) -30;

También podemos crear un suicida con las siguientes instrucciones, colocadas en la


casilla al activarse de un activado o punto de referencia:

carga_1 = "DemoCharge_Remote_Ammo" createVehicle position hombre_1;

carga_1 attachTo [hombre_1, [-0.1, 0.1, 0.15], "Pelvis"];

carga_1 setVectorDirAndUp [ [0.5, 0.5, 0], [-0.5, 0.5, 0] ];

carga_2 = "DemoCharge_Remote_Ammo" createVehicle position hombre_1;

carga_2 attachTo [hombre_1, [0, 0.15, 0.15], "Pelvis"];

carga_2 setVectorDirAndUp [ [1, 0, 0], [0, 1, 0] ];

carga_3 = "DemoCharge_Remote_Ammo" createVehicle position hombre_1;

carga_3 attachTo [hombre_1, [0.1, 0.1, 0.15], "Pelvis"];

carga_3 setVectorDirAndUp [ [0.5, -0.5, 0], [0.5, 0.5, 0] ];

Con estas instrucciones en la casilla al activarse de un activador o punto de referencia,


quitaremos las cargas del suicida, pero las cargas no desaparecerán.

carga_1 attachTo [hombre_1, [0.4, 0.6, 0.1]];

carga_2 attachTo [hombre_1, [0.5, 0.7, 0.1]];

carga_3 attachTo [hombre_1, [-0.4, 0.8, 0.1]];

Si queremos que el suicida las detone tendremos que utilizar también la instrucción:

bomba="M_Mo_82mm_AT_LG" createVehicle(getPos hombre_1); deleteVehicle


hombre_1

Chequear porque en un civil este desparece y no explosiona.

Ver capítulo 24 para conocer cómo se escribe y detona.

volver al índice

Página 28 de 41
Manual de edición en español por Keké - V.4

52) Para insertar imágenes en las tareas o en un objeto

= Con esta instrucción en la descripción de la tarea podrá insertar una imagen en la


misma.

<img image='imagenes\carretera.jpg' /> <br/><br/>Diríjase a Zaros pero, tenga


cuidado, un grupo de insurgentes ha establecido un control en la coordenadas
086.114, que impide la entrada en la ciudad.<br/><br/>Instrucciones:<br/>- Elimine a
todos los enemigos que ocupan el puesto de control y diríjase a Zaros.

Con esta instrucción en la casilla INI del objeto podrá insertar una imagen en el mismo.

this setObjectTexture [0, "imagenes\rebeldes.jpg"];

volver al índice

53) Para que la IA aterrice un avión en un aeropuerto determinado

= Con esta instrucción colocada en el init del vehiculo controlado por la IA, éste
realizará un aterrizaje perfecto en el aeropuerto que se le indique.

_plane1 landAt #1

Donde #1 es el código del aeropuerto, dependiendo del mapa.

Altis:

0 = Airbase
1 = AAC Airfield
2 = Krya Nera Airstrip
3 = Selakeno Airfield
4 = Molos Airfield
5 = Almyra Salt Lake Airstrip

Takistan:
0 = Airport NorthWest
1 = Airport SouthEast

Utes:
0 = There is only one airport

Página 29 de 41
Manual de edición en español por Keké - V.4

Chernarus:
0 = Airport NorthWest close to Grishno
1 = Airport NorthEast close to Kranostav
2 = Airport SouthWest close to Balota
3 = Nearest Airport

Sahrani:
0 = Paraiso
1 = Rahmadi
2 = Pita
3 = Antigua
Tanoa
0 = Aeroport de Tanoa
1 = Tuvanaka Airbase
2 = Saint-George Airstrip
3 = Bala Airstrip
4 = La Rochelle Aerodome

Stratis
0 = Stratis Airbase

volver al índice

54) Para ver el id de los objetos

En el menú de herramientas abrir la consola de depuración y ponemos:

do3DENAction "ToggleMapIDs";

Luego pulsamos en ejecutar local y habilitara o deshabilitara las ID´s de los Objetos.

Destruir objeto del mapa

Logica del juego: edificioobjetivo= getPos this nearestObject 1193021;

Activador (damage edificioobjetivo) > 0.8

volver al índice

55) Para crear marcador al activar un activador

Página 30 de 41
Manual de edición en español por Keké - V.4

Con esta instrucción colocada en la casilla AL ACTIVARSE de un activador vamos


creando marcadores en función de la activación de los activadores.

keke = createMarker ["marker1", [5007,5907]]; keke setMarkerShape "ELLIPSE";


"marker1" setMarkerColor "ColorGreen"; "marker1" setMarkerSize [100, 100];
"marker1" setMarkerBrush "SOLID";

Coordenadas para situar el marcador (createMarker)

Copiar las coordenadas X e Y del mapa en el modo editor (Ver abajo a la izquierda de la
pantalla)

Códigos de formas (setMarkerShape)

 “Icon”
 “Rectangle”
 “Ellipse”
 “Polyline”

Códigos de colores (color /RGBA) (setMarkerColor)

Default[0,0,0,1]ColorBlack[0,0,0,1]ColorGrey[0.5,0.5,0.5,1]ColorRed[0.9,0,0,1]ColorBro
wn[0.5,0.25,0,1]ColorOrange[0.85,0.4,0,1]ColorYellow[0.85,0.85,0,1]ColorKhaki[0.5,0.
6,0.4,1]ColorGreen[0,0.8,0,1]ColorBlue[0,0,1,1]ColorPink[1,0.3,0.4,1]ColorWhite[1,1,1,
1]ColorWEST[0,0.3,0.6,1]ColorEAST[0.5,0,0,1]ColorGUER[0,0.5,0,1]ColorCIV[0.4,0,0.5,1
]ColorUNKNOWN[0.7,0.6,0,1]colorBLUFOR[0,0.3,0.6,1]colorOPFOR[0.5,0,0,1]colorInde
pendent[0,0.5,0,1]colorCivilian[0.4,0,0.5,1]Color1_FD_F[0.694118,0.2,0.223529,1]Colo
r2_FD_F[0.678431,0.74902,0.513726,1]Color3_FD_F[0.941176,0.509804,0.192157,1]C
olor4_FD_F[0.403922,0.545098,0.607843,1]Color5_FD_F[0.690196,0.25098,0.654902,
1]

Códigos de cepillos (setMarkerBrush)

 "Solid"
 "SolidFull" (A3 only)
 "Horizontal"
 "Vertical"
 "Grid"
 "FDiagonal"
 "BDiagonal"
 "DiagGrid"
 "Cross"
 "Border"
 "SolidBorder"

Página 31 de 41
Manual de edición en español por Keké - V.4

Para eliminar el marcador hemos de colocar otro activador y en la casilla al activarse


debemos escribir:

deleteMarker "marker1"

También podemos usar el siguiente método más fácil:

Insertamos un marcador donde queramos y del tipo que queramos, en la casilla Alfa
del marcador colocamos ésta al 0%, esto hará que el marcador se vuelva transparente
lo que hará que no se vea.

A continuación colocamos un activador y en la casilla AL ACTIVARSE colocamos la


siguiente instrucción:

"nombre del marcador" setMarkerAlpha 1;

Esto hará que cuando el activador se active el marcador deje de ser transparente.

Por el contrario para que deje de verse colocamos la misma instrucción pero en vez de
1 colocamos 0.

volver al índice

56) Para que un marcador cambie de color con un activador:

Al activarse:

"zona" setmarkercolor "colorgreen";

Al desactivarse:

"zona" setmarkercolor "colorred";

Zona = nombre del marcador

volver al índice

57) Para destruir una ciudad:

Página 32 de 41
Manual de edición en español por Keké - V.4

Se debe crear un marcador y denominarlo como queramos, en el ejemplo “zona”, a


continuación creamos un activador con la misma dimensión que el marcador y en la
casilla al activarse escribimos la siguiente instrucción:

["zona", 500, 1, ["Land_I_addon_03_V1_f"]] call Bis_fnc_destroycity;

volver al índice

58) Para crear una animación con un avión o helicóptero:

Se deberá colocar en la casilla al activarse de un activador

[[0,0,0],[100,100,100],100,"NORMAL","B_Heli_Light_01_F",WEST]
call BIS_fnc_ambientFlyby;

El primer grupo de tres dígitos [0,0,0] indica las coordenadas X, Y, Z de la posición de


inicio del vehículo.

Los dos primeros dígitos son las coordenadas X e Y del mapa (Ver abajo a la izquierda
de la pantalla) y el tercer digito es la altitud a la que queremos que vuele.

El segundo grupo de tres dígitos [100,100,100] indica las coordenadas X, Y, Z de la


posición de destino del vehículo.

Los dos primeros dígitos son las coordenadas X e Y del mapa (Ver abajo a la izquierda
de la pantalla) y el tercer digito es la altitud a la que queremos que vuele.

El siguiente número ,100, indica la altitud durante el vuelo.

El texto “NORMAL” indica la velocidad. Existen tres: LIMITED = lento, NORMAL = medio
y FULL = rápido.

El siguiente texto "B_Heli_Light_01_F" indica el “classname” del vehículo.

El último texto WEST indica la facción del vehículo, recordemos:

Blufor = west
Opfor = east
Independientes = guerrila
Civiles = civilian

El resto del texto es el script de Bohemia.

Página 33 de 41
Manual de edición en español por Keké - V.4

volver al índice

59) Para eliminar los objetos fijos del mapa:

Para eliminar los edificios en el editor eden, ojo solo en eden, deberemos escribir esta
instrucción en la consola de depuración y ejecutar en local.

_location=[1913.93,5866.39,0]; _radius=50; _terrainobjects = nearestTerrainObjects


[_location,[],_radius]; {hideObjectGlobal _x} foreach _terrainobjects;

Luego se deberá crear una lógica del juego y escribir en la casilla inic la siguiente
instrucción:

hideObject ([0,0,0] nearestObject 64308);

El primer grupo de tres dígitos [0,0,0] indica las coordenadas X, Y, Z de la posición de


inicio del objeto. La siguiente cifra “64308” es el Id del objeto a eliminar.

volver al índice

60) Coger objetos:

Para poder simular que cogemos un objeto, deberemos darle un nombre de a dicho
objeto (en el ejemplo objeto_1)

Con la siguiente instrucción colocada en la casilla INI del objeto se muestra un texto en
la partida al acercarse al objeto, mostrando el nombre que le hayamos puesto en el
texto (en el ejemplo DOCUMENTO CONFIDENCIAL).

this addaction ["<t color='#00FF00'>DOCUMENTO CONFIDENCIAL</t>", "deletevehicle


objeto_1;"];

Para que el texto aparezca de un determinado color deberemos seleccionar el código


hexadecimal del color que queramos que aparezca (en el ejemplo #00FF00 = verde
fluorescente) Así quedaría el Texto usando este color

Esta instrucción suele ir acompañada de un activador en el cual en la casilla


CONDICION escribiremos ¡alive objeto_1 y en la casilla AL ACTIVARSE podemos escribir
la instrucción que queramos o sincronizar con lo que deseemos.

Página 34 de 41
Manual de edición en español por Keké - V.4

volver al índice

61) Instrucciones para escribir en color las tareas o el texto en un activador:

Para poder escribir en colores e insertar imágenes cuando se active un activador, tipo
hint "Enemigo eliminado", deberemos escribir la siguiente instrucción en la casilla AL
ACTIVARSE del activador:

hint parseText "<t color='#FF0000' size='2' shadow='1' shadowColor='#000000'


align='center'>INSTRUCCIONES</t><br/><t align='center' color='#FF00FF'>---------------
--------------------------------------</t><br/><br/><img size='12'
image='imagenes\altis_01.jpg'/><br/><br/><t align='left' color='#FFFFFF'>Texto a
escribir en las instrucciones.";

Dónde:

t color='#FF0000' = Color del título.

shadowColor='#000000' = Color de la sombra del título.

color='#FF00FF'> = Color de la línea que va a separar el título de la imagen.

t color='#FF0000' = Color del texto.

Página donde encontraremos el listado con los códigos de colores. Copiar el código
hexadecimal “HEX Color”

http://codigodecolores.info/?color=000000

volver al índice

62) Para apagar o encender las luces en una zona:

Este script apaga o enciende todas las luces en un radio (por defecto de 1.000 metros)
alrededor de un marcador.

Pasos a seguir:

1. Crear un marcador llamado "lucesfuera_01"

2. Crear un objeto en el editor, y en su ini meter este código, según se quiera:

\\\\\\\\ Para apagar las luces ////////

Página 35 de 41
Manual de edición en español por Keké - V.4

poo = this addAction ["Apagar las luces", "0 = [0.95] execVM 'lights_01.sqf'"];

\\\\\\\\ Para encender las luces ////////

poo = this addAction ["Encender las luces", "0 = [0] execVM 'lights_01.sqf'"];

Nota: Por defecto la distancia de acción es de 1.000 metros, pero se puede cambiar en
el archivo "lights_01.sqf"

Nota: También puedes enlazar ambas instrucciones en el mismo objeto (por ejemplo
un generador portátil) de esta forma podrás encender y apagar las luces a tu elección.

Ejemplo: Colocas un generador portátil, en el ini escribes:

poo = this addAction ["Encender las luces", "0 = [0] execVM 'lights_01.sqf'"]; poo = this
addAction ["Apagar las luces", "0 = [0.95] execVM 'lights_01.sqf'"];

3. Crear un archivo *.sqf (en este caso lights_01.sqf) y escribir:

// off: 0 = [0.95] execVM "lights_01.sqf";

// on: 0 = [0] execVM "lights_01.sqf";

_types = ["Lamps_Base_F", "Land_PortableLight_double_F", "PowerLines_base_F",


"Land_LampDecor_F", "Land_LampHalogen_F", "Land_LampHarbour_F",
"Land_LampShabby_F", "Land_NavigLight", "Land_runway_edgelight",
"Land_PowerPoleWooden_L_F"];

_onoff = _this select 0;

for [{_i=0},{_i < (count _types)},{_i=_i+1}] do

// lucesfuera_01 es el marcador colocado 1000 es la distancia alrededor del


marcador

_lamps = getMarkerPos "lucesfuera_01" nearObjects [_types select _i, 1000];

sleep 0;

{_x setDamage _onoff} forEach _lamps;

};

Página 36 de 41
Manual de edición en español por Keké - V.4

Nota: Si alguna lámpara no se apaga, comprobar que el classname está en la


instrucción types, si no está, averiguamos el clasname del objeto y lo añadimos al
script.

volver al índice

63) Para abrir y cerrar el Terminal de Datos (Land_DataTerminal_01_F):

Este script abre o cierra el terminal de datos.

Pasos a seguir:

1. Crear un archivo *.sqf (en este caso abrir_TD.sqf) y escribir:

[box, 3] call BIS_fnc_DataTerminalAnimate;

2. Crear un archivo *.sqf (en este caso cerrar_TD.sqf) y escribir:

[box, 0] call BIS_fnc_DataTerminalAnimate;

4. En la casilla nombre de la variable de la terminal de datos escribimos un nombre, en


este caso box.

3. En la casilla inic. de la terminal de datos se escribirá la siguiente función:

this addAction ["Abrir terminal de datos", "execVM 'abrir_TD.sqf'"]; this addAction


["Cerrar terminal de datos", "execVM 'cerrar_TD.sqf'"];

volver al índice

64) Para escribir texto en la introducción de la misión:

TEXTOS ESTÁTICOS (solo se desvanecen hacia adentro y hacia afuera, sin movimiento)

Texto simple, una línea, centro de la pantalla;

titletext ["MISSION NAME By: Author name","plain"];

Texto simple, dos líneas, centro de la pantalla;

Página 37 de 41
Manual de edición en español por Keké - V.4

titletext ["MISSION NAME By: Author name \n Date: HH:MM","plain"];

Texto simple, dos líneas, parte inferior de la pantalla;

titletext ["MISSION NAME By: Author name \n Date: HH:MM","plain down"];

Texto de título con una variable que contiene texto estructurado;

a = format ["Mission name, By: Author name \n %1 : %2",str (date select 3),str (date
select 4)];titletext [a,"plain"];

TEXTOS ANIMADOS (use funciones predefinidas para animar las letras)

Las letras individuales aparecen rápidamente en orden aleatorio, luego desaparecen.


Esquina inferior derecha.

any= ["Mission name" ,


"By: Author name" ,
"Date"
] spawn BIS_fnc_infoText;

Las letras aparecen gradualmente, parte superior de la pantalla, centro;

any=[
[
["Mission name","<t align = 'center' size = '0.7'>%1</t><br/>"],
["Author name","<t align = 'center' size = '0.7'>%1</t><br/>"],
["Date","<t align = 'center' size = '0.7'>%1</t>"]

]
] spawn BIS_fnc_typeText;

Las letras aparecen gradualmente, esquina superior derecha de la pantalla, se agregan


pocos efectos;

Cambio de fuente, tamaño y color

any =
[
[
["Mission name","align = 'center' size = '0.7' font='PuristaBold'"],

Página 38 de 41
Manual de edición en español por Keké - V.4

["","<br/>"],
["Author name","align = 'center' size = '0.8'","#aaaaaa"],
["","<br/>"],
["Date","align = 'center' size = '0.7'"]
]
]
spawn BIS_fnc_typeText2;

Texto de información nuevamente con variables en la tercera línea;


Toma horas y minutos del comando de fecha (fecha del juego, formatea YYYY: MM:
DD: HH: MM) y los muestra

any= ["Mission name" ,


"By: Author name" ,
str (date select 3) + ":" + str (date select 4)]
spawn BIS_fnc_infoText;

Escribe texto nuevamente con variables en la tercera línea;


La misma variación que arriba, solo con diferentes funciones.

any=[
[
["Mission name","<t align = 'center' size = '0.7'>%1</t><br/>"],
["Author name","<t align = 'center' size = '0.7'>%1</t><br/>"],
[str (date select 3) + ":" + str (date select 4),"<t align = 'center' size =
'0.7'>%1</t>"]

]
] spawn BIS_fnc_typeText;

Escribe Texto 2 de nuevo con variables en la tercera línea;

any =
[
[
["Mission name","align = 'center' size = '0.7' font='PuristaBold'"],
["","<br/>"],
["Author name","align = 'center' size = '0.7'","#aaaaaa"],
["","<br/>"],
[str (date select 3) + ":" + str (date select 4),"align = 'center' size = '0.7'"]
]
]
spawn BIS_fnc_typeText2;

Página 39 de 41
Manual de edición en español por Keké - V.4

Información adicional: Para pasar a una nueva línea, use lo siguiente:

TitleText - \n
InfoText - a new parameter ( ["blabla","new line","third line"] )
TypeText - ["text","<t>%1</t> <br/>"], the <br/> indicates that the next text will be on
another line
TypeText - ["","<br/>"],

Para combinar un texto fijo con variables, puede usar + si está escribiendo un texto
estructurado. Un texto estructurado se usa en variantes y funciones de texto animado.

str (date select 3) + ":" + str (date select 4)


date select 3 = 6, date select 4 = 35
str 6 = 6, str 35 = 35
So now we have a text "6", a text ":" and "35"
final result 6:35

TitleText o CutText no admiten texto estructurado como parte del comando. Puede ver
en los ejemplos avanzados de TitleText que hice el formateo del texto antes de usar el
comando mismo, de esa manera usé texto estructurado, lo guardé en una variable y
solo entonces lo usó en el comando.

volver al índice

65) Para texturizar unidades:

Para colocar un color, una imagen o una combinación de colores en los uniformes y los
vehículos, que tú quieras deberás escribir esta instrucción en el INI de la unidad.

La textura debes tenerla guardada en la carpeta de la misión, habitualmente


"image\amarillo.jpg".

Cuando una unidad, habitualmente vehículo, tiene varias texturas deberás ir probando
con los números 0, 1, 2, 3 a veces hasta 4 o 5.

this setobjecttexture [0, "amarillo.jpg"];


this setobjecttexture [1, "rojo.jpg"];
this setobjecttexture [2, "blanco.jpg"];
this setobjecttexture [2, "blanco_mimetico.jpg"];

Página 40 de 41
Manual de edición en español por Keké - V.4

volver al índice

66) Para no te maten mientras chequeas las misiones:

Colocar esta instrucción en el INI de tu unidad.

this allowDamage false;

volver al índice

Página 41 de 41

Vous aimerez peut-être aussi