Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

История изменений

Здесь нет истории для отображения или этот комментарий был изменён модератором

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

    • Автор: Suslikonator
      Доброго времени суток, господа, появилась задачка убрать с конкретных координат точку спавна хеликраша, где эти точки вообще настраиваются, в каком файле, ибо искал, но так и не нашел. И возможно ли подобное вообще.
    • Автор: BorizzK
      Функция вернет кол-во игроков рядом с текущей позицией игрока в заданном радиусе
      Использую на своем сервере при рандомном спавне нового игрока, что бы не заспавнился рядом с уже вооруженным и злым
      Если при спавне рядом есть игрок, то выбираются новые координаты для спавна
       
      int CheckNearestObjects(PlayerBase player, int radius) { array<Object> nearest_objects = new array<Object>; array<CargoBase> proxy_cargos = new array<CargoBase>; Object object; string className; int objectcount = 0; GetGame().GetObjectsAtPosition (player.GetPosition(), radius, nearest_objects, proxy_cargos ); Print("::: init_mod.c ::: CheckNearestObjects (int radius) ::: Radius: " + radius.ToString() + ", nearest_objects: " + nearest_objects.Count().ToString()); for ( int i = 0; i < nearest_objects.Count(); i++ ) { object = nearest_objects.Get(i); className = object.GetType(); if ( object ) { if (object.IsMan()) { if (player != object) { Print( "::: Init.c ::: CheckNearestObjects: IsMan(): "+i.ToString()+" => " + object.ToString() + " => Type: " + className + " => Position: " + object.GetPosition().ToString()); objectcount = objectcount + 1; } else { Print( "::: Init.c ::: CheckNearestObjects: isMan(): player and object " + object.ToString() + " the same object!"); } } } } return objectcount; }  
    • Автор: ZizionarD
      Я всегда думал, что это крутое серверное событие, поэтому я обновил его для DayZ Epoch/Overpoch 1.0.6.2, дал ему некоторую оптимизацию кода и добавил некоторые новые функции.
       
      Обновления для DayZ Epoch/Overpoch 1.0.6.2:
      Обновлено под новые лут таблицы 1.0.6.2 Режим отладки включает или отключает журналы диагностики rpt сервера. Регулируемый тайм-аут миссии. Убрана трава вокруг лута Цикл маркеров JIP (заменяет waitUntil, используемый для обнаружения игроков). Автоматически определяет используемую карту и настраивает ее соответствующим образом. Настраиваемый черный список на карте. Этот мод работает с картами: Chernarus, Lingor, Sahrani, Panthera, Namalsk, Taviana, Napf, Sauerland, and Takistan.
       
      Рекомендуемое ПО:
      PBO Manager Notepad++ (x32) (x64) Установка:
      1. Скачать архив
      2. Распаковать dayz_server.pbo и поместить файл animated_crash_spawner.sqf в директорию dayz_server\modules
      3. Поскольку вы устанавливаете анимированный Crash Spawner, я рекомендую вам отключить DayZ Vanilla Crash Spawner. Для этого отредактируйте файл dayz_server\system\server_monitor.sqf в Notepad++
      Найдите эту строку:
      [] execVM "\z\addons\dayz_server\compile\server_spawnCrashSites.sqf"; и закомментируйте ее, чтобы это выглядело так:
      //[] execVM "\z\addons\dayz_server\compile\server_spawnCrashSites.sqf"; 4. Сохраните файл и повторно запакуйте dayz_server.pbo
      5. Переходим в директорию со своей миссией
      6. Откройте init.sqf в Notepad++
      Найти строку:
      EpochUseEvents = false; Измените его на true:
      EpochUseEvents = true; Найдите строку:
      EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"],["any","any","any","any",15,"supply_drop"]]; Замените ее на:
      EpochEvents = [["any","any","any","any",5,"animated_crash_spawner"],["any","any","any","any",35,"animated_crash_spawner"]]; Это будет спавнить анимированный HeliCrash каждые 30 минут, пока ваш сервер онлайн. Первый начнется после того, как сервер будет в сети в течение 5 минут. Примечание: старые события crash_spawner и supply_drop больше не используются в DayZ Epoch 1.0.6+, поэтому мы удаляем их из массива EpochEvents.
       
      Опционально:
      Вы можете настроить анимированный HeliCrash со следующим блоком определений и переменных.
      // Configs - You can adjust these #define DEBUG_MODE false // Adds diagnostic entries to the server rpt #define CRASH_TIMEOUT 1200 // The amount of time it takes for the mission to time out if no players show up #define SPAWN_CHANCE 100 // Percent chance of spawning a crash number between 0 - 100 #define GUARANTEED_LOOT 16 // Guaranteed Loot Spawns #define RANDOM_LOOT 8 // Random number of loot piles as well as the guaranteed ones #define SPAWN_FIRE true // Spawn Smoke/Fire at the helicrash #define FADE_FIRE false // Fade the Smoke/Fire overtime #define PREWAYPOINTS 2 // Amount of way points the heli flies to before crashing #define MIN_LOOT_RADIUS 4 // Minimum distance for loot to spawn from the crash site in meters #define MAX_LOOT_RADIUS 10 // Maximum distance for loot to spawn from the crash site in meters #define MARKER_RADIUS 400 // Radius for the marker #define SHOW_MARKER true // Show a marker on the map #define MARKER_NAME true // Add the crash name to the marker, SHOW_MARKER must be true #define LOWER_GRASS true // lowers the grass around the loot _crashDamage = 1; // Amount of damage the heli can take before crashing (between 0.1 and 1) Lower the number and the heli can take less damage before crashing 1 damage is fully destroyed and 0.1 something like a DMR could one shot the heli _exploRange = 200; // How far away from the predefined crash point should the heli start crashing  
      Вы также можете настроить черный список для каждой карты, если вы не хотите, чтобы HeliCrash спавнились в определенных областях карты.
      _blackList = []; Добавить координаты. Инструкция для черного списка находится в BIS_fnc_selectRandom
       
      Если вы используете This Crashsite Loot Table, каждый HeliCrash выбирает одну из групп рандомно. Если вы хотите использовать кастомный лут, то вы можете настроить лут в этом файле.
      Статья взята с сайта: epochmod.com
      Понравилась статья? Поставь +
    • Автор: Sovest2
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Подготовка
      Для начала нам понадобится подключить кастомный player_death.sqf в compiles.sqf
      Делается это следующим образом:
      В compiles.sqf заменить строку 
      player_death = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf"; на
      player_death = compile preprocessFileLineNumbers "*ВАШ ПУТЬ*\player_death.sqf";  
      Если у вас стоит инфистар,то необходимо заменить строку в AH.sqf
      _death = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\player_death.sqf'; на
      _death = compile preprocessFileLineNumbers '*ВАШ ПУТЬ*\player_death.sqf';  
      В вашем кастомном player_death.sqf необходимо заменить 
      _array = _this; if (count _array > 0) then { _source = _array select 0; _method = _array select 1; if ((!isNull _source) && (_source != player)) then { _canHitFree = player getVariable ["freeTarget",false]; _isBandit = (player getVariable["humanity",0]) <= -2000; _punishment = _canHitFree || _isBandit; //if u are bandit || start first - player will not recieve humanity drop _humanityHit = 0; if (!_punishment) then { //i'm "not guilty" - kill me && be punished _myKills = ((player getVariable ["humanKills",0]) / 30) * 1000; _humanityHit = -(2000 - _myKills); _kills = _source getVariable ["humanKills",0]; _source setVariable ["humanKills",(_kills + 1),true]; PVDZE_send = [_source,"Humanity",[_source,_humanityHit,300]]; publicVariableServer "PVDZE_send"; } else { //i'm "guilty" - kill me as bandit _killsV = _source getVariable ["banditKills",0]; _source setVariable ["banditKills",(_killsV + 1),true]; }; }; _body setVariable ["deathType",_method,true]; }; на
      _array = _this; if (count _array > 0) then { _source = _array select 0; _method = _array select 1; if ((!isNull _source) && (_source != player)) then { [player,_source]execVM "*ВАШ ПУТЬ*\humanityChange.sqf"; [player,_source]execVM "*ВАШ ПУТЬ*\kill_msg_send.sqf"; }; _body setVariable ["deathType",_method,true]; }; Отображение ника убийцы(Kill message)
       
      Создаем файл и закидываем в миссию файл kill_msg_send.sqf
      С содержанием
      private ["_victim","_killer","_vehicle","_weapon","_pic"]; _victim = _this select 0; _killer = _this select 1; _killerName = name _killer; _victimName = name _victim; _vehicle = typeOf (vehicle _killer); _weapon = currentWeapon _killer; if ((getText (configFile >> "CfgVehicles" >> _vehicle >> "vehicleClass")) in ["CarW","Car","CarD","Armored","Ship","Support","Air","ArmouredW","ArmouredD","SupportWoodland_ACR","AllVehicles"]) then { _pic = gettext(configFile >> 'CfgVehicles' >> _vehicle >> 'picture'); } else { _pic = gettext(configFile >> 'cfgWeapons' >> _weapon >> 'picture'); }; _kill_txt = format ["<t align='left' size='0.5'>%1 </t>",_victimName]; _kill_txt = _kill_txt + format ["<img size='1.0' align='left' image='%1'/>",_pic]; _kill_txt = _kill_txt + format ["<t align='left' size='0.5'> %1 </t>",_killerName]; PVDZE_send = [player,"kill_message",[_kill_txt]]; publicVariableServer "PVDZE_send";  
      Далее,нам необходимо отредактировать файл server_sendToClient.sqf ,которой находится в директории сервера
      И добавить после
      case "tagFriendly": { PVDZE_plr_FriendRQ = _arraytosend; _owner publicVariableClient "PVDZE_plr_FriendRQ"; }; Это
      case "kill_message": { custom_kill_message_show = _arraytosend; publicVariable "custom_kill_message_show"; }; Теперь необходимо создать файл kill_msg_show.sqf в папке с вашей миссией
      с содержимым
      private ["_pos","_i"]; arr_kill = ["","","","","",""]; fnc_kill_message = { private ["_finaltxt"]; _finaltxt = _this select 0; for[{_i = 0},{(_i<6)},{_i = _i +1}] do { if((arr_kill select _i) == "") then { arr_kill set [_i,_finaltxt]; [_i] execVM "*ВАШ ПУТЬ*\kill_msg_delete.sqf"; _i = count(arr_kill); }; }; }; "custom_kill_message_show" addPublicVariableEventHandler {(_this select 1) call fnc_kill_message;}; while {true} do { _pos = 0.01; _layout = 1001; { [_x,[safezoneX + 0.01 * safezoneW,2.0],[safezoneY + _pos * safezoneH,0.3],5,0.5,0,_layout] spawn BIS_fnc_dynamicText; _pos = _pos + 0.021; _layout = _layout + 1; } ForEach arr_kill; sleep 1; }; Создать файл kill_msg_delete.sqf с 
      private["_pos"]; _pos = _this select 0; sleep 10; arr_kill set [_pos,""];  
      И вставить в init.sqf после строки
      _playerMonitor = [] execVM "custom\player_monitor.sqf"; строку
      execVM "*ВАШ ПУТЬ*\kill_msg_show.sqf"; Осталось только добавить
      custom_kill_message_show В первую строку файла publicvariable.txt
       
      Все,отображение ника убийцы готово!
       
       
      Изменение человечности за убийство Бандита\Героя
      создать файл humanityChange.sqf с содержимым
      private ["_victim","_killer","_myKills","_humanity","_killerHumanity","_isKillerBandit","_isBandit","_humanityHit","_kills","_killerGunner"]; _victim = _this select 0; _killer = _this select 1; _humanity = _victim getVariable["humanity",0]; _killerHumanity = _killer getVariable["humanity",0]; _isKillerBandit = (_killerHumanity) < 0 ; _isBandit = (_humanity) < 0; _humanityHit = 0; _myKills = 0; _killerVehicle = vehicle _killer; if(((!_isBandit) && _isKillerBandit) || (_isBandit && (!_isKillerBandit))) then { _myKills = round((_humanity) / 10); }; if(!_isBandit) then { _myKills = (_myKills + 200); _kills = _killer getVariable ["humanKills",0]; _killer setVariable ["humanKills",(_kills + 1),true]; } else { _myKills = (_myKills - 200); _kills = _killer getVariable ["banditKills",0]; _killer setVariable ["banditKills",(_kills + 1),true]; }; _killerGunner = gunner _killerVehicle; if(!isNil"_sourceGunner") then { _killer = _killerGunner; }; _humanityHit = _myKills * (-1); PVDZE_send = [_killer,"Humanity",[_killer,_humanityHit,300]]; publicVariableServer "PVDZE_send"; Изменение Человечности готово!
       
      Плюсы Всего этого:
      Отображение ника убийцы теперь работает всегда и корректно.(Если убивают с техники или с одного выстрела).
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.