APTEM_63

Статья
Ящик с пользовательским лутом

39 сообщений в этой теме

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

 

Описание:

Я думаю многие из вас думали или видели где-нибудь тайное место с ящиком в котором будет находится уникальный лут, прописываемый админом.

Так вот я расскажу вам как буквально за несколько минут сделать такой ящик. Главная особенность такого ящика состоит в том, что лут в нем будет возобновлятся после каждого рестарта сервера, будь то костюмы или оружие с патронами.

 

Нам понадобится:

1) Navicat

2) Базовые знания по Navicat

3) Немного мозгов для понимания происходящего

 

 

Инструкция:

1) Заходим в Navicat

2) Ищем таблицу object_data

3) Создаём новую строку в таблице. Так же можно изменить любой другой объект, прописанный в таблице.

3) И видим такие значения как ObjectID, ObjectUID, InstanceClassname, Datestamp, LastUpdate, CharacterID, Worldspace, Inventory, Hitpoints, Fuel, Damage. Начинаем их менять на свои.

4) Заполнялем поля таблицы:

  • ObjectID, ObjectUIDInstance, Datestamp, LastUpdate, CharacterID оставляем без изменений.
  • Classname - меняем например на "USBasicAmmunitionBox_EP1" (Classname коробки можно взять из редактора).
  • Worldspace - меняем координаты на свои (желательно брать координаты так же из базы данных, например позиция игрока. Встали в том месте, где нужна коробка, вышли с сервера, скопировали свою координату и вставили в после для координат ящика).
  • Inventory - меняем содержание на то что хотите чтобы там лежало.
  • Hitpoints - полностью удаляем все что там есть и ставим там "[]"
  • Fuel -  ставим значение "1"
  • Damage - меняем на "0"

Заходим на сервер и любуемся коробкой с теми вещами, что вы туда положили ^_^

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Забронировать это рекламное место


ObjectID, ObjectUID, Instance, Datestamp, LastUpdate, CharacterID оставляем без изменений.

Вот в этом пункте может не всем понятно будет - считаю, что их тоже следует расписать.

 

ObjectID - номер предмета в базе данных - обязателен к заполнению;

ObjectUID - уникальный ИД предмета - обязателен к заполнению (только цифры, произвольное число от 0 до 9999999999999999, главное, что-бы не повторялось с другими предметами БД);

Instance - номер инстанса сервера - обязателен к заполнению;

Datestamp, LastUpdate - дата создания и изменения информации;

CharacterID - здесь указываем 0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну здрасьте...

Этот ящик выж в БД занесете. Он там либо будет постоянно появляться. Либо 1 раз, до его разлома - тут не уверен(не в курсе, удаляется ли из БД сломаный ящик. Думаю что нет).

 

Делайте скриптами, с рандомными координатами респа. - Администратор вас плохому учит) Так делать не надо))

Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну здрасьте...

Этот ящик выж в БД занесете. Он там либо будет постоянно появляться. Либо 1 раз, до его разлома - тут не уверен(не в курсе, удаляется ли из БД сломаный ящик. Думаю что нет).

 

Делайте скриптами, с рандомными координатами респа. - Администратор вас плохому учит) Так делать не надо))

У меня таким способом были ящики сделаны временные. В принципе дело годное, если не хочется лезть и изменять скрипты миссии и нужно, что-бы ящик был постоянно на одном и том-же месте.

А вот про сломать - не проверял  :laugh:.

 

Но если говорить про тайное место, если его кто-то раз нашел - он после рестарта туда вечно ходить будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ребят что такое делаю все как написано, перезапускаю сервер у меня идет аунтетификация до 50-60 (цифр в углу экрана) и выкидывает в лобби у всех остальных так же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если уж так нужен ящик! То его можно добавить по другому!

1. Создаем файл crates.sqf  с кодом:

