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

DEUS EX: REBORN // UT2004 MOD


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

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

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

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


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

Теперь навыки сохраняются после перехода на другую карту :D Вот и пригодились флаги Int ))

Попробую сделать также с аугментациями.

Интересное решение. Но вообще наверное описание состояния игрока (здоровья, навыков, приращений) можно структурку в DeusExGlobals поместить, которую при сохранении помещать в SaveInfo, а при загрузке - обратно в DeusExGlobals. А что-то сложное (цели, заметки, карты, инвентарь) - в нативный объект в GameManager. Изменено пользователем MVV
Ссылка на комментарий
  • Ответы 773
  • Создано
  • Последний ответ

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

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

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

Попробую так. Потому что с аугментациями все оказалось немного сложнее ))

 

Год назад меня посетила мысль скачать движок UE2Runtime чтобы посмотреть что это такое. 23 или 25 апреля я начала преобразовывать карты. В дальнейшем (примерно через месяц) все было перенесено уже на движок UT2004.

Много чего было сделано, и еще много чего нужно сделать )))

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

Для каждой ячейки аугментаций, насколько я понимаю, вполне достаточно целого числа, надо лишь хранить номер приращения и уровень:

 

AugNone = 0
AugLight = 0x0100
AugDefense = 0x0200
AugMuscle = 0x0300
AugRadarTrans = 0x0400
AugDrone = 0x0500
AugCombat = 0x0600
AugAqualung = 0x0700
AugSpeed = 0x0800
AugBallistic = 0x0900
AugCloak = 0x0A00
AugDatalink = 0x0B00
AugEMP = 0x0C00
AugEnviro = 0x0D00
AugIFF = 0x0E00
AugShield = 0x0F00
AugStealth = 0x1000
AugTarget = 0x1100
AugHeartLung = 0x1200
AugPower = 0x1300
AugHealing = 0x1400
AugVision = 0x1500
И значение в ячейке будет slot = augId + level, и обратно augId = slot & 0xFF00, level = slot & 0x00FF. Если это хранить во флагах, то на каждый слот надо по одному флагу (AugSlotCranial1, AugSlotEyes1, AugSlotArms1, AugSlotSubdermal1, AugSlotSubdermal2, ...), или те же самые слоты можно в виде полей структурки описать. Изменено пользователем MVV
Ссылка на комментарий

Нужно хранить эти свойства:

 bool bHasIt (есть у игрока)
 bool bBoosted (возможно улучшение через Syntetic Heart)
 bool bIsActive (активно)
   int HotKeyNum (номер клавиши)
   int currentLevel (уровень)
Ссылка на комментарий

Нужно хранить эти свойства:

 bool bHasIt (есть у игрока)
 bool bBoosted (возможно улучшение через Syntetic Heart)
 bool bIsActive (активно)
   int HotKeyNum (номер клавиши)
   int currentLevel (уровень)

 

bHasIt и HotKeyNum связаны между собой, поэтому можно лишь передавать клавишу, а если она есть давать флаг в наличие

bBoosted - по сути глобальная переменная, привязанная к приращению, зачем ее сохранять?

 

Вот и получается, что сохранять нужно лишь 3 переменные:

bIsActive

HotKeyNum

currentLevel

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

Ок, тогда пусть лучше идентификаторы приращений будут однобайтные:

AugSpeed = 0x00
AugTarget = 0x01
AugCloak = 0x02
AugBallistic = 0x03
AugRadarTrans = 0x04
AugShield = 0x05
AugEnviro = 0x06
AugEMP = 0x07
AugCombat = 0x08
AugHealing = 0x09
AugStealth = 0x0A
AugIFF = 0x0B
AugLight = 0x0C
AugMuscle = 0x0D
AugVision = 0x0E
AugDrone = 0x0F
AugDefense = 0x10
AugAqualung = 0x11
AugDatalink = 0x12
AugHeartLung = 0x13
AugPower = 0x14
AugNone = 0xFF (если надо сослаться на отсутствие приращения)
В слотах приращений можно хранить эти идентификаторы. Признаки активности и уровни можно уже связывать с конкретными приращениями, банально их можно хранить в виде массивов, индексы в котором будут эти самые идентификаторы. Ну а для экспериментирования - можно банально во флагах AugLightActive, AugLightLevel, ... Или для каждого приращения во флаге уместить и уровень, и активность, и номер ячейки в теле: flag = (augId << 24) + (augCellIndex << 16) + (level << 8) + (isActive). Тогда извлекаем значение флага AugLight в переменную flag, ((flag >> 16) & 0xFF) - индекс ячейки, ((flag >> 8) & 0xFF) - уровень, (flag & 0xFF) - активность. И на каждое приращение понадобится только по одному флагу.

Флаг возможности усиления синтетическим сердцем, как было сказано - константный параметр самого приращения, можно возвращать методом класса приращения, его нет смысла хранить отдельно. При особом желании можно в константном массиве какого-нибудь класса хранить эти флаги.

 

Номер клавиши вообще не вижу смысла связывать с приращениями. Или вы имеете в виду номер ячейки, которой можно управлять командой ActivateAugmentation? Тогда для этого надо просто глобально хранить массив идентификаторов приращений, и по идентификатору обращаться к слоту и переключать состояние... Ну или если во флагах, то во флаге AugSlot12 хранить значение AugLight, и то при условии, что нигде в User.ini эта привязка не задаётся, т.к. тогда её надо читать оттуда, а не сохранять с игрой.

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

bHasIt всё-же нужно сохранять, ведь это признак того, есть у игрока какое-то приращение или нет. Сейчас при попытке сохранить и восстановить приращения происходит что-то невообразимое: игроку даются все приращения, все они разом включаются и перестают работать. Явно где-то ошибка, но пока не пойму где.

 

Добавлено событие SupportActor как в оригинале, и работает почти точно также. Если у декорации bCanbeBase=false, то игрок будет с неё сброшен. Также теперь если на игрока что-то падает, то этот объект больше не прилипает к нему. Еще была дополнена функция SetPhysics как в оригинале + еще один новый параметр, и теперь обломки сломанных предметов не застревают в стенах )))

 

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

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

bHasIt всё-же нужно сохранять, ведь это признак того, есть у игрока какое-то приращение или нет.

Но ведь отсутствие флага или 0 в качестве уровня приращения однозначно говорит о том, установлено ли у игрока это приращение. Тут сложность при создании экземпляров класса Augmentation при загрузке игры или смене локации?

 

О-па, в AugmentationManager.uc уже даже есть уже перечисление классов приращений, лучше тогда эти индексы использовать. Хм, и они хранят приращения игрока в виде односвязного списка, причём next засунули в само приращение... В общем, по идее надо в этот менеджер добавить функцию воссоздания приращений из флагов.

 

 

А как работает взятие предмета в руки? Разве нельзя имитировать это взятие при смене локации?

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

Эти подсказки -- особенность UT2004. Я только сделала им оформление в похожем стиле ))

 

 

А как работает взятие предмета в руки? Разве нельзя имитировать это взятие при смене локации?

PutCarriedDecorationInHand()

Но у меня это не работает. В оригинале работает. Я проверяла разные варианты, и один раз даже почти что-то получилось, но тогда декорацию было невозможно бросить: DeusExPlayer не знал что CarriedDecoration это то что сейчас присоединено к нему. Сейчас пока так: после перехода декорация падает на землю, но если нажать "Бросить", то она будет брошена в указанное место ))

 

Добавлены полосы прокрутки из оригинала. Бегунок пришлось перерисовать, иначе появлялись ненужные полосы.

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

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

Эти подсказки -- особенность UT2004. Я только сделала им оформление в похожем стиле ))

Круто наверное будет, если подсказки будут, как у рамки, когда на предмет или существо наводишь, где пишется, что/кто это.
Ссылка на комментарий

 

Звуковые эффекты на кнопках интерфейса очень громкие посравнению с прочими. Ползунки выглядят отлично.

Попробую разобраться, от чего это зависит (если не от громкости звука в настройках).

 

Круто наверное будет, если подсказки будут, как у рамки, когда на предмет или существо наводишь, где пишется, что/кто это.

Как вариант для улучшения IFF?

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

Как вариант для улучшения IFF?

Не, наоборот, сделать у всплывающих подсказок такой же шрифт и фон, как у подсказок IFF:)

 

Хм, а почему в ролике соевая еда только 2 очка лечит? Она же в оригинале 5 лечила:)

 

По существу, от алкоголя такие должны быть эффекты: сначала шаткость, потом шаткость и ходьба только на четвереньках (т.к. на ногах уже не стоит), а потом вообще упасть и валяться. Ну и постепенно трезветь, если пить уже нечего:))))

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

Точно такой-же как в оригинале. Только фон рисуется иначе ))

 

Почему бы не улучшить внешний вид игры, раз уж используется более мощный движок? :)

 

Я по чуть-чуть моделю новые декорации (технику и дронов, например) и уже вышел за рамки того, что было в оригинале. Например, воздушных ботов и гражданские\военные средства передвижения.

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

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

Соевая еда исправлена ))

 

Почему бы не улучшить внешний вид игры, раз уж используется более мощный движок? :)

Я совсем забыла про Motion Blur )) Можно его задействовать. Или например при тяжелых повреждениях.

 

Не знаю, была ли польза от вкладки "Логи" в оригинальной игре, но мне точно пригодится. Есть счетчик сообщений. Максимум пока 200.

 

 

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

 

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

Добавлена вкладка "Изображения". 4 части изображений я соединю в одну текстуру, так что пока показывается только верхний левый угол )). На вкладку "Logs" добавлена функция поиска.

Допустимый размер картинки увеличен с 400x400 до 512x512.

 

Кто-нибудь пользовался заметками на изображениях в оригинале?

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

Исправлены все картинки, добавлены заметки для проверки (будут полупрозрачные).

Заметки удаляются правой кнопкой мыши (так проще и быстрее), а вместо кнопки "Удалить" будет подсказка ))

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

Добавлены цели и заметки. И обнаружилась одна неприятная проблема: текст заметок нельзя объявить как Travel, и придется искать

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

Либо расширять пределы ExportTravel.

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

Думаю что да. Сейчас пока обдумываю как обойти появившееся ограничение ))

 

Добавить поддержку мыши оказалось куда проще ))

Сейчас так: скорость прокрутки колёсиком мыши небольшая, но если удерживать CTRL, то скорость увеличивается (примерно вдвое).

 

С сохранением аугментаций буду работать когда напишу для них графический интерфейс, так намного проще и быстрее. Три вкладки осталось сделать (Здоровье, Навыки, Приращения). Но сначала их нужно перерисовать под разрешение 800x600.

 

Сейчас сохраняю заметки в DeusExGlobals, все работает. Теперь нужно их как-то сохранять и считывать при сохранении и загрузке игры. Скорее всего в Unreal Package ))

И теги нужно учитывать, сейчас заметки отображаются как есть :D

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

Теперь можно получать цели и сопутствующие заметки, а также выполнять их (на практике не проверяла). Заметки можно удалять, но не так как в оригинале, а немного иначе. Если в тексте датакубов содержится или , они будут заменены на имя игрока (JC Denton или JC). И тэги теперь убираются.

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

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

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

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

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

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

Войти

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

Войти сейчас

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