Community | Что нового?
Новые сообщения Участники Правила форума Поиск RSS
  • Страница 1 из 1
  • 1
Форум Unknown » Игры » Проклятые Земли » AddAnyTexturedUnitToServer
AddAnyTexturedUnitToServer
Дата: Воскресенье, 13 Сентября 2020, 04:08 | Сообщение # 1
Всем, кто когда-то пытался добавить моба на карту, наверняка известно, что добавить его можно 3-мя способами:<br>
1. Почистить прогресс через функции GSS*<br>
2. Через функцию AddMob("*"), которая добавит моб с некоторым количеством новых юнитов. К тому же, многократное использование одного и того же моба решается дополнительными пробелами.<br>
3. Через функцию AddUnitToServer. Никто так и не использовал её...<br>
<br>
На самом деле, добавление юнитов функцией AddUnitToServer - очень интересно и гибко.<br>
Людей и орков добавлять можно полноценно, и для массовых баталий около крепостей AddUnitToServer подходит больше всего. Например, чтобы по несколько штук выпускать из зданий воинов или создавать длинные нашествия и осады. Mob-файл мог бы вырости до мегабайта от такого количества юнитов, всех их нужно было бы держать под землёй и поднимать по одному.<br>
Это ещё не страшно, но что если мобы должны добавляться постоянно, например, в сингле? А игрок захочет бить только мобов одного типа... Так и диска не хватит dry <br>
<br>
AddUnitToServer добавляет текстурированными на карту юнитов с расой типа 50. Такую имеют люди и орки.<br>
Затем стоит сбросить поведение юнита с помощью UMClear и установить нужное с помощью команд UM*.<br>
Навыки (атака, защита...) даются юниту командой GiveSkill, размеры прописываются в database.res (databaselmp.res для мульти)<br>
<br>
Команда ResetTarget на добавленного юнита вешает игру.<br>
<br>
Чтобы текстура могла отобразиться на добавленном юните, необходимо пересохранить её в формате ARGB (уже не помню какой точно, но суть в том, что игра не использует сжатые форматы из textures.res для добавляемых на карту юнитов, а лишь ARGB текстуры из redress.res). Это такой же формат, как для оружия, персов, доспехов... То есть, это и есть текстуры персов, только немного другой расы.<br>
<br>
Новым текстурам можно дать для удобства имя, например, аналогичное человеческим - unmotoskin_00, unanwitiskin_01...<br>
<br>
Номер текстуры добавляемого на карту юнита задаётся в базе, аналогично сингловым главным героям и мультиплеерным персам.<br>
<br>
Соответственно в database.res вместо старых названий нужно проставить новые без имени модели<br>
Для тигра:<br>
Модель - unanwiti, Текстура - unanwitiskin_00, unanwitiskin_01, в базу вписать Skin_00, Skin_01 вместо Tiger00, Tiger01<br>
<br>
Аналогично можно подменить свою партию в игре и нагибать текстурированным монстром<br>
<br>
Единственный минус такого способа - небольшая несовместимость в анимациях у типов рас. Юниты, добавленные скриптом AddUnitToServer могут ходить на месте когда останавливаются, а при первом добавлении могут вообще не воспроизводить анимации. Этот недостаток распространяется только (!) на анимацию отдыха. Вечно ходящийвоюющий юнит не будет уличён в забагованности.<br>
<br>
Возможно, патчится исправлением имён в *.anm и *.adb...<br>
<br>
Чтобы AddUnitToServer на карту добавляла юнитов с русскоязычным именем, стоит имя юнита из database.res записать как NPC в texts.res, и там дать ему нужное имя.<br>
То есть, можно добавить на карту 3 WolfTutor с именами Wolf01, Wolf02, Wolf03, и если в texts.res будут файлы Wolf01, Wolf02, Wolf03, с текстом внутри, то он будет отображаться в инфоокне волчат (кстати, Wolf01, Wolf02, Wolf03 - те самые имена, используемые функцией GetObjectByName - именно так стоит обращаться к добавленным юнитам).<br>
<br>
Вызов AddUnitToServer - из консоли как пример @AddUnitToServer("NPCNotNPC00001", "WolfTutor", "", GetX(GetLeader()), GetY(GetLeader()), 0)<br>
<br>
Чтобы юниты друг друга не заменяли, стоит каждый раз давать новое имя новому юниту.

Насчёт 1 способа - в сингле такое применяется, только потом проблематично зайти на зоны - их как бы уже нет (хотя точно не помню).<br>
Насчёт 3 способа - если кто-то всё же использовал, было бы интересно посмотреть на конкретную реализацию...<br>
После UMClear можно попробовать UMStandard, а затем команды, например, для патруля или защиты точки. UMClear + UMStandard - юнит не будет тупить, будет сражаться, защищать союзников и т. д...<br>
С добавленного через AddUnitToServer юнита будет сыпаться весь одетый на него шмот (точно как с убитого напарника ака наёмника).

Добавлять людей и орков можно совершенно спокойно<br>
Денежный баланс можно отрегулировать, если на них одевать дешёвые версии доспехов и оружия<br>
<br>
Не орков и не людей можно добавлять спокойно, если они смертники - то есть появляются - идут в бой - умирают, тогда их баг не будет замечен<br>
В любом случае юнит без текстуры выглядит куда хуже, чем шагающий на месте моб<br>
<br>
Вообще обидно, что многие части базы совсем не используются...<br>
А некоторые просто висят "константами", из-за того что другой функционал был не до конца доработан разработчиками...

Ещё есть неудобный способ добавлять орков и людей с оружием и доспехами, с которых они не будут падать<br>
Для этого нужно распаковать *.anm, *.bon, *.mod файлы и переименовать файлы моделей оружия и доспехов сменив их групу<br>
<br>
В *.fig файлах, составляющих *.mod файл, прописана група по смещению 36 байт. Група эта обозначает, какую текстуру на самом деле использовать. Видимо, тогда разработчики ещё не ввели расширений к моделям, или решили их использовать строго для экипировки (есть ещё невидимые куски модели, не тело и не экипировка, которые не имеют расширения).<br>
<br>
Группа 1 - первичные модели, используют текстуру перса<br>
Группа 2 - вторичные модели, используют свою текстуру<br>
<br>
В ПЗ если создать 2-х мобов:<br>
<br>
Ящер имеет внутри *.mod rh3.trident - вилы, и на всего-всего ящера одна текстура<br>
Человек имеет внутри кучу оружия и доспехов, например, rh3.pike00 - копьё<br>
<br>
Копьё не создастся вместе с персом лишь потому что у его *.fig 2-я группа.
Таким образом модель по умолчанию будет с оружием и доспехами, но этот вариант не рабочий по визуалке - перс будет с натянутой самой своей текстурой на доспехи...

В результате вышло пройтись троллем от развалин до Посёлка, ура!!!!!
Kiss
Off
Сообщений: 7
Уважение
[ ]
 
Форум Unknown » Игры » Проклятые Земли » AddAnyTexturedUnitToServer
  • Страница 1 из 1
  • 1
Поиск:

Ported to uCoz - WebStory
Top