Contar unidades

Sección para misiones y edición ArmA III

Moderador: C. Misiones & Noticias

Avatar de Usuario
<A2>Dark Darius
Soldado A2
Soldado A2
Mensajes: 980
Registrado: 10 Jun 2014, 23:06

Re: Contar unidades

Mensaje por <A2>Dark Darius »

<A2>Pescadorr escribió: 11 Ago 2022, 11:47
<A2>Flac0 escribió: 10 Ago 2022, 14:36
<A2>Bhelma escribió: 10 Ago 2022, 12:27

Pues quiero que dependiendo de la cantidad de jugadores que entren en un area, se active una variable.
Esa variable activara unos waiponts de enemigos

Eso es lo que quiero, si hay otra manera de hacerlo, tambien me valdria.
1º Crea un archivo contador.sqf

2ºEn el script contador.sqf

Código: Seleccionar todo

		
while {(count list zona1) != (count playableunits)} do {
_judadores = count playableunits;
_enzona = count list zona1;
waitUntil {
sleep 2; 
_judadores = 10;
};
sleep 2;
};
variableBhelma=true; publicvariable "variableBhelma";
zona1 nombre del activador que hace de zona
_judadores = 10 (cambia el valor si quieres)
variable que activa


3º Ejecuta

Código: Seleccionar todo

null=execvm "contador.sqf";
cuando quieres que comience a ejecutarse la condición.



Así debería funcionar
Flaco creo que hay un error en el script, y no está bien planteado ya que metes un bucle dentro de otro. El waituntil no tiene puesta la condición ya que
_judadores = 10;
es una ejecución, no una condición lógica que supongo sería
_judadores == 10
Donde saldría del bucle al cumplirse que supongo es lo que querías.

Yo lo plantearía más fácil, en el mismo activador que se encarga de contar en la zona lo pondría todo
Que lo activen jugadores blufor o lo que sea, presente y en la condición pones

Código: Seleccionar todo

Count thislist == 10 
o el numero que sea
Y en al activar pues ya pones la variable

Código: Seleccionar todo

variableBhelma=true; publicvariable "variableBhelma"; 
Y ya te ahorras el script y ganas en eficiencia.
Si lo que quieres es ejecutarlo en un momento determinado pues usa una variable para controlar la condición por ejemplo
Count thislist == 10 && activarcontar
Y ya lo tendrías, con solo poner activarcontar a true en el momento que quisieras ya lo tendrías
activarcontar= true; publicvariable "activarcontar";
Por supuesto todas las variables que vayas a usar debes de tenerlas declaradas en el init.sqf, tal que así:
If (isserver) then
{
activarcontar= false; publicvariable "activarcontar";
variableBhelma=false; publicvariable "variableBhelma";
};

Si lo que quieres es que se active cuando todos los jugadores estén en la zona del activador, pon esto en condición:

Código: Seleccionar todo

{Alive _x && isplayer _x} count thislist == count playableunits
Recuerda que playableunits solo funciona en MP, en SP o el editor devuelve 0.
Y si usas el ACE3 no solo asegurar que estén vivos si no que también conscientes.
Añadir en amigos de Steam Imagen
Imagen

Responder