Contar unidades

Sección para misiones y edición ArmA III

Moderador: C. Misiones & Noticias

Avatar de Usuario
<A2>Bhelma
Soldado A2
Soldado A2
Mensajes: 1314
Registrado: 17 Dic 2010, 14:37

Contar unidades

Mensaje por <A2>Bhelma »

Hay alguna forma de contar los jugadores que entran en el area de un activador??
Imagen
Imagen

<A2>Rutius
Soldado A2
Soldado A2
Mensajes: 646
Registrado: 11 Abr 2018, 13:38

Re: Contar unidades

Mensaje por <A2>Rutius »

<A2>Bhelma escribió: 09 Ago 2022, 22:57 Hay alguna forma de contar los jugadores que entran en el area de un activador??
¿Con qué fin?

Sería añadiendo un hint al activador, supongo
Ningún plan perfecto sobrevive al primer contacto con el enemigo

Conectado
Avatar de Usuario
<A2>Flac0
Visitante
Mensajes: 1610
Registrado: 22 Mar 2020, 18:07

Re: Contar unidades

Mensaje por <A2>Flac0 »

<A2>Bhelma escribió: 09 Ago 2022, 22:57 Hay alguna forma de contar los jugadores que entran en el area de un activador??
zona1 nombre de la variable del activador con el tamaño que tu quieras

Código: Seleccionar todo

count list zona1
¿Qué quieres hacer?

Avatar de Usuario
<A2>Bhelma
Soldado A2
Soldado A2
Mensajes: 1314
Registrado: 17 Dic 2010, 14:37

Re: Contar unidades

Mensaje por <A2>Bhelma »

<A2>Flac0 escribió: 10 Ago 2022, 03:31
<A2>Bhelma escribió: 09 Ago 2022, 22:57 Hay alguna forma de contar los jugadores que entran en el area de un activador??
zona1 nombre de la variable del activador con el tamaño que tu quieras

Código: Seleccionar todo

count list zona1
¿Qué quieres hacer?
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.
Imagen
Imagen

Conectado
Avatar de Usuario
<A2>Flac0
Visitante
Mensajes: 1610
Registrado: 22 Mar 2020, 18:07

Re: Contar unidades

Mensaje por <A2>Flac0 »

<A2>Bhelma escribió: 10 Ago 2022, 12:27
<A2>Flac0 escribió: 10 Ago 2022, 03:31
<A2>Bhelma escribió: 09 Ago 2022, 22:57 Hay alguna forma de contar los jugadores que entran en el area de un activador??
zona1 nombre de la variable del activador con el tamaño que tu quieras

Código: Seleccionar todo

count list zona1
¿Qué quieres hacer?
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)
variableBhelma=true; publicvariable "variableBhelma"; 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

Avatar de Usuario
<A2>Bhelma
Soldado A2
Soldado A2
Mensajes: 1314
Registrado: 17 Dic 2010, 14:37

Re: Contar unidades

Mensaje por <A2>Bhelma »

Gracias Flac0....

Esta misma noche lo pruebo.....
Imagen
Imagen

Avatar de Usuario
<A2>Pescadorr
Soldado A2
Soldado A2
Mensajes: 6570
Registrado: 09 Sep 2011, 03:28

Re: Contar unidades

Mensaje por <A2>Pescadorr »

<A2>Flac0 escribió: 10 Ago 2022, 14:36
<A2>Bhelma escribió: 10 Ago 2022, 12:27
<A2>Flac0 escribió: 10 Ago 2022, 03:31

zona1 nombre de la variable del activador con el tamaño que tu quieras

Código: Seleccionar todo

count list zona1
¿Qué quieres hacer?
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.
Caja: DEEP COOL MATREXX 70 3F CPU: Ryzen 7 5800X P. Base: Gigabyte X570 Aorus Elite RAM:Team Group T-Force Dark Z Alpha 2x16 gb ddr4 3600 Mhz CL18
Disipador cpu: Corsair H-100 Hydro series Pasta termica: Thermalright TF8 13.8 W/MK + Coollaboratory Liquid Pro GPU: Asus GeForce TUF Gaming RTX 4070 Ti 12GB GDDR6X
Discos: M2 samsung 970 512 mb 3.0 + M2 Samsung 980 PRO 1 Tb 4.0 + HDD Barracuda 4 Tb Vent: 4 x deep cool RGB pwm + 3 x corsair pwm + 2 x Noctua nf-p12 + controladora rgb + pwm
disipador M2: GLOTRENDS M.2 Alfombrilla: MARSGAMING MMPRGB2 XXL RGB 80x30 Auriculares: Audio-Technica M50x Peines cableado: Uphere 24 pz
Microfono: Boya BY-M1 Raton: Logitech G602 Teclado: Razer Huntsman Elite Switches Optomecánicos Purple
Monitor: Philips 436M6VBPAB 43" 4K HDR1000 AmbiGlow Gsync low input Silla: Diablo X-Horn XL


Avatar de Usuario
<A2>Bhelma
Soldado A2
Soldado A2
Mensajes: 1314
Registrado: 17 Dic 2010, 14:37

Re: Contar unidades

Mensaje por <A2>Bhelma »

Vale...veo mejor opcion no utilizar scripts....

Aunque probare las dos versiones a ver cual me convence mas.

Una cosa Pesca....

Las variables las estoy poniendo en el archivo initserver.sqf, deberia de poner igualmente el if(isserver) then {...}; ?
Imagen
Imagen

Conectado
Avatar de Usuario
<A2>Flac0
Visitante
Mensajes: 1610
Registrado: 22 Mar 2020, 18:07

Re: Contar unidades

Mensaje por <A2>Flac0 »

Tienes razón Pesca.
<A2>Bhelma escribió: 11 Ago 2022, 15:14 Las variables las estoy poniendo en el archivo initserver.sqf, deberia de poner igualmente el if(isserver) then {...}; ?
No, el initserver ya se ejecuta como si pusieras la linea if(isserver)...

Avatar de Usuario
<A2>Bhelma
Soldado A2
Soldado A2
Mensajes: 1314
Registrado: 17 Dic 2010, 14:37

Re: Contar unidades

Mensaje por <A2>Bhelma »

Perfecto
Imagen
Imagen

Responder