J'espère que cela vous convient Sir camille.
Je ne suis pas scripteur, je l'admet et pour ce script, je me suis largement inspirée (quasiment copié-collé) le script de pumpkings, à cette adresse:
http://pumpkin.ringard.org/arma/
(le script est " Ravitaillement 2 ")
Voici pour mes sources, pour le script voici mon adaptation:
Il faut une caisse de munition (celle que vous voulez) nommé
"munition" et créer le dossier (comme moi "parachute scripts") ou bien renommé l'accès du script dans le déclencheur ou l'addaction.
Code : Tout sélectionner
/*
Fait par =[TTK]= Yourry
Plus d'infos sur le script:
https://www.team-ttk.fr/edition-arma2-f16/parachutage-de-munitions-t898.html#p6386
*/
if (player != leader group player) exitwith {hint "Vous n'êtes pas autoriser à larguer la caisse de munition !\nSeul le leader du groupe peut le faire"};
_largpos = getpos leader group player;
_supply = munition;
_chute = _this select 0;
_caller = _this select 1;
_id = _this select 2;
// Création du parachute
_paratype = "ParachuteBigWest";
if (_supply isKindOf "Static") then { _paratype = "ParachuteMediumWest" };
_para = _paratype createvehicle _largpos;
_para setpos [_largpos select 0, _largpos select 1, _largpos select 2];
_para setcaptive true;
_para allowDammage false;
// Attente afin de laisser le temps à l'avion d'avancer un peu
sleep 0.1;
// La Commande AttachTo ne fonctionne pas si le vehicle à attacher est trop éloigné.
// Détermination d'une position SOUS le parachute et téléportation du vehicle
_baspara = ((boundingBox _para select 0) select 2);
waituntil{(getpos _para select 2) > 0};
sleep 0.1;
_distmini = abs _baspara + 0.2;
// Bug dans ArmA2 : après attachTo, l'accés aux caisses de munition est impossible, donc
// création temporaire d'objet identique et déplacement de l'original sur position finale
_utype = format ["%1",typeof _supply];
_newsupply = _utype createvehicle [0,0,0];
// tant que le parachute est au-dessus de 5m (évite tremblement de l'objet), boucler
while { (getpos _para select 2) > 5 } do
{
_alt = getpos _para select 2;
// Correction bug de la commande AttachTo, qui n'accroche pas : vérification multiple, si objet reste au sol, (re)faire l'accroche
if ((getpos _newsupply select 2) < 1) then {
//_alt = (getpos _para select 2) - _distmini;
_newsupply setpos [(getpos _para select 0), (getpos _para select 1), _alt];
_newsupply attachTo [_para,[0,0,0]];
};
sleep 0.05;
};
detach _newsupply;
_finalpos = [(getpos _newsupply select 0), (getpos _newsupply select 1), 0];
deletevehicle _newsupply;
_supply setpos [_largpos select 0, _largpos select 1, 0];
_chute removeAction _id;
Comment il fonctionne ?
Pour lancer le script, deux solutions soit via un addaction, à mettre dans l'init du véhicule où le joueur est présent pour le largage via le menu action:
Code : Tout sélectionner
this addAction ["<t color='#E78A11'> Largage munition</t>", "Parachute scripts\chute_caisse.sqf"]
ou bien via un déclencheur pour le lancement automatique:
Attention pour cette dernière possibilité, il faut le script suivant:
Code : Tout sélectionner
/*
Fait par =[TTK]= Yourry
Plus d'infos sur le script:
https://www.team-ttk.fr/edition-arma2-f16/parachutage-de-munitions-t898.html#p6386
*/
if (player != leader group player) exitwith {hint "Vous n'êtes pas autoriser à larguer la caisse de munition !\nSeul le leader du groupe peut le faire"};
_largpos = getpos leader group player;
_supply = munition;
// Création du parachute
_paratype = "ParachuteBigWest";
if (_supply isKindOf "Static") then { _paratype = "ParachuteMediumWest" };
_para = _paratype createvehicle _largpos;
_para setpos [_largpos select 0, _largpos select 1, _largpos select 2];
_para setcaptive true;
_para allowDammage false;
// Attente afin de laisser le temps à l'avion d'avancer un peu
sleep 0.1;
// La Commande AttachTo ne fonctionne pas si le vehicle à attacher est trop éloigné.
// Détermination d'une position SOUS le parachute et téléportation du vehicle
_baspara = ((boundingBox _para select 0) select 2);
waituntil{(getpos _para select 2) > 0};
sleep 0.1;
_distmini = abs _baspara + 0.2;
// Bug dans ArmA2 : après attachTo, l'accés aux caisses de munition est impossible, donc
// création temporaire d'objet identique et déplacement de l'original sur position finale
_utype = format ["%1",typeof _supply];
_newsupply = _utype createvehicle [0,0,0];
// tant que le parachute est au-dessus de 5m (évite tremblement de l'objet), boucler
while { (getpos _para select 2) > 5 } do
{
_alt = getpos _para select 2;
// Correction bug de la commande AttachTo, qui n'accroche pas : vérification multiple, si objet reste au sol, (re)faire l'accroche
if ((getpos _newsupply select 2) < 1) then {
//_alt = (getpos _para select 2) - _distmini;
_newsupply setpos [(getpos _para select 0), (getpos _para select 1), _alt];
_newsupply attachTo [_para,[0,0,0]];
};
sleep 0.05;
};
detach _newsupply;
_finalpos = [(getpos _newsupply select 0), (getpos _newsupply select 1), 0];
deletevehicle _newsupply;
_supply setpos [_largpos select 0, _largpos select 1, 0];
/!\ La caisse de munition apparaît à l'endroit où se trouve le chef de groupe dans l'équipe lors du largage donc si la caisse est largué à un instant T et que le l'on s'éjecte plus tard, la route risque d'être longue....