_vehicle_42881 = objNull;
if (true) then
{
  _this = createVehicle ["RUBasicWeaponsBox", [16473.867, 18389.453, 11.688437], [], 0, "CAN_COLLIDE"];
    _vehicle_42881 = _this;
    //Clear Cargo	
  clearweaponcargoGlobal _this;
  clearmagazinecargoGlobal _this;
  //Add Cargo
  _this addWeaponCargoGlobal ["AKS_74_UN_kobra",3];
  _this addWeaponCargoGlobal ["m107",1];
  _this addWeaponCargoGlobal ["BAF_LRR_scoped",2];
  _this addWeaponCargoGlobal ["KSVK_DZE",2];
  _this addWeaponCargoGlobal ["M60A4_EP1_DZE",3];
  _this addmagazineCargoGlobal ["30Rnd_545x39_AKSD",20];
  _this addmagazineCargoGlobal ["ItemGoldBar10oz",5];
  _this addmagazineCargoGlobal ["10Rnd_127x99_m107",5];
  _this addmagazineCargoGlobal ["5Rnd_86x70_L115A1",10];
  _this addmagazineCargoGlobal ["5Rnd_127x108_KSVK",10];
  _this addmagazineCargoGlobal ["100Rnd_762x51_M240",5];
  _this addbackpackCargoGlobal ["DZ_Backpack_EP1",1];
  _thi_this setVariable ["permaLoot",true];
  _this setPos [16473.867, 18389.453, 11.688437];
};

 

 

2. редактируем под себя

Можно поставить короб в 3d редакторе и до редактировать код

vehicle_42881 - любые числа

RUBasicWeaponsBox - название короба

16473.867, 18389.453, 11.688437 - координаты

 _this addWeaponCargoGlobal - добавление оружия

_this addmagazineCargoGlobal - добавление магазинов

_this addbackpackCargoGlobal - добавление рюкзаков

_thi_this setVariable ["permaLoot",true]; - очень важная строчка в конце

 

3. кидаем в dayz_server.pbo у меня папка buildings

и прописываем в server_functions.sqf

[] execVM "\z\addons\dayz_server\buildings\crates.sqf";

 

Ящик будет там после каждого рестарта на одном и том же месте с одним и тем же лутом!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Ващет можно просто написать

private ["_box"];

_box = createVehicle ["RUBasicWeaponsBox", [16473.867, 18389.453, 11.688437], [], 0, "CAN_COLLIDE"];

_box = ...

_box = ...

без всяких 48230983 и _this

 

если цепануть данный скрипт к админке, то надо подправить фильтры в createvehicle.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если уж так нужен ящик! То его можно добавить по другому!

1. Создаем файл crates.sqf  с кодом:

_vehicle_42881 = objNull;
if (true) then
{
  _this = createVehicle ["RUBasicWeaponsBox", [16473.867, 18389.453, 11.688437], [], 0, "CAN_COLLIDE"];
    _vehicle_42881 = _this;
    //Clear Cargo	
  clearweaponcargoGlobal _this;
  clearmagazinecargoGlobal _this;
  //Add Cargo
  _this addWeaponCargoGlobal ["AKS_74_UN_kobra",3];
  _this addWeaponCargoGlobal ["m107",1];
  _this addWeaponCargoGlobal ["BAF_LRR_scoped",2];
  _this addWeaponCargoGlobal ["KSVK_DZE",2];
  _this addWeaponCargoGlobal ["M60A4_EP1_DZE",3];
  _this addmagazineCargoGlobal ["30Rnd_545x39_AKSD",20];
  _this addmagazineCargoGlobal ["ItemGoldBar10oz",5];
  _this addmagazineCargoGlobal ["10Rnd_127x99_m107",5];
  _this addmagazineCargoGlobal ["5Rnd_86x70_L115A1",10];
  _this addmagazineCargoGlobal ["5Rnd_127x108_KSVK",10];
  _this addmagazineCargoGlobal ["100Rnd_762x51_M240",5];
  _this addbackpackCargoGlobal ["DZ_Backpack_EP1",1];
  _thi_this setVariable ["permaLoot",true];
  _this setPos [16473.867, 18389.453, 11.688437];
};

 

 

2. редактируем под себя

Можно поставить короб в 3d редакторе и до редактировать код

vehicle_42881 - любые числа

RUBasicWeaponsBox - название короба

16473.867, 18389.453, 11.688437 - координаты

 _this addWeaponCargoGlobal - добавление оружия

_this addmagazineCargoGlobal - добавление магазинов

_this addbackpackCargoGlobal - добавление рюкзаков

_thi_this setVariable ["permaLoot",true]; - очень важная строчка в конце

 

3. кидаем в dayz_server.pbo у меня папка buildings

и прописываем в server_functions.sqf

[] execVM "\z\addons\dayz_server\buildings\crates.sqf";

 

Ящик будет там после каждого рестарта на одном и том же месте с одним и тем же лутом!

По этому способу не работает(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Если уж так нужен ящик! То его можно добавить по другому!

1. Создаем файл crates.sqf  с кодом:

_vehicle_42881 = objNull;
if (true) then
{
  _this = createVehicle ["RUBasicWeaponsBox", [16473.867, 18389.453, 11.688437], [], 0, "CAN_COLLIDE"];
    _vehicle_42881 = _this;
    //Clear Cargo	
  clearweaponcargoGlobal _this;
  clearmagazinecargoGlobal _this;
  //Add Cargo
  _this addWeaponCargoGlobal ["AKS_74_UN_kobra",3];
  _this addWeaponCargoGlobal ["m107",1];
  _this addWeaponCargoGlobal ["BAF_LRR_scoped",2];
  _this addWeaponCargoGlobal ["KSVK_DZE",2];
  _this addWeaponCargoGlobal ["M60A4_EP1_DZE",3];
  _this addmagazineCargoGlobal ["30Rnd_545x39_AKSD",20];
  _this addmagazineCargoGlobal ["ItemGoldBar10oz",5];
  _this addmagazineCargoGlobal ["10Rnd_127x99_m107",5];
  _this addmagazineCargoGlobal ["5Rnd_86x70_L115A1",10];
  _this addmagazineCargoGlobal ["5Rnd_127x108_KSVK",10];
  _this addmagazineCargoGlobal ["100Rnd_762x51_M240",5];
  _this addbackpackCargoGlobal ["DZ_Backpack_EP1",1];
  _thi_this setVariable ["permaLoot",true];
  _this setPos [16473.867, 18389.453, 11.688437];
};

 

 

2. редактируем под себя

Можно поставить короб в 3d редакторе и до редактировать код

vehicle_42881 - любые числа

RUBasicWeaponsBox - название короба

16473.867, 18389.453, 11.688437 - координаты

 _this addWeaponCargoGlobal - добавление оружия

_this addmagazineCargoGlobal - добавление магазинов

_this addbackpackCargoGlobal - добавление рюкзаков

_thi_this setVariable ["permaLoot",true]; - очень важная строчка в конце

 

3. кидаем в dayz_server.pbo у меня папка buildings

и прописываем в server_functions.sqf

[] execVM "\z\addons\dayz_server\buildings\crates.sqf";

 

Ящик будет там после каждого рестарта на одном и том же месте с одним и тем же лутом!

По этому способу не работает(

У меня на секторе 5 коробок стоят так все прекрасно работает!

 

 

 

Ващет можно просто написать

private ["_box"];

_box = createVehicle ["RUBasicWeaponsBox", [16473.867, 18389.453, 11.688437], [], 0, "CAN_COLLIDE"];

_box = ...

_box = ...

без всяких 48230983 и _this

 

если цепануть данный скрипт к админке, то надо подправить фильтры в createvehicle.txt

Ну у меня инфистар там и так есть 5 разных видов коробов! Мне допустим поставил на сектор не сколько коробов со нужным лутом и пусть их лутают!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Если уж так нужен ящик! То его можно добавить по другому!

1. Создаем файл crates.sqf  с кодом:

_vehicle_42881 = objNull;
if (true) then
{
  _this = createVehicle ["RUBasicWeaponsBox", [16473.867, 18389.453, 11.688437], [], 0, "CAN_COLLIDE"];
    _vehicle_42881 = _this;
    //Clear Cargo	
  clearweaponcargoGlobal _this;
  clearmagazinecargoGlobal _this;
  //Add Cargo
  _this addWeaponCargoGlobal ["AKS_74_UN_kobra",3];
  _this addWeaponCargoGlobal ["m107",1];
  _this addWeaponCargoGlobal ["BAF_LRR_scoped",2];
  _this addWeaponCargoGlobal ["KSVK_DZE",2];
  _this addWeaponCargoGlobal ["M60A4_EP1_DZE",3];
  _this addmagazineCargoGlobal ["30Rnd_545x39_AKSD",20];
  _this addmagazineCargoGlobal ["ItemGoldBar10oz",5];
  _this addmagazineCargoGlobal ["10Rnd_127x99_m107",5];
  _this addmagazineCargoGlobal ["5Rnd_86x70_L115A1",10];
  _this addmagazineCargoGlobal ["5Rnd_127x108_KSVK",10];
  _this addmagazineCargoGlobal ["100Rnd_762x51_M240",5];
  _this addbackpackCargoGlobal ["DZ_Backpack_EP1",1];
  _thi_this setVariable ["permaLoot",true];
  _this setPos [16473.867, 18389.453, 11.688437];
};

 

 

2. редактируем под себя

Можно поставить короб в 3d редакторе и до редактировать код

vehicle_42881 - любые числа

RUBasicWeaponsBox - название короба

16473.867, 18389.453, 11.688437 - координаты

 _this addWeaponCargoGlobal - добавление оружия

_this addmagazineCargoGlobal - добавление магазинов

_this addbackpackCargoGlobal - добавление рюкзаков

_thi_this setVariable ["permaLoot",true]; - очень важная строчка в конце

 

3. кидаем в dayz_server.pbo у меня папка buildings

и прописываем в server_functions.sqf

[] execVM "\z\addons\dayz_server\buildings\crates.sqf";

 

Ящик будет там после каждого рестарта на одном и том же месте с одним и тем же лутом!

По этому способу не работает(

У меня на секторе 5 коробок стоят так все прекрасно работает!

 

ime="1397626918">

 

Ващет можно просто написать

private ["_box"];

_box = createVehicle ["RUBasicWeaponsBox", [16473.867, 18389.453, 11.688437], [], 0, "CAN_COLLIDE"];

_box = ...

_box = ...

без всяких 48230983 и _this

 

если цепануть данный скрипт к админке, то надо подправить фильтры в createvehicle.txt

Ну у меня инфистар там и так есть 5 разных видов коробов! Мне допустим поставил на сектор не сколько коробов со нужным лутом и пусть их лутают!!

 

Кроме магазинов и рюкзаков ничего не добавить? Хочу брифы прописать, но еще не решил проблему с появлением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

16473.867, 18389.453, 11.688437   координаты надо именно так прописывать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

16473.867, 18389.453, 11.688437   координаты надо именно так прописывать?

По моему примеру координаты нужно прописывать с пробелами! И менять в двух местах!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

16473.867, 18389.453, 11.688437   координаты надо именно так прописывать?

По моему примеру координаты нужно прописывать с пробелами! И менять в двух местах!

А в каких местах? у меня такая координата [262,[2023.4,14931.9,0.001]] как она должна выглядеть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: DAP
      [Server Manager] DayZ Standalone (Arma-ArmaII-ArmaIII,Miscreated)

      Server Manager :
      Дата выпуска: 2014
      Разработчик, издатель: -=scorpions=-
      Платформа: Windows server 2012 / Windows server 2016 / Windows 7 / Windows server 2008 /Windows 10
      Версия программы: 07.02.2019 [Stable]
      Язык интерфейса: RU / EN
      Доступность: платная
      Требование : Microsoft .NET Framework 4.5.2 и выше
      Официальная группа : VK
      Оплата : 500 RUB, 200 UAH, 10 USD (подписка на год)
       
      Описание :
      Программа для управления сервером и его контролем,
      многофункциональность,позволяет гибко настраивать дополнительные функции к работе сервера.Для установки данного приложение,
      требуется хост с виндовс не менее Windows server 2008,сервер и панель (Server Manager), должны быть на одном ПК!.
       
      Функции и их описание:
       

      Так как Лаунчер работает только совместно с Server Manager,будет описание лаунчера так же в этой теме:

      LAUNCHER :
      Дата выпуска: Определяется заказчиком
      Разработчик, издатель: -=scorpions=-
      Платформа: Windows 7 / Windows 10
      Версия программы: Определяется заказчиком
      Язык интерфейса: RU / EN
      Доступность: платная (от : 3000 RUB, 1100 UAH, 35 USD в зависимости от заказа)
      Требование : Microsoft .NET Framework 4.7.2 и выше
       
      Описание :
      Данная программа создана для удобства и контроля игроков на честную игру.При заказе данного продукта Вы получаете Server Manager бесплатно (подписка на год + установка)
       
      Функции и их описание:
       

       
    • Автор: NoNameUltima
      Автор: NoNameUltima
      v. 0.2
      Стоимость: 7500
       
      Мод предоставляется в нескольких частях:
      Со стима:
      Клиентский мод со стима UltimaData (для игроков). Ключи и подписи, присутствуют. *https://steamcommunity.com/workshop/filedetails/?id=1845833890 Клиентский мод со стима Ultima(для игроков). Ключи и подписи, присутствуют. https://steamcommunity.com/sharedfiles/filedetails/?id=1845832254 Клиентский мод со стима UltimaClientAdmin(для игроков). Ключи и подписи, присутствуют. https://steamcommunity.com/workshop/filedetails/?id=1827015538 Клиентский мод для Вашего сервера! Данный мод необходимо будет переименовать(в любое имя - это Ваш мод, модифицирующий конфиг). Необходимо будет создать к нему ключи и подписи, и выложить от себя в стим. Ссылку на данный мод вы и выкладываете в стим. Серверные мод(только для сервера). Кол-во: 2. *Моды связанны между собой.
       
      Что присутствует:
      Стартовое меню:
      Добавлена ссылка на группу в ВК. Добавлена ссылка на Дискорд. Добавлен выбор для прямого захода на Ваши сервера!(возможно добавление множества серверов в одно меню). Добавлен логотип. Добавлен экран(картинка) загрузки. Добавлен экран(картинка) возрождения\захода на сервер. *Все описанные выше параметры настраиваются под Ваш сервер! Дебаг монитор:
      Наличные Банк Убито людей Убито зомби Фракция Репутация Игроков онлайн ФПС Время старта миссии Время до рестарта Собственная валюта:
      Можно забрать из трупа по экшену мышки(обыскать карманы) Можно положить в банк Можно перевести другому игроку Можно совершать покупки *Валюта виртуальная. Безопасные зоны:
      Удалены зомби из безопасных зон отключен урон по игрокам внтури безопасных зон Оповещение при входе Оповещение при выходе Торговые зоны:
      Над торговцами присутствует надпись(чем торгует) Взаимодействие с торговцами через экшен мышки(торговля) Торговля:
      Торговля может быть настроена на определенную фракцию При продаже учитывается процент повреждения объекта, и торговец даст за него сумму с учетом повреждений! Владельцем техники считается тот игрок, кто последний сидел за рулем, и именно она и  отображается в продаже. Продаваемая техника должна быть в пределах 10м от игрока. При покупке техники, ключ выдается автоматически. Нельзя продать технику если в ней кто то находится. Нельзя вести торговлю находясь внутри техники. При продаже объекта, весь инвентарь, в т.ч. и обвес который находился внутри объекта(к примеру рюкзака, или техники), будет автоматически сложен под ноги. Техника:
      Есть возможность привзяать технику к ключу, предварительно купив его у торговца. Есть возможность закрывать технику на ключ. Владельцем техники считается тот, кто последним сидел за рулем. После рестарта, вся техника которая привязана к ключам спавнится закрытой. Карта:
      Добавлена карта для игроков, открытие на CTRL+M Монитор возрождения:
      Добавлены точки для выбора места возрождения. Оповещения о смертях:
      Отдельное уведомление в окошке. Стартовый инвентарь:
      Есть возможность выдавать инвентарь как по UID, при чем случайным образом из списка доступных для данного UID'а. Игроки для которых не создан конфиг инвентаря, получают его из общего конфига. В конфиге можно указать одежду, вещи которые будут помещены в руки, вещи которые будут помещены горячие слоты, а так же есть возможность добавлять вещи сразу в комплектации(т.е. с обвесом, батарейками и т.п.) Репутация:
      При смерти с игрока снимается 200 репутации(до 0 в +-). т.е. Пример:
      Было +450, станет +250.
      Было -300, станет -100.
      Было +90, станет 0.
      Было -150, станет 0.
      За убийство игрока, репутация начисляется по 150 таким образом: Если с убитого снято менее 200 репутации(см. пример выше), то начисления нет! Если убийца был с отрицательной репутацией, то начисление идет в минус. Пример:
      Было -100, станет -250
      *Не играет роли, какая репутация была у убитого.
      Если убийца был с положительной репутацией, а убитый с отрицательной, то +150 Пример:
      Было 100, станет 250
      Если убийца был с положительной репутацией, и убитый с положительной , то -150 Пример:
      Было 100, станет -50
      Было 1000, станет 850
      Стартовые позиции игроков:
      Есть возможность возрождать игрока на точках прописанных специально под его UID, при чем случайным образом из списка доступных для данного UID'а. Игроки для которых не создан конфиг возрождения, возрождаются из общего конфига. АДМИНКА (ВКЛЮЧЕНА В МОД):
      Все пункты описывать не буду, - могу сказать только то, что все работает, и множество пунктов, такие как выдача наличных, смена фракции и т.п. сделанны специально под модификацию. СЕРВЕРНЫЕ МОДЫ:
      Настраиваются под Ваш сервер, и имею богатый функционал. доп. процедуры и функции.  
       
      В остальном смотрите видео по ссылке:
      *В данный момент, сервер с данным модом работает по адресу:
      109.68.189.18:2902
      *Для входа необходим мод сервера
      https://steamcommunity.com/sharedfiles/filedetails/?id=1860242928&searchtext=ru111&insideModal=0&requirelogin=1
       
      skype: hf-trade
       
      P.S. Обновления платные, если они вносят доп. функционал(для тех кто приобретал мод ранее: 25% от общей стоимости, до актуальной версии).
      P.S.P.S. Весь функционал является БЕТА-ВЕРСИЕЙ!
    • Автор: Alex39
      Борьба с читерством в играх, когда стандартные средства не помогают из песочницы
        Бывают ситуации, когда читерство в сетевых играх переходит границу стандартной защиты и становится на первый взгляд непреодолимой проблемой. Но даже в таких ситуациях можно найти выход. В этой статье пойдет речь о не очень популярной игре ARMA 2 и не совсем обычных методах борьбы с читерами. Тематика (игровое администрирование) довольно необычная для хабра, но она также имеет отношение к IT, и я считаю, вполне заслуживает внимания.   Предисловие   За долгое время, сколько я читаю хабр, я ни разу не встретил ни одной статьи по администрированию обычных сетевых игр, но ведь такие администраторы тоже есть. Они, как и другие администраторы собирают железо, ставят на него linux или windows, устанавливают apache, nginx, занимаются веб сервисами, читают хабр и т.д., но основная цель всего этого — поддержка игровых серверов, которые тоже имеют свои особенности в настройке.   В этой статье я не буду писать про настройку игровых серверов, а как я уже написал выше, хочу лишь обратить внимание на то, как можно бороться с читерами (на примере игры ARMA 2) если стандартная защита не справляется с этой задачей.   Описание и особенности игры ARMA 2   Данная игра имеет особую атмосферу, которая притягивает особенную аудиторию, любителей непростых игр. Играют в нее, по сравнению с популярными хитами, довольно мало людей. И дело тут не только в некоторых багах, которые мешают играть, но и в довольно сложном геймлее. Ведь не с проста эта игра позиционируется как военный симулятор, а не простой 3D экшен.   Кроме уникального геймлея, самая большая особенность ARMA 2 в том, что она имеет очень гибкую систему скриптов, которая позволяет сделать из нее совсем не похожую на оригинал игру. Например, можно сделать сетевой режим с элементами РПГ! В основном все зависит от навыков и фантазии тех, кто делает миссии для данной игры. Так же эта игра имеет огромную базу аддонов — техника, модели солдат, оружие, звуки и т.д.   Но ее самая большая особенность является и ее самой большой проблемой в плане уязвимости. Читеры в ARMA 2 могут творить все что угодно, начиная от создания любых предметов на карте, бессмертия, бесконечных патронов и заканчивая исполнением команд для управления сервером.   В такой ситуации даже официальная защита начинает проигрывать эту борьбу. И кажется, что уже ничего кроме постоянного наблюдения за игрой не может помочь в поимке читеров. Но зная особенности игры все же можно предпринять некоторые меры!   Борьба с нарушителями   Для борьбы с читерами в ARMA 2 применяется официальный античит BattlEye. И в связи с тем, что игра имеет очень много аддонов, в том числе и тех, которые могут дать преимущество в сетевой игре, в ней реализована возможность пускать на сервер игроков только с одобренными аддонами «verifySignatures=1;» — аддоны проверяются по уникальной подписи. Но все это не помогает. Если читер захочет, он может найти средства для обхода проверки уникальных сигнатур и попасть на сервер с читерским аддоном. К счастью не все читеры достаточно умные и иногда в логах могут засветиться такие записи: 10:49:46 Player Dimt: Wrong signature for file expansion\addons\darky.pbo В таких случаях администратору самому приходиться углубляться в знания читов и тогда будет очевидно, что название аддона darky.pbo указывает на его принадлежность к читерскому.   простейший скрипт:  
      #!/bin/sh DETECTED="/usr/games/a2_bans/cheater.log" DETECTEDTK="/usr/games/a2_bans/teamkill.log" WRONGSIG="/usr/games/a2_bans/wrongsig.log" echo "Последнее обновление (каждые 30 минут): `date "+%d.%m.%Y %H:%M:%S"` \n" > $DETECTED grep GameHack /usr/games/arma2*/arma2_server_console.log >> $DETECTED echo "Последнее обновление (каждые 30 минут): `date "+%d.%m.%Y %H:%M:%S"` \n" > $WRONGSIG grep 'Wrong signature for file' /usr/games/arma2*/arma2_server_console.log >> $WRONGSIG echo "Последнее обновление (каждые 30 минут): `date "+%d.%m.%Y %H:%M:%S"` \n" > $DETECTEDTK grep teamkill /usr/games/arma2*/log.23* >> $DETECTEDTK     
      Соответственно, прописал его в крон исполняться каждые 30 минут. Это очень помогает и мне и другим администраторам наших серверов. Но в плане эффективной борьбы с читерами это все равно практически бесполезно.   И тут в дело вступает самый интересный и основной метод — анализ трафика!   Wireshark в борьбе с читерами   Администрирование игровых серверов это далеко не всегда простое включение определенного серверного приложения. Здесь тоже помогают знания, которые напрямую к играм не имеют никакого отношения. Так получилось и в данной ситуации. На помощь пришел анализатор трафика Wireshark. Я не буду углубляться в подробности использования этой программы — к ней прилагается хорошая документация. Сбор трафика на наших серверах ARMA 2 осуществляется очень просто:  
      dumpcap -i 1 -f "udp port 2302 and dst x.x.x.x" -w /var/log/dumpcap/arma2co_1/a2co1.pcap -b duration:1800 filesize:200000    
      Собранная информация позволяет увидеть применение тех самых читерских команд, которые создают технику, убивают других игроков и т.д. Нужно лишь предположить, какой код может быть использован читерским приложением, или же самому скачать некоторые читы, чтобы проанализировать их работу. В итоге, когда уже знаешь по каким ключевым словам искать, можно обнаружить такую картину:  
      0040 00 00 0a 92 8f c5 00 68 45 78 65 63 43 6f 64 65 .......hExecCode 0050 00 3c 06 00 00 00 53 54 52 49 4e 47 22 4c 61 6e .<....STRING"Lan 0060 64 52 6f 76 65 72 5f 43 5a 5f 45 50 31 22 20 63 dRover_CZ_EP1" c 0070 72 65 61 74 65 56 65 68 69 63 6c 65 20 28 70 6f reateVehicle (po 0080 73 69 74 69 6f 6e 20 70 6c 61 79 65 72 29 sition player)     
      Как видно от игрока на сервер была отправлена команда hExecCode с кодом, который создает (createVehicle) автомобиль LandRover. Разумеется, в данной ситуации без дополнительных средств (читов) такой код применить нельзя. После этого уже не составит труда вычислить все необходимые данные для блокировки нарушителя.   В итоге мы имеем хоть и не автоматическую защиту моментального действия, но достаточно эффективную в плане распознавания читерского кода.   Скачать - https://www.wireshark.org/#download   Альтернативная ссылка - https://www.wireshark.org/#download    
    • Автор: paranoyk
      Делается это немного нудно,но сравнительно просто (когда есть точки спавна).
      При спавне Land_Wreck_Uaz с помощью оффлайнера получим строку следующего вида.
      SpawnObject( "Land_Wreck_Uaz", "14348.268555 4.133186 13191.887695", "0.000000 0.000000 0.000000" );
      Нам необходимо задать точку для спавна "сетки лута".
      Для этого мы в файл по mapgrouppos.xml прописываем координаты взятые из строчки для спавна объекта (выше).
      <group name="Land_Wreck_Uaz" pos="14348.268555 4.133186 13191.887695" rpy="0.000000 0.000000 0.000000" a="0.000000" />
       
      group name="Land_Wreck_Uaz" pos="14348.268555 4.133186 13191.887695 - координаты запавненого УАЗика.
      rpy="0.000000 0.000000 0.000000" - числовые значения Yaw,Pitch,Roll соответственно. Берём их из всё той же строчки, но важно помнить что они там записаны в обратном порядке.
      a="0.000000"- угол порота сетки относительно угла поворота......короче! (Yaw-90) х (-1) Уже писал,что можно играться с 360 градусами,но пишу всегда полученное значение,проблем нет.

      И главное "сетка лута". Изначально её УАЗик не имеет, пишем её сами в файл mapGroupProto.xml .
       
      <group name="Land_Wreck_Uaz" lootmax="11"> <usage name="...класс вещей для спавна" /> <usage name="...класс вещей для спавна" /> <container name="lootfloor" lootmax="5"> -"контейнер" для описания спавна, максимальное колличество в спавне. <category name="...категория вещей для спавна" /> (возможен тэг- <tag name="floor" /> или <tag name="shelves" /> ) <point pos="0.511211 -0.372110 0.0254000" range="0.244141" height="0.513353" />-левое сиденье <point pos="-0.320921 -0.387334 -0.400000" range="0.310141" height="0.610353" />-правое переднее седение полик <point pos="-0.000921 -0.383194 0.301000" range="0.400186" height="0.590424" />-место за кпп середина <point pos="-0.211211 0.228620 -0.698000" range="0.360231" height="0.520142" />-правая часть капота возле стекла <point pos="0.681211 0.216190 -1.358000" range="0.262781" height="0.621102" />левая часть капота впереди </container> <container name="lootshelves" lootmax="3"> -"контейнер" для описания спавна, максимальное колличество в спавне. <category name="...категория вещей для спавна" /> (возможен тэг- <tag name="floor" /> или <tag name="shelves" /> ) <point pos="-0.406211 -0.098190 -1.131250" range="0.246819" height="0.620459" />-правое переднее крыло <point pos="0.306211 -0.436570 -1.651250" range="0.424141" height="0.810353" />- центр переднего бампера <point pos="0.906211 -0.359570 -1.664250" range="0.124141" height="0.100353" />-слева на бампере </container> <container name="lootweapons" lootmax="3">-"контейнер" для спавна длинногоствольного оружия, максимальное колличество в спавне, патронов и гранат. <category name="weapons" /> <category name="explosives" /> (возможен тэг- <tag name="floor" /> или <tag name="shelves" /> ) <point pos="0.256211 -0.372050 1.264250" range="0.724141" height="1.313353" /> -центр багажника <point pos="0.868211 -0.138190 1.398000" range="0.293625" height="0.605487" />-заднее левое крыло <point pos="-0.506211 -0.108190 1.431250" range="0.250879" height="0.582143" />-заднее правое крыло </container> </group> Вставляем нужные категории,классы и тэги,это практически конструктор.
      К примеру у меня пока выглядит так -
       
      <group name="Land_Wreck_Uaz" lootmax="11"> <usage name="Military" /> <usage name="Industrial" /> <usage name="Office" /> <container name="lootfloor" lootmax="5"> <category name="food" /> <category name="clothes" /> <point pos="0.511211 -0.372110 0.0254000" range="0.244141" height="0.513353" /> <point pos="-0.320921 -0.387334 -0.400000" range="0.310141" height="0.610353" /> <point pos="-0.000921 -0.383194 0.301000" range="0.400186" height="0.590424" /> <point pos="-0.211211 0.228620 -0.698000" range="0.360231" height="0.520142" /> <point pos="0.681211 0.216190 -1.358000" range="0.262781" height="0.621102" /> </container> <container name="lootshelves" lootmax="3"> <category name="tools" /> <category name="vehiclesparts" /> <point pos="-0.406211 -0.098190 -1.131250" range="0.246819" height="0.620459" /> <point pos="0.306211 -0.436570 -1.651250" range="0.424141" height="0.810353" /> <point pos="0.906211 -0.359570 -1.664250" range="0.124141" height="0.100353" /> </container> <container name="lootweapons" lootmax="3"> <category name="weapons" /> <category name="explosives" /> <point pos="0.256211 -0.372050 1.264250" range="0.724141" height="1.313353" /> <point pos="0.868211 -0.138190 1.398000" range="0.293625" height="0.605487" /> <point pos="-0.506211 -0.108190 1.431250" range="0.250879" height="0.582143" /> </container> </group> Также можно даже исключить полностью строчку lootmax="...". Большой разницы я не заметил.
      Сразу скажу,баги стандартные -длинноствол в багажнике может пробить ствол,иногда возможна "левитация" предметов.
      Во общем как то так.
      (возможно позже вылож сетку и для обломков V3S и С130. Решение для "заброшенной колонны" на севере-тоже в процессе.Кому надо-пишите)
    • Автор: Alex39
      Инструмент администратора для DayZ Mod / Standalone Server
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Особенности:
      Изменяемый размер и простота использования окна чата / журнала с 3 вкладками (все, чат и журнал) и функцией поиска.
      Изменяемый размер таблицы сортировки игроков.
      Отправить глобальное сообщение.
      Отправить личное сообщение игроку.
      Бан игрока с переменной длиной. (Работает, даже если они отключаются, пока вы печатаете причину)
      Удар игрока.
      Добавить бан.
      Перезагрузить запреты.
      Таблица запретов.
      Удалить бан.
      Избранное.
      Поддержка DNS.
      Неисправность.
      Запустить снова.
      Перезагрузить сценарии и события.
      Сохранение журнала.
      Метки времени с возможностью переключения
      Блокировка и разблокировка
      Получить и установить Макс Пинг.
      Глобальная база данных игроков.
      Локальная база данных игроков.
      Автоматическое сохранение журнала.
      Автоматическое обновление!
       
      https://drive.google.com/open?id=1-HcpYr64Qhxrtwr_i53sqD1BnBj4c-1C