Je sollicite de l’aide pour un script, que je n’arrive pas à faire.
Je voudrais simplement qu’un véhicule, un scud, soit lourdement blindé (le but est qu’il faut plusieurs tir de missiles pour le détruire)
Cependant, il faut aussi qu’une seule charge de sacoche puisse le détruire.
J’ai copié une bonne partie du script des évos pour la destruction via la charge en sacoche, en revanche c'est pour les tirs de missile que cela bloque.
J'ai bien vu un post qui pourrait me servir pour "limiter la puissance" des missiles, en utilisant cet event handler:
http://www.cfr-arma.net/forum/viewtopic ... w=previous
Mais je n'arrive pas à l'inclure dans mon script.
J’ai déjà une base de script (qui fonctionne mais n'est pas complète car actuellement un missile détruit le scud) mais cela peut, peut être, vous servir. J'ai mit aussi en bas l'envent handler mais il fonctionne pas.
Merci pour votre aide
Code : Tout sélectionner
//Original by Xeno
//Modifier par [TTK] Yourry
//Le script est appellé par l'init du véhicule en question
// nul=[this]execVM"nomduscript.sqf";
// Renvoi l'objet qui appel le scrit
_obj = _this select 0;
//Réistance du scud (plus cette valeur et haute, plus celui-ci est blindé)
_blind = 0.01;
while {alive _obj} do {
//retourne la valeur de la santé du scud
_degats = getdammage _obj;
hint format ["degats %1, _blind %2",_degats,_blind];//infos
//vérifie que le scud a été endommagé
if(_degats >_blind) then
{
//on force la valeur des dégats à 0.01 à chaque fois que le scud est abîmé
_x =(1-(1-_blind));
_obj setdamage _x;
_blind = _blind + 0.01;
};
//Section qui permet de détruire le scud avec une saccoche
_bomb = (getPos _obj nearObjects ["PipeBomb",10]) select 0;
if(not isNull _bomb) then
{
//latk = (_bomb nearObjects ["Man",10]) select 0;
latk = nearestObject [_bomb, "Man"];
//WaitUntil {not alive latk or isNull _bomb};
if(isNull _bomb) then
{
_obj setDamage 1;
};
if((not alive latk) and (not isNull _bomb)) then {deletevehicle _bomb; latk = objNull};
};
sleep 0.1;
//Sort de la boucle et donc du script si le scud est détruit
if (!alive _obj) then {exitWith};
};
/*
_obj addEventHandler["HandleDamage",{
_level = _this select 2;
if ((_level > 0.001) && (_level < 0.5)) then {
//on force la valeur des dégats à 0.01 à chaque fois que le scud est abîmé
_x =(1-(1-_blind));
_obj setdamage _x;
//Permet de conserver l'état du scud lors des précédents dégâts
_blind = _blind + 0.01;
};
}];
/*