• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.

Компиляция .u

  • Автор темы Автор темы BaTMaN
  • Дата начала Дата начала

BaTMaN

Путник
Пользователь
Сообщения
64
Розыгрыши
0
Репутация
32
Реакции
72
Баллы
0
Как правильно подключать свои папки проектов для компиляции .u пакетов. А так же мы скомпилируем простой скрипт. Что нам понадобится:
1) Unreal Runtime так как он наиболее подходит по схожести стандартных функций.
2) Декомпилятор .u пакетов или просмотерщик классов, такие как UE Explorer или WOTgreal Package Exporter
3) Текстовый редактор, я использую Notepad++ и плагин для подсветки UnrealScript

Приступим:
1) Первым делом нам понадобится скрипт/класс который мы будем собирать, я использую клиент Lineage II Epic Tales of Aden – Infinite Odyssey: Shadow of Light part 2 и декомпилятор WOTgreal Package Exporter. Открываем декомпилятором папку систем и выбираем к примеру LineageMonster7.u и в появившемся списке классоф ищем класс clock_work_cucuru, это ездовая птица, которая у нас появилась в клиенте GOD, после того как нашли и выбрали у нас с права появится код, его мы и будем использовать.

class clock_work_cucuru extends LineageRidePawn; function PostBeginPlay() { Super.PostBeginPlay(); SimulationCollisionObjects.length = 3; SimulationCollisionObjects[0] = new class'SimulationCylinderCollision'; SimulationCylinderCollision( SimulationCollisionObjects[0] ).BoneIndexA = 39; SimulationCylinderCollision( SimulationCollisionObjects[0] ).BoneIndexB = 41; SimulationCylinderCollision( SimulationCollisionObjects[0] ).Radius = 3.f; SimulationCylinderCollision( SimulationCollisionObjects[0] ).SphereA = false; SimulationCylinderCollision( SimulationCollisionObjects[0] ).SphereB = false; SimulationCollisionObjects[1] = new class'SimulationCylinderCollision'; SimulationCylinderCollision( SimulationCollisionObjects[1] ).BoneIndexA = 67; SimulationCylinderCollision( SimulationCollisionObjects[1] ).BoneIndexB = 26; SimulationCylinderCollision( SimulationCollisionObjects[1] ).Radius = 10.f; SimulationCylinderCollision( SimulationCollisionObjects[1] ).SphereA = false; SimulationCylinderCollision( SimulationCollisionObjects[1] ).SphereB = false; SimulationCollisionObjects[2] = new class'SimulationCylinderCollision'; SimulationCylinderCollision( SimulationCollisionObjects[2] ).BoneIndexA = 67; SimulationCylinderCollision( SimulationCollisionObjects[2] ).BoneIndexB = 88; SimulationCylinderCollision( SimulationCollisionObjects[2] ).Radius = 10.f; SimulationCylinderCollision( SimulationCollisionObjects[2] ).SphereA = false; SimulationCylinderCollision( SimulationCollisionObjects[2] ).SphereB = false; } defaultproperties { GroundMaxSpeed=170.00 GroundMinSpeed=26.00 bSpineRotation=True CollisionRadius=20.00 CollisionHeight=40.00 }

2) Что нам нужно что б скомпилировать наш пакет с классом который мы выбрали для компиляции: Создать папку в главном каталоге рунтайма с названием будущего пакета .u который мы хотим получить. И в данной папке создать папку Classes. Classes - папка в которой будут лежать наши исходные классы для компиляции в .uc формате. Теперь нам необходимо создать любым текстовым редактором класс clock_work_cucuru с форматом .uc и вставить в него код который мы выбрали в нашем декомпиляторе. Сохраняем и закрываем.
3) После того как мы создали папку нашего проекта с нужным классом нам необходимо подключить её для компиляции в нашем редакторе, для этого нам необходимо найти в папке system, файл UE2Runtime.ini и открыть его. В данном файле мы будем подключать наш проект для компиляции, для этого нам необходимо найти секцию [Editor.EditorEngine] и ниже в конце секции будет параметры EditPackages= , они и отвечают за подключение. После самого нижнего EditPackages= в нашей секции добавляем строку EditPackages=Имя Нашей Папки Проекта Но так как наш класс использует класс LineageRidePawn и многие другие класс используют LineagePawn, нам необходимо подключить пакет LineageWarrior.u, для этого берём из папки систем нашего клиента наш пакет и декриптером l2decrypt.exe прогоняем, полученный файл переименовуем в оригинальное название и закидываем в папку system нашего редактора. И в нашем конфиге выше EditPackages=Имя Нашей Папки Проекта Добавляем строку EditPackages=LineageWarrior, именно выше так как наши скрипты используют классы и методы из пакета LineageWarrior а компилятор ла2 работает только последовательно! Так же вы можете подключить наши скрипты в редактор, для этого ищем в этом же конфиге секцию [UnrealEd.UnrealEdEngine] и так же после нижнего EditPackages= добавляем наши выше добавленные строки. Всё теперь мы можем сохранить документ и закрыть.
4) Теперь мы можем приступать к компиляции, делается это довольно просто. Что б не издеватся над собой и каждый раз не прописывать код пути к нашей папке систем, мы сразу в системе создаём бат(.bat) файл с любым названием и пишем в него cmd. После чего сохраняем и закрываем. Теперь запустите его и напишите make ucc и компиляция нашего .u пакета начнётся. Если вы хотите упростить компиляцию, можете в нашем бат файле сразу прописать make ucc и просто запускать его! Так же перед перекомпиляцией не забываем удалять наш скомпилированный .u пакет из папки system.
Автор Phantom-Dev

 

Вот же копипастер! Мою статью копирнул с других форумов!
Хотя бы поставил автора статьи не под спойлер! Почему больше и не шарил инфу! Ток это.
 

    zcxv

    Баллов: 9
    хорошая статья
Молодец что перенёс инфу.
Вот если бы ты написал эту же статью здесь, тогда бы ворчал :)
а то кроме зг её нигде не видел
 
вообще то он автор этой статьи и имеет права.
 
Спасибо за наглядный гайд. Узнал некоторые интересные мелочи. Interface.u можно таким способом пересобрать или же нужно что-то ещё?
 
я не поленился, просто форум этот не такой старый и я на нем не сидел когда статью писал. Мне показали его чуть позже. Вроди бы так. И он не ток на зг и на базе и ещё где то!
Просто у меня не везде ник Phantom-Dev, я раньше везде регистрировался под ником webdes27! А ещё раньше l2j-ct лет 7-8 назад!
А по поводу поста, я не ворчал а шуточно написал!
 
Назад
Сверху Снизу