Lineage 2 SDK это набор файлов описывающих типы данных, структуры, прототипы функций и перечислимые типы доступные в клиенте Lineage 2. Использование SDK позволяет очень тесно взаимодействовать с игровым клиентом
из вашего C++ кода, создавать достаночно сложные дополнения для игры всего в несколько десятков строк кода.
Простой пример использования: Вывод информации о активном акторе
Код:
auto Viewport = FCore::UObject::FindObject<FWinDrv::UWindowsViewport>("WindowsViewport Transient.WindowsClient0.WindowsViewport0");
if (Viewport)
{
auto Controller = Viewport->Actor;
if (Controller)
{
auto Actor = Controller->ViewTarget;
if (Actor)
{
auto& Location = Actor->Location;
auto Name = Actor->GetHumanReadableName();
Utils::PrintDebug("Name='%s' Pos=(%.02f, %.02f, %.02f)", Name.c_str(), Location.X, Location.Y, Location.Z);
}
}
}
Добавляем сообщение в системный чат:
Код:
auto ChatWnd = FCore::UObject::FindObject<FInterface::UChatWnd>("ChatWnd Transient.ChatWnd0");
if (ChatWnd)
{
ChatWnd->ShowAnnounceMessgage(L"Hello world");
}
На самом деле можно делать действительно мощные вещи. Мы в SmartGuard используем SDK для разработки плагинов-расширений игрового клиента, из последнего это портирование внутри-игровой почты в клиент Gracia Final, и автоматическое использование макросов как на последних хрониках, только для более ранних версий игры.