Search the Community
Showing results for tags 'животные'.
-
-
-
-
-
Добрый день, недавно на серваке по какой-то невиданной причине начали спавниться все животные на событиях. Начиная от полицейских машин , поездах, хэликрэшах и заканчивая статик аир дропом на ЗС. Животные статичны не убегают и не агрегируют, при убийстве анимация смерти не проходит и они продолжают стоят, но разделать можно . Причину их появления выявить не удалось, пробовал менять файлы и перерисовывать карту и вайпить ни чего конкретно не помогло. Выявить явно крашнутый файл или мод не удаётся. Иногда пропадает вообще всё с карты.
-
Инструкция по базовой установке животных на сервер. (базовые понятия) Задача дать начальные понятия в установке животных на сервер. Вопросы лута, поведения, расстановки-не рассматриваем. (визги и смешочки "олдфагов" вынесем за скобки, мы в курсе что когда вы начинали даже Богемии ещё не было) Будем всё делать на основе примера мода, карты Чернорусь и согласно простому правилу "не думай что ты умнее бегемотов". Берём общедоступный мод Radioactive Animals Для начала просто подключаем мод к серверу (тестовому , то же правило-имейте сервер для тестов), после чего пытаемся заспавнить животных админкой. Получилось, животные ведут себя после спавна адекватно, нормально выглядят - идём дальше, если нет-жалуемся автору мода. Открываем папку dayzOffline.chernarusplus и создаём папку mod (или как захотите, но без кириллицы). Открываем созданную папку. Первая задача-создать файл "types" с новыми объектами. Иногда с модом идёт уже готовый файл. Если он есть-копируем его в папку. Можете переименовать его как хотите. (остальные действия настройки как при создании его с нуля). Если его нет-не беда, нам нужно только узнать ID обьектов, а вот они то всегда есть в описании или в стиме или в папке с модом. (если нет, то только вскрыв мод или переписав значения при спавне админкой). Мод из примера НЕ имеет готового тайпса. Но есть ID (класснеймы) в отдельном файле. Создаём в папке mod файл Atypes.xml. Отрываем его, вставляем <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <types> </types> Верхней строчкой файл тайпс начинается, нижней заканчивается. Список класснеймов мода Radioactive_Bear_juggernaut Radioactive_Bear_Beast Radioactive_Bear_Tough Radioactive_bear_pelt Radioactive_Wolves_juggernaut Radioactive_Wolf_Beast Radioactive_Wolf_Tough Radioactive_wolf_pelt Radioactive_bear_Meat Radioactive_wolf_Meat Их нам внести в нами созданный файл, плохо что нет описания, что куда, но....ясно что у нас животные, их шкуры и мясо. Сначала вносим животных. Из ванильного, серверного тайпс копируем значения для любого животного, к примеру <type name="Animal_BosTaurusF_Brown"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> и подставляя класснеймы модовых животных заполняем созданный тайпс. В конце концов он примет вид Можно изменить <lifetime>1800</lifetime> на любое значение какое захотите (максимум 3888000). Это время жизни вашего животного когда рядом нет игрока на дистанции из <saferadius> файла events. После таким же способом добавляем шкуру и мясо. (опять таки копируем ванильное значение и меняем класснейм на модовый). В результате файл придёт к виду: Проверяем кодировку, проверяем валидатором, (добавление-лично я проверяю окончания строчек чтобы они совпадали с ванильным файлом). Основной файл для спавна создан. Теперь создаём файл событий. Создаём в папке mod файл Aevents.xml . Открываем его, вставляем <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <events> </events> Верхней строчкой файл ивент начинается, нижней заканчивается. У нас два вида животных-медведь и волк, в каждом из которых три класса. Тут важно сразу решить, какие у нас будут "ивенты". Один для одного вида или несколько для одного вида и каждого класса. Для примера делаем по событию для каждого вида. Открываем ванильный events.xml и копируем в созданный файл два ивента - медведя и волка. Теперь меняем event name. Для животных он всегда должно начинаться с "Animal" . Называем соответственно (пример) AnimalBearA и AnimalWolfA . Далее количество событий <nominal> котрое вам требуется. Количество особей в "отряде". <min> <max>. Дистанции - расстояние до игрока, расстояние до другого "события", расстояние "уборки" события от игрока (начало отсчёта времени жизни). Позиция. Оставляем , если хотим что бы событие спавнилось вне зависимости есть ли игрок рядом. Или делаем <position>player как у зомби, тогда спавн будет при приблежениии игрока. Лимит....Приведу просто выдержку из одного описания custom-limit refer to an external file like for animals territories. child-limit refer to the min and max attributes of the each child. parent-limit refer to the min and max attributes of the event itself. mixed-limit is a mix of both child et parent. То есть если берём что нужно (проще-для медведя что в ванили,для стайных-как у волков) Актив-1 конечно... Переделываем под модовые и получаем, <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <events> <event name="AnimalBearA"> <nominal>5</nominal> <min>1</min> <max>3</max> <lifetime>180</lifetime> <restock>0</restock> <saferadius>200</saferadius> <distanceradius>10</distanceradius> <cleanupradius>300</cleanupradius> <flags deletable="0" init_random="0" remove_damaged="1"/> <position>fixed</position> <limit>custom</limit> <active>1</active> <children> <child lootmax="0" lootmin="0" max="1" min="1" type="Radioactive_Bear_juggernaut"/> <child lootmax="0" lootmin="0" max="1" min="1" type="Radioactive_Bear_Beast"/> <child lootmax="0" lootmin="0" max="1" min="1" type="Radioactive_Bear_Tough"/> </children> </event> <event name="AnimalWolfA"> <nominal>8</nominal> <min>4</min> <max>6</max> <lifetime>180</lifetime> <restock>0</restock> <saferadius>200</saferadius> <distanceradius>0</distanceradius> <cleanupradius>0</cleanupradius> <flags deletable="0" init_random="0" remove_damaged="1"/> <position>fixed</position> <limit>child</limit> <active>1</active> <children> <child lootmax="0" lootmin="0" max="6" min="2" type="Radioactive_Wolf_juggernaut"/> <child lootmax="0" lootmin="0" max="4" min="0" type="Radioactive_Wolf_Beast"/> <child lootmax="0" lootmin="0" max="4" min="0" type="Radioactive_Wolf_Tough"/> </children> </event> </events> Опять таки проверяем кодировку,валидатором и на соответствие с ванильным файлом. Даже если есть предоставленный автором мода готовый- просмотрите, поправите, исправите. Теперь подключаем созданные файлы. Открываем ванильный файл cfgeconomycore.xml И вписываем между </defaults> и </economycore> <ce folder="mod"> <file name="Atypes.xml" type="types" /> <file name="Aevents.xml" type="events" /> </ce> Мы создали два подключаемых файла с тайпс и событиями и подключили их. Открываем папку env и создаём два файла bearA_territories.xml и wolfA_territories.xml Это файлы территорий спавна. Один из способов их заполнить-работа через СУ Editor. Другой-вручную спавнится к каждой точке спавна и снимать координаты, в не зависимости как вы поступаете нужно сделать следующее. ОТкрываем файл , к примеру , bearA_territories.xml Заполняем его следующим образом. <?xml version="1.0" encoding="UTF-8"?> <territory-type> </territory-type> Так начинается и заканчивается этот файл, между ними вбиваем точки спавна. Для примера приведу ДВЕ точки спавна для ДВУХ событий. <?xml version="1.0" encoding="UTF-8"?> <territory-type> <territory color="4291611852"> <zone name="Water" smin="0" smax="0" dmin="0" dmax="0" x="4822.5" z="13657.5" r="60"/> <zone name="Water" smin="0" smax="0" dmin="0" dmax="0" x="4897.5" z="13815" r="60"/> <zone name="Rest" smin="0" smax="0" dmin="0" dmax="0" x="4997.5" z="13127.5" r="232.5"/> <zone name="HuntingGround" smin="0" smax="0" dmin="0" dmax="0" x="4960" z="13105" r="292.5"/> </territory> <territory color="4291611852"> <zone name="Water" smin="0" smax="0" dmin="0" dmax="0" x="6030" z="11485" r="45"/> <zone name="Rest" smin="0" smax="0" dmin="0" dmax="0" x="7477.5" z="11970" r="180"/> <zone name="HuntingGround" smin="0" smax="0" dmin="0" dmax="0" x="7462.5" z="11970" r="217.5"/> <zone name="HuntingGround" smin="0" smax="0" dmin="0" dmax="0" x="6457.5" z="12210" r="210"/> </territory> </territory-type> territory color="4291611852" - цветовой код для СЕ. Совет делать его не разным для всего события и уникальным. zone name="Water" - название зоны спавна (не подтверждено-разные названия влияют на поведение животных после спавна) далее идёт количество статических и динамических объектов при спавне (если в ивенте "лимит" ссылается на эти значения -сделать отличными от нуля) Далее координаты точки и радиус в котором произойдёт спавн. Ещё для примера wolfA_territories.xml <?xml version="1.0" encoding="UTF-8"?> <territory-type> <territory color="4290666866"> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="4822.5" z="13657.5" r="100"/> <zone name="Rest" smin="0" smax="0" dmin="3" dmax="4" x="4997.5" z="12927.5" r="200"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="5060" z="12805" r="292.5"/> </territory> <territory color="4290666866"> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="7897.5" z="7515" r="100"/> <zone name="Rest" smin="0" smax="0" dmin="3" dmax="4" x="7477.5" z="7070" r="150"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="7560" z="7105" r="250.5"/> </territory> </territory-type> Опять всё проверяем,кодировка, проверка, схожесть, проверяем, сохраняем не делайте ошибки по типу <?xml version="1.0" encoding="UTF-8"?> <territory-type> <territory color="4291611852"> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="4822.5" z="13657.5" r="60"/> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="4897.5" z="13815" r="60"/> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="6030" z="13485" r="45"/> <zone name="Rest" smin="0" smax="0" dmin="3" dmax="4" x="6997.5" z="12127.5" r="232.5"/> <zone name="Rest" smin="0" smax="0" dmin="3" dmax="4" x="7477.5" z="11970" r="180"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="6960" z="12105" r="292.5"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="7462.5" z="11970" r="217.5"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="6457.5" z="12210" r="210"/> </territory> </territory-type> в таком виде это блок точек для ОДНОГО события. Но если у вас в планах именно так, то....почему и нет?))) Теперь подключаем наши события из файла инит Открываем ванильный файл cfgeventspawns.xml И между <eventname="AnimalRoeDeer" /> и <event name="Animal Wolf" /> вписываем <event name="AnimalBearA" /> <event name="AnimalWolfA" /> Название для ивента взяты из созданного нами файла Aevents.xml (кодировка, проверка, схожесть, проверяем, сохраняем) Открываем ванильный файл cfgenvironment.xml В блок file path <file path="env/wolfA_territories.xml" /> <file path="env/bearA_territories.xml" /> Мы указали на путь к файлам с точками спавна. В блок с territory type вписываем <territory type="Herd" name="WolfA" behavior="DZWolfGroupBeh"> <file usable="wolfA_territories" /> </territory> <territory type="Herd" name="BearA" behavior="BlissBearGroupBeh"> <file usable="bearA_territories"/> </territory> Где name= - общее имя для территорий животного (использую всегда окончание названия ивента -подобие ванили ибо там так) behavior="DZWolfGroupBeh" - подключение поведения. должен совпадать с установками в самом моде. Да, можно попробовать волкам прописать модель поведения коровы.Не проверял. file usable="bearA_territories подключение файла территории. Проверяем, сохраняем, вайпаем сервер. Далее.....Всё. Быстрее сделать чем рассказать. Почему файлы тайп с и ивент создаём сами и подключаем отдельно. Одна цитата от "богемии" because of a limit on xml file-size Да и проще работать когда всё разложено по полкам. Кому не удобно и просто лень-мешайте в одну кучу.