Garry_Galler 7 Опубликовано 1 Декабря 2010 (изменено) Выбрасываемый рюкзак Описание мода:RealBags (Реальные рюкзаки) Рюкзак вместе со всем хламом содержимым можно скинуть парой движений мышки. Сброс сделан не на основе "горячих" клавиш, а постоянной кнопкой в инвентаре.(пока так) Игрок получает возможность сбросить рюкзак со всем содержимым на землю в экстремальной ситуации. Но для этого необходимо наличие в слоте инвентаря активного рюкзака.Описание нового варианта разработки "Выбрасываемый рюкзак".RealBags (Реальные рюкзаки) v.1.0Список изменений/нововведений: 1) Три рюкзака разных объемов, которые можно менять:tactical_bag - тактический ранец(30 л)combat_bag - боевой\рейдовый рюкзак(60 л)combat_section_bag - боевой секционный рюкзак(120 л) 2) Три новых слота. Один - для активации рюкзака. В ножевой слот и слот детекторов можно прописать любые свои предметы. 3) Кнопка быстрого сброса. 4) Билдовский инвентарь. Ячеек на поясе - 18. 5) Патроны вешаются на пояс. Изменено 29 Декабря 2010 пользователем Garry_Galler 2 1 Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 2 Декабря 2010 (изменено) MaZaHaKQ я тоже делал типо такого Сброс рюкзака? А выкладывал? Rhadamanthus Пожалуйста :-) Делал для себя, но решил выложить - может сгодится кому. ********************************************************************* Если тема не под "Мастерскую" - то перекиньте ее в другой раздел(выложил сюда, так как не знал, куда лучше). Скриншот заменил на превью. Изменено 2 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 2 Декабря 2010 (изменено) <Red>~ рюкзак выбрасываться как тайник? На подобии того складирования как на Арене (весь хабар идет в коробку рядом) Почти. Хабар трансферится в инвентарный бокс, но он - невидимый. В сталкере инвентарные объекты в инвентарь взять нельзя. Рюкзак-нычка в модах именно так сделан - спавнится инвентарный объект с видимым визуалом. Но взять его нельзя, только открыть. У меня спавнятся два объекта - видимый рюкзак(с физической оболочкой), который можно поднять и невидимый бокс, куда трансферится хабар. Инвентарный бокс заблокирован по той простой причине, что иначе при наведении курсора на рюкзак будут появляться во-первых, две надписи сразу - "обыскать ящик" и "поднять предмет", а во-вторых, - при попытке открыть инвентарный бокс, видимый ящик(так как он находится по тем же координатам, что и невидимый) просто заберется обратно в инвентарь ГГ и никакого "посмотреть" хабар не получится. Если сдвинуть видимый рюкзак в сторону, тогда залезть можно, но теряется реализм. Получается, что ты лезешь за хабаром куда то в никуда :-) Поэтому у меня скриптом убирается надпись "обыскать" и блокируется невидимый бокс. Ну если очень надо - можете разблокировать(но тогда, если положить туда новые предметы после сброса - возвращаться при поднятии рюкзака они не будут, если не было перезагрузки игры). Я посчитал, что необходимости залезать в сброшенный в экстремальной ситуации рюкзак нет никакой (изначально вообще хотел его спавнить где-нить в радиусе алайфа от ГГ). Так что данный рюкзак предназначен только для быстрого сброса хабара. Для хранения есть рюкзаки-нычки. Изменено 2 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 16 Декабря 2010 (изменено) Nekit Подвижность и так увеличивается - раз хабар сброшен,->вес уменьшился->ГГ медленнее устает-> двигается быстрее. Это уже и так разрабами предусмотрено. Делать ГГ чемпионом по спринту дальше уже некуда. В оригинале у ГГ скорость бега и так ~30 км\час. Кто не верит - замерьте. *************************************************** На данный момент реализована новая версия. PS: требуется помощь текстурщика для создания новых текстур для рюкзаков. Не помешала бы и пара новых моделек. Изменено 16 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 17 Декабря 2010 (изменено) Леня Баньши Попробовать соединить можно. Моя разработка требует только внести в bind_stalker все нужные вызовы моих функций. Другие файлы вроде с магазинами kiraga никак не пересекается. Строчка belt =true в моем файле weapons особого значения не имеет - так что weapons.ltx нужно использовать из mags_beta_SoC. Единственное, требуется добавить в список исключаемых для удаления\сброса объектов некоторые объекты спец. назначения в моде kiraga, без которых тот не будет работать. В общем попробую сделать адаптацию к его моду. Посмотрим что выйдет. Изменено 17 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 17 Декабря 2010 Вот это тоже пока под вопросом. У него так же задействован скрипт определения предметов на поясе(правда в несколько ином варианте). Возможно придется как то совместить их в один, но возможно что оба скрипта могут работать не мешая друг другу. Надо проверить. Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 19 Декабря 2010 (изменено) Леня Баньши Не уверен, что попытка перетасовать слоты для оружия будет удачной. То что вылет безлоговый говорит о том, что ошибка скорей всего не скриптовая, просто движок ругается. Но так я сам данный вариант не пробовал - то могу и ошибаться. Может быть и можно сделать чтобы все работало как ты хочешь. Чтобы еще один слот добавить - нужно во первых найти для него место(и текстуру подкладки). У меня то билдовский вариант слотов(хотя сама текстура из оригинала) - и там все нарисовано именно так - сетка, пять слотов, ячейки пояса и рамка идут как одно целое. Тебе же придется тогда юзать какой то другой вариант текстур слотов. Во-вторых добавить его координаты сюда local tPosX = { [0]=32, [3]= 748, [8]= 915 } -- координаты статиков по горизонтали 0..1024 local tPosY = { [0]=35, [3]= 12, [8]= 30 } -- координаты статиков по вертикали 0..768 и также добавить каллбек на клик слота в метод UISlotWnd:__init(owner) super() - по образцу имеющихся. Адаптацией еще не занимался - пока просто тестил магазинное питание. Прежде чем адаптировать хотел понять механику всей работы. Попозже попробую совместить. Изменено 19 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 19 Декабря 2010 vhodnoylogin У меня в разработке спавнить в "пустой" (заблокированный) инвентарь нельзя. Предметы будут дропиться(кроме первого попавшего в него рюкзака - тогда он станет активным и предметы перестанут выбрасываться) - так как спавн в инвентарь это тоже самое, что и take - взятие предмета. На мой взгляд так и должно быть. Минус блокировки инвентаря в том, что недоступны предметы на поясе - но тут весьма сложно придумать решение, чтобы можно было полностью разделить инвентарь на рюкзак и пояс, и пользоваться вторым независимо от наличия первого. Хотя, конечно, тут я буду думать над возможными вариантами. Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 20 Декабря 2010 (изменено) <Red>~ Именно рабочие :-) SanekEd Уточни при каких условиях рюкзак не встает в слот : при покупке или подборе. И что за сборка? Изменено 20 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 20 Декабря 2010 (изменено) Леня Баньши У рюкзака нет своего номера слота. Рюкзаку у меня условно присвоен третий слот - причем для инициации текстуры рюкзака идет проверка if iNum==3 then -- если число для инициации слота==3 то переназначим предмет if ActiveBag~="" then sItemSection=ActiveBag else sItemSection = sSection end Console("Инициируем слот рюкзака: ActiveBag = %s", sItemSection) end а нож и детекторы инициируются (для удобства)по своему номеру слота. Изменено 20 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 21 Декабря 2010 (изменено) AK-103 По поводу первого - недоступность инвентаря при отсутствии рюкзака сделана специально. (ее нетрудно убрать закомментировав некоторые строчки кода -но положить в рюкзак все равно ничего нельзя будет :-)) Сделать мини-инвентарь(карманы\жилет)? Идея конечно правильная - но нужно искать варианты реализации. По второму - сделать доступным просмотр скинутого рюкзака конечно надо. И я пока думаю над возможными вариантами реализации. Вариант который используется в ремкомплектах надо испробовать - посмотрим. <Red>~ Я не знаю, что используется в Соли. Здесь на сайте в разделе "Архив моделей" я нашел в посте Ааз'а неплохие модельки рюкзаков из других игр - но их надо конвертировать(чего я не умею). Изменено 21 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 24 Декабря 2010 (изменено) 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 Тем самым убираем дублирующее действие по смене ножа, которое отрабатывает и скрипт магазинного питания. Второй глюк - при разрядке оружия прямо в инвентаре при полном или почти полном рюкзаке имеем вылет. Пока правлю. Так что не стоит разряжать магазины прямо в инвентаре, если в рюкзаке осталось мало свободного объема. Изменено 25 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 28 Декабря 2010 (изменено) 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 выпустил новый патч(который я проглядел) для магазинов - совмещение придется делать заново Ссылку пока не удаляю - возможно просто сделаю фикс, который поверх можно будет кинуть. Изменено 29 Декабря 2010 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 7 Января 2011 7.9 Если бы еще знать как это реализовать - рюкзаки для NPC Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 13 Января 2011 (изменено) Леня Баньши Тебе сюда: 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 Изменено 13 Января 2011 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 4 Февраля 2011 (изменено) Леня Баньши У меня подобные вещи и на чистой игре(+только магазины) иногда и происходили. Под новый фикс я делал адаптацию, но она у меня, увы, почему то не заработала. Пока руки не дошли разобраться в чем там дело - в общем непростое это дело совмещать подобные разработки :-) Ирбис Я подумаю над предложением. ----------------------------------------------------------------------------------------------- PS: Мне тут Geoset сделал новые модельки для пары рюкзаков - немного попозже выложу. Изменено 4 Февраля 2011 пользователем Garry_Galler Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 10 Февраля 2011 (изменено) 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. ----------------------------------- --------------------------------------------------------------------------------------------------- Насчет использования моей разработки в своих модах: ограничений нет (разве что для Осознания). ------------------------------------------------------------------------------------------ Барсуков Герман Отпишусь в личку. Изменено 10 Февраля 2011 пользователем Ааз Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 22 Февраля 2011 Gandifil Для начала - лог вылета приложить. И что за мод указать. dragunof Закомментировать строчку ;belt = true в файле weapons.ltx - в оригинале она и так была закомментирована - я просто убрал точку с запятой перед строчкой . Для тех кто не в курсе - ; - это обычный символ комментирования строк в файлах конфигурации (родом он из асссемблера), - после данного символа любые данные при чтении файла игнорируются. Фейковые предметы обязательны - так как именно на них и строится технология использования предметов в новых слотах. Поделиться этим сообщением Ссылка на сообщение
Garry_Galler 7 Опубликовано 30 Марта 2011 Knight Предложишь вариант \скрипт для выяснения подходит ли предмет рюкзаку по габаритам? И еще: у меня там табличка объемов предметов имеется, которая настроена от балды. Каждый может ее подправить под себя ориентируясь на примерный объем предмета в жизни и его габариты. ...Игра, товарищи, требует условностей - не все можно сделать как в жизни. Поделиться этим сообщением Ссылка на сообщение