Перейти к содержимому


Фотография

Предметы в инвентаре и их размер (GMDX)


Сообщений в теме: 9

#1 Icegriffon

Icegriffon

    Riot cop

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 02 Январь 2019 - 23:30

С Наступившим 2019-м всех, кто прочтет!

 

Есть вопрос по редактированию GMDX. Заметил, что некоторые предметы занимают в инвентаре иное количество слотов, чем в оригинале (тяжелое оружие). Пытался в UnrealEd прописывать другие размеры иконкам оружия, но сам такого эффекта получить не смог. Хотелось бы знать, как менять "размер" предметов (количество занимаемых слотов, форму) в инвентаре.

 

Второй вопрос - возможно ли прописать предметы-трофеи с тел убитых\оглушенных врагов? Заданные списком определенные предметы, с заданным шансом на появление.

 

Извиняюсь, если такие вопросы не совсем подходят к этой теме.



#2 Вероника

Вероника

    ~Лучшая жена~

  • Модераторы
  • PipPipPipPip
  • 2 682 сообщений
  • Откуда: Planet Deus Ex

Отправлено 03 Январь 2019 - 02:24

Количество занимаемых ячеек в инвентаре определяется переменными InvSlotsX и InvSlotsY. Их нужно изменить в defaultproperties нужного класса и пересобрать пакет.

 

Можно, у ScriptedPawn есть массив

var(Inventory) InventoryItem InitialInventory[8];  // Initial inventory items carried by the pawn

Труп получает содержимое инвентаря от ScriptedPawn через функцию AddInventory().


Иди за мной!

Давай!

Быстрее!


#3 Icegriffon

Icegriffon

    Riot cop

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 03 Январь 2019 - 04:31

Благодарю за оперативные ответы!

Ранее я пробовал экспортировать только класс нужного предмета, редактировать его (те самые строки) и затем подключать как свой package, но в игре эффекта не было...

Пересобрать пакет, (ucc make) к сожалению, почему-то получилось с оригинальными файлами, - спасибо, в игре сработало! - и не получается с модификацией - в окошке cmd операция прерывается из-за каких-то ошибок.

В конце есть строки:

 

Compiling DeusExPlayer

...DeusExPlayer.uc <12656> : Error, can't find Sound 'bouncemetal'

Failed due to errors.

 

Я в этом пока очень плохо разбираюсь :(



#4 Вероника

Вероника

    ~Лучшая жена~

  • Модераторы
  • PipPipPipPip
  • 2 682 сообщений
  • Откуда: Planet Deus Ex

Отправлено 03 Январь 2019 - 05:43

Официальное руководство:

 

Setting up GMDX with the Unreal Editor

If you haven't already, install Deus Ex & GMDX. Also install the Deus Ex SDK (google it).

Alternatively instead consider using the DX EDITING PACK: https://yadi.sk/d/PVAf0wsC3NzgkX

This is handy, as in addition to the SDK it comes with various tools such as WOTGreal exporter which enables you to export assets from packages.

 

1. remove or delete the DeusEx.u file in ...\DeusEx\HDTP\System.

2. Copy and place everything from the ...\DeusEx\GMDXv9\System AND the \DeusEx\HDTP\System folders into ...\DeusEx\System.

3. In ...\DeusEx\System find the DeusEx.ini file, open it and under [Editor.EditorEngine] your EditPackages list should look this (copy-paste the below):

EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=Fire
EditPackages=IpDrv
EditPackages=UWindow
EditPackages=UBrowser
EditPackages=Extension
EditPackages=DeusExUI
EditPackages=ConSys
EditPackages=DeusExConversations
EditPackages=DeusExSounds
EditPackages=DeusExItems
EditPackages=DeusExDeco
EditPackages=DeusExCharacters
EditPackages=HDTPCharacters
EditPackages=HDTPItems
EditPackages=HDTPDecos
EditPackages=HDTPPapers
EditPackages=HDTPBookOpen
EditPackages=HDTPBookClosed
EditPackages=MPCharacters
EditPackages=DeusExText
EditPackages=IpServer
EditPackages=ShifterEX
EditPackages=GMDXSFX
EditPackages=GMDXUI
EditPackages=GameMedia
EditPackages=FOMOD
EditPackages=DeusEx
EditPackages=Models

4. Copy GameEffects.utx in DeusEx\GMDXv9\Textures AND HDTPAnim.utx in DeusEx\HDTP\Textures into DeusEx\Textures. You should now be able to open GMDX's maps and packages in the Unreal Editor.

 

Exporting DeusEx.u classes to be used for programmers

 

1. do the above, get GMDX setup in the editor. (alternatively, wait for source code release, which is not guaranteed at this time).

2. in the editor interface, navigate to the class/texture etc browser on the right. Use the drop-down menu to select 'classes' if it isn't on the classes list already.

3. Click the Export All button. Be sure you do this for actors/classes, not textures or anything else.

4. All DeusEx.u classes/scripts will now be located in ...\DeusEx\DeusEx\Classes Compiling Classes

 

Once/if you have fiddled with the classes you just exported above and added new code, you now need to compile them into a new DeusEx.u. Delete the DeusEx.u file in ...\DeusEx\System. Now pull up a command prompt (type "command prompt" in you computer's/OS's search bar) and go to your ...\DeusEx\System directory. To navigate to it use the 'cd' command. Example:

cd C:\DeusEx\System

To then start the compile, type in:

ucc make

...press enter and wait for it to do its thing. Once it is finished it will present you with a Y/N prompt. It doesn't matter what you press here. Press the any key! :)

Always delete the DeusEx.u in ...\DeusEx\System before compiling (as a new DeusEx.u in this folder is what the compiler is attempting to make) and also make sure there are no other DeusEx.u files in your Deus Ex directory that are conflicting with the compile (HDTP's DeusEx.u gave me trouble back in the day. just deleted it and the compile worked).


Иди за мной!

Давай!

Быстрее!


#5 Icegriffon

Icegriffon

    Riot cop

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 03 Январь 2019 - 10:56

Еще раз спасибо!

Пункт 4 я упускал - теперь получилось.

 

По предметам у НПС - прописывал в InitialInventory некоторые предметы, боеприпасы, но в игре с врагов одни боеприпасы в прописанном количестве не берутся, другие - не берутся вовсе. У коммандос MJ12 прописанные предметы берутся все, а у обычных их бойцов - только те, что были прописаны до изменений...

И, вроде бы, вероятность при всем этом не задается - предметы либо появляются стопроцентно, либо нет?


Сообщение отредактировал Icegriffon: 03 Январь 2019 - 11:25


#6 Вероника

Вероника

    ~Лучшая жена~

  • Модераторы
  • PipPipPipPip
  • 2 682 сообщений
  • Откуда: Planet Deus Ex

Отправлено 03 Январь 2019 - 11:56

Посмотрите функцию DeusExCarcass > function Frob(Actor Frobber, Inventory frobWith)

В ней прописано сколько патронов и для чего выпадает.

Spoiler

 

Более подробно я не разбиралась что там и как работает.


Иди за мной!

Давай!

Быстрее!


#7 MVV

MVV

    Archangel/1B

  • Пользователи
  • PipPipPip
  • 303 сообщений
  • Откуда: Ростов-на-Дону

Отправлено 03 Январь 2019 - 20:52

Эта цепочка сравнения почему-то напомнила индусский код...
if (bValue == true) {
    ...
}
else if (bValue == false) {
    ...
}
else {
    ...
}
А тут сначала мы проверяем все гранаты, а потом в конце проверяем, что у нас не граната))

Сообщение отредактировал MVV: 03 Январь 2019 - 20:53

Оригинальные русские шрифты для Deus Ex (скриншот)

Ищите во всем хорошее. Плохое всплывёт само...

#8 Icegriffon

Icegriffon

    Riot cop

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 03 Январь 2019 - 21:59

Для меня это скорее китайская грамота :) Так, куда там я положил тот метод научного тыка...

 

 А тут сначала мы проверяем все гранаты, а потом в конце проверяем, что у нас не граната)) 

 

Когда-то слышал еще анекдот: перед сном программист ставит рядом стакан с водой - на случай, если проснувшись, захочет пить, и пустой стакан - на случай, если не захочет.



#9 Вероника

Вероника

    ~Лучшая жена~

  • Модераторы
  • PipPipPipPip
  • 2 682 сообщений
  • Откуда: Planet Deus Ex

Отправлено 04 Январь 2019 - 02:25

Чтобы подбирать больше патронов с трупов, поменяйте

W.PickupAmmoCount = Rand(4) + 1;

на

W.PickupAmmoCount = Rand(4) + нужное кол-во (20);

И для штурмовой винтовки:

  else if (W.IsA('WeaponAssaultGun'))
                  W.PickupAmmoCount = Rand(5) + нужное кол-во (20);

В DXR все гранаты происходят от GrenadeWeapon ))


Иди за мной!

Давай!

Быстрее!


#10 Icegriffon

Icegriffon

    Riot cop

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 05 Январь 2019 - 11:24

Спасибо, интересно попробовать.

Но вообще, говоря о трофеях, изначально думал о другой идее.

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

Так, в UEd я видел скрипт разрушаемых контейнеров, из которых может с заданной вероятностью выпасть лабораторная колба, и появиться крыса. Сейчас экспериментирую с появлением при разрушении других вещей. Интересно, насколько большой список разных предметов можно прописать...Правда, уже есть одна проблема - предметы спавнятся, кажется, независимо друг от друга, а желательно, чтобы спавнился только один "пункт" из списка. Но если прописать штук семь-восемь вариантов с достаточно малым шансом, то выглядит приемлемо - обычно появляется какой-то один предмет, если вообще появляется.

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

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


Сообщение отредактировал Icegriffon: 05 Январь 2019 - 11:37




Ответить



  
IPB Skin By Virteq