Pongo un ejemplo:
Código: Seleccionar todo
a = 0;
b = 2[;
c = a + b;
if (c = 3) then
{
funcion que termine de ejecutar el script;
}
else
{
a = 1;
c = a + b;
};
hint "no se cumple nada";
Moderador: C. Misiones & Noticias
Código: Seleccionar todo
a = 0;
b = 2[;
c = a + b;
if (c = 3) then
{
funcion que termine de ejecutar el script;
}
else
{
a = 1;
c = a + b;
};
hint "no se cumple nada";
Código: Seleccionar todo
if (isserver) exitwith
{
noesServer= false;
};
noesServer= true;
Código: Seleccionar todo
waituntil
{
c =4;
....
.....
false
};
c= 6; // la variable c seria igual a 4
Código: Seleccionar todo
waituntil
{
c = 4;
.....
if (b==5) exitwith {};
false
};
c= 6; // la variable c seria igual a 6
Código: Seleccionar todo
if (isserver) exitwith {playeroisgay = false;};
_cam = "camera" camCreate (ASLToAGL eyePos player);
playeroisgay = true;
Código: Seleccionar todo
If (true) exitWith {};
claro, como te he dicho si esta en un bucle sale de el, para salir del script tiene que estar fuera de todo bucle, tiene que estar en la ejecucion principal del script.<A2>Bhelma escribió: ↑19 Mar 2023, 17:36 Es el que estoy usando de esta manera
Pero sale del while y sigue con el script sin salir de él.Código: Seleccionar todo
If (true) exitWith {};
A ver si te veo estos días, y te pongo el script de lo que estoy haciendo, para que entiendas el motivo y me comentes.
No quiero desvelar una cosica para una misión, por eso no lo pongo de momento.
Código: Seleccionar todo
_i=1000;
waituntil
{
hintSilent format ["Te quedan %1 segundos para desactivar la bomba", _i];
_i = _i - 1;
if (bomba_1 getvariable "desactivada") exitwith {};
sleep 1;
_i == 0
};
Código: Seleccionar todo
_i=1000;
waituntil
{
hintSilent format ["Te quedan %1 segundos para desactivar la bomba", _i];
_i = _i - 1;
sleep 1;
_i == 0 || bomba_1 getvariable ["desactivada" , false]
};
Código: Seleccionar todo
// [dron1] execVM "Dron_Granada.sqf"
dron = _this select 0;
_posM = position player;
pilotdron = driver dron;
controlador = position controller; // Unidad enemiga del misma bando que los drones.
// Verificamos si el dron esta vivo (y le ponemos la granada = esto no funciona, sale hacia arriba el dron sin parar)
if (alive dron) then
{
// granada = createSimpleObject ["A3\Weapons_f\ammo\Handgrenade", [0,0,0]];
// granada attachTo [dron, [0,0,-0.15]];
// LLevamos al dron a la posicion de su objetivo
pilotdron domove _posM;
// Que vuele hasta destino y detecte si lo eliminan
// while {prueba distance dron > 75} do
while {player distance dron > 100} do
{
if (!alive dron) then
{
if (true) exitWith {};
};
};
sleep 5;
// Creamos un activador de presencia del dron y creamos que cuando detecte al jugador le coloque una granada.
if (isServer) then
{
_Trigger = createTrigger ["EmptyDetector", getPos prueba, false];
_Trigger setTriggerActivation ["GUER", "PRESENT", false];
_Trigger setTriggerArea [15, 15, getDir this, true];
_Trigger setTriggerStatements
[
"this and dron in thisList",
"_pos = player modelToWorld [0,0,-0.15]; _gren = 'grenade' createvehicle _pos; pilotdron domove controlador;",
""
];
};
while {controller distance dron > 100} do
{
if (!alive dron) then
{
if (true) exitWith {};
};
};
deleteVehicle dron;
};
Código: Seleccionar todo
// [dron1] execVM "Dron_Granada.sqf"
_dron = _this select 0;
_posM = position player;
_pilotodron = driver _dron;
_controlador = position controller;
if (alive dron) then
{
_granada = "HandGrenade" createvehicle [0,0,0];
_granada attachTo [_dron, [0,0,-0.15]];
// LLevamos al dron a la posicion de su objetivo
_pilotdron domove _posM;
Waituntil
{
If (!Alive _dron) exitwith {};
_dron distance2D _posM < 2
};
Detach _granada;
Waituntil {isTouchingGround _granada};
_gren = 'grenade' createvehicle getpos _granada;
Deletevehicle _granada;
_pilotdron domove _controlador;
Waituntil{ _dron distance2D _posM < 2};
Sleep 1;
Deletevehicle _dron;
};
Primera pregunta.<A2>Pescadorr escribió: ↑22 Mar 2023, 12:42 Ok, te adapto el script, entiendo que será para usar en multiplayer, supongo.
Necesito que me aclares unas cositas:
- Este script donde se ejecuta? En el init del dron? En un activador que se ejecuta a voluntad? Un addaction? Explicame exactamente como se ejecuta y todo el proceso.
- _posM = position player;
Esta línea depende como se esté ejecutando el script puede estar mal o no, en principio seria la persona que ejecuta el script, pero luego veo en el script que mandas al dron a su posición, asi que el dron iría encima de uno mismo a matarte, es así?
Nada que ver con el mío...jajajajja<A2>Pescadorr escribió: ↑22 Mar 2023, 13:14En principio seria algo así, a falta de depurarlo y ver detalles, como por ejemplo si la granada detona nada más soltarla, y cosas así.Código: Seleccionar todo
// [dron1] execVM "Dron_Granada.sqf" _dron = _this select 0; _posM = position player; _pilotodron = driver _dron; _controlador = position controller; if (alive dron) then { _granada = "HandGrenade" createvehicle [0,0,0]; _granada attachTo [_dron, [0,0,-0.15]]; // LLevamos al dron a la posicion de su objetivo _pilotdron domove _posM; Waituntil { If (!Alive _dron) exitwith {}; _dron distance2D _posM < 2 }; Detach _granada; Waituntil {isTouchingGround _granada}; _gren = 'grenade' createvehicle getpos _granada; Deletevehicle _granada; _pilotdron domove _controlador; Waituntil{ _dron distance2D _posM < 2}; Sleep 1; Deletevehicle _dron; };
El tema de definir al que le cae la granada es un tema importante, sobretodo en multiplayer, si dos o más activan el script a la vez, dejaría de funcionar. Esto hay que tenerlo muy bien definido.
Yo lo que haría es que el dron volará sobre el enemigo, recargue un par de granadas, vaya hacia el objetivo y se las vaya soltando a la gente encima, y luego vuelva a recarga, así hasta que lo derriben.