Перейти к содержанию
Планета Deus Ex
Планету Deus Ex грозится заблокировать Роскомнадзор
синтетикХер

DEUS EX: REBORN // UT2004 MOD

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

17 проголосовавших

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

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


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

Выраженность эффекта настраивается, от 0 до 128, чем меньше, тем больше. Для проверки было значение 5.

Поделиться сообщением


Ссылка на сообщение

Для создания системы сохранений нужен программист 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.

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

 

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

Изменено пользователем ВизГ

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Для создания системы сохранений нужен программист 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

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...