Серый Волк 841 Опубликовано 19 Ноября 2016 Поделиться Опубликовано 19 Ноября 2016 Если сможете сделать такое - поделитесь результатами)был бы я программистом и вопросов бы у меня возможно было меньше... игра заполняет сетку только при открытии инва, т.е. игра будет знать об лишних итемах только в этом случае. тогда другой момент, игрок может наполнять инвентарь только открыв его, значит когда игрок кладет что-либо в инвентарь, игра этот процесс контролирует, и не допустит превышение лимита. А когда инвентарь закрыт, то лишнего там тем более не появится. Или я в этой схеме что-то не правильно понимаю? Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий
mortan 143 Опубликовано 19 Ноября 2016 Поделиться Опубликовано 19 Ноября 2016 @Серый Волк, когда инвентарь закрыт сеток формально не существует. Сетка не более чем простая визуализация. значит когда игрок кладет что-либо в инвентарь, игра этот процесс контролирует, и не допустит превышение лимита говорю же - игра в этот момент может проверить только вес. Ссылка на комментарий
Серый Волк 841 Опубликовано 19 Ноября 2016 Поделиться Опубликовано 19 Ноября 2016 игра в этот момент может проверить только вес. а может игра проверить тип/категорию/имя предмета и пропускать в инвентарь только указанные предметы? Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий
Serge! 127 Опубликовано 19 Ноября 2016 Поделиться Опубликовано 19 Ноября 2016 а может игра проверить тип/категорию/имя предмета и пропускать в инвентарь только указанные предметы?Хотите совет обоим? Почитайте этот форум внимательнее. Всё это уже давно решено и ... реализовано. Эх, молодо-зелено... Ссылка на комментарий
mortan 143 Опубликовано 19 Ноября 2016 Поделиться Опубликовано 19 Ноября 2016 (изменено) @Serge!, я что-то не видел ни одного проекта с нормальной реализацией. Решено? Тыкните носом, ибо то что я видел - костыли, а потом уже говорите про "молодо-зелено". Я хотел сделать переносной контейнер, знаете сколько информации я нашёл по этому вопросу? Целый нуль, хотя стоит поблагодарить некоторых людей за помощь - ваши намёки где искать очень помогли. а может игра проверить тип/категорию/имя предмета и пропускать в инвентарь только указанные предметы? сколько угодно , если хотите задать вопросы лично мне - го в лс, а то тема-то засоряется) правда я думаю нужно часть ответов и наблюдений оформить в связный текст и выложить куда-нибудь, дабы у таких как я вопросов больше не возникало - искать подобное поиском то ещё удовольствие. Изменено 19 Ноября 2016 пользователем mortan Ссылка на комментарий
Серый Волк 841 Опубликовано 19 Ноября 2016 Поделиться Опубликовано 19 Ноября 2016 (изменено) Всё это уже давно решено и ... реализовано скажу больше, это реализовано ПЫСами, пример - слоты, и оружейные, и быстрого доступа... я видимо не совсем правильно выразился, можно ли это реализовать на должном уровне, а не "костылями" и "заплатками"? Есть у меня одна мысля на тему сменных рюкзаков разного размера, похожих мыслей пока не встречал (хотя кроме этого форума особо нигде и не хожу). А заключается она в следующем: 1. убрать безлимит и сделать всего одну ячейку размером на весь инвентарь (можно с надписью "СПИНА") по аналогии с оружейными слотами (по сути инвентарь превратится в третий слот для единственного предмета - рюкзака, а при попытке положить предмет другого типа или еще один предмет - аналогия с оружейными слотами, вещь просто возвращается на место. 2. сам рюкзак можно сделать взяв за основу: переносной рюкзак и "контейнер для артов", на сколько ячеек или предметов внесешь в конфигуратор - на такое количество и будет "рюкзак", за счет этого можно разнообразить ассортимент. ЗЫ: ну вот и высказался, теперь можете пинать и тыкать носом... Изменено 20 Ноября 2016 пользователем Серый Волк Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий
Serge! 127 Опубликовано 19 Ноября 2016 Поделиться Опубликовано 19 Ноября 2016 @mortan, @Серый Волк, Прочитал. Мне надо врямя на подумать, а такого сегедня иет. Но, я обязательно отвечу. Без обид, надеюсь. 1 Ссылка на комментарий
AndreyGants 0 Опубликовано 20 Ноября 2016 Поделиться Опубликовано 20 Ноября 2016 Call of Chernobyl собирается из достаточно сильно изменных исходников на основе OpenXray. Вроде как репозиторий с исходниками вот: https://github.com/revolucas/X-Ray_CallOfChernobyl Правку сделать можно, но придется самому найти точку врезки. Гораздо проще добавить посылку инфопоршня в исходники. А скорее всего можно попросить добавить прямо автора - это одна строка в исходниках. Спасибо, а не можешь подсказать, что именно прописывать в исходники? В X-Ray Extensions код написан на asm. Ссылка на комментарий
Серый Волк 841 Опубликовано 20 Ноября 2016 Поделиться Опубликовано 20 Ноября 2016 Странная реакция... не хают, не пинают, и вообще ничего не говорят. Народ, по возможности, отпишитесь, пожалуйста, что думаете по поводу выше описанных мыслей об инвентаре. Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий
mortan 143 Опубликовано 21 Ноября 2016 Поделиться Опубликовано 21 Ноября 2016 есть ли функция для перезагрузки конфига итема? Если повторно вызывать функцию Load то она не очень хорошо работает - пушки перестают стрелять и спавнятся патроны) Ссылка на комментарий
abramcumner 1 157 Опубликовано 21 Ноября 2016 Поделиться Опубликовано 21 Ноября 2016 Спасибо, а не можешь подсказать, что именно прописывать в исходники? В X-Ray Extensions код написан на asm.UIPdaWnd.cpp: в функцию SetActiveSubdialog после строки: UITabControl->SetActiveTab( section ); добавить строку: InventoryUtilities::SendInfoToActor(section.c_str()); Ссылка на комментарий
Winsor 177 Опубликовано 21 Ноября 2016 Поделиться Опубликовано 21 Ноября 2016 (изменено) 1. убрать безлимит и сделать всего одну ячейку размером на весь инвентарь (можно с надписью "СПИНА") по аналогии с оружейными слотами (по сути инвентарь превратится в третий слот для единственного предмета - рюкзака, а при попытке положить предмет другого типа или еще один предмет - аналогия с оружейными слотами, вещь просто возвращается на место. все что написано далее - относиться к ТЧ. Количество ячеек не влияет на количество итемов в них. есть класс CUIDragDropListEx (на нем реализован любое визуальное отображение итемов в инвентаре)- ему все равно, сколько в нем ячеек прорисовано. хоть один итем на 5х5 ячеек. т.е. контролировать количество CUICellItem-ов в одном отдельно взятом CUIDragDropListEx - это задача не CUICellItem. Посмотрите, как реализована функция CUIInventoryWnd::ToSlot - вот там ответ на Ваш вопрос - "аналогия с оружейными слотами, вещь просто возвращается на место". реализация самого рюкзака на спине - 1) это отдельное окно, опять таки с CUIDragDropListEx 2) у того же CUIDragDropListEx его заполнение выполняется с помощью цепочки SetItem - в нем Вы сможете по каким либо признакам разрешать или запрещать добавлять итемы в CUICellContainer. Получить CInventoryItem с CUICellItem можно по полю m_pData 3) отображение в рюкзаке - я бы добавил для CUICellItem какой нибудь признак, отображать ли его в инвентаре, или в рюкзаке. единственное - надо выбрать либо из существующих, что сохраняются в сейве, либо добавить в класс CInventoryItem свой признак. я бы использовал m_eItemPlace - он сохраняется в сейве и подходит для такой задачи. Изменено 21 Ноября 2016 пользователем Winsor 1 1 Ссылка на комментарий
mortan 143 Опубликовано 22 Ноября 2016 Поделиться Опубликовано 22 Ноября 2016 подскажите, можно ли получить серверный CSE_ALifeDynamicObject зная его ID? Я вот не могу вспомнить что я для этого делал. Ну или на крайняк мне просто нужно получить серверный класс из клиентского. Ссылка на комментарий
Серый Волк 841 Опубликовано 22 Ноября 2016 Поделиться Опубликовано 22 Ноября 2016 @Winsor, судя по написанному идея имеет право на жизнь и даже реализуема, я правильно понимаю? все что написано далее - относиться к ТЧ.а к ЗП можно это применить? Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий
mortan 143 Опубликовано 22 Ноября 2016 Поделиться Опубликовано 22 Ноября 2016 интересно, а можно ли заставить итем полностью сбросить свои изменённые свойства на родные, из конфига?) Я тут делаю удаление апгрейдов из предмета - но вот писать под каждое изменяемое свойство функцию отмены что-то не очень хочется. Можно ли такое сделать если принудительно в оффлайн\онлайн отправить? Ссылка на комментарий
Winsor 177 Опубликовано 23 Ноября 2016 Поделиться Опубликовано 23 Ноября 2016 право на жизнь и даже реализуема - Да, почему нет. классы необходимые для этого есть. единственная проблема, над которой я сейчас размышляю - это научить CUIDragDropListEx принимать в себя не InventoryItems, а просто визуал объекта, секцию. спицифическое такое желание. Подходит ли это для ЗП? скорее всего да, разницы в классах я не изучал, но не думаю что очень сильно различаются. Можно ли такое сделать если принудительно в оффлайн\онлайн отправить - все зависит от того как Вы храните информацию о апгрейдах. в идеале - это отдельный список, который можно обнулять, и на основании которого у Вас применяются какие то свойства. если это отдельные поля объектов - то проще придумать наследуемую функцию, которая обнуляет эти параметры в своем классе и вызывает inherited. так что от архитектуры зависит. Иногда и отдельные функции под каждое свойство - проще чем то что я написал. 1 Ссылка на комментарий
mortan 143 Опубликовано 23 Ноября 2016 Поделиться Опубликовано 23 Ноября 2016 @Winsor, я ничего не менял - все функции написаны ПЫС. Я уже понял что лучше всего писать обратный код либо спавнить новый итем. Я кстати разобрался как получить ID предмета при спавне) Правда почему-то я не могу его найти функцией перебора итемов по id, но да ладно. Свойств у пушек дофига( Ссылка на комментарий
Winsor 177 Опубликовано 24 Ноября 2016 Поделиться Опубликовано 24 Ноября 2016 писать обратный код либо спавнить новый итем учтите только что большинство классов построены с атрибутом nocopyable, поэтому просто воспользоваться клонированием нельзя, надо писать свои методы переноса свойств старого итема на новый. Ссылка на комментарий
mortan 143 Опубликовано 24 Ноября 2016 Поделиться Опубликовано 24 Ноября 2016 @Winsor, зачем? Не вижу смысла даже - просто спавнишь новый итем,задаёшь ему износ как у старого и ставишь на него те же апгрейды за исключением тех которые нужно удалить. Всё работает, проблема в том что после этих манипуляций придётся каждый раз выбирать новый итем - в окне модификации продолжает отображаться старый. Я вам про одно,а вы мне про другое - я не понял каким боком тут "nocopyable" Ссылка на комментарий
Serge! 127 Опубликовано 28 Ноября 2016 Поделиться Опубликовано 28 Ноября 2016 @Winsor, Это не я сказал. Поэтому определитесь: кому Вы отвечаете? Внимательние и тщательнее. 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти