[FAQ] Анимация своей модели, без использования .int файла - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Тех-документация

Тех-документация Статьи по редактированию, компиляции и настройки ява серверов Lineage 2
Описание темы:Перенос кода анимации действий из .int файлов в .u

Ответ
Опции темы
Непрочитано 02.03.2017, 03:10   #1
Пользователь

Автор темы (Топик Стартер) [FAQ] Анимация своей модели, без использования .int файла

Перенос кода анимации действий из .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)
Phantom-Dev вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 02.03.2017, 03:24   #2
Аватар для Angelika
Пользователь

По умолчанию Re: [FAQ] Анимация своей модели, без использования .int файла

Нужно будет попробовать , спасибо за вклад в развитие форума сергей ^
Angelika вне форума Ответить с цитированием
Непрочитано 02.03.2017, 03:34   #3
Пользователь

Автор темы (Топик Стартер) Re: [FAQ] Анимация своей модели, без использования .int файла

Не раз уже проверялось, не забываем что в вашем компиляторе должна быть прописана поддержка данных функций. Если этого нет, то идем в ваш Engine.u в разобранный, ищем там класс Pawn и добавляем в него примерно такой код:
Код:
// Добавление параметров анимации
var localized name TurnAnimName[8];
var localized name WalkAnimName[8];
var localized name RunAnimName[8];
var localized name FallAnimName[8];
var localized name DamageFlyAnimName[8];
var localized name JumpAnimName[8];
var localized name BJumpAnimName[8];
var localized name WaitAnimName[8];
var localized name AtkWaitAnimName[8];
var localized name SitAnimName[8];
var localized name SitWaitAnimName[8];
var localized name StandAnimName[8];
var localized name DeathStandAnimName[8];
var localized name ChairSitAnimName[8];
var localized name ChairWaitAnimName[8];
var localized name ChairStandAnimName[8];
var localized name StunAnimName[8];
var localized name Atk01AnimName[8];
var localized name Atk02AnimName[8];
var localized name Atk03AnimName[8];
var localized name AtkUpAnimName[8];
var localized name AtkDownAnimName[8];
var localized name SpAtk01AnimName[8];
var localized name SpAtk02AnimName[8];
var localized name SpAtk03AnimName[8];
var localized name SpAtk04AnimName[8];
var localized name SpAtk05AnimName[8];
var localized name SpAtk06AnimName[8];
var localized name SpAtk07AnimName[8];
var localized name SpAtk08AnimName[8];
var localized name SpAtk09AnimName[8];
var localized name SpAtk10AnimName[8];
var localized name SpAtk11AnimName[8];
var localized name SpAtk12AnimName[8];
var localized name SpAtk13AnimName[8];
var localized name SpAtk14AnimName[8];
var localized name SpAtk15AnimName[8];
var localized name SpAtk16AnimName[8];
var localized name SpAtk17AnimName[8];		
var localized name SpAtk18AnimName[8];
var localized name SpAtk19AnimName[8];
var localized name SpAtk20AnimName[8];
var localized name SpAtk21AnimName[8];
var localized name SpAtk22AnimName[8];
var localized name SpAtk23AnimName[8];
var localized name SpAtk24AnimName[8];
var localized name SpAtk25AnimName[8];
var localized name SpAtk26AnimName[8];
var localized name SpAtk27AnimName[8];
var localized name SpAtk28AnimName[8];
var localized name ShieldAtkAnimName[8];
var localized name DefenceAnimName[8];
var localized name DodgeAnimName[8];
var localized name DeathAnimName[8];
var localized name DeathWaitAnimName[8];
var localized name SitDeathAnimName[8];
var localized name SitDeathWaitAnimName[8];
var localized name DamageAnimName[8];
var localized name CastShortAnimName[8];
var localized name CastMidAnimName[8];
var localized name CastLongAnimName[8];
var localized name CastEndAnimName[8];
var localized name MagicThrowAnimName[8];
var localized name MagicShotAnimName[8];
var localized name MagicNoTargetAnimName[8];
var localized name MagicFriendAnimName[8];
var localized name PicItemAnimName[8];
var localized name ThrowAnimName[8];
var localized name PcSocialAnimName[20];
var localized name NpcSocialAnimName[5];
var localized name RiderWaitAnimName[3];
var localized name RiderAtkAnimName[3];
var localized name RiderRunAnimName[3];
var localized name RiderDeathWaitAnimName[3];
var localized name RiderDeathAnimName[3];
var localized name SwimDeathAnimName[8];
var localized name SwimAnimName[8];
var localized name SwimWaitAnimName[8];
var localized name SwimDeathWaitAnimName[8];
var localized name SwimAttackWaitAnimName[8];
var localized name FishStartAnimName;
var localized name FishWaitAnimName;
var localized name FishControlAnimName;
var localized name FishPullAnimName;
var localized name FishEndAnimName;

var localized float WalkAnimRate[8];
var localized float RunAnimRate[8];
var localized float Atk01AnimRate[8];
var localized float Atk02AnimRate[8];
var localized float Atk03AnimRate[8];
var localized float AtkUpAnimRate[8];
var localized float AtkDownAnimRate[8];
var localized float SpAtk01AnimRate[8];
var localized float SpAtk02AnimRate[8];
var localized float SpAtk03AnimRate[8];
var localized float SpAtk04AnimRate[8];
var localized float ShieldAtkAnimRate[8];
var localized float CastShortAnimRate[8];
var localized float CastMidAnimRate[8];
var localized float CastLongAnimRate[8];
var localized float CastShortEndAnimRate[8];
var localized float MagicThrowAnimRate[8];
var localized float MagicShotAnimRate[8];
var localized float MagicNoTargetAnimRate[8];
var localized float MagicFriendAnimRate[8];
var localized float ThrowAnimRate[8];
У меня это добавлено перед комментарием "// Physics related flags.". Компилируем Engine.u и юзаем наши новые примочки))
Phantom-Dev вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 02.03.2017, 05:36   #4
Аватар для Angelika
Пользователь

По умолчанию Re: [FAQ] Анимация своей модели, без использования .int файла



Анимацию проигрывает нормально , файлов int нету все в u по мануалу ! хех приятно ^
Angelika вне форума Ответить с цитированием
Непрочитано 02.03.2017, 16:17   #5
Пользователь

Автор темы (Топик Стартер) Re: [FAQ] Анимация своей модели, без использования .int файла

Angelika, спасибо за тест, я тестил тоже перед выкладыванием но все равно наглядный пример лучше чем слова! Может у кого то будут ошибки, если не добавляли в компилятор стандартных опций ла2! Я подсказал решение проблем по статье, ошибки могут быть по опциям выше что не относятся к анимации! Если cделал ошибки в синтаксисе статье извините писал статью в 4 утра ещё и без пробела, клава накрылась))) Если нужна помощь в личку или скайп!

Последний раз редактировалось Phantom-Dev; 03.03.2017 в 01:01.
Phantom-Dev вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется админ со своей сборкой deathmad Рынок / Marketplace 2 30.09.2015 12:09
как добавить критерий использования предмету desstroer Работа со скриптами 8 26.11.2014 20:23
Повторное использования кода halaymoon Lineage II 4 23.09.2012 11:09
Нужен человек со своей сборкой LA2 crystalake Рынок / Marketplace 1 04.04.2011 18:20
Скрипты для создания своей [web]-статистики MMd Работа со скриптами 0 26.12.2009 14:49


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 05:37. Часовой пояс GMT +3.

Вверх