Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
ZizionarD

Epoch Antihack / Admin Tools

Recommended Posts

Всем привет! На epochmod.com появилась тема с новой админкой, решил выложить сюда) Честно, не знаю на сколько она лучше чем infistar, но по функционалу она лучше)

 

Данный античит-админка не является коммерческим скриптом, автор античита выложил его в свободный доступ (см. оригинал гайда)! Мной был переведен гайд на наш понятный язык.

 

По сути функционал почти такой-же как и у infistar, только есть ряд своих фишек, а именно:

  • Проверка на запретные файлы (Настраиваются в config.sqf)
  • Проверка файлов миссии на замену (Настраиваются в config.sqf)
  • Проверка на запретные команды в чате (Настраиваются в config.sqf)
  • Система глобального бана (Вроде как не работает уже!?)

 

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

Установка:

1. Качаем архив

2. Папку antihack закидываем в корень dayz_server

3. Открываем файл \z\addons\dayz_server\init\server_functions.sqf и находим:

#include "\z\addons\dayz_server\compile\server_toggle_debug.hpp"

после него вставляем:

#include "\z\addons\dayz_server\antihack\antihack.sqf"

Далее открываем файл \z\addons\dayz_server\system\scheduler\sched_sync.sqf и находим:

// Date format [Year,Month,Day of the month,Hour,Minute]

ниже вставляем:

if (!isNil "AH_timeOverride") exitWith {objNull};

4. Открываем файл antihack\config.sqf и настраиваем под себя

 

Добавление администратора, модератора происходит тут:

local _mod = []; //---Add moderators here - don't forget commas!
local _admin = []; //---Add admins here - don't forget commas!
local _headAdmin = []; //---Add head admins here - don't forget commas!
local _owner = [
	//["", "76561198115492831", true, false, true, ""],
	//[["BigEgg", "FatEgg", "TwinkieDestroyer"], "76561198115492831", true, false, true, ""]
]; //---Add owners here - don't forget commas!

В примерах указанно как добавлять, соответственно 1 - Никнейм, 2- UUID, дальше не трогаем)

5. Сохраняем

6. Из папку 

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

12. Все сохраняем, запаковываем и запускаем)

 

 

BEC:

Если вы используете Battleye Extended Controls то в файле Config.cfg проверьте строку:

AutoLoadBans

она должна быть включена!

Edited by ZizionarD (see edit history)

Share this post


Link to post
Share on other sites



infistar

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

Share this post


Link to post
Share on other sites

@ZizionarD Она работает стабильно? у infistar на зимней черно. работает только половина функций. и в целом работа нарушает работу сервера. 

Share this post


Link to post
Share on other sites
26 минут назад, Horus сказал:

@ZizionarD Она работает стабильно? у infistar на зимней черно. работает только половина функций. и в целом работа нарушает работу сервера. 

Ну я проверял не прям все функции, но работало все нормально

Share this post


Link to post
Share on other sites
56 минут назад, Balcoz сказал:

это что такое?

 

"админка" для arma 2

Share this post


Link to post
Share on other sites
7 часов назад, Balcoz сказал:

это что такое?

 

Почти тот-же infistar, только бесплатный

Share this post


Link to post
Share on other sites

Как правильно прописать администраторов, объясните пожалуйста!

 

local _mod = []; //---Add moderators here - don't forget commas!
local _admin = []; //---Add admins here - don't forget commas!
local _headAdmin = []; //---Add head admins here - don't forget commas!
 

Share this post


Link to post
Share on other sites
5 часов назад, Ivan сказал:

Как правильно прописать администраторов, объясните пожалуйста!

 

local _mod = []; //---Add moderators here - don't forget commas!
local _admin = []; //---Add admins here - don't forget commas!
local _headAdmin = []; //---Add head admins here - don't forget commas!
 

Смотри у тебя идет:

1. Модератор

2. Админ

3. Главный админ

4. Создатель

 

Добавляешь так:

local _headAdmin = [["", "76561198130345370", true, false, true, ""]];

если несколько, то так:

local _headAdmin = [["", "76561198130345370", true, false, true, ""],["", "76561198130345370", true, false, true, ""]];

 

Share this post


Link to post
Share on other sites

Батэлай  кикает.

publicvariable.log ..................... - #0 "AHPV_GetMDEuoF4UXQ" = B 1-1-A:1 ......

Edited by Ivan (see edit history)

Share this post


Link to post
Share on other sites
15.05.2021 в 05:02, Ivan сказал:

Батэлай  кикает.

publicvariable.log ..................... - #0 "AHPV_GetMDEuoF4UXQ" = B 1-1-A:1 ......

В архиве есть фильтры, ты заменял их?

Share this post


Link to post
Share on other sites
3 часа назад, ZizionarD сказал:

В архиве есть фильтры, ты заменял их?

Извиняюсь!  Первый раз скачал, фильтров не было.  

Share this post


Link to post
Share on other sites

Что-то не так.

Написано:

7.Файлы Newtonsoft.Json.dll, Antihack.ini, Antihack.dll в корень сервера

8. Файл antihack.hpp и KFC_Array_Builder.exe в папку с вашей миссией

а в пункте 11. В корне вашей миссии запускаем файл KFC_Array_Builder.exe.

 

Вопрос - куда закинуть файл KFC_Array_Builder.exe.  в корень сервера или в папку с вашей миссией?

Share this post


Link to post
Share on other sites

@Ivan DayzEpochServer\MPMissions\DayZ_Epoch_11.Chernarus\KFC_Array_Builder

У тебя должен быть такой путь. (условно)

 

Пункт 8. гласит скопировать файл в папку с миссией, а пункт 11. запустить этот файл 

Edited by Horus (see edit history)

Share this post


Link to post
Share on other sites
17.05.2021 в 17:16, Ivan сказал:

Что-то не так.

 

17.05.2021 в 19:04, Horus сказал:

@Ivan DayzEpochServer\MPMissions\DayZ_Epoch_11.Chernarus\KFC_Array_Builder

У тебя должен быть такой путь. (условно)

 

Пункт 8. гласит скопировать файл в папку с миссией, а пункт 11. запустить этот файл 

Подправил гайд, теперь должно быть все понятно)

Edited by ZizionarD (see edit history)

Share this post


Link to post
Share on other sites

@ZizionarD В пункте 11. Укажи, что массив файлов заменять нужно в antihack\config.sqf

пришлось поискать в первоисточнике 🙂

Share this post


Link to post
Share on other sites
29.04.2021 в 00:48, ZizionarD сказал:

11. В корне вашей миссии (MPMissions\DayZ_Epoch_11.Chernarus или DayZ_Epoch_24.Napf) запускаем файл KFC_Array_Builder.exe, откроется окно с массивом ваших файлов миссии. Вам нужно все скопировать и вставить в файл antihack\config.sqf вместо:

@Horus Пойдеть?

Share this post


Link to post
Share on other sites
5 часов назад, Ivan сказал:

Всё равно Не робит

Что не так сделал?

Share this post


Link to post
Share on other sites
15 часов назад, ZizionarD сказал:

Что не так сделал?

не понимаю. все делаю по инструкции. пребывал и по  инструкции с оригинала.

Виснет на загрузке.

Share this post


Link to post
Share on other sites
1 минуту назад, Ivan сказал:

не понимаю. все делаю по инструкции. пребывал и по  инструкции с оригинала.

Виснет на загрузке.

RPT пожалуйста в студию

Share this post


Link to post
Share on other sites

неправильно запаковал пбо

в рпт будут ошибки not found server_monitor.sqf и тд

Share this post


Link to post
Share on other sites
23 минуты назад, ZizionarD сказал:

RPT пожалуйста в студию

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

Share this post


Link to post
Share on other sites
21 минуту назад, Ivan сказал:

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

arma2oaserver.RPT тоже пожалуйста

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By ZizionarD
      Требуется:
       
       
      Скрипт позволяет лучше учитывать вес транспортных средств, чтобы добавить более реалистичный эффект при буксировке и подъеме.
       
      Изменения:
      Добавляет уровни транспортных средств по расчетному весу, такие как Большие, Средние, Маленькие и Крошечные для наземных и воздушных транспортных средств. Транспортное средство может буксировать все, что имеет свой размер или меньше. Таким образом, большое наземное транспортное средство может буксировать любое наземное транспортное средство. Транспортное средство среднего класса, такое как внедорожник, может буксировать только другие транспортные средства среднего и меньшего размера. Танк может буксировать любое наземное транспортное средство, но не может быть поднят Большой вертолет может поднимать маленькие и крошечные вертолеты. Большой вертолет может поднять любое наземное транспортное средство, в то время как средний вертолет может поднимать только средние и меньшие по размеру. Автомобиль airTug (название класса "Буксировочный трактор" и другие тягачи) может буксировать любой самолет. Большинство лодок считаются "средними" автомобилями Добавлена возможность сбрасывать поднятые транспортные средства при полете выше 50 метров. Если вы сбросите транспортное средство выше 50 метров, к нему будет прикреплен парашют и дымовая граната. "ParachuteBigWest", если транспортное средство большого размера, в противном случае "ParachuteMediumWest" Автоматически переводится для английских, немецких и французских игроков на основе каждого игрока. Ранее разработчику сервера приходилось выбирать один для всех игроков. Добавляет таблицу строк для ранее поддерживаемых языков. Добавлены переводы на русский язык благодаря пользователю discord Mandarin(Эгберт)#2067 Добавлена возможность требовать магазин для буксировки транспортного средства с возможностью также забрать этот магазин и третий вариант - вернуть магазин, когда транспортное средство не тронуто. Добавлена возможность требовать инструмент / оружие для буксировки транспортного средства, с возможностью также забрать этот инструмент / оружие и третья возможность вернуть инструмент / оружие, когда транспортное средство не тронуто. Добавлена возможность изменения расстояния, с которого игроки могут буксировать транспортные средства. Добавляет опцию скрыть опцию буксировки колеса прокрутки, если буксируемое транспортное средство не находится рядом с транспортным средством, которое может его буксировать.  
      Установка:
      1. Скачать архив
      2. Из архива папку logistic переместить в корень вашей миссии
      3. Открыть файл init.sqf и заменить:
      execVM "\z\addons\dayz_code\system\antihack.sqf"; на:
      // Enables Plant lib fixes execVM "\z\addons\dayz_code\system\antihack.sqf"; call compile preprocessFileLineNumbers "logistic\init.sqf"; 4. Установка завершена
       
      Оригинал статьи: epochmod.com
    • By MrMiBl
      Всем привет! С наступающим!  
      Проблема такая: безсознанка очень долгая (от двух минут и больше от рандомной пульки...)
      Собственно вопрос: как её отключить либо сократить время?  
      покопавшись в файлах нашел такую тему: fn_unconscious.sqf
      // (c) facoptere@gmail.com, licensed to DayZMod for the community private ["_count","_anim","_weapon","_sprint","_stance","_transmove","_start","_timeout","_short","_sandLevel","_speed"]; if (r_player_unconsciousInProgress) exitWith {}; r_player_unconsciousInProgress = true; r_player_unconsciousInputDisabled = true; //this is like this in order to release the current user input disableUserInput true; disableUserInput true; disableUserInput false; disableUserInput false; disableUserInput true; disableUserInput true; _start = diag_tickTime; _timeout = abs r_player_timeout; _short = _timeout < 4; if (!_short) then { 4 cutRsc ["playerStatusWaiting", "PLAIN",1]; playSound "heartbeat_1"; }; _count = 0; // can be set to false by medEPI.sqf, during the 'while' loop r_player_unconscious = true; player setVariable ["NORRN_unconscious", r_player_unconscious, true]; _sandLevel = ctrlPosition ((uiNamespace getVariable 'DAYZ_GUI_waiting') displayCtrl 1400); //diag_log [(diag_tickTime - _start) < _timeout , !r_player_unconscious , alive player ]; dayz_autoRun = false; if (player == vehicle player) then { player playAction "CanNotMove"; }; "dynamicBlur" ppEffectEnable true;"dynamicBlur" ppEffectAdjust [2]; "dynamicBlur" ppEffectCommit 0; "colorCorrections" ppEffectEnable true;"colorCorrections" ppEffectEnable true;"colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 0.1], [1, 1, 1, 0.0]];"colorCorrections" ppEffectCommit 0; if (dayz_soundMuted) then {call player_toggleSoundMute;}; // hide icon before fadeSound 0 fadeSound 0.05; while { (diag_tickTime - _start) < _timeout and r_player_unconscious and alive player } do { player setVariable ["unconsciousTime", _timeout - diag_tickTime + _start, (_count % 10) == 0]; if (!_short) then { _sandLevel set [ 3, 0.136829 * safezoneH * (diag_tickTime - _start) / _timeout ]; ((uiNamespace getVariable 'DAYZ_GUI_waiting') displayCtrl 1400) ctrlSetPosition _sandLevel; ((uiNamespace getVariable 'DAYZ_GUI_waiting') displayCtrl 1400) ctrlCommit 0.05; }; /*_veh = vehicle player; if ((player != _veh) and {(_veh iskindOf "LandVehicle")}) then { _speed = [0,0,0] distance velocity _veh; if (_speed > 10) then { _veh engineOn false; } else { player action ["eject", _veh]; player leaveVehicle _veh; [] spawn { uiSleep 0.1; player playMoveNow "amovppnemstpsnonwnondnon"; }; // instant prone }; }; if (player == _veh) then { player setVelocity [0,0,0]; }; */ uiSleep 0.1; _count = _count + 1; }; if (!_short) then{ 4 cutRsc ["default", "PLAIN",0]; }; r_player_unconscious = false; player setVariable ["NORRN_unconscious", r_player_unconscious, true]; r_player_timeout = 0; player setVariable ["unconsciousTime", r_player_timeout, true]; r_player_cardiac = false; player setVariable ["USEC_isCardiac",r_player_cardiac, true]; r_player_unconsciousInProgress = false; 4 cutRsc ["default", "PLAIN",1]; if (player == vehicle player) then { // "AinjPpneMstpSnonWnonDnon" rolls from back first (jarring transition if player was knocked out prone or fell to stomach) [nil, player, rSWITCHMOVE, "AmovPpneMstpSnonWnonDnon_healed"] call RE; player SWITCHMOVE "AmovPpneMstpSnonWnonDnon_healed"; PVDZ_plr_SwitchMove = [player,"AmovPpneMstpSnonWnonDnon_healed"]; publicVariableServer "PVDZ_plr_SwitchMove"; //Needed to execute switchMove on server machine. rSwitchMove only executes on other clients player playMoveNow "AmovPpneMstpSnonWnonDnon_healed"; }; 10 fadeSound 1; "dynamicBlur" ppEffectAdjust [0]; "dynamicBlur" ppEffectCommit 5; "colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 1], [1, 1, 1, 1]];"colorCorrections" ppEffectCommit 5; if ({getNumber (configFile >> "CfgWeapons" >> _x >> "type") in [1,2]} count (weapons player) > 0) then { //Prevent firing while weapon is still shown on back or holstered. AmovPpneMstpSnonWnonDnon_healed has disableWeapons=0 in config (should be 1) waitUntil {uiSleep 1; !(animationState player in ["ainjppnemstpsnonwnondnon_rolltofront","amovppnemstpsnonwnondnon_healed","amovppnemstpsnonwnondnon"])}; }; //once more to be safe disableUserInput false; disableUserInput false; disableUserInput true; disableUserInput true; disableUserInput false; disableUserInput false; r_player_unconsciousInputDisabled = false; //diag_log [ __FILE__, diag_tickTime, "done" ]; Копать тут или где-то в другом месте?
    • By ZizionarD
      Это обновленная версия JAEM от OtterNas3 для DayZ Epoch 1.0.7. Обновлена версия до ZSC и развернул все совместимое. ZSC можно использовать в качестве опции для оплаты создания эвакуационного вертолета, а действия Мудзерели по щелчку правой кнопкой мыши можно использовать для вызова эвакуационного вертолета.
       
      Новые возможности:
      Поддержка ZSC - вы можете выбрать валюту эпохи или ZSC для оплаты вашего эвакуационного вертолета. Развертывание техники - вы можете использовать действия Mudzereli по щелчку правой кнопкой мыши для вызова эвакуационного вертолета вместо использования встроенного цикла самостоятельного действия. Plot pole и plot friends - чтобы игроки не могли размещать вертолетные площадки для эвакуации в запрещенных местах, они должны строить их на своих собственных участках или на участках своих друзей. Все переменные конфигурации размещены в файле variables.sqf. Все переменные имеют пояснительные комментарии. Настройте их в соответствии с вашими предпочтительными настройками:
      // Evac Chopper Config Variables evac_chopperPrice = 1; // This is the price players pay in full briefcases to set up an evac chopper (between 1-12 briefcases). Players must have the briefcases in their inventory. evac_chopperUseZSC = false; // If you have ZSC installed you can set this to true and have players pay the amount below to set up an evac chopper. evac_chopperPriceZSC = 100000; // Price for evac chopper if you have ZSC Installed and evac_chopperUseZSC set to true. evac_chopperMinDistance = 500; // Minimum distance for player to call evac chopper. Do not set this lower than 500. evac_chopperZoneMarker = 0; // Evac zone marker type (0 = Landingpad | 1 = Smoke). evac_chopperNeedRadio = 0; // 1 - Require player to have a radio in gear to call evac chopper | 0 - Doesn't require radio to call evac chopper. evac_chopperUseClickActions = false; // If you have Mudzereli's Deploy Anything installed and are going to use click actions to call the evac chopper, set this to true (disables call chopper self-action loop). Инструкции по функциональности:
      Если у вас есть какие-либо другие моды, которые сохраняют имя класса "HeliHRescue" в базе данных, имейте в виду, что это конкретное имя класса используется вместе с идентификатором владельца для работы этого мода. Если у вас уже есть экземпляр HeliHRescue, сохраненный в базе данных с вашим идентификатором игрока, вы получите сообщение о том, что вы не можете создать другой экземпляр при попытке установить вертолет эвакуации. Чтобы создать эвакуационный вертолет, вам нужен вертолет с ключом, столб для участка и деньги для покупки. У вас должен быть ключ в вашем инвентаре, чтобы установить и очистить поле эвакуационный вертолет. Подойдите к вертолету, и вы получите действия для настройки и очистки поля эвакуационного вертолета. Вам не обязательно иметь при себе ключ, чтобы вызвать эвакуационный вертолет. Существует монитор состояния полета, который отображается в том же месте, что и монитор отладки, поэтому для его просмотра вам потребуется отключить отладку. Если вы используете действия по щелчку правой кнопкой мыши Mudzereli, обязательно установите переменную evac_chopperUseClickActions в значение true, чтобы отключить встроенный цикл самостоятельных действий. Если ваш вертолет будет уничтожен, просто поместите новый на вертолетную площадку. Функция вызова эвакуационного вертолета находит ближайший вертолет (в пределах 10 метров) от вашей спасательной вертолетной площадки. Деньги не возвращаются, когда вы отключаете эвакуационный вертолет. Известные проблемы:
      На данный момент известна только одна проблема. Если игрок будет убит во время полета эвакуационного вертолета, вертолет не вернется на базу. Пилот приземляется в зоне эвакуации, выходит из вертолета и просто стоит там. Вертолет остается заблокированным.
       
      Установка:
      1. Скачать
      2. Разархивируйте архив
      3. Распакуйте свою миссию PBO
      4. Скопируйте папку scripts в корневую папку вашей миссии, если у вас уже есть папка scripts, скопируйте в нее папку JAEM.
      5. Скопируйте папку dayz_code в корневую папку вашей миссии, если у вас ее еще нет. Если у вас уже есть папка dayz_code и те же файлы из предыдущей установки, вы отредактируете существующие файлы на шаге 7.
      6. Откройте файл init.sqf и найдите строку:
      call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; Добавьте под ним следующую строку:
      call compile preprocessFileLineNumbers "dayz_code\init\variables.sqf"; Найти строку:
      call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; Добавьте под ним следующую строку:
      call compile preprocessFileLineNumbers "dayz_code\init\compiles.sqf"; Найти строку:
      waitUntil {scriptDone progress_monitor}; Добавьте над ним следующие строки:
      execVM "scripts\JAEM\EvacChopper_init.sqf"; 7. Если у вас уже есть кастомный файл fn_selfActions.sqf в каталоге dayz_code\compile, откройте этот файл. Если нет, вы должны были скопировать его из загрузки на шаге 5.
      Найти код:
      if (_isPZombie) then { if (s_player_attack < 0) then { s_player_attack = player addAction [localize "STR_EPOCH_ACTIONS_ATTACK", "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf", _cursorTarget, 6, false, true]; }; if (s_player_callzombies < 0) then { s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\pzombie\call_zombies.sqf",player, 5, true, false]; }; if (s_player_pzombiesvision < 0) then { s_player_pzombiesvision = player addAction [localize "STR_EPOCH_ACTIONS_NIGHTVIS", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"]; }; if (!isNull _cursorTarget && (player distance _cursorTarget < 3)) then { _isZombie = _cursorTarget isKindOf "zZombie_base"; _isHarvested = _cursorTarget getVariable["meatHarvested",false]; _isMan = _cursorTarget isKindOf "Man"; //includes animals and zombies if (!alive _cursorTarget && _isMan && !_isZombie && !_isHarvested) then { if (s_player_pzombiesfeed < 0) then { s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",_cursorTarget, 3, true, false]; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; }; Добавьте под ним следующий блок кода.
      Примечание: Если вы используете опцию Развертывание техники, вам не нужно использовать код, приведенный непосредственно ниже.
      // Call EvacChopper if (playerHasEvacField && {!evac_chopperUseClickActions}) then { if (player distance playersEvacField >= evac_chopperMinDistance && !evac_chopperInProgress && {isNull cursorTarget} && {speed player < 1} && {!_inVehicle}) then { if (evac_chopperNeedRadio == 1) then { if ("ItemRadio" in (items player)) then { if (s_player_evacCall < 0) then { s_player_evacCall = player addAction [("<t color=""#0000FF"">" + ("Call Evac-Chopper") + "</t>"),"scripts\JAEM\CallEvacChopper.sqf",[],-1000,false,false,"",""]; }; }; } else { if (s_player_evacCall < 0) then { s_player_evacCall = player addAction [("<t color=""#0000FF"">" + ("Call Evac-Chopper") + "</t>"),"scripts\JAEM\CallEvacChopper.sqf",[],-1000,false,false,"",""]; }; }; } else { player removeAction s_player_evacCall; s_player_evacCall = -1; }; }; Найдите блок кода:
      // Allow Owner to lock and unlock vehicle if (_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { local _totalKeys = call epoch_tempKeys; local _temp_keys = _totalKeys select 0; local _temp_keys_names = _totalKeys select 1; local _hasKey = _characterID in _temp_keys; local _oldOwner = (_characterID == _uid); local _unlock = []; if (_isLocked) then { if (_hasKey || _oldOwner) then { _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (_temp_keys find _characterID))], 2, true, true]; s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; } else { if (_hasHotwireKit) then { _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true]; } else { _unlock = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, false, true]; }; s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; }; } else { if (_hasKey || _oldOwner) then { _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; }; } else { {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; Замените весь блок кода следующим:
      // Allow Owner to lock and unlock vehicle if (_player_lockUnlock_crtl) then { local _totalKeys = call epoch_tempKeys; local _temp_keys = _totalKeys select 0; local _temp_keys_names = _totalKeys select 1; local _hasKey = _characterID in _temp_keys; local _oldOwner = (_characterID == _uid); if (s_player_lockUnlock_crtl < 0) then { local _unlock = []; if (_isLocked) then { if (_hasKey || _oldOwner) then { _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (_temp_keys find _characterID))], 2, true, true]; s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; } else { if (_hasHotwireKit) then { _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true]; } else { _unlock = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, false, true]; }; s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; }; } else { if (_hasKey || _oldOwner) then { _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; }; // EvacChopper if (s_player_evacChopper_ctrl < 0) then { if ((_cursorTarget isKindOf "Helicopter") && (_hasKey || _oldOwner) && !evac_chopperInProgress) then { if (!playerHasEvacField) then { local _setEvac = player addAction [("<t color=""#0000FF"">" + ("Set Evac-Chopper") + "</t>"),"scripts\JAEM\SetEvacChopper.sqf",_cursorTarget,3,false,true]; s_player_evacChopper set [count s_player_evacChopper,_setEvac]; s_player_evacChopper_ctrl = 1; }; if (playerHasEvacField && (player distance playersEvacField < 10)) then { local _clearEvac = player addAction [("<t color=""#0000FF"">" + ("Clear Evac-Chopper") + "</t>"),"scripts\JAEM\ClearEvacChopper.sqf",_cursorTarget,4,false,true]; s_player_evacChopper set [count s_player_evacChopper,_clearEvac]; s_player_evacChopper_ctrl = 1; }; }; }; } else { {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; {player removeAction _x} count s_player_evacChopper;s_player_evacChopper = []; s_player_evacChopper_ctrl = -1; }; Найдите строку (около строки 1050):
      s_player_lockUnlock_crtl = -1; Добавьте под ним следующие строки:
      {player removeAction _x} count s_player_evacChopper;s_player_evacChopper = []; s_player_evacChopper_ctrl = -1; 8. Если у вас уже есть кастомный variables.sqf в каталоге dayz_code\init, откройте этот файл. Если нет, вы должны были скопировать его из загрузки на шаге 5.
      Откройте кастомный variables.sqf и найдите строку:
      //Player self-action handles под этой строкой добавьте:
      DayZ_SafeObjects set [count DayZ_SafeObjects, "HeliHRescue"]; // Evac Chopper Variables playerHasEvacField = false; // DO NOT CHANGE. playersEvacField = objNull; // DO NOT CHANGE. s_player_evacChopper = []; // DO NOT CHANGE. evac_chopperInProgress = false; //DO NOT CHANGE. // Evac Chopper Config Variables evac_chopperPrice = 1; // This is the price players pay in full briefcases to set up an evac chopper. evac_chopperPriceZSC = 10000; // Price for evac chopper if you have ZSC Installed and evac_chopperUseZSC set to true. evac_chopperAllowRefund = false; // Allow players to get their money back when they remove an evac-chopper field. evac_chopperMinDistance = 500; // Minimum distance for player to call evac chopper. Do not set this lower than 500. evac_chopperZoneMarker = 0; // Evac zone marker type (0 = Landingpad | 1 = Smoke). evac_chopperNeedRadio = 0; // 1 - Require player to have a radio in gear to call evac chopper | 0 - Doesn't require radio to call evac chopper. evac_chopperUseClickActions = false; // If you have Deploy Anything installed and are going to use click actions to call the evac chopper, set this to true (disables call chopper self-action loop). evac_ChopperDisabledMarker = true; // Place a private map marker of the evac chopper's location if (isServer) then {"CallEvacChopper" addPublicVariableEventHandler {(_this select 1) spawn server_callEvacChopper;};}; Если у вас уже есть этот раздел из предыдущей установки, просто добавьте следующие строки внизу над };
      s_player_evacChopper_ctrl = -1; s_player_evacCall = -1; Убедитесь, что вы сравниваете свой файл с файлом, указанным в загрузке, чтобы строки оказались в правильном месте.
      9. Если у вас уже есть кастомный compiles.sqf в каталоге dayz_code\init, откройте этот файл. Если нет, вы должны были скопировать его из загрузки на шаге 5.
      Скопируйте следующую строку в раздел !isDedicated, если у вас ее еще нет в предыдущей установке:
      fnc_usec_selfactions = compile preprocessFileLineNumbers "dayz_code\compile\fn_selfActions.sqf"; 10. Запакуйте свою миссию PBO
      11. Распакуйте PBO вашего сервера и откройте dayz_server\system\server_monitor.sqf
      Найдите эту строку:
      dayz_serverIDMonitor = []; Добавьте под ним следующую строку:
      PVDZE_EvacChopperFields = []; Найдите эту строку:
      if (_type == "Base_Fire_DZ") then {_object spawn base_fireMonitor;}; Добавьте под ним следующую строку:
      if (_type == "HeliHRescue") then {PVDZE_EvacChopperFields set [count PVDZE_EvacChopperFields, _object];}; Найдите эту строку:
      publicVariable "sm_done"; Добавьте под ним следующий блок кода:
      publicVariable "PVDZE_EvacChopperFields"; ON_fnc_evacChopperFieldsUpdate = { local _action = _this select 0; local _field = _this select 1; if (_action == "add") then {PVDZE_EvacChopperFields = PVDZE_EvacChopperFields + [_field];}; if (_action == "rem") then {PVDZE_EvacChopperFields = PVDZE_EvacChopperFields - [_field];}; publicVariable "PVDZE_EvacChopperFields"; }; "PVDZE_EvacChopperFieldsUpdate" addPublicVariableEventHandler {(_this select 1) call ON_fnc_evacChopperFieldsUpdate}; Сохраняем и закрываем
      12. Откройте dayz_server\init\server_functions.sqf
      Найдите эту строку:
      spawn_vehicles = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\spawn_vehicles.sqf"; Добавьте под ним следующую строку:
      server_callEvacChopper = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_callEvacChopper.sqf"; Сохраняем и закрываем
      13. Скопируйте файл dayz_server\compile\server_callEvacChopper.sqf в папку вашего сервера.
      14. Запаковать сервер PBO
      15. Полный набор необходимых файлов BattlEye был предоставлен в папке BattlEye. Если у вас новый сервер или вы предпочитаете диффмердж, вы можете использовать эти файлы. В противном случае следуйте приведенным ниже инструкциям.
       
      Настройка Battleye фильтров:
      1. Открыть файл publicvariable.txt
      Добавьте это в конец строки 2:
      !=PVDZE_EvacChopperFieldsUpdate !=CallEvacChopper 2. Открыть файл createvehicle.txt
      Добавьте это в конец строки 2:
      !="HeliHRescue" 3. Открыть файл scripts.txt
      Добавьте это в конец строки 17:
      !"\\dayz_code\\init\\compiles.sqf\"\nif (!isDedicated) then {\ndiag_log \"Loading custom client com" Добавьте это в конец строки 2:
      !=" (s_player_evacCall < 0) then {\ns_player_evacCall = player addAction [(\"<t color=\"\"#0000FF\"\">\" + (\"Call Evac-Chopper\") + \"</t>\")" Добавьте это в конец строки 21:
      !="time = time;\n_chopperPos = getPos _evacChopper;\n_marker = createMarkerLocal [\"EvacChopper\",_chopperPos];\n_marker setMarkerColorL" Добавьте это в конец строки 27:
      !="me) > evac_chopperMarkerTimeout) then {_recovered = true; deleteMarkerLocal _marker; \"EVAC Chopper map marker deleted\" call dayz" Добавьте это в конец строки 38:
      !="_this select 4;};\n\nif (_flightStatus == \"Arrived\") exitWith\n{\nhintSilent parseText format [\"\n <t size='1.15' font='Bitstream'a" Добавьте это в конец строки 58:
      !="= createMarkerLocal [\"EvacChopper\",_chopperPos];\n_marker setMarkerColorLocal \"ColorBlack\";\n_marker setMarkerTypeLocal \"mil_objec" Добавьте это в конец строки 63:
      !="ck\";\n_marker setMarkerTypeLocal \"mil_objective\";\n_marker setMarkerTextLocal \"EvacChopper\";\nwhile {!_recovered} do {\nif (!alive _" Добавьте это в конец строки 64:
      !="rPos];\n_marker setMarkerColorLocal \"ColorBlack\";\n_marker setMarkerTypeLocal \"mil_objective\";\n_marker setMarkerTextLocal \"EvacCho" Добавьте это в конец строки 72:
      !="FNC_GetPos;\n_canceled = false;\n\n\nfor \"_p\" from 1 to 5 do\n{\nsystemChat(format [\"Evac-Chopper get called in %1s - Move to cancel!\""  
      Настройка развертывание техники:
      1. Если вы хотите использовать действия по щелчку правой кнопкой мыши при развертывании чего-либо для вызова прерывателя эвакуации вместо встроенных самостоятельных действий, найдите эту переменную в кастомном variables.sqf:
      Найдите эту переменную
      evac_chopperUseClickActions = false; и измените на:
      evac_chopperUseClickActions = true; Откройте файл вашей миссии и найдите файл overwrites\click_actions\config.sqf.
      Добавьте это в нижнюю часть массива DZE_CLICK_ACTIONS:
      ["ItemGPS","Call Evac Chopper","execVM 'scripts\JAEM\callEvacChopper.sqf';","true"] Примечание: вы можете привязать действие щелчка правой кнопкой мыши к любому элементу ремня для инструментов. Я просто выбрал ItemGPS по умолчанию. Убедитесь, что вы поставили запятую на предпоследней.
       
      Так-же в файле scripts.txt в конец строки 32 добавить:
      !="execVM 'scripts\\JAEM\\callEvacChopper.sqf';"  
      Оригинал статьи: epochmod.com
    • By ZizionarD
      Простые сценарии, для того, чтобы склеить обоймы вместе, увеличивая количество патронов для установленных обойм. На основе
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      2. Из архива переместить файлы в папку scripts которая находится в корне вашей миссии
      3. Установить скрипт Click Actions, если установлен, пропускаем пункт
      4. Переходим в папку scripts\clickActions и открываем файл config.sqf и находим строки:
      DZE_CLICK_ACTIONS = [ ["ItemGPS",localize "STR_CL_CA_SCAN_NEARBY","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_ZOMBIE_COUNT = count ((position player) nearEntities ['zZombie_Base',CA_GPS_RANGE]); CA_MAN_COUNT = count ((position player) nearEntities ['CAManBase',CA_GPS_RANGE]); format[localize 'STR_CL_CA_SCAN',CA_GPS_RANGE,CA_MAN_COUNT - CA_ZOMBIE_COUNT,count ((position player) nearEntities ['zZombie_Base',CA_GPS_RANGE]),count ((position player) nearEntities ['allVehicles',CA_GPS_RANGE]) - CA_MAN_COUNT] call dayz_rollingMessages;","true"], ["ItemGPS",localize "STR_CL_CA_RANGE_UP","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_GPS_RANGE = (CA_GPS_RANGE + 100) min 2500; format[localize 'STR_CL_CA_RANGE_GPS',CA_GPS_RANGE] call dayz_rollingMessages;","true"], ["ItemGPS",localize "STR_CL_CA_RANGE_DOWN","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_GPS_RANGE = (CA_GPS_RANGE - 100) max 1000; format[localize 'STR_CL_CA_RANGE_GPS',CA_GPS_RANGE] call dayz_rollingMessages;","true"] ]; внутри этого блока ниже вставляем
      ,["30Rnd_545x39_AK","Tape Mags","execVM 'scripts\AK.sqf';","true"], ["30Rnd_545x39_AKSD","Tape Mags","execVM 'scripts\AKSD.sqf';","true"], ["30Rnd_556x45_Stanag","Tape Mags","execVM 'scripts\Stanag.sqf';","true"], ["30Rnd_556x45_StanagSD","Tape Mags","execVM 'scripts\StanagSD.sqf';","true"], ["30Rnd_762x39_AK47","Tape Mags","execVM 'scripts\AK47.sqf';","true"] должно получиться примерно так
      DZE_CLICK_ACTIONS = [ ["ItemGPS",localize "STR_CL_CA_SCAN_NEARBY","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_ZOMBIE_COUNT = count ((position player) nearEntities ['zZombie_Base',CA_GPS_RANGE]); CA_MAN_COUNT = count ((position player) nearEntities ['CAManBase',CA_GPS_RANGE]); format[localize 'STR_CL_CA_SCAN',CA_GPS_RANGE,CA_MAN_COUNT - CA_ZOMBIE_COUNT,count ((position player) nearEntities ['zZombie_Base',CA_GPS_RANGE]),count ((position player) nearEntities ['allVehicles',CA_GPS_RANGE]) - CA_MAN_COUNT] call dayz_rollingMessages;","true"], ["ItemGPS",localize "STR_CL_CA_RANGE_UP","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_GPS_RANGE = (CA_GPS_RANGE + 100) min 2500; format[localize 'STR_CL_CA_RANGE_GPS',CA_GPS_RANGE] call dayz_rollingMessages;","true"], ["ItemGPS",localize "STR_CL_CA_RANGE_DOWN","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_GPS_RANGE = (CA_GPS_RANGE - 100) max 1000; format[localize 'STR_CL_CA_RANGE_GPS',CA_GPS_RANGE] call dayz_rollingMessages;","true"] ,["30Rnd_545x39_AK","Tape Mags","execVM 'scripts\AK.sqf';","true"], ["30Rnd_545x39_AKSD","Tape Mags","execVM 'scripts\AKSD.sqf';","true"], ["30Rnd_556x45_Stanag","Tape Mags","execVM 'scripts\Stanag.sqf';","true"], ["30Rnd_556x45_StanagSD","Tape Mags","execVM 'scripts\StanagSD.sqf';","true"], ["30Rnd_762x39_AK47","Tape Mags","execVM 'scripts\AK47.sqf';","true"] ]; 5. Сохраняем, закрываем
      6. Готово
    • By ZizionarD
      Простой скрипт, который выводит ник владельца (или первого друга в списке), когда игрок входит в радиус плота. Это может быть полезно для серверов, которым нравится совершать набеги на базы, и в целом позволяет игрокам наносить на карту местоположения баз.
       
      Установка:
      1. Скачать архив
      2. Переходим в корень вашей миссии и в папку custom переносим файл plot_owner.sqf из архива
      3. В корне вашей миссии открываем файл init.sqf и находим троку:
      execVM "\z\addons\dayz_code\system\antihack.sqf"; ниже добавляем
      execVM "custom\plot_owner.sqf"; 4. Сохраняем, закрываем
      5. Установка завершена
       
      Оригинал статьи: epochmod.com
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.