From 2f78d7352dc9824b1b967e2f85523f2c532f3e8c Mon Sep 17 00:00:00 2001 From: 0O0o0oOoO00 <11174151+0O0o0oOoO00@users.noreply.github.com> Date: Sat, 15 Nov 2025 21:24:04 +0800 Subject: [PATCH] add: more config when loading lua resources --- blcrack/cracker/cracker.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/blcrack/cracker/cracker.cpp b/blcrack/cracker/cracker.cpp index e884b3bb2..f362b8fde 100644 --- a/blcrack/cracker/cracker.cpp +++ b/blcrack/cracker/cracker.cpp @@ -60,7 +60,11 @@ static fnset_TimeScaleT get_Time_set_timeScale() { #endif Cracker::Cracker() - : m_state(lua_newthread(Utils::get_lua_state())) { + : m_state([]() -> lua_State* { + auto new_tr = lua_newthread(Utils::get_lua_state()); + SPDLOG_INFO("new lua_State: {}", (void*)new_tr); + return new_tr; + }()) { try { load_lua_resources(); hook_all_lua_functions(); @@ -477,6 +481,9 @@ void Cracker::print_value(std::vector& path) { } void Cracker::load_lua_resources() { + SPDLOG_INFO("Load lua resources"); + + SPDLOG_INFO("Load data proxies"); Lua::Table proxies = m_state["pg"]["proxyRegister"]["data"]; for (int i = 1; i <= proxies.size(); ++i) { Lua::Table proxy = proxies[i]; @@ -490,6 +497,8 @@ void Cracker::load_lua_resources() { m_data_proxy.world = proxy["facade"]["model"]["proxyMap"]["WorldProxy"]; } } + + SPDLOG_INFO("Load lua res"); m_lua_res.Clone = m_state["Clone"]; m_lua_res.Ship_getIntimacyLevel = m_state["Ship"]["getIntimacyLevel"]; m_lua_res.pg_intimacy_template = m_state["pg"]["intimacy_template"]; @@ -507,6 +516,7 @@ void Cracker::load_lua_resources() { .Dodge = AttributeType.get("Dodge"), }; + SPDLOG_INFO("Load lua functions"); m_original.GetBattleCheckResult = m_state["GetBattleCheckResult"]; m_original.FinishStageCommand_GeneralPackage = m_state["FinishStageCommand"]["GeneralPackage"]; m_original.Ship_intimacyAdditions = m_state["Ship"]["intimacyAdditions"]; @@ -537,6 +547,8 @@ void Cracker::load_lua_resources() { } void Cracker::hook_all_lua_functions() { + SPDLOG_INFO("Hook lua functions"); + // opsi_force_auto m_state["WorldMap"]["CanAutoFight"] = [this](sol::this_state L, Lua::VariadicArgs args) -> bool { if (!IS_ENABLED(OPSI_FORCE_AUTO)) {