Aqui os paso el que he hecho basandome en lo que teniais.
Es un script
serverside que solo ejecuta el servidor.
Para ejecutar este script es simple:
- 1º coloca un avion C-130 o un VX BLACKFISH en el aire y ponle una ruta ciclica en el mar.
- 2ºen el init del avion pon esto:
- 3º declara el audio de flaco EN EL DESCRIPTION.EXT:
Código: Seleccionar todo
class CfgSounds
{
sounds[] = {};
class repostando
{
name="repostando";
sound[] = {"repostando.ogg", 20, 1, 300};
titles[] = {};
};
};
parametros de la ejecucion:
objeto --> avion que ejecuta el script
bool --> true o false, si deseas que el avion se enganche automaticamente y reposte cuando te aproximes. En false tendras que mantenerte detras hasta ternimar el repostaje.
Y este es el script:
Código: Seleccionar todo
/* Script by <A2>Pescadorr para GRUPO ARMADOS.
Es un script server side que solo ejecuta el servidor.
Para ejecutar este script coloca un avion C-130 o un VX BLACKFISH en el aire y ponle una ruta en el mar.
en el init del avion pon esto:
null = [this, true] execVM "repostar.sqf";
parametros:
objeto --> avion que ejecuta el script
bool --> true o false, si deseas que el avion se enganche automaticamente y reposte cuando te aproximes. En false tendras que mantenerte detras hasta ternimar el repostaje.
EN EL DESCRIPTION PON ESTO:
class CfgSounds
{
sounds[] = {};
class repostando
{
name="repostando";
sound[] = {"repostando.ogg", 20, 1, 300};
titles[] = {};
};
};
colocas el audio en la carpeta de la mision y listo, eso es todo.
*/
params ["_avion", "_autorepostaje"];
if !(isserver) exitwith {};
null = [_avion] spawn
{
params ["_avion"];
_marcador = createMarker ["gasolinera", getpos _avion,0,player];
_marcador setMarkerType "b_air";
_marcador setMarkerText "AVION REPOSTAJE";
_marcador setMarkerAlpha 1;
waitUntil
{
_marcador setmarkerpos getpos _avion;
_avion setfuel 1;
sleep 5;
!alive _avion
};
};
_avion flyInHeightASL [2000, 2000, 2000];
_avion forceSpeed 500; //no funciona con los wp
_manguera = "Land_Rope_F" createvehicle [0,0,0];
_manguera setpos getpos _avion;
_manguera setVectorDirAndUp [[(vectordir _avion select 0),0, -0.43], [0,1,1]];
_manguera attachTo [_avion, [0, -18, -4]];
_manguera setVectorDirAndUp [[0,0,-0.5], [0,1,1]];
// _manguera = ropeCreate [_avion, [0,-15,-4], objNull, [0,0,0], 30];
if (_autorepostaje) then
{
waituntil
{
{
_relativespeed = abs(speed vehicle _x) - (speed _avion);
if (isplayer _x && vehicle _x iskindof "air" && vehicle _x distance _avion < 45 && _relativespeed < 10 && fuel vehicle _x < 0.96) then
{
_texto = format ["HALCÓN %1!, procediendo a repostado. Mantenga formación y velocidad estable.", name _x];
[_texto] remoteexec ["hint", _x];
(vehicle _x) attachTo [_avion, [0, -45, -3]];
["repostando"] remoteexec ["playsound",_x];
sleep 5;
[
"<t color='#228B22' size = '1.0'>REPOSTANDO...</t>",
safeZoneX+0.71, safeZoneY+safeZoneH-1, 4, 4, 0, 890
] remoteexec ["bis_fnc_dynamicText", _x];
null = [_x] spawn
{
params ["_cliente"];
waituntil
{
_gasoil = ((round (100 * fuel vehicle _cliente)) + 3) /100;
[vehicle _cliente, _gasoil] remoteexec ["setfuel", _cliente];
sleep 1;
fuel vehicle _cliente >= 0.96
};
_texto = parseText "<t color='#FF0000' size='2' shadow='1' shadowColor='#000000' align='center'>DESCONECTADO</t><br/><t align='center' color='#FF00FF'>-----------------------------------------------------</t><br/><br/><t align='center' color='#FFFFFF'>Está listo HALCÓN, buena suerte ahí arriba.";
[_texto] remoteexec ["hint", _cliente];
detach (vehicle _cliente);
};
};
} foreach playableUnits; //en el editor poner allunits
sleep 2;
!alive _avion;
};
} else
{
waituntil
{
{
_relativespeed = abs(speed vehicle _x) - (speed _avion);
if (isplayer _x && vehicle _x iskindof "air" && vehicle _x distance _avion < 55 && _relativespeed < 15 && fuel vehicle _x < 0.96) then
{
[""] remoteexec ["hint", _x];
//_manguera = ropeCreate [_avion, [0,-15,-4], vehicle _x, [0,0,0], 50];
//[vehicle _x, [0,0,0], [0,0,-1]] ropeAttachTo _manguera;
sleep 5;
_texto = parseText "<t color='#FF0000' size='2' shadow='1' shadowColor='#000000' align='center'>CONECTADO</t><br/><t align='center' color='#FF00FF'>-----------------------------------------------------</t><br/><t color='#00FF0' size='2' shadow='1' shadowColor='#000000' align='center'>REPOSTANDO</t>";
[_texto] remoteexec ["hint", _x];
null = [_x, _avion] spawn
{
params ["_cliente", "_avion"];
_relativespeed = abs(speed vehicle _cliente) - (speed _avion);
while {(vehicle _cliente distance _avion < 55 && _relativespeed < 10 )|| fuel vehicle _cliente >= 0.96} do
{
_relativespeed = abs(speed vehicle _cliente) - (speed _avion);
_gasoil = ((round (100 * fuel vehicle _cliente)) + 3) /100;
[vehicle _cliente, _gasoil] remoteexec ["setfuel", _cliente];
sleep 1;
};
waituntil {sleep 10;(vehicle _cliente distance _avion > 55 || _relativespeed > 10 )|| fuel vehicle _cliente >= 0.96};
_texto = parseText "<t color='#FF0000' size='2' shadow='1' shadowColor='#000000' align='center'>DESCONECTADO</t><br/><t align='center' color='#FF00FF'>-----------------------------------------------------</t>";
[_texto] remoteexec ["hint", _cliente];
//(vehicle _x) ropeDetach _manguera;
//ropeDestroy _manguera;
};
};
} foreach playableUnits; //en el editor poner allunits
sleep 2;
!alive _avion;
};
};
Os dejo una mision de prueba con el audio y todo.
https://drive.google.com/file/d/1LrvGYU ... sp=sharing