Купер 2 992 Опубликовано 3 Мая 2019 Кстати, по по поводу color_defs.xml. Не помню, по какому поводу заморачивался. Выборка из ФШ палитры. Вдруг кому сгодится. color_defs.xml 1 2 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 22 Мая 2019 @Norman Eisenherz, насколько помню/знаю, <descr_list></descr_list> формируется на стороне движка. Для объектов типа "артефакт/оружие" предусмотрены вставки соответствующих полей, для брони - нет. Кажись, где-то здесь: UIItemInfo, "..но это не точно"(c) 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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) и т.д. Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 8 Декабря 2019 @Капрал Хикс, show_spot = false в логике, ЕМНИС, у Петрухинских в оригинале логика gulag_escape.ltx ? @UriZzz, math.random(4) - [1...4] вместо 3-ки? 1 1 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 4 Марта 2020 @Svobodovec_Arbuz, game_tutorials.xml : <length_sec>X</length_sec>. 1 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 16 Марта 2020 @Norman Eisenherz, что пользовал при редактировании? У последних версий N++ нехорошая пакость имеется: тут и дальше. Проверь кодировку файла. 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 16 Марта 2020 @ted.80, оно и в авторском варианте вполне работоспособно (по крайней мере - вылета не даёт). Вот тут (AP-Pro) народ за высотки бился... Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 1 Мая 2020 @UriZzz, ну я в замешательстве: Скрытый текст function actor_binder:update(delta) ... if self.bCheckStart then ... Spawn_ItemInInv("medkit") ... end 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 5 Мая 2020 @Space.Marine, если для "земли", то посмотри как в оригинале калашматы-коротыши на Милитари сделаны: addon_flags = ... upd:addon_flags = + тут 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 6 Мая 2020 @ErCody_, что делал, как делал? Пока лог только выдаёт телепатическим методом, что видеофайл имеет не поддерживаемый движком игры формат. Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 7 Мая 2020 @ErCody_, + весьма сомнительно, что движок воспримет формат "видео+аудио". Т.е. отдельно - видеоряд, отдельно - звуковая дорожка в соответствуюших форматах. Старенький faq, но для понимания принципа сойдёт. 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 7 Мая 2020 @Вася Сапля, шо опять? https://modfaq.ru/Распаковка_игровых_архивов и поставьте же себе, наконец, это. Ну сколько можно мучиться и искать себе приключений 2 1 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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] Что не докручиваю, куда копать, где подсмотреть? В общем, требуется перевод этого на технический русский. Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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 Смотрится как-то костыльно. Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение