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

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

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

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

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

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


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

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

  1. 2 балла
    Тип: серверный мод Немного о моде: Серверный мод пишет актуальный список игроков в онлайне и техники в игре в папке сервера, а также логи входа-выхода игроков на сервер и немного логов о загрузке, сохранении, спавне, деспавне(удалении) авто с сервера с наличием в памяти актуального списка авто и техники на сервере для ваших нужд. Для чего нужно: решать вам. Можете получать и использовать информацию в своих web-сервисах. Можете на основе этого делать свой скрипт или мод, можете дописать логирование по примеру VehicleActivityLogs с мастерской, можете использовать в сочетании с DAP Server Panel (да, этот мод там есть в откорректированном виде, и нет, текущий мод с тем модом не совсем совместим!). Для чего выложено: чтобы все, кто хотел, могли без проблем найти такую маленькую наработочку и использовать у себя, либо доработать как им нужно. Для чего делалось: создавалось для нужд Server Panel DAP, безвозмездно, в помощь развития серверов и программы. Возможности: Запись актуального списка игроков сервера в онлайне с их основными характеристиками Запись списка транспорта на сервере с их основными характеристиками Запись логов входа-выхода игроков на сервере Запись логов загрузки, сохранения, спавна и деспавна (удаления) авто на сервере Отображение в логах и таблице игроков, находится ли игрок в авто, или нет P.S. Работоспособность с модовым транспортом не проверялась, но в теории должно работать. Протестировано и работает на момент публикации на патче 1.07.153006 И так, установка: 1. Первым делом нам необходим сервер DayZ. Установить его можно по инструкции, например, так: 2. Добавляем в папку сервера игры мод из архива: @ServerManagerLogs.rar 3. Добавляем в параметры запуска сервера: @ServerManagerLogs -Filepatching "-servermod=@ServerManagerLogs" Если ваш сервер уже имеет серверные моды, просто добавьте папку с модом в список используемых сервером модов. ВАЖНО: не добавляйте данный мод в параметр запуска сервера -mod=, иначе это может стать проблемой захода игроков с параметрами verifysignatures=2; equalmodrequired=1; 4. Запускаем сервер. В обозначенной директории -profile= вашего сервера создастся 2 папки, ServerLogs и ServerInfo. В первой будут логи, в второй информация по текущим данным на сервере. Как получить список авто и техники с данного мода в свои скрипты: Для списка транспорта: Get_ServerManagerLogs().CarsMassive Для списка игроков: Get_ServerManagerLogs().PlayersMassive
  2. 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 файлов. Более подробно это освещать требуется отдельно!
  3. 1 балл
    Просмотреть файл Disable Construction And Deconstruction / Отключение Строительства и Разборки в указанных точках карты Тип: серверный мод Игра, для который подходит данный товар: DayZ Standalone Авторство: я (123new) Товар совместим, тестировался и проверялся на чистых версиях игры: 1.10,1.11,1.12,1.13,1.14,1.15,1.16,1.17,1.18,1.19,1.20 Описание: Серверный мод, осуществляющий запрет постройки и разбора построек на сервере, а также копку грядок в указанных вами зонах на карте. Мод не требуется к наличию игрокам и является чисто серверным. При проблемах с доступом к файлу: Свяжитесь с Dr.Tauren в личных сообщениях. Почему работа бесплатно и больше не поддерживается: читаем тут Возможности: Гибкий json-конфиг мода, избавляет вас от необходимости переписывать постоянно скрипты. При ошибках в конфиге мода он будет пересоздан автоматически, при этом ошибки будут отмечены в script-логе сервера Отключение возможности постройки внутри зон защиты Отключены возможности разборки внутри зон защиты Настраиваемые уведомления в чат для оповещения пользователя о запретах в зоне Исключения для возможности стройки в зонах защиты Логирование каждого действия срабатывания защиты в script-log файл сервера Важно: Работоспособность скрипта проверена и заточена на чистую версию игры без модификаций с новыми элементами постройки. Возможно, для добавления защиты под модовые элементы построек вам прийдется дописывать часть скриптов в моде самим, будьте готовы! Разделение по типам действий и настройки для скрипта не производилось в целях экономии стоимости скрипта. Скрипт проверен на чистой версии игры версии игры 1.07.153006 на момент публикации и является работоспособным по сей день и час. Настройка: Параметр enable_auto_restart_server_timer - включает и отключает работу всего скрипта. При false будет отключен, и остальные настройки будут отключены, но они должны быть в наличии. Формат значений - true или false Параметр Activate_ChatMessage_For_Blocked_Actions - включает и отключает чат-сообщение игроку при блокировании действий постройки и разбора в защищенной зоне. При false будет отключено. Формат значений - true или false Параметр Activate_ChatMessage_For_Allowed_Actions - включает и отключает чат-сообщение игроку при разрешении действий постройки и разбора в защищенной зоне для вписанных игроков. При false будет отключено. Формат значений - true или false Параметр Chat_Message_Block_Build - Чат-сообщение, которое пишется игроку в чат при блокировании действий постройки или разбора в защищенной зоне. Работает при Activate_ChatMessage_For_Blocked_Actions = true. Формат значений - любой текст. Параметр Chat_Message_Access_Build - Чат-сообщение, которое пишется игроку в чат при разрешении действий постройки или разбора в защищенной зоне. Работает при Activate_ChatMessage_For_Allowed_Actions = true. Формат значений - любой текст. Параметр ZonesMassive - Массив с конфигурациями зон. Минимум 1 элемент обязательно должен быть. Параметр secured_point - точка на карте в формате X Y Z (Y - высота). Все 3 значения чувствительны к правильности. Будьте внимательны, если ошибетесь с высотой, дистанция будет считаться от указанной вами точки на высоте. Формат значений - числа с точкой. Параметр distance_secure - дистанция защиты по радиусу от указанной в secured_point точки на карте. Указывается число, которое больше нуля. Формат значений - числа с точкой. Параметр Steam64IDS_With_ACCESS - массив Steam64ID игроков (как получить - гугл в помощь), которые имеют доступ к строительству и разбору построек в зоне. Несколько значений указываются через запятую. Формат значений - текст. Минимум 1 элемент обязательно должен быть. Параметр Allowed_for_Building - массив ID построек, которые игроки могут построить/установить в зоне без какого-либо запрета. Проще говоря, список исключений. Несколько значений указываются через запятую. Формат значений - текст. Минимум 1 элемент обязательно должен быть. Type: Server mod The game for which this product is suitable: DayZ Standalone Authorship: I am (123new) The product is compatible, tested and tested on clean versions of the game: 1.10,1.11,1.12,1.13,1.14,1.15,1.16,1.17,1.18,1.19,1.20 Description: A server mod that prohibits the construction and disassembly of buildings on the server, as well as digging beds in the zones you specified on the map. The mod is not required for the presence of players and is purely server-side. If you have problems accessing the file: Contact Dr.Tauren in private messages. Why the work is free and no longer supported: read here Opportunities: Flexible json config of the mod, saves you from having to constantly rewrite scripts. If there are errors in the mod's config, it will be recreated automatically, and the errors will be noted in the server's script log Disabling the possibility of building inside the protection zones Disassembly capabilities inside the protection zones are disabled Customizable chat notifications to notify the user about bans in the zone Exceptions for the possibility of construction in protection zones Logging of each protection trigger action in the server script-log file Important: The functionality of the script has been tested and sharpened for a clean version of the game without modifications with new construction elements. Perhaps, to add protection for the code elements of buildings, you will have to add some of the scripts in the mod yourself, be prepared! The separation by types of actions and settings for the script was not made in order to save the cost of the script. The script was tested on a clean version of the game version of the game 1.07.153006 at the time of publication and is operational to this day and hour. Customization: Parameter enable_auto_restart_server_timer - enables and disables the entire script. If false, it will be disabled, and the rest of the settings will be disabled, but they must be available. The format of the values is true or false Parameter Activate_ChatMessage_For_Blocked_Actions - enables and disables the chat message to the player when blocking the actions of construction and parsing in the protected zone. If false, it will be disabled. The format of the values is true or false Parameter Activate_ChatMessage_For_Allowed_Actions - enables and disables the chat message to the player when allowing the actions of construction and parsing in the protected zone for the entered players. If false, it will be disabled. The format of the values is true or false Parameter Chat_Message_Block_Build - Chat-a message that is written to the player in the chat when blocking the actions of construction or parsing in the protected zone. Works when Activate_ChatMessage_For_Blocked_Actions = true. The format of the values is any text. Parameter Chat_Message_Access_Build - Chat-a message that is written to the player in the chat when allowing the actions of construction or parsing in a protected zone. Works when Activate_Chat Message_For_Allowed_Actions = true. The format of the values is any text. Parameter ZonesMassive - An array with zone configurations. There must be at least 1 element. Parameter secured_point - a point on the map in the format X Y Z (Y is the height). All 3 values are sensitive to correctness. Be careful, if you make a mistake with the height, the distance will be calculated from the point you specified at the height. The format of the values is numbers with a dot. Parameter distance_secure - the protection distance by radius from the point specified in secure_point on the map. A number that is greater than zero is specified. The format of the values is numbers with a dot. Parameter Steam64IDS_With_ACCESS - an array of Steam64ID players (how to get-Google for help) who have access to the construction and analysis of buildings in the zone. Multiple values are separated by commas. The format of the values is text. There must be at least 1 element. Parameter Allowed_for_Building - an array of building IDs that players can build/install in the zone without any prohibition. Simply put, a list of exceptions. Multiple values are separated by commas. The format of the values is text. There must be at least 1 element. Автор 123new Добавлен 13.04.2020 Категория Скрипты, моды, карты и т.д.  
  4. 1 балл
    123new

    Как вызвать функцию по таймеру?

    GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(CustomInformation, TIME_Information_Repeat, true); пример из строку можно в конце функции main в init вписать. Формат: CallLater(1,2, 3); 1 - имя вызываемой функции 2 - время вызова в милисекундах 3 - true если функцию повторять до бесконечности, false если только 1 раз запустить
  5. 1 балл
    ПесДаЛис

    Крафт с учетом ингридиентов

    Как вариант https://steamcommunity.com/sharedfiles/filedetails/?id=2020372915&searchtext=200
  6. 1 балл
    Просто меняешь координаты каждого объекта и всё. Но лучше сделать через оффлайн редактор самому трейд зону и только изменить координаты торговцев. Так даже нагрузка снизится на сервер.
  7. 1 балл
    Almi

    Энергия персонажа

    @Ewgen Я её,энергию,победил modded class PlayerStatsPCO_v106 extends PlayerStatsPCO_Base { override void Init() { RegisterStat(EPlayerStats_v106.HEATCOMFORT, new PlayerStat<float> (-1, 1, 0, "HeatComfort", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.TREMOR, new PlayerStat<float> (0, 1, 0, "Tremor", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.WET, new PlayerStat<int> (0, 1, 0, "Wet", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.ENERGY, new PlayerStat<float> (0, 5000, 600, "Energy", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.WATER, new PlayerStat<float> (0, 5000, 650, "Water", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.DIET, new PlayerStat<float> (0, 5000, 2500, "Diet", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.STAMINA, new PlayerStat<float> (0, GameConstants.STAMINA_MAX, 100, "Stamina", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.SPECIALTY, new PlayerStat<float> (-1, 1, 0, "Specialty", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.BLOODTYPE, new PlayerStat<int> (0, 128, BloodTypes.GenerateBloodType(), "BloodType", EPSstatsFlags.EMPTY) ); RegisterStat(EPlayerStats_v106.TOXICITY, new PlayerStat<float> (0, 100, 0, "Toxicity", EPSstatsFlags.EMPTY) ); } }; dta\scripts\4_World\Classes\PlayerStats Теперь 5000
  8. 1 балл
    Местонахождение функции: scripts\3_Game\Enities\Object.c Входные данные: string zoneName, string healthType Возвращаемые данные: Максимально возможное значение Health элемента класса типа float Что делает данная функция: Возвращает значение Health, установленное в конфигурации класса, при необходимости можно указать, где именно искать значение Где работает данная функция: не ниже радела 3_Game Пример вызова-использования: из класса 4_World EntityAI pants = player.FindAttachmentBySlotName("Legs"); ItemBase item_pants = Class.Cast(pants); item_pants.SetHealth("","",item_pants.GetMaxHealth("","Health"));
  9. 1 балл
    Местонахождение функции: 3_Game\Client\SyncPlayerList.c Базовый класс: SyncPlayerList Массив: ref array<ref SyncPlayer> m_PlayerList; Входные данные: не требуются Возвращаемые данные: Массив игроков класса SyncPlayer, содержащий данные о их никах и Steam64ID Что делает данная функция: Хранит массив актуальный список игроков, содержащий такие сведения, как ник игрока и Steam64ID игрока Где работает данная функция: клиент и сервер игры, не ниже радела 3_Game Пример вызова-использования из класса 5_Game MissionGamePlay: ref array<ref SyncPlayer> PlayersInfoListServer = ClientData.m_PlayerList.m_PlayerList; foreach( ref SyncPlayer player : PlayersInfoListServer ) { string m_UID = player.m_UID; string m_PlayerName = player.m_PlayerName; Print("Is detected: Steam64ID player: " + m_UID + " Name: " + m_PlayerName); } Местонахождение функции: scripts\3_Game\Client\SyncData.c Базовый класс: ClientDataSyncPlayerList Массив: static ref array<Man> m_PlayerBaseList = new array<Man>; Входные данные: не требуются Возвращаемые данные: Массив игроков класса Man, содержащий игроков в классе Man на сервере игры Что делает данная функция: Массив обновляется при синхронизации данных между сервером и клиентом и сохраняет на клиенте игры актуальный список игроков сервера в классе Man. Где работает данная функция: клиент игры, не ниже радела 3_Game Пример вызова-использования из класса 5_Game MissionGamePlay: array<Man> PlayerBasesListServer = ClientData.m_PlayerBaseList; foreach(Man player : PlayerBasesListServer ) { Print("Is detected: player Object in class Man: " + player.ToString()); } Местонахождение функции: scripts\3_Game\Client\SyncData.c Базовый класс: ClientDataSyncPlayerList Массив: static ref SyncPlayerList m_PlayerList; Входные данные: не требуются Возвращаемые данные: Массив игроков класса SyncPlayerList, содержащий информацию об игроках в классе SyncPlayer на сервере игры Что делает данная функция: Массив обновляется при синхронизации данных между сервером и клиентом и сохраняет на клиенте игры актуальный список игроков сервера в классе SyncPlayerList. Где работает данная функция: клиент игры, не ниже радела 3_Game Пример вызова-использования из класса 5_Game MissionGamePlay: ref array<ref SyncPlayer> PlayersInfoListServer = ClientData.m_PlayerList.m_PlayerList; foreach( ref SyncPlayer player : PlayersInfoListServer ) { string m_UID = player.m_UID; string m_PlayerName = player.m_PlayerName; Print("Is detected: Steam64ID player: " + m_UID + " Name: " + m_PlayerName); } ref array<ref SyncPlayer> PlayersInfoListServer = ClientData.m_PlayerList.m_PlayerList; foreach( ref SyncPlayer player : PlayersInfoListServer ) { string m_UID = player.m_UID; string m_PlayerName = player.m_PlayerName; Print("Is detected: Steam64ID player: " + m_UID + " Name: " + m_PlayerName); }
  10. 1 балл
    Буду первым (пример) Местонахождение функции: 4_World\Entities\ManBase\PlayerBase.c Базовый класс: PlayerBase Функция: void OnConnect() Входные данные: отсутствуют Возвращаемые данные: отсутствуют Что делает данная функция: Выполняется в случае, если игрок присоединился к серверу игры Где работает данная функция: только на стороне сервера Местонахождение функции: 4_World\Entities\ManBase\PlayerBase.c Базовый класс: PlayerBase Функция: void OnDisconnect() Входные данные: отсутствуют Возвращаемые данные: отсутствуют Что делает данная функция: Выполняется в случае, если игрок отключился от сервера игры Где работает данная функция: только на стороне сервера
  11. 1 балл
    123new

    Обновление модов на стороне сервера

    Ребята, вы реально шаманство какое-то делаете, ей богу. Вопрос, описываемый вами, прост. Есть интерфейс steamcmd для нужд загрузки сервера игры со стима, для workshop и модов с него также он и используется. Надо лишь комманды нужные собрать и дать ему, чтобы он эти моды обновлял. Да, сложно, да, геморно, да, аккаунт стима с игрой потребуется для закачки модов, зато верняк 100% А включать этот процесс исключительно перед стартом сервера, т.е. сервер откючился, запустился процесс проверки обновлений папки сервера игры на обновления игры и модов, и потом старт сервера. Понятное дело, что если обнова игры глобальная или мод какой криво обновится сервак в лучшем случае просто людей не пустит. Но на такие случаи мы и есть, те кто будет проверять и контролировать работу сервера на случай ЧП.
  12. 0 баллов
    123new

    [Trader] - Торговцы и сейф-зоны от Dr_J0nes

    Ввиду большого числа 'дятлов' на форуме (назовем их так, этих любителей не дружить со здравым смыслом и переводчиком), попробую опубликовать пояснения по настройке конфиг-файлов трейдера: Сразу делаю отступления: Любой текст, начинающийся на // комментирует текст до конца строки. Любой текст, заключенный между /* и */ комментирует текст между указанными тегами. Любой файл из конфигов обязательно должен заканчиваться по тегу <FileEnd> (это метка, предусмотренная автором мода для мода, указывающая, что файл завершен для чтения и можно приступать к следующей операции.) Разберем TraderConfig.txt Разберем TraderConfig.txt Разберем TraderVariables.txt Разберем TraderVehicleParts.txt
  13. 0 баллов
    StanislavSay

    Крафт с учетом ингридиентов

    @OskarDallas в коде ниже у меня просто соединение двух одинаковых классов, по сути это тоже крафт из двух ингридиентов с случайным quantity в результате которого получаем quantity равный сумме quantity обоих ингридиентов. Думаю догадаетесь как переделать, как нужно именно вам) class MergeBandageDressing extends RecipeBase { override void Init() { m_Name = "Merge Bandage Dressing"; m_IsInstaRecipe = false;//should this recipe be performed instantly without animation m_AnimationLength = 0.25;//animation length in relative time units m_Specialty = 0.02;// value > 0 for roughness, value < 0 for precision //conditions m_MinDamageIngredient[0] = -1;//-1 = disable check m_MaxDamageIngredient[0] = 3;//-1 = disable check m_MinQuantityIngredient[0] = 1;//-1 = disable check m_MaxQuantityIngredient[0] = -1;//-1 = disable check m_MinDamageIngredient[1] = -1;//-1 = disable check m_MaxDamageIngredient[1] = 3;//-1 = disable check m_MinQuantityIngredient[1] = 1;//-1 = disable check m_MaxQuantityIngredient[1] = -1;//-1 = disable check //---------------------------------------------------------------------------------------------------------------------- //INGREDIENTS //ingredient 1 InsertIngredient(0,"BandageDressing");//you can insert multiple ingredients this way m_IngredientAddHealth[0] = 0;// 0 = do nothing m_IngredientSetHealth[0] = -1; // -1 = do nothing m_IngredientAddQuantity[0] = 0;// 0 = do nothing m_IngredientDestroy[0] = false;//true = destroy, false = do nothing m_IngredientUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this ingredient //ingredient 2 InsertIngredient(1,"BandageDressing");//you can insert multiple ingredients this way m_IngredientAddHealth[1] = 0;// 0 = do nothing m_IngredientSetHealth[1] = -1; // -1 = do nothing m_IngredientAddQuantity[1] = -1;// 0 = do nothing m_IngredientDestroy[1] = false;// false = do nothing m_IngredientUseSoftSkills[1] = false;// set 'true' to allow modification of the values by softskills on this ingredient //---------------------------------------------------------------------------------------------------------------------- //result1 m_ResultSetFullQuantity[0] = false;//true = set full quantity, false = do nothing m_ResultSetQuantity[0] = -1;//-1 = do nothing m_ResultSetHealth[0] = -1;//-1 = do nothing m_ResultInheritsHealth[0] = -2;// (value) == -1 means do nothing; a (value) >= 0 means this result will inherit health from ingredient number (value);(value) == -2 means this result will inherit health from all ingredients averaged(result_health = combined_health_of_ingredients / number_of_ingredients) m_ResultInheritsColor[0] = -1;// (value) == -1 means do nothing; a (value) >= 0 means this result classname will be a composite of the name provided in AddResult method and config value "color" of ingredient (value) m_ResultToInventory[0] = -2;//(value) == -2 spawn result on the ground;(value) == -1 place anywhere in the players inventory, (value) >= 0 means switch position with ingredient number(value) m_ResultUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this result m_ResultReplacesIngredient[0] = -1;// value == -1 means do nothing; a value >= 0 means this result will transfer item propertiesvariables, attachments etc.. from an ingredient value } override bool CanDo(ItemBase ingredients[], PlayerBase player)//final check for recipe's validity { ItemBase ingredient1 = ItemBase.Cast(ingredients[0]); ItemBase ingredient2 = ItemBase.Cast(ingredients[1]); if (ingredient1.IsRuined() || ingredient2.IsRuined()) return false; return true; } override void Do(ItemBase ingredients[], PlayerBase player,array<ItemBase> results, float specialty_weight)//gets called upon recipe's completion { // ItemBase result; ItemBase ingredient1 = ItemBase.Cast(ingredients[0]); ItemBase ingredient2 = ItemBase.Cast(ingredients[1]); int iq1 = ingredient1.GetQuantity(); int iq2 = ingredient2.GetQuantity(); int qm = ingredient1.GetQuantityMax(); int delta = qm-iq2; if ( iq1>delta ) { ingredient1.SetQuantity((iq1-delta)); ingredient2.SetQuantity((iq2+delta)); } else if (iq1<delta) { ingredient1.SetQuantity(0); ingredient2.SetQuantity(iq2+iq1); } // vector pos = player.GetPosition(); // result = GetGame().CreateObject("Matchbox", pos); Debug.Log("Recipe Do method called","recipes"); } };
×
×
  • Создать...

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

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

Поддержка