// Dans le fichier initPlayerLocal.sqf ou tout autre endroit approprié
// Définir la fonction exécutée lorsque l'action est sélectionnée
fnc_putClothingOn = {
private ["_target"];
// Récupérer le joueur cible de l'action
_target = _this select 0;
// Mettre le vêtement (cagoule) sur le joueur cible
// Remplacez "cagoule" par le nom de votre vêtement
_target addHeadgear "cagoule";
};
// Ajouter l'action à tous les joueurs
{
if (local _x) then {
// Remplacez "Mettre la cagoule" par le texte souhaité pour l'action
_x addAction ["Mettre la cagoule", {[_this select 0] call fnc_putClothingOn}];
}
} forEach playableUnits;
fnc_putClothingOn = {
private ["_target"];
// Récupérer le joueur cible de l'action
_target = _this select 0;
// Mettre le vêtement (cagoule) sur le joueur cible - Remplacez "cagoule" par le nom de votre vêtement
_target addHeadgear "mgsr_headbag_goggles";
};
{
if !("mgsr_headbag_goggles" in (items player)) exitWith {hint "Tu n'as pas de sac"};
if (local _x) then {
// Remplacez "Mettre la cagoule" par le texte souhaité pour l'action
_x addAction ["Mettre le sac", {[_this select 0] call fnc_putClothingOn}];
}
if ((cameraView == "External") && ((vehicle player) == player)) then {
player switchCamera "Internal";
};
sleep 0.2;
} forEach playableUnits;
life_actions pushBack (player addAction["Mettre la cagoule",life_fnc_bagAction,"",0,false,false,"",'
!isNull cursorObject && player distance cursorObject < 3.5 && isPlayer cursorObject && cursorObject getVariable "restrained" && !cursorObject getVariable "haveBag");
life_actions pushBack (player addAction["Retirer la cagoule",life_fnc_bagAction,"",0,false,false,"",'
!isNull cursorObject && player distance cursorObject < 3.5 && isPlayer cursorObject && cursorObject getVariable "restrained" && cursorObject getVariable "haveBag");
private ["_target"];
_target = cursorObject;
_bagItem = "mgsr_headbag_goggles";
//Error checks
if (isNull _target) exitWith {};
if (!isPlayer _target) exitWith {};
_targetHaveBag = _target getVariable "haveBag";
if (!_targetHaveBag || isNil "_targetHaveBag") then {
_getLastItem = headgear _target;
_target addHeadgear _bagItem;
_target setVariable ["haveBag",true];
titleCut ["", "BLACK FADED", 999];
_target setVariable ["lastItemBeforeBag",_getLastItem];
} else {
_getLastItem = _target getVariable "lastItemBeforeBag";
_target addHeadgear _getLastItem;
_target setVariable ["haveBag",false];
titlecut ["","BLACK IN",2];
_target setVariable ["lastItemBeforeBag", ""];
};
class bagAction {};
Merci pour tout ces renseignement, je vais tester et je te redis , tu sais si on peut forcer la personne qui se retrouve avec la cagoule pour qu'elle soit à la première personne pour avoir la vision cagoule ?Bonjour, va dans "Altis_Life.Altis/core/fn_setupActions.sqf" puis ajoute ceci dans case civilian :
Code:life_actions pushBack (player addAction["Mettre la cagoule",life_fnc_bagAction,"",0,false,false,"",' !isNull cursorObject && player distance cursorObject < 3.5 && isPlayer cursorObject && cursorObject getVariable "restrained" && !cursorObject getVariable "haveBag"); life_actions pushBack (player addAction["Retirer la cagoule",life_fnc_bagAction,"",0,false,false,"",' !isNull cursorObject && player distance cursorObject < 3.5 && isPlayer cursorObject && cursorObject getVariable "restrained" && cursorObject getVariable "haveBag");
Puis, créer un fichier nomée = "fn_bagAction" dans "Altis_Life.Altis/core/actions/" et dedans met :
Code:private ["_target"]; _target = cursorObject; _bagItem = "mgsr_headbag_goggles"; //Error checks if (isNull _target) exitWith {}; if (!isPlayer _target) exitWith {}; _targetHaveBag = _target getVariable "haveBag"; if (!_targetHaveBag || isNil "_targetHaveBag") then { _getLastItem = headgear _target; _target addHeadgear _bagItem; _target setVariable ["haveBag",true]; titleCut ["", "BLACK FADED", 999]; _target setVariable ["lastItemBeforeBag",_getLastItem]; } else { _getLastItem = _target getVariable "lastItemBeforeBag"; _target addHeadgear _getLastItem; _target setVariable ["haveBag",false]; titlecut ["","BLACK IN",2]; _target setVariable ["lastItemBeforeBag", ""]; };
Enfin, dans "Altis_Life.Altis/Functions.hpp", ajoute dans la class Actions à la fin (après "class unrestrain {};") ceci :
Code:class bagAction {};
Tiens moi au courant si cela fonctionne, je n'ai pas pu l'essayer.
Ca fera l'affaire pour le test mais c'était pour savoir vu qu'il y a une vision "cagoule" quand on l'a sur la tête à la première personneLà je t'ai mis un écran noir lorsqu'elle as la cagoule. Je sais pas si ca te convient ?
[player] remoteExecCall ["life_fnc_bagVision",_target];
Après test, je n'est pas d'intéraction quand je suis devant la personne menottée avec une cagoule sur moiBonjour, va dans "Altis_Life.Altis/core/fn_setupActions.sqf" puis ajoute ceci dans case civilian :
Code:life_actions pushBack (player addAction["Mettre la cagoule",life_fnc_bagAction,"",0,false,false,"",' !isNull cursorObject && player distance cursorObject < 3.5 && isPlayer cursorObject && cursorObject getVariable "restrained" && !cursorObject getVariable "haveBag"); life_actions pushBack (player addAction["Retirer la cagoule",life_fnc_bagAction,"",0,false,false,"",' !isNull cursorObject && player distance cursorObject < 3.5 && isPlayer cursorObject && cursorObject getVariable "restrained" && cursorObject getVariable "haveBag");
Puis, créer un fichier nomée = "fn_bagAction" dans "Altis_Life.Altis/core/actions/" et dedans met :
Code:private ["_target"]; _target = cursorObject; _bagItem = "mgsr_headbag_goggles"; //Error checks if (isNull _target) exitWith {}; if (!isPlayer _target) exitWith {}; _targetHaveBag = _target getVariable "haveBag"; if (!_targetHaveBag || isNil "_targetHaveBag") then { _getLastItem = headgear _target; _target addHeadgear _bagItem; _target setVariable ["haveBag",true]; titleCut ["", "BLACK FADED", 999]; _target setVariable ["lastItemBeforeBag",_getLastItem]; } else { _getLastItem = _target getVariable "lastItemBeforeBag"; _target addHeadgear _getLastItem; _target setVariable ["haveBag",false]; titlecut ["","BLACK IN",2]; _target setVariable ["lastItemBeforeBag", ""]; };
Enfin, dans "Altis_Life.Altis/Functions.hpp", ajoute dans la class Actions à la fin (après "class unrestrain {};") ceci :
Code:class bagAction {};
Tiens moi au courant si cela fonctionne, je n'ai pas pu l'essayer.
Et j'utilise le "Restrain System" ca ne change rien dans l'appellation du menottage ?Après test, je n'est pas d'intéraction quand je suis devant la personne menottée avec une cagoule sur moi
Il y a des variables à changer dans le bagAction à part le nom de l'objet ?
life_actions pushBack (player addAction["Mettre la cagoule",life_fnc_bagAction,"",0,false,false,"",'
!isNull cursorObject && player distance cursorObject < 3.5 && isPlayer cursorObject && cursorObject getVariable "restrained" && (!cursorObject getVariable "haveBag" || isNil "cursorObject getVariable ""haveBag"""));
life_actions pushBack (player addAction["Mettre la cagoule",life_fnc_bagAction,"",0,false,false,"",'
(!(isNull cursorObject) && (player distance cursorObject < 3.5) && (isPlayer cursorObject) && (cursorObject getVariable ["restrained",false]) && !(cursorObject getVariable ["haveBag",false]))']);
life_actions pushBack (player addAction["Retirer la cagoule",life_fnc_bagAction,"",0,false,false,"",'
(!(isNull cursorObject) && (player distance cursorObject < 3.5) && (isPlayer cursorObject) && (cursorObject getVariable ["restrained",false]) && (cursorObject getVariable ["haveBag",false]))']);
_targetHaveBag = _target getVariable "haveBag";
_targetHaveBag = _target getVariable ["haveBag",false];