Перейти к публикации
Планета Deus Ex

DEUS EX: REBORN // UT2004 MOD


Какое меню "инвентарь" (емкость инвентаря) вы хотите?  

25 пользователей проголосовало

  1. 1. Какое меню "инвентарь" (емкость инвентаря) вы хотите?

    • 5x6=30 ячеек, как в оригинале
      13
    • 6x7=42 ячейки, мне стандартного всегда было мало
      4
    • Предусмотреть оба варианта
      8


Рекомендованные сообщения

  • Ответы 769
  • Создано
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Опубликованные изображения

Для создания системы сохранений нужен программист C++. Все что можно сделать на UnrealScript я сделаю, по мере своих возможностей. Headers и LIB файлы для UT2004 у меня есть. Мне нужен лишь файловый менеджер и удаление части информации из save-файлов (Unreal Package).

Ссылка на комментарий

Для создания системы сохранений нужен программист C++. Все что можно сделать на UnrealScript я сделаю, по мере своих возможностей. Headers и LIB файлы для UT2004 у меня есть. Мне нужен лишь файловый менеджер и удаление части информации из save-файлов (Unreal Package).

По видео вроде норм сохранялось или они слишком большие?

Ссылка на комментарий

Таким способом я не могу сохранить уничтоженные (например сломанные декорации) и созданные после загрузки уровня объекты. Еще была идея соединить уровни в рамках одной миссии воедино, но она оказалась неудачной еще до реализации. Та система сохранений, что есть в UT2004, вполне подходит, мне нужно лишь получить возможность управлять файлами и каталогами.

Ссылка на комментарий

А почему не удалось соединить уровни воедино? Или это просто из-за того, что в некоторых картах нарушена геометрия, типо входов в отель с квартирой Пола?

Изменено пользователем ВизГ
Ссылка на комментарий

Проблема даже не в этом. Чем больше NPC, тем меньше производительность. И потом, мне всё это отлаживать (если не найдется желающих). Проще проконтролировать 10-15 NPC, чем 30-50 :)

 

Сейчас в самых тяжелых местах выдается примерно от 60 до 100 FPS (на небольших картах за 200), на максимальных настройках графики и физики в разрешении 1920x1080.

Ссылка на комментарий

Проблема даже не в этом. Чем больше NPC, тем меньше производительность. И потом, мне всё это отлаживать (если не найдется желающих). Проще проконтролировать 10-15 NPC, чем 30-50 :)

 

Сейчас в самых тяжелых местах выдается примерно от 60 до 100 FPS (на небольших картах за 200), на максимальных настройках графики и физики в разрешении 1920x1080.

ну есть же какие-то механизмы, если игрок далеко - нпс бездействуют.

 

Но опять же, наверное, будет проблема "телепортации" сюжетных нпс

Изменено пользователем ВизГ
Ссылка на комментарий

Даже если потратить пять лет на склейку уровней, в самый неожиданный момент могут вылезти прочие незадокументированные ограничения движка, игра не стоит свеч, особенно учитывая что уровни на современных компьютерах загружаются очень быстро.

Ссылка на комментарий
  • 2 недели спустя...

Для создания системы сохранений нужен программист C++. Все что можно сделать на UnrealScript я сделаю, по мере своих возможностей. Headers и LIB файлы для UT2004 у меня есть. Мне нужен лишь файловый менеджер и удаление части информации из save-файлов (Unreal Package).

Т.е. нужно через подключаемый модуль на C++ дергать функции доступа к файловой системе? Поиск, чтение, запись файлов? Или что-то ещё?

Ссылка на комментарий

Да, через UnrealScript.

 

Хотя в идеале конечно хотелось бы переместить некоторые функции в C++, ту-же систему флагов, добавить расширенный Play/Stop sound и некоторые преобразования, которые сложно сделать на UnrealScript. Но для начала нужно просто собрать тестовый пример и проверить как всё это работает.

Ссылка на комментарий

Обычно, те двери и контейнеры, которые можно сломать, я ломаю, а не трачу отмычки (даже не гранатами, а ящиком ТНТ).

Не знаю, как в Реборне, но в оригинале весь лут оставался целым.

Ящики TNT (бросаю - и за угол), ядреные бочки (если мускулы прокачаны), ракеты (несколько десятков за всю игру при лимите в 20 в инвентаре), гранаты (десятка 2-3 наверное за всю игру при лимите в 10), снайперка (после прокачки до мастера), NPC (в штабе UNATCO первую дверь в комнату с наноключом мне всегда любезно открывает солдат, окруженный кадками с цветами) - возможностей открыть двери без отмычек в оригинале хватало!

 

Да, через UnrealScript.

 

Хотя в идеале конечно хотелось бы переместить некоторые функции в C++, ту-же систему флагов, добавить расширенный Play/Stop sound и некоторые преобразования, которые сложно сделать на UnrealScript. Но для начала нужно просто собрать тестовый пример и проверить как всё это работает.

Примеры есть? Интересно вообще, как это всё из скрипта будет вызываться...
Ссылка на комментарий

В начале класса его нужно объявить как Native.

Затем в скрипте объявляется Native функция, при компиляции UCC автоматически генерирует .h файл.

Class DeusExGameInfo extends GameInfo
 Native;

native function int SampleNativeFunction(int i,string s,vector v);

Если вместо function написать event, то эту функцию можно вызвать из C++ кода.

event SampleEvent(int i)
{
    BroadcastMessage("We are in SampleEvent in UnrealScript i="$i);
}

UT2004_NativePackage_Template.zip

Ссылка на комментарий

Ага, нативный класс, и даже шаблон заголовочного файла генерится - удобно.

Однако заголовочные файлы в папке Engine весьма странные... какой-то мусор в начале и бред в середине Engine.h, в остальных файлах местами тоже кусков не хватает, куча объявлений методов классов вне классов...

Изменено пользователем MVV
Ссылка на комментарий

Вот еще вариант заголовков для UT2004.

https://yadi.sk/d/BiCjLcsR3KUkJu

 

Еще есть исходники движка, но от другой игры (на основе UE2.5)

Изменено пользователем Вероника
Ссылка на комментарий

Удалось собрать второй. С первым тоже чуть продвинулся - в другой подпапке нашлись более-менее нормальные подключаемые файлы. Но теперь не хватает файла SampleNativePackageClasses.h, который отражает класс из скрипта.

Изменено пользователем MVV
Ссылка на комментарий

Насколько я понял, методы такого класса будет видно в таблице экспорта модуля, поэтому переименовывать уже просто так нельзя.

 

Скомпилировалось, но куча ошибок линковки. Ощущение, что H-файлы (в папках Inc) и LIB-файлы (Core.lib, Engine.lib) неконсистентны.

Изменено пользователем MVV
Ссылка на комментарий

Не собирается же, проблема с LIB-файлами. А работает ли, сам проверить всё равно не смогу.

 

От второго примера файлы пробовал подключать - еще до линковки куча ошибок всплывает.

Изменено пользователем MVV
Ссылка на комментарий

Выяснил для себя, что SDK для UT2004 для сборки нативных дополнений поставлялся только обладателям лицензии (и найти утекший с ходу не удалось, так что, возможно, исходники другой игры на UE 2.5 могут помочь). Среди выложенных пакетов есть как похожие/одинаковые файлы, так и совершенно разные (и непонятно, какой из них более правильный). Два последних примера собираются, но они не используют иерархию классов AActor, от которой наследуется семпл-класс ASampleClass.

 

Из 25 неразрешённых зависимостей почти все удалось разрешить исправлением их сигнатур в заголовочных файлах (где const недоставало, где void* вместо указателя на конкретный класс, где вообще параметра не хватало), однако одну функцию в принципе не смог найти в либах Core.lib и Engine.lib (и библиотеках старенького UT99, в которых есть множество других искомых функций), кроме того, есть сомнения насчёт того, как оно будет работать, если где-то в списке объявлений виртуальных функций произойдёт сдвиг, т.к. их индексы в таблице изменятся... Ощущение, что SDK нужен для конкретной версии, хотя, возможно, всё не так строго, если эти места не изменились.

 

Функция, которую я не нашел (последняя ошибка линковки, из-за которой семпл не собирается, причем в либах нет ни SetVolumes, ни SetVolumes2):

public: virtual void __thiscall AActor::SetVolumes2(class TArray<void *> const &)
Выложил сюда то, что получилось.

 

Выложи, пожалуйста, свои Core.dll и Engine.dll, посмотрю, есть ли там эта функция, и вообще на структуру таблицы виртуальных функций класса AActor.

Изменено пользователем MVV
Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...