Página 1 de 1

Ayuda a ejecutar script en cada civil

Publicado: 14 Sep 2020, 13:57
por ToniCS
Buenas.
Soy nuevo por aqui.
Aver si me pueden ayudar un poco.

Intento que el script se ejecute en cada civil ... al poner el script en un grupo con un civil funciona, pero si pongo otro grupo con otro civil ya no funciona. Que es lo que me falla?

Estoy empezando con la programacion en arma 3.

Código: Seleccionar todo

{
unit = _x ;





arrow = "Sign_Arrow_F" createVehicle [0,0,0];



onEachFrame {


	_ins = lineIntersectsSurfaces [
		AGLToASL (unit modelToWorld [0,0.6,1000]), 
		AGLToASL (unit modelToWorld [0,0.6,-1000]), 
		player,
		objNull,
		true,
		1,
		"GEOM",
		"NONE"
	];
	
	
	
	
	if (count _ins == 0) exitWith {arrow setPosASL [0,0,0]; };
	arrow setPosASL (_ins select 0 select 0); 
	arrow setVectorUp (_ins select 0 select 1);
	
	_FINAL = (str (_ins select 0)) splitString ":";
	if (count _FINAL < 2) exitWith {hintSilent "NADA"; unit forceSpeed 150; };
	
	hintSilent  (str (_FINAL select 2));
	 unit forceSpeed 0; 
};

 while {true} do {

unit doMove (position player);
sleep 2;
}; 


} forEach units  (_this select 0);

Re: Ayuda a ejecutar script en cada civil

Publicado: 14 Sep 2020, 15:40
por <A2>Pescadorr
Buenos días Tónics, bienvenido por aquí.

Veo que lo tuyo no es presentarte en el grupo, en fin, no pasa nada.

Lo ideal es cuando se está empezando a editar en arma es empezar poco a poco y solo manejar scripts que seas capaz de entender, ya un script de este tipo te puede fallar por todas partes (localidad, JIP, etc, etc) y no sabrías como arreglarlo. Es el consejo que suelo dar, no usar scripts por ahí, sino limitarse a hacer lo que uno entienda, así te evitas fallos y dolores de cabeza y sobretodo mucha frustración al no lograr lo que deseas.

En este caso veo que ejecutas el scripts añadiendo el argumento grupo supongo que será algo así:

[Grupo] execVM "scripts.sqf" o usando un call o spawn

En este caso la solución sería añadir más grupos a los parámetros tal que asi:

[Grupo1,grupo2,grupo3] execVM "scripts.sqf"

Y añadir en la última linea esto:

} Foreach (units (_this select 0) + units (_this select 1) + units (_this select 2));

Así seria para tres grupos si son más o menos, habría que adaptar la línea del foreach según los parámetros que le pases.

Espero haberte ayudado, Un Saludo.