Перейти к публикации
Планета 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). И тэги теперь убираются.

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

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

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

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

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

Войти

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

Войти сейчас

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