• Страница 1 из 1
  • 1
Форум » Мастерская » В помощь картоделу » Скрипты » Закрытие рюкзаков
Закрытие рюкзаков
Kurt
Пятница, 20.05.2016, 21:22
1
Оффлайн
Участник сообщества
Я на самом деле немного удивлён, что такое не было ещё реализовано)
Тут делается запрос на доступ к рюкзаку.
Можно посылать запрос один раз в 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"
Сообщение отредактировал Kurt212 - Воскресенье, 19.06.2016, 15:35

Закрытие рюкзаков
Проверка поля зрения юнита
Kurt's survival system
 
SWEN
Суббота, 21.05.2016, 00:59
2
Оффлайн
Участник сообщества
Цитата Kurt212 ()
Вот код
Большое спасибо курт)

"Умом Россию не понять, Аршином общим не измерить: У ней особенная стать – В Россию можно только верить." Ф. И. Тютчев.
 
Morkontar
Суббота, 21.05.2016, 08:36
3
Оффлайн
Руководитель RBC
Командир отряда
Скрипт офигенный...только есть проблема...он действует и на ящики в том числе. Т.е. при попытке заглянуть в любой ящик, предлагает дождаться пока ящик тебе разрешение даст. Сколько ни ждал, ни один ящик не дал разрешения...вот такие у нас ящики в Зоне, скупые и жадные.

Пока выпилил скрипт, жду фикса.

 
Kurt
Суббота, 21.05.2016, 13:01
4
Оффлайн
Участник сообщества
Всё, исправил)
Теперь ящики не будут больше жадничать

Закрытие рюкзаков
Проверка поля зрения юнита
Kurt's survival system
 
ELvis
Суббота, 21.05.2016, 13:02
5
Оффлайн
Пользователь
А вы тестили на трупах? от них тоже надо ждать разрешения?
Винтовка конечно хорошо, но пулемёт зажал и забыл.
 
Kurt
Суббота, 21.05.2016, 13:04
6
Оффлайн
Участник сообщества
Цитата ELvis ()
А вы тестили на трупах? от них тоже надо ждать разрешения?
У трупов и ботов разрешения не надо спрашивать

Закрытие рюкзаков
Проверка поля зрения юнита
Kurt's survival system
 
Kurt
Суббота, 18.06.2016, 23:52
7
Оффлайн
Участник сообщества
Апдейт

Исправил баг, когда делался запрос, если вы открыли свой собственный инвентарь

Закрытие рюкзаков
Проверка поля зрения юнита
Kurt's survival system
 
Форум » Мастерская » В помощь картоделу » Скрипты » Закрытие рюкзаков
  • Страница 1 из 1
  • 1
Поиск:


Правила чата
Мини-чат
+Мини-чат
0