Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
Таблица лидеров
Популярные публикации
Отображаются публикации с наибольшей репутацией на 04/25/22 в Сообщения
-
1 баллЧто же такое Кастомный types.xml и для чего он нужен? Ответ: Кастомный types.xml облегчает работу администратору при обновлении. Многие подключают разные моды, вещи из них нужно прописывать в types.xml. При обновлении приходится чекать что добавили бегемоты и прописывать это в свой. С Кастомным types.xml все намного проще. Все вещи из мода теперь хранятся в нем, и переписывать его по 300 рас не нужно. При обновлении просто меняете дефолтный тайпс на обновленный бегемотами и все(если конечно вы не меняли дефолтный). Как же сделать свой тайпс? Очень просто! Приступим! Идем в свою миссию по пути DayZServer\mpmissions\dayzOffline.chernarusplus Открываем файл cfgeconomycore.xml Находим этот блок кода <defaults> <default name="dyn_radius" value="30" /> <default name="dyn_smin" value="0" /> <default name="dyn_smax" value="0" /> <default name="dyn_dmin" value="1" /> <default name="dyn_dmax" value="5" /> <default name="log_ce_loop" value="false"/> <default name="log_ce_dynamicevent" value="false"/> <default name="log_ce_vehicle" value="false"/> <default name="log_ce_lootspawn" value="false"/> <default name="log_ce_lootcleanup" value="false"/> <default name="log_ce_lootrespawn" value="false"/> <default name="log_ce_statistics" value="false"/> <default name="log_ce_zombie" value="false"/> <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"/> </defaults> Сразу под этм блоком вставляем этот код <ce folder="db"> <file name="types_custom.xml" type="types" /> </ce> Должно получиться так: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <economycore> <classes> <!-- These are rootclasses to be used by economy. Do not forget to add attribute act="character", if root class represents character (player, infected, animal) Do not forget to add attribute act="car", if root class represents moveable vehicles --> <rootclass name="DefaultWeapon" /> <!-- weapons --> <rootclass name="DefaultMagazine" /> <!-- magazines --> <rootclass name="Inventory_Base" /> <!-- inventory items --> <rootclass name="HouseNoDestruct" reportMemoryLOD="no" /> <!-- houses, wrecks --> <rootclass name="SurvivorBase" act="character" reportMemoryLOD="no" /> <!-- player characters --> <rootclass name="DZ_LightAI" act="character" reportMemoryLOD="no" /> <!-- infected, animals --> <rootclass name="CarScript" act="car" reportMemoryLOD="no" /> <!-- cars (sedan, hatchback, transitBus, V3S, ...) --> </classes> <defaults> <default name="dyn_radius" value="30" /> <default name="dyn_smin" value="0" /> <default name="dyn_smax" value="0" /> <default name="dyn_dmin" value="1" /> <default name="dyn_dmax" value="5" /> <default name="log_ce_loop" value="false"/> <default name="log_ce_dynamicevent" value="false"/> <default name="log_ce_vehicle" value="false"/> <default name="log_ce_lootspawn" value="false"/> <default name="log_ce_lootcleanup" value="false"/> <default name="log_ce_lootrespawn" value="false"/> <default name="log_ce_statistics" value="false"/> <default name="log_ce_zombie" value="false"/> <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"/> </defaults> <ce folder="db"> <file name="types_custom.xml" type="types" /> </ce> </economycore> Дальше создаем файл types_custom.xml и кидаем его в папку db по пути DayZServer\mpmissions\dayzOffline.chernarusplus\db. В нем прописываете все вещи и предметы из своих модов. Пример: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <types> <type name="FS_Balaxon_dolg"> <nominal>2</nominal> <lifetime>28800</lifetime> <restock>300</restock> <min>1</min> <quantmin>-1</quantmin> <quantmax>-1</quantmax> <cost>100</cost> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0" /> <category name="clothes" /> <usage name="Military" /> <value name="Tier3" /> <value name="Tier4" /> </type> </types> Все, кастомный types создан. Легкой всем работы с серверами и поменьше багов! PS. Помог? Ставь лайк!
-
1 баллИ так, вышел 1.08 и я узнал одну замечательную вещь, про которую тут ещё не писали. Она поможет вам разгрузить ваш ванильный types от модовых вещей и ещё больше раскидать их по категориям. Идём в cfgeconomycore.xml, там вписываем следущее: <!-- Mod CENTRAL ECONOMY --> <ce folder="Mod_ce"> <file name="MVS_types.xml" type="types" /> </ce> Дальше мы создаём папку Mod_ce, в которой создаём ваш модовый types, в моём случае, это сделано под мод MVS, так что я назвал его MVS_types.xml. И всё, таких types может быть хоть сотни. Ваш основной файл types перестанет иметь 50к строк и не будет лагать при листании. Пример того, как оно может выглядеть в конечном счёте. Если где-то ошибся, то буду рад услышать исправление проблемы. <!-- NewDawnRangers mods types --> <ce folder="modstypes"> <file name="arma2weaponpack_types.xml" type="types" /> <file name="cannabisplus_types.xml" type="types" /> <file name="cheytac_types.xml" type="types" /> <file name="cl0udsmilitarygear_types.xml" type="types" /> <file name="codelock_types.xml" type="types" /> <file name="crsk_types.xml" type="types" /> <file name="massmanyitemoverhaul_types.xml" type="types" /> <file name="mosinscope_types.xml" type="types" /> <file name="mungharditempack_types.xml" type="types" /> <file name="opbaseitems_types.xml" type="types" /> </ce>
-
1 баллoverride void OnInit () { super.OnInit(); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(My_Custom_Spawn_Parameters.Read_Update_Config, 120000, false); // Обновление настроек скрипта кастомных спавнов, 1 минута = 60000 } init_mod.c меняем кусок на вот такой и не будет
-
1 баллугу, но с учетом что lifetime авто течет только при отсутствии игроков рядом, и таймер его течения обнуляется при каждом взаимодействии с объектом
-
1 баллМомент 1 - объект, который спавнится в игре, буквально 'впитывает' настройки этих самых lifetime, что были в xml конфиге сервера у вас. Соответственно если у вас было 5 секунд, он соспавнился на карте, а потом вы изменили на 3600, то сами понимаете, у того ранее соспавненного, 3600 не стаор. а осталось 5, ну и коль уж нас 5 секунд с момента старта не было - он автоудалился. Момент 2 - у нас в events есть параметры контроля авто на сервере, т.е. сколько минимум, сколько максимум в событии. Вот если максимум указан - спавнер подчищает лишнее, что идет 'сверх плана' так сказать. Соответственно если было установлено 35 авто, и 35 уже есть, то 36-я, например, что с админки появилась или с трейдера скриптом, имеет шанс самоудалиться в отсутствии игрока (а его не будет в момент рестарта же). При том самоудалиться может не обязательно эта (рандом сам решает). Момент 3 - lifetime и restock считаются только в момент работы сервера
-
1 баллв функции override void OnInit() { super.OnInit(); AdminMod.Init(); //Admin mod initialization see Init() function in AdminMod_Class.c } хотя бы так должно быть, дабы не ломать вызовы от других модов, скриптов и работ. Нет вызова super - что-то может сломаться. Как у вас, видимо, либо скрипты, либо админка получается. Все потому что код не верно пишется
-
1 балл1. В конце первого поста темы 2. выбираем что больше нравится, читаем, пробуем
-
1 балл
Лут в кастомных зданиях
paranoyk отреагировал на FreddyCruger за сообщение в теме
В том что в них и недолжно быть лута, если в зданиях не прописаны точки спавна лута -
1 балл1. Админ логин вводить не нужно. id админа надо добавить в файл ADMINS_LIST.lst 2. Убедитесь, что в файле AdminMod_Class.c строка //LoadServerSettings(); закомментирована как я показал или удалите ее. Тогда cfggameplay.json начнет читаться. static void Init() { Print("::: [AdminMod_Class] ::: Init() Begin :::"); //LoadServerSettings(); LoadAdminsList(); LoadArbitratorsList(); LoadCommandsSettings(); ..... 3. Объясню в кратце как все это работает, чтобы вам проще было исправлять. Инструкция по подключению в файле с кодом. 1.1. Add next code to your mission file like init.c (not in class!): #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\_AdminTools\\AdminMod_Class.c" //подключаем AdminTools //mod edition (w/static variables and functions) ref AdminMod_Class AdminMod = new AdminMod_Class(); 1.2. Add call AdminMod.Init() to OnInit function in your custom mission class in your mission file like init.c and add overrided function OnEvent to class class CustomMission : MissionServer { override void OnInit() { // Another code AdminMod.Init(); //Admin mod initialization see Init() function in AdminMod_Class.c // Another code } // Another code override void OnEvent(EventType eventTypeId, Param params) //Call from chat { switch(eventTypeId) { case ChatMessageEventTypeID: { ChatMessageEventParams chat_params = ChatMessageEventParams.Cast(params); if (chat_params.param1 == 0 && chat_params.param2 != "" && chat_params.param3 != "") //trigger only when channel is Global == 0, Player Name does not equal to null and entered command { AdminMod.OnAdminChatRequest(params); //Redirect call from chat to AdminMod } break; } default: { super.OnEvent(eventTypeId,params); break; } break; } } // Another code } Файл init.c загружается, когда стартует сервер. В него нужно добавить в самый верх путь к файлу скрипта (строка #include ....) и инициализировать этот код (строка ref Admin ....). Это загружает на сервер код из файла и далее функции скрипта можно использовать. Запуск кода скрипта происходит командой AdminMod.Init(); //Admin mod initialization see Init() function in AdminMod_Class.c которую нужно добавить в этот же файл (см. пример). Далее настраивается перехват сообщений, которые будут отправляться функциям скрипта. ...... if (chat_params.param1 == 0 && chat_params.param2 != "" && chat_params.param3 != "") //trigger only when channel is Global == 0, Player Name does not equal to null and entered command { AdminMod.OnAdminChatRequest(params); //Redirect call from chat to AdminMod } ... После того, как это сделаете, сервер при старте будет пытаться загрузить код скрипта из файла AdminMod_Class.c Все ошибки при использование файла скрипта будут выводиться в логи сервера (к примеру DayZServer\profiles\script_2022-04-21_21-53-28.log). Для тестирования кода удобно дописывать в файл функцию печати Print("12345"); и если код дойдет до этого места, то в лог запишется строка "12345". Так вы сможете понять где прерывается выполнение кода. При вводе сообщения в чат, оно запускает функцию скрипта static void OnAdminChatRequest(Param request_params) { ChatMessageEventParams chat_params = ChatMessageEventParams.Cast( request_params ); switch(chat_params.param1) { case 0: { ...... Т.к. у вас нет результата при вводе команд, то для начала можно попробовать понять, а перехватывается ли сообщение и запускается ли функция. OnAdminChatRequest . Можно вставить в код Print посмотреть в логах появился ли текст - 12312123123123123. Проверка на админов происходит далее по коду. static void OnAdminChatRequest(Param request_params) { ChatMessageEventParams chat_params = ChatMessageEventParams.Cast( request_params ); Print("12312123123123123"); switch(chat_params.param1)
-
Рассылка
