03-02-2017, 03:10 AM
Перенос кода анимации действий из .int файлов в .u
Добрый вечер, решил поделится мини инструкцией для мододелов, а именно, как задать что б ваша модель двигалась без использования .int файлов в папке system.
Думаю не для кого не секрет что в Lineage 2 в некоторых хрониках, таких как Gracia и до GOD использовались .int файлы для того что б задать анимацию разных действий для понимания клиентом. Но к примеру многим не удобно использовать их да за частую они просто забываются, по этому для тех кто собирает .u пакет с классом от нпц, как это и пологаеться, есть возможность дописывать анимацию действий на прямую в класс самого нпц или моба.
К примеру у вас есть нпц который использует класс из пакета LineageMonster5.u к примеру br_wooldie, значит анимация к нему прописана в LineageMonster5.int
Открываем наш LineageMonster5.int через File Edit и ищем по запросу br_wooldie, после чего находим примерно такой код:
Код:
[br_wooldie]
WalkAnimName[0]=walk
RunAnimName[0]=run
WaitAnimName[0]=wait
AtkWaitAnimName[0]=atkwait
Atk01AnimName[0]=atk01
SpAtk01AnimName[0]=SpAtk01
DeathAnimName[0]=death
DeathWaitAnimName[0]=deathwait
CastShortAnimName[0]=atkwait
CastEndAnimName[0]=atkwait
CastMidAnimName[0]=atkwait
CastLongAnimName[0]=atkwait
MagicShotAnimName[0]=SpAtk02
MagicThrowAnimName[0]=SpAtk02
MagicNoTargetAnimName[0]=SpAtk03
NpcSocialAnimName[0]=social01
NpcSocialAnimName[1]=social02
NpcSocialAnimName[2]=spatk03
Тут и задается кодом какой функции движения задана какая анимация. Что мы делаем? Ищем теперь класс нашего нпц в .u через Wot Greal, кто не знает название класса, его можно подсмотреть в датки хроник с которых вы вытаскиваете вашего нпц, либо в дев моде, поставив галочку показывать класс нпц. В нашем случае этот класс лежит в LineageMonster4.u и называется он у нас wooldie.
Копируем куда вам удобно в вашем компиляторе .u пакетов, для дальнейшей сборки ваш класс и открываем его любым текстовым редактором и видим примерно такой код:
Код:
class wooldie extends LineagePawn;
defaultproperties
{
GroundMaxSpeed=60.00
GroundMinSpeed=60.00
bSpineRotation=True
ControllerClass=Class'LineageMonster.HerdMonster'
NameOffset=5.00
DrawScale=0.60
CollisionRadius=8.00
CollisionHeight=17.00
}
Что мы делаем? А делаем мы вот что, идем в наш .int откуда мы будем брать код наших действий нпц и копируем его в наш класс нпц который мы переносим и получаем примерно такой код:
Код:
class wooldie extends LineagePawn;
defaultproperties
{
GroundMaxSpeed=60.00 // Макс. скорость движения по земле
GroundMinSpeed=60.00 // Мин. скорость движения по земле
bSpineRotation=True // Разворот при обращении к нпц
ControllerClass=Class'LineageMonster.HerdMonster' // Класс контролера нашего обьекта, нпц, моб и т.д
NameOffset=5.00 // Подъем имени нпц, для тех кто извращается через унреал, подъемом оси Z(Теперь этот изврат не нужен)
DrawScale=0.60 // Размер объекта
CollisionRadius=8.00 // Радиус объекта, не позволяет проходить сквозь объект (НПЦ, Монстр и т.д)
CollisionHeight=17.00 // Высота положения объекта (НПЦ, Монстр и т.д)
WalkAnimName[0]=walk
RunAnimName[0]=run
WaitAnimName[0]=wait
AtkWaitAnimName[0]=atkwait
Atk01AnimName[0]=atk01
SpAtk01AnimName[0]=SpAtk01
DeathAnimName[0]=death
DeathWaitAnimName[0]=deathwait
CastShortAnimName[0]=atkwait
CastEndAnimName[0]=atkwait
CastMidAnimName[0]=atkwait
CastLongAnimName[0]=atkwait
MagicShotAnimName[0]=SpAtk02
MagicThrowAnimName[0]=SpAtk02
MagicNoTargetAnimName[0]=SpAtk03
NpcSocialAnimName[0]=social01
NpcSocialAnimName[1]=social02
NpcSocialAnimName[2]=spatk03
}
Что мы сделали? А мы просто перенесли код анимации действий с .int в наш .u, теперь собираете вашим компилятором ваш пакет с классом или классами нпц или мобов и пользуемся .u пакетом уже с прописанной анимацией действий.
Спасибо за внимание, и приятного так сказать использования мод хака.
Автор статьи: webdes27(Phantom-Dev)