Я на самом деле немного удивлён, что такое не было ещё реализовано)
Тут делается запрос на доступ к рюкзаку.
Можно посылать запрос один раз в 10 секунд(можно изменить в Kurt_bpDelay )
Вот код
Код
Kurt_bpTime = time;
Kurt_bpDelay = 10;
// contais UIDs of players with access to your bp
player setVariable ["Kurt_AccessList", [], true];
// the "open bp" action handler
inGameUISetEventHandler [
"Action",
' if (_this select 3 == "OpenBag") then {
_target = cursorTarget;
if ( _target isKindOf "Man"
&& alive _target
&& isPlayer _target
)
then
{
[_target] spawn Kurt_bp_opened;
};
};
false'];
// handles after 'open bp' action
Kurt_bp_opened = {
params ["_target"];
_list = _target getVariable ["Kurt_AccessList", []];
if !( (getPlayerUID player) in _list) then {
if(time - Kurt_bpTime > Kurt_bpDelay) then {
Kurt_bpAccess = [_target, player];
publicVariable "Kurt_bpAccess";
hintSilent "Отправлен запрос!";
Kurt_bpTime = time;
} else {
hintSilent format ["До следующего запроса %1 секунд", floor (Kurt_bpDelay - (time - Kurt_bpTime))];
};
waitUntil { !(isNull (findDisplay 602))}; // because it handles before the dialog is shown
closeDialog 0;
};
};
// public var for bp open access
"Kurt_bpAccess" addPublicVariableEventHandler {
_data = _this select 1;
if((_data select 0) == player) then {
[_data select 1] spawn Kurt_bp_accessAsked;
};
};
// handles when someone asks access to your bp
Kurt_bp_accessAsked = {
params ["_unit"];
_message = format
[
"Игрок под ником <t color='#FF0000'>%1</t> хочет получить доступ к вашему рюкзаку. Разрешить?",
name _unit
];
_result = [_message, "Доступ", "Да", "Нет"] call BIS_fnc_guiMessage;
if(_result) then {
_list = player getVariable ["Kurt_AccessList", []];
if !((getPlayerUID _unit) in _list) then {
_list pushBack (getPlayerUID _unit);
player setVariable ["Kurt_AccessList", _list, true];
};
};
};
Если хотите потестировать с ботами, то удалите 14 строчку
Применение: в init.sqf (или в другом ините)
Код
[] execVM "backPack.sqf"