Перейти к контенту

Выбрасываемый рюкзак


Garry_Galler

Рекомендуемые сообщения

Выбрасываемый рюкзак


Описание мода:RealBags (Реальные рюкзаки)

Рюкзак вместе со всем хламом содержимым можно скинуть парой движений мышки.
Сброс сделан не на основе "горячих" клавиш, а постоянной кнопкой в инвентаре.(пока так)
Игрок получает возможность сбросить рюкзак со всем содержимым на землю в экстремальной ситуации. Но для этого необходимо наличие в слоте инвентаря активного рюкзака.

Описание нового варианта разработки "Выбрасываемый рюкзак".

RealBags (Реальные рюкзаки) v.1.0

Список изменений/нововведений:
1) Три рюкзака разных объемов, которые можно менять:
tactical_bag - тактический ранец(30 л)
combat_bag - боевой\рейдовый рюкзак(60 л)
combat_section_bag - боевой секционный рюкзак(120 л)
2) Три новых слота. Один - для активации рюкзака. В ножевой слот и слот детекторов можно прописать любые свои предметы.
3) Кнопка быстрого сброса.
4) Билдовский инвентарь. Ячеек на поясе - 18.
5) Патроны вешаются на пояс.

Изменено пользователем Garry_Galler
  • Нравится 2
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

MaZaHaKQ

я тоже делал типо такого

Сброс рюкзака? А выкладывал?

Rhadamanthus

Пожалуйста :-) Делал для себя, но решил выложить - может сгодится кому.

*********************************************************************

Если тема не под "Мастерскую" - то перекиньте ее в другой раздел(выложил сюда, так как не знал, куда лучше). Скриншот заменил на превью.

 

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

<Red>~

рюкзак выбрасываться как тайник? На подобии того складирования как на Арене (весь хабар идет в коробку рядом)

Почти. Хабар трансферится в инвентарный бокс, но он - невидимый. В сталкере инвентарные объекты в инвентарь взять нельзя.

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

У меня спавнятся два объекта - видимый рюкзак(с физической оболочкой), который можно поднять и невидимый бокс, куда трансферится хабар. Инвентарный бокс заблокирован по той простой причине, что иначе при наведении курсора на рюкзак будут появляться во-первых, две надписи сразу - "обыскать ящик" и "поднять предмет", а во-вторых, - при попытке открыть инвентарный бокс, видимый ящик(так как он находится по тем же координатам, что и невидимый) просто заберется обратно в инвентарь ГГ и никакого "посмотреть" хабар не получится. Если сдвинуть видимый рюкзак в сторону, тогда залезть можно, но теряется реализм. Получается, что ты лезешь за хабаром куда то в никуда :-)

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

Я посчитал, что необходимости залезать в сброшенный в экстремальной ситуации рюкзак нет никакой (изначально вообще хотел его спавнить где-нить в радиусе алайфа от ГГ). Так что данный рюкзак предназначен только для быстрого сброса хабара. Для хранения есть рюкзаки-нычки.

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

Nekit

Подвижность и так увеличивается - раз хабар сброшен,->вес уменьшился->ГГ медленнее устает-> двигается быстрее.

Это уже и так разрабами предусмотрено. Делать ГГ чемпионом по спринту дальше уже некуда. В оригинале у ГГ скорость бега и так ~30 км\час. Кто не верит - замерьте.

***************************************************

На данный момент реализована новая версия.

PS: требуется помощь текстурщика для создания новых текстур для рюкзаков. Не помешала бы и пара новых моделек.

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

Леня Баньши

Попробовать соединить можно.

Моя разработка требует только внести в bind_stalker все нужные вызовы моих функций. Другие файлы вроде с магазинами kiraga никак не пересекается. Строчка belt =true в моем файле weapons особого значения не имеет - так что weapons.ltx нужно использовать из mags_beta_SoC.

Единственное, требуется добавить в список исключаемых для удаления\сброса объектов некоторые объекты спец. назначения в моде kiraga, без которых тот не будет работать. В общем попробую сделать адаптацию к его моду. Посмотрим что выйдет.

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

Вот это тоже пока под вопросом. У него так же задействован скрипт определения предметов на поясе(правда в несколько ином варианте).

Возможно придется как то совместить их в один, но возможно что оба скрипта могут работать не мешая друг другу. Надо проверить.

Поделиться этим сообщением


Ссылка на сообщение

Леня Баньши

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

Чтобы еще один слот добавить - нужно во первых найти для него место(и текстуру подкладки). У меня то билдовский вариант слотов(хотя сама текстура из оригинала) - и там все нарисовано именно так - сетка, пять слотов, ячейки пояса и рамка идут как одно целое. Тебе же придется тогда юзать какой то другой вариант текстур слотов.

Во-вторых добавить его координаты сюда

 
local tPosX = { [0]=32,     [3]= 748,            [8]= 915 } -- координаты статиков по горизонтали 0..1024
local tPosY  = { [0]=35,     [3]= 12,        [8]= 30  }  -- координаты статиков по вертикали  0..768
и также добавить каллбек на клик слота  в метод UISlotWnd:__init(owner) super()  - по образцу имеющихся.

 

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

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

