Перейти к содержимому

DustBlue IPB Skin by CodeGame Networks

Смена оружия из рюкзака


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 metiss

metiss

    Администратор

  • Администраторы
  • 49 сообщений

Отправлено 13 октября 2014 - 04:47

Данный скрипт позволит вам быстро доставать оружие из рюкзака

1. Скачиваем архив.Прикрепленный файл  addons.zip   1,82К   151 Количество загрузок:
2. Распаковываем папку addons в корневую папку миссии.
3. Открываем файл init.sqf, в самый низ прописываем:
//T-Max. Смена оружия из рюкзака
if (!isDedicated) then {
execVM "addons\switch_weapon\init.sqf";
};
4.ЕСЛИ у Вас infistar, то переходите к п. 5. ЕСЛИ у Вас другой античит, то переходите к п. 6. ЕСЛИ у Вас нет античита, то переходите к п. 7.

5. У Вас infistar. Скрипт не слабо так конфликтует с ним: когда меняешь оружие, иногда, оно исчезает. Укротим строптивого:

СПОСОБ 1.
Ставим переменную '_RAI' на false. Таким образом, у игроков не будет отбираться оружие, которое появилось "неизвестно откуда". Также это является ослаблением защиты сервера, поэтому...

СПОСОБ 2.
Открываем AH.sqf (ДА-ДА, сейчас будем переписывать infistar), ищем следующий блок кода:

if (_RAI) then
{
{
[_x] spawn {
_y = _this select 0;
for '_i' from 0 to ({_x == _y} count (weapons player)) do {player removeWeapon _y;};
player removeMagazines _y;
for '_w' from 0 to 10 do {uiSleep 0.1;player removeWeapon _y;player removeMagazines _y;};
};
} forEach _ItemsAdded;
};
У меня (на данный момент, последняя версия) это строка 1826. И заменяем ВЕСЬ БЛОК на следующий:

if (_RAI) then
{
_tmaxArr = player getVariable ["tmax_weapons", []];
{
if (!(_x in _tmaxArr)) then {
[_x] spawn {
_y = _this select 0;
for '_i' from 0 to ({_x == _y} count (weapons player)) do {player removeWeapon _y;};
player removeMagazines _y;
for '_w' from 0 to 10 do {uiSleep 0.1;player removeWeapon _y;player removeMagazines _y;};
};
};
} forEach _ItemsAdded;
};

А теперь поясню, что мы сделали. Есть в инфистаре такое понятие, как "плохие" предметы. Это те, которые взялись из ниоткуда. Мы добавили условие, что если "плохой" предмет - это один из тех, которые добавлены моим скриптом, то запрещаем его удалять.
Также скрипт использует функцию "setVariable". К сожалению, у меня нет возможности протестировать, но если будет банить BE, то потребуется добавить переменную "tmax_weapons" в фильтр (Battleye\setvariable.txt).

6. Если у Вас другой античит: вам необходимо проверить на работоспособность. Опять же, "инфистаровская" проблема "плохих предметов" может быть и там. Так что вам придётся поискать самостоятельно, что отключать. Я, к примеру, искал по ключевой фразе "removeWeapon". Было 8 совпадений, и только одно совпадение редактировалось конфигом инфистара (это я про true и false).

7. Настраиваем BE: надо в строку, начинающуюся с 1 "addweapon" добавить !"_backpack addWeaponCargoGlobal [_x, _cnt];"

#2 KristenAwams

KristenAwams

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 27 апреля 2018 - 10:01

Запрета менять нет. Есть случаи когда менять нужно обязательно. Значит если у модели несколько видов оружия, то менять их во время боя можно.

#3 NoNameUltima

NoNameUltima

    Администратор

  • Администраторы
  • 180 сообщений
  • ГородСанкт-Петербург

Отправлено 22 мая 2018 - 02:50

Просмотр сообщенияKristenAwams (27 апреля 2018 - 10:01) писал:

Запрета менять нет. Есть случаи когда менять нужно обязательно. Значит если у модели несколько видов оружия, то менять их во время боя можно.
Ты наркоман?




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных