TheFirstNoob

Статья
[Battleye Extended Controls (BEC)] - Авторестарт, VIP и Админ Слоты и многое другое.

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

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

 

 

Переведенная версия: 1.608 (Latest Update)

НЕ ОБЯЗАТЕЛЬНАЯ ЧАСТЬ!
BEC ранее был блокирован BIS, однако со временем блокировку сняли.
Данный фикс ставьте на усмотрение!


 

 

 

фикс с форума epochmod.com
в файл hosts (C:\Windows\System32\drivers\etc) прописать

 

127.0.0.1 www.ibattle.org
127.0.0.1 ibattle.org
 

 

 


Краткое описание:
   Battleye Extended Controls - это многофункциональная программа для серверов Arma 2, Arma 3 и всех к ним аддонов.
   С помощью данной программы вы сможете:

  • Авторестарт сервера + предупреждения о рестарте в нужное вам время.
  • Автосообщения в нужное вам время. 
    Например каждые 30 минут будет оповещение "Авторестарт сервера в такое-то время".
    Или же только по вторникам в 14:00 будет оповещение "Сегодня вторник 14:00 :D"
  • Фильтрация чата
  • Фильтрация ников
  • Резервные слоты как для Администрации, так и для ваших друзей, VIP, да кого угодно.
  • Возможность использовать только Английские Ники или же все подряд.
  • Ограничение чата (Например только 20 сообщений вы можете написать в Глобал чат или в нужный вам чат, а потом нельзя - кик)
  • Whitelist
  • Своя удобная система логов. Отдельно логи сервера, отдельно чат, отдельно BattEye и BEC.
  • Удобный планировщик.
  • И многое другое.

Установка:

1) Качаем сам BEC: Нажми на меня :3

2) Папку BEC и все bat-файлы перекидываем в корень сервера. (Например: E:\SteamLibrary\SteamApps\common\Arma 2 Operation Arrowhead\BEC)

3) Переходим в корень сервера и редактируем батник bec.bat.

 

timeout /t 60
cd E:\SteamLibrary\SteamApps\common\Arma 2 Operation Arrowhead\BEC
"E:\SteamLibrary\SteamApps\common\Arma 2 Operation Arrowhead\BEC\Bec.exe" -f config.cfg
exit
 

 

В timeout /t пишем в секундах сколько ждать Батнику перед тем как запустит BEC.
Старайтесь подобрать таймаут так, чтобы сначала запустился сервер, а потом сразу через секунд 5-10 запустился BEC.
Если же BEC как-то запустился ранее, то не страшно. BEC подождет сервер еще 5 минут, перед тем как закрыться.

В
cd указываем путь до BEC.
Ниже делаем тоже самое + дописываем какой файл надо запускать. В данном случае Bec.exe с параметром -f config.cfg.


4) Далее редактируем батник server.bat.

 

Start bec.bat
"arma2oaserver.exe" -port=2302 "-config=instance_24_Napf\config.cfg" "-cfg=instance_24_Napf\basic.cfg" "-profiles=instance_24_Napf" -name=instance_24_Napf "[email protected]_Epoch;@DayZ_Epoch_Server;"
exit
 

 

Собственно
После
Start bec.bat мы видим уже знакомые нам строчки. Это обычный запуск сервера с определенными параметрами. Просто перенастройте под себя.
Легче всего просто скопировать нужное из 

DayZ_Epoch_instance_11_Chernarus.bat или DayZ_Epoch_instance_24_Napf, или любого другого, который подходит под ваш сервер.

Для
ПИРАТОВ:
Замените 
"arma2oaserver.exe" на "expansion\beta\arma2oaserver.exe"

Все с установкой покончено!




>>>>> Основная настройка <<<<<

 

1) Переходим в BEC/Config, открываем файл config.cfg и настраиваем все под себя. Я все там перевел, так что гемороя не будет!
 

#--------------------------------------------------------------------------------------------------------
[Подключение и Конфигурация]
#--------------------------------------------------------------------------------------------------------

# Укажите IP-Адрес вашего сервера. Можете использовать 127.0.0.1 и все будет нормально.
Ip = 127.0.0.1


# Укажите порт вашего сервера. По умолчанию 2302.
Port = 2302


# Укажите путь в BattEye. То есть там где стоят фильтры.
BePath =

# Укажите как BEC будет банить читаков.
# 0 = Никак. 1 = Только Встроенный игровой АнтиЧит. 2 = Только BattEye АнтиЧит. 3 = Оба варианта. 
# Установите 3 если не можете определиться.
# Внимание! InfiSTAR не считается!!!
Ban = 3

# Укажите размеры Консольного окна BEC.
ConsoleHeight	= 30
ConsoleWidth	= 100

# Сколько секунд BEC будет ждать при зависании или включении сервера.
# Рекомендуется: 120 секунд
Timeout = 120

# Если указать = True, то BEC будет создавать Логи чата на каждый канал.
# Если указать = False, то BEC будет создавать Лог чата в котором будут сразу все каналы.
ChatChannelFiles = false




Запускать сервер надо через файл Start.bat!!!


ВНИМАНИЕ!!! Дальнейшие выполнение пунктов зависит от настройки файла Config.cfg
 

Настройка Администрации BEC:

 

1) Переходим в BEC/Config, открываем файл Admins.xml и вписываем себя как администратора. Тоже все перевел, но напишу пример.

 

	Администрация и резервные слоты..
	
	name : Укажите НикНейм Администрации и игрока для резервного слота.
	guid : Напишите GUID.
	group : Укажите группу. Например 0 Администрация. 1 - Модерация. 2 - Друзья. 3 - VIP.
	groupname : Укажите сообщение которое будет выдаваться при заходе игрока на сервер. Оставьте пустым и тогда ничего писаться не будет.
	
	Внимание: <..id= > ID начинается с 0, далее если вы начали <VIP id=>, то и заканчивайте </VIP>.

 

 

        <admin id="0">
		<name>Ник Админа</name>
		<guid>GUID</guid>
		<group>0</group>
		<groupname>Admin</groupname>
	</admin>

 

 


Настройка НикНеймов:

 

1) Переходим в BEC/Config, открываем файл BadNames.txt и вписываем запрещенные НикНеймы на сервере.


2) Убедитесь что файл ВadNames.txt подключен в Конфигурации BEC. Файл config.cfg.
 

#--------------------------------------------------------------------------------------------------------
[Настройка НикНеймов]
#--------------------------------------------------------------------------------------------------------

# Подключите файл BadNames.txt (По умолчанию пуже подключен).
# Отвечает за плохие или запрещенные ники на сервере (Настраивается в BadNames.txt)
NickFilterFile = BadNames.txt

# Использовать на сервере только ASCII НикНеймы (Имеется ввиду English Only!)
# Рекомендуется: True (Если отключить, то могут быть проблемы)
AsciiNickOnly = True

# Кикать игроков, если они имеют следующие символы в НикНейме.
DisallowPlayerNameChars	=

# Минимальная допустимая длина НикНейма.
MinPlayerNameLength	= 3

# Максимальная допустимая длина НикНейма.
MaxPlayerNameLength	= 24

 

 

 


Настройка BEC WhiteList:

 



1) Убедитесь что Whitelist подключен в Конфигурации BEC. Файл config.cfg.

 

#--------------------------------------------------------------------------------------------------------
[Настройка Белого Листа]
#--------------------------------------------------------------------------------------------------------

# Подключите файл WhiteList.txt (По умолчанию Отключен!).
# Отвечает за Белый Лист по GUID и только!
# WhiteListFile = WhiteList.txt

# Укажите сообщение которое будет выводиться если BEC не находит игрока в Белом Списке. (Поддерживается только ASCII!)
WhileListKickMsg = Sorry, you are not WhiteListed!
 

 

 



Настройка Лобби:

 

 

 

#--------------------------------------------------------------------------------------------------------
[Настройка Лобби]
#--------------------------------------------------------------------------------------------------------


# Если игрок будет слишком долго находиться в Лобби, то его кикнет с сервера.
# Укажите время через которое игрока кикнет с сервера (В секундах!)
# Укажите = 0, чтобы отключить эту функцию.
KickLobbyIdlers    = 0
 

 

 

 

Настройка Чата:

 

#--------------------------------------------------------------------------------------------------------
[Настройка Чата]
#--------------------------------------------------------------------------------------------------------

# Подключите файл BadWords.txt (По умолчанию пуже подключен).
# Отвечает за плохие или запрещенные слова в чате (Настраивается в BadWords.txt)
WordFilterFile = BadWords.txt

# Использовать на сервере только ASCII чат (Имеется ввиду English Only!)
# Рекомендуется: False (Если включить, то все смогут писать в чат только на Английском!)
AsciiChatOnly = False

# Для работы данной функции убедитесь что AsciiChatOnly = True!
# Какие символы BEC будет разрешать использовать в чате.
IgnoreChatChars =

# Укажите количество предупреждений за плохие слова BadWords.txt.
# Укажите = -1, чтобы Выключить. Укажите = 0, чтобы сразу Кикало. Укажите = N, чтобы было N-ое количество предупреждений, а последний Кик. (N - Любое число)
Warnings = 3





#--------------------------------------------------------------------------------------------------------
[Ограничение Чата]
#--------------------------------------------------------------------------------------------------------
# Укажите количество сообщений которые могут писать игроки в течении игры на каждый Чат-Канал.
# Укажите = -1 чтобы отключить, 0 кикать сразу без предупреждений.
# Если указать более 0, то игрок будет получать предупреждения сколько он еще может писать в чат.

Lobby = 30
Global = 5
Side = 7
Group = 9
Vehicle = 11
Command = 13
Commander = 15
Direct = 17





#--------------------------------------------------------------------------------------------------------
[Анти Спам Чата]
#--------------------------------------------------------------------------------------------------------

# Укажите промежуток времени между сообщениями, которое сможет написать игрок в определенном Чат-Канале.
# Укажите = 0 чтобы отключить.

# Пример заполнения:
# Lobby = 5
# Lobby_Time_Lower = 10
# Lobby_Time_Upper = 60

# Параметр Lobby отвечает за какой-то канал чата, в данном случае чат в лобби.
# Параметр Lobby_Time_Lower отвечает за допустимый интервал между сообщениями (В секундах).
# Параметр Lobby_Time_Upper сбрасывает счетчик ограничения чата (В секундах).
# Рассмотрим более подробно.
# Если игрок напишет первое сообщение в лобби, то следующее он напишет только через 10 секунд, но будет оповещен об ограничении в чате и будет иметь лимит сообщений.
# Как только пройдет 60 секунд после написания сообщения, то счетчик лимита сброситься до нуля (То есть ограничения обнуляться).

Lobby = 0
Lobby_Time_Lower = 0
Lobby_Time_Upper = 0

Global = 0
Global_Time_Lower = 0
Global_Time_Upper = 0

Side = 0
Side_Time_Lower = 0
Side_Time_Upper = 0

Group = 2
Group_Time_Lower = 1
Group_Time_Upper = 3

Vehicle = 0
Vehicle_Time_Lower = 0
Vehicle_Time_Upper = 0

Command = 0
Command_Time_Lower = 0
Command_Time_Upper = 0

Commander = 0
Commander_Time_Lower = 0
Commander_Time_Upper = 0

Direct = 0
Direct_Time_Lower = 0
Direct_Time_Upper = 0

 



Настройка проверки данных из Базы (SQL):

 


 

#--------------------------------------------------------------------------------------------------------
[Проверка Данных из Базы (SQL)]
#--------------------------------------------------------------------------------------------------------
# Укажите данные вашего аккаунта от MySQL которые вводили в HiveExt.ini.
# Читы, логи BattEye будут регистрироваться через вашу Базу Данных. Каждый игрок будет проверяться через БД при присоединении на сервер.

# Укажите Имя пользователя Базы Данных
#User = TheFirstNoob


# Укажите Пароль от пользователя Базы Данных
#Password = YouPassword

 

 



Настройка Внутриигровых команд Commands.xml:

    Файл Commands.xml отвечает за использование команд внутри игры.
    Их могут использовать как игроки, так и Администрация, модерация, VIP и другие игроки исходя от файла
Admins.xml в параметре group.
    Например узнать время работы, локальное время, провести какое-то голосование, забанить кого-то, кикнуть и так далее.
    Список приведен ниже.



1) Убедитесь что commands.xml подключен в config.cfg.

 

#--------------------------------------------------------------------------------------------------------
[Настройка Commands.xml]
#--------------------------------------------------------------------------------------------------------


# Подключите файл Commands.xml (По умолчанию уже подключен).
# Позволяет выполять внутриигровые команды из списка commands.xml
Commands = Commands.xml
 

 

2) Настраиваем commands.xml под себя.


 

<!-- 


    Файл Commands.xml отвечает за использование команд внутри игры.
    Их могут использовать как игроки, так и Администрация, модерация, VIP и другие игроки исходя от файла Admins.xml в параметре group.
    Например узнать время работы, локальное время, провести какое-то голосование, забанить кого-то, кикнуть и так далее.
    Список приведен ниже.
    
    P.S. Я этим не пользуюсь, поэтому какая команда, за что отвечает пока не могу сказать.


    ПРИМЕРЫ ВНУТРИИГРОВЫХ КОМАНД
    
    name  : Напишите название команды (Это не переменная, просто наименование которое вам хочется!).
    group : Укажите группу для доступа к какой-то команде. Группу указываем из Admins.xml!
    cmd   : Укажите RCON команду (Обычно это Арма Команды и BattEye команды!
    time  : Укажите время для доступности команды. Оставьте пустым и команды будут доступны постоянно!
    text  : Укажите какой текст будет высвечиваться при выполнении команды. Например Кик - причина кика!
    desc  : Укажите описание команды. Просто помощь для вас.
    
    P.S group 100 - Публичный доступ. То есть всем!
    
    Данные команды нужно вписывать в <cmd> </cmd> тег:
    ########################
    # Арма команды
    ########################


    #Missions
    #Mission 
    #Reassign
    #Restart
    #Shutdown
    #Lock
    #Unlock
    
    ########################
    # BattlEye команды
    ########################
    kick
    ban
    maxping
    say
    
    ########################
    # BEC команды
    ########################
    kid |
    bid |
    grant
    degrant
    warn
    makeroom
    help
    pinfo
    ainfo
    uptime
    external
    loadadmins
    loadcommands


    
    ########################################################################
    # Публичные команды:
    ########################################################################
    help
    uptime
    pinfo
    ainfo


    
-->


<BeCommands>    
    
    <!-- Выключение сервера. -->
    <command id="0">
        <name>!sht</name>
        <group>1</group>
        <cmd>#shutdown</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: [!sht] или [!sht N] или [!sht info] или [!sht abort] :: ИНФОРМАЦИЯ -> Выключает консольное окно сервера. Используйте: !sht N, N - Через какое время отключить сервер, !sht abort, - Отменяет таймер выключения сервера, !sht info, - Узнать через какое время отключиться сервер.</desc>
    </command>
    
    <!-- Использовать Стандартное Арма меню. -->
    <command id="1">
        <name>!mis</name>
        <group>1</group>
        <cmd>#missions</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !mis :: ИНФОРМАЦИЯ -> Использует стандартное управление сервером внутри игры. НЕ ИСПОЛЬЗУЙТЕ НИКОГДА - ЗАПРЕЩЕНО (Кикнет PV #0)!</desc>
    </command>    
    
    <!-- Рестарт сервера. -->
    <command id="2">
        <name>!res</name>
        <group>4</group>
        <cmd>#restart</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !res :: ИНФОРМАЦИЯ -> Перезагрузка миссии.</desc>
    </command>    
    
    <!-- Переназначить миссию на сервере. -->
    <command id="3">
        <name>!rea</name>
        <group>4</group>
        <cmd>#reassign</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !rea :: ИНФОРМАЦИЯ -> Запускает новую миссию на сервере. Кикает всех в лобби</desc>
    </command>        
    
    <!-- Заблокировать доступ к серверу. -->
    <command id="4">
        <name>!lck</name>
        <group>3</group>
        <cmd>#lock</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !lck :: ИНФОРМАЦИЯ -> Блокирует доступ к серверу, но сервер продолжает работать.</desc>
    </command>    


    <!-- Разблокировать доступ к серверу. -->
    <command id="5">
        <name>!ulck</name>
        <group>3</group>
        <cmd>#unlock</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !ulck :: ИНФОРМАЦИЯ -> Открывает доступ к серверу.</desc>
    </command>
    
    <!-- Максимальный Пинг. -->
    <command id="6">
        <name>!mp</name>
        <group>3</group>
        <cmd>maxping</cmd>
        <time></time>
        <text>150</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: [!mp] или [!mp N] :: ИНФОРМАЦИЯ -> Устанавливаем максимальное значение Пинга на сервере. N - запрос Пинга через N-ое время, Стандарт = 150</desc>
    </command>        
    
    <!-- Изменить файл миссии (YourMission.pbo). -->
    <command id="7">
        <name>!cm</name>
        <group>4</group>
        <cmd>#mission</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !cm + название файла (без .pbo)  :: ИНФОРМАЦИЯ -> Меняет миссию (Ядро). Используется только PBO!</desc>
    </command>    
    


    <!-- Забанить навсегда -->
    <command id="8">
        <name>!bpl</name>
        <group>0</group>
        <cmd>ban</cmd>
        <time>0</time>
        <text>Вы забанены на этом сервере : _name_</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !bpl + имя :: ИНФОРМАЦИЯ -> Навсегда банит игрока на сервере.</desc>
    </command>    
    
    <!-- Забанить на 1 час -->
    <command id="9">
        <name>!btk</name>
        <group>1</group>
        <cmd>ban</cmd>
        <time>60</time>
        <text>Вы временно забанены! _name_ : Время бана: _time_</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !btk + имя :: ИНФОРМАЦИЯ -> Забанить на 1 час.</desc>
    </command>    
    
    <!-- Забанить на 10 минут -->
    <command id="10">
        <name>!bst</name>
        <group>2</group>
        <cmd>ban</cmd>
        <time>10</time>
        <text>Вы временно забанены! _name_ : Время бана: _time_</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !bst name :: ИНФОРМАЦИЯ -> Забанить на 10 минут.</desc>
    </command>    
    
    <!-- Кикнуть.-->
    <command id="11">
        <name>!kpl</name>
        <group>3</group>
        <cmd>kick</cmd>
        <time></time>
        <text>Кикнут Администрацией: _name_</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !kpl + имя :: ИНФОРМАЦИЯ -> Кикает игрока.</desc>
    </command>


    <!-- 
        Некоторые параметры можно подключить к другим. 
        Например параметр время <time>15</time> мы можем подключить к тексту, которое покажет игроку.
        <text></text> Вы забанены _time (Переменная _time покажет что написано в <time>
        Тоже самое и в <name> - Это просто описание или текст.
    -->
    
    <!-- Забанить по GUID -->
    <command id="12">
        <name>!bid</name>
        <group>0</group>
        <cmd>bid</cmd>
        <time>0</time>
        <text>Admins Decision!</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !bid id :: ИНФОРМАЦИЯ -> Банить игрока по GUID.</desc>
    </command>
    
    <!-- Кикнуть по GUID -->
    <command id="13">
        <name>!kid</name>
        <group>1</group>
        <cmd>kid</cmd>
        <time></time>
        <text>Кикнут Администратором!</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !kid id :: ИНФОРМАЦИЯ -> Кикает игрока по GUID.</desc>        
    </command>        


    
    <!-- Выдать предупреждение игроку -->
    <command id="14">
        <name>!wrn</name>
        <group>3</group>
        <cmd>warn</cmd>
        <time></time>
        <text>Вы предупреждены: _name_</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !wrn + имя :: ИНФОРМАЦИЯ -> Выдает предупреждение игроку.</desc>
    </command>
    
    <!-- Добавить игрока в Admin.xml-->
    <!-- В <text> укажите группу -->
    <command id="15">
        <name>!ata</name>
        <group>2</group>
        <cmd>grant</cmd>
        <time></time>
        <text>4</text>            
        <desc>ИСПОЛЬЗОВАНИЕ :: !ata + имя :: ИНФОРМАЦИЯ -> Добавляет игрока в группу 4.</desc>
    </command>
    
    <!-- Удалить игрока из Admin.xml -->
    <!-- В <text> укажите группу -->
    <!-- <text> - оставьте пустым, чтобы удалить везде -->
    <command id="16">
        <name>!rta</name>
        <group>2</group>
        <cmd>degrant</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !rta + имя :: ИНФОРМАЦИЯ -> Удаляет игрока в группы.</desc>        
    </command>    


    <!-- Кикает последних игроков. --> 
    <command id="17">
        <name>!mr</name>
        <group>2</group>
        <cmd>makeroom</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !mr N :: ИНФОРМАЦИЯ -> N - количество последних игроков, которое будет кикнуто.</desc>
    </command>        


    <!-- Помощь (Показывает доступные команды) -->
    <command id="18">
        <name>!help</name>
        <group>100</group>
        <cmd>help</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: [!help] или [!help !command] :: ИНФОРМАЦИЯ -> Показывает список доступных команд.</desc>
    </command>
    
    <!-- Информация (Внутриигровая. Время захода, GUID и т.п.) -->
    <command id="19">
        <name>!pinf</name>
        <group>100</group>
        <cmd>pinfo</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !pinfo + имя :: ИНФОРМАЦИЯ -> Показывает Информацию игроку (Внутриигровая. Время захода, GUID и т.п.).</desc>
    </command>
    
    <!-- Показать администрацию в Сети -->
    <command id="20">
        <name>!ainf</name>
        <group>100</group>
        <cmd>ainfo</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !ainf :: ИНФОРМАЦИЯ -> Show Admins online.</desc>
    </command>


    <!-- Показывает время работы сервера (Время с запуска сервера) -->
    <command id="21">
        <name>!upt</name>
        <group>100</group>
        <cmd>uptime</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !upt :: ИНФОРМАЦИЯ -> Показывает время работы сервера.</desc>
    </command>    
    
    <!-- Отправить глобальное сообщение через BattlEye -->
    <command id="22">
        <name>!say</name>
        <group>10</group>
        <cmd>say</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: [!say Hello] Отправить глобальное сообщение через BattlEye :: ИНФОРМАЦИЯ -> Можно использовать сообщение в ЛС через [!say name !Hello].</desc>
    </command>
    
    <!-- Перезагрузка файла admins.xml -->
    <command id="23">
        <name>!raf</name>
        <group>0</group>
        <cmd>loadadmins</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !raf :: ИНФОРМАЦИЯ -> Перезагружает файл admins.xml.</desc>
    </command>        


    <!-- Перезагрузка файла commands.xml -->
    <command id="24">
        <name>!rcf</name>
        <group>0</group>
        <cmd>loadcommands</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !rcf :: ИНФОРМАЦИЯ -> Перезагружает файл commands.xml.</desc>
    </command>
    
    <!-- Показать время на сервере (Обычно показывается внутриигровое время установленое в HiveExt) -->
    <command id="25">
        <name>!time</name>
        <group>0</group>
        <cmd>systime</cmd>
        <time></time>
        <text></text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !time :: ИНФОРМАЦИЯ -> Показать время на сервере.</desc>
    </command>    


    <!-- Выполнить bat скрипт -->
    <command id="26">
        <name>!math</name>
        <group>2</group>
        <cmd>external</cmd>
        <time></time>
        <text>Config\Script_Example.bat</text>
        <desc>ИСПОЛЬЗОВАНИЕ :: !math Int+Int :: ИНФОРМАЦИЯ -> Выполняет команду из CMD (Название самого bat файла)!.</desc>
    </command>




</BeCommands>

 



Настройка Планировщика Scheduler.xml: 

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

Не забудьте заглянуть в файл
Scheduler-FAQ.txt. Там есть немного полезной информации.

 


1) Убедитесь что Scheduler.xml подключен в config.cfg.

#--------------------------------------------------------------------------------------------------------
[Настройка Планировшика]
#--------------------------------------------------------------------------------------------------------

# Подключите файл Scheduler.xml (По умолчанию уже подключен).
# Это планировщик. Отвечает за рестарты, сообщение, определенные доступные команды в любой удобный вам промежуток времени и количестве использования.
# Scheduler = Scheduler.xml

 

2) Настраиваем Scheduler.xml под себя.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<Scheduler>

	<!-- Cообщения -->
	<job id='0'>
		<day>1,2,3,4,5,6,7</day>
		<start>003000</start>
		<runtime>003000</runtime>
		<loop>-1</loop>
		<cmd>say -1 Авторестарт сервера каждые 4 часа 00:00, 04:00, 08:00, 12:00, 16:00, 20:00</cmd>
	</job>

	<job id='1'>
		<day>1,2,3,4,5,6,7</day>
		<start>000030</start>
		<runtime>003000</runtime>
		<loop>-1</loop>
		<cmd>say -1 Вступай к нам в группу в ВК vk.com/btr_server </cmd>
	</job>

	<job id='2'>
		<day>1,2,3,4,5,6,7</day>
		<start>001500</start>
		<runtime>001500</runtime>
		<loop>-1</loop>
		<cmd>fortune</cmd>
	</job>

	<!-- Рестарты + предупреждения 15, 5, 1 мин в 04:00 -->
	<job id='3'>
		<day>1,2,3,4,5,6,7</day>
		<start>03:45:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 15 минут!!!</cmd>
	</job>

	<job id='4'>
		<day>1,2,3,4,5,6,7</day>
		<start>03:55:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 5 минут!!!</cmd>
	</job>

	<job id='5'>
		<day>1,2,3,4,5,6,7</day>
		<start>03:59:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 1 минуту!!!</cmd>
	</job>
	
	<job id='6'>
		<day>1,2,3,4,5,6,7</day>
		<start>04:00:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>#shutdown</cmd>
	</job>
	
	<!-- Рестарты + предупреждения 15, 5, 1 мин в 08:00 -->
	<job id='7'>
		<day>1,2,3,4,5,6,7</day>
		<start>07:45:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 15 минут!!!</cmd>
	</job>

	<job id='8'>
		<day>1,2,3,4,5,6,7</day>
		<start>07:55:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 5 минут!!!</cmd>
	</job>

	<job id='9'>
		<day>1,2,3,4,5,6,7</day>
		<start>07:59:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 1 минуту!!!</cmd>
	</job>
	
	<job id='10'>
		<day>1,2,3,4,5,6,7</day>
		<start>08:00:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>#shutdown</cmd>
	</job>
	
	<!-- Рестарты + предупреждения 15, 5, 1 мин в 12:00 -->
	<job id='11'>
		<day>1,2,3,4,5,6,7</day>
		<start>11:45:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 15 минут!!!</cmd>
	</job>

	<job id='12'>
		<day>1,2,3,4,5,6,7</day>
		<start>11:55:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 5 минут!!!</cmd>
	</job>

	<job id='13'>
		<day>1,2,3,4,5,6,7</day>
		<start>11:59:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 1 минуту!!!</cmd>
	</job>
	
	<job id='14'>
		<day>1,2,3,4,5,6,7</day>
		<start>12:00:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>#shutdown</cmd>
	</job>
	
	<!-- Рестарты + предупреждения 15, 5, 1 мин в 16:00 -->
	<job id='15'>
		<day>1,2,3,4,5,6,7</day>
		<start>15:45:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 15 минут!!!</cmd>
	</job>

	<job id='16'>
		<day>1,2,3,4,5,6,7</day>
		<start>15:55:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 5 минут!!!</cmd>
	</job>

	<job id='17'>
		<day>1,2,3,4,5,6,7</day>
		<start>15:59:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 1 минуту!!!</cmd>
	</job>
	
	<job id='18'>
		<day>1,2,3,4,5,6,7</day>
		<start>16:00:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>#shutdown</cmd>
	</job>
	
	<!-- Рестарты + предупреждения 15, 5, 1 мин в 20:00 -->
	<job id='19'>
		<day>1,2,3,4,5,6,7</day>
		<start>19:45:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 15 минут!!!</cmd>
	</job>

	<job id='20'>
		<day>1,2,3,4,5,6,7</day>
		<start>19:55:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 5 минут!!!</cmd>
	</job>

	<job id='21'>
		<day>1,2,3,4,5,6,7</day>
		<start>19:59:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 1 минуту!!!</cmd>
	</job>
	
	<job id='22'>
		<day>1,2,3,4,5,6,7</day>
		<start>20:00:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>#shutdown</cmd>
	</job>
	
	<!-- Рестарты + предупреждения 15, 5, 1 мин в 00:00 -->
	<job id='23'>
		<day>1,2,3,4,5,6,7</day>
		<start>23:45:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 15 минут!!!</cmd>
	</job>

	<job id='24'>
		<day>1,2,3,4,5,6,7</day>
		<start>23:55:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 5 минут!!!</cmd>
	</job>

	<job id='25'>
		<day>1,2,3,4,5,6,7</day>
		<start>23:59:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>say -1 ВНИМАНИЕ: Рестарт сервера через 1 минуту!!!</cmd>
	</job>
	
	<job id='26'>
		<day>1,2,3,4,5,6,7</day>
		<start>00:00:00</start>
		<runtime>000000</runtime>
		<loop>0</loop>
		<cmd>#shutdown</cmd>
	</job>
	
</Scheduler>


 

 

 

Изменено пользователем TheFirstNoob
Update до 1.608 (Last) (история изменений)

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


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


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

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


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

UP тема завершена. Пользуйтесь на здоровье.

у меня какаято фигня Error: Missing Ip = in [bec], Fix your config title

Что делать?

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


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

 

 

Настройка проверки данных из Базы (SQL):

 

 

 

 

#--------------------------------------------------------------------------------------------------------
[Проверка Данных из Базы (SQL)]
#--------------------------------------------------------------------------------------------------------
# Укажите данные вашего аккаунта от MySQL которые вводили в HiveExt.ini.
# Читы, логи BattEye будут регистрироваться через вашу Базу Данных. Каждый игрок будет проверяться через БД при присоединении на сервер.

# Укажите Имя пользователя Базы Данных
#User = TheFirstNoob


# Укажите Пароль от пользователя Базы Данных
#Password = YouPassword

 

 

 

 

вот тут ты не прав. в оригинале в конфиги вот что написано:

#--------------------------------------------------------------------------------------------------------
[Reporter]
#--------------------------------------------------------------------------------------------------------
# Reporter account. Fill in the username and password for your reporter account.
# GameHacks, BattlEye Hacks will be reported to a database. all players who connect will also be checked against this database.

# Set the Username for your account
User = user


# Set the Password for your account
Password = pass

а вот это на ibattle написано:

In the [Reporter] block we add in account data so that GameHacks & Battleye Hacks gets automatically reported to a central ban database.

  You will need an account for this to work. You can signup here for a reporter account.

  If you don't have one or don't want to create one, just remove this block since its fully optional.

 

  If its enabled it will also check Ban/status on a Guid.

  Every player that connects is checked against the database when this is enabled.

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


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

вот тут ты не прав. в оригинале в конфиги вот что написано:

#--------------------------------------------------------------------------------------------------------
[Reporter]
#--------------------------------------------------------------------------------------------------------
# Reporter account. Fill in the username and password for your reporter account.
# GameHacks, BattlEye Hacks will be reported to a database. all players who connect will also be checked against this database.

# Set the Username for your account
User = user


# Set the Password for your account
Password = pass
а вот это на ibattle написано:

Ты принцип работы репортера в действии видел хоть?

 

у меня какаято фигня Error: Missing Ip = in [bec], Fix your config title

Что делать?

Попробуйте с IP шником вашим поиграть У меня проблем нету с этим.

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


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

Ты принцип работы репортера в действии видел хоть?

 

больше скажу. у меня он даже включен. скрин, к сожалению, не могу залить. ограничение в 1килобайт.

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

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


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

Ты принцип работы репортера в действии видел хоть?

 

 

Попробуйте с IP шником вашим поиграть У меня проблем нету с этим.

Вообще, там надо иметь акк репортера, а это рега в БЕ + заполнение херовой горы всякой мукулатуры.

И реально БД SQL там не при чем.

 

P.S. И кстати, там в БЕК, система плагинов стоит по умолчанию, львиная доля котораых нафиг не нужна, (если не все), более того, некоторые плагины шлют через БЕК инфу на сервак и обратно.

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


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

Ты принцип работы репортера в действии видел хоть?

 

 

Попробуйте с IP шником вашим поиграть У меня проблем нету с этим.

тоже  сама я ошб пишет

 

Error: Missing Ip = in [bec], Fix your config title\

 

что делть?  ip  свой вписал!!!

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

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


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

тоже  сама я ошб пишет

 

Error: Missing Ip = in [bec], Fix your config title\

 

что делть?  ip  свой вписал!!!

на той же машине что и сервер запускаешь? пиши либо 127.0.0.1 либо localhost

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


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

на той же машине что и сервер запускаешь? пиши либо 127.0.0.1 либо localhost

тоже самое!!!!!! не помогло

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


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

тоже самое!!!!!! не помогло

Попробую перебрать файл конфига и перезалить, у меня нормально все лично.

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


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

Какие то сообщения можно выводить по определённым дням, например у меня на серваке по средам "зализывали раны", no-PVP

 

	<job id='0'>
		<day>3</day>
		<start>006000</start>
		<runtime>006000</runtime>
		<loop>-1</loop>
		<cmd>say -1 Внимание!!! По средам NO-PVP, зализываем раны, пополняем запасы, чиним технику и т.д.</cmd>
	</job>

 

Сразу возможно оговорюсь, про то, что эту тему читают те кто держит сервак на dayzcc, не знаю, может рестарты там уже реализованы, но раньше надо было в шедулере для рестарта менять 

 

<cmd>#shutdown</cmd>    
<cmdtype>0</cmdtype>     

на 

 

<cmd>путь до батника/restart.bat</cmd>    
<cmdtype>1</cmdtype> 

Вроде цифра 0 как внутренняя команда.

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


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

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

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

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

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


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

Войти

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


Войти сейчас

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

    • Автор: NoNameUltima
      Возможности создания:
      Наземные, пешие патрули Наземные патрули на технике Авиационные патрули Морские патрули Статичные ИИ сидящие за орудием Парашютисты Миссии
      Конфигурации:
      *Прикладываю скрипты, для ознакомления с настройками ИИ
      Основное - время исчезновения тел, и т.п. Уровни навыков ИИ, для использования при создании. Объекты инвентаря техники, используемые при создании техники *При создании техники(к примеру патрульной), можно указать ИД из конфигурации инвентаря - выбраный инвентарь будет добавлен в технику.
      Настройки произвольных ИИ, - инвентарь, вооружение и т.п. *При создании произвольных ИИ, данные настройки определяют допустимый инвентарь и т.п.
      Фиксированные ИИ(ИИ с жестко прописанным инвентарем, скилами и т.п.). *При создании ИИ можно использовать произвольных ИИ, - все их настройки будут определены произвольно, из конфигах, в пределах допустимого, или создавать фиксированных - с жестко заданными настройками.
      Настройки парашютистов Пешие патрули Патрули наземные, на технике Авиационные патрули *Схожие с наземными Морские патрули *Схожие с наземными Статичные ИИ сидящие за орудиями *Схожие с наземными Миссии
      Краткое описание:
      Вы можете создавать патрули и миссии на сервере, задавая им, как произвольные точки создания, так и фиксированные. ИИ в патрулях могут быть так же - произвольными - их инвентарь, уровень скилов и т.п. будут зависеть от допустимых параметров которые Вы задали в конфигурации, или фиксированными - с жестко прописанными параметрами.
      Вы можете отдельно создавать любых ИИ.
      Вы можете выставить высокий уровнь отладки, для отслеживания на карте и в жураналах всех изменений, выбраных настроек, маршрутов ИИ и т.д. и т.п.

      Ньюансы и особенности:
      ИИ не предназначены, для какого то определенного мода(вернее, писались они для моего мода, но без каких либо привязок и существенных особенностей), => оповещения(й) о старте миссии(й), при посадке в технику, - не будет(можно добавить самостоятельно, - исходя из мода, который вы используете), а так же не будет сохранения техники ИИ в БД, после захвата ее игроком, хотя такая настройка есть, - можно добавить сохранение самостоятельно, исходя из мода, который Вы используете.
      Оповещения и сохранение в БД прокоментированы в файлах - технически это 2 строки.
      ИИ ставились, как есть на мод EXILE, и работали без каких либо проблем.

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

      Прикладываю скриншот, с отладки:
       


      И часть RPT:
       
       
       
       
       
       


      Стоимость скриптов ИИ: 4000
    • Автор: 123new
      Много вопросов на данную тему наблюдаю от новичков, попробую прояснить немного сей вопрос.
       
      Предположим. что вы уже знаете на каких координатах вам надо спавнить определенное здание или объект\животное\бота, с каким углом поворота. И так. эта тема для вас.
       
      Если вы с расставили их с модифицированной версии Offline (Offline by Arksenor это называется), то вы получили и нашли код вида:
      GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13260.040039 0.0 3670.984131").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13262.756836 0.0 3645.180176").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13265.441406 0.0 3619.531982").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13268.124023 0.0 3593.995361").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13270.844727 0.0 3568.186523").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13273.514648 0.0 3542.561279").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13276.195313 0.0 3517.048828").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13278.399414 0.0 3496.097900").SetOrientation("-96.000000 0.000000 0.000000"); Здесь (по примеру первой строки) 1 значение в скобках - id постройки/объекта, 2 значение - координаты в формате X Y Z, разделенные пробелом, 3 - значение поворота примерно в том же формате.
      Как это делать в Offline - статья от автора Offine:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Add-custom-objects-to-your-server-or-mission
       
      И так, инструкция:
      1. Добавляем в начало init.c файла в вашей mpmissions следующий код:
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\spawn_buildings.c" 2. Создаем в папке вашей активной mpmissions файлик spawn_buildings.c и заполняем его следующей информацией.
      void SpawnObject( string type, vector position, vector orientation ) { private string NameBlockLog = "[CreateObject] "; private string InfoLog = ""; if(type != "") { auto obj = GetGame().CreateObject( type, "0 0 0" ); if(obj) { if ((position[0] != 0) && (position[1] != 0) && (position[2] != 0)) { obj.SetPosition( position ); obj.SetOrientation( orientation ); obj.Update(); if (obj.CanAffectPathgraph()) { obj.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj); } InfoLog = "[Type: '" + obj.GetType() + "' Position: '" + obj.GetPosition().ToString() + "' Orientation: '" + obj.GetOrientation().ToString() + "']"; Write_Log(NameBlockLog + " Object has been created successfully! Info " + InfoLog); } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed position. Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed type. Info " + InfoLog); } } void Write_Log(string message) { Print(String(message)); } 3. Открываем созданный нами файл,  и в конце файла дописываем следующее:
      void SpawnAirfeeldBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } void SpawnKrasnoBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } Где после void - название функции идет, а между открытыми скобками вызов спавна самих зданий на указанных координатах.
      На примере 1 строки:
      Land_CementWorks_ExpeditionB - id постройки (type)
      13251.875000 0.0 3748.525879 - координаты в формате X Y Z
      -96.000000 0.000000 0.000000 - значение поворота в формате X Y Z
      Внимание: id постройки и координаты в примере указаны не верные и требуют подключения дополнительной модификации для корректной работы!!! Координаты не соответствуют названию функции!!!
      4. открываем в MpMissions в папке с вашей активной миссией init.c и перед ЗАКРЫВАЮЩЕЙ скобкой '}' дописываем нужную нам функцию (это будет активация спавна на карте):
      SpawnAirfeeldBuildings(); 5. Готово, Запускайте сервер, и в scripts.log вы увидите процедуру спавна ваших зданий и увидите, спавнятся ли они на карте или нет.
      Можно написать конечно и более готовую, универсальную систему спавна на карте со считыванием конфигурации из файла, но я считаю это лишним.
       
      Как заполнить добавленные здания лутом на карте:
      вариант 1:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Enable-loot-for-custom-placed-objects
      вариант 2: вручную заполнить xml-файл  mapgrouppos.xml в mpmssions данными о местоположении зданий, где rpy - значение поворота здания в формате Z Y X
       
      С помощью данной статьи вы можете разместить любой элемент игры(постройку, животное, зомби, бота), доступный к спавну через любую модификацию-админ. панель. Очень полезный мод в этом смысле BuilderItems, с его помощью можно творить поистину интересные локации!
    • Автор: 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. Решение для "заброшенной колонны" на севере-тоже в процессе.Кому надо-пишите)