Français Solved Comment autoriser les civils à bouger quelqu'un menotté avec Restrain System

12/4/20
16
1
250
Bonjour,

Avec le script Restrain System, j'aimerai que les civils qui attache quelqu'un puisse être capable de les bouger à la manière des policiers avec le bouton escorter (pour prendre le civil et le bouger ou l'on souhaite) et le bouton Embarquer (pour embarquer la personne dans le véhicule).

Merci d'avance :D
 
Salut !

Est-ce que tu as déjà un menu d'intéraction windows en civil ?

Si oui, il faudra que tu créés un nouveau bouton avec ces actions :
Code:
if (player getVariable ["isEscorting",false]) then {
    _Btn1 ctrlSetText localize "STR_pInAct_StopEscort";
    _Btn1 buttonSetAction "[] call life_fnc_stopEscorting; closeDialog 0;";
} else {
    _Btn1 ctrlSetText localize "STR_pInAct_Escort";
    _Btn1 buttonSetAction "[life_pInact_curTarget] call life_fnc_escortAction; closeDialog 0;";
};

_Btn2 ctrlSetText localize "STR_pInAct_PutInCar";
_Btn2 buttonSetAction "[life_pInact_curTarget] call life_fnc_putInCar; closeDialog 0;";
 
Ajoute un fichier nommé fn_civInteractionMenu.sqf :
Code:
#include "..\..\script_macros.hpp"
/*
    File: fn_civInteractionMenu.sqf
    Author: Maxence for The-Programmer Forum
*/
#define Btn1 37450
#define Btn2 37451
#define Btn3 37452
#define Btn4 37453
#define Btn5 37454
#define Btn6 37455
#define Title 37401

disableSerialization;
_curTarget = param [0,objNull,[objNull]];

if (isNull _curTarget) exitWith {closeDialog 0;};
if (!isPlayer _curTarget && side _curTarget isEqualTo civilian) exitWith {closeDialog 0;};
if (player distance _curTarget > 4 ) exitWith {closeDialog 0;};

if (!dialog) then {
    createDialog "pInteraction_Menu";
};

_display = findDisplay 37400;
_Btn1 = _display displayCtrl Btn1;
_Btn2 = _display displayCtrl Btn2;
_Btn3 = _display displayCtrl Btn3;
_Btn4 = _display displayCtrl Btn4;
_Btn5 = _display displayCtrl Btn5;
_Btn6 = _display displayCtrl Btn6;
life_pInact_curTarget = _curTarget;

if (player getVariable ["isEscorting",false]) then {
    _Btn1 ctrlSetText localize "STR_pInAct_StopEscort";
    _Btn1 buttonSetAction "[] call life_fnc_stopEscorting; closeDialog 0;";
} else {
    _Btn1 ctrlSetText localize "STR_pInAct_Escort";
    _Btn1 buttonSetAction "[life_pInact_curTarget] call life_fnc_escortAction; closeDialog 0;";
};

_Btn2 ctrlSetText localize "STR_pInAct_PutInCar";
_Btn2 buttonSetAction "[life_pInact_curTarget] call life_fnc_putInCar; closeDialog 0;";

_Btn3 ctrlShow false;
_Btn4 ctrlShow false;
_Btn5 ctrlShow false;
_Btn6 ctrlShow false;

Dans ton Functions.hpp ajoute la nouvelle fonction :
Code:
class civInteractionMenu {};

Dans ton fn_actionKeyHandler.sqf, trouve :
Code:
if ((_curObject getVariable ["restrained",false]) && !dialog && playerSide isEqualTo west) then {
    [_curObject] call life_fnc_copInteractionMenu;
};
et ajoute en-dessous :
Code:
if (!dialog && playerSide isEqualTo civilian) then {
    [_curObject] call life_fnc_civInteractionMenu;
};

Dis-moi si ça fonctionne :)
 
Salut,

J'ai testé, alors quand on escorte quelqu'un on est pas capable d'arrêter l'escorte et quand on embarque la personne dans le véhicule on ne pas la sortir
 
Est-ce que la personne que tu as escorté est bien un civil ?

Pour sortir la personne du véhicule, dans ton fn_vInteractionMenu.sqf trouve cette ligne _Btn4 ctrlShow false; et remplace la par :
Code:
_Btn4 ctrlSetText localize "STR_vInAct_PullOut";
_Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction; closeDialog 0;";
if (crew _curTarget isEqualTo []) then {_Btn4 ctrlEnable false;};
 
Oui la personne escorté est un civil et je n'arrive pas en appuyant de nouveau sur la touche à arrêter l'escorte. Sinon pour sortir les passager ça fonctionne mais j'aimerai faire en sorte que lorsque le passager est dans le véhicule non menotté ou quand la voiture est fermé que personne ne puisse le sortir
 
Dans la modification que je t'ai donnée juste au dessus met à la place de la dernière (3ème) ligne :
Code:
if ((crew _curTarget isEqualTo []) && ((locked _curTarget) != 2)) then {_Btn4 ctrlEnable false;};
Pour arrêter l'escorte, est-ce que ça fonctionne en policier ?