Script Repostaje en Vuelo

Sección para misiones y edición ArmA III

Moderador: C. Misiones & Noticias

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

Script Repostaje en Vuelo

Mensaje por <A2>Flac0 »

Con la ayuda del compañero AbueloCeboleta he hecho esta sencilla script para repostar en vuelo un caza.



- Coloca un marcador en el mapa con nombre de variable "marker_25" y en nombre de texto "AVIÓN REPOSTAJE" (o el nombre que tu quieras).
- En el archivo init.sqf de la misión pon:

Código: Seleccionar todo

if(isServer) then {
repostaje1=true; publicvariable "repostaje1";};
[] spawn {while{not isnull avion01} do {"Marker_25" setmarkerpos getpos avion01; sleep 5;};
avion01 flyInHeightASL [2000, 2000, 2000];
};
- Crea un archivo SQF con nombre "repostaje.sqf" que contenga esta información:

Código: Seleccionar todo

repostaje1=false; publicvariable "repostaje1";
sleep 0.5;
hint format ["HALCÓN %1!, procediendo a rearme. Mantenga formación y velocidad estable.", name player];




playsound "repostando";

sleep 5;

[
	"<t color='#228B22' size = '3.0'>REARMANDO...</t>",
	safeZoneX+0.71, safeZoneY+safeZoneH-1, 4, 4, 0, 890
] spawn bis_fnc_dynamicText;
sleep 10;

[
	"<t color='#228B22' size = '3.0'>REPOSTANDO...</t>",
	safeZoneX+0.71, safeZoneY+safeZoneH-1, 4, 4, 0, 890
] spawn bis_fnc_dynamicText;
sleep 10;

hint 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.";

vehicle player setdammage 0;
vehicle player setfuel 1;
vehicle player setVehicleAmmo 1;


sleep 60;


repostaje1=true; publicvariable "repostaje1";
- Coloca un avión C130 con nombre de variable "avion01".
En el init del piloto pon (para que el piloto :

Código: Seleccionar todo

this allowFleeing 0;
- Crea un recorrido cíclico en el mapa, mejor si es por encima del agua, así no tiene en cuenta la topografía a la hora de pilotar.
- Configura la velocidad del avión en "Lenta".

En el init de uno de los Waypoint pon (para que el avión de repostaje no se quede sin gasolina):

Código: Seleccionar todo

avion01 setFuel 1;
- Coloca un conjunto de mangueras que salgan del culo del avión. El último trozo de manguera ponle nombre de manguera "manguera1".
En el init de cada manguera pon esta información:

Código: Seleccionar todo

[this, avion01] call Bis_fnc_attachToRelative;
- Coloca un activador en el mapa.
Condición:

Código: Seleccionar todo

vehicle player distance manguera1 < 10
Activación:

Código: Seleccionar todo

if(repostaje1) then {[player] execvm "repostaje.sqf";};
- En el archivo description.ext pon esta línea:

Código: Seleccionar todo

class CfgSounds
{

		class repostando
	{
		name="repostando";
		sound[] = {"media\repostando.ogg", 20, 1, 300};
		titles[] = {};
	};
- Bájate el archivo en formato .OGG (Está en el CANAL RINCÓN DEL EDITOR del TS) y creas una carpeta que se llame "media" y el archivo de audio dentro de la carpeta.
...y sobre todo si bebes no conduzcas.
Imagen

Avatar de Usuario
<A2>Ian
Soldado A2
Soldado A2
Mensajes: 2153
Registrado: 13 Abr 2011, 11:23

Re: Script Repostaje en Vuelo

Mensaje por <A2>Ian »

El ACE en ARMAII lo tenía (repostaje en vuelo).
"Despláceme yo a temperatura anormalmente elevada y demuestre el vulgo su regocijo".

Imagen

Imagen
Imagen Imagen

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

Re: Script Repostaje en Vuelo

Mensaje por <A2>Pescadorr »

Esta bien, yo le pondria una condicion de que se mantuviera a esa distancia para repostarlo poco a poco, con pasar cerca e irte te reposta e remuniciona entero y eso no tiene merito. Yo lo plantearia desde esa condicion.
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


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

Re: Script Repostaje en Vuelo

Mensaje por <A2>Flac0 »

<A2>Pescadorr escribió: 06 Ene 2022, 22:19 Esta bien, yo le pondria una condicion de que se mantuviera a esa distancia para repostarlo poco a poco, con pasar cerca e irte te reposta e remuniciona entero y eso no tiene merito. Yo lo plantearia desde esa condicion.
Venga Dr.Fisherman ¿cómo hago esa magia oscura?. ¿Cuál es la receta secreta?
Imagen

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

Re: Script Repostaje en Vuelo

Mensaje por <A2>Pescadorr »

<A2>Flac0 escribió: 06 Ene 2022, 22:24
<A2>Pescadorr escribió: 06 Ene 2022, 22:19 Esta bien, yo le pondria una condicion de que se mantuviera a esa distancia para repostarlo poco a poco, con pasar cerca e irte te reposta e remuniciona entero y eso no tiene merito. Yo lo plantearia desde esa condicion.
Venga Dr.Fisherman ¿cómo hago esa magia oscura?. ¿Cuál es la receta secreta?
recojo el guante...
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>Pescadorr
Soldado A2
Soldado A2
Mensajes: 6570
Registrado: 09 Sep 2011, 03:28

Re: Script Repostaje en Vuelo

Mensaje por <A2>Pescadorr »

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:
  • coloca un avion C-130 o un VX BLACKFISH en el aire y ponle una ruta ciclica en el mar.
  • en el init del avion pon esto:

    Código: Seleccionar todo

    null = [this, true] execVM "repostar.sqf";
  • 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
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


Conectado
Avatar de Usuario
<A2>AbueloCeboleta
Soldado A2
Soldado A2
Mensajes: 1658
Registrado: 03 Sep 2018, 23:24

Re: Script Repostaje en Vuelo

Mensaje por <A2>AbueloCeboleta »

<A2>Pescadorr escribió: 08 Ene 2022, 18:42 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:

(...)
El maestro Doctor Fisherman.

Imagen
« HACIA EL ENEMIGO » - Inscripción de la mina M18 Claymore.

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

Re: Script Repostaje en Vuelo

Mensaje por <A2>Flac0 »

Maravilloso Dr. Fisherman. Funciona de 10
Imagen

Responder