Купер 3 466 Опубликовано 3 Мая 2019 Кстати, по по поводу color_defs.xml. Не помню, по какому поводу заморачивался. Выборка из ФШ палитры. Вдруг кому сгодится. color_defs.xml 1 2 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 16 Мая 2019 В 14.05.2019 в 13:37, Han Sola сказал: Кто знает, как это можно провернуть? Чуден парсер на X-Ray. Или чудён? По факту, знатный такой костыль: Скрытый текст <string id="lname_stalker_0"> <text>***</text> </string> Где *** - любой символ из ANSI Win-1251 кодировки, который не является пробелом, но в ui_font_***.ini имеет для отображения параметр пробела: DEC(***) = 0, 0, 8, 16. Хоть так &#DEC(***); , хоть этак &#xHEX(***); , хоть вручную. 2 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 22 Мая 2019 @Norman Eisenherz, насколько помню/знаю, <descr_list></descr_list> формируется на стороне движка. Для объектов типа "артефакт/оружие" предусмотрены вставки соответствующих полей, для брони - нет. Кажись, где-то здесь: UIItemInfo, "..но это не точно"(c) 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 18 Ноября 2019 (изменено) @Ворон545, по постэффектам: опять же самое простое РК решение (для оригинала TЧ 1.0006): 1. Восстановить callback на use объекта в биндере actor-a. В оригинале отсутствует, но замечательно добавляется: Скрытый текст bind_stalker.script -> function actor_binder:net_destroy() -> self.object:set_callback(callback.use_object, nil) function actor_binder:reinit() -> self.object:set_callback(callback.use_object, self.use_object, self) А дальше непосредственно на самом событии использования: Скрытый текст bind_stalker.script -> function actor_binder:use_object(obj) тра-тата-та.use_object(obj) end а в тра-та-та.script что-то наподобие: Скрытый текст function use_object(obj) local sect = obj:section() if sect == "antirad" then local inv_wnd = level.main_input_receiver() -- закрываем инвентарь, если открыт. if inv_wnd then inv_wnd:GetHolder():start_stop_menu(inv_wnd, true) end -- проигрываем звук и постэффект local snd_obj = r_sound.get_safe_sound_object([[actor\breath_1]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) level.add_pp_effector("vibros_p.ppe", 9119, false) end end p.s.: это не вокал, а набросок к вокалу. Проверки на защиту от дурака и т.п. Изменено 18 Ноября 2019 пользователем Купер 1 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 1 Декабря 2019 @Theckage, двс. Текстура фреймовая (собирается из "кусков"). carbody_new.xml / carbody_new_16.xml: <frame_window ...> <texture>ui_frame</texture> .... </frame_window> Сами тестуры - gamedata\textures\ui\ui_old_textures.dds. Описатель текстур - gamedata\config\ui\ui_old_textures.xml: <texture id="ui_frame_r .../>... <texture id="ui_frame_rb.../> Условно делим получаемую текстуру на 9 частей, начиная, например, с левого верхнего угла (ui_frame_lt) и т.д. Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 8 Декабря 2019 @Капрал Хикс, show_spot = false в логике, ЕМНИС, у Петрухинских в оригинале логика gulag_escape.ltx ? @UriZzz, math.random(4) - [1...4] вместо 3-ки? 1 1 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 4 Марта 2020 @Svobodovec_Arbuz, game_tutorials.xml : <length_sec>X</length_sec>. 1 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 16 Марта 2020 @Norman Eisenherz, что пользовал при редактировании? У последних версий N++ нехорошая пакость имеется: тут и дальше. Проверь кодировку файла. 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 16 Марта 2020 @ted.80, оно и в авторском варианте вполне работоспособно (по крайней мере - вылета не даёт). Вот тут (AP-Pro) народ за высотки бился... Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 1 Мая 2020 (изменено) @UriZzz, а для actor'а оно здесь точно надо? local oActor = db.actor, тра-та-та... Ну сюдя по этому в lua_helper: Скрытый текст function fSpawn_ItemInv(sSection, Box, idBox) if not idBox then if not Box then Box = db.actor end idBox = (type(Box.id) == 'number' and Box.id) or Box:id() end if type(sSection) == 'string' and sini:section_exist(sSection) then return sim:create(sSection, vector(), 0, 0, idBox) --/> end end Spawn_ItemInInv("guitar_f") ? Изменено 1 Мая 2020 пользователем Купер 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 1 Мая 2020 @UriZzz, ну я в замешательстве: Скрытый текст function actor_binder:update(delta) ... if self.bCheckStart then ... Spawn_ItemInInv("medkit") ... end 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 5 Мая 2020 @Space.Marine, если для "земли", то посмотри как в оригинале калашматы-коротыши на Милитари сделаны: addon_flags = ... upd:addon_flags = + тут 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 5 Мая 2020 @UriZzz, Военные Склады, оригинал: Скрытый текст [3547] ... ; cse_alife_item_weapon properties ammo_current = 90addon_flags = 2 <- 2 - гранатомет upd:condition = 1upd:addon_flags = 2 <- 2 - гранатомет Скрытый текст [3548] ... ; cse_alife_item_weapon properties ammo_current = 90addon_flags = 1 <- 1 - прицел upd:condition = 1upd:addon_flags = 1 <- 1 - прицел Наверняка, в SDK есть подобные параметры. Но смотреть лень - по причине наличия/отсутствия на данный исторический момент. 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 6 Мая 2020 @ErCody_, что делал, как делал? Пока лог только выдаёт телепатическим методом, что видеофайл имеет не поддерживаемый движком игры формат. Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 7 Мая 2020 @ErCody_, + весьма сомнительно, что движок воспримет формат "видео+аудио". Т.е. отдельно - видеоряд, отдельно - звуковая дорожка в соответствуюших форматах. Старенький faq, но для понимания принципа сойдёт. 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 7 Мая 2020 @Вася Сапля, шо опять? https://modfaq.ru/Распаковка_игровых_архивов и поставьте же себе, наконец, это. Ну сколько можно мучиться и искать себе приключений 2 1 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 11 Мая 2020 Товарищи спецы, просветите. Платформа OGSR (да и XRE, в принципе). Вводная: попытка реализации дискретных шлемов c отсечкой по костюмам. В bind_stalker соответствующий callback: Скрытый текст function actor_binder:net_destroy() self.object:set_callback(callback.on_slot, nil) function actor_binder:reinit() self.object:set_callback(callback.on_slot, self.item_to_slot, self) function actor_binder:item_to_slot(obj) inventory.check_remove_gasmask() Сама проверка, нагло свистнутая ради эксперимента: inventory: Скрытый текст function have_gasmask() local armor = db.actor:get_current_outfit() if not armor then return false end local armorname = armor:section() if string.find(armorname, "military_outfit") or string.find(armorname, "protection_outfit") then return true end end function check_remove_gasmask() local bio_belt = db.actor:item_in_slot(10) if not bio_belt then return end local sect = bio_belt:section() if sect == "af_maska_1" or sect == "af_maska_2" then if have_gasmask() then db.actor:move_to_ruck(bio_belt) update_inventory_window() end end end Выхлоп на горячей перезагрузке: Скрытый текст [error]Expression : FATAL ERROR [error]Function : CInventory::DropItem [error]File : c:\projects\ogsr-engine\ogsr_engine\xrgame\inventory.cpp [error]Line : 236 [error]Description : CInventory::DropItem: InSlot(pIItem): [af_maska_217160], id: [17160] Что не докручиваю, куда копать, где подсмотреть? В общем, требуется перевод этого на технический русский. Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 13 Мая 2020 Возвращаясь к этому, а можно пример "человечячего" метода получения этого самого апдейта? Вариант: Скрытый текст function XYZ() local x = 1 local precondition = function() x = x - 1 return x == 0 end local action = function() ... end level.add_call(precondition, action) end Смотрится как-то костыльно. Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 19 Мая 2020 10 часов назад, Libery сказал: функцию в сталкер 1.0006 на поднятие предметов С ЗЕМЛИ! https://yadi.sk/i/ICkRv13I4Uc0Gg @Libery, это всё-таки, наверное, сюда. Судя по "... сталкер 1.0006". 1. take_item_from_box - это больше про взаимодействие с inventory_box (S_INVBOX). Как минимум, попробовать желаемое на on_item_take. Общая информация по нюансам: тут тут и тут 2. Я чего-то где-то сделал, угадайте, что и как? Такое обычно весьма туманно и мало вразумительно воспринимается со стороны. 2 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение
Купер 3 466 Опубликовано 22 Мая 2020 @Ninna, или просто разбираться лениво. В качестве угадайки: похоже, перепутаны/не доделаны желаемые <class></class> в профилях. Те, которые из npc_profile.xml На примере character_desc_simulation.xml: Скрытый текст Ветеран: <specific_character id="sim_stalker_veteran...> <class>sim_Stalker_veteran</class> Мастер: <specific_character id="sim_stalker_master..."> <class>sim_Stalker_veteran</class> Оригинал: Скрытый текст Ветеран: <specific_character id="sim_stalker_veteran...> <class>sim_Stalker_veteran</class> Мастер: <specific_character id="sim_stalker_master...> <class>sim_stalker_master</class> Для ознакомления. В конце особенно вдумчиво и внимательно. p.s.: А вот это вот: GENERATE_NAME_killer, GENERATE_NAME_monolit уже добавлено в "именной генератор"? По идее, на оригинале должно вылетать с грохотом и треском. 1 Сталкерский архив Петровича (BFG) Филиал Костра Поделиться этим сообщением Ссылка на сообщение