Icegriffon Опубликовано: 2 января 2019 Рассказать Опубликовано: 2 января 2019 С Наступившим 2019-м всех, кто прочтет! Есть вопрос по редактированию GMDX. Заметил, что некоторые предметы занимают в инвентаре иное количество слотов, чем в оригинале (тяжелое оружие). Пытался в UnrealEd прописывать другие размеры иконкам оружия, но сам такого эффекта получить не смог. Хотелось бы знать, как менять "размер" предметов (количество занимаемых слотов, форму) в инвентаре. Второй вопрос - возможно ли прописать предметы-трофеи с тел убитых\оглушенных врагов? Заданные списком определенные предметы, с заданным шансом на появление. Извиняюсь, если такие вопросы не совсем подходят к этой теме. Ссылка на комментарий
LoadLine Calibration Опубликовано: 2 января 2019 Рассказать Опубликовано: 2 января 2019 Количество занимаемых ячеек в инвентаре определяется переменными InvSlotsX и InvSlotsY. Их нужно изменить в defaultproperties нужного класса и пересобрать пакет. Можно, у ScriptedPawn есть массив var(Inventory) InventoryItem InitialInventory[8]; // Initial inventory items carried by the pawnТруп получает содержимое инвентаря от ScriptedPawn через функцию AddInventory(). Ссылка на комментарий
Icegriffon Опубликовано: 3 января 2019 Автор Рассказать Опубликовано: 3 января 2019 Благодарю за оперативные ответы!Ранее я пробовал экспортировать только класс нужного предмета, редактировать его (те самые строки) и затем подключать как свой package, но в игре эффекта не было...Пересобрать пакет, (ucc make) к сожалению, почему-то получилось с оригинальными файлами, - спасибо, в игре сработало! - и не получается с модификацией - в окошке cmd операция прерывается из-за каких-то ошибок.В конце есть строки: Compiling DeusExPlayer...DeusExPlayer.uc <12656> : Error, can't find Sound 'bouncemetal'Failed due to errors. Я в этом пока очень плохо разбираюсь :( Ссылка на комментарий
LoadLine Calibration Опубликовано: 3 января 2019 Рассказать Опубликовано: 3 января 2019 Официальное руководство: Setting up GMDX with the Unreal EditorIf 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/PVAf0wsC3NzgkXThis 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=Models4. 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\SystemTo 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). Ссылка на комментарий
Icegriffon Опубликовано: 3 января 2019 Автор Рассказать Опубликовано: 3 января 2019 (изменено) Еще раз спасибо!Пункт 4 я упускал - теперь получилось. По предметам у НПС - прописывал в InitialInventory некоторые предметы, боеприпасы, но в игре с врагов одни боеприпасы в прописанном количестве не берутся, другие - не берутся вовсе. У коммандос MJ12 прописанные предметы берутся все, а у обычных их бойцов - только те, что были прописаны до изменений...И, вроде бы, вероятность при всем этом не задается - предметы либо появляются стопроцентно, либо нет? Изменено 3 января 2019 пользователем Icegriffon Ссылка на комментарий
LoadLine Calibration Опубликовано: 3 января 2019 Рассказать Опубликовано: 3 января 2019 Посмотрите функцию DeusExCarcass > function Frob(Actor Frobber, Inventory frobWith)В ней прописано сколько патронов и для чего выпадает. else if ( (item.IsA('DeusExWeapon')) ) { //log("IS A DXWEAPON"); // Any weapons have their ammo set to a random number of rounds (1-4) // unless it's a grenade, in which case we only want to dole out one. // DEUS_EX AMSD In multiplayer, give everything away. W = DeusExWeapon(item); // Grenades and LAMs always pickup 1 if (W.IsA('WeaponShuriken') && passedImpaleCount > 0) { if (passedImpaleCount > 4) passedImpaleCount = 4; w.PickupAmmoCount = passedImpaleCount; if (w.PickupAmmoCount == 0) w.PickupAmmoCount = 1; PlaySound(Sound'DeusExSounds.Generic.FleshHit1',SLOT_None,,,,0.95 + (FRand() * 0.2)); } else if (W.IsA('WeaponNanoVirusGrenade') || W.IsA('WeaponGasGrenade') || W.IsA('WeaponEMPGrenade') || W.IsA('WeaponLAM') || W.IsA('WeaponHideAGun') && player.FindInventorySlot(item, True)) //CyberP: there we go. Now need to stop 1-4 rand for nades W.PickupAmmoCount = 1; //CyberP: I need to check if inventory is full and no nades else if (W.IsA('WeaponAssaultGun')) W.PickupAmmoCount = Rand(5) + 1.5; else if (W.IsA('WeaponGepGun')) W.PickupAmmoCount = 2; else if (!W.IsA('WeaponNanoVirusGrenade') && !W.IsA('WeaponGasGrenade') && !W.IsA('WeaponEMPGrenade') && !W.IsA('WeaponLAM') && !W.IsA('WeaponHideAGun')) //CyberP: no grenades. W.PickupAmmoCount = Rand(4) + 1; else if (W.Default.PickupAmmoCount != 0) W.PickupAmmoCount = 1; //CyberP: hmm } Более подробно я не разбиралась что там и как работает. Ссылка на комментарий
MVV Опубликовано: 3 января 2019 Рассказать Опубликовано: 3 января 2019 (изменено) Эта цепочка сравнения почему-то напомнила индусский код...if (bValue == true) { ... } else if (bValue == false) { ... } else { ... }А тут сначала мы проверяем все гранаты, а потом в конце проверяем, что у нас не граната)) Изменено 3 января 2019 пользователем MVV Ссылка на комментарий
Icegriffon Опубликовано: 3 января 2019 Автор Рассказать Опубликовано: 3 января 2019 Для меня это скорее китайская грамота :) Так, куда там я положил тот метод научного тыка... А тут сначала мы проверяем все гранаты, а потом в конце проверяем, что у нас не граната)) Когда-то слышал еще анекдот: перед сном программист ставит рядом стакан с водой - на случай, если проснувшись, захочет пить, и пустой стакан - на случай, если не захочет. Ссылка на комментарий
LoadLine Calibration Опубликовано: 3 января 2019 Рассказать Опубликовано: 3 января 2019 Чтобы подбирать больше патронов с трупов, поменяйте W.PickupAmmoCount = Rand(4) + 1;на W.PickupAmmoCount = Rand(4) + нужное кол-во (20);И для штурмовой винтовки: else if (W.IsA('WeaponAssaultGun')) W.PickupAmmoCount = Rand(5) + нужное кол-во (20);В DXR все гранаты происходят от GrenadeWeapon )) Ссылка на комментарий
Icegriffon Опубликовано: 5 января 2019 Автор Рассказать Опубликовано: 5 января 2019 (изменено) Спасибо, интересно попробовать.Но вообще, говоря о трофеях, изначально думал о другой идее.В оригинале, практически все полезные игровые предметы (оружие, экипировка, снаряжение, даже деньги) "приколочены гвоздями" на картах, и, не считая первых прохождений, игрок уже знает, где что он может достать, а где не может. Для меня интереснее, когда, исследуя все уголки игрового мира, имеешь маленький случайный шанс найти полезные вещи, которые там не всегда бывают, но могут найтись. Лишний стимул заглянуть в каждый уголок и перевернуть каждый камень, а не заученно пробегаться по полезным местам, игнорируя все остальное. Конечно, тут можно долго рассуждать о балансе и дисбалансе, но лично я для себя определился.Так, в UEd я видел скрипт разрушаемых контейнеров, из которых может с заданной вероятностью выпасть лабораторная колба, и появиться крыса. Сейчас экспериментирую с появлением при разрушении других вещей. Интересно, насколько большой список разных предметов можно прописать...Правда, уже есть одна проблема - предметы спавнятся, кажется, независимо друг от друга, а желательно, чтобы спавнился только один "пункт" из списка. Но если прописать штук семь-восемь вариантов с достаточно малым шансом, то выглядит приемлемо - обычно появляется какой-то один предмет, если вообще появляется.Но если найти в мусорном контейнере расходную отмычку, мультитул, ненужную кому-то батарейку, и даже кем-то припрятанную пачку распространенных у бандитов патронов, то снайперские винтовки и ракеты уже перебор. Потому возникла мысль, что было бы здорово иметь возможность случайно найти что-то у противников. Почему бы солдатам и бандитам не носить с собой иногда аптечку, модификатор для оружия, или даже второе оружие, или боеприпасы к нему? Но с трофеями пока не задалось.Может быть, есть и еще способы, но иду от простейшего - у разрушаемых контейнеров уже написан рабочий (и что важно, достаточно понятный) скрипт-пример, сами они расставлены много где, можно уже экспериментировать и проверять. Изменено 5 января 2019 пользователем Icegriffon Ссылка на комментарий
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас