Правда, дальше начинаются нюансы: одному надо, чтобы вещи занимали объем как в дьябле по клеткам, другому - чтобы было ограничение по весу, а на объем пофиг, третьему - чтобы было ограничение на количество слотов, а на объем и вес пофиг.
Вы таки знаете, мне кажется, что если кто-то хочет сделать на здуме что-то, для чего здум категорически не предназначен, то он просто обязан разбираться в извращениях и геймдеве. То есть как вадахолик — напишите себе инвентарь сами.
Shadowman:
Опять же, как я понимаю, придется менять декорэйт самих вещей, чтобы они сочетались с инвентарем, где-то же надо прописывать условия, поместится вещь в слот, или все занято, и т.п.
Стена текста:
Скрытый текст:
А его придётся не менять, а создавать с 0. Во-первых, делается где-нибудь массив, описывающий свойства вещей, и OPEN скрипт который их регает при загрузке. Например.
script "Inventory_VeryVeryInit" OPEN
{
// function void I_RegisterItem(str readablename, str actorname, str spritename, int width, int height)
I_RegisterItem("Double Barreled Shotgun", "ASuperShotgun", "INVSSG", 2, 1);
I_RegisterItem("Shotgun Shells", "AShells", "INVSHL", 1, 1);
}
После чего эти шмотки приобретают определённый индекс, который становится их уникальным идентификатором (так, 0 = ссг, 1 = шеллы), а также в этом же массиве по id сохраняется высота и ширина каждого итема в клетках, его спрайт, и возможно ещё какие-нибудь данные.
Дальше остаётся сделать ноклип-актора ASuperShotgun : CustomInventory, который будет делать четыре вещи: 1. лежать на карте. 2. иметь в стейте Pickup проверку типа ACS_NamedExecuteWithResult("Inventory_IsPickedUpFromInventory"). Если 0, то поднимать итем нельзя (т.е. игрок пробежал по карте и случайно коснулся). итемы можно поднимать только через инвентарь!!! при открытом окне инвентаря перетянуть мышью с карты. потому что игрок должен сознательно выбрать на какое место положить итем. 3. при поднимании игроком через интерфейс инвентаря давать итем id=0 4. в стейте Use должно быть прописано что происходит, когда игрок "использует" итем из инвентаря (даблклик либо перетягивает на иконку персонажа либо ещё как-нибудь). Например, A_GiveInventory("SuperShotgun"). Работает это следующим образом: В ACS выставляется переменная PickedUpFromInventory=true. После чего Thing_Remove() актора на карте, GiveInventory("ASuperShotgun") (гиве сработает, потому что мы выставили, что поднимаем из инвентаря), UseInventory("ASuperShotgun"), PickedUpFromInventory=false.
Перетаскивание акторов мышью с карты в инвентарь с точки зрения кода это помесь этого и этого.
Извиняюсь за стену текста заранее. В общем щас сижу потихоньку такую систему ковыряю. Доковыряю, покажу. Только я не уверен когда я её доковыряю, в плане даты. От пары дней до недели. (а может вообще забью, если не будет повода продолжать. в данный момент мотивация — потренироваться в извращениях и всем-всем показать.)
ZZYZX Тогда учти, что т.к. дум по умолчанию игра динамичная, то "для подбора вещей в инвентарь" нужно замораживать время, после выключения инвентаря - размораживать. иначе практически толку мало будет: в какой-нибудь битве особо не пособираешь предметы, когда в тебя летят всякие файрболлы и бегут толпы зверья.
Так это не для дума, а для рпг какой-нибудь. В здуме заморозка времени неадекватно работает. Морозит только акторов, да и то не всех. У вадахолика например, с его инвентарём, именно так подбор и происходит насколько я понял. Это можно обойти, если выкинуть диаблоподобие и сделать просто список вещей с мышей и количеством. Но тогда это будет почти то же самое, что и в здуме встроенное, только можно в контейнерах ковыряться.
Monsterooovich:
Или лучше вот это сразу.
Проще руками, если честно. По разным причинам. Во-первых, у твоей либы фатальный недостаток, а во-вторых мой гуй написан по немного другому принципу и с твоими ректами его сложно будет состыковывать.
ZZYZX Основные недостатки здум инвентаря по мне это: - ограниченное 1 строкой количество слотов. Можно двигаться только влево-вправо, но нельзя сделать например 3 ряда слотов и задействовать бегунок вверх и вниз. - слишком мелкие слоты, т.к. привязаны к разрешению основного хада, который обычно ставят высоким. Если б слоты можно было бы нарисовать побольше, чтобы вещи не разглядывать под микроскопом. в остальном здум инвентарь вполне устраивает, танцы с размером вещей и клеточками - это уже для извращенцев.
alekv Ну дьяблоподобие инвентаря это не самая страшная беда. Главное чтоб он функционировал. Помню когда качал твой инвентарь мне он кстати очень понравился. Можно кстати стиль инвентаря более скажем думовский придумать. Например сделать фон инвентаря на логе UAC. Да и если вспомнить то в видео у него был инвентарь очень похожий на твой. Внешне конечно
Нехило так автор провернул с рендером Гоззы. И не поленился клепать модели для почти каждого участка на мапе. Есть подозрение, что он прибегнул к модификации самого порта. Главное, конечно, чтобы оно не тормозило из-за обилия спрайтов/партиклов на одном квадратном сантиметре локации. Еще очень радует явная работа с движением камеры игрока. В общем, 10 Кармаков из 10 за лютое преобразование графики
Что-то новые скрины жестко заблюрены и темные.. Но хорошо смотрятся.
soviet_man:
Нехило так автор провернул с рендером Гоззы. И не поленился клепать модели для почти каждого участка на мапе. Есть подозрение, что он прибегнул к модификации самого порта.
Там далеко не на каждом участке 3д модели) Стены, пол, потолок, трава это не 3д модели.. Врятли он модифицировал сам движок т.к. на скринах нет чего-то что не может дефолтная гозза.
Мне вот кажется что он шейдер свой какой-то писал, вот это вполне может быть И так же мне кажется что это дело будет под гоззу 2х. т.к. не представляю как это все может работать на старой гоззе без тормозов(хотя если там 3д полов по минимуму и локации будут как дефолтные дум коридоры...) Zveraboy Главное что бы оно кому-то было надо иначе все бессмысленно) А свой инвентарь я написал вдохновившись total chaos.. ранее я думал что не реально на ацс инвентарь замутить, увидел ролик челюсть отвисла... я вообще думал что это на дум 3 движке или просто прикол такой пока глубже не копнул.
Это да. Но в одном скрине, помню, был очень эффектно сделан решетчатый вывернутый и раздолбанный пол. Такое 3Д слопами очень геморно сделать. Хотя в целом, при помощи 3д полов можно сделать качественные прямые полые трубы. (Я как-то такое уже мутил) Еще чего не нужно заменять на 3Д (как это было в том же дум3) - это ландшафт.
soviet_man Да многое можно и с 3д моделями и без, просто у человека талант в левел дизайне.. ) На том же юнити в стиме полно отборного говна с супер крутыми новыми фичами. Автор думаю потратил очень много времени на расстановку больших 3д моделей т.к. они в гоззе пропадают когда игрок отворачивается от них(на одном из видео даже видно как 3д лучи света резко пропадают когда игрок заходит в тунель или что там.. )В последней версии гоззы нет надобности делать свет 3д моделями, выгоднее юзать плоские спрайты.. в целом даже дома с их помощью выгоднее строить к примеру собрать 1 раз дом как конструктор, выставить коллизию и сохранить в префаб.
Добавлено спустя 11 минут:
Новый ролик не так впечатлил как старые хз почему) Ожидал чего-то другого.. Головой матыляет слишком сильно(всегда бесило как в дум 3д когда бил имп, камера гг вертелась как сумасшедшая..) По дизайну круто все(хотя показывал старый ролик знакомому профессиональному левел дизу, тот раскритиковал т.к. все темное, черное, заблюрено )
Меня еще впечатлил туман и лучи света!!! Мне кажется он как-то заскриптовал лучи света.. и туман такой объемный, может туман это рендер 3д модели с альфа каналом ?)
Zeberpal_98 в последних гздумах ввели возможность делать спрайты не вертящимися вслед за игроком. раньше это нужно было делать лайндефами, теперь проще. а ещё они умеют вертеться в любой плоскости.