Problema con condicionante "IF"

Foro dedicado a los Scripts en Arma III
Avatar de Usuario

Autor del hilo
DaRkEdGe
Nuevo usuario
Nuevo usuario
Mensajes: 21
Registrado: 01 Ene 1970 01:00

#10518

22 Ago 2013 01:28

Buenas compis... llevo toda la tarde rompiendome la cabeza con algo simplisimo que no entiendo por que demonios me falla... estoy haciendo un script para el arma 3 y la ultima parte del mismo lleva esta secuencia

Código: Seleccionar todo

  if(!alive contacto)then{
    Conductor1 globalChat "jajajaja";
    };

Pues sorprendido me deja que siempre me da el mismo error, "Missing {" y se dispara directamente la accion, pasandose por el forro la condicion... he probado mil cosas y me sigue dando el mismo error incluso lanzar un script vacio solo con esta secuencia y me dise k falta la maldita llave abierta "{"... la desesperacion esta acabando conmigo pk encima que es una tonteria... no soy capaz de verla... Imagen ayuda please



Avatar de Usuario

Autor del hilo
DaRkEdGe
Nuevo usuario
Nuevo usuario
Mensajes: 21
Registrado: 01 Ene 1970 01:00

#10520

22 Ago 2013 03:01

Vale deje de lado ese script para segui avanzando la mision por otro lado ya que perdi tanto tiempo con eso... y tengo el mismo problema de nuevo la secuencia IF (condicion) then{accion}; no se me ejecuta... y me dice cada vez que ejecuto el Script lo mismo que el otro... que "{ Is Missing" y no lo entiendo porque estar esta... :S necesito ayuda por favor... :(

Aqui os dejo el Script:

Código: Seleccionar todo


_captores = creategroup resistance ;


  _pickup = createVehicle ["C_Offroad_01_F", getpos inicio, [], 0, "NONE"];
  _pickup setdir 136.875;
~0.1

  Contacto setPos (getPos inicio);


  Conductor1 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
~0.1
    Conductor1 addHeadgear "H_Cap_headphones";
    Conductor1 addVest "V_Chestrig_oli";
    Conductor1 addUniform "U_I_CombatUniform_tshirt";
    Conductor1 addWeapon "arifle_TRG20_F";
    Conductor1 addPrimaryWeaponItem "optic_Aco";
    Conductor1 addPrimaryWeaponItem "acc_pointer_IR";
    Conductor1 addWeapon "hgun_mas_acp_F_sd";


  Escolta1 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
~0.1
    Escolta1 addHeadgear 'H_Cap_headphones';
    Escolta1 addVest 'V_HarnessOGL_brn';
    Escolta1 addUniform 'U_I_CombatUniform_shortsleeve';
    Escolta1 addWeapon 'arifle_TRG21_GL_F';
    Escolta1 addPrimaryWeaponItem 'optic_MRCO';
    Escolta1 addPrimaryWeaponItem 'acc_flashlight';
    Escolta1 addWeapon 'hgun_mas_usp_F_sd';


  Escolta2 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
~0.1
    Escolta2 addHeadgear 'H_Cap_headphones';
    Escolta2 addVest 'V_PlateCarrier2_rgr';
    Escolta2 addUniform 'U_I_CombatUniform';
    Escolta2 addWeapon 'arifle_TRG21_ARCO_pointer_F';
    Escolta2 addPrimaryWeaponItem 'optic_SOS';
    Escolta2 addPrimaryWeaponItem '';
    Escolta2 addWeapon 'hgun_mas_glock_F_sd';


~0.1
  Conductor1 assignAsDriver _pickup;
  Escolta1 assignAsCargoIndex [_pickup, 0];
  Escolta2 assignAsCargoIndex [_pickup, 1];
  Contacto assignAsCargoIndex [_pickup, 2];
~0.1
    [Conductor1, Escolta1, Escolta2, Contacto] orderGetIn true;

~10

			   if ((Conductor1 in _pickup) && (Contacto in _pickup)) then
				{
							 _wp1 = _captores addWaypoint [getpos Fin, 1];
							 _wp1 setWaypointBehaviour "SAFE";
							 _wp1 setWaypointCombatMode "BLUE";
							 _wp1 setWaypointCompletionRadius 1;
							 _wp1 setWaypointFormation "DIAMOND";
							 _wp1 setWaypointSpeed "LIMITED";
							 _wp1 setWaypointType "move";
							 Conductor1 action ["LightOn", _pickup]
			   };


			   if ((_pickup distance fin <= 5) || (! canMove _pickup)) then
				{
							 Conductor1 action ["LightOff", _pickup]
							 {unAssignVehicle _x} forEach units _captores
							 unassignVehicle Contacto
							 Conductor1 assignAsDriver _pickup;
							 Escolta1 assignAsCargoIndex [helisec, 0];
							 Escolta2 assignAsCargoIndex [helisec, 1];
							 Contacto assignAsCargoIndex [helisec, 2];
							 ~0.1
							 [Conductor1, Escolta1, Escolta2, Contacto] orderGetIn true;
			   };

_SOF = creategroup resistance ;

  sfsold = _SOF createUnit ["I_soldier_F",  Pos2, [], 0, "NONE"];
~0.1
	 sfsold disableai "move";
	 sfsold setUnitPos "MIDDLE";

    sfsold addHeadgear 'H_Booniehat_dgtl';
    sfsold addVest 'V_PlateCarrier1_rgr';
    sfsold addUniform 'U_I_CombatUniform_tshirt';
    sfsold addWeapon 'LMG_mas_Mk200_F';
    sfsold addPrimaryWeaponItem 'optic_Arco';
    sfsold addPrimaryWeaponItem 'acc_pointer_IR';
    sfsold addWeapon 'hgun_mas_m9_F_sd';

_SOF2= creategroup resistance ;

  SfSold1 = _SOF createUnit ["I_soldier_F",  Pos1, [], 0, "NONE"];
~0.1
	 sfsold1 disableai "move";
	 sfsold1 setUnitPos "MIDDLE";

    SfSold1 addHeadgear "H_Cap_headphones";
    SfSold1 addVest "V_Chestrig_oli";
    SfSold1 addUniform "U_I_CombatUniform_tshirt";
    SfSold1 addWeapon "arifle_TRG20_F";
    SfSold1 addPrimaryWeaponItem "optic_Aco";
    SfSold1 addPrimaryWeaponItem "acc_pointer_IR";
    SfSold1 addWeapon "hgun_mas_acp_F_sd";

~0.1





Avatar de Usuario

Vulcan
Desarrollador FFAA MOD
Desarrollador FFAA MOD
Mensajes: 403
Registrado: 01 Ene 1970 01:00
Clan: www.arma3.es

#10524

22 Ago 2013 12:49

que tal Darkedge,

mira esta solucion
pasa el script a sqf en lugar de sqs
elimina los ~0.1 por sleep 0.1;
no olvides los ; para todas las lineas sobre todo las lineas donde montas a las unidades en el helisec
y en esta linea Conductor1 addWeapon "hgun_mas_acp_F_sd"; ese arma puede darte un error, ya sabes que los cfg estan cambiando hasta la salida del juego

te pongo aqui el script como seria

Código: Seleccionar todo

_captores = creategroup resistance ;


  _pickup = createVehicle ["C_Offroad_01_F", getpos inicio, [], 0, "NONE"];
  _pickup setdir 136.875;
sleep 0.1;

  Contacto setPos (getPos inicio);


  Conductor1 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
sleep 0.1;
    Conductor1 addHeadgear "H_Cap_headphones";
    Conductor1 addVest "V_Chestrig_oli";
    Conductor1 addUniform "U_I_CombatUniform_tshirt";
    Conductor1 addWeapon "arifle_TRG20_F";
    Conductor1 addPrimaryWeaponItem "optic_Aco";
    Conductor1 addPrimaryWeaponItem "acc_pointer_IR";
    Conductor1 addWeapon "hgun_mas_acp_F_sd";


  Escolta1 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
sleep 0.1;
    Escolta1 addHeadgear 'H_Cap_headphones';
    Escolta1 addVest 'V_HarnessOGL_brn';
    Escolta1 addUniform 'U_I_CombatUniform_shortsleeve';
    Escolta1 addWeapon 'arifle_TRG21_GL_F';
    Escolta1 addPrimaryWeaponItem 'optic_MRCO';
    Escolta1 addPrimaryWeaponItem 'acc_flashlight';
    Escolta1 addWeapon 'hgun_mas_usp_F_sd';


  Escolta2 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
sleep 0.1;
    Escolta2 addHeadgear 'H_Cap_headphones';
    Escolta2 addVest 'V_PlateCarrier2_rgr';
    Escolta2 addUniform 'U_I_CombatUniform';
    Escolta2 addWeapon 'arifle_TRG21_ARCO_pointer_F';
    Escolta2 addPrimaryWeaponItem 'optic_SOS';
    Escolta2 addPrimaryWeaponItem '';
    Escolta2 addWeapon 'hgun_mas_glock_F_sd';

sleep 0.1;
  Conductor1 assignAsDriver _pickup;
  Escolta1 assignAsCargoIndex [_pickup, 0];
  Escolta2 assignAsCargoIndex [_pickup, 1];
  Contacto assignAsCargoIndex [_pickup, 2];
sleep 0.1;
    [Conductor1, Escolta1, Escolta2, Contacto] orderGetIn true;

sleep 10;

		  if ((Conductor1 in _pickup) && (Contacto in _pickup)) then
		  {
				  _wp1 = _captores addWaypoint [getpos Fin, 1];
				  _wp1 setWaypointBehaviour "SAFE";
				  _wp1 setWaypointCombatMode "BLUE";
				  _wp1 setWaypointCompletionRadius 1;
				  _wp1 setWaypointFormation "DIAMOND";
				  _wp1 setWaypointSpeed "LIMITED";
				  _wp1 setWaypointType "move";
				  Conductor1 action ["LightOn", _pickup]
		  };


		  if ((_pickup distance fin <= 5) || (! canMove _pickup)) then
		  {
				  Conductor1 action ["LightOff", _pickup];
				  {unAssignVehicle _x} forEach units _captores;
				  unassignVehicle Contacto;
				  Conductor1 assignAsDriver _pickup;
				  Escolta1 assignAsCargoIndex [helisec, 0];
				  Escolta2 assignAsCargoIndex [helisec, 1];
				  Contacto assignAsCargoIndex [helisec, 2];
				  sleep 0.1;
				  [Conductor1, Escolta1, Escolta2, Contacto] orderGetIn true;
		  };

_SOF = creategroup resistance ;

  sfsold = _SOF createUnit ["I_soldier_F",  Pos2, [], 0, "NONE"];
sleep 0.1;
    sfsold disableai "move";
    sfsold setUnitPos "MIDDLE";

    sfsold addHeadgear 'H_Booniehat_dgtl';
    sfsold addVest 'V_PlateCarrier1_rgr';
    sfsold addUniform 'U_I_CombatUniform_tshirt';
    sfsold addWeapon 'LMG_mas_Mk200_F';
    sfsold addPrimaryWeaponItem 'optic_Arco';
    sfsold addPrimaryWeaponItem 'acc_pointer_IR';
    sfsold addWeapon 'hgun_mas_m9_F_sd';

_SOF2= creategroup resistance ;

  SfSold1 = _SOF createUnit ["I_soldier_F",  Pos1, [], 0, "NONE"];
sleep 0.1;
    sfsold1 disableai "move";
    sfsold1 setUnitPos "MIDDLE";

    SfSold1 addHeadgear "H_Cap_headphones";
    SfSold1 addVest "V_Chestrig_oli";
    SfSold1 addUniform "U_I_CombatUniform_tshirt";
    SfSold1 addWeapon "arifle_TRG20_F";
    SfSold1 addPrimaryWeaponItem "optic_Aco";
    SfSold1 addPrimaryWeaponItem "acc_pointer_IR";
    SfSold1 addWeapon "hgun_mas_acp_F_sd";

sleep 0.1;
parece bastante buena la escena a ver si publicas la mision pronto
buena edicion mostro



Avatar de Usuario

Autor del hilo
DaRkEdGe
Nuevo usuario
Nuevo usuario
Mensajes: 21
Registrado: 01 Ene 1970 01:00

#10526

22 Ago 2013 14:37

Hey Vulcan que Tal?? al rescate como tiempo atras eh???

buf... estoy desquiciado... estoy empezando a creer que hay algo raro en mi ordenata... :S bueno, he rehecho el script de nuevo por si pasaba algo por alto que no veia y lo he llamado "secuestro.sqf" y ha quedado tal que asi:

Código: Seleccionar todo


_captores = creategroup resistance ;

	 _pickup = createVehicle ["C_Offroad_01_F", getpos inicio, [], 0, "NONE"];
		  _pickup setdir 136.875;

	 Contacto setPos (getPos inicio);


	 Conductor1 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
		  Conductor1 addHeadgear "H_Cap_headphones";
		  Conductor1 addVest "V_Chestrig_oli";
		  Conductor1 addUniform "U_I_CombatUniform_tshirt";
		  Conductor1 addWeapon "arifle_TRG20_F";
		  Conductor1 addPrimaryWeaponItem "optic_Aco";
		  Conductor1 addPrimaryWeaponItem "acc_pointer_IR";


	 Escolta1 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
		  Escolta1 addHeadgear 'H_Cap_headphones';
		  Escolta1 addVest 'V_HarnessOGL_brn';
		  Escolta1 addUniform 'U_I_CombatUniform_shortsleeve';
		  Escolta1 addWeapon 'arifle_TRG21_GL_F';
		  Escolta1 addPrimaryWeaponItem 'optic_MRCO';
		  Escolta1 addPrimaryWeaponItem 'acc_flashlight';


	 Escolta2 = _captores createUnit ["I_soldier_F",  inicio, [], 0, "FORM"];
		  Escolta2 addHeadgear 'H_Cap_headphones';
		  Escolta2 addVest 'V_PlateCarrier2_rgr';
		  Escolta2 addUniform 'U_I_CombatUniform';
		  Escolta2 addWeapon 'arifle_TRG21_ARCO_pointer_F';
		  Escolta2 addPrimaryWeaponItem 'optic_SOS';


 Conductor1 assignAsDriver _pickup;
 Escolta1 assignAsCargoIndex [_pickup, 0];
 Escolta2 assignAsCargoIndex [_pickup, 1];
 Contacto assignAsCargoIndex [_pickup, 2];
 [Conductor1, Escolta1, Escolta2, Contacto] orderGetIn true;


 if ((Conductor1 in _pickup) && (Escolta1 in _pickup) && (Escolta2 in _pickup) && (Contacto in _pickup)) then {
		  _wp1 = _captores addWaypoint [getpos Fin, 1];
		  _wp1 setWaypointBehaviour "SAFE";
		  _wp1 setWaypointCombatMode "BLUE";
		  _wp1 setWaypointCompletionRadius 1;
		  _wp1 setWaypointFormation "DIAMOND";
		  _wp1 setWaypointSpeed "LIMITED";
		  _wp1 setWaypointType "move";
		  Conductor1 action ["LightOn", _pickup];
 };



if (_pickup distance helisec <=100) then {
		  Conductor1 action ["LightOff", _pickup];
		  Conductor1 action ["LightOff", _pickup]
		  {unAssignVehicle _x} forEach units _captores
		  unassignVehicle Contacto
		  Conductor1 assignAsCargo helisec;
		  Escolta1 assignAsCargo helisec;
		  Escolta2 assignAsCargo helisec;
		  Contacto assignAsCargo helisec;
 };

_SOF = creategroup resistance ;

	 sfsold = _SOF createUnit ["I_soldier_F",  Pos2, [], 0, "NONE"];

	 sfsold disableai "move";
	 sfsold setUnitPos "MIDDLE";

	 sfsold addHeadgear 'H_Booniehat_dgtl';
	 sfsold addVest 'V_PlateCarrier1_rgr';
	 sfsold addUniform 'U_I_CombatUniform_tshirt';
	 sfsold addWeapon 'LMG_mas_Mk200_F';
	 sfsold addPrimaryWeaponItem 'optic_Arco';
	 sfsold addPrimaryWeaponItem 'acc_pointer_IR';

_SOF2= creategroup resistance ;

	 SfSold1 = _SOF createUnit ["I_soldier_F",  Pos1, [], 0, "NONE"];

	 sfsold1 disableai "move";
	 sfsold1 setUnitPos "MIDDLE";

	 SfSold1 addHeadgear "H_Cap_headphones";
	 SfSold1 addVest "V_Chestrig_oli";
	 SfSold1 addUniform "U_I_CombatUniform_tshirt";
	 SfSold1 addWeapon "arifle_TRG20_F";
	 SfSold1 addPrimaryWeaponItem "optic_Aco";
	 SfSold1 addPrimaryWeaponItem "acc_pointer_IR";
Como dato curioso, aun siendo un SQF, si pongo sleep 3; o el tiempo que sea me da error!!... y por eso los elimine del script... bueno a parte de esto... cuando ejecuto este script me sigue dando el mismo fallo de MISSING { y el script funciona parcialmente, me crea las Unidades y demas pero cuando deben entrar en _pickup pasan de el y van corriendo a Helisec y se meten dentro... si elimino todo el siguiente bloque:

Código: Seleccionar todo

if (_pickup distance helisec <=100) then {
		  Conductor1 action ["LightOff", _pickup];
		  Conductor1 action ["LightOff", _pickup]
		  {unAssignVehicle _x} forEach units _captores
		  unassignVehicle Contacto
		  Conductor1 assignAsCargo helisec;
		  Escolta1 assignAsCargo helisec;
		  Escolta2 assignAsCargo helisec;
		  Contacto assignAsCargo helisec;
 };
entonces las Ias Van hasta el punto dado llamado FIN y sigue Dando MISSING {


Justo antes de cortarme las venas, solte el cuchillo y cree una mision simple, 3 unidades llamadas buzo1 (jugador), buzo2 y buzo3... y un activador activado por el Jugador que ejecutase este sencillo script:

Código: Seleccionar todo


while {alive player} do
{
if (!alive buzo2) then {
	hint "El buzo2 No esta vivo";
	}; 
	
if (!alive buzo3) then {
	hint "El el buzo3 No esta vivo";
	}; 
};
y tachaaaaaaaaan MISSING { y se dispara directamente el Hint "El Buzo3 no esta vivo" aun estando vivo y cuando mato al buzo dos no ocurre nada... ¿¿¿¿¿¿¿???????? WTF ¿¿¿¿¿¿¿¿¿¿¿¿??????????? y por supuesto si pongo sleep tiempo k sea da error!! :| y son archovos SQF :S
Última edición por DaRkEdGe el 22 Ago 2013 14:44, editado 1 vez en total.



Avatar de Usuario

Autor del hilo
DaRkEdGe
Nuevo usuario
Nuevo usuario
Mensajes: 21
Registrado: 01 Ene 1970 01:00

#10527

22 Ago 2013 14:43

Porcierto el error que da el sleep es Error Generic Error in Expresion



Avatar de Usuario

Vulcan
Desarrollador FFAA MOD
Desarrollador FFAA MOD
Mensajes: 403
Registrado: 01 Ene 1970 01:00
Clan: www.arma3.es

#10528

22 Ago 2013 14:59

estas muy loco tioooo

copia el script que te he rehecho en post de respuesta que no da ningun error, yo lo he testeado.

otra cosa es que tus unidades no hagan lo que quieres, eso es cuestion de trabajartelo master, echale horas

suerte



Avatar de Usuario

Autor del hilo
DaRkEdGe
Nuevo usuario
Nuevo usuario
Mensajes: 21
Registrado: 01 Ene 1970 01:00

#10529

22 Ago 2013 15:13

K hay vulcan... me da error tb... por eso rehice el mio... :S si no es mucha pega... prueba a testear el ultimo script el de los buzos... a ver si te da el mismo error para descartar que sea algo de mi maquina please...



Avatar de Usuario

Vulcan
Desarrollador FFAA MOD
Desarrollador FFAA MOD
Mensajes: 403
Registrado: 01 Ene 1970 01:00
Clan: www.arma3.es

#10530

22 Ago 2013 15:50

Querido Dark,
ese ultimo script no lo puedes lanzar asi, en el momento que muera la unidad saltara permanentemente el hint y vas a volver locos a tus colegas.
Por otra parte funciona bien.
lo dicho en el post anterior curratelo y traenos la mision terminada xdd suerte



Avatar de Usuario

Autor del hilo
DaRkEdGe
Nuevo usuario
Nuevo usuario
Mensajes: 21
Registrado: 01 Ene 1970 01:00

#10533

23 Ago 2013 13:43

Vale ya esta arreglado...Todos los scripts estan bien... el problema no era el script... el problema es que llevo mil años sin editar y estaba lanzando los scripts como

Código: Seleccionar todo

[] exec "script.sqf"
en vez de:

Código: Seleccionar todo

0=execVM "script.sqf"
que fallo de capullo señor... :S perdon por las molestias... Imagen Imagen Imagen Imagen
Aun asi mil gracias tio que siempre estas ahi dando el callo pa exar una mano ;)

Y porcierto el de los buzos era solo para localizar e fallo en si no es de la mision...

gracias por todo compi!!!



Responder Tema anteriorTema siguiente
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje
  • PROBLEMA APEX
    por ELMANRIS » 17 Mar 2017 11:52 » en Soporte tecnico Arma III
    2 Respuestas
    373 Vistas
    Último mensaje por ELMANRIS
    17 Mar 2017 13:14
  • Problema de micro saltos
    por er_pinto » 09 Ago 2017 10:32 » en Soporte tecnico Arma III
    4 Respuestas
    197 Vistas
    Último mensaje por jovechiere
    10 Ago 2017 04:17
  • Problema con las insignias en unos uniformes custom
    por Kile467 » 27 Oct 2017 17:23 » en Addons
    3 Respuestas
    161 Vistas
    Último mensaje por Kile467
    29 Oct 2017 14:32

Volver a “Scripting”

  • Información
  • ¿Quién está conectado?

    Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado