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

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

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

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

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

Поиск по сайту

Результаты поиска по тегам 'Спавна'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Основной раздел сайта
    • S-Platoon
    • Приватный раздел
    • Рынок
    • Комната отдыха и развлечений
  • Серверостроение - DayZ Standalone
    • Инструкции
    • Помощь
    • Прочее
    • English section
  • Серверостроение - Общий раздел
    • ARMA 3
    • DayZ мод
    • ARMA 2
    • CS: Global offensive
    • ARK: Survival Evolved
    • Minecraft
    • Rust
  • Темы поддержки товаров

Категории

  • DayZ
    • Сборки серверов
    • Скрипты, моды, карты и т.д.
    • Транспорт
    • Оружие, инструменты, предметы
    • Дополнения для карты
    • Модели
    • Программное обеспечение
    • Прочее
  • Arma 3
    • Сборки серверов
    • Скрипты, моды, карты и т.д.
    • Транспорт
    • Модели
    • Программное обеспечение
    • Прочее

Группы продуктов

  • Привилегии на форуме
  • Реклама на сайте

Искать результаты в...

Искать результаты, содержащие...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


Вконтакте


Steam


ICQ


Skype


Город


Сайт


Интересы

Найдено 7 результатов

  1. В данной теме разберем момент настройки количества спавнящегося лута на сервере, объектов типа "автомобили и хеликраши", животых и зомби. Скажу сразу, гайд может быть не точным, поскольку официальной информации по серверной части разработчики игры не предоставляют, все основано лишь на личных наблюдениях и комментариях остальных людей. Гайд относится исключительно к версии сервера DayZ Standalone 0.61 в настроенном режиме работы сервера private hive (dboffline) с рабочим респавном лута (полная генерация папки storage со всеми ее компонентами). Пример такого сервера можно наблюдать в соседней моей теме: Упомяну также сразу и о том, что в версии 0.61 и 0.60, по сравнению с старыми версиями игры, в игру разработчиками введена так называемая "центральная экономика лута сервера". Это означает, что сервер сам постоянно анализирует количество каждого предмета, объекта, вещи на сервере, их качество, то, сколько они лежат уже, сколько с ними взаимодействовали и т.п. информацию, и уже на основании этих данных динамически подспавнивает все необходимое сам по мере необходимости. Это удобно, не правда ли? Но есть и минусы такого плана, что если каких-то вещей в палатках и бочках у людей набралось много, эти вещи просто могут перестать спавниться на сервере, поскольку они уже имеются в наличии у кого-то. Также, не исключено, что самописная система сохранений на серверах наших также вносит свой вклад в это, поскольку с каждым перезаходом на сервер база данных лута сервера перезаписывается, и для сервера может создаться эффект, что она дублируется, а значит база данных захламляется лутом и в спавне его становится меньше (эта информация не проверенная, только лишь догадка). Собственно, настройку этой системы мы и будем разбирать ниже Собственно, приступим: 1. Первым делом откроем нашу папку миссии сервера в MpMissions, зайдем в папку db и откроем файлик с именем types.xml блокнотиком (советую с Notepad ++ открыть). Увидим вот такое: 2. Разберем на примере одного из блоков (принцип един для всех блоков и одинаков). Выберем, например вот этот блок. Вот что мы здесь имеем: <type name="P1"> <!--- Там где указано 'P1' это класснейм вещи. Т.е. внутрисерверный код вещи, по которому сервер распознает, что это именно эта конкретная вещь. Список такого рода класснеймов можно найти в интернете самим вручную.--> <nominal>20</nominal> <!--- Число 20 - это наиболее вероятное количество данной вещички, которое будет иметься на сервере на сервере в целом, подспавниваться, в случае нехватки вещей на сервере, или наоборот не спавниться, если вещичек на сервере уже имеется столько или больше. Число 20 это не конкретное количество, а лишь наиболее вероятное значение, которое сервер выберет сам. Конктретное значение назначить невозможно.--> <lifetime>8500</lifetime> <!-- Число 8500 это время жизни вещички на сервере от момента ее спавна до момента ее удаления (и последующего ее переспавна, если сервер решит, что это необходимо). Число, как понимаю, указывается в секундах. В случае, если с вещью этой кто-то повзаимодействовал, счетчик секунд до ее удаления и переспавна сбрасывается, и отсчет этого времени начинается заного.---> <restock>500</restock> <!-- Незвестный мне параметр ---> <min>10</min><!--- Число 10 - это минимально допустимое количество данной вещички, которое будет иметься на сервере в целом. Работает по принципу с параметром nominal выше. Число 10 это не конкретное количество, а лишь наиболее вероятное значение, которое сервер выберет сам. Иными словами, минимальная граница диапазона. Конктретное значение назначить невозможно.--> <max>100</max><!--- Число 100 - это максимально допустимое количество данной вещички, которое будет иметься на сервере в целом. Работает по принципу с параметром nominal выше. Число 100 это не конкретное количество, а лишь наиболее вероятное значение, которое сервер выберет сам. Иными словами, максимальная граница диапазона. Конктретное значение назначить невозможно. Сервер сам при первом запуске сервера генерирует себе в базу количество в луте этой вещи на всем сервере в целом, и это число сохраняет.--> <quantmin>-1</quantmin> <!-- Незвестный мне параметр ---> <quantmax>-1</quantmax> <!-- Незвестный мне параметр ---> <cost>100</cost> <!-- Незвестный мне параметр ---> <flags>7</flags> <!-- Незвестный мне параметр ---> </type> Возможно, имеются и какие-то иные параметры записи в этот файл. В класснеймы в этом файле вводятся не только вещи, но и класснеймы хеликрашей, животных, зомби и прочего (даже транспорт есть). Грубо говоря, это таблица всего, что будет спавниться на сервере вообще. 3. Теперь откроем файлик events.xml так же. Здесь принцип тот же, но некоторые параметры уже отличаются. 4. Разберем на примере такого вот блока в этом файле. Показатели, которые есть в types.xml и имеются тут дублируются, пояснения по ним копировать не стану. (какие рабочие не знаю, указываем их и там и там) <event name="VehicleTransitBus"> <!--- Все тот же класснейм в привычном нам виде, но не объекта, как понимаю, а категории объектов. Откуда названия брать не изучал. --> <waves>3</waves> <!--- Неизвестный мне параметр--> <nominal>5</nominal> <!--- См. комментарии в types выше --> <min>3</min><!--- См. комментарии в types выше --> <max>5</max><!--- См. комментарии в types выше --> <lifetime>25000</lifetime><!--- См. комментарии в types выше --> <restock>0</restock><!--- См. комментарии в types выше --> <saferadius>1000</saferadius> <!--- Радиус спавна лута около объета, актуально для хеликрашей. --> <distanceradius>2000</distanceradius><!--- Радиус, в котором, как понимаю, объекты данного типа рядом не появятся --> <cleanupradius>0</cleanupradius><!--- Радиус в метрах, на расстоянии которого будет пропадать зомби и лут, отходящий от объекта самовольно. --> <deletedamaged>1</deletedamaged> <!--- Актуально для машинок, думаю, с названия понятно что это. --> <flags>262400</flags> <!--- Неизвестный мне параметр--> <children> <!--- Простая покатегория --> <child flags="0" lootmax="3" lootmin="0" max="5" min="5" type="TransitBus"/> <!--- Класснейм объекта, который относится к этому типу event сервера, в параметрах минимум-максимум лута у объекта или в объекте, и количество самих объектов на серре данного типа. --> </children> </event> 5. теперь разберем server.xml и globals.xml В первом файле настройка работы с базой данных сервера официальной, такие как время синхронизации данных между клиентом игры и сервером, время жизни трупов после смерти, и параметр queuetime, который не работает (это время ожидания поумолчанию перед спавном, отключено в силу технической возможности впринципе зайти на сервер вообще). Во втором файле соответственно мы имеем параметры количества спавна зомби, дистанция для динамического спавна зомби на игрока и другие какие-то настройки, смысл которых я так и не понял. ВАЖНО!!! После редактирования всех этих настроек не забываем, что если у вас имеется папка storage, и в папке storage сервера имеются одноименные bin-файлы базы данных сервера, то настройки ваши не применятся с запуском сервера, поскольку они в таком случае считываются у вас именно из storage-директории. Потому если вы хотите применить эти настройки необходимо будет либо удалить всю директорию storage, либо конкретно данные файлы! Но помните, если вы будете удалять файлы, делайте копии базы перед удалением, поскольку файлы в папке storage взаимосвязаны, и всегда имеется риск, удалив один файл, вызвать вайп или переспавн какого-то из элементов на сервере (это заметно при старте сервера в ее консоли пhи подгрузке файлов множественным serious damaged). Вроде бы и все. Не уверен, что часть из настроек этих вообще работает, а часть пояснений к ним корректно написана, но это лично мои наблюдения. Надеюсь, прояснил хоть немного о известной системе работы сервера. Если у кого есть более точная и правильная информация, просьба писать ее, будем корректировать гайд вместе.
  2. Итак, господа. В 1.05 разрабы похоже сломали механику спавна лута. У меня предметы стали спавниться там, где их не должно быть. Заметил сразу, поскольку таблица лута у меня переделана основательно. Например, Песочный барьер у меня прописан только на Военках и Полиц.участке, и все работало корректно до 1.05. Теперь, песочный барьер я нахожу в гаражах, мастерских и жилых домах вокруг полиц. участка и в самом полиц. участке. Помимо этого, ребята стали замечать и скинули инфу, что на СЗ в гаражах и мастерских стал появлятся военный лут, хотя его там не должно быть. Кто-что скажет по этому поводу. Заметил ли кто-то подобное у себя?
  3. Как и обещал выкладываю код и небольшой гайд Собственно речь о функции загрузки UID и координат из файла в массив m_playersSpawnPoints класса миссии, который в последствии можно исполдьзовать в других функциях в классе миссии Отступление массив m_playersSpawnPoints это массив типа map В данном случае <string,string> где и индекс и значение текстовые строки индексом выступает записанный UID, а значением координаты, которые перед использованием преобразуются из текста в vector c помощью функции ToVector() Но об этом позже Раздел 1. Подключение КОд функции: //Players personal spawn points (for new connected players) ref map<string,string> m_playersSpawnPoints = new map<string,string>; void LoadPlayersSpawnPoints() { /* Файл playersSpawnPoints.lst кладем в папку указанную в параметре запуска сервера -profiles= тогда путь будет "$Profile:" или если кладем в файл в mpmissions\dayzOffline.chernarusplus\_CONF путь будет "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_CONF\\" Путь меняется в переменной m_SettingsPath - "$Profile:" или "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_CONF\\" Можете указать свой путь, но он должен быть либо в $Profiles: либо в $CurrentDir:\\mpmissions\\dayzOffline.chernarusplus Формат файла: Steam UID в привычном виде 17 цифр Координаты Комментарий (через пробелы) Помните любая ошибка может привести к крашу сервера Не желательны пустые строки! Пример: 76562298156537008 1300 0 5600 Дима 76561998116927209 3000 0 3000 Вася из Новороссийска Про массив: ref map<string, string> m_playersSpawnPoints = new map<string, string>; m_playersSpawnPoints тут массив типа map, где каждый элемент массива состоит из 2х ячеек. 1. Индекс - тип string 2. Значение - тип string Пример работы с массивом типа map Запись в массив m_playersSpawnPoints.Insert("76562298156537008", "1300 0 5600"); //записываем первый элемент - индекс dayz, значение 10 m_playersSpawnPoints.Insert("76561998116927209", "3000 0 3000"); //записываем второй элемент - индекс dayzf, значение 17 Чтение из массива: Получаем значение 0го элемента string m = m_playersSpawnPoints.GetElement(0); // = "1300 0 5600" Получаем индекс 0го элемента string name = m_playersSpawnPoints.GetKey(0); / /= "76562298156537008" Получаем значение по индексу (в данном случае нас интерисует именно ЭТО) string n = m_playersSpawnPoints.Get("76561998116927209"); // = "3000 0 3000" //затем n переводим в вектор Usage in CreateCharacter function for change default spawn position: string PlayerUID = identity.GetPlainId(); if (PlayerUID) { if (m_playersSpawnPoints.Contains(PlayerUID) { pos = m_playersSpawnPoints.Get(PlayerUID).ToVector(); } } */ string FileName = "playersSpawnPoints.lst"; string m_SettingsPath = "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_CONF\\"; //Folder with config files - .ini or .lst // Or "$Profiles:\\" FileHandle file; string file_line; array<string> read_line; int linecount = 0; //Comments check bool skipline = false; bool skipblock = false; //Comments check file = OpenFile(m_SettingsPath + FileName, FileMode.READ); if (file != 0) { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read File: " + m_SettingsPath + FileName + " :::"); while (FGets(file, file_line) >= 0) { linecount++; //Comments check and skip if (file_line.IndexOfFrom(0,"//") == 0 || file_line.IndexOfFrom(0,"#") == 0 || file_line.IndexOfFrom(0," ") == 0 || file_line.Length() <= 0) { skipline = true; } else { skipline = false; } if (file_line.IndexOfFrom(0,"/*") == 0) { skipblock = true; } else if (file_line.IndexOfFrom(0,"*/") == 0) { skipblock = false; skipline = true; } //Comments check if (!skipline && !skipblock) { read_line = new array<string>; file_line.Split(" ",read_line); if (read_line.Count() >= 4) { if (read_line.Get(0).Length() == 17) { if (read_line.Get(1).ToFloat() > 0 && read_line.Get(3).ToFloat() > 0) { if (!m_playersSpawnPoints.Contains(read_line.Get(0))) { m_playersSpawnPoints.Insert(read_line.Get(0), read_line.Get(1) + " " + read_line.Get(2) + " " + read_line.Get(3)); // UID, Position Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " Add UID " + read_line.Get(0) + " spawnpoint: " + read_line.Get(1) + " " + read_line.Get(2) + " " + read_line.Get(3) + " to m_playersSpawnPoints"); } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " UID " + read_line.Get(0) + " duplicated, check file!"); } } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " Position error: '" + read_line.Get(1) + " " + read_line.Get(2) + " " + read_line.Get(3) + "' :::"); } } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " UID error: " + file_line + " :::"); } } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " have errors: " + file_line + " :::"); } } } CloseFile(file); if (m_playersSpawnPoints.Count() > 0) { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Players personal spawn points count: " + m_playersSpawnPoints.Count() + " :::"); } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Players personal spawn points is not loaded! :::"); } } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Error open file: " + m_SettingsPath + FileName + " :::"); } } Комментарии, а так же диагностические принты в лог не убираю сознательно ПОдключение и использование. Функцию размещаем в теле класса миссии в init.c или если она вынесена в другой файл (и файл подключени через #include) в том самом файле в теле класса миссии Вот как-то так: class CustomMission : MissionServer { //Тут разные функции и определение переменных класса... //Вот тут переопределенный штатно OnInit override void OnInit () { //тут его код ) //Тут определяем наш массив и функцию //Players personal spawn points (for new connected players) ref map<string,string> m_playersSpawnPoints = new map<string,string>; void LoadPlayersSpawnPoints() { //тут ее код } //Тут разные функции... } Ну Вы поняли... Далее нам надо при запуске и инициализации сервера эту функцию выполнить Но прежде надо создать файл по нужному пути в котором будут UID'ы и координаты В данной редакции используется путь "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_CONF\\" и имя файла "playersSpawnPoints.lst" те в папке mpmissions\dayzOffline.chernarusplus нужно создать папку _CONF и поместить в нее этот файл Но вы можете это переделать как Вам больше нравится Формат файла: 6561198156925007 2698.36 0 5989.59 USER 6561198156924007 2698.36 0 5989.59 ВАСЯ 6561198156923007 2698.36 0 5989.59 ПЕТЯ //Тут комментарий /* 6561193356923001 3698.36 30 5189.59 ПЕТЯ */ //Тут комментарий #Тут комментарий Первое поле - позиция - Это Steam UID (17 цифирь) 2,3,4 поля позиции числа это координаты X Z Y (Z = высота) - если 0 система поставит перса на землю или ближайшую твердую поверхность под ним все что дальше игнорится Можно каментить строки с помощью // , # Можно каментить блоки /* */ Если первый символ в строке пробел, все остальное то же игнорится Пустые строки то же игнорятся Если в строке с UID и координатами ошибка об этом напишет в лог с указанием номера строки Если UID дублируется об этом то же напишет в лог Ок Файл создали Теперь добавим вызов этой функции в тело функции OnInit в классе миссии (про нее речь шла Выше) Функция OnInit ВСЕГДА выполняется при запуске сервера Внутрь мы добавим вызов LoadPlayersSpawnPoints() В итоге при запуске сервера LoadPlayersSpawnPoints() выполнется и запишет в массив m_playersSpawnPoints UID'ы и координат Добавляем как-то так: override void OnInit() { //Тут может быть различный код //Тут вызов нашей функции //Load players personal spawn poins LoadPlayersSpawnPoints(); // => m_playersSpawnPoints // "UID", "Position" //Тут может быть различный код } Запустили сервер и увидели в логе что файл прочитался и все ок .... LoadPlayersSpawnPoints() ::: Players personal spawn points count: итд итп Или ошибки Если ошибки - читаем все еще раз и/или задаем вопросы в теме (НЕ В ЛИЧКЕ!!!) показывая что куда и как Вы прописали Отлично Тормозим в сервер Продолжение следует минут через 15
  4. Не изучал эту тему, было не нужно Поглядел пару тем включая эту И пытаюсь понять А как мне увеличить спавн лута, например на базе Павлово + добавить туда спавн лута, который по умолчанию ТАМ не спавнится? Спасибо!
  5. SteelSoul

    Настройка спавна лута

    Ребята, подскажите пожалуйста, где можно исключать или добавлять предметы в спавн?
  6. Где найти настройки для стандартной админки, к примеру в Админке много нету техники и вооружения, где это всё можно добавить ?
×
×
  • Создать...

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

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