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

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

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

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

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

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 03/20/20 в Сообщения

  1. 1 балл
    123new

    Создаем свой серверный мод. [DayZ 1.4 to Discontined]

    В данной теме я распишу возможность создания серверного мода для сервера на собственном примере и объясню как его собрать.Работающий на момент публикации статьи на версии сервера игры 1.04.152050. Темы к ознакомлению, связанные с данным материалом: https://s-platoon.ru/topic/8701-enscript-uchimsya-osnovam-skriptinga/ https://s-platoon.ru/topic/8622-enscript-delaem-skript-dlya-moda-i-osnovnye-principy-skriptinga-modov/ Нам понадобятся: 1. Сервер игры актуальной версии, не ниже патча 1.04. Как установить можно узнать тут: До версии 1.04 параметра servermod у сервера игры не существовало!!! 2. Программа 'PBO manager' с состава инструментария армы из сети: https://www.armaholic.com/page.php?id=16369 Зеркало: https://yadi.sk/d/_gmzoNSDpNJTt Еще зеркало: Pbo manager.rar 3. Скрипты для упаковки в наш мод, сформированные и подготовленные нами вручную. Как - смотрите тему 4. Notepad++ https://notepad-plus-plus.org/download P.S. Вместо 'PBO manager' можно использовать DayZ Tools, но как им пользоваться разбираемся сами ? И так, приступим: 1. Предположим, что у нас имеется свой некий набор скриптов (если нет - читаем выше), который необходимо добавить серверу, но не на уровне миссии сервера, а на более ранних уровнях его загрузки. Например, добавить свой killfeed, модифицировать или изменить какой-либо из родных скриптов сервера игры, либо вовсе модификации, подключенной у вас. Для примера в этой теме и данного гайда я взял вот этот набор скриптов, собранный непосредственно для данной темы за 5 минут, и не изменяющий в сервере ровным счетом ничего. Он может послужить базой для создания своих модов, функций, переменных или классов. Данный гайд будем описывать, исходя из этого архива. Архив: MyScripts.rar Подробнее о создании скриптов для своих целей - читайте вот эту тему! 2. Создаем папку с нашим модом. Для примера, это будет папка '@My_Server_Mod'. В созданной нами папке создаем папку 'Addons', а в ней папку 'My_Server_Mod'. 3. Помещаем содержимое распакованного архива в папку 'My_Server_Mod'. Должно получиться так: 4. В папке 'My_Server_Mod' создаем файлик 'config.cpp' и заполняем его следующими данными (советую использовать Notepad++ для этого): class CfgPatches // требуется обязательно { class My_Server_Mod // требуется обязательно, совпадает с именем мода { units[]={}; // may be not worked weapons[]={}; // may be not worked requiredVersion=0.1; // may be not worked requiredAddons[]={}; /* requiredAddons[]= { "DZ_Data", // Перечисляем требуемые и используемые модом аддоны (pbo-файлы игры и модов по их внутренним скриптовым именам) }; */ }; }; class CfgMods // // требуется обязательно, совпадает с именем мода { // https://community.bistudio.com/wiki/DayZ:Modding_Structure#Mod_presentation class My_Server_Mod { dir = "My_Server_Mod"; // Имя папки мода, совпадает с именем мода picture = ""; // Картинка в описании мода action = ""; // Ссылка, например вот так: action = "https://dayz.com/"; hideName = 1; // Не уверен, что этот параметр работает hidePicture = 1; // Не уверен, что этот параметр работает name = "My_Server_Mod"; // Имя мода (а также его внутреннее скриптовое имя) logoSmall = "Mods/TestMod/modlogosmall.tga"; // значок рядом с именем мода, если описание не развернуто logo = "Mods/TestMod/modlogo.tga"; // логотип под меню игры logoOver = "Mods/TestMod/modlogohover.tga"; // при наведении курсора мыши на логотип tooltip = "tooltip"; // подсказка при наведении курсора мыши overview = "My Server Mod"; // Описание credits = "123new"; // credits author = "123new"; // author authorID = "0"; // author steam ID version = "1.0"; // version extra = 0; // Не уверен, что этот параметр работает type = "mod"; // требуется обязательно, остается неизменным // inputs = "mods\testmod\inputs\my_new_inputs.xml"; // необязательно, при использовании пользовательских inputs dependencies[]={"Core","GameLib","Game","World","Mission"}; // необязательно, если необходимо установить зависимость класса class defs { class engineScriptModule { value=""; // если значение пустое, используется функция ввода по умолчанию files[]={"My_Server_Mod/scripts/1_Core"}; // вы можете добавить любое количество файлов или каталогов, и они будут скомпилированы вместе с оригинальными скриптами игрового модуля }; class gameLibScriptModule { value=""; files[]={"My_Server_Mod/scripts/2_GameLib"}; }; class gameScriptModule { //value="CreateGameMod"; // когда значение заполнено, имя функции ввода модуля скрипта по умолчанию перезаписывается им value = ""; files[]={"My_Server_Mod/scripts/3_Game"}; }; class worldScriptModule { value=""; files[]={"My_Server_Mod/scripts/4_World"}; }; class missionScriptModule { value=""; files[]={"My_Server_Mod/scripts/5_Mission"}; }; }; // Если какой-то из разделов скриптинга вам не нужен и вы не сибираетесь его паковать, сотрите необходимый блок с ним выше и в массиве dependencies }; }; Пояснения в файле оставил. Файл готовый: config.cpp Как видите, в 'deffs' названия классов и путей соответствуют родным из 'scripts.pbo', но с допиской имени мода. Имя мода в данном случае и есть идентификатор для обращения к своему моду извне. А в 'dependencies' перечисляются используемые классы оригинальных скриптов без дописки номера секции. Количество используемых 'dependencies' и блоков 'deffs' должно быть идентично. Пояснения есть также и в официальной документации от разработчика: https://community.bistudio.com/wiki/DayZ:Modding_Structure#Mod_presentation 5. Запаковываем нашу папку 'My_Server_Mod' в pbo-файл 'My_Server_Mod.pbo' через 'PBO manager', как на скриншоте ниже: Можно использовать и другие способы запаковки, если знаете их или привычны вам. 6. Добавляем в параметры запуска сервера параметр: "-servermod=@My_Server_Mod;" -FilePatching 7. Радуемся, наш серверный мод готов. Пример готового серверного мода: @My_Server_Mod.rar P.S. Создавать bikey файл для мода и bisign подписи для него не требуется, иначе это может привести к неработоспособности серверной модификации (возможно, недоработка сервера игры разработчиком) Отмечу сразу, что данный способ подходит для модификации и переписывания оригинальных классов скриптов сервера от разработчиков и модификации чужих модов с помощью моддинга, применяется исключительно на стороне сервера игры и клиент игры не затрагивает. Распространять такой мод игрокам НЕ НУЖНО! Изменение оригинальных скриптов, для которых не предусмотрена операция 'modded class' в движке игры, а также классов и функций, которые защищены языком и движком игры от такого рода действий через серверные моды не получится. Если вы столкнулись с этим, вам проще распаковать scripts.pbo и поместить папку scripts в корень сервера игры, добавить в параметры запуска сервера параметр -FilePatching и изменять напрямую в папке необходимые вам файлы.Запаковывать назад в pbo папку и размещать в dta в таком случае не нужно! P.P.S. Процедура создания своего собственного клиент-серверного мода на основе скриптов работает таким же образом. В случае создания такого мода, файл 'config.cpp' может быть для стандартного мода более разнообразным, а также после требуется обязательная подпись такого мода в bisign и создание bikey файлов. Более подробно это освещать требуется отдельно!
  2. 1 балл
    123new

    [DayZ 1.0] Создаем Сейвзону на сервере

    В данной теме я распишу мой вариант установки сейвзоны, работающий на момент публикации статьи на версии сервера игры 1.06.152885. Установка 1. Открываем 'init.c' в 'MpMissions' вашей. 2. Вверху файла добавляем 1 строкой: #include "$CurrentDir:\\mpmissions\\dayzoffline.chernarusplus\\Scripts\safezone.c" Где 'dayzoffline.chernarusplus' - имя папки с активной 'MpMissions' вашей. Т.е. для карты Livonia 'dayzoffline.chernarusplus' надо вручную заменить на 'dayzOffline.enoch' Пример: 3.Создаем папку 'Scripts' в корне 'MpMissions' вашей, а в ней создаем файл с именем 'safezone.c' следующего содержания: /* Author: Sania(ZoS) (aka 123new) Project: S-platoon.ru Install: 1. Create a 'Scripts' directory in your active mpmissions 2. Plase this filename (safezone.c) in 'Scripts' 3. Add in init.c this line: #include "$CurrentDir:\\mpmissions\\dayzoffline.chernarusplus\\Scripts\safezone.c" Where is 'dayzoffline.chernarusplus' is active mpmission directory in cfg filename server 4. Configure a next settings */ class SafeZone_PlugIn { protected bool Activate_SafeZone_PlugIn = true; // safezone on (true) or off (false) protected float SAFEZONE_time_repeat_checking = 10; //In seconds ref static TStringArray SAFEZONE_LOACTIONS = {"15145.1 32.9793 13919.0", "12145.1 32.9793 10919.0"};//Map coords (positions of the safe zone) protected static float SAFEZONE_RADIUS = 100; //In meter protected static string SAFEZONE_ENTRY_MESSAGE = "Welcome to The SafeZone! Godmode ENABLED!"; protected static string SAFEZONE_EXIT_MESSAGE = "You Have Left The SafeZone! Godmode DISABLED!"; void OnInit() { if(Activate_SafeZone_PlugIn) { GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(RunCheckStart, (SAFEZONE_time_repeat_checking * 1000), true); } } static void RunCheckStart() { private array<Man> players = new array<Man>; GetGame().GetPlayers( players ); if (SAFEZONE_LOACTIONS.Count() > 0) { if (players.Count() > 0) { foreach(string SAFEZONE_LOACTION: SAFEZONE_LOACTIONS) { if( players.Count() > 0 ) { foreach(Man player: players) { if(player) { private PlayerBase player_casted = PlayerBase.Cast(player); CheckingPosition(player_casted,SAFEZONE_LOACTION.ToVector()); } } } } } } } static void CheckingPosition(PlayerBase player,vector SAFEZONE_LOACTION) { private float SAFEZONE_distance; private string SAFEZONE_ZoneCheck, SAFEZONE_UID_PLAYER, SAFEZONE_NAME_PLAYER; SAFEZONE_NAME_PLAYER = player.GetIdentity().GetName(); SAFEZONE_UID_PLAYER = player.GetIdentity().GetPlainId(); //Steam 64 private vector SAFEZONE_pos_player = player.GetPosition(); private vector SAFEZONE_LOCATION_FIXED = CorrectToGroundPosY(SAFEZONE_LOACTION); private string name_mesage_profile = "GodModeEnabledFor: " + SAFEZONE_UID_PLAYER + " Location: " + SAFEZONE_LOACTION.ToString(); SAFEZONE_distance = vector.Distance(SAFEZONE_pos_player,SAFEZONE_LOCATION_FIXED); if (SAFEZONE_distance <= SAFEZONE_RADIUS) //Player Inside Zone { SAFEZONE_ZoneCheck = ""; GetGame().GetProfileString(name_mesage_profile,SAFEZONE_ZoneCheck); if (SAFEZONE_ZoneCheck == "true") //Already in zone { GetGame().SetProfileString(name_mesage_profile,"true"); player.SetAllowDamage(false); //GodMode On return; } else { GetGame().SetProfileString(name_mesage_profile,"true"); Print("[SafeZone] " + SAFEZONE_NAME_PLAYER + " (" + SAFEZONE_UID_PLAYER + ") Enter in safeZone in position: " + SAFEZONE_LOCATION_FIXED.ToString()); player.SetAllowDamage(false); //GodMode On SendPersonalMessage(SAFEZONE_ENTRY_MESSAGE, player); } } else { //Player Outside of Zone if (SAFEZONE_distance > SAFEZONE_RADIUS) //Player Outside of Zone { SAFEZONE_ZoneCheck = ""; GetGame().GetProfileString(name_mesage_profile,SAFEZONE_ZoneCheck); if (SAFEZONE_ZoneCheck == "false") { GetGame().SetProfileString(name_mesage_profile,"false"); return; } else { if (SAFEZONE_ZoneCheck != "") { GetGame().SetProfileString(name_mesage_profile,"false"); Print("[SafeZone] " + SAFEZONE_NAME_PLAYER + " (" + SAFEZONE_UID_PLAYER + ") Left safeZone in position: " + SAFEZONE_LOCATION_FIXED.ToString()); player.SetAllowDamage(true); //GodMode Off SendPersonalMessage(SAFEZONE_EXIT_MESSAGE, player); } else { GetGame().SetProfileString(name_mesage_profile,"false"); return; } } } } } static vector CorrectToGroundPosY(vector pos) { private float pos_x = pos[0]; private float pos_z = pos[2]; private float pos_y = GetGame().SurfaceY(pos_x, pos_z); private vector tmp_pos = Vector(pos_x, pos_y, pos_z); return tmp_pos; } static void SendPersonalMessage(string message, PlayerBase casted_player) { Man player; Class.CastTo(player, casted_player); if(( player ) && (message != "")) { Param1<string> m_GlobalMessage = new Param1<string>(message); GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, m_GlobalMessage, true, player.GetIdentity()); } } } /* class SafeZone_Config //test config for json { vector SAFEZONE_LOACTION = "15145.1 32.9793 13919.0"; //Map coords (position of the safe zone) float SAFEZONE_RADIUS = 100.0; //In meter string SAFEZONE_ENTRY_MESSAGE = "Welcome to The SafeZone! Godmode ENABLED!"; string SAFEZONE_EXIT_MESSAGE = "You Have Left The SafeZone! Godmode DISABLED!";\ } */ ref SafeZone_PlugIn SafeZone = new SafeZone_PlugIn(); modded class CustomMission { override void OnInit () { super.OnInit(); SafeZone.OnInit(); } } Ну или скачиваем его отсюда в готовом виде: safezone.c Здесь: 'SAFEZONE_LOACTIONS' - координаты точкек центра сейвзоны, можно указать несколько. 'SAFEZONE_RADIUS' - радиус от указанного центра севзоны, на котором действует защита 'ENTRY_MESSAGE' - сообщение о входе в зону (не рекоммендуется указывать русский язык, может не отображаться) 'EXIT_MESSAGE' - сообщение о выходе из зоны (не рекоммендуется указывать русский язык, может не отображаться) 'SAFEZONE_time_repeat_checking' - время повтора проверки наличия игроков в зонах, в секундах 'Activate_SafeZone_PlugIn' - активация плагина скрипта, true - ключен, false - выключен 4. Запускаем сервер и проверяем. Для совсем ленивых готовая миссия сервера с настроенной сейвзоной для патча игры 1.06 dayzOffline.chernarusplus.rar Гайд обновлен: 31.01.2020
  3. 1 балл
    BorizzK

    пвп после рестарта

    Блин del traderconfig.txt copy traderconfig1.txt traderconfig.txt ЧЕ СЛОЖНО? ДА? Я ваще их рандомна кручу рандом от 1 до 10 как рандомное число получить? от и до? set MIN=1 set MAX=10 set /a R=MIN+(MAX-MIN+1) * %random%/32768
  4. 1 балл
    DAP

    пвп после рестарта

    Сделать директорию где будет все эти миссии,в конфигурации прописывать миссию
  5. 1 балл
    BorizzK

    Пропадают авто

    а в events.xml lifetime тут при чем? время жизни после спавна только в тайпсе лайфатам в эвентсе для эвента Vehicle* просто артефакт ни на что не влияющий В вышеуказанном случае может происходить следующее 1 Авта имея кривую геометрию/кривой конфиг модели - тупо при загрузки багуется и двиг ее дропает 2 Имеет место коллизия с предметами в тачке - орпять же при загрузке после некоторого количества коллизий авта багуется и двиг ее дропает Включите полное логгирование экономики mpmissions\dayzOffline.chernarusplus файл cfgeconomycore.xml Сделайте так <rootclass name="CarScript" act="car" reportMemoryLOD="yes" /> <default name="log_ce_loop" value="true"/> <default name="log_ce_dynamicevent" value="true"/> <default name="log_ce_vehicle" value="true"/> <default name="log_ce_lootspawn" value="true"/> <default name="log_ce_lootcleanup" value="true"/> <default name="log_ce_lootrespawn" value="true"/> <default name="log_ce_statistics" value="true"/> <default name="log_ce_zombie" value="true"/> <default name="log_storageinfo" value="false"/> <default name="log_hivewarning" value="true"/> <default name="log_missionfilewarning" value="true"/> <default name="save_events_startup" value="true"/> <default name="save_types_startup" value="true"/> проверьте включено ли сохранение тачек mpmissions\dayzOffline.chernarusplus\db файл economy.xml <vehicles init="1" load="1" respawn="1" save="1"/> И потом смотрите RPT, log
  6. 1 балл
    BorizzK

    Мод, включающий темноту и туман в области

    это просто бред можно затемнять - это будет уродство тк звезд и луны от этого не появится
  7. 1 балл
    NightWolf

    Термины 3D моделирования Dayz

    1. P3d(п3д)модель - это 3d модель объекта в формате для движка bohemia Interactive. 2. ODOL формат - п3д модели которая закодирована(забинарена). Для дейзет как правило используются 4 вида модели а)ODOL2 - это модели Arma 2 и Take On Helicopters б)ODOL4 - это модели так называемым альфа версии dayz от ~0.35 версии до 0.59 в)ODOL5 - на данный момент закодированы p3d модели этим типом. 2. MLOD формат - п3д модель которая в открытом виде и может быть открыта object builder'ом. 3. Текстура - paa или tga формат рисунка который накладывается на UI разверстку. 4.UI разверстка - это способ наложить 2d рисунок на 3d модель. 4. RVMAT это дополнительный конфиг для p3d модели который добавляет текстере модели: а) Текстуру(co) так же через конфиг можно наложить на модель. б) Объем, нормали(nohq) - псевдо 3д - используя затемнения выпуклых областей. в) Блеск(SMDI)- отталкивая определенное количество света от текстуры. г) Затемнение(as) - поглощение света текстурой. д) Шум(dt) - для создания потертости у п3д модели. 5. Point(поинт) - точка 6. Faces((3 поинта) - объединенных и создающих холст односторонний) Тема будет дополняться.
  8. 0 баллов
    123new

    Установка трейдера

    одинаковые файлы мода на клиенте и сервере + bikey в папку keys сервера, кикать не будет
  9. 0 баллов
    123new

    пвп после рестарта

    а кто мешает сделать в нем папку, например Trader1, Trader 2 и т.п., и в них класт ьсвои эти конфиги разные, а потом попросту активный подменять на нужный батником? Насчет с 1 по 5 не понял, это же делается абсолютно также в батнике прописыванием нужных файлов, ну либо хоть всю папку через xcopy копируй
×
×
  • Создать...

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

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

Поддержка