Fix connecting + scheduler mp addresses
This commit is contained in:
parent
514f6cd310
commit
ac17a5ff1d
@ -225,6 +225,9 @@ namespace auth
|
|||||||
|
|
||||||
utils::hook::jump(0x140488BC1, get_direct_connect_stub(), true); // H1(1.4)
|
utils::hook::jump(0x140488BC1, get_direct_connect_stub(), true); // H1(1.4)
|
||||||
utils::hook::call(0x140250ED2, send_connect_data_stub); // H1(1.4)
|
utils::hook::call(0x140250ED2, send_connect_data_stub); // H1(1.4)
|
||||||
|
|
||||||
|
// Check for sending connect packet
|
||||||
|
utils::hook::set(0x14059A6E0, 0xC301B0);
|
||||||
}
|
}
|
||||||
|
|
||||||
command::add("guid", []()
|
command::add("guid", []()
|
||||||
|
@ -174,9 +174,9 @@ namespace patches
|
|||||||
// Fix mouse lag
|
// Fix mouse lag
|
||||||
utils::hook::nop(SELECT_VALUE(0x1403E3C05, 0x1404DB1AF), 6);
|
utils::hook::nop(SELECT_VALUE(0x1403E3C05, 0x1404DB1AF), 6);
|
||||||
scheduler::loop([]()
|
scheduler::loop([]()
|
||||||
{
|
{
|
||||||
SetThreadExecutionState(ES_DISPLAY_REQUIRED);
|
SetThreadExecutionState(ES_DISPLAY_REQUIRED);
|
||||||
}, scheduler::pipeline::main);
|
}, scheduler::pipeline::main);
|
||||||
|
|
||||||
// Prevent game from overriding cg_fov and cg_fovscale values
|
// Prevent game from overriding cg_fov and cg_fovscale values
|
||||||
gscr_set_save_dvar_hook.create(SELECT_VALUE(0x1402AE020, 0x14036B600), &gscr_set_save_dvar_stub);
|
gscr_set_save_dvar_hook.create(SELECT_VALUE(0x1402AE020, 0x14036B600), &gscr_set_save_dvar_stub);
|
||||||
|
@ -36,33 +36,33 @@ namespace scheduler
|
|||||||
void execute()
|
void execute()
|
||||||
{
|
{
|
||||||
callbacks_.access([&](task_list& tasks)
|
callbacks_.access([&](task_list& tasks)
|
||||||
|
{
|
||||||
|
this->merge_callbacks();
|
||||||
|
|
||||||
|
for (auto i = tasks.begin(); i != tasks.end();)
|
||||||
{
|
{
|
||||||
this->merge_callbacks();
|
const auto now = std::chrono::high_resolution_clock::now();
|
||||||
|
const auto diff = now - i->last_call;
|
||||||
|
|
||||||
for (auto i = tasks.begin(); i != tasks.end();)
|
if (diff < i->interval)
|
||||||
{
|
{
|
||||||
const auto now = std::chrono::high_resolution_clock::now();
|
++i;
|
||||||
const auto diff = now - i->last_call;
|
continue;
|
||||||
|
|
||||||
if (diff < i->interval)
|
|
||||||
{
|
|
||||||
++i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
i->last_call = now;
|
|
||||||
|
|
||||||
const auto res = i->handler();
|
|
||||||
if (res == cond_end)
|
|
||||||
{
|
|
||||||
i = tasks.erase(i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
i->last_call = now;
|
||||||
|
|
||||||
|
const auto res = i->handler();
|
||||||
|
if (res == cond_end)
|
||||||
|
{
|
||||||
|
i = tasks.erase(i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -181,8 +181,8 @@ namespace scheduler
|
|||||||
void post_unpack() override
|
void post_unpack() override
|
||||||
{
|
{
|
||||||
r_end_frame_hook.create(SELECT_VALUE(0x1404F7310, 0x1405FE470), scheduler::r_end_frame_stub); // H1(1.4)
|
r_end_frame_hook.create(SELECT_VALUE(0x1404F7310, 0x1405FE470), scheduler::r_end_frame_stub); // H1(1.4)
|
||||||
g_run_frame_hook.create(SELECT_VALUE(0x1402772D0, 0x1402772D0), scheduler::server_frame_stub); // H1(1.4)
|
g_run_frame_hook.create(SELECT_VALUE(0x1402772D0, 0x14033A640), scheduler::server_frame_stub); // H1(1.4)
|
||||||
main_frame_hook.create(SELECT_VALUE(0x1401CE8D0, 0x1401CE8D0), scheduler::main_frame_stub); // H1(1.4)
|
main_frame_hook.create(SELECT_VALUE(0x1401CE8D0, 0x1400D82A0), scheduler::main_frame_stub); // H1(1.4)
|
||||||
}
|
}
|
||||||
|
|
||||||
void pre_destroy() override
|
void pre_destroy() override
|
||||||
|
Loading…
Reference in New Issue
Block a user