vhodnoylogin

У меня в разработке спавнить в "пустой" (заблокированный) инвентарь нельзя. Предметы будут дропиться(кроме первого попавшего в него рюкзака - тогда он станет активным и предметы перестанут выбрасываться) - так как спавн в инвентарь это тоже самое, что и take - взятие предмета. На мой взгляд так и должно быть. Минус блокировки инвентаря в том, что недоступны предметы на поясе - но тут весьма сложно придумать решение, чтобы можно было полностью разделить инвентарь на рюкзак и пояс, и пользоваться вторым независимо от наличия первого. Хотя, конечно, тут я буду думать над возможными вариантами.

Поделиться этим сообщением


Ссылка на сообщение

<Red>~

Именно рабочие :-)

SanekEd

Уточни при каких условиях рюкзак не встает в слот : при покупке или подборе. И что за сборка?

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

Леня Баньши

У рюкзака нет своего номера слота.

Рюкзаку у меня условно присвоен третий слот - причем для инициации текстуры рюкзака идет проверка

    if iNum==3 then  -- если число для инициации слота==3 то переназначим предмет
        if ActiveBag~="" then
        sItemSection=ActiveBag
        else
        sItemSection = sSection
        end 
        Console("Инициируем слот рюкзака: ActiveBag = %s", sItemSection)
    end
а нож и детекторы инициируются (для удобства)по своему номеру слота.

 

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

AK-103

По поводу первого - недоступность инвентаря при отсутствии рюкзака сделана специально. (ее нетрудно убрать закомментировав некоторые строчки кода -но положить в рюкзак все равно ничего нельзя будет :-))

Сделать мини-инвентарь(карманы\жилет)? Идея конечно правильная - но нужно искать варианты реализации.

 

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

 

<Red>~

Я не знаю, что используется в Соли.

Здесь на сайте в разделе "Архив моделей" я нашел в посте Ааз'а неплохие модельки рюкзаков из других игр - но их надо конвертировать(чего я не умею).

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

ronin

Уже обратился.

------------------------------------------

По просьбам участников форума совместил магазинное питание и рюкзаки. Совмещение пока сделано по грубому варианту - но оно рабочее. После Нового Года попробую сделать более тонкую адаптацию - так как по хорошему там надо избавляться от дублирующих скриптов - это снизит нагрузку на систему.

Файл иконок также совмещен: в вариант kiraga добавлены иконки рюкзаков - все координаты рюкзаков вписаны в bag.ltx.

Для облегчения совмещения данного варианта с другими модами из файла bind_stalker.script были убраны почти все внутренние коды магазинного питания и перенесены в файл inv.script. В bind_stalker.script остались в основном только вызовы функций - все они помечены звездочками и подписаны.

Рекомендация: заранее вешайте заряженные магазины на пояс - он большой и места хватит. Тогда при сбросе рюкзака не останетесь без патронов.

Ссылка

magazines_and_bags

--------------------------------------------------------------

Спасибо всем за поздравления с Новым Годом. :ny_smile:

Всех также с Наступающим :ny_z_1:

-----------------------------------------------------

ПО совмещенному варианту: есть два глюка - при смене ножей перестает работать расчет объема рюкзака и т.д.

правится так: находим в файле inv.script функцию OnUseItem()

и строчку

 if string.sub(sect,1,9) == "fake_wpn_"  then

заменяем на

if string.sub(sect,1,9) == "fake_wpn_"  and sect ~= "fake_wpn_knife" then

Тем самым убираем дублирующее действие по смене ножа, которое отрабатывает и скрипт магазинного питания.

Второй глюк - при разрядке оружия прямо в инвентаре при полном или почти полном рюкзаке имеем вылет.

Пока правлю. Так что не стоит разряжать магазины прямо в инвентаре, если в рюкзаке осталось мало свободного объема.

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

Dr.Leprikon

Честно говоря понятия не имею - так как NLC у меня нет. Рюкзаки NPC? Не представляю как и главное - зачем.

Если, чтобы просто им в инвентарь спавнились - то это легко самостоятельно сделать, добавив их в список лута.

 

Jonny

Расчет объема сугубо авторский(ну или почти авторский) (к АМК-ному варианту отношения не имеет). Дроп лишних вещей осуществляется достаточно аккуратно - под землю ничего попадать не должно. Там специальная функция от 7.9работает, которая перенаправляет стандартный дирекшен выбрасывания предмета :-)

---------------------------------------------

Для первой совмещенной версии магазинов и рюкзаков:

Лечится правкой одной строчки:

открываем файл bag.script, находим там функцию

function IsExistObject(gObj)
return level.object_by_id(gObj:id()) 
end

и меняем ее на эту:

function IsExistObject(gObj)
return level.object_by_id(gObj:id()) and alife():object(gObj:id())
end

Чуть позже перезалью архивы.

 

--------------------------------------------------------------------------

Обновленный архив(правки исправляющие вылет и ошибку при смене ножа внесены) совмещенной версии магазинов и рюкзаков (рюкзаки ver. 1.2 )

http://narod.ru/disk/2347475001/magazines_and_bags_2.7z.html

------------------------------

В связи с тем, что Kirag выпустил новый патч(который я проглядел) для магазинов - совмещение придется делать заново :o

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

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

Леня Баньши

Тебе сюда: function Bag:Init(Wnd,info_id) (файл xr_bag.script)

local iPosX, iPosY=200, 236  -- позиция по X, Y  статика для открытого окна инвентаря ГГ
        if info_id=="ui_car_body"  then
   --// позиция если открыто  окна  инвентаря трупа
        iPosY=iPosY+27
        iPosX=iPosX-7
--// позиция если открыто окно торговли
        elseif info_id=="ui_trade" then
        iPosY=iPosY+14
        iPosX=iPosX-7
        end

 

тебе нужно сместить влево - значит уменьшить значение по X для окна инвентаря ГГ на 5- 10 пискелей. Для остальных окон смотри сам.

А для кнопки сброса - сюда:ui_new_slots.script

function UISlotWnd:InitControls()

...............

self.btn_drop:Init("ui\\ui_btn_01_h", 230,735, 120, 30) -- опять же координаты по X, Y

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

Леня Баньши

У меня подобные вещи и на чистой игре(+только магазины) иногда и происходили.

Под новый фикс я делал адаптацию, но она у меня, увы, почему то не заработала. Пока руки не дошли разобраться в чем там дело - в общем непростое это дело совмещать подобные разработки :-)

 

Ирбис

Я подумаю над предложением.

-----------------------------------------------------------------------------------------------

PS: Мне тут Geoset сделал новые модельки для пары рюкзаков - немного попозже выложу.

Изменено пользователем Garry_Galler

Поделиться этим сообщением


Ссылка на сообщение

Septimus

У меня патроны вешаются на пояс простой правкой одной строчки в файле weapons.ltx и к реалиазции аммуниции на поясе моя разработка отношения не имеет. Там идет запрет на перезарядку, если патроны отсутствуют на поясе, у меня же ничего подобного нет, так как это не имело отношения к тому что я реализовывал. И патроны вешаются на пояс просто для удобства(чтобы при сбросе рюкзака не остаться без боеприпасов - предметы на поясе у меня не сбрасываются), но перезаряжаться (при активном рюкзаке) можно и при отсутствии патронов на поясе.

Так что ты немного ошибся - если хотел именно реалиазции запрета на перезарядку.

Все это реализовано, как я понял, в последней скриптовой версии "Аммуниции на поясе" (без багов с NPC).

Недавно мне предложили совместить ее с моими рюкзаками (а в придачу еще и магазины kirag'a - что из этого выйдет, пока не знаю :-)

Вердикт относительно возможности совмещения магазинов kirag'a и скриптового варианта "аммуниции на поясе": несовместимы.

Впрочем оно и не нужно: данные разработки - это альтернативы, которые делают почти одно и тоже в плане геймплея, только в магазинном питании это сделано более продвинуто в плане приближения к реалистичности. Однако нужно отдать должное автору скриптового варианта "аммуниции на поясе" kstn - сделано гениально просто. Причем настолько просто, что сразу даже не понял в чем фокус :).

В общем вывод такой: по отдельности каждую из этих разработок можно совместить с моими рюкзаками, причем "аммуниция на поясе" совмещается проще. Там всего то нужно перенести из bind_stalker.script вызов функции мода в мой bind_stalker.script и сделать кой какие мелкие правки в конфиг-файлах в виде добавления инклуда #include "ammo_fake.ltx" в weapons.ltx и одной секции предмета(separator) из items.ltx в bag.ltx, а также не забыть добавить _g.script.

-----------------------------------

---------------------------------------------------------------------------------------------------

Насчет использования моей разработки в своих модах: ограничений нет (разве что для Осознания).

------------------------------------------------------------------------------------------

Барсуков Герман

Отпишусь в личку.

Изменено пользователем Ааз

Поделиться этим сообщением


Ссылка на сообщение

Gandifil

Для начала - лог вылета приложить. И что за мод указать.

dragunof

Закомментировать строчку ;belt = true

в файле weapons.ltx - в оригинале она и так была закомментирована - я просто убрал точку с запятой перед строчкой .

Для тех кто не в курсе - ; - это обычный символ комментирования строк в файлах конфигурации (родом он из асссемблера), - после данного символа любые данные при чтении файла игнорируются.

Фейковые предметы обязательны - так как именно на них и строится технология использования предметов в новых слотах.

Поделиться этим сообщением


Ссылка на сообщение

Knight

Предложишь вариант \скрипт для выяснения подходит ли предмет рюкзаку по габаритам?

И еще: у меня там табличка объемов предметов имеется, которая настроена от балды. Каждый может ее подправить под себя ориентируясь на примерный объем предмета в жизни и его габариты.

...Игра, товарищи, требует условностей - не все можно сделать как в жизни.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...