Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 6 4 1 3 1 3 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 900 Опубликовано 31 октября Подскажите, как заспавнить пустое ружье? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 95 Опубликовано 31 октября 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 900 Опубликовано 31 октября 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 ноября Подскажите, пожалуйста, где найти файл конфигурации где есть параметры для курсора? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 5 ноября (изменено) В каком файле редактируется ширина и длина иконки сообщения Изменено 5 ноября пользователем Stalkervernite Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 697 Опубликовано 6 ноября 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 932 Опубликовано 6 ноября В 05.11.2024 в 12:07, Stalkervernite сказал: В каком файле редактируется ширина и длина иконки сообщения Например, в текстуре. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 6 ноября 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 697 Опубликовано 6 ноября (изменено) Stalkervernite само поле имеешь в виду? В maingame_pda_msg.xml Изменено 6 ноября пользователем N42 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 7 ноября 9 часов назад, N42 сказал: Stalkervernite само поле имеешь в виду? В maingame_pda_msg.xml Всё помогло. Спасибо! 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Новис 46 Опубликовано 8 ноября Приветствую! Кто нибудь может подсказать как убрать использование патрон с пояса. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 932 Опубликовано 8 ноября 2 часа назад, Новис сказал: как убрать использование патрон с пояса. Командой g_ammunition_on_belt off 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
microFarad 0 Опубликовано 8 ноября всем привет, снова вопрос есть я собрал спавн для трех уровней с помощью компилятора от 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 157 Опубликовано 8 ноября (изменено) 15 минут назад, microFarad сказал: я без понятия что за секция map_usage и где она находится, в ручную я ничего не добавлял, проверил конфиги на предмет этой секции Создай секцию с таким именем, а в игре запроси её координаты с помощью Finder Addon (c адаптацией аддна, думаю, справишься) Изменено 8 ноября пользователем sumrak6835 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 932 Опубликовано 8 ноября 4 часа назад, microFarad сказал: что за секция map_usage и где она находится В level.ltx искал? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
microFarad 0 Опубликовано 9 ноября (изменено) 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 ноября пользователем microFarad Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pastalker56 107 Опубликовано 9 ноября Всем привет. Меня интересует два вопроса: 1. Как конвертировать параметры (костюмов, оружия и тд) из билда 2205 в систему ТЧ? 2. Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
av661194 129 Опубликовано 9 ноября Такой вопрос: можно ли в оригинальном ТЧ узнать отношение нпс к актору (враг-друг-нейтрал)? Если есть клиентский объект, то всё понятно: function not_enemy(id) local npc = level.object_by_id(id) return npc and npc:relation(db.actor) ~= game_object.enemy end А если нпс находится в оффлайне? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
StrawFlux 1 068 Опубликовано 9 ноября av661194 alife():object(id) - серверный level.object_by_id(id) - клиентский Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
av661194 129 Опубликовано 9 ноября StrawFlux И к чему этот ответ? Я знаю, что такое серверный и клиентский объекты. Вопрос же был в следующем: как определить отношение нпс к актору, если нет клиентского объекта? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 520 Опубликовано 9 ноября 1 час назад, Pastalker56 сказал: Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)? Тут пример,как раз для скриптов. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pastalker56 107 Опубликовано 9 ноября Hrust Спасибо. Я вот только немного не понял, часть с редактированием движка обязательна или нет? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 520 Опубликовано 9 ноября 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 068 Опубликовано 9 ноября (изменено) 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 ноября пользователем StrawFlux 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 932 Опубликовано 9 ноября 4 часа назад, Pastalker56 сказал: 2. Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)? Берешь и создаешь такой же, но с _16 на конце. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты