Overf1rst 1 515 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 6 4 1 3 1 4 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 1 006 Опубликовано 31 октября, 2024 Подскажите, как заспавнить пустое ружье? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 123 Опубликовано 31 октября, 2024 10 часов назад, Paracetamol сказал: как заспавнить пустое ружье? Через alife():create("секция_оружия", vector(), 0, 0, db.actor:id()) А чтобы заспавнилось пустое оружие использовать obj:unload_magazine() где obj - клиенский объект local se_obj = alife():create("секция_оружия", vector(), 0, 0, db.actor:id()) if se_obj then level.client_spawn_manager():add(se_obj.id, db.actor:id(), function(id, obj) obj:unload_magazine() end) end Вроде бы так... могу и ошибиться 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 1 006 Опубликовано 31 октября, 2024 55 минут назад, Mass сказал: Через alife():create("секция_оружия", vector(), 0, 0, db.actor:id()) А чтобы заспавнилось пустое оружие использовать obj:unload_magazine() где obj - клиенский объект local se_obj = alife():create("секция_оружия", vector(), 0, 0, db.actor:id()) if se_obj then level.client_spawn_manager():add(se_obj.id, db.actor:id(), function(id, obj) obj:unload_magazine() end) end Вроде бы так... могу и ошибиться Я немного другим способом воспользовался, но этот тоже опробую тогда. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sN4Rtm 0 Опубликовано 5 ноября, 2024 Подскажите, пожалуйста, где найти файл конфигурации где есть параметры для курсора? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 349 Опубликовано 5 ноября, 2024 (изменено) В каком файле редактируется ширина и длина иконки сообщения Изменено 5 ноября, 2024 пользователем Stalkervernite Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 766 Опубликовано 6 ноября, 2024 Stalkervernite не смотрел саму функцию send_tip? Попробуй у actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(x,y,83,47), timeout*1000, showtime) поменять числа в Frect():set (не проверял, хз) Дополнено 4 минуты спустя sN4Rtm вроде нет такого Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 1 090 Опубликовано 6 ноября, 2024 В 05.11.2024 в 12:07, Stalkervernite сказал: В каком файле редактируется ширина и длина иконки сообщения Например, в текстуре. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 349 Опубликовано 6 ноября, 2024 4 часа назад, N42 сказал: Stalkervernite не смотрел саму функцию send_tip? Попробуй у actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(x,y,83,47), timeout*1000, showtime) поменять числа в Frect():set (не проверял, хз) Не помогло Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 766 Опубликовано 6 ноября, 2024 (изменено) Stalkervernite само поле имеешь в виду? В maingame_pda_msg.xml Изменено 6 ноября, 2024 пользователем N42 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 349 Опубликовано 7 ноября, 2024 9 часов назад, N42 сказал: Stalkervernite само поле имеешь в виду? В maingame_pda_msg.xml Всё помогло. Спасибо! 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Новис 54 Опубликовано 8 ноября, 2024 Приветствую! Кто нибудь может подсказать как убрать использование патрон с пояса. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 1 090 Опубликовано 8 ноября, 2024 2 часа назад, Новис сказал: как убрать использование патрон с пояса. Командой g_ammunition_on_belt off 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
microFarad 42 Опубликовано 8 ноября, 2024 всем привет, снова вопрос есть я собрал спавн для трех уровней с помощью компилятора от skyloader-а, но при попытке запуска вылетает: Спойлер [08.11.24 12:51:49.454] * phase time: 22 ms [08.11.24 12:51:49.454] * phase cmem: 0 K [08.11.24 12:51:49.527] --LUA version: [LuaJIT 2.1.0-beta3] [08.11.24 12:51:49.597] * phase time: 143 ms [08.11.24 12:51:49.597] * phase cmem: 0 K [08.11.24 12:51:49.599] * phase time: 1 ms [08.11.24 12:51:49.599] * phase cmem: 0 K [08.11.24 12:51:49.607] * Creating new game... [08.11.24 12:51:49.608] * Loading spawn registry... [08.11.24 12:51:49.729] * 1248 spawn points are successfully loaded [08.11.24 12:51:49.930] * Saving spawns... [08.11.24 12:51:49.930] * Saving objects... [08.11.24 12:51:49.936] * 1755 objects are successfully saved [08.11.24 12:51:49.937] * Game all.sav is successfully saved to file 'd:\games\4. mods\s.t.a.l.k.e.r. + stsoc wp\appdata\savedgames\all.sav' [08.11.24 12:51:49.937] * New game is successfully created! [08.11.24 12:51:49.937] * phase time: 338 ms [08.11.24 12:51:49.937] * phase cmem: 0 K [08.11.24 12:51:50.007] # Player not found. New player created. [08.11.24 12:51:50.007] !!xrServer::Check_GameSpy_CDKey_Success - 1 [08.11.24 12:51:50.007] * client : connection accepted - <> [08.11.24 12:51:50.032] FATAL ERROR [error]Expression : FATAL ERROR [error]Function : CInifile::Load [error]File : C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xrCore\Xr_ini.cpp [error]Line : 294 [error]Description : Duplicate section 'map_usage' found. я без понятия что за секция map_usage и где она находится, в ручную я ничего не добавлял, проверил конфиги на предмет этой секции прошу помощи Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sumrak6835 161 Опубликовано 8 ноября, 2024 (изменено) 15 минут назад, microFarad сказал: я без понятия что за секция map_usage и где она находится, в ручную я ничего не добавлял, проверил конфиги на предмет этой секции Создай секцию с таким именем, а в игре запроси её координаты с помощью Finder Addon (c адаптацией аддна, думаю, справишься) Изменено 8 ноября, 2024 пользователем sumrak6835 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 1 090 Опубликовано 8 ноября, 2024 4 часа назад, microFarad сказал: что за секция map_usage и где она находится В level.ltx искал? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
microFarad 42 Опубликовано 9 ноября, 2024 (изменено) 19 часов назад, macron сказал: В level.ltx искал? спасибо, в level.ltx нашел, но теперь непонятный вылет на клиент: синхронизация Спойлер [09.11.24 11:56:35.865] ***************************[ScriptCrashHandler]********************************** [09.11.24 11:56:35.865] stack traceback: [09.11.24 11:56:35.865] ********************************************************************************* [09.11.24 11:56:35.865] ******************************************************************************** [09.11.24 11:56:35.865] !![LogStackTrace] Thread: [X-RAY Primary thread], ExceptionCode: [c0000005] [09.11.24 11:56:36.910] !!Unhandled exception stack trace: ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F46FC9C0], Fun: [CHudItem::UpdateCL()] + [340 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xrGame\HudItem.cpp-->307] + [34 byte(s)] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4345530], Fun: [CObjectList::SingleUpdate()] + [124 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\xr_object_list.cpp-->110] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4345852], Fun: [CObjectList::Update()] + [394 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\xr_object_list.cpp-->174] + [19 byte(s)] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4341950], Fun: [IGame_Level::OnFrame()] + [24 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\IGame_Level.cpp-->128] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F460B7AA], Fun: [CLevel::OnFrame()] + [1066 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xrGame\Level.cpp-->408] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4372F0F], Fun: [CRegistrator<pureFrame>::Process()] + [87 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\pure.h-->109] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F437299B], Fun: [CRenderDevice::FrameMove()] + [387 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\device.cpp-->453] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4371B3E], Fun: [CRenderDevice::on_idle()] + [234 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\device.cpp-->208] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4372687], Fun: [CRenderDevice::Run()] + [575 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\device.cpp-->391] + [85 byte(s)] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F433CCD4], Fun: [Startup()] + [1332 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\x_ray.cpp-->204] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F433D367], Fun: [WinMain_impl()] + [503 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\x_ray.cpp-->410] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F433D4F7], Fun: [WinMain()] + [335 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\x_ray.cpp-->431] ! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4B263BE], Fun: [__scrt_common_main_seh()] + [262 byte(s)], File-->Line: [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl-->288] + [33 byte(s)] ! Module: [C:\Windows\System32\KERNEL32.DLL], AddrPC.Offset: [00007FF80409257D], Fun: [BaseThreadInitThunk()] + [29 byte(s)] ! Module: [C:\Windows\SYSTEM32\ntdll.dll], AddrPC.Offset: [00007FF80628AF08], Fun: [RtlUserThreadStart()] + [40 byte(s)] [09.11.24 11:56:36.910] ******************************************************************************** [09.11.24 11:56:37.483] --Saved dump file to [d:\games\s.t.a.l.k.e.r. stsoc wp\appdata\logs\xray_anod_11-09-24_11-56-37.mdmp] у меня скомпилены три локации: ванильный бар, росток от РСФС и билдовский янтарь; скомпилированные без ростка две локации отлично работают, но я не могу понять что конкретно с ростком не так... по отдельности они все работают Изменено 9 ноября, 2024 пользователем microFarad Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pastalker56 107 Опубликовано 9 ноября, 2024 Всем привет. Меня интересует два вопроса: 1. Как конвертировать параметры (костюмов, оружия и тд) из билда 2205 в систему ТЧ? 2. Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
av661194 172 Опубликовано 9 ноября, 2024 Такой вопрос: можно ли в оригинальном ТЧ узнать отношение нпс к актору (враг-друг-нейтрал)? Если есть клиентский объект, то всё понятно: function not_enemy(id) local npc = level.object_by_id(id) return npc and npc:relation(db.actor) ~= game_object.enemy end А если нпс находится в оффлайне? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
StrawFlux 1 247 Опубликовано 9 ноября, 2024 av661194 alife():object(id) - серверный level.object_by_id(id) - клиентский Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
av661194 172 Опубликовано 9 ноября, 2024 StrawFlux И к чему этот ответ? Я знаю, что такое серверный и клиентский объекты. Вопрос же был в следующем: как определить отношение нпс к актору, если нет клиентского объекта? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 592 Опубликовано 9 ноября, 2024 1 час назад, Pastalker56 сказал: Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)? Тут пример,как раз для скриптов. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pastalker56 107 Опубликовано 9 ноября, 2024 Hrust Спасибо. Я вот только немного не понял, часть с редактированием движка обязательна или нет? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 592 Опубликовано 9 ноября, 2024 25 минут назад, Pastalker56 сказал: часть с редактированием движка обязательна или нет? Метода нет такого, хотя можно и без изменений в движке обойтись, передав аналог такой проверки локально, но ябы не стал плодить копипасты. bool ui_core::is_16_9_mode() { return (Device.dwWidth)/float(Device.dwHeight) > (UI_BASE_WIDTH/UI_BASE_HEIGHT +0.01f); } Только я не помню, как это сделать в скриптах, поищи по скриптам или луа хелпу проверки на разрешение экрана. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
StrawFlux 1 247 Опубликовано 9 ноября, 2024 (изменено) av661194 Спойлер local relation_matrix = {} local rel_enemy, rel_friend function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end function str_explode(div, str, clear) local t = {} local cpt = string.find(str, div, 1, true) if cpt then repeat if clear then table.insert(t, trim(string.sub(str, 1, cpt - 1))) else table.insert(t, string.sub(str, 1, cpt - 1)) end str = string.sub(str, cpt + string.len(div)) cpt = string.find(str, div, 1, true) until cpt == nil end if clear then table.insert(t, trim(str)) else table.insert(t, str) end return t end function build_tables() rel_enemy, rel_friend = utils.cfg_get_number(system_ini(), "game_relations", "goodwill_enemy", nil, false, -1000), utils.cfg_get_number(system_ini(), "game_relations", "goodwill_friend", nil, false, 1000) local s_comm_list = utils.cfg_get_string(system_ini(), "game_relations", "communities", nil, false, "", "") local comm_list = {} local s_value = str_explode(",", trim(s_comm_list), true) for a = 1, table.getn(s_value), 2 do local s_comm = s_value[a] table.insert(comm_list, s_comm) end local tmp = {} local result, id, value = nil, nil, nil for a = 0, system_ini():line_count("communities_relations") - 1 do result, id, value = system_ini():r_line("communities_relations", a, "", "") if id ~= nil and trim(id) ~= "" and trim(id) ~= nil then relation_matrix[trim(id)] = {} table.insert(tmp, trim(id)) end end for a = 1, table.getn(tmp) do local value = utils.cfg_get_string(system_ini(), "communities_relations", tmp[a], nil, false, "", "") local idx = tmp[a] local m_value = str_explode(",", trim(value), true) for i = 1, table.getn(m_value) do local idx2 = comm_list local v = m_value if relation_matrix[idx] and idx2 ~= nil and v ~= nil then relation_matrix[idx][idx2] = tonumber(trim(v)) end end end end function check_enemy() local rel = relation_check() if rel >= rel_friend then log3("друг") end if rel <= rel_enemy then log3("враг") end end function relation_check() local sim = alife() local npc = sim:object("esc_bridge_soldier5") local actor = db.actor if relation_matrix[npc:community()] and relation_matrix[npc:community()][actor:character_community()] then return relation_matrix[npc:community()][actor:character_community()] else return 0 end end вот пример функции которая проверяет отношение (друг или враг) для актора и выбранного серверного нпс в данном случае для примера майора Кузнецова, сначала нужно вызвать функцию build_tables потом уже проверять check_enemy, так же можно проверять между нпс и нпс (character_community поменять на community) П.С. референс брал из амк скриптов где при офлайн стычке проверяется отношение нпс к нпс Изменено 9 ноября, 2024 пользователем StrawFlux 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 1 090 Опубликовано 9 ноября, 2024 4 часа назад, Pastalker56 сказал: 2. Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)? Берешь и создаешь такой же, но с _16 на конце. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты