Я от босса охерел. На дефенсе тестил, на тяж, дак этот Коршун Е*учий (первый босс) меня с 2х тык положил. В остальном всё путем. :sweat:
поставил мут все мобы появляються дохожу до босса и в итоге он тот же самый как сделать чтоб он был из Domm 3?
На последней волне,всегда будет Патриарх. Боссы из Doom 3 - это супер монстры,которые в зависимости от настройки,могут появлятся на каждой волне. Чтобы их включить,в самой игре зайди в настройки модификаций и в разделе "Doom 3 Monsters Mode" поставь крестик в строке Super Monsters. В строке "BossWaves Start" можно настроить волну с которой будут появлятся Боссы: например 0.0 - с первой волны,1.0 на последней волне. В строке "BossWave rate" настраивается вероятность появления Босса в процентах: например 0.20 - 20%,1.0 - 100% Примечание: добиться появления Босса на первой волне,мне лично не удалось.
Ну я убил 26 моба, ииии вот тогда. Я точно не помню, но до магазина я не добрался. Меня заклевали... <_<
Люди подскажите плиз как поставить только боссов, скажем с 10-й волны , а других отключить? И как выбрать какие мобы будут появляться? Песочница от них не зависит, даже если они не прописаны в ней, все равно появляются.
Ты меня не понял , песочницу я и так умею настраивать, без заморочек там все просто 5-й класс математики.Я хочу сделать чтоб вот скажем у меня после 12-й волны(т.к. на выделенке у меня настроено 12 волн ) шли боссы из дума , только не маленькие , а те что посерьезнее ну и скажем несколько клотов , краулеров и фастов, и после уже был патрик.Если включать мут в список активных то мобы из дума идут не зависимо от того включена песочница или нет, а вот если отключить то тогда как их прописать? Или может есть информация как сделать несколько патриков , а то один мало.
Да, я ступил, не в ту тему.. Да а так же и монстров ставить: ... MonsterClasses=(MClassName="Doom3KFBeta3.Vulgar",Mid="S") MonsterClasses=(MClassName="Doom3KFBeta3.CyberDemon",Mid="T") ... MonsterClasses=(MClassName="Doom3KFBeta3.HunterBerserk",Mid="-") MonsterClasses=(MClassName="Doom3KFBeta3.HunterInvul",Mid="*") ... а потом в отряды их добавляешь .. и вперед .. настраиваешь.. p.s. Привел пример с "-" и "*" - это чтобы показать какие символы выделять для монстров если буквы лат алфавита кончаться. ну и в SeverPackages= при этом должен быть, а сам мутатор не включать.
Ясно спс, мне вот и надо было их название , самих мобов. Только у мну почему-то не ставиться один получается на одного игрока по боссу, а это не реально.
в разделе: [KFmod.KFGameType] ... EndGameBossClass=Doom3KFBeta3.CyberDemon ... так можно попробовать чтобы 1-н был вместо Босса патриарха.
Нету у меня таких строчек, да и не охота патрика то менять просто хотелось сделать пару боссов или 3.Кто подскажет как в настройках мута отключить всех обычных мобов.Боссов кажись понял как настроить, а вот с мобами беда?
В папке System,найди файл "Doom3KF.ini". Открой его и удали оттуда всех обычных монстров,останутся только боссы.
Не помогло, удалил, при запуске сервера мобы все равно появляются.Может вот в этих строках нужно прописать : MinSpawnDelay=50.000000 MaxSpawnDelay=5.000000 ? И что значат строчки "BossWaveReduction=" , BossPerPlayerHP= ?
Да,поставь значение "800.00" в обеих строчках - Doom монстры,практически перестанут появлятся. "BossWaveReduction" - устанавливаешь,насколько меньше обычных монстров будет в волне,если появится Босс. "BossPerPlayerHP" - уровень здоровья Босса относительно количества игроков.Например 0.0 - без изменений,1.0 - на 100% с каждым игроком.
Так. Я вроде обещал написать как выдирать монстров и оружие из больших пакетов. Я описывал, как выдирать зомбиков с точки зрения кода, сейчас покажу на примере монстров из дума, как тащить ресурсы монстра из общих пакетов ресурсов мутатора. Спойлер Сразу говорю - возможно способ не лучший, но лучше какой-то, чем никакого upd. Завёл тему в подфоруме кодинга. Не знаю - может тут удалить это... Хотя вроде в свёрнутом виде не мешает ) Кто лучше владеет темой - пусть поправит в этой теме. Будем рассматривать ситуацию, когда есть большие файлы ресурсов (анимация, текстуры, статикмеши и звуки) и надо из них вытащить ресурсы конкретного монстра. Всё будет делаться без стороннего софта - только с помощью KFEd Потом можно будет написать статейку по использованию umodel и других инструментов Итак, вытащим из файлов мутатора Doom3 ресурсы монстра HunterInvul: Вначале найдём все необходимые для HunterInvul классы Спойлер Во-первых явно нужны классы начинающиеся на HunterInvul, далее смотрим типы урона в которых есть HunterInvul - находим класс DamTypeHunterInvulShockWave кроме того очевидно, что нам понадобятся главные классы DoomMonster и Doom3Controller Я использую Notepad++ и следующим моим шагом является поиск по всем уже отобранным файлам одновременно. Я ищу все отсылки к "Doom3KFBeta4." (название мутатора) Таким образом можно быстро найти какие ещё классы нам понадобится Кроме того можно сразу создать пакет HunterInvulMut Создаём HunterInvulMut\Classes и кидаем туда полученные файлы и пытаемся скомпилировать этот пакет Сразу все недостающие классы всплывут В итоге получился такой список файлов: BossDemonSpawn D3Karma DamTypeD3Melee DamTypeHunterInvulShockWave DemonSpawn DemonSpawnB DemonSpawnBase Doom3Controller DoomBurnTex DoomDeResDustMedium DoomDeResDustSmall DoomEmitter DoomMaterialSequence DoomMonster DoomProjectile DoomSymbolProjector HunterInvul HunterInvulBeam HunterInvulBigProjectile HunterInvulBigProjErupt HunterInvulBigProjTrail HunterInvulElecAttachmentsLarge HunterInvulElecAttachmentsMedium HunterInvulElecAttachmentsSuper HunterInvulElectroWave HunterInvulHandBeams HunterInvulHandBeamsLong HunterInvulMaterialSequence HunterInvulProjectile HunterInvulProjExplosion HunterInvulProjSmokeTrail HunterInvulProjTrail HunterInvulShockProj TriggerSpawnDemon Кроме того нашёлся ещё класс Doom3Mutator, но я его сразу убрал - нам он не понадобится Он используется в DoomMonster.MakeGrandEntry и в BossDemonSpawn.Timer Заменим коэффициенты Class'Doom3Mutator'.Default.BossWaveReduction, Class'Doom3Mutator'.Default.BossPerPlayerHP, которые используются в этих фунциях на их значения по умолчанию из Doom3Mutator (0.4) Вообще говоря можно потом сделать какой-нибудь класс HunterInvulMut и в нём задать эти параметры, вынести их во внешний ини файл и сделать так, чтобы можно было править в вебадмине, но сейчас лень это описывать Кроме того нам не надо, чтобы в DoomMonster были какие-то упоминания о Archvile Поэтому закомментируем var Archvile ArchvileMaster и кусок кода в PlayDyingAnimation: Код: if( ArchvileMaster!=None ) { ArchvileMaster.MonsterCounter--; ArchvileMaster = None; } Теперь, когда мы нашли все необходимые нам классы - будем искать все упоминания всех ресурсов. Найдём текстуры в названии которых присутствует 2009DoomMonstersTex Спойлер (я сразу убрал повторения и отсортировал по алфавиту результаты поиска): Спойлер Texture'2009DoomMonstersTex.Archvile.PC_buildStreaks' Texture'2009DoomMonstersTex.BurnTextures.MancubusBurnTexture' Texture'2009DoomMonstersTex.FatZombie.FattySkin' Shader'2009DoomMonstersTex.HunterInvulnerable.HunterInvulFinalShader' Texture'2009DoomMonstersTex.Revenant.InvisMat' Texture'2009DoomMonstersTex.Effects.barrelpoof' Texture'2009DoomMonstersTex.Effects.BFGBlast2' Texture'2009DoomMonstersTex.Effects.BFGBlast3' Texture'2009DoomMonstersTex.Effects.BlueExplosion' Texture'2009DoomMonstersTex.Effects.BlueFlashStrip' Texture'2009DoomMonstersTex.Effects.BlueLightning3' Texture'2009DoomMonstersTex.Effects.ElectricRing' Texture'2009DoomMonstersTex.Effects.FBeam' Texture'2009DoomMonstersTex.Effects.FlashStrip2' Texture'2009DoomMonstersTex.Effects.Flare1' Texture'2009DoomMonstersTex.Effects.GlowSmall' Shader'2009DoomMonstersTex.Effects.HunterInvulProjTex' Texture'2009DoomMonstersTex.Effects.InvulLightning2' Texture'2009DoomMonstersTex.Effects.LightningBolt1A' Texture'2009DoomMonstersTex.Effects.LightningBolt3' Texture'2009DoomMonstersTex.Effects.LightningBolt4' Texture'2009DoomMonstersTex.Effects.rocketbacklit' Texture'2009DoomMonstersTex.Effects.Smokepuff' Texture'2009DoomMonstersTex.Effects.Vp1' Texture'2009DoomMonstersTex.Effects.WhiteFlashStrip' Texture'2009DoomMonstersTex.Effects.WhiteFlashStrip2' Texture'2009DoomMonstersTex.FatZombie.FattySkin' Texture'2009DoomMonstersTex.Symbols.DoomFire' Texture'2009DoomMonstersTex.Symbols.Spawn3' Texture'2009DoomMonstersTex.Symbols.SpawnDecal' Возможно я что-то упустил в этом списке. Не страшно. При компиляции это вылезет Главное понимать что именно надо делать... Далее, найдём статикмеши в названии которых присутствует 2009DoomMonstersSM В результате получаем единственный статик меш StaticMesh'2009DoomMonstersSM.DemonSpawnSphere' Найдём звуки в названии которых присутствует 2009DoomMonstersSounds Спойлер (я сразу убрал повторения и отсортировал по алфавиту результаты поиска): Спойлер Sound'2009DoomMonstersSounds.Imp.imp_exp_03' Sound'2009DoomMonstersSounds.Imp.imp_fireball_flight_04' Sound'2009DoomMonstersSounds.Imp.imp_miss_01' Sound'2009DoomMonstersSounds.Imp.imp_miss_03' Sound'2009DoomMonstersSounds.Hunter.Hunter_attack_01' Sound'2009DoomMonstersSounds.Hunter.Hunter_attack_07' Sound'2009DoomMonstersSounds.Hunter.Hunter_attack_09' Sound'2009DoomMonstersSounds.Hunter.Hunter_attack_11' Sound'2009DoomMonstersSounds.Hunter.Hunter_death_03' Sound'2009DoomMonstersSounds.Hunter.Hunter_death_05' Sound'2009DoomMonstersSounds.Hunter.Hunter_invul_fs_invul_01' Sound'2009DoomMonstersSounds.Hunter.Hunter_invul_fs_invul_02' Sound'2009DoomMonstersSounds.Hunter.Hunter_fb_prefire_01' Sound'2009DoomMonstersSounds.Hunter.Hunter_fb_prefire_03' Sound'2009DoomMonstersSounds.Hunter.Hunter_helltime_exp_03' Sound'2009DoomMonstersSounds.Hunter.Hunter_helltime_exp_05' Sound'2009DoomMonstersSounds.Hunter.Hunter_helltime_flight1' Sound'2009DoomMonstersSounds.Hunter.Hunter_mono_growl_03' Sound'2009DoomMonstersSounds.Hunter.Hunter_mono_growl_25' Sound'2009DoomMonstersSounds.Hunter.Hunter_mono_growl_27' Sound'2009DoomMonstersSounds.Hunter.Hunter_pain_01' Sound'2009DoomMonstersSounds.Hunter.Hunter_pain_02' Sound'2009DoomMonstersSounds.Hunter.Hunter_pain_06' Sound'2009DoomMonstersSounds.Hunter.Hunter_pain_08' Sound'2009DoomMonstersSounds.Hunter.Hunter_sight_01' Sound'2009DoomMonstersSounds.Hunter.Hunter_st_growl_25' Sound'2009DoomMonstersSounds.Misc.Misc_spiritsting' Sound'2009DoomMonstersSounds.Misc.Misc_tele2_full3_1s' Sound'2009DoomMonstersSounds.Trite.Trite_deathsplat_01' Sound'2009DoomMonstersSounds.Trite.Trite_deathsplat_04' И наконец, найдём файлы моделей и анимации в названии которых присутствует 2009DoomMonstersAnims Получаем единственный результат '2009DoomMonstersAnims.HunterInvulnerableMesh' Открываем KFEd (если возникает вопрос, где его брать то, читаем тут, лично я качал с торрентов подобных этому. Там и сервер и sdk есть. Только не забудьте до последней версии пропатчить) Начнём с переноса текстур Спойлер Открываем 2009DoomMonstersTex тыкаем на текстуру в группе Archvile с именем PC_buildStreaks и кликаем правой кнопкой мыши, выбираем Rename и меняем название пакета на HunterInvul_T. Текстурка пропадает с экрана. Она переехала в пакет HunterInvul_T. Можем выбрать его и убедится, что во первых автоматически появился пакет HunterInvul_T, а во вторых, что текстура PC_buildStreaks переехала к нам. Подобным же способом переносим остальные текстуры пока не дойдём до Shader'2009DoomMonstersTex.HunterInvulnerable.HunterInvulFinalShader' Если перекидывание текстур из пакета в пакет делается мгновенно, то с шейдерами, комбайнерами и прочими блендерами проблем побольше. Шейдер HunterInvulFinalShader хитро устроен и вовсю использует другие текстуры и комбайнеры. Найдём этот шейдер и кликнем правой кнопкой и выберем Properties. Справа сверху увидим дерево зависимостей. HunterInvulFinalShader использует: следующие 4 ресурса: 1. Combiner'2009DoomMonstersTex.HunterInvulnerable.JHunterInvSkin' 2. Combiner'2009DoomMonstersTex.HunterInvulnerable.Combiner2' 3. TexPanner'2009DoomMonstersTex.HunterInvulnerable.FinalSkinElecPanner' 4. Texture'2009DoomMonstersTex.HunterInvulnerable.HunterInvulSkin02' В свою очередь Combiner'2009DoomMonstersTex.HunterInvulnerable.JHunterInvSkin' использует 1.1 Texture'2009DoomMonstersTex.HunterInvulnerable.HunterInvulSkin01' 1.2 Combiner'2009DoomMonstersTex.HunterInvulnerable.JHuntComb' 1.3 Texture'2009DoomMonstersTex.HunterInvulnerable.HunterInvulSkin01' Combiner'2009DoomMonstersTex.HunterInvulnerable.JHuntComb' использует 1.2.1 Texture'2009DoomMonstersTex.HunterInvulnerable.HunterInvulSkin01' 1.2.2 TexEnvMap'KF_Specimens_Trip_T.reflection_env' Думаю принцип по которому я нумерую понятен, поэтому дальше я просто допишу кто от кого зависит. 2.1 Texture'2009DoomMonstersTex.HunterInvulnerable.HunterInvulSkin01Symbols' 2.2 TexOscillator'2009DoomMonstersTex.Effects.InvulTexOsc' 2.2.1 TexPanner'2009DoomMonstersTex.Effects.InvulTexPannerFX2' 2.2.1.1 TexScaler'2009DoomMonstersTex.Effects.InvulTexScalerFX2' 2.2.1.1.1 Texture'2009DoomMonstersTex.Effects.LightningBolt' 3.1 Texture'2009DoomMonstersTex.HunterInvulnerable.LEnergy' Итак, вместе с Shader'2009DoomMonstersTex.HunterInvulnerable.HunterInvulFinalShader' нам надо перенести к нам в пакет текстур следующие ресурсы: Спойлер Texture'2009DoomMonstersTex.HunterInvulnerable.LEnergy' Texture'2009DoomMonstersTex.Effects.LightningBolt' TexScaler'2009DoomMonstersTex.Effects.InvulTexScalerFX2' TexPanner'2009DoomMonstersTex.Effects.InvulTexPannerFX2' TexOscillator'2009DoomMonstersTex.Effects.InvulTexOsc' Texture'2009DoomMonstersTex.HunterInvulnerable.HunterInvulSkin01Symbols' Texture'2009DoomMonstersTex.HunterInvulnerable.HunterInvulSkin01' Combiner'2009DoomMonstersTex.HunterInvulnerable.JHuntComb' Texture'2009DoomMonstersTex.HunterInvulnerable.HunterInvulSkin02 TexPanner'2009DoomMonstersTex.HunterInvulnerable.FinalSkinElecPanner' Combiner'2009DoomMonstersTex.HunterInvulnerable.Combiner2' Combiner'2009DoomMonstersTex.HunterInvulnerable.JHunterInvSkin' Вообще очень сложный шейдер. Обычно гораздо всё проще ) Ссылки на текстуры внутри сложных элементов поменяются автоматически! Рассмотрим теперь еще один шейдер Shader'2009DoomMonstersTex.Effects.HunterInvulProjTex' Он ссылается только на Texture'2009DoomMonstersTex.Effects.ElectroTex' Такая вот зависимость гораздо чаще встречается Переносим эти два ресурса Далее перенесём Staticmesh Спойлер Выбираем DemonSpawnSphere и видим снизу во вкладке Materials, что для этой статик меши нам нужны ещё 2 шейдера Обратно возвращаемся к текстурам и смотрим на эти шейдеры Shader'2009DoomMonstersTex.Effects.DemonSpawnBlast' ссылается на Texture'2009DoomMonstersTex.Effects.CyberMouthFlare'. Shader'2009DoomMonstersTex.Effects.DemonSpawnWave' ссылается на TexPanner'2009DoomMonstersTex.Effects.DemonSpawnPanner', который в свою очередь ссылается на Texture'2009DoomMonstersTex.Effects.BFGWave1' Переносим эти 2 текстуры, 1 TexPanner и 2 шейдера к нам в HunterInvul_T Вновь возвращаемся к статик мешам и видим, что в Materials текстуры поменяли место жительства Теперь перенесём статик меш в наш пакет HunterInvul_SM в меню сверху входим в пункт Edit и выбираем Rename и заменяем значение Package на HunterInvul_SM Теперь займёмся звуками Выбираем нужный звук, жмём правую кнопку мыши и переносим в HunterInvul_SN точно так же как и в с текстурами Нам повезло. В ресурсах нет ссылок на SoundGroup. Только на Sound. Лично я не знаю, как переносить или экспортировать SoundGroup... Осталась анимация и модель Расскажу 2 способа: 1 cпособ: Спойлер Выбираем модельку HunterInvulnerableMesh среди моделей в ComboBox'е Теперь выбираем в меню Mesh->RenameMesh и переименовываем в HunterInvul_A Выбираем в меню Animation->Rename AnimationSet и заменяем пакет на HunterInvul_A Теперь идём в HunterInvul_A и жмём Edit->"Link Anim and Mesh" (типа присоединяем к данной конкретной моделке эту анимацию) Не знаю надо ли это делать в случае, когда всего 1 анимация и 1 меш, но хуже не будет Так. Теперь самое неприятное для меня во всём этом. Надо разобраться с Animation Notifies... То есть с механизмом позволяющим на определённом кадре анимации запускать функцию из кода монстра, проигрывать звук определённый (часто используется для звука шагов) и т.д. Хорошо про это написано, например, здесь. Я не знаю, как автоматически переименовывать Notifies. При переносе они продолжают ссылаться на старый пакет. Видимо это не просто ссылка на функцию или на звук (или на... полный список возможностей смотреть по данной выше ссылке) Ну ничто не мешает нам создать новые Notifies. Полностью аналогичные старым: Справа видим пару Notify. Поправим верхнюю. Она ссылается на функцию SpawnGiantElectro (из кода HunterInvul.uc). То есть она ни на что не ссылается - просто имя Notify совпадает с названием функции. И на кадре 3.38 во время анимации Атака1 будет вызываться фунция SpawnGiantElectro (вокруг монстра создаётся электроброня). Добавим новую Notify. А теперь "создадим" её, выбрав тип AnimNotify_Script. Получаем скрипт под номером 0 с пустым именем. В поле имени поставим SpawnGiantElectro в поле NotifyFrame ставим 3.38 Всё. Теперь можно удалять старый скрипт с SpawnGiantElectro. Новая Notify ссылается уже на наш пакет. Точно так же поступаем со всеми остальными Notify. Не забываем убедится, что ссылки на текстуры правильные - ссылаются на пакет HunterInvul_T. Это должно автоматически получится на этапе переноса текстур... 2 cпособ: Спойлер Как я сделал, например, в случае этого монстра. Открываем 2009DoomMonstersAnims и переименовываем её в HunterInvul_A. После этого удаляем из неё все меши и все анимации кроме HunterInvulnerableMesh и HunterInvulnerableAnim соответственно. Собственно всё Не надо переименовывать никакие меши или анимации, не надо мучиться с Notify... Но способ не слишком изящный ) С вытаскиванием ресурсов закончили. Теперь копируем новые ресурсы в animations, textures, staticmeshes и в sounds соответственно. И удаляем оттуда 2009DoomMonstersSounds, 2009DoomMonstersTex, 2009DoomMonstersAnims, 2009DoomMonstersSM. Чтобы во время компиляции сразу было ясно - потеряли ли мы какие-то ресурсы или нет. (Кстати, можно ещё до компиляции любым текстовым редактором поискать упоминание старого пакета. То есть открываем, например, HunterInvul_T и ищем в нём упоминание 2009DoomMonstersTex. Достаточно поискать 2009. Если нашли упоминание - возвращаемся к текстурам и ищем в каком блендере/шейдере и т.д. есть ссылка из основного пакета. В анимации можем потерять либо в скинах, либо в Notifies ссылку на старый пакет, а в статикмешах ссылку на материалы) Я практически гарантирую, что на первых порах вы будете забывать поправить кучу ресурсов. И будет куча ошибок на этапе импорта во время компиляции. Поэтому особенно важно удалить старые ресурсы. Иначе все отлично откомпилируется, но при переносе будут проблемы. Если всё откомпилировалось, как у меня, то и отлично ) Ещё раз. Не претендую, что это хороший способ. Очень не часто этим занимаюсь сам. Уверен, что те, кто создаёт модели смогут многое здесь поправить. Позже ещё опишу примеры. Вытаскивания ресурсов оружия или монстров (можете делать запросы в этой теме)) ). Пока выложу в данной теме ссылки на двух монстров из дума3: Неуязвимого охотника и Стража. HunterInvulnerable: Ссылка 1 или Ссылка 2 Guardian: Ссылка 1 или Ссылка 2
Спойлер Sawyer Адрес: SawyerMut.Sawyer Ссылка 1 или Ссылка 2 + т.к. базовый он слабенький (280 hp) - ниже ещё одна версия. 2800 hp и атака раза в 1.5 сильнее Ссылка 1 или Ссылка 2