Автор скрипта: BlackTok[BT] (участник нашего Discord)
Итак. Набросал скрипт проверку и удаления у игрока Тепловизора и прицела с тепловизором.
Первая часть — это сама проверка на наличие тепловизора.
Вторая часть — условие для начала проверки. В моем случае при закрытии инвентаря.
Так же можно сделать при подборе предмета с земли. Либо вообще через while {} do {} (что увеличит нагрузку на сервер) или же как вам больше понравится.
Создаем файл, например teplak.sqf и помещаем в него код проверки:
_player = _this select 0; //список тепловизоров _teplak1 = "NVGogglesB_grn_F"; _teplak2 = "NVGogglesB_blk_F"; _teplak3 = "NVGogglesB_gry_F"; //список прицелов с тепловизором _pricel1 = "optic_Nightstalker"; _items = assignedItems _player; _pricel = (primaryWeaponItems _player) select 2; //проверка тепловизора if (_teplak1 in _items) then { _player unlinkItem _teplak1; hint "Тепловизоры запрещены"; } else { if (_teplak2 in _items) then { _player unlinkItem _teplak2; hint "Тепловизоры запрещены"; } else { if (_teplak3 in _items) then { _player unlinkItem _teplak3; hint "Тепловизоры запрещены"; }; }; }; //проверка прицела с тепловизором if (_pricel1 == _pricel) then { _player removePrimaryWeaponItem _pricel1; hint "Прицелы с тепловизором запрещены"; };
В init.sqf добавляем условие для проверки
sleep 1; fnc_teplak = compile preprocessFile "teplak.sqf"; //запускаем проверку при закрытии инвентаря игроком player addEventHandler ["InventoryClosed", { _player = _this select 0; [_player] call fnc_teplak; }];
Правка от kkcat (участник нашего Discord)
Тот же скрипт, но сделан проще через массив. Массив можно дополнить
_player = _this select 0; //список тепловизоров _twp = ["nvgogglesb_grn_f","nvgogglesb_blk_f","nvgogglesb_gry_f"]; //список прицелов с тепловизором _pricel1 = "optic_Nightstalker"; _items = []; _pricel = (primaryWeaponItems _player) select 2; //проверка тепловизора { _items pushback toLower(_x); } forEach (assignedItems player); { if (_x in _items) exitWith { _player unlinkItem _x; hint "Тепловизоры запрещены"; }; } forEach _twp; //проверка прицела с тепловизором if (_pricel1 == _pricel) then { _player removePrimaryWeaponItem _pricel1; hint "Прицелы с тепловизором запрещены"; };
Обсудить этот метод можно в нашем Discord канале