Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
sks762

Шаманим над оффлайном Дейза_63

Recommended Posts

Полагаю, многих оффлайнщиков 63-го Дейза удручает ситуация с зомби. Они возникают лишь поначалу игры, в населёнке вблизи места спавна перса. Остальная же Чернарусь стерильна, игра без зомби теряет остроту, расслабляются булки... В надежде преломить ситуацию мы начинаем ковырять файл events.xml -  увеличиваем параметры спавна зомби nominal, min, max... Дудки!   Чешем репу и пытаемся разобраться в логике работы нынешнего спавнера (он сильно отличается от привычного по предыдущим версиям игры). Вот курицы, к примеру, спавнятся без замечаний. У них параметр position установлен  fixed (а у зомбаков - player). Интуиция говорит, что это типа дабы зомбаки спавнились на игрока, а куры (и прочая живность) - жестко на предписанных спавнеру местах (указанных файлом config из server_data.pbo).  Ставим и зомбакам параметр fixed. Ситуацию, вопреки надеждам, это не улучшает. B отчаянии начинаем курочить общие файлы игры - тот же config из server_data.pbo (играемся с параметрами minSpawn, mахSpawn для конфигов мест спавна зомби), пытаемся включить генерацию  отрядов зомби через спавнер из worlds_chernarusplus_ai. Безуспешно. Но ведь и курицы, и волки, и коровы работают!! Мистика..

Плюём на спавнер и начинаем выкручиваться подручными средствами (играть то хоцца!). Вот у меня "кулибинский" оффлайн-мод позволяет спавнить живность вручную. И я в режиме свободной камеры летаю себе над Чернарусью и с воздуха предварительно заспавниваю зомбаков по всем злачным местам. Ну а затем захожу туда по земле и играю обычным образом...

Глупейшее занятие! Надо всеж добивать автоспавн через events. Но там полный облом, что ни твори.

И вот невыспавшийся и злой, я совершаю бессмысленный на первый взгляд финт - параметру position присваиваю значение hui. Да, вы не ослышались, именно hui (я был очень зол на БИсов). И вы не поверите! О ЧУДО! Зомбаки поперли толпами! Во всех встречных населёнках, блокпостах, куды ни сунься!!! Только успевай перезаряжать калаш! Вот что "hui" животворящий делает! Правда ему немножко помогают и некоторые дополнительные мелкие корректуры. Их общую суть можно глянуть а хоть бы и на примере исправленного спавна вояк:

    </event>

    <event name="InfectedArmy">

        <waves>3</waves>

        <nominal>55</nominal>

        <min>50</min>

        <max>250</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>100</saferadius>

        <distanceradius>50</distanceradius>

        <cleanupradius>100</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="1" sec_spawner="0"/>

        <position>hui</position>

        <limit>custom</limit>

        <active>1</active>

        <children>

           <child lootmax="0" lootmin="1" max="5" min="5" type="ZmbM_SoldierHelmet"/>

           <child lootmax="0" lootmin="1" max="5" min="4" type="ZmbM_PatrolNormal_Autumn"/>

            <child lootmax="5" lootmin="1" max="5" min="1" type="ZmbM_PatrolNormal_Flat"/>

            <child lootmax="5" lootmin="0" max="5" min="3" type="ZmbM_PatrolNormal_PautRev"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_PatrolNormal_Summer"/>

            <child lootmax="5" lootmin="0" max="5" min="3" type="ZmbM_SoldierNormal"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_SoldierAlice"/>

            <child lootmax="5" lootmin="0" max="5" min="5" type="ZmbM_SoldierVest"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_SoldierAliceHelmet"/>

        </children>

Я не стебусь, это реальный фрагмент реально работающего файла events.xml! Честное геймерское!

Ну и по остальным типам зомби прошелся. Не буду утверждать, что нащупал оптимальные числовые величины. Но они создают достаточно комфортную игру. Кто захочет, сможет далее откорректировать под себя.

Словом, родился работоспособный динамический спавн зомби на игрока. Охотно делюсь им с обществом. До кучи добавляю и некоторые другие улучшения:

1. Расширена номенклатура военных зомби. Теперь вдобавок к прежним приевшимся патрульным в "горках" будут спавниться и вояки в брониках, и в касках и т.д. Это потребовало внесения изменений и в файл cfgSpawnableTypes.xml. Увы, обломался с пиндосами. Вы ж знаете, что в игре появились пиндосы-морпехи? В камуфляже MARPAT. По легенде игры именно они займут все военные базы (так говорят конфиги этих баз). Очень хотелось самолично рубануть пиндоса топором, НО спавнер оффлайна категорически отказывается корректно спавнить пиндосов - они возникают лишь как статические неодушевленные объекты (ну вы ж сталкивались с подобными случаями - зомбаки стоят как тумбочка, растопырив руки, не шевелятся, молчат, убить их невозможно?)

Можно бы расширить и гражданских зомби - включить доярку, попА, жЫрную тетку и т.д. но это - на любителя.

2. Расширен ассортимент спавнящихся полезных вещей. Кастрюля, балаклава, перчатки (хотя они и не нужны уже особо - руки в эксперименталке перестали кровяниться), глушак на пикаль, барабан на калаш (его вы не раз помянете добрым словом!), мармелад (бомбезный хавчик!), компас, т.д... Прямого спавна бананов не будет, НО! - замочИте Дина Холла (одетого в любую сорочку, без разницы) и пошарьте у него за пазухой - я напихал ему бананы взаместо прежних отстойных киви. Банан отлично насыщает и утоляет жажду. Прямого спавна не будет! Хочешь банан? Завали Дина Холла!

Чото вы заскучали. Наверное устали читать букффы. Отдохните, поглядите скрин. Так выглядит Дин Холл - "папа" Дейза (зомбак слеплен именно с него).  И у него - банан!

 

Итого. В архиве содержатся модифицированные файлы:

- cfgSpawnableTypes.xml из папки оффлайн миссии;

- events.xml и types.xml из папки db оффлайн миссии.

Забрасываете их в вашу оффлайн миссию.

Проверены и с официальной версией оффлайна, и с неофициалкою (та, где расширенные возможности - сохранение перса, телепорт, управление временем/погодою, godd-режим и т.д.). Проверял на эксперименталке - голой и с апдейтом#1. Апдейт #2 не советую - в нем глюк оружия - многозарядный ствол, который спавнится с игроком, приходится выбрасывать, т.к. глючит магазин. Ружбайка-однозарядка же работает нормально.

Кстати, файлами игры можно разжиться у камрада 123new

http://forum.ragezone.com/f866/dayz-official-clients-game-stress-1148509/?s=571819d3b96c26fa1deb12ca16889157

 

а за продвинутым неофициальным оффлайн-модом советую заглянуть сюда

https://github.com/Arkensor/DayZCommunityOfflineMode

тут нет глупых наворотов на мод - автобуса, гранатомета и т.п. хренотени.

 

PS

Чтобы зомби спавнились обильнее, есть смысл поколдовать и над config.bin из состава server_data.pbo в той части, которая определяет зомби-спавн. Речь вот о чем - мы видим, что в ряде базовых конфигураций спавна разрабами обнулены параметры maxSpawn, т.е. зомби не будет.

 

          class SpawnXRoad : SpawnVillage {

                radius = 90;

                minSpawn = 0;

                maxSpawn = 0;

                types[] = {"ZmbM_HermitSkinny_Beige", "ZmbM_HermitSkinny_Black", "ZmbM_HermitSkinny_Green", "ZmbM_HermitSkinny_Red", "ZmbM_FishermanOld_Blue", "ZmbM_FishermanOld_Green", "ZmbM_FishermanOld_Grey", "ZmbM_FishermanOld_Red", "ZmbM_HunterOld_Autumn", "ZmbM_HunterOld_Spring", "ZmbM_HunterOld_Summer", "ZmbM_HunterOld_Winter"};

          };

         

          class SpawnHamlet : SpawnVillage {

                radius = 120;

                minSpawn = 0;

                maxSpawn = 0;

                types[] = {"ZmbM_HermitSkinny_Beige", "ZmbM_HermitSkinny_Black", "ZmbM_HermitSkinny_Green", "ZmbM_HermitSkinny_Red", "ZmbM_FishermanOld_Blue", "ZmbM_FishermanOld_Green", "ZmbM_FishermanOld_Grey", "ZmbM_FishermanOld_Red", "ZmbM_HunterOld_Autumn", "ZmbM_HunterOld_Spring", "ZmbM_HunterOld_Summer", "ZmbM_HunterOld_Winter"};

          };

 

А далее по тексту на основе этих "обезлюженых" базовых конфигов строятся конфиги ряда конкретных мест. Например, конфиг деревни Красное базируется на SpawnHamlet и чтобы вам в деревне не было одиноко, надо или дописать строку с ненулевым maxSpawn в "деревенский" конфиг, либо сразу установить ненулевой maxSpawn в конфиге class SpawnHamlet (это заселит и еще кучу сопряженных деревень/сел). Играясь на величинах minSpawn, maxSpawn, обеспечиваем желаемый диапазон заселенности по данному конфигу.

Свой вариант config.cpp (это аналог config.bin) для эксперименталки (голой и апдейт#1)я выкладываю для скачивания. Вам потребуется вставить его в server_data.pbo. Как работать с pbo-шками, подробно излагал в соседней теме про "петухов". Кстати, мой config.cpp обеспечит и заселенность Алькатраса зэками. Сравнивайте с оригинальным server_data.pbo и выбирайте, что нравится больше.

Следует учитывать, что крайний запад локации (который совсем-совсем новье) еще не проработан до конца, его хутора еще не сконфигурированы для зомби (и даже кур). Да что хутора, даже пансионат ТЕС оказался безлюден. Я пять минут бродил по нему. стреляя в воздух, пока ко мне не выбежал из леса одинокий запыханный зомбик! :-) Остается или дожидаться разрабов, или конфигурировать эти места самим (в том же config.cpp)

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites



Если кому это необходимо, могу тему сделать с файлами вышедших и выходящих 0.63-версий (как на ragezone, только на русском) и на данном форуме, но будут они все на mega.nz обменнике, ибо нет у меня столько места на компьютере, трафика и времени перегружать все это добро на другие обменники или торренты сидировать.

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

Продолжим наши шаманства. На очереди - хеликраши.

            Изначальная ситуация с хеликрашами плачевна - их не наблюдается вовсе (по крайней мере, я не смог найти ни одного, сколько ни пыжился). Попытки исправить дело, корректируя в events.xml и types.xml все, что связано с хеликрашами, не обрадовали успехами. В отчаянии лезем в другие файлы оффлайна и вот чОрными от недосыпу глазами видим в cfgEventSpawns.xml  какую-то хрень, творящуюся с координатами события StaticHeliCrash. Ниже я выделил цветом стремные строки

    <event name="StaticHeliCrash">

        <!--!Zelenogorsk <pos x="5738.430176" z="7605.029785" a="0.000000" /> -->

        <!--!Zelenogorsk <pos x="6242.120117" z="8368.709961" a="0.000000" /> -->

        <!--!Zelenogorsk <pos x="4015.100098" z="7971.569824" a="0.000000" /> -->

        <!--!Zelenogorsk <pos x="2320.310059" z="10217.799805" a="0.000000" /> -->

.

.

.

.

        <!--!Zelenogorsk <pos x="5016.430176" z="6257.919922" a="0.000000" /> -->

        <!--!Zelenogorsk <pos x="4781.899902" z="6270.259766" a="0.000000" /> -->

        <!--!Zelenogorsk <pos x="4455.930176" z="6181.720215" a="0.000000" /> -->

        <!--!Zelenogorsk <pos x="4074.979980" z="6222.180176" a="0.000000" /> -->

        <pos x="3622.300049" z="6415.959961" a="0.000000" />

        <pos x="3254.449951" z="6682.649902" a="0.000000" />

        <pos x="2848.060059" z="6815.640137" a="0.000000" />

        <pos x="2572.179932" z="6781.149902" a="0.000000" />

        <pos x="2298.229980" z="6513.399902" a="0.000000" />

        <pos x="2313.929932" z="6151.049805" a="0.000000" />

.

.

.

.

Для начала удаляем подчистую все строки с непоняткой, а в events.xml параметры события  StaticHeliCrash корректируем, к примеру так:

 

    <event name="StaticHeliCrash">

        <waves>10</waves>

        <nominal>20</nominal>

        <min>15</min>

        <max>30</max>

        <lifetime>2500</lifetime>

        <restock>0</restock>

        <saferadius>1000</saferadius>

        <distanceradius>1000</distanceradius>

        <cleanupradius>1000</cleanupradius>

        <flags deletable="1" init_random="0" remove_damaged="0" sec_spawner="1"/>

        <position>fixed</position>

        <limit>custom</limit>

        <active>1</active>

        <children>

            <child lootmax="20" lootmin="10" max="20" min="10" type="Wreck_Mi8"/>

            <child lootmax="20" lootmin="10" max="20" min="10" type="Wreck_UH1Y"/>

 

Грузим продвинутый оффлайн и в режиме телепорта начинаем обшаривать оставшиеся после подчистки cfgEventSpawns.xml точки возможного спавна вертаков. Есть вертолеты!!!  Пиндосские! Временно отложим вопрос, почему рядом заспавнены безжизненные зомби (и даже олень) - это тема отдельного разговора. Главное, нащупана верная тропа. Вот только жаль, что точек спавна хеликрашей осталось совсем немного после удаления всех непоняток из cfgEventSpawns.xml. Присмотримся к непоняткам пристальнее. Так внутри же них - обычные координаты хеликрашей из файла config     server_data.pbo!

Снова беремся за исходный cfgEventSpawns.xml, удаляем в нем только все <!--!Zelenogorsk и --> (не трогая координаты внутри), получив в результате рабочий хели-спавн по всем предусмотренным точкам. Что и требовалось! Исправленный cfgEventSpawns.xml выкладываю для скачивания, а events.xml вам нетрудно будет и самостоятельно подкорректировать.

Вернемся к вопросу о зомби (и животных) вокруг вертолетов. Эти существа неодушевленны, застыли статуями. Так и хотел бы сказать, что они остолбенели от изобилия лута, но нет - лута вокруг немного, и чем больше существ, тем лута меньше. Такое впечатление, что спавнер временами глючит и взаместо "вещевого" лута спавнит статичных зомбаков или животных. Это же часто наблюдается и на полискрашах и даже порою в обычных зданиях Чернаруси. Увы, пока не понятно, как победить этот глюк. И еще момент - все встретившиеся мне вертаки оказались пиндосскими UH-1. Ситуация меня устраивает и разбираться в причинах отсутствия МИ-8 я не стал.

Дыма над пиндосскими вертаками теперь нету, обнаружить их сложнее, а посему может пригодиться такой лайфхак: если заметите посреди поля толпу неподвижных зомби, присмотритесь внимательнее - при известной наблюдательности рядом вы непременно увидите и вертолет :-)

 

PS

Оказалось, что Ми-8 тоже спавнятся. Вот скрин.

 

В качестве бонуса - немного о кулинарии. Как вижу, в 31-м стресс-тестовом Дейзе (спасибо за файлы камраду 123new) снова зафункционировал примус. И это - вэри гуд! Имея примус и кастрюлю, можно приготовить стейки, не заморачиваясь с костром. Но! В кастрюлю надо ОБЯЗАТЕЛЬНО плеснуть ВОДУ (иначе мясо сгорает). Парадоксально, но из кастрюли с водою выходят такие же румяные стейки, как и с шампура. Пользуемся, пока разрабы не пофиксили этот баг. Сковородка же у них вообще не работает.

Спавн кастрюли я включил ранее (в архиве, выложенном в верхнем посте), а для включения спавна примуса вписываем в любое удобное место файла types.xml ( из папки db оффлайна) строки, выделенные цветом

     .

     .    

 <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0"/>

    </type>

    <type name="PortableGasStove">

        <nominal>60</nominal>

        <lifetime>5600</lifetime>

        <restock>0</restock>

        <min>40</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="tools"/>

        <tag name="shelves"/>

        <usage name="kitchen"/>

    </type>

    <type name="SmallGasCanister">

        <nominal>60</nominal>

        <lifetime>5600</lifetime>

        <restock>0</restock>

        <min>40</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="tools"/>

        <tag name="shelves"/>

        <usage name="kitchen"/>

    </type>

            .

            .

            .

Вышеприведенная вставка важна для геймеров, играющих в "официальный" оффлайн. "Неофициалы"  же легко чИтят себе примус с помощью DELETE по ключевым словам Stove и GasCanister.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762
дополнение (see edit history)

Share this post


Link to post
Share on other sites

            Камрад 123new выложил (и за это ему огромная благодарность!) самый свежак Дейз 63.148365 (на ragezone.com). Ну как тут удержаться и не поглядеть (после ооочень долгого перерыва), а что же там у BIS'ов новенького вырисовывается? Мдя-я, негусто...

- немножко новых стволов (М4, помповуха и Мосинка, которую, кстати, можно ножовкою переделать на обрез), оружейная оптика (Кобра на калаш очень неплоха);

- функционирующая зажигалка;

- уже можно ставить треногу на костер, да и проблемы з зажиганием примуса в очередной раз побеждены ;

- в кастрюле с водою можно сварить мясцо и картофанчик (см. скрин - BOILED), а если без воды, но с жиром (lard), то получится жарёха (см. скрин - BAKED). Без жира мясо сгорает. Жир же придется маланить, т.к. при разделке туш животных жира нету. Впрочем, разрабы еще не удосужились активировать болячки/отравления, так что пока можно жрать и сырое и горелое;

- перс уже перестал блевать с риса, но продолжает тошнить с сухого молока;

- фрукты заходят персу без проблем и можно бы озаботиться спавном слив, груш, апельсинчиков. Но вместо фруктов разрабы почему-то взялись за мухоморы и поганки...;

- работы на Балотском аэродроме, спору нет, ведутся, но в палатках все еще нету лута, а некий левый лут висит в небе.

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

А время неумолимо бежит и боюсь, с такими темпами работ мы еще не скоро дождемся релиза Дейза.

 

Ладно, щас по быстрячку дошаманим с учетом обновок мой старый types.xml :

- добавим жир, рис, картошку;

- ножовку, треногу, зажигалку;

- стволы и рабочие прибамбасы к ним (чисто для красоты добавим и сошки на М4);

- до кучи закинем ОЗК и шлем Горка.

 

Вот готовый архивчик. Этот types.xml годится для любой версии оффлайнмода. Забрасываем файл в папочку db.

 

Пара замечаний к оффлайн-модам.

Аркенсоровский (с https://github.com/Arkensor/DayZCommunityOfflineMode) перестал сохранять перса, но прочие фичи продолжают работать.

Для сохранения можно юзать Колобовский оффлайн-мод (взял его у камрада 123new на ragezone.com). У мода есть небольшой глюк. Приходится перед выходом из игры отстыковывать оружейные магазины, иначе ствол потом перестанет их воспринимать.

Официальный оффлайн не учитывает всю полную номенклатуру пригодного к игре лута и содержит ошибку: очки теперь называются не RocketAviators, а AviatorGlasses.

 

Рекомендовал бы отредактировать стартовый инвентарь - минимизировать его (чтоб выживать было интереснее), но взамен забросить туда яблочко (чтоб сбить начальный сушняк и заморить червячка на первое время).

Для Колобовского оффлайна находим его файл init.c, открываем текстовым редактором и фрагментарно (выделено цветом) приводим к такому, например, виду:

     .

     .    

     myPlayer.SetInventory( "apple");

     myPlayer.SetInventory( "Rag", 2 );

     myPlayer.SetInventory( "HuntingKnife" );

     .

     .

Для официального оффлайна берем его init.c и фрагментарно (показано цветом) редактируем к виду:

     itemEnt = player.GetInventory().CreateInInventory("Rag");

     itemBs = ItemBase.Cast(itemEnt);

     itemBs.SetQuantity(2);

     SetRandomHealth(itemEnt);

 

     //itemEnt = player.GetInventory().CreateInInventory("Mag_IJ70_8Rnd");

     //SetRandomHealth(itemEnt);

 

     itemEnt = player.GetInventory().CreateInInventory("apple");

     SetRandomHealth(itemEnt);

 

      itemEnt = player.GetInventory().CreateInInventory("HuntingKnife");

     SetRandomHealth(itemEnt);

 

     //itemEnt = player.GetInventory().CreateInInventory("MakarovIJ70");

     //SetRandomHealth(itemEnt);

     //player.SetQuickBarEntityShortcut(itemEnt, 2);

 

     //itemIn = itemEnt.GetInventory().CreateAttachment("Mag_IJ70_8Rnd");

     //SetRandomHealth(itemIn);

 

     //itemEnt = player.GetInventory().CreateInInventory("Izh18");

     //SetRandomHealth(itemEnt);

     //player.SetQuickBarEntityShortcut(itemEnt, 0);

 

     //itemBs = ItemBase.Cast(itemEnt);

     //itemBs.SetQuantity(rndQnt);

 

     //itemEnt = player.GetInventory().CreateInInventory("Ammo_762x39");

     //rndQnt = Math.RandomInt(5,20);

     //SetRandomHealth(itemEnt);

     //player.SetQuickBarEntityShortcut(itemEnt, 1);

 

     //itemEnt = player.GetInventory().CreateInInventory("Ammo_380");

     //SetRandomHealth(itemEnt);

 

Для аркенсоровского мода (и его клона от камрада fidov'а) эти манипуляции особого смысла не имеют, т.к. мод позволяет игроку нашаманивать себе любые вещи в инвентарь. Но все-таки:

лезем в файл .... \modules\CommunityOfflineMode.c, комментим то, что считаем лишним, дописываем то, что считаем нужным. Подробности опускаю.

 

 

А в заключение предлагаю немножко поощрить разрабов (за то, что хоть как-то шевелятся). Давайте вместо значения hui, озвученного в посте выше, использовать что-то помягше, например - zopa. На спавне зомбаков это, гарантирую, не отразится, а разрабам будет, несомненно, приятнее. А в будущем, если разрабы продолжат радовать нас, ваще что-то благозвучное подыщем.

 

P.S. Вид бычьих яиц совсем выбил меня из колеи. Разрабы, ну зачем, зачем вы сделали их такими большими??? Вы провоцируете у геймеров чувство собственной неполноценности!

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762 (see edit history)

Share this post


Link to post
Share on other sites

Осень - грибная пора.

А не сходить ли нам в лес с лукошком?

Качаем на ragezone  у камрада 123new файлы стресстеста#45, в благодарность обещаем камраду корзинку грибочков и первым делом лезем в events.xml - смотрим, что там у разрабов творится в грибном плане. Вот они, наши грибки:


   

Скрытый текст

 

<event name="TrajectoryConiferous">

        <waves>0</waves>

        <nominal>140</nominal>

        <min>2</min>

        <max>4</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>25</saferadius>

        <distanceradius>100</distanceradius>

        <cleanupradius>25</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="0" sec_spawner="0"/>

        <position>fixed</position>

        <limit>mixed</limit>

        <active>1</active>

        <children>

            <child lootmax="0" lootmin="0" max="0" min="0" type="AmanitaMushroom"/>

            <child lootmax="0" lootmin="0" max="0" min="0" type="BoletusMushroom"/>

            <child lootmax="0" lootmin="0" max="0" min="0" type="MacrolepiotaMushroom"/>

        </children>

    </event>

    <event name="TrajectoryDeciduous">

        <waves>0</waves>

        <nominal>140</nominal>

        <min>2</min>

        <max>4</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>25</saferadius>

        <distanceradius>100</distanceradius>

        <cleanupradius>25</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="0" sec_spawner="0"/>

        <position>fixed</position>

        <limit>mixed</limit>

        <active>1</active>

        <children>

            <child lootmax="0" lootmin="0" max="0" min="0" type="AmanitaMushroom"/>

            <child lootmax="0" lootmin="0" max="0" min="0" type="LactariusMushroom"/>

        </children>

    </event>

    <event name="TrajectoryHumus">

        <waves>0</waves>

        <nominal>140</nominal>

        <min>2</min>

        <max>4</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>25</saferadius>

        <distanceradius>100</distanceradius>

        <cleanupradius>25</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="0" sec_spawner="0"/>

        <position>player</position>

        <limit>parent</limit>

        <active>1</active>

        <children>

            <child lootmax="0" lootmin="0" max="0" min="0" type="AgaricusMushroom"/>

            <child lootmax="0" lootmin="0" max="0" min="0" type="PleurotusMushroom"/>

            <child lootmax="0" lootmin="0" max="0" min="0" type="PsilocybeMushroom"/>

 

 

Все тут - и мухоморчики, и поганки, и т.д. За одними надо идти в хвойный лес (Coniferous), за другими - в лиственичный (Deciduous)...

Cтроки, выделенные цветом, можно удалять - этих грибов нету в нынешней базе (опять разрабы накосячили!), но зато появился гриб AuriculariaMushroom ("Jew's ear - еврейское ухо"). Вот его следует дописать вместо одного из удаленных. Параметры грибного спавна пока не трогаем.

 

Предвкушая богатый сбор, углубляемся в лес, отстреливаясь от волков. Полдня бродим, а грибов хоть бы один попался! Хреново.. И сами голодными будем и перед камрадом 123new неудобно.

Ну что ж, если Чернарусь не хочет отдавать свои грибы "по-доброму", будем собирать их "по-наркомански". Мухоморы - под яблонями!!

Лезем в events.xml и дописываем строчку (выделено цветом):

Скрытый текст

 

    <event name="TrajectoryApple">

        <waves>0</waves>

        <nominal>140</nominal>

        <min>2</min>

        <max>4</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>25</saferadius>

        <distanceradius>100</distanceradius>

        <cleanupradius>25</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="0" sec_spawner="0"/>

        <position>player</position>

        <limit>parent</limit>

        <active>1</active>

        <children>

            <child lootmax="0" lootmin="0" max="3" min="0" type="Apple"/>

          <child lootmax="0" lootmin="0" max="2" min="1" type="AmanitaMushroom"/>

 

 

Мчимся в заветное местечко и опа! вот он - первый мухоморчик.  А вот и следующий! А тут яблочко, А тут - снова мухоморчик! Не заметил, как уже полную котомку собрал. Где такое жирное местечко, спрашиваете? Да кто ж свои грибные места выдает??? Ну ладно, вам скажу. Вот, кстати свежая интерактивная карта Дейз63 -

http://www.izurvive.com/

Так вот, если выйти из Березино по коричневой дороге на северо-запад (ну по той, что ведет к блокпосту у Дубровки), то на обочинах будет много яблонь. Да, грибы с шоссейных обочин Минздрав есть не рекомендует, но нам пох, нас все равно скоро убьют иди сами подохнем.

С опаскою кушаем первый мухомор.. затем второй... третий и ждем цветных мультфильмов в голове. Но не штырит!!. Разрабы недоработали и не прикрутили нужный эффект! Впрочем, разве это - их единственная недоработка в нынешнем Дейзе?..

 

P.S.

А если хотите поганок покушать или там "еврейского уха", добавьте под яблоню соответствующую строчку с этими грибами (PsilocybeMushroom, LactariusMushroom и т.д.) как я сделал с мухомором.

И не неситесь сломя голову по шоссе! Спавнер не успеет среагировать и сгенерировать вам даже яблок! Идите неспешно, глядя внимательно под каждую яблоню. Бывает, протопал в один конец аж до блокпоста, а ничего не нашел. Повернул назад и под деревьями, где пару минут назад было пусто, теперь и яблоки, и грибы!

 

P.S.№2

А знаете, какая с мухоморного похмелья идея мне пришла на утро?

Раз BIS'ы поскупились на галлюцинации, давайте галлюцинацию организуем сами! Да такую явственную, что от реала не отличишь!

Итак, лезем в events.xml, делаем дописку 

Скрытый текст

 

   <event name="TrajectoryApple">

        <waves>0</waves>

        <nominal>140</nominal>

        <min>2</min>

        <max>4</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>25</saferadius>

        <distanceradius>100</distanceradius>

        <cleanupradius>25</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="0" sec_spawner="0"/>

        <position>player</position>

        <limit>parent</limit>

        <active>1</active>

        <children>

            <child lootmax="0" lootmin="0" max="3" min="0" type="Apple"/>

    <child lootmax="0" lootmin="0" max="2" min="1" type="AmanitaMushroom"/>

     <child lootmax="0" lootmin="0" max="1" min="1" type="AKM"/>

     <child lootmax="0" lootmin="0" max="1" min="1" type="Mag_AKM_Drum75Rnd"/>

    <child lootmax="0" lootmin="0" max="1" min="1" type="pso1Optic"/>

        </children>

 

Из котомки достаем заветные грибные запасы (парочки поганок и мухоморов будет достаточно), едим и вприпрыжку мчимся в яблоневые места. О чудо! Теперь наши глаза видят под деревьями и калаши, и барабаны, и оптику! Можно поднять, пощупать, применить! Все - как настоящее, да что там - самое настоящее! Да здравствуют ГРИБЫ!!!

 

На заметку.

Камрады, для хохмы с грибами/калашами мне пришлось юзать "старые" версии файлов mapGroupProto.xml, MapGroupCluster.xml (сейчас они доступны в аркенсоровском и колобовском оффлайн-модах). В новых версиях этих файлов из официального оффлайна похоже есть проблемы. По замыслу разрабов должны были появиться грибы, сливы, груши, но вместо этого пропали даже яблоки из под яблонь.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762 (see edit history)

Share this post


Link to post
Share on other sites

       Ща будем шаманить пиндосов. Ударим в бубен и у нас появятся американские морпехи.

Почему морпехи? Да потому, что они - в чисто морпеховском камуфляже MARPAT.

Про наличие таких типажей я знал давно  и  очень хотел познакомиться - топором рубануть или там коленку прострелить для начала. Но все мои попытки наладить спавн были безрезультатны.  Я уж было подумал, что Штаты пригрозили чехам санкциями за дискредитацию и разработчики отключили морпехов в движке! Но причины оказались более прозаичны. Теперь они преодолены и ничего не помешает нашему знакомству с представителями самой демократической державы.

 

В полноценной игре морпехи скучкуются на аэродромах - там у них будут опорные пункты (так было, по крайней мере,  еще недавно в конфигах игры).

Сюжетный замысел разработчиков я читаю, как на ладони:

Штаты и их НАТОвские подпёрдыватели (колбасники, жабоеды) напали и оккупировали Чернарусь. Чернарусская армия и партизаны самоотвержено защищали свою землю (вспомним сожженные хамвишки и вертаки захватчиков, раскуроченные партизанами рельсы). Земля горела под ногами захватчиков! Оккупанты трусливо сгрудятся в крупных опорных пунктах, боясь высунуть нос за их пределы (так сейчас происходит в Афгане). В бессильной злобе они применят против населения оружие массового поражения. Но (возмездие судьбы!) и сами попадут под его воздействие - не помогут и противогазы с химкостюмами! Подпёрдыватели окажутся пожиже здоровьем и к нашему появлению уже повыздохнут, а останутся только пиндосники. Наглые. Лысые.

 

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

 

Функционал оффлайна ограничен и мы можем:

- или заменить всех военных зомби на морпехов;

- или добавить морпехов, смешав их с остальными военными.

Первый вариант представляется более логичным по сюжету.

Итак, лезем в файл events.xml в папке db оффлайна, находим InfectedArmy, удаляем вписанных туда зомби (в моем примере это красненьким) и вписываем то, что зелененьким.

Скрытый текст

 

     <event name="InfectedArmy">

        <waves>3</waves>

        <nominal>55</nominal>

        <min>50</min>

        <max>250</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>100</saferadius>

        <distanceradius>50</distanceradius>

        <cleanupradius>100</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="1" sec_spawner="0"/>

        <position>player</position>

        <limit>custom</limit>

        <active>1</active>

        <children>

           <child lootmax="3" lootmin="1" max="5" min="5" type="ZmbM_SoldierHelmet"/>

           <child lootmax="0" lootmin="1" max="5" min="4" type="ZmbM_PatrolNormal_Autumn"/>

            <child lootmax="5" lootmin="1" max="5" min="1" type="ZmbM_PatrolNormal_Flat"/>

            <child lootmax="5" lootmin="0" max="5" min="5" type="ZmbM_PatrolNormal_PautRev"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_PatrolNormal_Summer"/>

            <child lootmax="5" lootmin="0" max="5" min="1" type="ZmbM_SoldierNormal"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_SoldierAlice"/>

            <child lootmax="5" lootmin="0" max="5" min="5" type="ZmbM_SoldierVest"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_SoldierAliceHelmet"/>

           <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_usSoldier_Normal_Desert"/>

           <child lootmax="5" lootmin="1" max="5" min="4" type="ZmbM_usSoldier_Normal_Woodland"/> 

        </children>

    </event>

 

Если хотите, поиграйтесь с величинами max="..." min="..."

Но это еще не все. В карманы америкосам мы натолкаем патроны 5,56, их любимую пипсиколу и морфий (они ж - сплошные наркоманы!). Лезем в файл cfgSpawnableTypes.xml оффлайна и находим фрагмент

 

     <!--START OF ZOMBIES  -->

     <!-- ARMY -->

 

Там дальше пойдут разные военные зомбаки и содержимое их карманов. В зависимости от версии вашего оффлайна, могут содержаться и попытки конфигурировать багаж пиндосов, например, так


  

Скрытый текст

 

  <type name="ZmbM_usSoldierNormal_Desert">

        <cargo preset="foodArmy" />

        <cargo preset="ammoArmy" />

   </type>

<type name="ZmbM_usSoldierNormal_Woodland">

        <cargo preset="foodArmy" />

        <cargo preset="ammoArmy" />

    </type>

 

Скрытый текст

 

Увы, эти попытки не работают, т.к. пиндосы записаны в них с ошибкою.  Мы, во первых, исправим эту ошибку, а во вторых - заменим содержимое карманов. Итак, удаляем неправильные записи о пиндосах (если таковые записи имелись) и вносим такие строки
 

Скрытый текст

 

   <type name="ZmbM_usSoldier_Normal_Desert">

              <cargo chance="1.00">

            <item name="morphine" chance="1.00" />

        </cargo>

         <cargo chance="1.00">

            <item name="AmmoBox_556x45_20Rnd" chance="1.00" />

        </cargo>

       <cargo chance="1.00">

            <item name="SodaCan_Pipsi" chance="1.00" />

        </cargo>

    </type>

    <type name="ZmbM_usSoldier_Normal_Woodland">

              <cargo chance="1.00">

            <item name="morphine" chance="1.00" />

        </cargo>

         <cargo chance="1.00">

            <item name="AmmoBox_556x45_20Rnd" chance="1.00" />

        </cargo>

       <cargo chance="1.00">

            <item name="SodaCan_Pipsi" chance="1.00" />

        </cargo>

    </type>

 

 

Все.

Пиндосы, в студию!

 

И еще.

В кои века я удосужился прочесть надпись на постаменте памятника. Я очень зауважал BI Studio после этой надписи и больше никогда не скажу колкостей в их адрес, даже если не все будет ладиться с игрою.

 

 

P.S.

Кстати, чтобы у пользователей аркенсоровского и колобовского оффлайнов все стало тип-топ с лутом на Балоте (он перестал висеть в небе и появился в палатках), перебросьте в ваш оффлайн файл mapGroupPos.xml из свежего официального оффлайна. А вот файлы mapGroupProto.xml и MapGroupCluster.xml лучше оставить старые - не то совсем не станет яблок.

Где взять свежий официальный оффлайн, если нет Стима? Идем с бутылочкою пива к камраду 123new на ragezone.com и качаем полный стресс-тест#47 или эксперименталку№3 (что одно и то же). Там будет и необходимый оффлайн.

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762
добавлен скрин (see edit history)

Share this post


Link to post
Share on other sites

Почему-то сначала подумал что про конвои военных речь идёт, а не про зомби :biggrin:

Share this post


Link to post
Share on other sites

            На соседней улице бушует праздник: иллюминация... музыка...гром фейерверков... люди пьют шампанское...

Это улица хозяев продвинутых компов. Они, вот уже вторую неделю не просыхая, продолжают отмечать инсталляцию себе серверов Дейз63.

А мой компик слаб, ему не потянуть сервака и мне остается лишь вздыхать, прислуживаясь к разгулу чужого веселья. Моим светом в окошке останется оффлайн, который я буду продолжать лелеять под насмешливыми взглядами более состоятельных соседей.

Зря они насмехаются - любовь и забота способны творить чудеса! Вот и сейчас мой гадкий утенок станет еще чуточку более похожим на лебедя.

Сегодня у меня появятся груши, грибы и вернутся яблоки.

 

Если позволите, то в двух словах, как вообще появляются фрукты, грибы, камни для крафта, древесные пеньки (но зачем они?).

         Зациклимся на яблоках.

В миссионной папке есть два файла: mapGroupProto.xml и MapGroupCluster.xml.

В первом из них для "яблочного" события сделано следующее:

- определены три типа яблонь (каждая со своею 3D-моделью дерева) и каждому типу дано свое export name ( AppleTree1...3)

- далее для каждого AppleTree1...3 в его cluster name пристегнуто событие  TrajectoryApple и сказано, сколько максимально яблок и палок мы можем "слупить" с дерева (параметры lootmax) и даны относительные координаты возможных точек, где, как полагаю, будут валяться дары яблони. Не все еще гладко с этими координатами, вот и получается, что иногда мы видим яблоки висящими в воздухе, влипшими в стволы или еле торчащими из-под земли. Не исключено, что ряд яблок вообще провален в текстуры.

 

А в файле MapGroupCluster.xml даются координаты каждой яблони всех трех типов AppleTree.

 

Далее.

В миссионной папке db находится файл events.xml. В нем прописаны параметры события яблочного спавна -

Скрытый текст

 

    <event name="TrajectoryApple">

        <waves>0</waves>

        <nominal>140</nominal>

        <min>4</min>

        <max>6</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>25</saferadius>

        <distanceradius>100</distanceradius>

        <cleanupradius>25</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="0" sec_spawner="0"/>

        <position>player</position>

        <limit>parent</limit>

        <active>1</active>

        <children>

            <child lootmax="0" lootmin="0" max="2" min="1" type="Apple"/>

 

Не будем особо курочить имеющиеся настройки. Для эксперимента я лишь установил ненулевыми зелененькие цифры. Ну и убедился, что единичка в <active>1</active>

Но можно замутить и прикол. Заменим красненькое Apple на banana или ботинки или автомат, и яблоня уродит нам бананы (обувь, оружие).

 

В миссионной папке db находится также и файл types.xml. В нем яблочку определен срок жизни -
 

Скрытый текст

 

    <type name="Apple">

        <lifetime>900</lifetime>

        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0"/>

 

 

 

Спавнер, отталкиваяся от настроек из этих файлов и сгенерирует нам фрукт (ну или уберет отживший свое).

 

И с грушами/сливами/грибами/камнями все должно обстоять схожим образом.

 

На практике все оказалось отнюдь не гладко. С официальным оффлайном, прилагаемым к свежим стресс-тестам и эксперименталке, я не только не увидел обещанных груш/слив/грибов, но у меня пропали и яблоки и камни, которые были ранее. Причина в новых mapGroupProto.xml и MapGroupCluster.xml. Но мы не станем откатывать эти файлы к прежним версиям, а поступим так.

В серверном Дейзе реально встретились и яблоки, и груши, и полевые грибы, вот мы и воспользуемся файлами оттуда. Есть засада - на сервере присутствует не один "кластерный" файл, а целых четыре (и сервер загружает их все!). Давайте для начала испытаем серверный mapgroupcluster03.xml. А почему я не воспользовался серверным mapgroupcluster.xml? Так он же идентичен оффлайновому, беспонтовому!

Анализ в текстовом редакторе показывает внешнюю  достаточность этого mapgroupcluster03.xml - кагбе присутствуют все необходимые нам group name для фруктов/грибов/камней. Забросим этот файл с сервера в оффлайн, переименовав в mapgroupcluster.xml. Имеющийся  в оффлайне mapGroupProto.xml идентичен серверному и его не трогаем.

Играем.

Ё-моё! В Солнечном уродилось груш, хоть жопой жуй! И яблочко есть! А сколько яблок на обочине дороги из Березино в Горку!!! И грибки прут из земли!

 

Выпью ка и я сегодня бокальчик шампанского!

 

P.S.

Вы спросите: "А где же сливы???"

Увы, еще не нашел, сколь ни искал. Да я, по правде, пока и не знаю, как сливовые деревья должны выглядеть... А может, со сливами глюк, который еще только предстоит побороть.

И грибы пока только полевые собирал. За другими надо в леса идти, а там - волки! Они кусаются!!

 

P.P.S.

А почему не работал должным образом родной оффлайновский MapGroupCluster.xml?

Как знать... Может, координаты деревьев, стогов сена в group name некорректны -  не выправлены под нынешнюю карту...

 

P.P.P.S

Чтобы по максимуму задействовать все наработанные разработчиками точки (group name яблонь, груш, слив и т.д.), потенциально способные на урожай, провернул такую мульку - все серверные кластерные файлы (mapgroupcluster.xml, mapgroupcluster01....03.xml) перебросил в оффлайн. Он их заглотил и назагружал кучу дополнительных инстансов, как это происходит и на сервере. Кому интересно, вот логи официального оффлайна. Помечено зеленым.
 

Скрытый текст

 

Version 0.63.148707

13:54:59 [CE][Hive] :: Loading core data ...

13:54:59 [CE][CoreData] :: 7 root classes, 0 defaults...

13:54:59 [CE][Hive] :: Loading map data ...

13:54:59 [CE][LoadPrototype] :: loaded 225 prototypes

13:54:59   539 containers, 7249 points

13:54:59   0 dispatches, 0 proxies

13:54:59 !!! 7 groups have no points...

13:54:59 !!! 1 groups have wrong points...

13:54:59 [CE][LoadPrototype] :: last group name: Rail9...

13:54:59 !!! File ".\Missions\dayzOffline.ChernarusPlus\mapclusterproto.xml" does not exist...

13:54:59 !!! [CE][LoadPrototype] :: Failed to read group prototypes (.\Missions\dayzOffline.ChernarusPlus\mapclusterproto.xml)

13:55:04 [CE][Links] found 1856 total links between groups, of 11553

13:55:04 [CE][LoadMap] :: loaded 11553 groups, largest group range: 34.2

13:55:04 [CE][LoadClusters] :: Loading files...

13:55:04 [CE][LoadClusters] :: file: "mapgroupcluster.xml", 7 types, 50000 instances

13:55:05 [CE][LoadClusters] :: file: "mapgroupcluster01", 7 types, 50000 instances

13:55:05 [CE][LoadClusters] :: file: "mapgroupcluster02", 7 types, 50000 instances

13:55:05 [CE][LoadClusters] :: file: "mapgroupcluster03", 7 types, 44865 instances

13:55:06 !!! [CE][Init] No Memory Level found for \DZ\data\lightpoint.p3d


 

Помогло ли это игре? ХЗ... По прежнему можно встретить участки местности, где полный неурожай (деревья не вписаны в кластеры?). Но теперь от нас больше ничего не зависит - наш оффлайн полностью уподоблен "серверному" Дейзу. Улучшить - лишь разработчикам по силам.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762
дополнение (see edit history)

Share this post


Link to post
Share on other sites

      Сегодня мы нанесем удар по сливам и закроем "фруктовую" тему. Буду краток, т.к. по случаю удачи я объелся чернарусских слив и теперь меня периодически влечет сами понимаете куда.

     Оптимистичные логи оффлайна все это время дарили надежду, что сливы таки есть в игре:
 

Скрытый текст

 

TrajectoryPlum

Primary Spawner: "Trajectory", active: yes, repeat: 1

 

Сегодня мы прекратим тупое прочесывание садов, дворов, лесопосадок и призовем на помощь науку и маланство.

   На первых порах нам потребуется "аркенсоровский" оффлайн. Взять можно у камрада DrTauren

или на первоисточнике

Кажись есть ахтунг с работою этого оффлайна на свежей эксперименталке, поэтому сейчас воспользуемся стрессом#49.

    Для начала неплохо бы узнать, а как же выглядят сливовые деревья, чтоб не искать желанные плоды под осинами и кленами.

Лезем в миссионный файл mapGroupProto.xml и через цепочку ассоциаций видим, что сливам приписан единственный тип дерева PlumTree1

            <export name="PlumTree1" shape="dz\plants\tree\t_prunusDomestica_2s.p3d" />

Мда-а, другим фруктам повезло больше. У груш два типа деревьев, у яблонь - вообще три (правда один "битый" - AppleTree1, он ссылается на 3D-модель из ПБО-шки plants2.pbo, давно удаленной из игры).

    Для перестраховки заглянем в текущую ПБО-шку plants.pbo и убедимся, что сливовая модель t_prunusDomestica_2s.p3d в ней присутствует. Зер гут, нас не нае..ли.

Теперь из "кластерного" файла мы можем узнать координаты потенциально плодоносных сливовых деревьев. Как я химичил с кластерными файлами, говорится в предыдущем посте. Теперь просто вЫчитал для примера
   

Скрытый текст

 

<group name="PlumTree1" pos="10414.328125 284.051819 11659.247070" a="13.992451" />

    <group name="PlumTree1" pos="10436.125000 281.391937 11645.708984" a="48.964603" />

 

Можно идти в аркенсоровский оффлайн и телепортировать перса по этим координатам. НО! Плоды сливы мелки и невзрачны, попробуй разглядеть их в траве. Для нашего контрольного поиска их неплохо бы временно заменить на нечто крупное и броское/яркое.

Нет проблем! В events.xml вносим исправление (красненьким):

Скрытый текст

 

    <event name="TrajectoryPlum">

        <waves>3</waves>

        <nominal>140</nominal>

        <min>0</min>

        <max>140</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>25</saferadius>

        <distanceradius>100</distanceradius>

        <cleanupradius>25</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="0" sec_spawner="0"/>

        <position>test</position>

        <limit>parent</limit>

        <active>1</active>

        <children>

            <child lootmax="0" lootmin="0" max="2" min="1" type="DirtBikeHelmet_red"/>

 

Теперь нашим "сливовым" тестовым плодом стал красный гоночный шлем. Попутно по наитию вносим и зелененькие коррективы в параметры спавна.

    Все. Врубаем аркенсоровский оффлайн, в нем по Ctrl Del заходим в режим телепортирования, вбиваем координаты 10414   11659 и наш перс оказывается у дерева. Ну и в дебри же нас занесло! Так вот ты оказывается какая, слива... Поглядим еще на следующую (для гарантии) - она неподалеку. Включим "GPS" клавишею В и проследуем ко второму дереву. Все, ошибки быть не может, слива выглядит именно так, как на скрине - смотрите и запоминайте.

    Увы, под деревьями оказалось пусто. Но мы не отчаиваемся. Зная внешний вид деревьев, расширяем поиски. Встречаем целый сливовый сад, но тоже, увы, пустой (не иначе кабаны все сожрали!) А вот до этого дерева в Дубровке кабаны не добрались - видите, что-то там краснеет вдалеке?! Скорее туда! И там шлемы, и там! На месте этих шлемов вполне могли быть сладкие и сочные сливы!

Теорема доказана и нам можно вместо DirtBikeHelmet_red вернуть прежнее Plum в events.xml. И вот они - первые настоящие сливы Чернаруси! Но наблюдается небольшой глючок игры (может, это только у меня). Сливовые плоды визуализируются, только когда подходишь почти вплотную. Отступишь шаг - и их словно бы и не лежало. Шагнул - и вот они на прежнем месте. Чудеса-а-а...

 

Да, слив в Чернаруси не так много, как яблок и груш. Придется здорово попотеть в поисках. Ну или играться с параметрами спавна в events.xml. Флаг нам в руки!

Результат наших трудов будет справедлив для любого оффлайна - аркенсоровского/официального/колобовского.

 

P.S.

Имеющийся визуальный глюк со сливой может иметь своей причиною недоработку в p3d файле модели плода (нарушения в LOD - т.е. уровнях графической детализации). Допустить такую ошибку в спешке - да как 2 пальца об асфальт...

Вот мы отодвинулись от объекта на некое граничное расстояние и визуализатор должен нам отрисовать другую, более упрощенную модель (оптимизация!). А если мы забыли подшить  в p3d "упрощенные" LODы, то можем ничего и не увидеть.

На Дейзе61 и ниже проверить (да и подправить) p3d труда бы не составило. Но начиная с Дейз62 применен новый тип p3d-файлов, которые не по зубам прежнему аматорскому инструментарию. Такая вот пичалька...

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762 (see edit history)

Share this post


Link to post
Share on other sites

      А не махнуть ли нам, братцы, на рыбалку?

Только об этом - тс-с-с! Рыбалка наша будет нелегальной!

И это не только оттого, что ловить придется браконьерской снастью (вершей). Разработчики категорически не одобрят нашу затею. Они еще не наваяли кучу нужных скриптов и нам придется маланить на каждом шагу, в тайне от BI Studio.

     Ловить будем в эксперименталке#4 (в экспе#5 кажись всплыли проблемы с нашим незаменимым помощником - аркенсоровским оффлайном).

Составляем список необходимого:

Скрытый текст

 

- резиновые сапоги   (wellies_black)

- охотничья одежда, перчатки и рыбацкая шляпа (huntingJacket_Autumn, hunterPants_Spring, workingGloves_black)

- рюкзачок  (huntingBag)

- верша     (fishNetTrap)

- нож, топорик      (huntingKnife, hatchet)

- спички (зажигалка)     (matchbox/petrolLighter)

- лоскуты (бумага) на растопку    (paper)

- костровая тренога  (tripod)

- кастрюля    (pot)

- жир  (lard)  - 1 шт

- картошка   (potato) - 2 шт

- водка   (vodka)  - 3 бутылки

 

Конечно, уху можно бы сварить и на примусе, но варить настоящую рыбацкую уху надо исключительно на костре. Сделать иначе - значит плюнуть в традиции.

 

Можно взять также и:

Скрытый текст

 

- складное удилище (fishingRod)

- рыболовный крючок   (hook)

- лопатку для червяков

- или сразу готовую наживку (bait)

 

но они окажутся бесполезны, вот увидите.

      И не рассчитывайте, что сможете сделать вершу или удочку из подручных материалов - этот крафт еще не работает.

Недостающие вещи дошаманиваем в types.xml и ищем на просторах Чернаруси, либо сразу маланим в инвентарь посредством аркенсоровского оффлайна.

     Куда махнем, спрашиваете? Ну до недавнего времени я любил рыбачить в Турово, но сейчас пруд и берег там загадили коровы и поэтому висит запретная табличка. А давайте махнем к цемзаводу у Солнечного? Места рыбные, гарантирую!

     Вот мы и на берегу. Если вы взяли с собою удочку, попробуйте ловить ею, а я пока пойду поставлю вершу. Ставить надо так, как на скрине. А как у вас дела с удочкой? То-то же, ведь предупреждал вас, что скрипты не готовы! Ну ловите-пытайтесь, а я займусь костром.

Пока ставил костер, подоспел и мой первый улов. Хорош карпик, на килограмм потянет! Чистим рыбку, набираем водички в кастрюлю, рыбу туда, картошечку и на огонь. Ай хороша ушица вышла! Ну как под такую ушицу да не выпить водочки?? Традиции надо чтить! Мда-а, а вот водка у них паленая - бутылку выпил, а ни в одном глазу... Давай-ка вторую. Как вода... И трретья такая же!

     Дружище, а хочешь ..ик!.. я тебе морскую рыбаловку огра.. огру.. орррганизую? Паш-шли к морю, держись за меня, чтоб не спотыкаться. Ща вершу поставлю, а ты хворосту собери, замути костер. Во смотри - тюльки наловил! Пожарим ее в кастрюле на жире. Блин, а где тренога??   Это ты ее забыл или выронил по дороге!! Будешь теперь в руках кастрюлю над костром держать! Ладно, проехали инцындент... Кладем жир, рыбу (прямо нечищеную), жарим. Ничо так получился закусон, жаль запивать уже нечем. Придется к зомбакам сгонять - они втихаря приторговывают..

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762 (see edit history)

Share this post


Link to post
Share on other sites

Нынче мы закрываем "грибную" тему.

Если заглянуть в серверные или стрессовые/экспериментальные логи, то увидим два ругательных сообщения:

Скрытый текст

 

!!! [CE][TrajectoryRespawner] (PRIConiferous) :: Child 544423440 unknown type... disabling

!!! [CE][TrajectoryRespawner] (PRIHumus) :: Child 512580349 unknown type... disabling

 

 

Их ноги растут из событий TrajectoryHumus и TrajectoryConiferous файла events.xml. События эти обеспечивают спавн грибов на полях и в хвойных лесах. Согласно файлу events.xml, в этих событиях задействованы такие грибы:

Скрытый текст

 

AgaricusMushroom

AmanitaMushroom

BoletusMushroom

MacrolepiotaMushroom

PleurotusMushroom

PsilocybeMushroom

 

и вот с ними что-то не в порядке, раз ругаются логи.

До кучи видим гриб   LactariusMushroom   в событии "грибы лиственничного леса" (TrajectoryDeciduous), где все хорошо и гладко.

 

Пытливый ум, нажав Del в аркенсоровском оффлайне и воспользовавшись поиском по ключевому слову Mushroom, увидит базу реально доступных в игре грибов:
 

Скрытый текст

 

AgaricusMushroom

AmanitaMushroom

MacrolepiotaMushroom

LactariusMushroom

AuriculariaMushroom

PsilocybeMushroom

 

 

 

Как видим, среди них нету BoletusMushroom, PleurotusMushroom, упомянутых в  events.xml, но зато присутствует гриб AuriculariaMushroom, еще никак в игре не задействованный.

 

Эта нестыкуха ничуть не смертельна для игры, но беспокоит сердца перфекционистов.

Наверняка разработчики и сами со временем разрулят проблему, но нам же хочется "Сегодня! Сейчас! Сию же минуту!". И мы говорим разработчикам: "Подвиньтесь, парни". Мы запускаем свои мозолистые руки в файл gear_food.pbo из папки Addons.

 

         Лирическое отступление

Корректура файлов .pbo сопряжена с утерей ними цифровых подписей: "внутренней - контрольной суммы" и "разработческой". Игру фатально колбасит от таких битых файлов. И если внутреннюю подпись легко залатать, то разработческую (увы!) нет - нам не по силам подделывать их файлики bisign. Дешевле хакать ехе-шники игры, чтобы напрочь отключить проверку этих cигнатур. Такое по плечу лишь титанам (а они есть, есть среди нас! - я знаю это не понаслышке). Но к нашему счастью, разработчики сами пока что отключили на стрессах и эксперименталках клиента свою же проверку! Да, файлы bisign присутствуют в папках Addons и dta, но оффлайн в настоящее время плюет на них. А вот серверным игрокам не повезло - сервак жОстко проверяет подписи родных БИСовских pbo на клиенте, кикает нарушителей (видите мой фингал под глазом?) и отключить эту проверку маланствами

verifySignatures = 0

в  server.cfg не выйдет. Но пусть это будет проблемою серверных игроков.     Наша же победная дорога на Берлин лишена препон.

 

Как работать с файлами .pbo, подробно излагал тут -

http://s-platoon.ru/topic/6844-shamanim-petuhov-na-alkatrase-14/

и теперь не буду назойливо повторяться.

 

Заглядываем в gear_food.pbo и нам в глаза сразу бросается перечень имеющихся грибных 3D-моделей:

Скрытый текст

 

mushroom_agaricus.p3d

mushroom_amanita.p3d

mushroom_auricularia.p3d

Mushroom_boletus.p3d

mushroom_lactarius.p3d

mushroom_macrolepiota.p3d

mushroom_pleurotus.p3d

 

из них Mushroom_boletus.p3d и mushroom_pleurotus.p3d имеют (и к гадалке не ходи!) отношение к нашим проблемным BoletusMushroom, PleurotusMushroom. Заглянув тут же в папку data, видим достаточный, на первый взгляд, комплект текстур и материалов под эти 3D-модели (разнообразные файлики .paa  .rvmat). Нельзя пока судить о степени готовности этих файлов, но нам ничего не мешает попробовать (ну хотя бы попытаться!) с эти багажом втолкнуть данные грибы в игру.

Берем в руки ПБО-шный config.bin, переконвертируем его в config.cpp и открываем текстовым редактором. Видим, что в файле отсутствуют конфиги грибов BoletusMushroom, PleurotusMushroom и эти конфиги нам придется творить самостоятельно, заимствуя конфиги от других грибов. Справочники подсказывают, что Boletus и Pleurotus - это наши гриб-боровик и вешенка. За образец им мы возьмем конфиг от съедобного (и даже деликатесного!) гриба-зонтика macrolepiotaMushroom. В результате у нас получается обновленный config.cpp (архив вот прилагается), который надо забросить в gear_food.pbo взаместо прежнего config.bin.

Теперь попутно легализуем и гриб AuriculariaMushroom ("Иудино ухо") В жизни он растет на древесных стволах, но мы пока просто поселим его в лиственничный лес.

Лезем в events.xml и корректируем запись TrajectoryDeciduous (красненьким и зеленым):
 

Скрытый текст

 

    <event name="TrajectoryDeciduous">

        <waves>3</waves>

        <nominal>140</nominal>

        <min>120</min>

        <max>150</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>25</saferadius>

        <distanceradius>100</distanceradius>

        <cleanupradius>25</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="0" sec_spawner="0"/>

        <position>fixed</position>

        <limit>mixed</limit>

        <active>1</active>

        <children>

            <child lootmax="0" lootmin="0" max="1" min="1" type="AmanitaMushroom"/>

            <child lootmax="0" lootmin="0" max="1" min="1" type="AuriculariaMushroom"/>

            <child lootmax="0" lootmin="0" max="1" min="1" type="LactariusMushroom"/>

 

Кстати, зелененькие цифры я бы рекомендовал попробовать для всех грибных событий - обеспечат приемлемую на первых порах урожайность. А дальше вы сами найдете свои заветные значения.

Грузимся в игру, бродим по полям-лесам, смотрим под ноги (в полях идем к рулонам и стогам сена). Зоркий и настойчивый грибник не останется без добычи, найдет в т.ч. и нашаманенные нами BoletusMushroom, PleurotusMushroom, AuriculariaMushroom. У них довольно приличный внешний вид, хотя и с некоторыми незначительными проблемами. Видимо, эти проблемы и побудили разработчиков временно тормознуть данные грибы.

Ешьте все грибы без страха - эффекты токсичности еще пока не задействованы. Можно куховарить, а можно просто сырыми.

 

 

P.S.

Предвижу шквал обвинений в изнасиловании игры: "Результат достигнут мимо ее согласия!.. Обманом!.. С применением грубой силы!.."

Ну есть маненько, не отрицаю...

Когда имеется время на ухаживания и деньги на цветы и шоколадки, дело можно провернуть и по другому - наши грибы просунуть в игру в качестве мода.

Если хотите ухаживать красиво, обзаведитесь софтом для создания ПБО-шек (тулзы от Mikero, пакет BI Tools и т.д.) и продвинутым текстовым редактором notepad++. ПБО-шку по большому счету можно слепить и на колене при помощи PBOManager, но вот без указанного текстовика нам будет совсем тяжко.

Придумываем название своему моду (например Mushroom).

Ваяем в текстовике опус примерно такого вида:

 

Скрытый текст

 

enum {
    DESTRUCTENGINE = 2,
    DESTRUCTDEFAULT = 6,
    DESTRUCTWRECK = 7,
    DESTRUCTTREE = 3,
    DESTRUCTTENT = 4,
    STABILIZEDINAXISX = 1,
    STABILIZEDINAXISY = 2,
    DESTRUCTNO = 0,
    STABILIZEDINAXESBOTH = 3,
    STABILIZEDINAXESNONE = 0,
    DESTRUCTMAN = 5,
    DESTRUCTBUILDING = 1,
};

class CfgPatches {
    class DZ_Gead_Food {
        units[] = {};
        weapons[] = {};
        requiredVersion = 0.1;
        requiredAddons[] = {"DZ_Data", "DZ_gear_food"};
    };
};
 
class BaseFoodStageTransitions;    // External class reference
    
class MushroomsStageTransitions;    // External class reference

class FoodAnimationSources;    // External class reference
    
class NutritionModifiers;    // External class reference
    
class CfgVehicles {
    class Inventory_Base;    // External class reference
    
    class Edible_Base;    // External class reference
    
    class MushroomBase;    // External class reference
    
    class BoletusMushroom : MushroomBase {
        scope = 2;
        displayName = "Boletus Mushroom";
        descriptionShort = "Boletus";
        model = "\dz\gear\food\mushroom_Boletus.p3d";
        itemSize[] = {1, 2};
        stackedUnit = "";
        inventorySlot = "Ingredient";
        hiddenSelections[] = {"cs_raw", "cs_baked", "cs_dried"};
        hiddenSelectionsTextures[] = {"dz\gear\food\data\mushroom_Boletus_CO.paa", "dz\gear\food\data\mushroom_boletus_baked_CO.paa", "dz\gear\food\data\mushroom_Boletus_boiled_CO.paa", "dz\gear\food\data\mushroom_Boletus_dried_CO.paa", "dz\gear\food\data\mushroom_Boletus_burnt_CO.paa"};
        hiddenSelectionsMaterials[] = {"dz\gear\food\data\mushroom_Boletus_raw.rvmat", "dz\gear\food\data\mushroom_Boletus_baked.rvmat", "dz\gear\food\data\mushroom_Boletus_boiled.rvmat", "dz\gear\food\data\mushroom_Boletus_dried.rvmat", "dz\gear\food\data\mushroom_Boletus_burnt.rvmat", "dz\gear\food\data\mushroom_Boletus_rotten.rvmat"};
        
        class AnimationSources : FoodAnimationSources {};
        
        class Food {
            class FoodStages {
                class Raw {
                    visual_properties[] = {0, 0, 0};
                    nutrition_properties[] = {1, 69, 172, 70, 1};
                    cooking_properties[] = {0, 0};
                    modifiers[] = {};
                };
                
                class Rotten {
                    visual_properties[] = {-1, -1, 5};
                    nutrition_properties[] = {1, 20, 40, 10, 1};
                    cooking_properties[] = {0, 0};
                    modifiers[] = {"FoodPoisoning_MediumImpact"};
                };
                
                class Baked {
                    visual_properties[] = {1, 1, 1};
                    nutrition_properties[] = {1, 69, 172, 70, 1};
                    cooking_properties[] = {70, 25};
                    modifiers[] = {};
                };
                
                class Boiled {
                    visual_properties[] = {1, 2, 2};
                    nutrition_properties[] = {1, 69, 172, 70, 1};
                    cooking_properties[] = {70, 35};
                    modifiers[] = {};
                };
                
                class Dried {
                    visual_properties[] = {2, 3, 3};
                    nutrition_properties[] = {1, 69, 172, 70, 1};
                    cooking_properties[] = {70, 25, 80};
                    modifiers[] = {};
                };
                
                class Burned {
                    visual_properties[] = {2, 4, 4};
                    nutrition_properties[] = {1, 20, 40, 10, 1};
                    cooking_properties[] = {100, 15};
                    modifiers[] = {"FoodPoisoning_LightImpact"};
                };
            };
            
            class FoodStageTransitions : MushroomsStageTransitions {};
        };
        
        class AnimEvents {
            class SoundWeapon {
                class Eating_Loop {
                    soundSet = "Eating_loop_Soundset";
                    id = 888;
                };
                
                class Eating_TakeFood {
                    soundSet = "Eating_TakeFood_Soundset";
                    id = 889;
                };
            };
        };
    };

    class PleurotusMushroom : MushroomBase {
        scope = 2;
        displayName = "Pleurotus Mushroom";
        descriptionShort = "Pleurotus";
        model = "\dz\gear\food\mushroom_Pleurotus.p3d";
        itemSize[] = {1, 2};
        stackedUnit = "";
        inventorySlot = "Ingredient";
        hiddenSelections[] = {"cs_raw", "cs_baked", "cs_dried"};
        hiddenSelectionsTextures[] = {"dz\gear\food\data\mushroom_Pleurotus_raw_CO.paa", "dz\gear\food\data\mushroom_Pleurotus_baked_CO.paa", "dz\gear\food\data\mushroom_Pleurotus_baked_CO.paa", "dz\gear\food\data\mushroom_Pleurotus_dried_CO.paa", "dz\gear\food\data\mushroom_Pleurotus_burnt_CO.paa"};
        hiddenSelectionsMaterials[] = {"dz\gear\food\data\mushroom_Pleurotus_raw.rvmat", "dz\gear\food\data\mushroom_Pleurotus_baked.rvmat", "dz\gear\food\data\mushroom_Pleurotus_boiled.rvmat", "dz\gear\food\data\mushroom_Pleurotus_dried.rvmat", "dz\gear\food\data\mushroom_Pleurotus_burnt.rvmat", "dz\gear\food\data\mushroom_Pleurotus_rotten.rvmat"};
        
        class AnimationSources : FoodAnimationSources {};
        
        class Food {
            class FoodStages {
                class Raw {
                    visual_properties[] = {0, 0, 0};
                    nutrition_properties[] = {1, 69, 172, 70, 1};
                    cooking_properties[] = {0, 0};
                    modifiers[] = {};
                };
                
                class Rotten {
                    visual_properties[] = {-1, -1, 5};
                    nutrition_properties[] = {1, 20, 40, 10, 1};
                    cooking_properties[] = {0, 0};
                    modifiers[] = {"FoodPoisoning_MediumImpact"};
                };
                
                class Baked {
                    visual_properties[] = {1, 1, 1};
                    nutrition_properties[] = {1, 69, 172, 70, 1};
                    cooking_properties[] = {70, 25};
                    modifiers[] = {};
                };
                
                class Boiled {
                    visual_properties[] = {1, 2, 2};
                    nutrition_properties[] = {1, 69, 172, 70, 1};
                    cooking_properties[] = {70, 35};
                    modifiers[] = {};
                };
                
                class Dried {
                    visual_properties[] = {2, 3, 3};
                    nutrition_properties[] = {1, 69, 172, 70, 1};
                    cooking_properties[] = {70, 25, 80};
                    modifiers[] = {};
                };
                
                class Burned {
                    visual_properties[] = {2, 4, 4};
                    nutrition_properties[] = {1, 20, 40, 10, 1};
                    cooking_properties[] = {100, 15};
                    modifiers[] = {"FoodPoisoning_LightImpact"};
                };
            };
            
            class FoodStageTransitions : MushroomsStageTransitions {};
        };
        
        class AnimEvents {
            class SoundWeapon {
                class Eating_Loop {
                    soundSet = "Eating_loop_Soundset";
                    id = 888;
                };
                
                class Eating_TakeFood {
                    soundSet = "Eating_TakeFood_Soundset";
                    id = 889;
                };
            };
        };
    };
        
};

 

обзываем его config.cpp, запечатываем в ПБО-шку Mushroom.pbo, ПБО-шку помещаем в папочку Addons (свою, отдельную, а не клиентскую!), а эту папочку Addons - в папочку @Mushroom, которую в свою очередь забрасываем в корень клиента. В батник/цээмдешку вашего оффлайна дописываем -mod=@Mushroom; к примеру так:

Скрытый текст

start DayZ_x64.exe -mission=.\Missions\DayZCommunityOfflineMode.ChernarusPlus -nologs -adminlog -nosplash -noPause -noBenchmark -scriptDebug=true -cpuCount=2 -exThreads=1 -maxMem=2048 -mod=@Mushroom;

грузимся. Приготовьтесь к долгим женским капризам: то ей строчка не понравится... то чего-то не хватает... а то и скобка лишняя. Придется исправляться, назначать все новые и новые свидания и вести жаркие уговоры.

Но если вам хватит настойчивости и шоколадок, результат победы будет поистине царским - желаемое вы сможете получать независимо от наличия разработческих проверок сигнатур, ничего при этом не хакая.

Этак можно уговорить и серверную игру:

бросить @Mushroom и серваку в корень, в ini-шках !StartServer.ini и !StartClient.ini  (вы ведь через SSE играете?) добавить в CommandLine  приписку -mod=@Mushroom; и теперь ароматная жарёха из белых грибочков и вешенок появится на столе и у серверных игроков.

Приятного всем аппетита!

Готовый архив рабочего мода прилагается.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762 (see edit history)

Share this post


Link to post
Share on other sites

Отшлифуем еще одну грань нашего оффлайна - наведем глянец на спавн зверей.

Собственно то работы предстоит совсем немного.

Касательно  звериного спавна, файл events.xml, позаимствованный из серверной сборки камрада 123new, вполне самодостаточен - и по номенклатуре зверья, и по количественным параметрам. Его мы и применим в оффлайне на первое время (файл прилагаю). Кто пожелает, самостоятельно "допилит" звериное поголовье под свои запросы.

Единственное, что мы сделаем, это зайдем в миссионный файл cfgEventSpawns.xml и выправим его небольшую недоработку - пропущены события AnimalPig, AnimalGoat из файла events.xml. Заходим в файл и делаем в конце дописку:
  

Скрытый текст

 

   .

     .

    <event name="InfectedPolice" />

    <event name="InfectedFirefighter" />

    <event name="InfectedPrisoner" />

    <event name="AnimalDeer" />

   <event name="AnimalCow" />

    <event name="AnimalSheep" />

    <event name="AnimalRoeDeer" />

    <event name="AnimalWolf" />

    <event name="AnimalWildBoar" />

    <event name="AnimalGoat" />

    <event name="AnimalPig" />

</eventposdef>

 

Далее - ружье на плечо и на охоту.

 

А на прощание дарю вам стишок, который посвятил всем погибшим от волчьих зубов на просторах Чернаруси -

 

Я помню, камрад:

  Умолк автомат...

    Вспорхнула душа твоя к Богу...

Лишь солнечный луч

  ВзглянУл между туч,

    Как волки грызут твою ногу...

 

 

P.S.

Забыл предупредить - сейчас еще не получится заспавнить зайца (Animal_LepusEuropaeus), медведя (Animal_UrsusArctos) и лисицу (Animal_VulpesVulpes) , хотя они кагбэ уже есть в списке доступных зверей. Дело в том, что они представлены в файле animals.pbo Дейза63 файлами еще эпохи Дейз60! И они просто не тулятся в нынешнюю игру.  Дошаманивание же чертовски сложно. Поэтому просто курим и ждем разработчиков.

Соответственно пока еще бесполезна и заячья ловушка-петля, которую, тем не менее, уже можно скрафтить. Ставить петлю надо в месте, где она становится из прозрачной белою, как на среднем скрине. Но вы можете поставить петлю, отойти перекурить, выкурить хоть целую пачку сигарет "Partizanka", вернуться, а петля будет пуста...Зайцеффнет!

 

Кстати, в нынешнем Дейзе болтаются и такие реликты древних эпох, как запчасти  утки (anas_platyrhynshos)  и ежика (erinaceidae), все с того же Дейз60.

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762 (see edit history)

Share this post


Link to post
Share on other sites

...Глядя на свои истоптанные штиблеты и вкровь растертые пятки, мы без устали ворчим: "Ну сколько можно топать пешедралом да пешедралом?  Ну когда же разработчики дадут нам автО?"

    И вот разработчики пообещали уже в ближайших стрессах вытолкнуть транспорт:

https://dayzona.ru/index.php?newsid=823

   Но я бы не спешил радоваться.

Нет, ну канешна, если вы с детства мечтали о карьере водителя автобуса, или собирались калымить на грузовичке, или согласны рассекать на бусиках или Волжанах в пределах автотрасс, то у вас проблем не будет.

Но себя то я вижу исключительно за рулем внедорожника! Чтоб по кучугурам, вброд через ручьи, по перелескам и в горку. И вот на свой счет меня терзают нехорошие предчувствия.

   Ну скажут мне завтра разработчики: "Чува-ак! За тем заборчиком тебя ждет Нива. Со всем фаршем, и муха не сидела. Вот ключи - владей тачанкой."

   Не чуя ног от щастья, я помчусь к заветному забору, ворвусь в переулок и...и... И смогу сказать только "Я-Я-ЯЛБ!!!" (читать наоборот из-за цензуры сайта).   Ведь предо мною окажется голубая (!!!) Нива.     Ялб, ну откуда взялась эта гейская расцветка машины??? Ее что - приготовили к гастролям Бори Моисеева в Черногорске?? Да нормальный человек в жизнь не сядет в такую, это ж зашквар по самые помидоры!! Словно с "петухом" за руку поздороваться!

  Вы как хотите, но свою Ниву я однозначно буду перекрашивать.

Операция такая называется ретекстуринг.

Лезем в vehicles_wheeled.pbo, а там - в папку OffroadHatchback. В ней лежит и сама модель Нивы, и ее текстуры и материалы (они - в папочке data). Шарим там в поисках текстуры-позорницы голубого цвета, чтоб ее заменить. Но не находим голубых текстур! Ваще! И голубых настроек материалов тоже нету! Все такое же, как в прежней белой Ниве. Как это понимать, откуда тогда голубизна?!.. Оказалось, что метод решения этой "нетрадиционной" расцветки тоже был нетрадиционным - разработчики напрямую заголубИли поверхности модели, не прибегая к файлам текстур и материалов (а ржавчину и царапины накатили с файлов ..._mc.paa). Печаль такого решения в том, что мы не сможем оттирать краску в файле OffroadHatchback.p3d - широким массам пока еще недоступен софт для разбинаривания нового  .p3d дейзовского формата.

   Так что же, нам курить бамбук??

Но мы ж не пальцем деланы и выходы искать умеем.

Не буду томить. Вытравив из файлов ..._mc.paa альфа-канал, мы возвращаем Ниве желанную белизну (белая краска из файлов перекрывает голубую краску под нею). А еще давайте подрисуем и дейз-логотипчик на капот (для шарма).

    Теперь потребуется заслать модифицированные файлы в ПБО-шку vehicles_wheeled.pbo. О подводных камнях такой процедуры уже говорил недавно. Утрата разработческой цифровой подписи! Сегодняшние клиентские части Дейза посмотрят на наши шалости сквозь пальцы, но вот послезавтрашние могут отказаться грузиться.

Но я все равно не сяду за руль голубой Нивы!! Уж лучше пробовать взломать ехе-шник и напрочь отключить проверку сигнатур (благо добрые люди подсказали метОду).

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by sks762 (see edit history)

Share this post


Link to post
Share on other sites
В 06.10.2018 в 16:28, sks762 сказал:

гейская расцветка

-такая вот она, йалбская толерантность)))

ыыыы

 

2dd6b32s-960.jpg

Edited by koriaba
Капсула времени: ВАЗ-2121 голубая "Нива" 1981-го года с пробегом 1301 км (see edit history)

Share this post


Link to post
Share on other sites

А сейчас открыто техники нету на карте ? А то на ютубе видел вроде в SA играли там были какие то тачки я то думал офф введены пару давно уже как.

Share this post


Link to post
Share on other sites
В 19.09.2018 в 13:36, sks762 сказал:

пиндосы записаны в них с ошибкою

подскажите не поменялось ли наименование пиндосов? что то я не могу найти эти наименования

Share this post


Link to post
Share on other sites

Подскажи пожалуйста (в личку, если не сложно) как добавить военных зомби в шлемах и брониках на сервер

ZmbM_SoldierHelmet

ZmbM_SoldierAlice

ZmbM_SoldierVest

ZmbM_SoldierAliceHelmet

Share this post


Link to post
Share on other sites

касательно версии 0.63 -

идем в cерверную папку Missions, а там в папку db и находим файл events.xml. Открываем его текстовым редактором, находим блок, относящийся к спавну солдат и корректируем - вносим желаемых вам зомби, проставляем количества и т.д. Как пример:

Скрытый текст

 

    <event name="InfectedArmy">

        <waves>0</waves>

        <nominal>50</nominal>

        <min>25</min>

        <max>250</max>

        <lifetime>180</lifetime>

        <restock>0</restock>

        <saferadius>100</saferadius>

        <distanceradius>50</distanceradius>

        <cleanupradius>100</cleanupradius>

        <flags deletable="0" init_random="0" remove_damaged="1" sec_spawner="0"/>

        <position>test</position>

        <limit>custom</limit>

        <active>1</active>

        <children>

           <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_SoldierHelmet"/>

           <child lootmax="3" lootmin="3" max="5" min="4" type="ZmbM_usSoldier_Normal_Woodland"/> 

           <child lootmax="5" lootmin="1" max="5" min="4" type="ZmbM_PatrolNormal_Autumn"/>

            <child lootmax="5" lootmin="1" max="5" min="1" type="ZmbM_PatrolNormal_Flat"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_PatrolNormal_PautRev"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_PatrolNormal_Summer"/>

            <child lootmax="5" lootmin="1" max="5" min="1" type="ZmbM_SoldierNormal"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_SoldierAlice"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_SoldierVest"/>

            <child lootmax="5" lootmin="1" max="5" min="5" type="ZmbM_SoldierAliceHelmet"/>

           <child lootmax="3" lootmin="3" max="5" min="5" type="ZmbM_usSoldier_Normal_Desert"/>

        </children>

 

теперь эти зомби начнут спавниться. Главное не напутать в наименованияэ вносимых зомби. Их актуальные наименования можно уточнить в файле config.bin в архиве characters_zombies.pbo папки Addons. Чтение файлов bin и работа с pbo имеют свои особенности, о которых надо помнить! Я их не касаюсь.

Далее смотрим файл types.xml и если не находим в нем фрагментов типа этого

Скрытый текст

 

    </type>

    <type name="ZmbM_SoldierAlice">

        <nominal>0</nominal>

        <lifetime>1800</lifetime>

        <restock>0</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"/>

    </type>

 

касательно всех вновь вводимых вами зомби, сами дописываем такие фрагменты. Это определит жизненный цикл ваших новых зомби.

Далее находим в миссионной папке файл cfgspawnabletypes.xml, а в нем фрагмент текста

Скрытый текст

 

     <!--START OF ZOMBIES  -->

     <!-- ARMY -->

    <type name="ZmbM_PatrolNormal_Autumn">

        <cargo preset="foodArmy" />

        <cargo preset="ammoArmy" />

    </type>

    <type name="ZmbM_PatrolNormal_Flat">

        <cargo preset="foodArmy" />

        <cargo preset="ammoArmy" />

    </type>

    <type name="ZmbM_PatrolNormal_PautRev">

        <cargo preset="foodArmy" />

        <cargo preset="ammoArmy" />

    </type>

    <type name="ZmbM_SoldierAlice">

        <cargo preset="foodArmy" />

        <cargo preset="ammoArmy" />

    </type>

    <type name="ZmbM_PatrolNormal_Summer">

        <cargo preset="foodArmy" />

        <cargo preset="ammoArmy" />

    </type>

    <type name="ZmbM_SoldierNormal">

        <cargo preset="foodArmy" />

        <cargo preset="ammoArmy" />

    </type>

     <!-- City -->

 

 

в этот фрагмент надо дописать всех ваших вновь вводимых зомби (чтоб у них в карманах спавнился военный лут). Я тут добавил только  "ZmbM_SoldierAlice" для примера

Работа завершена. Обращаю ваше внимание на выделенное красным значение - test. В старых версиях эксперименталки оно благоприятствовало спавну военных зомби в военных местах по всей Чернаруси, а не только лишь вблизи места респавна игрока. Как обстоят дела в старших версиях Дейза, судить не могу, может и не надо вписывать test взаместо оригинального значения. Прошу извинить, но я отошел от дел.

Такие же изменения текстов миссионной папки желательно проделать и в клиенте, для полной уверенности в успехе во всех игровых ситуациях..

Edited by sks762 (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By vitacite
      Данный гайд используется, как есть. По принципу  "Не нравится - не ешь!". Он подразумевает, что вы уже умеете делать карту для Арма 3, знаете как сконфигурировать диск P для Dayz и настроить Terrain Builder. 
      Знаете и понимаете зачем нужна маска, сатка и карта высот. Для примера, была выбрана поверхность из окрестностей ЧАЭС.  Ссылки на софт (есть в видео, но продублирую тут).
       
      СОФТ И ССЫЛКИ
      https://forums.bohemia.net/forums/topic/224613-qgis-game-terrain-tools/ - топик в богемии с описанием процесса для Арма 3
      https://qgis.org/en/site/ - ссылка на QGIS
      https://gitlab.com/Adanteh/qgis-game-terrains/-/wikis/home - ccылка на плагин который все делает сам 🙂
      https://urs.earthdata.nasa.gov//users/new - нужно будет зарегистрироваться, чтобы скачать высотку.
       
      Результатом станет отличная спутниковая карта, карта высот и маска. Если про sata-map (карту высот) все понятно из видео, то про маску - отдельная песня.
      Ее можно сгенировать двумя способами.
      Способ № 1

       
      OSM Based - заключается в том, что будут подгружены шейпы из QGIS и по ним сгенерирована маска  (Внимание! чтобы все заработало, до выгрузки маски, перейти в закладку ROADS (там же) и подгрузить шейпы дорог.) 
      Плюсы - быстро, минусы - фиговая точность и качество, и не везде эти слои есть. Например, для Европы и США будет более менее... для Чернобыля она просто никакая. В моем случае часть поверхности леса закрыта шейпами, а часть нет. Соответственно в маске там будет просто дырка.
       
      Cпособ № 2. Regions of Interrests (генерация маски с помощью искусственного интеллекта) (отмечаем чекпоинт и жмакаем на кнопку CREATE REGION OF INTEREST)

      после нажатия, развернется свиток, где можно будет выбрать:
      1. цвет для будующей маски.
      2. создать выделение с помощью полигона. 
      Чтобы все получилось,  НЕ НУЖНО! делать огромные полигоны!!!!  Нужно выделить маленькими полигонам(шейпами), наибольшее количество ВАРИАНТОВ травы, леса, грязи и тд. Чем больше вы покажите AI вариантов для каждого типа ваших поверхностей, тем более круто он обучится ее делать и тем круче маска будет сгенерирована.В результате получится маска качеством, как на видео. 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      В текстовик в папке проекты будут сразу выгружены цвета вашей маски для Layer.cfg. Так же в маске изначально закрываются все проблемы с паразитными цветами, размытыми краями и тд. (если вы делали карту для Arma2/3) то понимаете о чем я.
      (Обратите внимание. Данный вариант потребует установки дополнительного плагина. Все что нужно сделать нажать на кнопку там же в свитке:)
      Install OrfeoTollbox (REQUIRED) И подождать, т.к. грузится и ставится оно сравнительно долго!
      Для выделения вариантов жмем на кнопку: 
      Create Sample в свитке и начинаем ввыделять полигонами объекты прямо поверх SATA-MAP (левой кнопкой мыши ставятся вершины, правой кнопкой закрывается полигон). Еще раз, выделяем маааленькими полигонами, максимальное число вариантов будущей поверхности на вашей спутниковой карте. Вы удивитесь сколько оттенков зеленого леса к примеру может там быть..
       
      Посе создания маска и нажатия кнопки GENERATE. Плагин сгенерирует и сохранит все слои (sata-map, mask-map, height-map, и текстовик с данными для Layer.cfg и Config.cfg, а так же параметрами вашего фрейме) в папку проекта QGIS.
       
      Все что останется, это скопировать файлы в Source вашего проекта, и можно все это загружать для создания фрейма в TB.
       
      После того, все слои в фрейме будут загружены и сконфигурированны в TB можно будет преступить генерации леса в утилитах ниже.
      Первая из них генерирует лес по маске.
       
      Учтите данная утилита для Arma 2 и не может работать с масками более чем 5120 на 5120 px, поэтому если размер вашей карты больше, то придется делать маску отдельно для леса. В при моих размерах пришлось у меньшать ее в три раза (когда будете делать это в фотошопе не забудьте выставить в окне RESIZE изменение размера с четкими контурами) иначе вашу четкую маску размоет и вы получите паразитные цвета.
       
      Маштабированную маску по которой садим лес сначала загружаем в проект...

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Далее жмем на кнопку с деревом (Forest Geneator) подгружаем по новой маску леса. И нажимаем кнопку анализировать. Получим вид как на скрине.
      (список цветов в маске)
       
      Вам нужно будет выделить цвет из маски, и создать в нем массив с деревьями путем добавления их названий (список лежит в файлике ниже).

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Добавив например в темно-зеленый цвет 20 вариантов елок вы сможете задать вероятность их появления на карте.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      После того, как все цвета будут выбраны и засеяны растительностью жмете Create. Опытным путем с 2-3 раза вы поймете насколько надо засеять деревья и кустарники, на какой местности, чтобы их было не слишком мало или много.  Ваши деревья будут рассажены по цвету, и выгружены как объекты в текстовый файл в формате VBS3
      "t_betulapendula_2fc";201816.625;7.632;149.000;-0.131;0.924;1.000;0.000; Будьте бдительны! Данная утитилита проекты (почему-то) не сохраняет. Если вы ее закроете, то придется проделывать ВЕСЬ ПУТЬ!!!! сначала!!! Поэтому во время тестов выгружаем отдельный слой в Terrain Builder объекты из конвертированного файла, запускаем бульдозер оцениваем плотность и красоту. Если не устраивает, меняем процентное соотношение в программе и заново сохраняем НЕ ЗАКРЫВАЯ ЕЕ!!!!
       
      Выгруженный нами файл для VBS3 придется еще раз конвертировать для билдера от Arma 3 (Dayz SA). Процесс достаточно простой. Все сделает вторая утилита. (Внимание!!!! Я не знаю зачем она это делает, перед каждым названием вашего дерева будет стоять не (") а (""), поэтому для окончательной загрузки, лишнюю  (") надо будет удалить используя подручные средства. (например notepad++).
       
      При всей муторности описания поверьте мне это самый быстрый из существующих способов более-менее качественной рассадки деревьев. Поигравшись с параметрами и настройками, вы сможете рассадить растительность на карте за 10-15 минут.
      Собственно все. Незабудьте прежде чем подгружать в TB объекты из текстовика (через Import Object) сами деревья подгрузить в TB и задать все необходимые параметры.
       
      Ниже ссылки
      https://www.armaholic.com/page.php?id=10508 - программа чтобы поставить на карту деревья
      https://forums.bohemia.net/forums/topic/226269-tools-utilities-compilation-list-for-arma3/ V3 to TB Objectlist Converter
       
      Как обычно все до чего дотрагиваются Bohemia работает криво косо и через жопу. Но в моем случае все заработало 🙂 
      Удачи.
      PS: результат если все сделать правильно.
       
       
    • By vitacite
      Бесплатные проекты - "пацаны собрались и замутили сервачок" долго не живут.  В этом я убеждался много раз. Нет сначала на интузиазме эффективность неплохая, но затем все это затухает управляемость команды падает.  Начинаются вопросы - "а почему это должен делать я?",  отмазки "да я на даче сегодня", "да у меня командировка" и тд...  + кто-то должен спонсировать оплату сервера, антидудосов и прочей лобуды, а такого человека интерес тоже может пропасть в любой момент. А чтобы проект был хороший - кому-то надо реально "въебывать", как на второй работе, и  кому-то постоянно вливать туда бабло.
      Поэтому, лично я, считаю любой некоммерческий проект заранее проваленным!  Побегать недельку другую с друзьями это да. Что-то более серьезное, не тратьте свои силы и время! Как минимум на  тему сталкера я таких проектов видел 10 штук и в некоторых даже сам поучаствовал. Начиналось все амбициозно и даже набирало онлайн до 100 человек. Но заканчивалось все одинаково 3-4 месяца и с десято скучающих тел, на безлюдном сервере.  С точки зрения администации, игроки ведут себя как проститутки, бегая с сервера на сервер, друзья перешли, или потому что на том добавили новый прикольный скрип, или прикольную тачку, или тут плохой пинг, а там хороший, или админ козел забанил за читы и тд.  а все эти приколюхи требуют денег, а игровое сообщество не очень расположено их платить за некачественный контент. Да и сама администрация достаточно быстро забивает и расслабляется.
      (я сейчас не говорю о конкретном проекте, скорее это собирательный образ халявы).
       
      А теперь по-существу.  Так сколько должен стоить контент с хотя бы приемлемым качеством?  

      Свое мнение я написал ниже.
       
       
      Спасибо за внимание.
       
      А что думаете Вы напишите ниже в комментариях!
       
       
    • By vitacite
      Вступление: 
      Бодрого дня комрады. Данный гайд расчитан на тех кто умеет пользоваться 3D Studio Max, умеет пользоваться Object Builder и хотя бы пытался делать собственные модели.  Я разбираюсь с этой темой с нуля,  у меня есть опыт создания стволов для Арма 3, но в Dayz, как выяснилось все совсем иначе. Статей будет видимо несколько ибо Богемия, это такая Богемия, что не важно какую игру она делает. Инструменты остаются кривожопыми, паралогичными и в целом непонятными.
       
      Начнем с полного нуля. Т.е. выбора модели и подготовки ее и текстур.
      1.  Модельный контент на самом деле ограничен в использовании. Отсюда за порт калаша из Арма 3 без учета авторских прав, может влететь не только в виде SteamBan-а вашего мода, но еще и за нарушение авторских прав.
      Поступим честно. Купим модель у автора на стоке.  В данном случае я выбрал модель АК12 я выбрал за внешний вид. Вот ссылка на саму модель. Заодно оцените сколько стоит труд моделлеров. 
      https://www.cgtrader.com/3d-models/military/gun/ak-12-m
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Кроме того эта модель имеет полный набор необходимых текстур (имеет карту теней, карту высот, нормали и прочее). Что позволит создать адекватный мультиматериал.  Правда все это не форматах Dayz SA (Арма 2), по переделать это не так сложно.
      Сразу скажу т.к. модель в игре будет смотреться несколько иначе.  Мне придется разобраться АК 12, чтобы выделить необходимые движущиеся части, курок, затвор, отделить магазин, прицелы, приклад в отдельные части. Так, как это используется в Dayz. Все это будет делаться в 3D макс. А так же сохранить в формате, который адекватно экспортируется в Dayz Object Builder.
      По мере прогресса, я буду выкладывать отчеты с подробным описанием действий. 
       
      Использованный софт:  изучение модели, для составление гайда (название селекшенов, лодов и тд.) проводилось с помощью программы Elitness из пакета Mikero tools  https://mikero.bytex.digital/Downloads. Подгонка моделей проводилась в бесплатной ученической версии 3DStudio Max, конверт текстур Photoshop, подгонка моделей Object Builder, конфиги писал в notepad  ++
       
      План действий такой. 
       
      Распил 3D модели в 3D макс на отдельные части (те, которые будут выделены в прокси, как отдельные предметы)
      Создание текстур и материалов (AS,SMDI,NOHQ) на базе приложенных в модели и подгонка материала.
      Создание селекшенов и лода memory
      Перемещение частей в прокси и подгонка их к базе.
      Создание model.cfg
      Создание config.cpp 
      Импорт всего этого добра в собственный
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
       
       
       
       
       
       
      Изначально модель была не готова для конверсии. В первых, все части были собраны в одну представляя из себя нагромождение частей АК-12,  во-вторых пришлось делать Detoch частей модели например затвора, т.к. изначально он был представлен двумя несвязанными друг с другом полигонами, а у нас затвор - движующаяся часть.  В итоге скрыв лишние LOD-ы (они пока нам не нужны) и пересобрав там где надо запчасти. Получилась следующая картина.

       
      Я заранее выделил, как отдельные модели части которые будут подвергнуты анимации. А именно курок (base curok) и затвор basehutter. А также выгрузил в отдельную модель рамку прицела и приклад, чтобы подцепить к модели через прокси. Об этом расскажем отдельно. А планки Пиккатини сделал неснимаемыми (без них между прицелом и базой АК будет большой зазор). Так пришлось повозиться с место крепления съемного приклада, т.к. при разборе модели на зап.части там образовалась дыра.  Готовую модель требуется конвентировать в формат FBX.
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
       
       
       
       
       
       
      Выделяем только те части которые нами выбраны для моделирования и делаем export selected.
      В моем случае я подготовил папку
      P:\тегпроекта\weapons\firearms\AK12\source\ При сохранении чтобы все потом правильно экспортировалось, желательно выставить чекпоинты в открытых свитках, как на скриншоте, остальное оставить по умолчанию. 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      И обязательное условие формат для экспорта должен быть FBX 2010.  Не спрашивайте почему, это загадка для меня связанная с работой Object Builder, но в моем случае нормальный экспорт получается только в 2010 FBX.
      Так же отдельными моделями по такому же принципу выгружаем приклад и прицел и магазин(ы) автомата. Это отдельные модели которые мы будем цеплять через прокси.
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
       
       
       
       
       
       
      При импорте в Object Builder отключите чекпоинт на Sharp & Smoth edges (иначе все идет кубами) и Animation (ее просто нет), включите Prepare materials. 
      Полученный автомат загружается неправильно ориентированным в пространстве, незатекстуренным, но с готовыми к работе selection. 
       
      Сохраняем нашу модель под именем 
       
      P:\тегпроекта\weapons\firearms\AK12\ak12_base.p3d  И займемся конфигом.  
      Открываем notepad++ и создаем model.cfg следующего содержания 
      class CfgSkeletons { class Default; class ak12_base_skel : Default //название скелета { skeletonInherit = ""; isDiscrete = 1; SkeletonBones[]= { "magazine" ,"", //кости для анимации сменный магазин "trigger" ,"", //курок "bolt" ,"" //затвор }; }; }; class CfgModels { // BASE CLASS DEFINITIONS START class Default; class ak12_base:Default //цепляем скелет к нашей модели. { skeletonName="ak12_base_Skel"; sections[]= { "magazine" //выделяем сецию магазин }; class Animations { }; }; // BASE CLASS DEFINITIONS END }; Он базовый позже мы его дополним. Конфиг я планирую использовать от ванильного АК47, врядли он будет сильно отличается, от АК12. 
      По схожим прнципам копируем файлы с будующими прокси..
      Магазин на 30 патронов.
      ak12_magazine_30rnd.p3d Магазин под барабан 
      ak12_magazine_drum.p3d Прицельная рамка
      ak12_sight.p3d Съемный приклад
      ak12_stock.p3d 
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Итоговый вид моего рабочего каталога.
      Пришло время занятся материалом для нашего АК.
      Архив содержит текстуры для базы АК12 в формате TGA (это кстати важно т.к. позволяет сохранять битность тестур, а там где мы работаем с материалами мы будем работать с каналами)
       
      AK12_Base_A.tga  - диффузная карта
      AK12_Base_AO.tga - окружение
      AK12_Base_MSA.tga - карта отражения
      AK12_Base_MT_AO_0_G.tga - карта металик, карта отражения, и окружение вместе.
      AK12_Base_N.tga - карта нормалей (тут пришлось заморочиться т.к. эта карта нормалей для OpenGL.  а в нашем случае карта нормалей нужна для Direct X.)
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Разницу можно увидет на скриншотте выше в левой части нормаль в OpenGl формате в правой части нормальн в DirectX формате. 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      В нашем случае я поменял красный и зеленый каналы, синий не тронул. 
      https://community.bistudio.com/wiki/Texture_Map_Types
      про разницу карты нормалей между openGL и директ X тут - 
      https://help.cc0textures.com/doku.php?id=usage:directx-opengl
       
      Для нормального материала нам понадобится карты AS и SMDI
      Создадим их AS из AO не меняем..
      Для SMDI берем родную текстуру 
      AK12_Base_MSA.tga и создаем SMDI  (как можно узнать из статьи выше карта SMDI хранит информацию в зеленом и синем канале игнорируя красный и альфу). Создаем пустую картинку аналогичных размеров и начинаем копирование нужных каналов.  Соответственно зеленый канал из оригинальной тестуры, я скопировал в синий канал новой текстуры SMDI, красный канал SMDI залил белым (0), а в зеленый канал скопировал текстуру из красного оригинального (содержащего блестяшки и сильно ее затенил).
      (скрин не влез из-за ограничений  800кб) но ничего продолжим ниже.
       
       
       
       
      Продолжение следует........
    • By 123new
      Вижу крайне много любопытных вопросов по поводу идентификаторов игрока в игре. Что же, разжую для не знающих немного.
       
      В игре есть следующие типы идентификаторов:
      1. Steam64ID идентификатор профиля игрока (на пиратках его UID называют), примерно такой: 765475....65 (17 цифр).
      2. Так называемый мною, BIS ID - uid из окна (консоли) сервера игры и ADM-файлов логов сервера, который пишется самой игрой
      3. Battleye GUID игрока.
       
      Первый идентификатор (Steam64ID) на ПК является прямым идентификатором стим-профиля игрока, уникальным у каждого игрока. Т.е. публичным идентификатором вашего профиля для большинства стим-игр (например, Counter-Strike).
      Второй идентификатор (BIS ID) является определенной хеш-суммой, полученной из Steam64ID посредством конвертации сначала в sha256, а затем в base64. Спасибо за это разъяснение и пример кода-конвертации авторам игры на своем официальном форуме.
      Третий идентификатор (Battleye GUID) является публичным идентификатором Battleye античита, получаемый также из Steam64ID поcредством получения его хеш-суммы MD5. Этот же идентификатор есть в логах сервера от Battleye, в любых RCON-приложениях (DART, BEC и т.п.), также его можно конвертировать самим.
       
      Так вот, как же получить Steam64ID:
      1. Зайти на любой ресурс, предназначенный для сбора таких данных. например на: https://steamid.io/
      2. Ввести ссылку на ваш стим-профиль
      3. Получить результат из кучи данных, одно поле из которых и будет содержать ваш Steam64ID
       
      Как получить BIS ID:
      1. Открыть любой Phyton-конвертер в интернете, например: https://www.tutorialspoint.com/execute_python_online.php
      2. Ввести в него следующий код:
      # Hello World program in Python from hashlib import sha256 from base64 import b64encode def construct_bi_uid(steam_id): hashed = sha256() hashed.update(str(steam_id)) return b64encode(hashed.digest()) print construct_bi_uid(76514925976798981) 3. заменить 76514925976798981 на ваш Steam64ID
      4. Отправить код в исполнение, нажав Execute.
      5. Получить результат

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Как получить Battleye GUID:
      1. Открыть любой ресурс с готовой формой конвертирования, например:
      https://armstalker.com/guid/
      https://dayzrussia.com/f/index.php?pages/dayzguid/
      либо написать свою, на основе данных, предложенных на странице Github
      https://gist.github.com/chris579/53053b6d6438df9a9718c23c0d6bbd69
      Оставлю ниже лишь код для Phyton:
      # Thanks to gunlinux import md5 steamid=76514925976798981 temp = "" for i in range(8): temp += chr((steamid & 0xFF)) steamid >>= 8 m = md5.new("BE"+temp) print m.hexdigest() 2. Вставить в поле ввода UID(Steam64ID) ваш Steam64ID
      3. Нажать кнопку конвертирования или исполнить код, и получить в готовом виде Battleye GUID
       
      Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне.
      Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.
    • By DrTauren
      Как всем известно, сегодня, 19 сентября разработчики DayZ Standalone официально опубликовали документацию серверов Dayz, а также предоставили возможность скачать файлы для запуска сервера DayZ. Ниже прилагается перевод официальной документации этих самых файлов с форума DayZ, а также документация касательно других файлов, которых нет в официальной документации. Пользуйтесь на здоровье 
       
      Скачать серверные файлы через Steam: steam://rungameid/223350
      На данный момент присутствует ошибка с невозможностью скачать файлы сервера, если на вашем аккаунте Steam отсутствует купленная DayZ.
       
      P.S. Если у вас есть чем заполнить эту статью, обязательно пишите мне в лс 
×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.