Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 900 Опубликовано 19 ноября, 2021 vader_33 Хм, а как выключить гуишку через таймер. использовал self:HideDialog() и ловил вылит. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 19 ноября, 2021 (изменено) Paracetamol можно попробовать в том же скрипте окна при открытии задать время, и в update его проверять, а не таймер ставить Изменено 19 ноября, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Emmis 493 Опубликовано 19 ноября, 2021 Привет всем. Проблема: после перезагрузки, во время того как нпс перебегает с вей поинта на другой, он сначала возвращается на старый и потом снова бежит на другой. Как исправить данное недоразумение? История Джона 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 20 ноября, 2021 (изменено) В 19.11.2021 в 03:33, vader_33 сказал: Paradox27kms local comm = db.actor:character_community() , прописаны ли они в текстовых файлах, чтобы получать текст через game.translate_string(comm) - не проверял. Можно будет самому текст добавить или составить табличку группировка = название Приветствую. Получилось так...надпись на скрине выше...нужно сделать чтобы отображалось по человечески например так: Группировка:Вольный сталкер. Вот скрипт Спойлер function ui_mm_mod:show_community() local comm = db.actor:character_community() self.cap_actor_community:TextControl():SetText(game.translate_string("ui_st_community").. comm) end Изменено 20 ноября, 2021 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 20 ноября, 2021 Paradox27kms также делать game.translate_string, если текста нету - добавить самому в текстовые файлы game.translate_string("ui_st_community")..": "..game.translate_string(comm) Спойлер Уведомление приходит и когда обращаешься через @, не обязательно цитировать 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 20 ноября, 2021 vader_33 Благодарю, буду знать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Tolich 14 Опубликовано 20 ноября, 2021 Зов Припяти? Sigeroud mod 2.2 Как добавить в инвентарь шкалу выносливости (Чуть выше здоровья). Примерно так.. Спойлер Править видимо надо gamedata\configs\ui\actor_menu_16.xml и видимо код должен быть подобный как для шкалы здоровья, только перекрашено в синий. Спойлер <health_state x="11" y="31" width="171" height="16"> <hint_text delay="800">st_ui_health_sensor</hint_text> <state_progress x="0" y="0" width="171" height="16" horz="1" min="0" max="1" pos="0"> <progress stretch="1"> <texture r="194" g="8" b="8" a="200">ui_inGame2_inventory_health_bar</texture> </progress> </state_progress> </health_state> 1. Не могли бы мне подсказать полный кусок кода и куда его ставить (в actor_menu_16.xml)? 2. Может ещё какие файлы в этом должны быть задействованы? По идее это должно помочь играть с чистым экраном (без худа), не считая оружия. Когда заглядываешь в рюкзак, видишь полоску здоровья, не хватает ещё выносливости. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LoidRus 140 Опубликовано 20 ноября, 2021 Приветствую, товарищи! Вопрос: Может ли кто-нибудь объяснить мне структуру файла particles.xr? Т.е., какие папки за какие партиклы отвечают и т.п. Может быть, у кого-то документация завалялась по этому поводу? Хочу перенести некоторые партиклы из одного мода в свой, но без знания структуры этого файла не могу сделать. На просторах сталкерского рунета искал эту информацию, но не нашел (Видимо, её либо нет, либо плохо искал.) Как отреагировал комментатор на драку негров в тёмном подвале? - И вот кувшин разбился о воздух! ABOBALY Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WolfHeart 919 Опубликовано 20 ноября, 2021 15 минут назад, LoidRus сказал: Видимо, её либо нет, либо плохо искал. Спойлер https://www.youtube.com/watch?v=fVmS24momBs https://www.youtube.com/watch?v=8HpgY5WvDW4 AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb). Windows -10 PRO (х64) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сталкер из прошлого 115 Опубликовано 22 ноября, 2021 (изменено) Приветствую. Такой вопрос - есть локация Агропром из билда СВ 3. Абсолютно без заселения и т.п. Так вот, хотелось бы узнать, как создать точки респавна сталкеров и мутантов через all.spawn? Просто их самих (сквады нпс) не вариант в all.spawn на точки прописывать, нужно чтобы они после смерти в тех же местах дня через 2-3 опять появлялись. Спасибо. Изменено 22 ноября, 2021 пользователем Сталкер из прошлого ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb, Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 22 ноября, 2021 vader_33 Можно ли как-нибудь вывести отчет таймера в тексте GUI? Как на скрине судя по всему можно, но нужно именно конкретный таймер, к примеру отображение отчета через GUI подобного таймера... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 22 ноября, 2021 Сталкер из прошлого Только SDK, можете найти на видеохостинге YouTube различные уроки по SDK, вам там даже покажут как скачивать и устанавливать его. Там много тонкостей. Их вполне достаточно, там вам объяснят как пользоваться SDK. Изменять спавн не через SDK - крайне запарно. Если хотите сделать все качественно, то вам придется работать с SDK 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 22 ноября, 2021 Как сделать так, чтобы монстры не нападали на определённую сталкерскую группировку и наоборот? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hoperise 210 Опубликовано 22 ноября, 2021 liner game_relations у группировки monster прописать нейтралитет или дружеское отношение к нужному опг. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 22 ноября, 2021 Paradox27kms какой код таймера? В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 22 ноября, 2021 (изменено) vader_33 Вот пример данного таймера в логике [sr_timer@timer] type = dec start_value = 31000 string = st_save_zat_c3_sniper_bandit_base_signal on_value = 0 | sr_idle@next Нужно отображение парамерта start_value в тексте GUI...если не сложно Изменено 22 ноября, 2021 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 22 ноября, 2021 (изменено) 1 час назад, Hoperise сказал: liner game_relations у группировки monster прописать нейтралитет или дружеское отношение к нужному опг. Не работает. Я всё правильно прописал, если что. Изменено 22 ноября, 2021 пользователем liner Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 22 ноября, 2021 Paradox27kms а, с логики. Думал, со скрипта, с логики же итак окошко выводится В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 22 ноября, 2021 (изменено) vader_33 По идее если отобразить GUI то оно перекроет таймер. Хорошо тогда другой вопрос...есть скрипт function action_freedom_team_base:zone_enter(dik, keyboard_action) CUIScriptWnd.action_freedom_team_base(self,dik,keyboard_action) local bind = dik_to_bind(dik) local console = get_console() self.state = state_outside bind_stalker.restore_weapon(self.object:id()) local hud = get_hud() local custom_static = hud:GetCustomStatic("can_use_weapon_now") if db.no_weap_zones[self.object:name()] == true then db.no_weap_zones[self.object:name()] = false elseif custom_static == nil and has_alife_info("mod_pve_actor_in_freedom_start") then hud:AddCustomStatic("can_use_weapon_now", true) hud:GetCustomStatic("can_use_weapon_now"):wnd():TextControl():SetTextST("st_mod_pve_add_buy_menu") end printf("exiting no weapon zone [%s]", tostring(self.object:name())) self.inited_time = game.get_game_time() if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik == DIK_keys.DIK_ESC then if level.present() and ( ((db.actor ~= nil)and(db.actor:alive())) or (false==IsGameTypeSingle()) ) then self.message_box:InitMessageBox("message_box_quit_windows") self.message_box:ShowDialog(true) end end end return true end Я создал модуль на базе sr_no_weapon и хочу реализовать чтобы при нахождении в данной зоне можно было вызвать скрипт ну или какое-либо действие при нажатии на горячую клавишу(в данном случае как пример вызов сообщения для теста). Брал скрипт из ui_main_menu.script и дополнил его в данном скрипте. Ловлю вылет Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...l of pripyat\gamedata\scripts\sr_base_freedom.script:80: attempt to call field 'action_freedom_team_base' (a nil value) Вся схема Спойлер ---------------------------------------------------------------------------------------------------- -- Mod Freedom Team Base ---------------------------------------------------------------------------------------------------- --function printf() --end local state_nowhere = 0 -- схема только что включилась local state_inside = 1 -- актер внутри local state_outside = 2 -- актер снаружи class "action_freedom_team_base" function action_freedom_team_base:__init( obj, storage ) self.object = obj self.st = storage self.inited_time = game.CTime() end function action_freedom_team_base:reset_scheme() --printf("_bp: sr_idle: action_freedom_team_base:reset_scheme: self.object:name()='%s'", self.object:name()) self.state = state_nowhere -- еще неясно, в зоне он, или нет self:switch_state(db.actor) db.no_weap_zones[self.object:name()] = false end function action_freedom_team_base:update( delta ) --printf("_br: sr_idle: action_freedom_team_base:update()") --if not xr_logic.is_active( self.object, self.st ) then -- return --end local actor = db.actor if xr_logic.try_switch_to_another_section( self.object, self.st, actor ) then if self.state == state_inside then self:zone_leave() end return end self:switch_state( actor ) local hud = get_hud() local custom_static = hud:GetCustomStatic("can_use_weapon_now") if custom_static ~= nil and game.get_game_time():diffSec(self.inited_time) > 30 then hud:RemoveCustomStatic("can_use_weapon_now") end end function action_freedom_team_base:switch_state( actor ) local state = self.state --printf("on_update state[%s]", tostring(self.state)) if state == state_outside or state == state_nowhere then if self.object:inside( actor:center() ) then self:zone_enter() --printf("on_update1 state[%s]", tostring(self.state)) return end end if state == state_inside or state == state_nowhere then if not self.object:inside( actor:center() ) then self:zone_leave() --printf("on_update2 state[%s]", tostring(self.state)) return end local weap_obj = db.actor:active_item() if weap_obj ~= nil and isWeapon (weap_obj) ~= false then printf("no weapon zone [%s] actor is inside, but with weapon active", tostring(self.object:name())) end end end function action_freedom_team_base:zone_enter(dik, keyboard_action) CUIScriptWnd.action_freedom_team_base(self,dik,keyboard_action) local bind = dik_to_bind(dik) local console = get_console() self.state = state_outside bind_stalker.restore_weapon(self.object:id()) local hud = get_hud() local custom_static = hud:GetCustomStatic("can_use_weapon_now") if db.no_weap_zones[self.object:name()] == true then db.no_weap_zones[self.object:name()] = false elseif custom_static == nil and has_alife_info("mod_pve_actor_in_freedom_start") then hud:AddCustomStatic("can_use_weapon_now", true) hud:GetCustomStatic("can_use_weapon_now"):wnd():TextControl():SetTextST("st_mod_pve_add_buy_menu") end printf("exiting no weapon zone [%s]", tostring(self.object:name())) self.inited_time = game.get_game_time() if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik == DIK_keys.DIK_ESC then if level.present() and ( ((db.actor ~= nil)and(db.actor:alive())) or (false==IsGameTypeSingle()) ) then self.message_box:InitMessageBox("message_box_quit_windows") self.message_box:ShowDialog(true) end end end return true end function action_freedom_team_base:zone_leave() end --------------------------------------------------------------------------------------------------------------------- function add_to_binder(npc, ini, scheme, section, storage) printf("DEBUG: add_to_binder: scheme='%s', section='%s'", scheme, section) local new_action = action_freedom_team_base(npc, storage) -- Зарегистрировать все actions, в которых должен быть вызван метод reset_scheme при изменении настроек схемы: xr_logic.subscribe_action_for_events(npc, storage, new_action) end function set_scheme(npc, ini, scheme, section, gulag_name) local st = xr_logic.assign_storage_and_bind(npc, ini, scheme, section) st.logic = xr_logic.cfg_get_switch_conditions(ini, section, npc) end Изменено 22 ноября, 2021 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 22 ноября, 2021 (изменено) Paradox27kms из ui_main_menu.script if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik == DIK_keys.DIK_ESC then - это при открытом гуи окне только работает, просто со скрипта работать не будет. Если движок оригинальный без добавленного коллбека нажатия клавиш - скрипты на кнопки не повесить Изменено 23 ноября, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 23 ноября, 2021 vader_33 а можно тогда из логики вызвать нажатие клавиши? Например если актер находится в определенной зоне, то... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 23 ноября, 2021 Paradox27kms насчет логики не подскажу, не разбираюсь в ней. Но я не видел такого в модах В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 23 ноября, 2021 Paradox27kms не проще создать коллбек в биндере зоны на нажатие клавиши? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mad Hikki 342 Опубликовано 23 ноября, 2021 Как правильно адаптировать различные модификации? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 23 ноября, 2021 liner Да я уже сделал чтобы окно автоматически активировалось при входе в зону... Дополнено 14 минуты спустя Hikki Скажу банальный ответ но - руками ? всё ручками Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты