Merge branch 'master' into vacuum-change

This commit is contained in:
biswop 2022-07-14 11:45:29 +10:00 committed by GitHub
commit bccdd9736c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 2127 additions and 2118 deletions

View File

@ -70,7 +70,6 @@ As well as setting up **`cheat-library`** as startup project.
- Auto Fish
- Kill Aura
- Mob Vacuum
- Music Event (temporary)
#### Teleport
- Chest/Oculi Teleport (Teleports to nearest)
@ -89,6 +88,7 @@ As well as setting up **`cheat-library`** as startup project.
- In-game Embedded Browser
- Enable Peaking
- Profile Changer
- Free Camera
- Texture Changer
- Paimon Follow

View File

@ -82,10 +82,10 @@ static IDXGISwapChainPresent findDirect11Present()
ID3D11DeviceContext* pContext = nullptr;
ID3D11Device* pDevice = nullptr;
if (/*FAILED(D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_WARP, NULL, NULL, &featureLevel, 1,
D3D11_SDK_VERSION, &swapChainDesc, &pSwapChain, &pDevice, NULL, &pContext)) &&*/
if (FAILED(D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_WARP, nullptr, 0, nullptr, 1, D3D11_SDK_VERSION,
&swapChainDesc, &pSwapChain, &pDevice, &featureLevel, &pContext)) &&
FAILED(D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION,
&swapChainDesc, &pSwapChain, &pDevice, &featureLevel, nullptr)))
&swapChainDesc, &pSwapChain, &pDevice, &featureLevel, &pContext)))
{
DestroyWindow(swapChainDesc.OutputWindow);
UnregisterClass(wc.lpszClassName, GetModuleHandle(nullptr));

View File

@ -202,6 +202,9 @@ namespace renderer
ImGui_ImplDX12_CreateDeviceObjects();
ImGui::GetIO().ImeWindowHandle = window;
static const std::string imguiPath = (util::GetCurrentPath() / "imgui.ini").string();
ImGui::GetIO().IniFilename = imguiPath.c_str();
io.SetPlatformImeDataFn = nullptr; // F**king bug take 4 hours of my life
}
@ -213,6 +216,8 @@ namespace renderer
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
static const std::string imguiPath = (util::GetCurrentPath() / "imgui.ini").string();
io.IniFilename = imguiPath.c_str();
LoadCustomFont();
SetupImGuiStyle();

View File

@ -62,6 +62,25 @@ namespace util
return (*c);
}
std::string GetModulePath(HMODULE hModule /*= nullptr*/)
{
char pathOut[MAX_PATH] = {};
GetModuleFileNameA(hModule, pathOut, MAX_PATH);
return std::filesystem::path(pathOut).parent_path().string();
}
static std::filesystem::path _currentPath;
void SetCurrentPath(const std::filesystem::path& current_path)
{
_currentPath = current_path;
}
std::filesystem::path GetCurrentPath()
{
return _currentPath;
}
std::optional<std::string> SelectDirectory(const char* title)
{
auto currPath = std::filesystem::current_path();

View File

@ -6,6 +6,7 @@
#include <vector>
#include <cheat-base/Logger.h>
#include <filesystem>
#include <SimpleIni.h>
@ -36,6 +37,11 @@ namespace util
std::string GetLastErrorAsString(DWORD errorId = 0);
int64_t GetCurrentTimeMillisec();
std::string GetModulePath(HMODULE hModule = nullptr);
void SetCurrentPath(const std::filesystem::path& curren_path);
std::filesystem::path GetCurrentPath();
std::vector<std::string> StringSplit(const std::string& delimiter, const std::string& content);
std::string SplitWords(const std::string& value);
std::string MakeCapital(std::string value);

View File

@ -20,6 +20,7 @@
<ClInclude Include="src\user\cheat\misc\sniffer\pipe\messages\PipePacketData.h" />
<ClInclude Include="src\user\cheat\misc\sniffer\pipe\PipeClient.h" />
<ClInclude Include="src\user\cheat\misc\sniffer\pipe\PipeIO.h" />
<ClInclude Include="src\user\cheat\player\AutoRun.h" />
<ClInclude Include="src\user\cheat\visuals\TextureChanger.h" />
<ClInclude Include="src\user\cheat\visuals\FreeCamera.h" />
<ClInclude Include="src\user\cheat\world\AutoSeelie.h" />
@ -96,7 +97,6 @@
<ClInclude Include="src\user\cheat\world\DumbEnemies.h" />
<ClInclude Include="src\user\cheat\world\KillAura.h" />
<ClInclude Include="src\user\cheat\world\MobVacuum.h" />
<ClInclude Include="src\user\cheat\world\MusicEvent.h" />
<ClInclude Include="src\user\cheat\world\VacuumLoot.h" />
<ClInclude Include="src\user\main.h" />
</ItemGroup>
@ -110,6 +110,7 @@
<ClCompile Include="src\user\cheat\misc\sniffer\pipe\messages\PipePacketData.cpp" />
<ClCompile Include="src\user\cheat\misc\sniffer\pipe\PipeClient.cpp" />
<ClCompile Include="src\user\cheat\misc\sniffer\pipe\PipeIO.cpp" />
<ClCompile Include="src\user\cheat\player\AutoRun.cpp" />
<ClCompile Include="src\user\cheat\visuals\TextureChanger.cpp" />
<ClCompile Include="src\user\cheat\visuals\FreeCamera.cpp" />
<ClCompile Include="src\user\cheat\world\AutoSeelie.cpp" />
@ -183,7 +184,6 @@
<ClCompile Include="src\user\cheat\world\DumbEnemies.cpp" />
<ClCompile Include="src\user\cheat\world\KillAura.cpp" />
<ClCompile Include="src\user\cheat\world\MobVacuum.cpp" />
<ClCompile Include="src\user\cheat\world\MusicEvent.cpp" />
<ClCompile Include="src\user\cheat\world\VacuumLoot.cpp" />
<ClCompile Include="src\user\main.cpp" />
</ItemGroup>
@ -880,8 +880,7 @@
</Command>
</PostBuildEvent>
<CustomBuildStep>
<Command>"$(OutDir)injector.exe"
powershell -nop -c "&amp; {sleep 20}"</Command>
<Command>"$(OutDir)injector.exe" powershell -nop -c "&amp;amp; {sleep 20}"</Command>
<Outputs>$(OutDir)_noexist.nope;%(Outputs)</Outputs>
<Inputs>$(TargetPath);%(Inputs)</Inputs>
</CustomBuildStep>

View File

@ -213,9 +213,6 @@
<ClInclude Include="src\user\cheat\visuals\Browser.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\user\cheat\world\MusicEvent.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\user\cheat\visuals\EnablePeaking.h">
<Filter>Header Files</Filter>
</ClInclude>
@ -246,6 +243,9 @@
<ClInclude Include="src\user\cheat\visuals\FreeCamera.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\user\cheat\player\AutoRun.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Font Include="res\Ruda-Bold.ttf" />
@ -417,9 +417,6 @@
<ClCompile Include="src\user\cheat\visuals\Browser.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\user\cheat\world\MusicEvent.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\user\cheat\visuals\EnablePeaking.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@ -450,6 +447,9 @@
<ClCompile Include="src\user\cheat\visuals\FreeCamera.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\user\cheat\player\AutoRun.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="res\res.rc">

View File

@ -1,13 +1,13 @@
{
"game_version": "2.7",
"game_version": "2.8",
"modules": {
"UnityPlayer.dll": {
"checksum": 17900298344514688789,
"timestamp": 132967628640000000
"checksum": 4999961552328781053,
"timestamp": 0
},
"UserAssembly.dll": {
"checksum": 7306786341503590701,
"timestamp": 132967628640000000
"checksum": 807890720029543258,
"timestamp": 0
}
}
}

View File

@ -5,249 +5,250 @@
// * IL2CPP API function pointers
// ******************************************************************************
#define il2cpp_add_internal_call_ptr 0x006CB6F0
#define il2cpp_alloc_ptr 0x006CB700
#define il2cpp_allocation_granularity_ptr 0x0019E6E0
#define il2cpp_array_class_get_ptr 0x006CB710
#define il2cpp_array_element_size_ptr 0x006CB720
#define il2cpp_array_get_byte_length_ptr 0x006EEA60
#define il2cpp_array_length_ptr 0x006CB730
#define il2cpp_array_new_ptr 0x006CB740
#define il2cpp_array_new_full_ptr 0x006CB750
#define il2cpp_array_new_specific_ptr 0x006CB760
#define il2cpp_array_object_header_size_ptr 0x006CB770
#define il2cpp_assembly_get_image_ptr 0x006CB8B0
#define il2cpp_bounded_array_class_get_ptr 0x006CB780
#define il2cpp_capture_memory_snapshot_ptr 0x006CB790
#define il2cpp_class_array_element_size_ptr 0x006CB7A0
#define il2cpp_class_enum_basetype_ptr 0x006CB7B0
#define il2cpp_class_for_each_ptr 0x006CB7C0
#define il2cpp_class_from_il2cpp_type_ptr 0x006CB7D0
#define il2cpp_class_from_name_ptr 0x006CB7E0
#define il2cpp_class_from_system_type_ptr 0x006CB7F0
#define il2cpp_class_from_type_ptr 0x006CB7D0
#define il2cpp_class_get_assemblyname_ptr 0x006CB800
#define il2cpp_class_get_bitmap_ptr 0x006CB810
#define il2cpp_class_get_bitmap_size_ptr 0x006CB830
#define il2cpp_class_get_data_size_ptr 0x006CB840
#define il2cpp_class_get_declaring_type_ptr 0x006CB850
#define il2cpp_class_get_element_class_ptr 0x006CB860
#define il2cpp_class_get_events_ptr 0x006CB870
#define il2cpp_class_get_field_from_name_ptr 0x006CB880
#define il2cpp_class_get_fields_ptr 0x006CB890
#define il2cpp_class_get_flags_ptr 0x006CB8A0
#define il2cpp_class_get_image_ptr 0x006CB8B0
#define il2cpp_class_get_interfaces_ptr 0x006CB8C0
#define il2cpp_class_get_method_from_name_ptr 0x006CB8D0
#define il2cpp_class_get_methods_ptr 0x006CB8E0
#define il2cpp_class_get_name_ptr 0x006CBFB0
#define il2cpp_class_get_namespace_ptr 0x006CC330
#define il2cpp_class_get_nested_types_ptr 0x006CB8F0
#define il2cpp_class_get_parent_ptr 0x006CB900
#define il2cpp_class_get_properties_ptr 0x006CB910
#define il2cpp_class_get_property_from_name_ptr 0x006CB920
#define il2cpp_class_get_rank_ptr 0x006CB930
#define il2cpp_class_get_static_field_data_ptr 0x00129FB0
#define il2cpp_class_get_type_ptr 0x006E7340
#define il2cpp_class_get_type_token_ptr 0x006CB940
#define il2cpp_class_get_userdata_offset_ptr 0x006CB950
#define il2cpp_class_has_attribute_ptr 0x006CB960
#define il2cpp_class_has_parent_ptr 0x006CB970
#define il2cpp_class_has_references_ptr 0x006CB980
#define il2cpp_class_instance_size_ptr 0x006CB990
#define il2cpp_class_is_abstract_ptr 0x006CB9A0
#define il2cpp_class_is_assignable_from_ptr 0x006CB9B0
#define il2cpp_class_is_blittable_ptr 0x006CB9C0
#define il2cpp_class_is_enum_ptr 0x006CB9D0
#define il2cpp_class_is_generic_ptr 0x006CB9E0
#define il2cpp_class_is_inflated_ptr 0x006CB9F0
#define il2cpp_class_is_interface_ptr 0x006CBA00
#define il2cpp_class_is_subclass_of_ptr 0x006CBA10
#define il2cpp_class_is_valuetype_ptr 0x006CBA20
#define il2cpp_class_num_fields_ptr 0x006CBA30
#define il2cpp_class_set_userdata_ptr 0x006CBA40
#define il2cpp_class_value_size_ptr 0x006CBA50
#define il2cpp_current_thread_get_frame_at_ptr 0x006CBA60
#define il2cpp_current_thread_get_stack_depth_ptr 0x006CBA70
#define il2cpp_current_thread_get_top_frame_ptr 0x006CBA90
#define il2cpp_current_thread_walk_frame_stack_ptr 0x006CBAA0
#define il2cpp_custom_attrs_construct_ptr 0x006CBAB0
#define il2cpp_custom_attrs_free_ptr 0x001C8D70
#define il2cpp_custom_attrs_from_class_ptr 0x006CBAC0
#define il2cpp_custom_attrs_from_method_ptr 0x006CBAE0
#define il2cpp_custom_attrs_get_attr_ptr 0x006CBB00
#define il2cpp_custom_attrs_has_attr_ptr 0x006CBB10
#define il2cpp_debug_get_method_info_ptr 0x006CBB20
#define il2cpp_debugger_set_agent_options_ptr 0x001C8D70
#define il2cpp_domain_assembly_open_ptr 0x006CBB30
#define il2cpp_domain_get_ptr 0x006CBB40
#define il2cpp_domain_get_assemblies_ptr 0x006CBB50
#define il2cpp_enable_object_type_mutex_ptr 0x006CBB80
#define il2cpp_exception_from_name_msg_ptr 0x006CBB90
#define il2cpp_field_get_flags_ptr 0x006CBBA0
#define il2cpp_field_get_name_ptr 0x006CB8B0
#define il2cpp_field_get_offset_ptr 0x006CBBB0
#define il2cpp_field_get_parent_ptr 0x006CBFB0
#define il2cpp_field_get_type_ptr 0x006CBBC0
#define il2cpp_field_get_value_ptr 0x006CBBD0
#define il2cpp_field_get_value_object_ptr 0x006CBBE0
#define il2cpp_field_has_attribute_ptr 0x006CBBF0
#define il2cpp_field_is_literal_ptr 0x006CBC00
#define il2cpp_field_set_value_ptr 0x006CBC10
#define il2cpp_field_set_value_object_ptr 0x006CBC20
#define il2cpp_field_static_get_value_ptr 0x006CBC30
#define il2cpp_field_static_set_value_ptr 0x006CBC40
#define il2cpp_format_exception_ptr 0x006CBC50
#define il2cpp_format_stack_trace_ptr 0x006CBD00
#define il2cpp_free_ptr 0x006E2A60
#define il2cpp_free_captured_memory_snapshot_ptr 0x006CBDB0
#define il2cpp_gc_collect_ptr 0x006CBDC0
#define il2cpp_gc_collect_a_little_ptr 0x006CBDD0
#define il2cpp_gc_disable_ptr 0x006CBDE0
#define il2cpp_gc_dump_append_text_to_log_ptr 0x006CBDF0
#define il2cpp_gc_dump_info_ptr 0x006CBE00
#define il2cpp_gc_dump_set_large_allocated_block_found_callback_ptr 0x006CBE10
#define il2cpp_gc_dump_set_small_allocated_block_found_callback_ptr 0x006CBE20
#define il2cpp_gc_enable_ptr 0x006CBE30
#define il2cpp_gc_foreach_heap_ptr 0x006CBE40
#define il2cpp_gc_get_heap_size_ptr 0x006CBE70
#define il2cpp_gc_get_max_time_slice_ns_ptr 0x006CBE80
#define il2cpp_gc_get_used_size_ptr 0x006CBE90
#define il2cpp_gc_has_strict_wbarriers_ptr 0x006D35C0
#define il2cpp_gc_is_disabled_ptr 0x006CBEA0
#define il2cpp_gc_is_incremental_ptr 0x006CBEB0
#define il2cpp_gc_set_external_allocation_tracker_ptr 0x001C8D70
#define il2cpp_gc_set_external_wbarrier_tracker_ptr 0x001C8D70
#define il2cpp_gc_set_max_time_slice_ns_ptr 0x006CBEC0
#define il2cpp_gc_set_object_malloc_callback_ptr 0x006CBED0
#define il2cpp_gc_set_object_return_freelist_callback_ptr 0x006CBEE0
#define il2cpp_gc_wbarrier_set_field_ptr 0x006CBEF0
#define il2cpp_gchandle_foreach_get_target_ptr 0x006CBF00
#define il2cpp_gchandle_free_ptr 0x006E2A50
#define il2cpp_gchandle_get_target_ptr 0x006CBF30
#define il2cpp_gchandle_new_ptr 0x006CBF40
#define il2cpp_gchandle_new_weakref_ptr 0x006CBF50
#define il2cpp_get_committed_memory_size_ptr 0x006CBF60
#define il2cpp_get_corlib_ptr 0x006CBF70
#define il2cpp_get_exception_argument_null_ptr 0x00757750
#define il2cpp_get_hash_table_memory_ptr 0x006CBF80
#define il2cpp_get_meta_data_pool_memory_ptr 0x006CBF90
#define il2cpp_image_get_assembly_ptr 0x006CBFB0
#define il2cpp_image_get_class_ptr 0x006CBFC0
#define il2cpp_image_get_class_count_ptr 0x006CBFD0
#define il2cpp_image_get_entry_point_ptr 0x006CBFE0
#define il2cpp_image_get_filename_ptr 0x006CB8B0
#define il2cpp_image_get_name_ptr 0x006CB8B0
#define il2cpp_init_ptr 0x006CBFF0
#define il2cpp_init_security_ptr 0x006CC020
#define il2cpp_init_utf16_ptr 0x006CC040
#define il2cpp_is_debugger_attached_ptr 0x006CC0F0
#define il2cpp_is_vm_thread_ptr 0x006CC100
#define il2cpp_method_get_class_ptr 0x006CC330
#define il2cpp_method_get_declaring_type_ptr 0x006CC330
#define il2cpp_method_get_flags_ptr 0x006CC110
#define il2cpp_method_get_from_reflection_ptr 0x006CBFB0
#define il2cpp_method_get_name_ptr 0x006CBFB0
#define il2cpp_method_get_object_ptr 0x006CC140
#define il2cpp_method_get_param_ptr 0x006CC150
#define il2cpp_method_get_param_count_ptr 0x006CC160
#define il2cpp_method_get_param_name_ptr 0x006CC170
#define il2cpp_method_get_return_type_ptr 0x006CC180
#define il2cpp_method_get_token_ptr 0x006CC190
#define il2cpp_method_has_attribute_ptr 0x006CC1A0
#define il2cpp_method_is_generic_ptr 0x006CC1B0
#define il2cpp_method_is_inflated_ptr 0x006CC1C0
#define il2cpp_method_is_instance_ptr 0x006CC1D0
#define il2cpp_monitor_enter_ptr 0x006CC1E0
#define il2cpp_monitor_exit_ptr 0x006CC1F0
#define il2cpp_monitor_pulse_ptr 0x006CC200
#define il2cpp_monitor_pulse_all_ptr 0x006CC210
#define il2cpp_monitor_try_enter_ptr 0x006CC220
#define il2cpp_monitor_try_wait_ptr 0x006CC230
#define il2cpp_monitor_wait_ptr 0x006CC240
#define il2cpp_object_get_class_ptr 0x006CB8B0
#define il2cpp_object_get_size_ptr 0x006CC250
#define il2cpp_object_get_virtual_method_ptr 0x006CC260
#define il2cpp_object_header_size_ptr 0x0019E6E0
#define il2cpp_object_new_ptr 0x006CC270
#define il2cpp_object_unbox_ptr 0x006CC290
#define il2cpp_offset_of_array_bounds_in_array_object_header_ptr 0x0019E6E0
#define il2cpp_offset_of_array_length_in_array_object_header_ptr 0x00121970
#define il2cpp_override_stack_backtrace_ptr 0x006CC2A0
#define il2cpp_profiler_install_ptr 0x006CC2B0
#define il2cpp_profiler_install_allocation_ptr 0x006CC2C0
#define il2cpp_profiler_install_enter_leave_ptr 0x006CC2D0
#define il2cpp_profiler_install_fileio_ptr 0x006CC2E0
#define il2cpp_profiler_install_gc_ptr 0x006CC2F0
#define il2cpp_profiler_install_thread_ptr 0x006CC300
#define il2cpp_profiler_set_events_ptr 0x006CC310
#define il2cpp_property_get_flags_ptr 0x006CC320
#define il2cpp_property_get_get_method_ptr 0x006CBFB0
#define il2cpp_property_get_name_ptr 0x006CBBC0
#define il2cpp_property_get_parent_ptr 0x006CB8B0
#define il2cpp_property_get_set_method_ptr 0x006CC330
#define il2cpp_raise_exception_ptr 0x006CC340
#define il2cpp_register_debugger_agent_transport_ptr 0x001C8D70
#define il2cpp_register_filedelete_callback_ptr 0x006CC350
#define il2cpp_register_filemodify_callback_ptr 0x006CC360
#define il2cpp_register_log_callback_ptr 0x006CC370
#define il2cpp_resolve_icall_ptr 0x006CC380
#define il2cpp_runtime_class_init_ptr 0x00757A20
#define il2cpp_runtime_invoke_ptr 0x006CC390
#define il2cpp_runtime_invoke_convert_args_ptr 0x006CC3B0
#define il2cpp_runtime_object_init_ptr 0x006CC3D0
#define il2cpp_runtime_object_init_exception_ptr 0x006CC3E0
#define il2cpp_runtime_unhandled_exception_policy_set_ptr 0x006CC3F0
#define il2cpp_set_commandline_arguments_ptr 0x006CC400
#define il2cpp_set_commandline_arguments_utf16_ptr 0x006CC410
#define il2cpp_set_config_ptr 0x006CC420
#define il2cpp_set_config_dir_ptr 0x006CC430
#define il2cpp_set_config_utf16_ptr 0x006CC440
#define il2cpp_set_data_dir_ptr 0x006CC450
#define il2cpp_set_default_thread_affinity_ptr 0x006CC460
#define il2cpp_set_disable_gc_parallel_mark_ptr 0x006CC470
#define il2cpp_set_find_plugin_callback_ptr 0x006CC480
#define il2cpp_set_memory_callbacks_ptr 0x006CC490
#define il2cpp_set_output_redirected_file_path_ptr 0x006CC4A0
#define il2cpp_set_parallel_android_affinity_ptr 0x006CC4B0
#define il2cpp_set_parallel_android_cupcount_ptr 0x006CC4C0
#define il2cpp_set_temp_dir_ptr 0x006CC4D0
#define il2cpp_shutdown_ptr 0x006CC4E0
#define il2cpp_start_gc_world_ptr 0x006CC4F0
#define il2cpp_stats_dump_to_file_ptr 0x006D35C0
#define il2cpp_stats_get_value_ptr 0x006E2AF0
#define il2cpp_stop_gc_world_ptr 0x006CC500
#define il2cpp_string_chars_ptr 0x006CC510
#define il2cpp_string_intern_ptr 0x006CC520
#define il2cpp_string_is_interned_ptr 0x006CC530
#define il2cpp_string_length_ptr 0x006CC540
#define il2cpp_string_new_ptr 0x00757A30
#define il2cpp_string_new_len_ptr 0x006CC550
#define il2cpp_string_new_utf16_ptr 0x006CC560
#define il2cpp_string_new_wrapper_ptr 0x00757A30
#define il2cpp_thread_attach_ptr 0x006CC570
#define il2cpp_thread_current_ptr 0x006CC580
#define il2cpp_thread_detach_ptr 0x006CC590
#define il2cpp_thread_get_all_attached_threads_ptr 0x006CC5A0
#define il2cpp_thread_get_frame_at_ptr 0x006CC5B0
#define il2cpp_thread_get_stack_depth_ptr 0x006CC5C0
#define il2cpp_thread_get_top_frame_ptr 0x006CC5D0
#define il2cpp_thread_walk_frame_stack_ptr 0x006CC5E0
#define il2cpp_type_equals_ptr 0x006CC5F0
#define il2cpp_type_get_assembly_qualified_name_ptr 0x006CC600
#define il2cpp_type_get_attrs_ptr 0x006CC6C0
#define il2cpp_type_get_class_or_element_class_ptr 0x006CC6D0
#define il2cpp_type_get_name_ptr 0x006CC6E0
#define il2cpp_type_get_name_chunked_ptr 0x006CC7A0
#define il2cpp_type_get_object_ptr 0x00757A50
#define il2cpp_type_get_type_ptr 0x006CC7B0
#define il2cpp_type_is_byref_ptr 0x006CC7C0
#define il2cpp_type_is_pointer_type_ptr 0x006CC7D0
#define il2cpp_type_is_static_ptr 0x006CC7E0
#define il2cpp_unhandled_exception_ptr 0x006EC170
#define il2cpp_unity_install_unitytls_interface_ptr 0x006CC7F0
#define il2cpp_unity_liveness_calculation_begin_ptr 0x006CC800
#define il2cpp_unity_liveness_calculation_end_ptr 0x006CC810
#define il2cpp_unity_liveness_calculation_from_root_ptr 0x006CC820
#define il2cpp_unity_liveness_calculation_from_statics_ptr 0x006CC830
#define il2cpp_value_box_ptr 0x007575C0
#define il2cpp_add_internal_call_ptr 0x0065EF30
#define il2cpp_alloc_ptr 0x0065EF40
#define il2cpp_allocation_granularity_ptr 0x00710530
#define il2cpp_array_class_get_ptr 0x0065EF50
#define il2cpp_array_element_size_ptr 0x0065EF60
#define il2cpp_array_get_byte_length_ptr 0x00681860
#define il2cpp_array_length_ptr 0x0065EF70
#define il2cpp_array_new_ptr 0x0065EF80
#define il2cpp_array_new_full_ptr 0x0065EF90
#define il2cpp_array_new_specific_ptr 0x0065EFA0
#define il2cpp_array_object_header_size_ptr 0x0065EFB0
#define il2cpp_assembly_get_image_ptr 0x0065F830
#define il2cpp_bounded_array_class_get_ptr 0x0065EFC0
#define il2cpp_capture_memory_snapshot_ptr 0x0065EFD0
#define il2cpp_class_array_element_size_ptr 0x0065EFE0
#define il2cpp_class_enum_basetype_ptr 0x0065EFF0
#define il2cpp_class_for_each_ptr 0x0065F000
#define il2cpp_class_from_il2cpp_type_ptr 0x0065F010
#define il2cpp_class_from_name_ptr 0x0065F020
#define il2cpp_class_from_system_type_ptr 0x0065F030
#define il2cpp_class_from_type_ptr 0x0065F010
#define il2cpp_class_get_assemblyname_ptr 0x0065F040
#define il2cpp_class_get_bitmap_ptr 0x0065F050
#define il2cpp_class_get_bitmap_size_ptr 0x0065F070
#define il2cpp_class_get_data_size_ptr 0x0065F080
#define il2cpp_class_get_declaring_type_ptr 0x0065F090
#define il2cpp_class_get_element_class_ptr 0x0065F0A0
#define il2cpp_class_get_events_ptr 0x0065F0B0
#define il2cpp_class_get_field_from_name_ptr 0x0065F0C0
#define il2cpp_class_get_fields_ptr 0x0065F0D0
#define il2cpp_class_get_flags_ptr 0x0065F0E0
#define il2cpp_class_get_image_ptr 0x0065F830
#define il2cpp_class_get_interfaces_ptr 0x0065F0F0
#define il2cpp_class_get_method_from_name_ptr 0x0065F100
#define il2cpp_class_get_methods_ptr 0x0065F110
#define il2cpp_class_get_name_ptr 0x0065F7F0
#define il2cpp_class_get_namespace_ptr 0x0065FB70
#define il2cpp_class_get_nested_types_ptr 0x0065F120
#define il2cpp_class_get_parent_ptr 0x0065F130
#define il2cpp_class_get_properties_ptr 0x0065F140
#define il2cpp_class_get_property_from_name_ptr 0x0065F150
#define il2cpp_class_get_rank_ptr 0x0065F160
#define il2cpp_class_get_static_field_data_ptr 0x0065F170
#define il2cpp_class_get_type_ptr 0x0065F180
#define il2cpp_class_get_type_token_ptr 0x0065F190
#define il2cpp_class_get_userdata_offset_ptr 0x0065F1A0
#define il2cpp_class_has_attribute_ptr 0x0065F1B0
#define il2cpp_class_has_parent_ptr 0x0065F1C0
#define il2cpp_class_has_references_ptr 0x0065F1D0
#define il2cpp_class_instance_size_ptr 0x0065F1E0
#define il2cpp_class_is_abstract_ptr 0x0065F1F0
#define il2cpp_class_is_assignable_from_ptr 0x0065F200
#define il2cpp_class_is_blittable_ptr 0x0065F210
#define il2cpp_class_is_enum_ptr 0x0065F220
#define il2cpp_class_is_generic_ptr 0x0065F230
#define il2cpp_class_is_inflated_ptr 0x0065F240
#define il2cpp_class_is_interface_ptr 0x0065F250
#define il2cpp_class_is_subclass_of_ptr 0x0065F260
#define il2cpp_class_is_valuetype_ptr 0x006EA550
#define il2cpp_class_num_fields_ptr 0x0065F270
#define il2cpp_class_set_userdata_ptr 0x0015A460
#define il2cpp_class_value_size_ptr 0x0065F280
#define il2cpp_current_thread_get_frame_at_ptr 0x0065F290
#define il2cpp_current_thread_get_stack_depth_ptr 0x0065F2A0
#define il2cpp_current_thread_get_top_frame_ptr 0x0065F2C0
#define il2cpp_current_thread_walk_frame_stack_ptr 0x0065F2D0
#define il2cpp_custom_attrs_construct_ptr 0x0065F2E0
#define il2cpp_custom_attrs_free_ptr 0x00161B80
#define il2cpp_custom_attrs_from_class_ptr 0x0065F2F0
#define il2cpp_custom_attrs_from_method_ptr 0x0065F310
#define il2cpp_custom_attrs_get_attr_ptr 0x0065F330
#define il2cpp_custom_attrs_has_attr_ptr 0x0065F340
#define il2cpp_debug_get_method_info_ptr 0x0065F350
#define il2cpp_debugger_set_agent_options_ptr 0x00161B80
#define il2cpp_domain_assembly_open_ptr 0x0065F360
#define il2cpp_domain_get_ptr 0x0065F370
#define il2cpp_domain_get_assemblies_ptr 0x0065F380
#define il2cpp_enable_object_type_mutex_ptr 0x0065F3B0
#define il2cpp_exception_from_name_msg_ptr 0x0065F3C0
#define il2cpp_field_get_flags_ptr 0x0065F3D0
#define il2cpp_field_get_name_ptr 0x0065F830
#define il2cpp_field_get_offset_ptr 0x0065F3E0
#define il2cpp_field_get_parent_ptr 0x0065F7F0
#define il2cpp_field_get_type_ptr 0x0065FB60
#define il2cpp_field_get_value_ptr 0x0065F3F0
#define il2cpp_field_get_value_object_ptr 0x0065F400
#define il2cpp_field_has_attribute_ptr 0x0065F410
#define il2cpp_field_is_literal_ptr 0x0065F420
#define il2cpp_field_set_value_ptr 0x0065F430
#define il2cpp_field_set_value_object_ptr 0x0065F440
#define il2cpp_field_static_get_value_ptr 0x0065F450
#define il2cpp_field_static_set_value_ptr 0x0065F460
#define il2cpp_format_exception_ptr 0x0065F470
#define il2cpp_format_stack_trace_ptr 0x0065F520
#define il2cpp_free_ptr 0x0065F5D0
#define il2cpp_free_captured_memory_snapshot_ptr 0x0065F5E0
#define il2cpp_gc_collect_ptr 0x0067AC20
#define il2cpp_gc_collect_a_little_ptr 0x0065F5F0
#define il2cpp_gc_disable_ptr 0x0065F600
#define il2cpp_gc_dump_append_text_to_log_ptr 0x0065F610
#define il2cpp_gc_dump_info_ptr 0x0065F620
#define il2cpp_gc_dump_set_large_allocated_block_found_callback_ptr 0x0065F630
#define il2cpp_gc_dump_set_small_allocated_block_found_callback_ptr 0x0065F640
#define il2cpp_gc_enable_ptr 0x0065F650
#define il2cpp_gc_foreach_heap_ptr 0x0065F660
#define il2cpp_gc_get_heap_size_ptr 0x0065F690
#define il2cpp_gc_get_max_time_slice_ns_ptr 0x0065F6A0
#define il2cpp_gc_get_used_size_ptr 0x0065F6B0
#define il2cpp_gc_has_strict_wbarriers_ptr 0x006665C0
#define il2cpp_gc_is_disabled_ptr 0x0065F6C0
#define il2cpp_gc_is_incremental_ptr 0x0065F6D0
#define il2cpp_gc_set_enable_get_mem_address_hint_ptr 0x0065F6E0
#define il2cpp_gc_set_external_allocation_tracker_ptr 0x00161B80
#define il2cpp_gc_set_external_wbarrier_tracker_ptr 0x00161B80
#define il2cpp_gc_set_max_time_slice_ns_ptr 0x0065F6F0
#define il2cpp_gc_set_object_malloc_callback_ptr 0x0065F700
#define il2cpp_gc_set_object_return_freelist_callback_ptr 0x0065F710
#define il2cpp_gc_wbarrier_set_field_ptr 0x0065F720
#define il2cpp_gchandle_foreach_get_target_ptr 0x0065F730
#define il2cpp_gchandle_free_ptr 0x006758B0
#define il2cpp_gchandle_get_target_ptr 0x0065F760
#define il2cpp_gchandle_new_ptr 0x0065F770
#define il2cpp_gchandle_new_weakref_ptr 0x0065F780
#define il2cpp_get_committed_memory_size_ptr 0x0065F790
#define il2cpp_get_corlib_ptr 0x0065F7A0
#define il2cpp_get_exception_argument_null_ptr 0x0065F7B0
#define il2cpp_get_hash_table_memory_ptr 0x0065F7C0
#define il2cpp_get_meta_data_pool_memory_ptr 0x0065F7D0
#define il2cpp_image_get_assembly_ptr 0x0065F7F0
#define il2cpp_image_get_class_ptr 0x0065F800
#define il2cpp_image_get_class_count_ptr 0x0065F810
#define il2cpp_image_get_entry_point_ptr 0x0065F820
#define il2cpp_image_get_filename_ptr 0x0065F830
#define il2cpp_image_get_name_ptr 0x0065F830
#define il2cpp_init_ptr 0x0065F840
#define il2cpp_init_security_ptr 0x0065F870
#define il2cpp_init_utf16_ptr 0x0065F890
#define il2cpp_is_debugger_attached_ptr 0x0067BF10
#define il2cpp_is_vm_thread_ptr 0x0065F940
#define il2cpp_method_get_class_ptr 0x0065FB70
#define il2cpp_method_get_declaring_type_ptr 0x0065FB70
#define il2cpp_method_get_flags_ptr 0x0065F950
#define il2cpp_method_get_from_reflection_ptr 0x0065F7F0
#define il2cpp_method_get_name_ptr 0x0065F7F0
#define il2cpp_method_get_object_ptr 0x0065F980
#define il2cpp_method_get_param_ptr 0x0065F990
#define il2cpp_method_get_param_count_ptr 0x0065F9A0
#define il2cpp_method_get_param_name_ptr 0x0065F9B0
#define il2cpp_method_get_return_type_ptr 0x0065F9C0
#define il2cpp_method_get_token_ptr 0x0065F9D0
#define il2cpp_method_has_attribute_ptr 0x0065F9E0
#define il2cpp_method_is_generic_ptr 0x0065F9F0
#define il2cpp_method_is_inflated_ptr 0x0065FA00
#define il2cpp_method_is_instance_ptr 0x0065FA10
#define il2cpp_monitor_enter_ptr 0x0065FA20
#define il2cpp_monitor_exit_ptr 0x0065FA30
#define il2cpp_monitor_pulse_ptr 0x0065FA40
#define il2cpp_monitor_pulse_all_ptr 0x0065FA50
#define il2cpp_monitor_try_enter_ptr 0x0065FA60
#define il2cpp_monitor_try_wait_ptr 0x0065FA70
#define il2cpp_monitor_wait_ptr 0x0065FA80
#define il2cpp_object_get_class_ptr 0x0065F830
#define il2cpp_object_get_size_ptr 0x0065FA90
#define il2cpp_object_get_virtual_method_ptr 0x0065FAA0
#define il2cpp_object_header_size_ptr 0x00710530
#define il2cpp_object_new_ptr 0x0065FAB0
#define il2cpp_object_unbox_ptr 0x006EA540
#define il2cpp_offset_of_array_bounds_in_array_object_header_ptr 0x00710530
#define il2cpp_offset_of_array_length_in_array_object_header_ptr 0x00137CE0
#define il2cpp_override_stack_backtrace_ptr 0x0065FAD0
#define il2cpp_profiler_install_ptr 0x0065FAE0
#define il2cpp_profiler_install_allocation_ptr 0x0065FAF0
#define il2cpp_profiler_install_enter_leave_ptr 0x0065FB00
#define il2cpp_profiler_install_fileio_ptr 0x0065FB10
#define il2cpp_profiler_install_gc_ptr 0x0065FB20
#define il2cpp_profiler_install_thread_ptr 0x0065FB30
#define il2cpp_profiler_set_events_ptr 0x0065FB40
#define il2cpp_property_get_flags_ptr 0x0065FB50
#define il2cpp_property_get_get_method_ptr 0x0065F7F0
#define il2cpp_property_get_name_ptr 0x0065FB60
#define il2cpp_property_get_parent_ptr 0x0065F830
#define il2cpp_property_get_set_method_ptr 0x0065FB70
#define il2cpp_raise_exception_ptr 0x0065FB80
#define il2cpp_register_debugger_agent_transport_ptr 0x00161B80
#define il2cpp_register_filedelete_callback_ptr 0x0065FB90
#define il2cpp_register_filemodify_callback_ptr 0x0065FBA0
#define il2cpp_register_log_callback_ptr 0x0065FBB0
#define il2cpp_resolve_icall_ptr 0x0065FBC0
#define il2cpp_runtime_class_init_ptr 0x006EA900
#define il2cpp_runtime_invoke_ptr 0x0065FBD0
#define il2cpp_runtime_invoke_convert_args_ptr 0x0065FBF0
#define il2cpp_runtime_object_init_ptr 0x0065FC10
#define il2cpp_runtime_object_init_exception_ptr 0x0065FC20
#define il2cpp_runtime_unhandled_exception_policy_set_ptr 0x0065FC30
#define il2cpp_set_commandline_arguments_ptr 0x0065FC40
#define il2cpp_set_commandline_arguments_utf16_ptr 0x0065FC50
#define il2cpp_set_config_ptr 0x0065FC60
#define il2cpp_set_config_dir_ptr 0x0065FC70
#define il2cpp_set_config_utf16_ptr 0x0065FC80
#define il2cpp_set_data_dir_ptr 0x0065FC90
#define il2cpp_set_default_thread_affinity_ptr 0x0065FCA0
#define il2cpp_set_disable_gc_parallel_mark_ptr 0x0065FCB0
#define il2cpp_set_find_plugin_callback_ptr 0x0065FCC0
#define il2cpp_set_memory_callbacks_ptr 0x0065FCD0
#define il2cpp_set_output_redirected_file_path_ptr 0x0065FCE0
#define il2cpp_set_parallel_android_affinity_ptr 0x0065FCF0
#define il2cpp_set_parallel_android_cupcount_ptr 0x0065FD00
#define il2cpp_set_temp_dir_ptr 0x0065FD10
#define il2cpp_shutdown_ptr 0x0065FD20
#define il2cpp_start_gc_world_ptr 0x0065FD30
#define il2cpp_stats_dump_to_file_ptr 0x006665C0
#define il2cpp_stats_get_value_ptr 0x006E7420
#define il2cpp_stop_gc_world_ptr 0x0065FD40
#define il2cpp_string_chars_ptr 0x0065FD50
#define il2cpp_string_intern_ptr 0x0065FD60
#define il2cpp_string_is_interned_ptr 0x0065FD70
#define il2cpp_string_length_ptr 0x0065FD80
#define il2cpp_string_new_ptr 0x006EA910
#define il2cpp_string_new_len_ptr 0x0065FD90
#define il2cpp_string_new_utf16_ptr 0x0065FDA0
#define il2cpp_string_new_wrapper_ptr 0x006EA910
#define il2cpp_thread_attach_ptr 0x0065FDB0
#define il2cpp_thread_current_ptr 0x00676210
#define il2cpp_thread_detach_ptr 0x0065FDC0
#define il2cpp_thread_get_all_attached_threads_ptr 0x0065FDD0
#define il2cpp_thread_get_frame_at_ptr 0x0065FDE0
#define il2cpp_thread_get_stack_depth_ptr 0x0065FDF0
#define il2cpp_thread_get_top_frame_ptr 0x0065FE00
#define il2cpp_thread_walk_frame_stack_ptr 0x0065FE10
#define il2cpp_type_equals_ptr 0x0065FE20
#define il2cpp_type_get_assembly_qualified_name_ptr 0x0065FE30
#define il2cpp_type_get_attrs_ptr 0x0065FEF0
#define il2cpp_type_get_class_or_element_class_ptr 0x0065FF00
#define il2cpp_type_get_name_ptr 0x0065FF10
#define il2cpp_type_get_name_chunked_ptr 0x0065FFD0
#define il2cpp_type_get_object_ptr 0x0065FFE0
#define il2cpp_type_get_type_ptr 0x0065FFF0
#define il2cpp_type_is_byref_ptr 0x00660000
#define il2cpp_type_is_pointer_type_ptr 0x00660010
#define il2cpp_type_is_static_ptr 0x00660020
#define il2cpp_unhandled_exception_ptr 0x00660030
#define il2cpp_unity_install_unitytls_interface_ptr 0x00660040
#define il2cpp_unity_liveness_calculation_begin_ptr 0x00660050
#define il2cpp_unity_liveness_calculation_end_ptr 0x00660060
#define il2cpp_unity_liveness_calculation_from_root_ptr 0x00660070
#define il2cpp_unity_liveness_calculation_from_statics_ptr 0x00660080
#define il2cpp_value_box_ptr 0x00660090

View File

@ -1,602 +1,303 @@
// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
// Target Unity version: 2019.4.21 - 2019.4.24
#ifndef DO_API_NO_RETURN
#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p)
#endif
DO_API(int, il2cpp_init, (const char* domain_name));
DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name));
DO_API(void, il2cpp_shutdown, ());
DO_API(void, il2cpp_set_config_dir, (const char *config_path));
DO_API(void, il2cpp_set_data_dir, (const char *data_path));
DO_API(void, il2cpp_set_temp_dir, (const char *temp_path));
DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir));
DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir));
DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath));
DO_API(void, il2cpp_set_config, (const char* executablePath));
DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks));
DO_API(const Il2CppImage*, il2cpp_get_corlib, ());
DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method));
DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name));
DO_API(void*, il2cpp_alloc, (size_t size));
DO_API(void, il2cpp_free, (void* ptr));
// array
DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank));
DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array));
DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array));
DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length));
DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length));
DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds));
DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded));
DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class));
// assembly
DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly));
// class
DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData));
DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass));
DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces));
DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc));
DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type));
DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name));
DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type));
DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass));
DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter));
DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter));
DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter));
DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter));
DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter));
DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name));
DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name));
DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter));
DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount));
DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass));
DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData));
DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass));
DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass));
DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass));
DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass));
DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass));
DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass));
DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align));
DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass));
DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass));
DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass));
DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type));
DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass));
DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass));
DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class));
DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass));
DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass));
DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass));
DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass));
DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass));
DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass));
// testing only
DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass));
DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap));
// stats
DO_API(bool, il2cpp_stats_dump_to_file, (const char *path));
DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat));
// domain
DO_API(Il2CppDomain*, il2cpp_domain_get, ());
DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name));
DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size));
// exception
DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*));
DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg));
DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg));
DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size));
DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size));
DO_API(void, il2cpp_unhandled_exception, (Il2CppException*));
// field
DO_API(int, il2cpp_field_get_flags, (FieldInfo * field));
DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field));
DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field));
DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field));
DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field));
DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value));
DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj));
DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class));
DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value));
DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value));
DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value));
DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value));
DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field));
// gc
DO_API(void, il2cpp_gc_collect, (int maxGenerations));
DO_API(int32_t, il2cpp_gc_collect_a_little, ());
DO_API(void, il2cpp_gc_disable, ());
DO_API(void, il2cpp_gc_enable, ());
DO_API(bool, il2cpp_gc_is_disabled, ());
DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ());
DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice));
DO_API(bool, il2cpp_gc_is_incremental, ());
DO_API(int64_t, il2cpp_gc_get_used_size, ());
DO_API(int64_t, il2cpp_gc_get_heap_size, ());
DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object));
DO_API(bool, il2cpp_gc_has_strict_wbarriers, ());
DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int)));
DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**)));
DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData));
DO_API(void, il2cpp_stop_gc_world, ());
DO_API(void, il2cpp_start_gc_world, ());
// gchandle
DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned));
DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection));
DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle));
DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle));
DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData));
// vm runtime info
DO_API(uint32_t, il2cpp_object_header_size, ());
DO_API(uint32_t, il2cpp_array_object_header_size, ());
DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ());
DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ());
DO_API(uint32_t, il2cpp_allocation_granularity, ());
// liveness
DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped));
DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state));
DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state));
DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state));
// method
DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method));
DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method));
DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method));
DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method));
DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass));
DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method));
DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method));
DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method));
DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method));
DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index));
DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method));
DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class));
DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags));
DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method));
DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index));
// profiler
#if IL2CPP_ENABLE_PROFILER
#endif
// property
DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop));
DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop));
DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop));
DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop));
DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop));
// object
DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj));
DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj));
DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method));
DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass));
DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj));
DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data));
// monitor
DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj));
DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout));
DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj));
DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj));
DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj));
DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj));
DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout));
// runtime
DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc));
DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc));
DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass));
DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj));
DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc));
DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value));
// string
DO_API(int32_t, il2cpp_string_length, (Il2CppString * str));
DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str));
DO_API(Il2CppString*, il2cpp_string_new, (const char* str));
DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length));
DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len));
DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str));
DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str));
DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str));
// thread
DO_API(Il2CppThread*, il2cpp_thread_current, ());
DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain));
DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread));
DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size));
DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread));
// stacktrace
DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data));
DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data));
DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame));
DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame));
DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame));
DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame));
DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ());
DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread));
DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc));
// type
DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type));
DO_API(int, il2cpp_type_get_type, (const Il2CppType * type));
DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type));
DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type));
DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type));
DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type));
DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType));
DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type));
DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type));
DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type));
// image
DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image));
DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image));
DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image));
DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image));
DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image));
DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index));
// Memory information
DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ());
DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot));
DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method));
// Logging
DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method));
// Debugger
DO_API(void, il2cpp_debugger_set_agent_options, (const char* options));
DO_API(bool, il2cpp_is_debugger_attached, ());
DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport));
// Debug metadata
DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo));
// TLS module
DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct));
// custom attributes
DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass));
DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method));
DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass));
DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass));
DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo));
DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo));
// Il2CppClass user data for GetComponent optimization
DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata));
DO_API(int, il2cpp_class_get_userdata_offset, ());
DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask));
// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
// Target Unity version: 2019.4.21 - 2019.4.24
#ifndef DO_API_NO_RETURN
#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p)
#endif
DO_API(int, il2cpp_init, (const char* domain_name));
DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name));
DO_API(void, il2cpp_shutdown, ());
DO_API(void, il2cpp_set_config_dir, (const char *config_path));
DO_API(void, il2cpp_set_data_dir, (const char *data_path));
DO_API(void, il2cpp_set_temp_dir, (const char *temp_path));
DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir));
DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir));
DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath));
DO_API(void, il2cpp_set_config, (const char* executablePath));
DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks));
DO_API(const Il2CppImage*, il2cpp_get_corlib, ());
DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method));
DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name));
DO_API(void*, il2cpp_alloc, (size_t size));
DO_API(void, il2cpp_free, (void* ptr));
// array
DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank));
DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array));
DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array));
DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length));
DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length));
DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds));
DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded));
DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class));
// assembly
DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly));
// class
DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData));
DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass));
DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces));
DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc));
DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type));
DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name));
DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type));
DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass));
DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter));
DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter));
DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter));
DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter));
DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter));
DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name));
DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name));
DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter));
DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount));
DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass));
DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData));
DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass));
DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass));
DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass));
DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass));
DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass));
DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass));
DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align));
DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass));
DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass));
DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass));
DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type));
DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass));
DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass));
DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class));
DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass));
DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass));
DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass));
DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass));
DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass));
DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass));
DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass));
// testing only
DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass));
DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap));
// stats
DO_API(bool, il2cpp_stats_dump_to_file, (const char *path));
DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat));
// domain
DO_API(Il2CppDomain*, il2cpp_domain_get, ());
DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name));
DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size));
// exception
DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*));
DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg));
DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg));
DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size));
DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size));
DO_API(void, il2cpp_unhandled_exception, (Il2CppException*));
// field
DO_API(int, il2cpp_field_get_flags, (FieldInfo * field));
DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field));
DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field));
DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field));
DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field));
DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value));
DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj));
DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class));
DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value));
DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value));
DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value));
DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value));
DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field));
// gc
DO_API(void, il2cpp_gc_collect, (int maxGenerations));
DO_API(int32_t, il2cpp_gc_collect_a_little, ());
DO_API(void, il2cpp_gc_disable, ());
DO_API(void, il2cpp_gc_enable, ());
DO_API(bool, il2cpp_gc_is_disabled, ());
DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ());
DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice));
DO_API(bool, il2cpp_gc_is_incremental, ());
DO_API(int64_t, il2cpp_gc_get_used_size, ());
DO_API(int64_t, il2cpp_gc_get_heap_size, ());
DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object));
DO_API(bool, il2cpp_gc_has_strict_wbarriers, ());
DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int)));
DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**)));
DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData));
DO_API(void, il2cpp_stop_gc_world, ());
DO_API(void, il2cpp_start_gc_world, ());
// gchandle
DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned));
DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection));
DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle));
DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle));
DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData));
// vm runtime info
DO_API(uint32_t, il2cpp_object_header_size, ());
DO_API(uint32_t, il2cpp_array_object_header_size, ());
DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ());
DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ());
DO_API(uint32_t, il2cpp_allocation_granularity, ());
// liveness
DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped));
DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state));
DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state));
DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state));
// method
DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method));
DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method));
DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method));
DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method));
DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass));
DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method));
DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method));
DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method));
DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method));
DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index));
DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method));
DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class));
DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags));
DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method));
DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index));
// profiler
#if IL2CPP_ENABLE_PROFILER
#endif
// property
DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop));
DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop));
DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop));
DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop));
DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop));
// object
DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj));
DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj));
DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method));
DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass));
DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj));
DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data));
// monitor
DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj));
DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout));
DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj));
DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj));
DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj));
DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj));
DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout));
// runtime
DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc));
DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc));
DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass));
DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj));
DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc));
DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value));
// string
DO_API(int32_t, il2cpp_string_length, (Il2CppString * str));
DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str));
DO_API(Il2CppString*, il2cpp_string_new, (const char* str));
DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length));
DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len));
DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str));
DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str));
DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str));
// thread
DO_API(Il2CppThread*, il2cpp_thread_current, ());
DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain));
DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread));
DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size));
DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread));
// stacktrace
DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data));
DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data));
DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame));
DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame));
DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame));
DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame));
DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ());
DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread));
DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc));
// type
DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type));
DO_API(int, il2cpp_type_get_type, (const Il2CppType * type));
DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type));
DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type));
DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type));
DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type));
DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType));
DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type));
DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type));
DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type));
// image
DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image));
DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image));
DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image));
DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image));
DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image));
DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index));
// Memory information
DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ());
DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot));
DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method));
// Logging
DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method));
// Debugger
DO_API(void, il2cpp_debugger_set_agent_options, (const char* options));
DO_API(bool, il2cpp_is_debugger_attached, ());
DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport));
// Debug metadata
DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo));
// TLS module
DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct));
// custom attributes
DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass));
DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method));
DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass));
DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass));
DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo));
DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo));
// Il2CppClass user data for GetComponent optimization
DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata));
DO_API(int, il2cpp_class_get_userdata_offset, ());
DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask));

View File

@ -8,366 +8,356 @@ using namespace app;
// Map hooks
DO_APP_FUNC(0x02E9F9E0, void, MoleMole_InLevelMapPageContext_OnMarkClicked, (InLevelMapPageContext* __this, MonoMapMark* mark, MethodInfo* method));
DO_APP_FUNC(0x02E85EC0, void, MoleMole_InLevelMapPageContext_OnMapClicked, (InLevelMapPageContext* __this, Vector2 screenPos, MethodInfo* method));
DO_APP_FUNC(0x00F0DCE0, bool, MoleMole_MapModule_IsAreaUnlock, (MoleMole_MapModule* __this, uint32_t sceneID, uint32_t areaID, MethodInfo* method));
DO_APP_FUNC(0x034CC320, void, MoleMole_InLevelMapPageContext_OnMarkClicked, (InLevelMapPageContext* __this, MonoMapMark* mark, MethodInfo* method));
DO_APP_FUNC(0x034DE970, void, MoleMole_InLevelMapPageContext_OnMapClicked, (InLevelMapPageContext* __this, Vector2 screenPos, MethodInfo* method));
DO_APP_FUNC(0x00B6AEA0, bool, MoleMole_MapModule_IsAreaUnlock, (MoleMole_MapModule* __this, uint32_t sceneID, uint32_t areaID, MethodInfo* method));
// changed to:
// DO_APP_FUNC(0x01B0A910, uint16_t, MoleMole_SimpleSafeUInt16_DBDMOONJALD_1, (MoleMole_SimpleSafeUInt16 v, MethodInfo * method));
// DBDMOONJALD => op_Implicit
DO_APP_FUNC(0x01B0A910, uint16_t, MoleMole_SimpleSafeUInt16_get_Value, (SimpleSafeUInt16 v, MethodInfo* method));
DO_APP_FUNC(0x0400F280, uint32_t, MoleMole_SimpleSafeUInt32_get_Value, (SimpleSafeUInt32 v, MethodInfo* method));
DO_APP_FUNC(0x05DF4590, String*, Marshal_PtrToStringAnsi, (void* ptr, MethodInfo* method));
// should be 'op_Implicit' not 'get_value'
DO_APP_FUNC(0x02356530, uint16_t, MoleMole_SimpleSafeUInt16_get_Value, (SimpleSafeUInt16 v, MethodInfo* method));
DO_APP_FUNC(0x02B0B560, uint32_t, MoleMole_SimpleSafeUInt32_get_Value, (SimpleSafeUInt32 v, MethodInfo* method));
DO_APP_FUNC(0x0501E650, String*, Marshal_PtrToStringAnsi, (void* ptr, MethodInfo* method));
// Map utility
DO_APP_FUNC(0x00E866B0, Rect, MonoInLevelMapPage_get_mapRect, (MonoInLevelMapPage* __this, MethodInfo* method));
DO_APP_FUNC(0x00E86680, Transform*, MonoInLevelMapPage_get_mapBackground, (MonoInLevelMapPage* __this, MethodInfo* method));
DO_APP_FUNC(0x01690060, Rect, MonoInLevelMapPage_get_mapRect, (MonoInLevelMapPage* __this, MethodInfo* method));
DO_APP_FUNC(0x01690030, Transform*, MonoInLevelMapPage_get_mapBackground, (MonoInLevelMapPage* __this, MethodInfo* method));
// Teleport hooks
DO_APP_FUNC(0x028AD260, void, GameManager_Update, (GameManager* __this, MethodInfo* method));
DO_APP_FUNC(0x01F54110, void, MoleMole_LoadingManager_SceneGoto, (MoleMole_LoadingManager* __this, PlayerEnterSceneNotify* notify, MethodInfo* method));
DO_APP_FUNC(0x01F55300, void, MoleMole_LoadingManager_PerformPlayerTransmit, (MoleMole_LoadingManager* __this, Vector3 targetPos, EnterType__Enum enterType, uint32_t token, EvtTransmitAvatar_EvtTransmitAvatar_TransmitType__Enum transType, uint32_t enterReason, MethodInfo* method));
DO_APP_FUNC(0x01F563C0, void, MoleMole_LoadingManager_RequestSceneTransToPoint, (MoleMole_LoadingManager* __this, uint32_t sceneId, uint32_t pointId, void* finishCallBackInForceDrag, MethodInfo* method));
DO_APP_FUNC(0x01F57E60, bool, MoleMole_LoadingManager_NeedTransByServer, (MoleMole_LoadingManager* __this, uint32_t sceneId, Vector3 position, MethodInfo* method));
DO_APP_FUNC(0x0104A6D0, Vector3, MoleMole_LocalEntityInfoData_get_initPos, (LocalEntityInfoData* __this, MethodInfo* method)); // shared offset
DO_APP_FUNC(0x0164D930, void, GameManager_Update, (GameManager* __this, MethodInfo* method));
DO_APP_FUNC(0x00ABA150, void, MoleMole_LoadingManager_SceneGoto, (MoleMole_LoadingManager* __this, PlayerEnterSceneNotify* notify, MethodInfo* method));
DO_APP_FUNC(0x00AB9730, void, MoleMole_LoadingManager_PerformPlayerTransmit, (MoleMole_LoadingManager* __this, Vector3 targetPos, EnterType__Enum enterType, uint32_t token, EvtTransmitAvatar_EvtTransmitAvatar_TransmitType__Enum transType, uint32_t enterReason, MethodInfo* method));
DO_APP_FUNC(0x00AB5910, void, MoleMole_LoadingManager_RequestSceneTransToPoint, (MoleMole_LoadingManager* __this, uint32_t sceneId, uint32_t pointId, void* finishCallBackInForceDrag, MethodInfo* method));
DO_APP_FUNC(0x00ABC980, bool, MoleMole_LoadingManager_NeedTransByServer, (MoleMole_LoadingManager* __this, uint32_t sceneId, Vector3 position, MethodInfo* method));
DO_APP_FUNC(0x02BBC4E0, Vector3, MoleMole_LocalEntityInfoData_get_initPos, (LocalEntityInfoData* __this, MethodInfo* method)); // shared offset
// Unlimited stamina
DO_APP_FUNC(0x01F17820, void, MoleMole_LevelSyncCombatPlugin_RequestSceneEntityMoveReq, (LevelSyncCombatPlugin* __this, uint32_t entityId, MotionInfo* syncInfo, bool isReliable, uint32_t HAOCOEMOMBG, MethodInfo* method));
DO_APP_FUNC(0x016189E0, void, MoleMole_DataItem_HandleNormalProp, (DataItem* __this, uint32_t type, int64_t value, DataPropOp__Enum state, MethodInfo* method));
DO_APP_FUNC(0x01A89B80, void, MoleMole_LevelSyncCombatPlugin_RequestSceneEntityMoveReq, (LevelSyncCombatPlugin* __this, uint32_t entityId, MotionInfo* syncInfo, bool isReliable, uint32_t HAOCOEMOMBG, MethodInfo* method));
DO_APP_FUNC(0x03907A10, void, MoleMole_DataItem_HandleNormalProp, (DataItem* __this, uint32_t type, int64_t value, DataPropOp__Enum state, MethodInfo* method));
// God mode
DO_APP_FUNC(0x027DB100, void, VCHumanoidMove_NotifyLandVelocity, (VCHumanoidMove* __this, Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method));
DO_APP_FUNC(0x036889B0, bool, Miscs_CheckTargetAttackable, (BaseEntity* attackerEntity, BaseEntity* targetEntity, MethodInfo* method));
DO_APP_FUNC(0x00D0CA90, void, MoleMole_LCBaseCombat_FireBeingHitEvent, (LCBaseCombat* __this, uint32_t attackeeRuntimeID, AttackResult* attackResult, MethodInfo* method));
DO_APP_FUNC(0x02383880, bool, MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp, (ActorAbilityPlugin* __this, float delay, Object* arg, MethodInfo* method));
DO_APP_FUNC(0x02A6BF10, void, VCHumanoidMove_NotifyLandVelocity, (VCHumanoidMove* __this, Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method));
DO_APP_FUNC(0x0279BE90, bool, Miscs_CheckTargetAttackable, (BaseEntity* attackerEntity, BaseEntity* targetEntity, MethodInfo* method));
DO_APP_FUNC(0x02C3D800, void, MoleMole_LCBaseCombat_FireBeingHitEvent, (LCBaseCombat* __this, uint32_t attackeeRuntimeID, AttackResult* attackResult, MethodInfo* method));
DO_APP_FUNC(0x02DCBA70, bool, MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp, (ActorAbilityPlugin* __this, float delay, Object* arg, MethodInfo* method));
// Cooldown cheats
DO_APP_FUNC(0x00C69910, bool, MoleMole_HumanoidMoveFSM_CheckSprintCooldown, (/* HumanoidMoveFSM */void* __this, MethodInfo* method));
DO_APP_FUNC(0x01530C80, bool, MoleMole_LCAvatarCombat_IsEnergyMax, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x01530480, void, MoleMole_LCAvatarCombat_ChangeEnergy_1, (LCAvatarCombat* __this, ElementType__Enum type, float value, DataPropOp__Enum state, MethodInfo* method));
DO_APP_FUNC(0x0152DC10, bool, MoleMole_LCAvatarCombat_OnSkillStart, (LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method));
DO_APP_FUNC(0x01530210, bool, MoleMole_LCAvatarCombat_IsSkillInCD_1, (LCAvatarCombat* __this, LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method));
DO_APP_FUNC(0x011640B0, bool, MoleMole_HumanoidMoveFSM_CheckSprintCooldown, (/* HumanoidMoveFSM */void* __this, MethodInfo* method));
DO_APP_FUNC(0x026F0820, bool, MoleMole_LCAvatarCombat_IsEnergyMax, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x026F0500, void, MoleMole_LCAvatarCombat_ChangeEnergy_1, (LCAvatarCombat* __this, ElementType__Enum type, float value, DataPropOp__Enum state, MethodInfo* method));
DO_APP_FUNC(0x026F13C0, bool, MoleMole_LCAvatarCombat_OnSkillStart, (LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method));
DO_APP_FUNC(0x026F54A0, bool, MoleMole_LCAvatarCombat_IsSkillInCD_1, (LCAvatarCombat* __this, LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method));
DO_APP_FUNC(0x02385800, void, MoleMole_ActorAbilityPlugin_AddDynamicFloatWithRange, (void* __this, String* key, float value, float min, float max, bool forceDoAtRemote, MethodInfo* method));
DO_APP_FUNC(0x02DB4680, void, MoleMole_ActorAbilityPlugin_AddDynamicFloatWithRange, (void* __this, String* key, float value, float min, float max, bool forceDoAtRemote, MethodInfo* method));
// Rapid fire
DO_APP_FUNC(0x00D12040, void, MoleMole_LCBaseCombat_DoHitEntity, (LCBaseCombat* __this, uint32_t targetID, AttackResult* attackResult, bool ignoreCheckCanBeHitInMP, MethodInfo* method));
DO_APP_FUNC(0x01F0D930, void, MoleMole_Formula_CalcAttackResult, (CombatProperty* attackCombatProperty, CombatProperty* defenseCombatProperty, AttackResult* attackResult, BaseEntity* attackerEntity, BaseEntity* attackeeEntity, MethodInfo* method));
DO_APP_FUNC(0x017B1D50, void, MoleMole_LCBaseCombat_DoHitEntity, (LCBaseCombat* __this, uint32_t targetID, AttackResult* attackResult, bool ignoreCheckCanBeHitInMP, MethodInfo* method));
DO_APP_FUNC(0x019DDF40, void, MoleMole_Formula_CalcAttackResult, (CombatProperty* attackCombatProperty, CombatProperty* defenseCombatProperty, AttackResult* attackResult, BaseEntity* attackerEntity, BaseEntity* attackeeEntity, MethodInfo* method));
// World cheats
DO_APP_FUNC(0x022C3450, void, MoleMole_VCMonsterAIController_TryDoSkill, (/* VCMonsterAIController */ void* __this, uint32_t skillID, MethodInfo* method)); // Manual
DO_APP_FUNC(0x020FA730, void, MoleMole_LCSelectPickup_AddInteeBtnByID, (void* __this, BaseEntity* entity, MethodInfo* method));
DO_APP_FUNC(0x020FA090, bool, MoleMole_LCSelectPickup_IsInPosition, (void* __this, BaseEntity* entity, MethodInfo* method));
DO_APP_FUNC(0x020FC120, bool, MoleMole_LCSelectPickup_IsOutPosition, (void* __this, BaseEntity* entity, MethodInfo* method));
DO_APP_FUNC(0x0219B8E0, void, MoleMole_ItemModule_PickItem, (MoleMole_ItemModule* __this, uint32_t entityID, MethodInfo* method));
DO_APP_FUNC(0x00C2F710, void, MoleMole_LevelSceneElementViewPlugin_Tick, (LevelSceneElementViewPlugin* __this, float inDeltaTime, MethodInfo* method));
DO_APP_FUNC(0x01A784B0, void, MoleMole_VCMonsterAIController_TryDoSkill, (/* VCMonsterAIController */ void* __this, uint32_t skillID, MethodInfo* method)); // Manual
DO_APP_FUNC(0x02A851C0, void, MoleMole_LCSelectPickup_AddInteeBtnByID, (void* __this, BaseEntity* entity, MethodInfo* method));
DO_APP_FUNC(0x02A86D80, bool, MoleMole_LCSelectPickup_IsInPosition, (void* __this, BaseEntity* entity, MethodInfo* method));
DO_APP_FUNC(0x02A86410, bool, MoleMole_LCSelectPickup_IsOutPosition, (void* __this, BaseEntity* entity, MethodInfo* method));
DO_APP_FUNC(0x034AD740, void, MoleMole_ItemModule_PickItem, (MoleMole_ItemModule* __this, uint32_t entityID, MethodInfo* method));
DO_APP_FUNC(0x00916CD0, void, MoleMole_LevelSceneElementViewPlugin_Tick, (LevelSceneElementViewPlugin* __this, float inDeltaTime, MethodInfo* method));
// Dialog skipping
DO_APP_FUNC(0x00F95350, bool, MoleMole_TalkDialogContext_get_canClick, (TalkDialogContext* __this, MethodInfo* method)); // delete
DO_APP_FUNC(0x00F932D0, bool, MoleMole_TalkDialogContext_get_canAutoClick, (TalkDialogContext* __this, MethodInfo* method));
DO_APP_FUNC(0x00F97D70, void, MoleMole_TalkDialogContext_OnDialogSelectItem, (TalkDialogContext* __this, Notify* notify, MethodInfo* method));
DO_APP_FUNC(0x02BF0040, void, MoleMole_InLevelCutScenePageContext_OnFreeClick, (InLevelCutScenePageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x02BF1AC0, void, MoleMole_InLevelCutScenePageContext_UpdateView, (InLevelCutScenePageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x02BEF110, void, MoleMole_InLevelCutScenePageContext_ClearView, (InLevelCutScenePageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x032B0360, bool, MoleMole_TalkDialogContext_get_canClick, (TalkDialogContext* __this, MethodInfo* method)); // delete
DO_APP_FUNC(0x032B1F60, bool, MoleMole_TalkDialogContext_get_canAutoClick, (TalkDialogContext* __this, MethodInfo* method));
DO_APP_FUNC(0x032AE7D0, void, MoleMole_TalkDialogContext_OnDialogSelectItem, (TalkDialogContext* __this, Notify* notify, MethodInfo* method));
DO_APP_FUNC(0x03C0DEF0, void, MoleMole_InLevelCutScenePageContext_OnFreeClick, (InLevelCutScenePageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x03C0F7D0, void, MoleMole_InLevelCutScenePageContext_UpdateView, (InLevelCutScenePageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x03C0D4F0, void, MoleMole_InLevelCutScenePageContext_ClearView, (InLevelCutScenePageContext* __this, MethodInfo* method));
// Skip Cutscene | RyujinZX#6666
DO_APP_FUNC(0x0363A300, void, CriwareMediaPlayer_Update, (CriwareMediaPlayer* __this, MethodInfo* method));
DO_APP_FUNC(0x0363A0D0, void, CriwareMediaPlayer_Skip, (CriwareMediaPlayer* __this, MethodInfo* method));
DO_APP_FUNC(0x014C4720, void, CriwareMediaPlayer_Update, (CriwareMediaPlayer* __this, MethodInfo* method));
DO_APP_FUNC(0x014C44F0, void, CriwareMediaPlayer_Skip, (CriwareMediaPlayer* __this, MethodInfo* method));
// Protection bypass
DO_APP_FUNC(0x066218D0, Byte__Array*, Application_RecordUserData, (int32_t nType, MethodInfo* method));
DO_APP_FUNC(0x058838C0, Byte__Array*, Application_RecordUserData, (int32_t nType, MethodInfo* method));
// Networking
DO_APP_FUNC(0x01251620, void, Kcp_KcpNative_kcp_packet_destroy, (KcpPacket_1* packet, MethodInfo* method));
DO_APP_FUNC(0x01251820, KcpPacket_1*, Kcp_KcpNative_kcp_packet_create, (uint8_t* data, int32_t len, MethodInfo* method));
DO_APP_FUNC(0x012519C0, int32_t, Kcp_KcpNative_kcp_client_send_packet, (void* kcp_client, KcpPacket_1* packet, MethodInfo* method));
DO_APP_FUNC(0x00BD08A0, bool, MoleMole_KcpClient_TryDequeueEvent, (void* __this, ClientKcpEvent* evt, MethodInfo* method));
DO_APP_FUNC(0x029C3D60, void, MoleMole_Packet_XorEncrypt, (Byte__Array** bytes, int32_t length, MethodInfo* method));
DO_APP_FUNC(0x0193C630, void, Kcp_KcpNative_kcp_packet_destroy, (KcpPacket_1* packet, MethodInfo* method));
DO_APP_FUNC(0x0193C740, KcpPacket_1*, Kcp_KcpNative_kcp_packet_create, (uint8_t* data, int32_t len, MethodInfo* method));
DO_APP_FUNC(0x0193C7D0, int32_t, Kcp_KcpNative_kcp_client_send_packet, (void* kcp_client, KcpPacket_1* packet, MethodInfo* method));
DO_APP_FUNC(0x029F05C0, bool, MoleMole_KcpClient_TryDequeueEvent, (void* __this, ClientKcpEvent* evt, MethodInfo* method));
DO_APP_FUNC(0x018293F0, void, MoleMole_Packet_XorEncrypt, (Byte__Array** bytes, int32_t length, MethodInfo* method));
// Lua functions
DO_APP_FUNC(0x02D59730, Byte__Array*, LuaManager_LoadCustomLuaFile, (LuaManager* __this, String** filePath, bool* recycleBytes, MethodInfo* method));
DO_APP_FUNC(0x0655E850, void, Lua_xlua_pushasciistring, (void* L, String* str, MethodInfo* method));
DO_APP_FUNC(0x01D8D5D0, void, MoleMole_LuaShellManager_DoString, (void* __this, Byte__Array* byteArray, MethodInfo* method));
DO_APP_FUNC(0x0600AFF0, void*, LuaEnv_DoString, (void* __this, Byte__Array* chunk, String* chunkName, void* env, MethodInfo* method));
DO_APP_FUNC(0x01D8DCA0, void, MoleMole_LuaShellManager_ReportLuaShellResult, (void* __this, String* type, String* value, MethodInfo* method)); // Anticheat info
DO_APP_FUNC(0x010B0CA0, Byte__Array*, LuaManager_LoadCustomLuaFile, (LuaManager* __this, String** filePath, bool* recycleBytes, MethodInfo* method));
DO_APP_FUNC(0x03A481B0, void, Lua_xlua_pushasciistring, (void* L, String* str, MethodInfo* method));
DO_APP_FUNC(0x00E5EE40, void, MoleMole_LuaShellManager_DoString, (void* __this, Byte__Array* byteArray, MethodInfo* method));
DO_APP_FUNC(0x053D9D40, void*, LuaEnv_DoString, (void* __this, Byte__Array* chunk, String* chunkName, void* env, MethodInfo* method));
DO_APP_FUNC(0x00E5E300, void, MoleMole_LuaShellManager_ReportLuaShellResult, (void* __this, String* type, String* value, MethodInfo* method)); // Anticheat info
// Debug hooks
DO_APP_FUNC(0x02D3FA40, AttackResult_1*, MoleMole_AttackResult_FillProtoAttackResult, (AttackResult* __this, uint32_t attackerID, uint32_t defenseId, AttackResult_1* protoAttackResult, MethodInfo* method));
DO_APP_FUNC(0x01F16210, void, MoleMole_LevelSyncCombatPlugin_SendFaceToDir, (void* __this, uint32_t runtimeID, Vector3 forward, MethodInfo* method));
DO_APP_FUNC(0x035D4180, void, MoleMole_BaseEntity_FireEvent, (BaseEntity* __this, BaseEvent* e, bool immediately, MethodInfo* method));
DO_APP_FUNC(0x023D4A90, bool, MoleMole_ActorAbilityPlugin_OnEvent, (void* __this, BaseEvent* e, MethodInfo* method));
DO_APP_FUNC(0x02C2F060, AttackResult_1*, MoleMole_AttackResult_FillProtoAttackResult, (AttackResult* __this, uint32_t attackerID, uint32_t defenseId, AttackResult_1* protoAttackResult, MethodInfo* method));
DO_APP_FUNC(0x01A884F0, void, MoleMole_LevelSyncCombatPlugin_SendFaceToDir, (void* __this, uint32_t runtimeID, Vector3 forward, MethodInfo* method));
DO_APP_FUNC(0x031A89D0, void, MoleMole_BaseEntity_FireEvent, (BaseEntity* __this, BaseEvent* e, bool immediately, MethodInfo* method));
DO_APP_FUNC(0x02DE38B0, bool, MoleMole_ActorAbilityPlugin_OnEvent, (void* __this, BaseEvent* e, MethodInfo* method));
// Kill aura
DO_APP_FUNC(0x03A52200, void, MoleMole_EvtCrash_Init, (EvtCrash* __this, uint32_t targetID, MethodInfo* method)); // Manual offset
DO_APP_FUNC(0x00941E80, void, MoleMole_EventManager_FireEvent, (MoleMole_EventManager* __this, BaseEvent* e, bool immediately, MethodInfo* method));
DO_APP_FUNC(0x0167B1A0, bool, MoleMole_FixedBoolStack_get_value, (FixedBoolStack* __this, MethodInfo* method));
DO_APP_FUNC(0x01013540, void, MoleMole_EvtCrash_Init, (EvtCrash* __this, uint32_t targetID, MethodInfo* method)); // Manual offset
DO_APP_FUNC(0x016C3F50, void, MoleMole_EventManager_FireEvent, (MoleMole_EventManager* __this, BaseEvent* e, bool immediately, MethodInfo* method));
DO_APP_FUNC(0x00BC25D0, bool, MoleMole_FixedBoolStack_get_value, (FixedBoolStack* __this, MethodInfo* method));
// cannot find actual function name: MoleMole_EventHelper_Allocate_103
// shared offset
// possible:
// DO_APP_FUNC(0x039E2030, MoleMole_EvtCrash_1 *, EventHelper_Allocate_103, (MethodInfo * method));
DO_APP_FUNC(0x039E2030, EvtCrash*, MoleMole_EventHelper_Allocate_103, (MethodInfo* method));
DO_APP_FUNC_METHODINFO(0x09723528, MoleMole_EventHelper_Allocate_103__MethodInfo);
// 2.8 changed to 'MoleMole_EventHelper_Allocate_144'
DO_APP_FUNC(0x0595D6F0, EvtCrash*, MoleMole_EventHelper_Allocate_103, (MethodInfo* method));
DO_APP_FUNC_METHODINFO(0x09A4E310, MoleMole_EventHelper_Allocate_103__MethodInfo);
DO_APP_FUNC(0x034BC360, void, MoleMole_BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo, (BaseMoveSyncPlugin* __this, MethodInfo* method));
DO_APP_FUNC(0x017F3E90, void, MoleMole_BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo, (BaseMoveSyncPlugin* __this, MethodInfo* method));
// Fishing
DO_APP_FUNC(0x0292F8D0, void, MoleMole_FishingModule_RequestFishCastRod, (void* __this, uint32_t baitId, uint32_t rodId, Vector3 pos, uint32_t rodEntityId, MethodInfo* method));
DO_APP_FUNC(0x02695850, void, MoleMole_FishingModule_RequestFishCastRod, (void* __this, uint32_t baitId, uint32_t rodId, Vector3 pos, uint32_t rodEntityId, MethodInfo* method));
DO_APP_FUNC(0x0292D6D0, void, MoleMole_FishingModule_RequestFishBite, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x02930440, void, MoleMole_FishingModule_OnFishBiteRsp, (void* __this, FishBiteRsp* rsp, MethodInfo* method));
DO_APP_FUNC(0x02698820, void, MoleMole_FishingModule_RequestFishBite, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x02696680, void, MoleMole_FishingModule_OnFishBiteRsp, (void* __this, FishBiteRsp* rsp, MethodInfo* method));
DO_APP_FUNC(0x0292F470, void, MoleMole_FishingModule_RequestFishBattleBegin, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x0292CAE0, void, MoleMole_FishingModule_OnFishBattleBeginRsp, (void* __this, FishBattleBeginRsp* rsp, MethodInfo* method));
DO_APP_FUNC(0x02695A60, void, MoleMole_FishingModule_RequestFishBattleBegin, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x02698920, void, MoleMole_FishingModule_OnFishBattleBeginRsp, (void* __this, FishBattleBeginRsp* rsp, MethodInfo* method));
DO_APP_FUNC(0x0292D090, void, MoleMole_FishingModule_RequestFishBattleEnd, (void* __this, FishBattleResult__Enum result, bool isAlwaysBonus, float mxBonusTime, MethodInfo* method));
DO_APP_FUNC(0x0292DBD0, void, MoleMole_FishingModule_OnFishBattleEndRsp, (void* __this, FishBattleEndRsp* rsp, MethodInfo* method));
DO_APP_FUNC(0x02694C20, void, MoleMole_FishingModule_RequestFishBattleEnd, (void* __this, FishBattleResult__Enum result, bool isAlwaysBonus, float mxBonusTime, MethodInfo* method));
DO_APP_FUNC(0x02694F90, void, MoleMole_FishingModule_OnFishBattleEndRsp, (void* __this, FishBattleEndRsp* rsp, MethodInfo* method));
DO_APP_FUNC(0x0292F190, void, MoleMole_FishingModule_OnExitFishingRsp, (void* __this, void* rsp, MethodInfo* method));
DO_APP_FUNC(0x0292C7F0, void, MoleMole_FishingModule_onFishChosenNotify, (void* __this, void* notify, MethodInfo* method));
DO_APP_FUNC(0x02694DB0, void, MoleMole_FishingModule_OnExitFishingRsp, (void* __this, void* rsp, MethodInfo* method));
DO_APP_FUNC(0x02696DE0, void, MoleMole_FishingModule_onFishChosenNotify, (void* __this, void* notify, MethodInfo* method));
// Visuals
DO_APP_FUNC(0x013FC090, void, MoleMole_SCameraModuleInitialize_SetWarningLocateRatio, (SCameraModuleInitialize* __this, double deltaTime, CameraShareData* data, MethodInfo* method));
DO_APP_FUNC(0x01B8DC20, void, MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue, (MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x03A1D1A0, void, MoleMole_SCameraModuleInitialize_SetWarningLocateRatio, (SCameraModuleInitialize* __this, double deltaTime, CameraShareData* data, MethodInfo* method));
DO_APP_FUNC(0x008E01A0, void, MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue, (MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method));
// Chest Indicator | RyujinZX#6666
DO_APP_FUNC(0x04C9B450, bool, MoleMole_LCIndicatorPlugin_DoCheck, (LCIndicatorPlugin* __this, MethodInfo* method));
DO_APP_FUNC(0x04C9B830, void, MoleMole_LCIndicatorPlugin_ShowIcon, (LCIndicatorPlugin* __this, MethodInfo* method));
DO_APP_FUNC(0x04C9A750, void, MoleMole_LCIndicatorPlugin_HideIcon, (LCIndicatorPlugin* __this, MethodInfo* method));
DO_APP_FUNC(0x00F1DE90, bool, MoleMole_LCIndicatorPlugin_DoCheck, (LCIndicatorPlugin* __this, MethodInfo* method));
DO_APP_FUNC(0x00F1E2B0, void, MoleMole_LCIndicatorPlugin_ShowIcon, (LCIndicatorPlugin* __this, MethodInfo* method));
DO_APP_FUNC(0x00F1F610, void, MoleMole_LCIndicatorPlugin_HideIcon, (LCIndicatorPlugin* __this, MethodInfo* method));
// Auto Cooking | RyujinZX#6666
DO_APP_FUNC(0x02854E30, void, MoleMole_PlayerModule_RequestPlayerCook, (MoleMole_PlayerModule* __this, uint32_t recipeId, uint32_t avatarId, uint32_t qteQuality, uint32_t count, MethodInfo* method));
DO_APP_FUNC(0x02858180, void, MoleMole_PlayerModule_OnPlayerCookRsp, (MoleMole_PlayerModule* __this, PlayerCookRsp* rsp, MethodInfo* method));
DO_APP_FUNC(0x033F5820, void, MoleMole_CookingQtePageContext_UpdateProficiency, (CookingQtePageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x008ECD70, uint32_t, MoleMole_Config_CookRecipeExcelConfig_CheckCookFoodMaxNum, (uint32_t UpdateCookRecipeDic, MethodInfo* method));
DO_APP_FUNC(0x032256C0, void, CookingQtePageContext_CloseItemGotPanel, (CookingQtePageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x02982660, void, MoleMole_PlayerModule_RequestPlayerCook, (MoleMole_PlayerModule* __this, uint32_t recipeId, uint32_t avatarId, uint32_t qteQuality, uint32_t count, MethodInfo* method));
DO_APP_FUNC(0x029905A0, void, MoleMole_PlayerModule_OnPlayerCookRsp, (MoleMole_PlayerModule* __this, PlayerCookRsp* rsp, MethodInfo* method));
DO_APP_FUNC(0x012C3890, void, MoleMole_CookingQtePageContext_UpdateProficiency, (CookingQtePageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x01765DB0, uint32_t, MoleMole_Config_CookRecipeExcelConfig_CheckCookFoodMaxNum, (uint32_t UpdateCookRecipeDic, MethodInfo* method));
DO_APP_FUNC(0x012BC260, void, CookingQtePageContext_CloseItemGotPanel, (CookingQtePageContext* __this, MethodInfo* method));
// Profile Changer | RyujinZX#6666
DO_APP_FUNC(0x027A41A0, Button_1*, ProfilePage, (MonoInLevelPlayerProfilePage* __this, MethodInfo* method)); // MonoInLevelPlayerProfilePage_get_logoutButton
DO_APP_FUNC(0x016A77B0, void, ProfileEditPage, (MonoFriendInformationDialog* __this, Sprite* value, MethodInfo* method)); // MonoFriendInformationDialog_set_icon
DO_APP_FUNC(0x02A37D50, Button_1*, ProfilePage, (MonoInLevelPlayerProfilePage* __this, MethodInfo* method)); // MonoInLevelPlayerProfilePage_get_logoutButton
DO_APP_FUNC(0x01B101B0, void, ProfileEditPage, (MonoFriendInformationDialog* __this, Sprite* value, MethodInfo* method)); // MonoFriendInformationDialog_set_icon
// Free Camera
DO_APP_FUNC(0x06595250, float, Camera_get_fieldOfView, (Camera* __this, MethodInfo* method));
DO_APP_FUNC(0x065956C0, void, Camera_set_fieldOfView, (Camera* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x065949D0, void, Camera_CopyFrom, (Camera* __this, Camera* other, MethodInfo* method));
DO_APP_FUNC(0x057E9C00, float, Camera_get_fieldOfView, (Camera* __this, MethodInfo* method));
DO_APP_FUNC(0x057EA060, void, Camera_set_fieldOfView, (Camera* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x057E9460, void, Camera_CopyFrom, (Camera* __this, Camera* other, MethodInfo* method));
// Game Object, Component, Transform Utility
DO_APP_FUNC(0x0662F130, GameObject*, GameObject_Find, (String* name, MethodInfo* method));
DO_APP_FUNC(0x0662F190, Component_1*, GameObject_GetComponentByName, (GameObject* __this, String* type, MethodInfo* method));
DO_APP_FUNC(0x0662F660, bool, GameObject_get_active, (GameObject* __this, MethodInfo* method));
DO_APP_FUNC(0x0662F720, void, GameObject_set_active, (GameObject* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x065546E0, Transform*, Transform_GetChild, (Transform* __this, int32_t index, MethodInfo* method));
DO_APP_FUNC(0x0652EA10, Component_1*, Component_1_GetComponent_1, (Component_1* __this, String* type, MethodInfo* method));
DO_APP_FUNC(0x0662F520, void, GameObject_SetActive, (GameObject* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x0662F100, GameObject*, GameObject_CreatePrimitive, (PrimitiveType__Enum type, MethodInfo* method));
DO_APP_FUNC(0x0662F700, Transform*, GameObject_get_transform, (GameObject* __this, MethodInfo* method));
DO_APP_FUNC(0x06555A60, Quaternion, Transform_get_localRotation, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x06555EF0, void, Transform_set_localRotation, (Transform* __this, Quaternion value, MethodInfo* method));
DO_APP_FUNC(0x06555AA0, Vector3, Transform_get_localScale, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x065548E0, void, Transform_set_localScale, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x06555A20, Vector3, Transform_get_localPosition, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x06555EE0, void, Transform_set_localPosition, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x0662F090, Component_1*, GameObject_AddComponentInternal, (GameObject* __this, String* className, MethodInfo* method));
DO_APP_FUNC(0x0662F0A0, Component_1*, GameObject_AddComponent, (GameObject* __this, Type* componentType, MethodInfo* method));
DO_APP_FUNC(0x065508C0, void, Object_1_DestroyImmediate_1, (Object_1* obj, MethodInfo* method));
DO_APP_FUNC(0x06550C00, Object_1*, Object_1_Instantiate_2, (Object_1* original, MethodInfo* method));
DO_APP_FUNC(0x041B0BB0, Object*, Object_1_Instantiate_5, (Object* original, MethodInfo* method));
DO_APP_FUNC(0x041B0BB0, GameObject*, Object_1_Instantiate_11, (GameObject* original, MethodInfo* method));
DO_APP_FUNC(0x06555870, int32_t, Transform_get_childCount, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x0652EBC0, GameObject*, Component_1_get_gameObject, (Component_1* __this, MethodInfo* method));
DO_APP_FUNC(0x06551030, String*, Object_1_get_name, (Object_1* __this, MethodInfo* method));
DO_APP_FUNC(0x0665DA90, Material__Array*, Renderer_GetMaterialArray, (Renderer* __this, MethodInfo* method));
DO_APP_FUNC(0x0652FB40, void, Material_set_mainTexture, (Material* __this, Texture* value, MethodInfo* method));
DO_APP_FUNC(0x0664E800, Vector3, Vector3_Lerp, (Vector3 a, Vector3 b, float t, MethodInfo* method));
DO_APP_FUNC(0x06555890, Vector3, Transform_get_eulerAngles, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x06555DD0, void, Transform_set_eulerAngles, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x06555BE0, Vector3, Transform_get_right, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x06555F70, void, Transform_set_right, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x06555CC0, Vector3, Transform_get_up, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x06555FF0, void, Transform_set_up, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x06555900, Vector3, Transform_get_forward, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x06555E20, void, Transform_set_forward, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x06555FE0, void, Transform_set_rotation, (Transform* __this, Quaternion value, MethodInfo* method));
DO_APP_FUNC(0x065E1EC0, float, Mathf_Lerp, (float a, float b, float t, MethodInfo* method));
DO_APP_FUNC(0x065F56F0, float, Input_GetAxis, (String* axisName, MethodInfo* method));
DO_APP_FUNC(0x06550910, void, Object_1_Destroy_1, (Object_1* obj, MethodInfo* method));
// Music game event
DO_APP_FUNC(0x00FFE490, void, MusicGamePlayComponent_OnPlayerUpdate, (MusicGamePlayComponent* __this, MethodInfo* method));
DO_APP_FUNC(0x00FFE600, void, MusicGamePlayComponent_OnStart, (MusicGamePlayComponent* __this, BeatMapData* beatMapData, MusicMetaInfo* musicMetaInfo, MethodInfo* method));
DO_APP_FUNC(0x00FFE310, void, MusicGamePlayComponent_OnMiss, (MusicGamePlayComponent* __this, MethodInfo* method));
DO_APP_FUNC(0x00FFEE40, void, MusicGamePlayComponent_set_combo, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method));
DO_APP_FUNC(0x00FFF050, void, MusicGamePlayComponent_set_score, (MusicGamePlayComponent* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x01B5AEB0, void, MusicGamePlayComponent_set_maxCombo, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method));
DO_APP_FUNC(0x02C749E0, void, MusicGamePlayComponent_set_perfectCnt, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method));
DO_APP_FUNC(0x035C4E50, void, MusicGamePlayComponent_set_greatCnt, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method));
DO_APP_FUNC(0x017A31C0, void, MusicGamePlayComponent_set_missCnt, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method));
DO_APP_FUNC(0x00FFDE90, void, MusicGamePlayComponent_OnHit, (MusicGamePlayComponent* __this, float score, MethodInfo* method));
DO_APP_FUNC(0x05890060, GameObject*, GameObject_Find, (String* name, MethodInfo* method));
DO_APP_FUNC(0x05890070, Component_1*, GameObject_GetComponentByName, (GameObject* __this, String* type, MethodInfo* method));
DO_APP_FUNC(0x058905A0, bool, GameObject_get_active, (GameObject* __this, MethodInfo* method));
DO_APP_FUNC(0x05890660, void, GameObject_set_active, (GameObject* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x05890460, void, GameObject_SetActive, (GameObject* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x057BA950, Transform*, Transform_GetChild, (Transform* __this, int32_t index, MethodInfo* method));
DO_APP_FUNC(0x05799870, Component_1*, Component_1_GetComponent_1, (Component_1* __this, String* type, MethodInfo* method));
DO_APP_FUNC(0x05890030, GameObject*, GameObject_CreatePrimitive, (PrimitiveType__Enum type, MethodInfo* method));
DO_APP_FUNC(0x05890640, Transform*, GameObject_get_transform, (GameObject* __this, MethodInfo* method));
DO_APP_FUNC(0x057BBCE0, Quaternion, Transform_get_localRotation, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057BAB20, void, Transform_set_localRotation, (Transform* __this, Quaternion value, MethodInfo* method));
DO_APP_FUNC(0x057BBD20, Vector3, Transform_get_localScale, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057BAB30, void, Transform_set_localScale, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x057BBCA0, Vector3, Transform_get_localPosition, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057BC160, void, Transform_set_localPosition, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x0588FFD0, Component_1*, GameObject_AddComponentInternal, (GameObject* __this, String* className, MethodInfo* method));
DO_APP_FUNC(0x05890380, Component_1*, GameObject_AddComponent, (GameObject* __this, Type* componentType, MethodInfo* method));
DO_APP_FUNC(0x057B6B30, void, Object_1_DestroyImmediate_1, (Object_1* obj, MethodInfo* method));
DO_APP_FUNC(0x057B6E80, Object_1*, Object_1_Instantiate_2, (Object_1* original, MethodInfo* method));
DO_APP_FUNC(0x05A5FA20, Object*, Object_1_Instantiate_5, (Object* original, MethodInfo* method));
DO_APP_FUNC(0x05A5FA20, GameObject*, Object_1_Instantiate_10, (GameObject* original, MethodInfo* method));
DO_APP_FUNC(0x057BBAF0, int32_t, Transform_get_childCount, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x05799A20, GameObject*, Component_1_get_gameObject, (Component_1* __this, MethodInfo* method));
DO_APP_FUNC(0x057B72A0, String*, Object_1_get_name, (Object_1* __this, MethodInfo* method));
DO_APP_FUNC(0x058BBC70, Material__Array*, Renderer_GetMaterialArray, (Renderer* __this, MethodInfo* method));
DO_APP_FUNC(0x0579AA20, void, Material_set_mainTexture, (Material* __this, Texture* value, MethodInfo* method));
DO_APP_FUNC(0x058AFCD0, Vector3, Vector3_Lerp, (Vector3 a, Vector3 b, float t, MethodInfo* method));
DO_APP_FUNC(0x057BBB10, Vector3, Transform_get_eulerAngles, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057BC050, void, Transform_set_eulerAngles, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x057BBE60, Vector3, Transform_get_right, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057BC1E0, void, Transform_set_right, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x057BBF40, Vector3, Transform_get_up, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057BC260, void, Transform_set_up, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x057BBB80, Vector3, Transform_get_forward, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057BC0A0, void, Transform_set_forward, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x057BC250, void, Transform_set_rotation, (Transform* __this, Quaternion value, MethodInfo* method));
DO_APP_FUNC(0x0583CA40, float, Mathf_Lerp, (float a, float b, float t, MethodInfo* method));
DO_APP_FUNC(0x058502D0, float, Input_GetAxis, (String* axisName, MethodInfo* method));
DO_APP_FUNC(0x057B6B80, void, Object_1_Destroy_1, (Object_1* obj, MethodInfo* method));
// Utility
DO_APP_FUNC(0x03551B60, String*, Text_get_text, (Text* __this, MethodInfo* method));
DO_APP_FUNC(0x06568060, void, Text_set_text, (Text* __this, String* value, MethodInfo* method));
DO_APP_FUNC(0x0658D6B0, void, Slider_1_set_value, (Slider_1* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x0658D560, void, Slider_1_set_maxValue, (Slider_1* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x0658D5E0, void, Slider_1_set_minValue, (Slider_1* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x065F6470, Rect, Sprite_get_rect, (Sprite* __this, MethodInfo* method));
DO_APP_FUNC(0x0667D6A0, Texture2D*, NativeGallery_LoadImageAtPath, (String* imagePath, int32_t maxSize, bool markTextureNonReadable, bool generateMipmaps, bool linearColorSpace, MethodInfo* method));
DO_APP_FUNC(0x065F6270, Sprite*, Sprite_Create, (Texture2D* texture, Rect rect, Vector2 pivot, float pixelsPerUnit, MethodInfo* method));
DO_APP_FUNC(0x06567B70, void, Text_set_alignment, (Text* __this, TextAnchor__Enum value, MethodInfo* method));
DO_APP_FUNC(0x06567E10, void, Text_set_horizontalOverflow, (Text* __this, HorizontalWrapMode__Enum value, MethodInfo* method));
DO_APP_FUNC(0x06568110, void, Text_set_verticalOverflow, (Text* __this, VerticalWrapMode__Enum value, MethodInfo* method));
DO_APP_FUNC(0x06567A80, bool, Text_get_resizeTextForBestFit, (Text* __this, MethodInfo* method));
DO_APP_FUNC(0x06567EE0, void, Text_set_resizeTextForBestFit, (Text* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x06567450, int32_t, Text_get_fontSize, (Text* __this, MethodInfo* method));
DO_APP_FUNC(0x06567CC0, void, Text_set_fontSize, (Text* __this, int32_t value, MethodInfo* method));
DO_APP_FUNC(0x03480F40, String*, Text_get_text, (Text* __this, MethodInfo* method));
DO_APP_FUNC(0x057C4340, void, Text_set_text, (Text* __this, String* value, MethodInfo* method));
DO_APP_FUNC(0x057E20F0, void, Slider_1_set_minValue, (Slider_1* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x057E2070, void, Slider_1_set_maxValue, (Slider_1* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x057E14F0, void, Slider_1_set_value, (Slider_1* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x05851060, Rect, Sprite_get_rect, (Sprite* __this, MethodInfo* method));
DO_APP_FUNC(0x058DC9E0, Texture2D*, NativeGallery_LoadImageAtPath, (String* imagePath, int32_t maxSize, bool markTextureNonReadable, bool generateMipmaps, bool linearColorSpace, MethodInfo* method));
DO_APP_FUNC(0x05850E60, Sprite*, Sprite_Create, (Texture2D* texture, Rect rect, Vector2 pivot, float pixelsPerUnit, MethodInfo* method));
DO_APP_FUNC(0x057C3E50, void, Text_set_alignment, (Text* __this, TextAnchor__Enum value, MethodInfo* method));
DO_APP_FUNC(0x057C40F0, void, Text_set_horizontalOverflow, (Text* __this, HorizontalWrapMode__Enum value, MethodInfo* method));
DO_APP_FUNC(0x057C43F0, void, Text_set_verticalOverflow, (Text* __this, VerticalWrapMode__Enum value, MethodInfo* method));
DO_APP_FUNC(0x057C3D60, bool, Text_get_resizeTextForBestFit, (Text* __this, MethodInfo* method));
DO_APP_FUNC(0x057C41C0, void, Text_set_resizeTextForBestFit, (Text* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x057C36A0, int32_t, Text_get_fontSize, (Text* __this, MethodInfo* method));
DO_APP_FUNC(0x057C3FA0, void, Text_set_fontSize, (Text* __this, int32_t value, MethodInfo* method));
DO_APP_FUNC(0x036865D0, float, Miscs_CalcCurrentGroundWaterHeight, (float x, float z, MethodInfo* method));
DO_APP_FUNC(0x03685E00, float, Miscs_CalcCurrentGroundHeight, (float x, float z, MethodInfo* method));
DO_APP_FUNC(0x03685F10, float, Miscs_CalcCurrentGroundHeight_1, (float x, float z, float rayStartHeight, float rayDetectLength, int32_t layer, MethodInfo* method));
DO_APP_FUNC(0x03686170, Vector3, Miscs_CalcCurrentGroundNorm, (Vector3 pos, MethodInfo* method));
DO_APP_FUNC(0x01A4E0E0, Vector3, Miscs_GenWorldPos, (Vector2 levelMapPos, MethodInfo* method));
DO_APP_FUNC(0x01A4DA90, Vector2, Miscs_GenLevelPos_1, (Vector3 worldPos, MethodInfo* method));
DO_APP_FUNC(0x0369D590, int32_t, Miscs_GetSceneGroundLayerMask, (MethodInfo* method));
DO_APP_FUNC(0x02798730, float, Miscs_CalcCurrentGroundWaterHeight, (float x, float z, MethodInfo* method));
DO_APP_FUNC(0x02797F60, float, Miscs_CalcCurrentGroundHeight, (float x, float z, MethodInfo* method));
DO_APP_FUNC(0x02798070, float, Miscs_CalcCurrentGroundHeight_1, (float x, float z, float rayStartHeight, float rayDetectLength, int32_t layer, MethodInfo* method));
DO_APP_FUNC(0x027982D0, Vector3, Miscs_CalcCurrentGroundNorm, (Vector3 pos, MethodInfo* method));
DO_APP_FUNC(0x027A24B0, Vector3, Miscs_GenWorldPos, (Vector2 levelMapPos, MethodInfo* method));
DO_APP_FUNC(0x027A1F90, Vector2, Miscs_GenLevelPos_1, (Vector3 worldPos, MethodInfo* method));
DO_APP_FUNC(0x027B6BF0, int32_t, Miscs_GetSceneGroundLayerMask, (MethodInfo* method));
DO_APP_FUNC(0x056202E0, Vector3, WorldShiftManager_GetRelativePosition, (Vector3 pos, MethodInfo* method));
DO_APP_FUNC(0x05620130, Vector3, WorldShiftManager_GetAbsolutePosition, (Vector3 pos, MethodInfo* method));
DO_APP_FUNC(0x04D7B430, Vector3, WorldShiftManager_GetAbsolutePosition, (Vector3 pos, MethodInfo* method));
DO_APP_FUNC(0x04D7B5E0, Vector3, WorldShiftManager_GetRelativePosition, (Vector3 pos, MethodInfo* method));
DO_APP_FUNC(0x02DAB410, Vector3, ActorUtils_GetAvatarPos, (MethodInfo* method));
DO_APP_FUNC(0x02DAF680, void, ActorUtils_SetAvatarPos, (Vector3 pos, MethodInfo* method));
DO_APP_FUNC(0x02DB0AF0, void, ActorUtils_SyncAvatarMotion, (int32_t state, MethodInfo* method));
DO_APP_FUNC(0x01F6B8F0, Vector3, ActorUtils_GetAvatarPos, (MethodInfo* method));
DO_APP_FUNC(0x01F72080, void, ActorUtils_SetAvatarPos, (Vector3 pos, MethodInfo* method));
DO_APP_FUNC(0x01F74C50, void, ActorUtils_SyncAvatarMotion, (int32_t state, MethodInfo* method));
DO_APP_FUNC(0x01AA5200, Notify, Notify_CreateNotify_1, (MoleMole_NotifyTypes__Enum type, Object* body, MethodInfo* method));
DO_APP_FUNC(0x02B87390, Notify, Notify_CreateNotify_1, (MoleMole_NotifyTypes__Enum type, Object* body, MethodInfo* method));
// DO_APP_FUNC(0x020C7AA0, float, MoleMole_SafeFloat_DBDMOONJALD_1, (MoleMole_SafeFloat v, MethodInfo * method));
// DBDMOONJALD => op_Implicit
DO_APP_FUNC(0x020C7AA0, float, MoleMole_SafeFloat_get_Value, (SafeFloat safeFloat, MethodInfo* method));
// DO_APP_FUNC(0x020C7920, MoleMole_SafeFloat, MoleMole_SafeFloat_DBDMOONJALD, (float IGFNEICJINB, MethodInfo * method));
DO_APP_FUNC(0x020C7920, SafeFloat, MoleMole_SafeFloat_set_Value, (float value, MethodInfo* method));
DO_APP_FUNC(0x039E2290, LCBaseCombat*, MoleMole_BaseEntity_GetLogicCombatComponent_1, (BaseEntity* __this, MethodInfo* method));
// should be 'op_Implicit' not 'get_value'
DO_APP_FUNC(0x0228EB70, float, MoleMole_SafeFloat_get_Value, (SafeFloat safeFloat, MethodInfo* method));
// should be 'op_Implicit' not 'set_value'
DO_APP_FUNC(0x0228EC70, SafeFloat, MoleMole_SafeFloat_set_Value, (float value, MethodInfo* method));
DO_APP_FUNC(0x035CC430, String*, MoleMole_BaseEntity_ToStringRelease, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035AC7B0, void, MoleMole_BaseEntity_SetRelativePosition, (BaseEntity* __this, Vector3 position, bool forceSyncToRigidbody, MethodInfo* method));
DO_APP_FUNC(0x035C0AA0, void, MoleMole_BaseEntity_SetAbsolutePosition, (BaseEntity* __this, Vector3 abpos, bool forceSyncToRigidbody, MethodInfo* method));
DO_APP_FUNC(0x035C4B00, Vector3, MoleMole_BaseEntity_GetAbsolutePosition, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035BE810, Vector3, MoleMole_BaseEntity_GetRelativePosition, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035B1EF0, Vector3, MoleMole_BaseEntity_GetForward, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035D4BA0, Vector3, MoleMole_BaseEntity_GetForwardFast, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035C08A0, Vector3, MoleMole_BaseEntity_GetRight, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035CB210, Vector3, MoleMole_BaseEntity_GetUp, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035D5B30, bool, MoleMole_BaseEntity_IsActive, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035C7A50, Rigidbody*, MoleMole_BaseEntity_GetRigidbody, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x039E22C0, VCBaseMove*, MoleMole_BaseEntity_GetMoveComponent_1, (BaseEntity* __this, MethodInfo* method)); // double check
DO_APP_FUNC(0x0596AFF0, LCBaseCombat*, MoleMole_BaseEntity_GetLogicCombatComponent_1, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC_METHODINFO(0x099D4410, MoleMole_BaseEntity_GetLogicCombatComponent_1__MethodInfo);
DO_APP_FUNC(0x035C3850, List_1_MoleMole_BaseComponent_*, MoleMole_BaseEntity_GetAllLogicComponents, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x0187FDC0, GameObject*, MoleMole_BaseEntity_get_gameObject, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x035ACC70, GameObject*, MoleMole_BaseEntity_get_rootGameObject, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC_METHODINFO(0x096EAD20, MoleMole_BaseEntity_GetMoveComponent_1__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096EC0B8, MoleMole_BaseEntity_GetLogicCombatComponent_1__MethodInfo);
DO_APP_FUNC(0x01BF68A0, BaseEntity*, MoleMole_EntityManager_GetLocalAvatarEntity, (MoleMole_EntityManager* __this, MethodInfo* method));
DO_APP_FUNC(0x031ACE30, String*, MoleMole_BaseEntity_ToStringRelease, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x03180C10, void, MoleMole_BaseEntity_SetRelativePosition, (BaseEntity* __this, Vector3 position, bool forceSyncToRigidbody, MethodInfo* method));
DO_APP_FUNC(0x0319D8B0, void, MoleMole_BaseEntity_SetAbsolutePosition, (BaseEntity* __this, Vector3 abpos, bool forceSyncToRigidbody, MethodInfo* method));
DO_APP_FUNC(0x031AA160, Vector3, MoleMole_BaseEntity_GetAbsolutePosition, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x0318A430, Vector3, MoleMole_BaseEntity_GetRelativePosition, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x03197170, Vector3, MoleMole_BaseEntity_GetForward, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x0319BCC0, Vector3, MoleMole_BaseEntity_GetForwardFast, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x03187C30, Vector3, MoleMole_BaseEntity_GetRight, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x03185DC0, Vector3, MoleMole_BaseEntity_GetUp, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x031A5120, bool, MoleMole_BaseEntity_IsActive, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x031AFEE0, Rigidbody*, MoleMole_BaseEntity_GetRigidbody, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x01BF4E50, CameraEntity*, MoleMole_EntityManager_GetMainCameraEntity, (MoleMole_EntityManager* __this, MethodInfo* method));
DO_APP_FUNC(0x01BEB030, BaseEntity*, MoleMole_EntityManager_GetValidEntity, (MoleMole_EntityManager* __this, uint32_t runtimeID, MethodInfo* method));
DO_APP_FUNC(0x01BF2D60, bool, MoleMole_EntityManager_RemoveEntity, (MoleMole_EntityManager* __this, BaseEntity* entity, uint32_t specifiedRuntimeID, MethodInfo* method));
DO_APP_FUNC(0x01C02800, bool, MoleMole_EntityManager_IsCachedEntity, (MoleMole_EntityManager* __this, BaseEntity* entity, MethodInfo* method));
DO_APP_FUNC(0x01BF01F0, List_1_MoleMole_BaseEntity_*, MoleMole_EntityManager_GetEntities, (MoleMole_EntityManager* __this, MethodInfo* method));
DO_APP_FUNC(0x044B8970, Bounds, Utils_4_GetBounds, (GameObject* go, MethodInfo* method));
// type should be 'MoleMole_VCCharacterCombat' not 'MoleMole_VCBaseMove'
// function name should be 'GetVisualCombatComponent' not 'GetMoveComponent'
DO_APP_FUNC(0x0596AEC0, VCBaseMove*, MoleMole_BaseEntity_GetMoveComponent_1, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC_METHODINFO(0x099DBAE8, MoleMole_BaseEntity_GetMoveComponent_1__MethodInfo);
DO_APP_FUNC(0x03188270, List_1_MoleMole_BaseComponent_*, MoleMole_BaseEntity_GetAllLogicComponents, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x01E3E4F0, GameObject*, MoleMole_BaseEntity_get_gameObject, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x031A3550, GameObject*, MoleMole_BaseEntity_get_rootGameObject, (BaseEntity* __this, MethodInfo* method));
// type should be 'MoleMole_AvatarEntity' not 'MoleMole_BaseEntity'
DO_APP_FUNC(0x02F5E1C0, BaseEntity*, MoleMole_EntityManager_GetLocalAvatarEntity, (MoleMole_EntityManager* __this, MethodInfo* method));
DO_APP_FUNC(0x02F56C80, CameraEntity*, MoleMole_EntityManager_GetMainCameraEntity, (MoleMole_EntityManager* __this, MethodInfo* method));
DO_APP_FUNC(0x02F682B0, BaseEntity*, MoleMole_EntityManager_GetValidEntity, (MoleMole_EntityManager* __this, uint32_t runtimeID, MethodInfo* method));
// should be: DO_APP_FUNC(0x02F5F490, void, MoleMole_EntityManager_RemoveEntity, (MoleMole_EntityManager * __this, bool entity, MethodInfo * method));
DO_APP_FUNC(0x02F5F490, bool, MoleMole_EntityManager_RemoveEntity, (MoleMole_EntityManager* __this, BaseEntity* entity, uint32_t specifiedRuntimeID, MethodInfo* method));
DO_APP_FUNC(0x02F60A10, bool, MoleMole_EntityManager_IsCachedEntity, (MoleMole_EntityManager* __this, BaseEntity* entity, MethodInfo* method));
DO_APP_FUNC(0x02F65570, List_1_MoleMole_BaseEntity_*, MoleMole_EntityManager_GetEntities, (MoleMole_EntityManager* __this, MethodInfo* method));
DO_APP_FUNC(0x045E15B0, Bounds, Utils_4_GetBounds, (GameObject* go, MethodInfo* method));
// Modify | RyujinZX#6666
DO_APP_FUNC(0x00C6C780, void, MoleMole_HumanoidMoveFSM_LateTick, (HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method));
DO_APP_FUNC(0x0116C440, void, MoleMole_HumanoidMoveFSM_LateTick, (HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method));
DO_APP_FUNC(0x01DD2070, bool, MoleMole_ScenePropManager_GetTreeTypeByPattern, (MoleMole_ScenePropManager* __this, String* pattern, MoleMole_Config_TreeType__Enum* treeType, MethodInfo* method));
DO_APP_FUNC(0x013B7790, bool, MoleMole_ScenePropManager_GetTreeTypeByPattern, (MoleMole_ScenePropManager* __this, String* pattern, MoleMole_Config_TreeType__Enum* treeType, MethodInfo* method));
DO_APP_FUNC(0x018C5CE0, void, MoleMole_NetworkManager_RequestHitTreeDropNotify, (MoleMole_NetworkManager* __this, Vector3 position, Vector3 hitPostion, MoleMole_Config_TreeType__Enum treeType, MethodInfo* method));
// function should be 'MoleMole_TimeUtil_get_LocalNowMsTimeStamp'
DO_APP_FUNC(0x0266BFF0, uint64_t, MoleMole_TimeUtil_get_NowTimeStamp, (MethodInfo* method));
DO_APP_FUNC(0x00C3F160, void, MoleMole_NetworkManager_RequestHitTreeDropNotify, (MoleMole_NetworkManager* __this, Vector3 position, Vector3 hitPostion, MoleMole_Config_TreeType__Enum treeType, MethodInfo* method));
DO_APP_FUNC(0x0291FEF0, uint64_t, MoleMole_TimeUtil_get_NowTimeStamp, (MethodInfo* method));
DO_APP_FUNC(0x01F5BA10, bool, MoleMole_LoadingManager_IsLoaded, (MoleMole_LoadingManager* __this, MethodInfo* method));
DO_APP_FUNC(0x00AB5620, bool, MoleMole_LoadingManager_IsLoaded, (MoleMole_LoadingManager* __this, MethodInfo* method));
// Thanks to | RyujinZX
DO_APP_FUNC(0x01337F70, void, MoleMole_LCAbilityElement_ReduceModifierDurability, (LCAbilityElement* __this, int32_t modifierDurabilityIndex, float reduceDurability, Nullable_1_Single_ deltaTime, MethodInfo* method));
DO_APP_FUNC(0x00D87B20, void, MoleMole_LCAbilityElement_ReduceModifierDurability, (LCAbilityElement* __this, int32_t modifierDurabilityIndex, float reduceDurability, Nullable_1_Single_ deltaTime, MethodInfo* method));
DO_APP_FUNC(0x01FF2880, BaseEntity*, MoleMole_GadgetEntity_GetOwnerEntity, (GadgetEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x023B07C0, BaseEntity*, MoleMole_GadgetEntity_GetOwnerEntity, (GadgetEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x02E826A0, void, MoleMole_InLevelMapPageContext_ZoomMap, (InLevelMapPageContext* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x02EC7730, void, MoleMole_InLevelMapPageContext_UpdateView, (InLevelMapPageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x034D77C0, void, MoleMole_InLevelMapPageContext_ZoomMap, (InLevelMapPageContext* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x0350F300, void, MoleMole_InLevelMapPageContext_UpdateView, (InLevelMapPageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x01A36960, bool, MoleMole_UIManager_HasEnableMapCamera, (MoleMole_UIManager* __this, MethodInfo* method));
DO_APP_FUNC(0x014A97A0, bool, MoleMole_UIManager_HasEnableMapCamera, (MoleMole_UIManager* __this, MethodInfo* method));
DO_APP_FUNC(0x00E8E700, void, MonoMiniMap_Update, (MonoMiniMap* __this, MethodInfo* method));
DO_APP_FUNC(0x0635A470, MonoMiniMap*, MonoInLevelMainPage_get_miniMap, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x024A3570, void, MoleMole_GadgetModule_OnGadgetInteractRsp, (void* __this, GadgetInteractRsp* notify, MethodInfo* method));
DO_APP_FUNC(0x00A8D650, float, MoleMole_InLevelMainPageContext_get_miniMapScale, (InLevelMainPageContext* __this, MethodInfo* method));
DO_APP_FUNC(0x016981E0, void, MonoMiniMap_Update, (MonoMiniMap* __this, MethodInfo* method));
DO_APP_FUNC(0x02CB6CA0, MonoMiniMap*, MonoInLevelMainPage_get_miniMap, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x0265C390, void, MoleMole_GadgetModule_OnGadgetInteractRsp, (void* __this, GadgetInteractRsp* notify, MethodInfo* method));
DO_APP_FUNC(0x009E9F50, float, MoleMole_InLevelMainPageContext_get_miniMapScale, (InLevelMainPageContext* __this, MethodInfo* method));
// UnityEngine
DO_APP_FUNC(0x065ECB70, void, RenderSettings_set_fog, (bool value, MethodInfo* method));
DO_APP_FUNC(0x06621FF0, void, Application_set_targetFrameRate, (int32_t value, MethodInfo* method));
DO_APP_FUNC(0x06621D80, int32_t, Application_get_targetFrameRate, (MethodInfo* method));
DO_APP_FUNC(0x058476D0, void, RenderSettings_set_fog, (bool value, MethodInfo* method));
DO_APP_FUNC(0x05883D80, int32_t, Application_get_targetFrameRate, (MethodInfo* method));
DO_APP_FUNC(0x05883FE0, void, Application_set_targetFrameRate, (int32_t value, MethodInfo* method));
DO_APP_FUNC(0x06678780, bool, RectTransformUtility_ScreenPointToLocalPointInRectangle, (void* rect, Vector2 screenPoint, void* cam, Vector2* localPoint, MethodInfo* method));
DO_APP_FUNC(0x058D7A10, bool, RectTransformUtility_ScreenPointToLocalPointInRectangle, (void* rect, Vector2 screenPoint, void* cam, Vector2* localPoint, MethodInfo* method));
DO_APP_FUNC(0x06555BA0, Vector3, Transform_get_position, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x065548F0, void, Transform_set_position, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x0664E3A0, float, Vector3_Distance, (Vector3 a, Vector3 b, MethodInfo* method));
DO_APP_FUNC(0x06534FE0, float, Vector2_Distance, (Vector2 a, Vector2 b, MethodInfo* method));
DO_APP_FUNC(0x057BBE20, Vector3, Transform_get_position, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057BAB40, void, Transform_set_position, (Transform* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x058AF880, float, Vector3_Distance, (Vector3 a, Vector3 b, MethodInfo* method));
DO_APP_FUNC(0x0579FEB0, float, Vector2_Distance, (Vector2 a, Vector2 b, MethodInfo* method));
DO_APP_FUNC(0x0658F980, void, Cursor_set_visible, (bool value, MethodInfo* method));
DO_APP_FUNC(0x0658F970, void, Cursor_set_lockState, (CursorLockMode__Enum value, MethodInfo* method));
DO_APP_FUNC(0x0658F960, bool, Cursor_get_visible, (MethodInfo* method));
DO_APP_FUNC(0x057E4470, void, Cursor_set_visible, (bool value, MethodInfo* method));
DO_APP_FUNC(0x057E4460, void, Cursor_set_lockState, (CursorLockMode__Enum value, MethodInfo* method));
DO_APP_FUNC(0x057E4450, bool, Cursor_get_visible, (MethodInfo* method));
DO_APP_FUNC(0x064B3A00, void, Rigidbody_set_detectCollisions, (Rigidbody* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x064B3A40, void, Rigidbody_set_isKinematic, (Rigidbody* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x064B3740, void, Rigidbody_set_velocity, (Rigidbody* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x0571E9A0, void, Rigidbody_set_detectCollisions, (Rigidbody* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x0571E9E0, void, Rigidbody_set_isKinematic, (Rigidbody* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x0571E8F0, Vector3, Rigidbody_get_velocity, (Rigidbody* __this, MethodInfo* method));
DO_APP_FUNC(0x0571EA60, void, Rigidbody_set_velocity, (Rigidbody* __this, Vector3 value, MethodInfo* method));
DO_APP_FUNC(0x06631190, float, Time_get_timeScale, (MethodInfo* method));
DO_APP_FUNC(0x06631240, void, Time_set_timeScale, (float value, MethodInfo* method));
DO_APP_FUNC(0x066310B0, float, Time_get_deltaTime, (MethodInfo* method));
DO_APP_FUNC(0x058922C0, float, Time_get_timeScale, (MethodInfo* method));
DO_APP_FUNC(0x05892370, void, Time_set_timeScale, (float value, MethodInfo* method));
DO_APP_FUNC(0x058921E0, float, Time_get_deltaTime, (MethodInfo* method));
DO_APP_FUNC(0x06594F40, Vector3, Camera_WorldToScreenPoint, (Camera* __this, Vector3 position, MethodInfo* method));
DO_APP_FUNC(0x06595270, Camera*, Camera_get_main, (MethodInfo* method));
DO_APP_FUNC(0x065953B0, int32_t, Camera_get_pixelWidth, (Camera* __this, MethodInfo* method));
DO_APP_FUNC(0x06595360, int32_t, Camera_get_pixelHeight, (Camera* __this, MethodInfo* method));
DO_APP_FUNC(0x057E98F0, Vector3, Camera_WorldToScreenPoint, (Camera* __this, Vector3 position, MethodInfo* method));
DO_APP_FUNC(0x057E9C20, Camera*, Camera_get_main, (MethodInfo* method));
DO_APP_FUNC(0x057E9D60, int32_t, Camera_get_pixelWidth, (Camera* __this, MethodInfo* method));
DO_APP_FUNC(0x057E9D10, int32_t, Camera_get_pixelHeight, (Camera* __this, MethodInfo* method));
DO_APP_FUNC(0x06533CA0, int32_t, Screen_get_width, (MethodInfo* method));
DO_APP_FUNC(0x06533C30, int32_t, Screen_get_height, (MethodInfo* method));
DO_APP_FUNC(0x0579EB70, int32_t, Screen_get_width, (MethodInfo* method));
DO_APP_FUNC(0x0579EB00, int32_t, Screen_get_height, (MethodInfo* method));
DO_APP_FUNC(0x0664CF50, bool, Behaviour_get_isActiveAndEnabled, (Behaviour* __this, MethodInfo* method));
DO_APP_FUNC(0x058AE2D0, bool, Behaviour_get_isActiveAndEnabled, (Behaviour* __this, MethodInfo* method));
DO_APP_FUNC(0x066306D0, Vector3, Quaternion_ToEulerAngles, (Quaternion rotation, MethodInfo* method));
DO_APP_FUNC(0x066309A0, Vector3, Quaternion_get_eulerAngles, (Quaternion__Boxed* __this, MethodInfo* method));
DO_APP_FUNC(0x06555C70, Quaternion, Transform_get_rotation, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x06552F50, Rect, RectTransform_get_rect, (RectTransform* __this, MethodInfo* method));
DO_APP_FUNC(0x06677BD0, float, Canvas_get_scaleFactor, (/*Canvas**/void* __this, MethodInfo* method));
DO_APP_FUNC(0x05891610, Vector3, Quaternion_ToEulerAngles, (Quaternion rotation, MethodInfo* method));
DO_APP_FUNC(0x05891AD0, Vector3, Quaternion_get_eulerAngles, (Quaternion__Boxed* __this, MethodInfo* method));
DO_APP_FUNC(0x057BBEF0, Quaternion, Transform_get_rotation, (Transform* __this, MethodInfo* method));
DO_APP_FUNC(0x057B91C0, Rect, RectTransform_get_rect, (RectTransform* __this, MethodInfo* method));
DO_APP_FUNC(0x058D6E60, float, Canvas_get_scaleFactor, (/*Canvas**/void* __this, MethodInfo* method));
DO_APP_FUNC(0x00935700, void, LevelTimeManager_SetInternalTimeOfDay, (/*LevelTimeManager**/void* __this, float inHours, bool force, bool refreshEnviroTime, MethodInfo* method));
DO_APP_FUNC(0x00E3D750, void, LevelTimeManager_SetInternalTimeOfDay, (/*LevelTimeManager**/void* __this, float inHours, bool force, bool refreshEnviroTime, MethodInfo* method));
// Singletons
DO_APP_FUNC(0x05189A90, void*, Singleton_GetInstance, (MethodInfo* method));
DO_APP_FUNC_METHODINFO(0x096EA3B0, Singleton_1_MoleMole_MapModule__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096EA470, Singleton_1_MoleMole_LoadingManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E5D68, Singleton_1_MoleMole_EntityManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E6D98, Singleton_1_InteractionManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E5C20, Singleton_1_MoleMole_UIManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E9868, Singleton_1_MoleMole_ItemModule__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E7148, Singleton_1_MoleMole_EventManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E5C58, Singleton_1_MoleMole_PlayerModule__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E5EE8, Singleton_1_MoleMole_MapManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E8A10, Singleton_1_MoleMole_ScenePropManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x096E63A0, Singleton_1_MoleMole_NetworkManager__get_Instance__MethodInfo);
DO_APP_FUNC(0x06074140, void*, Singleton_GetInstance, (MethodInfo* method));
DO_APP_FUNC_METHODINFO(0x099D0B08, Singleton_1_MoleMole_MapModule__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099D2620, Singleton_1_MoleMole_LoadingManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099CFF50, Singleton_1_MoleMole_EntityManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099D3190, Singleton_1_InteractionManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099CFF78, Singleton_1_MoleMole_UIManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099DDF00, Singleton_1_MoleMole_ItemModule__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099CFF60, Singleton_1_MoleMole_EventManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099D0570, Singleton_1_MoleMole_PlayerModule__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099D4130, Singleton_1_MoleMole_MapManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099D1CA8, Singleton_1_MoleMole_ScenePropManager__get_Instance__MethodInfo);
DO_APP_FUNC_METHODINFO(0x099D49D0, Singleton_1_MoleMole_NetworkManager__get_Instance__MethodInfo);

View File

@ -5,14 +5,14 @@
// * IL2CPP application-specific type definition addresses
// ******************************************************************************
DO_TYPEDEF(0x0967B618, Byte);
DO_TYPEDEF(0x09688C08, GameManager);
DO_TYPEDEF(0x0967B508, Int32);
DO_TYPEDEF(0x09961DA8, Byte);
DO_TYPEDEF(0x0996F680, GameManager);
DO_TYPEDEF(0x09961C98, Int32);
// v 2.7
DO_TYPEDEF(0x0968AD88, LCChestPlugin);
DO_TYPEDEF(0x09688FD8, SceneTreeObject);
DO_TYPEDEF(0x0969D1F8, MoleMole_ActorModifier);
// v 2.8
DO_TYPEDEF(0x099843E8, LCChestPlugin);
DO_TYPEDEF(0x0997B320, SceneTreeObject);
DO_TYPEDEF(0x09977D70, MoleMole_ActorModifier);
//// v 2.6
//DO_SINGLETONEDEF(0x0B3442D8, Singleton_1_MoleMole_MapModule_);

View File

@ -4160,8 +4160,8 @@ namespace app {
// Entity fields
struct __declspec(align(8)) BaseEntity__Fields {
struct Dictionary_2_System_UInt32_AIPerceptionInfo_* _aiPerceptionDic;
struct ConfigEntity* jsonConfig;
struct EntityExcelConfig* excelConfig;
struct Config_ConfigEntity* jsonConfig;
struct Config_EntityExcelConfig* excelConfig;
uint32_t _runtimeID_k__BackingField;
uint32_t _preRuntimeID_k__BackingField;
uint32_t _configID_k__BackingField;
@ -4175,6 +4175,8 @@ namespace app {
struct String* alias;
int32_t order;
bool isForceClientSynced;
int32_t LBLOKJMMJJP;
bool MAHNGBKEEAD;
struct ComponentManager* _logicComponentManager;
struct ComponentManager* _visualComponentManager;
bool _isInited;
@ -4184,12 +4186,12 @@ namespace app {
struct EntityQueryIndex* _queryIndex;
struct AbilityComponentProxy* _abilityProxy;
struct TokenManager* _tokenMgr;
VisionType__Enum _MCNHBKKJDCL_k__BackingField;
VisionType__Enum _NLFDIGCIFIA_k__BackingField;
bool _createDuringReconnectingSceneInitFinish_k__BackingField;
bool _isCleared;
bool _checkRemoveifCached_k__BackingField;
bool _hasAddedInitialComponents;
float BNPPLOPNGLD;
float HLJJGAOMCGC;
bool _isEntityReady;
struct Action_1_BaseEntity_* onComponentInitPostCallback;
struct Action_1_BaseEntity_* onEntityReadyPreCallback;
@ -4228,8 +4230,8 @@ namespace app {
EntityType__Enum_1 entityType;
bool _isAuthority;
uint32_t authorityPeerId;
bool FEFIECBENHD;
bool MGNKEDPIJKG;
bool LODAGLOBAMF;
bool DEMKIIJDAAC;
struct HashList_1_BaseComponent_* _componentsForEntityTickManager;
float _lastTickTime_k__BackingField;
struct List_1_BaseEntity_BaseEntity_ComponentInitNotifyData_* _notifyListOnComponentInit;
@ -4243,13 +4245,13 @@ namespace app {
struct Action_3_UnityEngine_TickState_Boolean_Boolean_* onAnimatorTickStateChange;
struct HashList_1_IRenderable_* _extraRenderers;
struct HashSet_1_IRequestOwnerEntityNoPauseTask_* _noPauseTaskRequests;
bool PNBKIOPIIKA;
bool IMKKHNIODFJ;
bool AHKEFAMPGBJ;
bool KPEBDCGGBGE;
TickState__Enum _currentAnimatorTickState;
struct EntityTickBalanceProxy* _tickBalanceProxy;
bool isKinematicRigidbody;
bool _PNECEMJLAHN_k__BackingField;
bool _IFOBCICMOJM_k__BackingField;
bool _bIgnoreIntervalTick_k__BackingField;
bool _AFKDABPOMLB_k__BackingField;
float __fullTickSqrMag_k__BackingField;
int32_t _greaterToDisableInterval_k__BackingField;
struct Func_1_Single_* _getBalanceTickDeltaTimeHandler;
@ -4311,18 +4313,18 @@ namespace app {
struct FixedFloatStack* _massRatio;
bool _enableSetPostiion;
struct Vector3 _lastPosInParent;
struct Collider__Array* LIFJOPNILOC;
int32_t LPNNDJDEGMI;
int32_t GFMAMAGCBNE;
int32_t IPKBDFGENOE;
bool _isForceDisableEffect;
bool _isActorHided;
bool _isRoomHided;
struct Vector3 LMBBHMDGPGE;
struct Quaternion BFHGMCMIANA;
float LMACHNHENOB;
bool FJBBJDDFOIA;
struct Vector3 PDCOCJPHGAK;
struct Collider__Array* JFCGANLNHPN;
int32_t JJJMCJIFFBM;
int32_t LNECJMABKIH;
int32_t EICAFOKBIPN;
bool KJFPMNMJPJA;
bool CLFLKBNIMOK;
bool OECPMFJFHDB;
struct Vector3 IHBCGPKALHL;
struct Quaternion JOCEPMPLAAG;
float JDCJJGPMLEN;
bool ONMFCCDOJHO;
struct Vector3 PPAFPACBENC;
struct RuntimeAnimatorController* _authorityRuntimeAnimatorController;
struct RuntimeAnimatorController* _remoteRuntimeAnimatorController;
uint32_t _authorityRuntimeAnimatorHandler;
@ -4909,12 +4911,12 @@ namespace app {
struct GameObject* playerIndicator;
struct RectTransform* playerIndicatorParent;
struct MonoMapCursor* _monoMapCursor;
struct InputField* _customMarkTipsInputField;
struct MonoInputFieldExtention* _customMarkTipsInputField;
struct MonoMaterialItemRow* _resin;
struct RectTransform* _cycleDungeonLookupGrp;
struct MonoUIContainer* _cycleDungeonLookupToggle;
struct Text* _cycleDungeonLookupText;
struct List_1_Queue_1_MoleMole_MonoMapMark_* KEIOHDAFIOC;
struct List_1_Queue_1_MoleMole_MonoMapMark_* LMNPEFNMFIJ;
struct GameObject* _exploreDegreeGrp;
struct Text* _exploreArea;
struct Text* _exploreDegree;
@ -4933,7 +4935,7 @@ namespace app {
struct Button_1* homeworldVisitorBtn;
struct Text* _homeworldVisitorLabel;
struct MonoUIContainer* _homeworldVisitorPS4Container;
struct Animator* NFGDFFBFOCF;
struct Animator* _cursorAnimator;
};
struct MonoInLevelMapPage {
@ -5011,9 +5013,10 @@ namespace app {
uint32_t _dungeonIconTipsHandle;
struct GameObject* _dungeonIconTips;
struct GeneralMarkData* generalMapData;
bool NLCJDMBMKPC;
bool ADIBPKEGJOK;
int32_t floor;
bool _up;
struct UnityAction_1_UnityEngine_RectTransform_* OODIIHNIPFN;
struct String* _currEffectName;
struct ParticleSystem* _currEffect;
float markAreaRadius;
@ -5094,7 +5097,7 @@ namespace app {
EnterGotoByPortal = 0x00000008,
EnterSelfHome = 0x00000009,
EnterOtherHome = 0x0000000a,
FCBBIIAOAGG = 0x0000000b,
EnterGotoRecreate = 0x0000000b,
};
struct UInt32__Array {
@ -5257,6 +5260,7 @@ namespace app {
Quick = 0x00000002,
DirectlySetPos = 0x00000003,
QuickWithoutPaimonReminder = 0x00000004,
QuickV2 = 0x00000005,
};
enum class MoleMole_NotifyTypes__Enum : int32_t {
@ -6259,27 +6263,28 @@ namespace app {
struct String* _activityLimitRegion;
struct String* _homeworldLimitRegion;
uint32_t _checkScenePointTimer;
uint32_t _HENAPPPHGFA_k__BackingField;
uint32_t _IDKLCPBKKMC_k__BackingField;
uint32_t _HAIMNNOMKFE_k__BackingField;
uint32_t _BEGGBAFACOG_k__BackingField;
uint32_t _LJCHGOJHIBN_k__BackingField;
uint32_t _CEJAIKKNKEF_k__BackingField;
uint32_t _OOBPJNGLEFD_k__BackingField;
uint32_t _MKEGCMJMGPN_k__BackingField;
uint32_t _POPAMGIKPFK_k__BackingField;
uint32_t _NADDOMFDIMH_k__BackingField;
uint32_t _JEKJBGCPAPP_k__BackingField;
uint32_t _BILGKHAIEPL_k__BackingField;
bool _isTowerUnlocked_k__BackingField;
struct List_1_System_UInt32_* dungeonDataLevelConfigIdList;
struct Nullable_1_UnityEngine_Vector3_ curClientAvatarRebornPoint;
struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_System_UInt32_* toBeExploredDungeonEntryDic;
struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_System_UInt32_* canNotBeExploredDungeonEntryDic;
struct HashSet_1_System_UInt32_* PGNGEOMEDEI;
struct HashSet_1_System_UInt32_* HPNBAKBANGB;
struct Dictionary_2_System_UInt32_MoleMole_Config_ConfigScene_* _cfgSceneDic;
struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_Config_ConfigScenePoint_* _cfgPointDic;
struct List_1_System_UInt32_* _currTransPointList;
struct List_1_System_UInt32_* _currFunctionalPointList;
struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_MapModule_LJADJIPKKIK_* CJJCAAMGCOM;
struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_MapModule_LPANCMBHIPC_* DKHELEOJLPD;
uint32_t _activityPlayId_k__BackingField;
float MAX_IN_LIMIT_REGION_TIME;
float _startInLimitRegionTime;
uint32_t _homeworldRegionSceneId_k__BackingField;
uint32_t _FNGKDENFBGH_k__BackingField;
struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_MapModule_MoleMole_MapModule_CityData_* _cityDataDic;
struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_MapModule_MoleMole_MapModule_WorldAreaData_* _worldAreaDataDic;
struct Dictionary_2_System_UInt32_System_UInt32_* _areaId2ExplorePointDic;
@ -6294,7 +6299,7 @@ namespace app {
struct HashSet_1_System_UInt32_* _activatedDungeonWayPoint;
bool _dungeonEntryOpen;
struct Dictionary_2_System_UInt32_System_Boolean_* _sceneUnlockDic;
struct Dictionary_2_System_UInt32_List_1_System_UInt32_* _sceneTagList;
struct Dictionary_2_System_UInt32_List_1_System_UInt32_* FOAIHHEHFHF;
struct List_1_MoleMole_MapModule_MoleMole_MapModule_ScannerInfo_* _scannerInfoList;
struct List_1_MoleMole_MapAreaMistData_* _mistDataList;
struct List_1_MoleMole_MapAreaMistData_* _openMistDataList;
@ -7225,9 +7230,9 @@ namespace app {
bool muteElementHurt;
struct String* onHitEffectName;
uint32_t attackTimeStamp;
struct Nullable_1_MoleMole_Config_TargetType_ targetType;
struct Nullable_1_MoleMole_Config_TargetType_ targetType;
AttackResult_AttackSpecific__Enum attackType;
struct AttackResult_HitCollsion hitCollision;
struct AttackResult_HitCollsion hitCollision;
HitBoxType__Enum hitPosType;
struct String* animEventId;
struct String* attackTag;
@ -7246,7 +7251,7 @@ namespace app {
ElementReactionType__Enum elementReactionType;
struct ConfigAttackProperty* _attackerAttackProperty;
void* modifiedAttackProperty;
float AMJDLLOENNI;
float BNKPGFGKGBF;
ElementType__Enum _origElementType;
float _origElementDurability;
float endureDelta;
@ -7259,11 +7264,11 @@ namespace app {
float bulletFlyTime;
struct ConfigBulletWane* bulletWane;
int32_t rejectState;
struct SafeUInt32 AADHIMJJCHK;
struct SafeUInt32 CMNNNKEGKFI;
struct SafeUInt32 KBDMDNEKOLK;
struct SafeUInt32 HLIIHHNHHNP;
struct SafeUInt32 EMBFNJJJPNG;
struct SafeUInt32 MFFILNNNLDL;
struct SafeUInt32 EAGOJOOBMJO;
struct SafeUInt32 AMJNKBHPBDE;
struct SafeUInt32 OCFODICMFFH;
struct SafeUInt32 EDOGNDNPJDB;
struct Vector3 hitRetreatDir;
};
@ -8997,7 +9002,6 @@ namespace app {
struct MJNGIMLAOFN* _spriteLoadProxy;
};
//BLDKFDKIPLL__Fields
struct BasePageContext__Fields {
struct BaseContext__Fields _;
struct List_1_BaseDialogContext_* dialogContextList;
@ -9035,31 +9039,31 @@ namespace app {
struct Vector3 _customMarkWorldPos;
struct String* _customMarkTitle;
MoleMole_Config_MarkIconType__Enum _customMarktype;
bool KHDDHMIGLMH;
bool AGABBDCCGPJ;
bool GBCMNPNHCBH;
bool IFJIPEEPJJI;
bool OKNKCOJCKLN;
bool OGKHNHIHOFP;
uint32_t _customMarkTrackMonsterID;
uint32_t _customMarkTrackQuestID;
MoleMole_CustomMarkTrackReasonType__Enum NHIIHLLCJAI;
MoleMole_CustomMarkTrackReasonType__Enum _customMarkTrackReasonType;
bool _isAdventureHandbookOpened;
float _slideValue;
struct MoleMole_ResinViewComponent* _resinComp;
struct MoleMole_ZoomAudioComponent* _zoomAudioComp;
struct Dictionary_2_MoleMole_MonoMapMark_UnityEngine_GameObject_* trackingIndictor;
struct Coroutine* ELELLFBCPFM;
bool _NJHAEHLFGNP_k__BackingField;
bool JNBIIIHNPOL;
float FMNNMKICFCN;
struct Vector2 JIEJCHOKMCH;
float EGDCGHPCIGD;
float NNGIPKNIHHL;
struct Vector2 MABOFOAAIDK;
float OOOKLDFFEOK;
bool DAMOBDBBBPD;
struct Coroutine* JFIOMECANNL;
bool _LFIJLCKEKMP_k__BackingField;
bool DJMGCGDBLHD;
float PKBLMNBGCLL;
struct Vector2 ENLNCLPCFHE;
float CPFIIODOHKA;
float MOJEDIFFFIJ;
struct Vector2 ADLDFCKPLGI;
float EMOHKNNFADF;
bool FHBMGCDNMBE;
struct Vector2 _currRectPos;
struct Vector2 _currRectSize;
struct Dictionary_2_System_UInt32_UnityEngine_GameObject_* _companionIndicators;
struct List_1_System_UInt32_* EDDEMHGPOBD;
struct List_1_System_UInt32_* GPLMGCNDKOP;
struct GameObject* _playerIndicator;
struct Vector2 _newPos;
struct Dictionary_2_System_UInt32_UnityEngine_GameObject_* _questAreaMarkDic;
@ -9085,14 +9089,16 @@ namespace app {
MoleMole_InLevelMapPageContext_MoleMole_InLevelMapPageContext_MarkTipsContentType__Enum _markTipsContentType;
struct List_1_MoleMole_BagItem_* _reward;
struct List_1_MoleMole_Config_IdCountStrConfig_* _rewardPreviewList;
float BCHEAHAGENA;
uint32_t _dungeonEntryPointID;
float IOHJENGJBFM;
uint32_t HHIHNGGOIFP;
struct MoleMole_Config_DungeonEntry* _selectedDungeonEntry;
MoleMole_InLevelMapPageContext_MoleMole_InLevelMapPageContext_DungeonEntryState__Enum _selectDungeonEntryState;
struct Coroutine* _updateDungeonCooldownTipsCoroutine;
struct MoleMole_ItemTipsDialogHelper _itemTipsHelper;
struct Coroutine* _updateFarmFieldCoroutine;
struct GameObject* _newMaxLevelGO;
bool IICOGPJKJKL;
bool LIGALMCPKNI;
struct MoleMole_RewardPreviewComponent* _moonfinTrialRewardPreviewComponent;
struct Coroutine* _updateReviveCooldownCoroutine;
int32_t _selectedMapTagIndex;
@ -9101,8 +9107,8 @@ namespace app {
int32_t _customMarkCount;
struct MoleMole_Config_MarkIconType__Enum__Array* _customMarkIcons;
struct Vector2 _currMapPos;
struct Dictionary_2_System_UInt32_List_1_MoleMole_InLevelMapPageContext_BKKFEMNNBMG_* LOLNIIFFJON;
int32_t MAPJENKCNNE;
struct Dictionary_2_System_UInt32_List_1_MoleMole_InLevelMapPageContext_EACHJPIDJND_* IOLJGOCGPHB;
int32_t GBKLEGIFLAI;
};
struct InLevelMapPageContext {
@ -9138,8 +9144,8 @@ namespace app {
struct List_1_SelectItemParam_* _selectParamList;
struct Action* _updateGrpSelectBottom;
struct List_1_System_UInt32_* _selectDialogIdList;
bool EHOPIEOHBIJ;
bool IEFCCCNLHFG;
bool OBDPLKKDFBN;
bool GGFOHLGGCHI;
struct Action* _onFreeClick;
float _interactableTime;
float _autoTalkInteractableTime;
@ -9456,26 +9462,26 @@ namespace app {
struct BaseMoveSyncPlugin__Fields {
struct BaseComponentPlugin__Fields _;
struct JEACJCEKBMO__Array* JFHIPAJNCEH;
struct MoveSyncTask moveSyncTask;
int32_t EBAFCLPDNOA;
struct PAGLNCJFJAB* EGOGHHCEKBI;
uint32_t BMEKGDMGLDM;
float BPNLDBMLCPG;
int32_t IMGAJKMBICM;
int32_t JFNJPLBNEAH;
uint64_t LDHCFEHMENK;
struct MoveSyncTask PKJLBFAGDPG;
float KHDFGOBLNOH;
bool BAHIDGDKDPG;
bool MPNMLBJNIJK;
float BPNMMCBBPDO;
uint32_t DANEEGOIAOE;
struct HBGKJGFOBDG* HHAPKOKPBPN;
bool KCODNABDGKC;
uint64_t PHBBAMKNKEH;
uint32_t JEKLOEMBBJB;
struct MoveSyncTask GPOABHBBEGL;
struct Proto_MotionInfo__Array* _motion;
struct MoveSyncTask _syncTask;
MotionState__Enum _prevMotionState;
struct MoleMole_VCBaseMove* _ownerMove;
uint32_t _lod;
float _lastSendSyncTaskTime;
int32_t _fixedTickCount;
int32_t _intervalVelocityCheckCount;
uint64_t _intervalVelocityCheckBits;
struct MoveSyncTask _lastSendMoveSyncTask;
float _intervalTime;
bool _canIgnoreTickSync;
bool _reliableSendWhenSameComparablePart;
float _reliableSendWhenSameComparablePartTime;
uint32_t _lastSendReliabledPacketSeq;
struct MoleMole_LCSyncMotion* _lcSyncMotion;
bool _hasInitializedSyncMove;
uint64_t _lastHandledTaskTimeStamp;
uint32_t _lastHandledReliableTaskSeq;
struct MoveSyncTask tempPeekGetMoveSyncTask;
};
struct BaseMoveSyncPlugin {
@ -9485,17 +9491,17 @@ namespace app {
};
struct __declspec(align(8)) ADOCDLJKPGF__Fields {
struct Dictionary_2_UniRx_Tuple_2_Dictionary_2_System_UInt32_MoleMole_IndexHandleObjectList_1_* PKPGAJELFJP;
struct Dictionary_2_System_UInt32_MoleMole_IndexHandleObjectList_1__2* EPNNKHDPMKN;
struct Dictionary_2_System_UInt32_Dictionary_2_System_Type_ADOCDLJKPGF_NCKPKBOOPAE_* NHLMDJCPBOI;
struct List_1_NLHGPLIGNNJ_* OCCMKONNAFF;
struct List_1_NLHGPLIGNNJ_* ODMMGNLPPKO;
struct List_1_NLHGPLIGNNJ_* FMJOCJEEDNA;
struct Dictionary_2_System_Type_MoleMole_IndexHandleObjectList_1_* BGCNGICCMNG;
bool IKIHCFFFACC;
struct List_1_UniRx_Tuple_5__1* AOENJPJCHCP;
int32_t AANDAKJMONI;
bool GEPOJPNFMKO;
struct Dictionary_2_System_ValueTuple_2_Dictionary_2_System_UInt32_MoleMole_IndexHandleObjectList_1_* JJHMKFJMIFN;
struct Dictionary_2_System_UInt32_MoleMole_IndexHandleObjectList_1__2* EABFBNIMFPP;
struct Dictionary_2_System_UInt32_Dictionary_2_System_Type_MoleMole_EventManager_ListenerRegistry_* _runtimeId2ListenerDic;
struct List_1_MoleMole_BaseEvent_* _queuedFrameEvents;
struct List_1_MoleMole_BaseEvent_* _queuedNextEvents;
struct List_1_MoleMole_BaseEvent_* _queuedNextEventsToAdd;
struct Dictionary_2_System_Type_MoleMole_IndexHandleObjectList_1_* _evtListeners;
bool _isStopped;
struct List_1_System_ValueTuple_5__1* IEJKHEKFBII;
int32_t BGHBKPIABOK;
bool _dispatchPaused;
};
struct MoleMole_EventManager {
@ -9509,14 +9515,15 @@ namespace app {
struct Action_3_BaseEntity_Config_AddGlobalValue_ActorAbility_* _addGlobalValueHandlerClosureDelegate;
struct Action_3_BaseEntity_Config_SetGlobalValue_ActorAbility_* _setGlobalValueHandlerClosureDelegate;
struct Action_3_BaseEntity_Config_MultiplyGlobalValue_ActorAbility_* _multiplyGlobalValueHandlerClosureDelegate;
struct Action_4_BaseEntity_Config_SetTargetNumToGlobalValue_ActorAbility_Single_* BFCGFMBGIHB;
struct Action_4_BaseEntity_String_Single_GJKAGOLAHKK_* OJKOMJEBCLM;
struct Action_4_BaseEntity_Config_MultiplyGlobalValue_ActorAbility_Single_* MEEAPCINNBE;
struct Action_4_BaseEntity_String_Single_CPKJHKOJDIF_* LLAIOCNHNPM;
struct List_1_MonoEffectProxyHandle_* _effectProxyListCache;
struct List_1_MonoEffectProxyHandle_* _effectProxyListCacheForChangFollowDampTime;
struct List_1_UnityEngine_Vector3_* _pushedPosList;
struct LCAbility* _owner;
struct List_1_ActorAbility_* _appliedAbilities;
struct Dictionary_2_System_UInt32_System_Int32_* _appliedAbilitiesIndex;
struct Dictionary_2_System_String_ActorAbility_* CKDBIBGCPOB;
uint32_t nextValidAbilityID;
struct List_1_ActorModifier_* _appliedModifiers;
struct List_1_ActorModifier_* _deadModifiers;
@ -9556,7 +9563,7 @@ namespace app {
struct Dictionary_2_System_Int32_List_1_BaseAbilityMixin_* _listenEventMixins;
struct List_1_BaseAbilityMixin_* _addListenEventMixins;
struct List_1_BaseAbilityMixin_* _removeListenEventMixins;
int32_t ECLCGLCLPPD;
int32_t CGNCPHPNGDB;
bool IsImmuneDebuff;
bool _isDuringInitAbility_k__BackingField;
bool _isDuringChangeAbility_k__BackingField;
@ -9592,7 +9599,7 @@ namespace app {
FAIL_COOLDOWN = 0x0000000c,
};
struct __declspec(align(8)) GMNHONOINDB__Fields {
struct __declspec(align(8)) MoleMole_CharacterModule__Fields {
struct Dictionary_2_System_UInt32_Dictionary_2_System_Int32_List_1_CFKBGDNLDGP_* MFEPPBMCAGP;
};
@ -9680,64 +9687,68 @@ namespace app {
struct BEKFICFOHKL__Fields fields;
};
struct NEOGDEDNDHF__Fields {
struct GMNHONOINDB__Fields _;
struct MoleMole_PlayerModule__Fields {
struct MoleMole_CharacterModule__Fields _;
struct AccountDataItem* _accountData_k__BackingField;
struct HBFICKPEILE* openState;
struct PlayerOpenStateData* openState;
uint32_t curWorldType;
uint32_t curSceneID;
struct OGNHDKJOONG* _curSceneConfig;
bool isSereverLevelPaused;
struct Config_SceneExcelConfig* _curSceneConfig;
bool isServerLevelPaused;
uint32_t extraAbilityId;
bool extraAbilityEnable;
uint64_t extraAbilityUseTime;
float AJMFBGNGPIB;
float KJKAPGLEELE;
struct List_1_UniRx_Tuple_3_* INANHBPCBLC;
bool MAOHENNPOMB;
bool HEJLGFNHKND;
bool NABCGFBLKDJ;
bool PNGMLKJFKND;
bool MNMODNDPIDD;
uint32_t OODBAMHAGPO;
uint32_t JPKIAEFDHMD;
bool NFMOCKLFAOF;
float JJLIHANGKEO;
struct Dictionary_2_System_UInt64_System_UInt32_* ICPIOBFBPGA;
struct LGPKIADMOBE_System_UInt64_CJFLLIKJGLF_* BDBFEGIMOFI;
struct DPHDLLFCIBC* HDOGLGNGMAP;
struct PHHEDBDLADE* ANDABFFFNHE;
struct Action_1_Single_* KGABFCPEBDG;
struct Dictionary_2_System_UInt32_System_UInt32_* EPNCJKKPNIN;
struct List_1_System_UInt64_* IDPDPDAENDP;
bool HJOJBIBHGEC;
struct List_1_JBONEPGMKAD_* ODDFKLCINLC;
struct Coroutine* FCJOEAPBMHB;
Miscs_ChangeAvatarFailType__Enum FDFCHGCAIPL;
uint32_t MFKCKBGCADE;
struct String* DMMKLMDFDLE;
struct String* JKFKIOAJPKF;
struct Dictionary_2_System_UInt32_System_UInt32_* FMMDIGIIBJB;
float NDFMECJGCKK;
float BHAMGAPDFEH;
uint32_t AFIIDKIKKMB;
struct List_1_System_UInt32_* DNKMPLJPOHG;
uint32_t MAPMNIDOJCG;
bool MIMGJGCADKB;
uint32_t LCMMMGHFEGG;
uint32_t DCGJMGBIDLD;
uint32_t GGJMEBPNECC;
uint32_t PIJHFCGJBJM;
struct CAIMHKHHLHK_LJBGLAADLNC_* FFMOHPPEKLN;
struct CAIMHKHHLHK_LJBGLAADLNC_* BLPNAPNOPFN;
uint64_t ONAPAACFOBM;
struct JIBKJBJNFED* LGADGGJMODA;
float lastSendChangeAvatarTime;
float lastPressSkillButtonTime;
float PMAMAHGBLBJ;
struct List_1_System_ValueTuple_3_* teamEntityAbilitiesFromServer;
bool IMCBNAMPBPG;
bool PNCFBAOIKHB;
bool IBNOIPGDGAG;
bool MILPALJGOLD;
bool PNBHCGNHOFB;
uint32_t ALCHAOANODE;
uint32_t FPBJOLBEJGO;
bool enterSceneFromLogin;
float _nextLoginReqTime;
struct Dictionary_2_System_UInt64_System_UInt32_* _backgroundAvatarRecoverTime;
struct Google_Protobuf_Collections_MessageMapField_2_System_UInt64_Proto_AvatarExpeditionInfo_* _currExpeditionInfo;
struct Proto_AvatarExpeditionAllDataRsp* _currAllDataRsp;
struct Proto_ExclusiveRuleNotify* _exclusiveRuleNotify;
struct Action_1_Single_* LENAIDKELJE;
void* DDFMMKJJENE;
void* CHNAOGEHNGB;
struct Dictionary_2_System_UInt32_System_UInt32_* HENIBLEKILJ;
struct List_1_System_UInt64_* _teamToLoad;
bool needRecoverAbilities;
struct List_1_Proto_SceneEntityInfo_* _needAppearAvatars;
struct Coroutine* _changeAvatarCoroutine;
Miscs_ChangeAvatarFailType__Enum _failType;
uint32_t _sceneOwnerUid;
struct String* CBTEST_TOOL_PATH;
struct String* WATER_MASK_PATH;
struct Dictionary_2_System_UInt32_System_UInt32_* _openstateDic;
float _satiationCriticalValue;
float _satiationRecoverySpeed;
uint32_t _nextRecoveryTimestampOfResin;
struct List_1_System_UInt32_* _buyResinCost;
uint32_t _dailyBoughtCountOfResin;
bool _resinParamsParsed;
uint32_t _resinTotalLimit;
uint32_t _autoRecoveryResinLimit;
uint32_t _resinAutoRecoverySpeed;
uint32_t _resinCountPerPurchase;
struct Google_Protobuf_Collections_RepeatedMessageField_1_Proto_FriendBrief_* _tempFriendBriefListInGame;
struct Google_Protobuf_Collections_RepeatedMessageField_1_Proto_FriendBrief_* _tempFriendBriefListPSN;
uint64_t _lastGetPlayerFriendListTime;
struct Proto_AntiAddictNotify* _antiAddictNotify;
struct GeneralDialogContext* KIEGHJDFLFD;
};
struct MoleMole_PlayerModule {
struct PlayerModule__Class* klass;
MonitorData* monitor;
struct NEOGDEDNDHF__Fields fields;
struct MoleMole_PlayerModule__Fields fields;
};
enum class MapManager_FEDPCJIHAJJ__Enum : int32_t {
@ -9801,7 +9812,7 @@ namespace app {
struct MHCEDJLGNMG__Fields fields;
};
struct ANPOFFEGJHG__Fields {
struct GadgetEntity__Fields {
struct BaseEntity__Fields _;
uint32_t groupId;
uint32_t markFlag;
@ -9826,7 +9837,7 @@ namespace app {
struct GadgetEntity {
struct GadgetEntity__Class* klass;
MonitorData* monitor;
struct ANPOFFEGJHG__Fields fields;
struct GadgetEntity__Fields fields;
};
struct BaseComponent__Array {
@ -10056,8 +10067,7 @@ namespace app {
struct LCChestPlugin__Fields fields;
};
struct __declspec(align(8)) FKHDAEKGMKC__Fields
{
struct __declspec(align(8)) MoleMole_ScenePropManager__Fields {
struct ScenePropEffectConfigs* _scenePropEffectConfigs;
uint32_t _scenePropEffectConfigsHandle;
struct SceneChairConfigs* _sceneChairConfigs;
@ -10066,35 +10076,35 @@ namespace app {
uint32_t _sceneBushConfigsHandle;
struct SceneTreeConfigs* _sceneTreeConfigs;
uint32_t _sceneTreeConfigsHandle;
struct SceneStoneTintConfigs* IJAJFDDPIBF;
uint32_t MPGIOKCAEDG;
struct Dictionary_2_System_Int32_IIJMGCIOIAP_* _treeBushCollection;
struct List_1_NAKCOANCOHK_* _treeBushList;
struct SceneStoneTintConfigs* AIOHDMBGHEI;
uint32_t LCLFKLDHKIM;
struct Dictionary_2_System_Int32_MoleMole_ZOrderCollection_3_* _treeBushCollection;
struct List_1_MoleMole_ICombatSceneProp_* _treeBushList;
struct Dictionary_2_System_Int32_UnityEngine_Vector3_* _treeBushId2Pos;
struct Vector3 _rangeQueryLen;
struct Dictionary_2_System_Int32_NAKCOANCOHK_* _scenePropDict;
struct Dictionary_2_System_Int32_ECGLPBEEEAA_* _treeTypeDict;
struct Dictionary_2_System_Int32_MoleMole_ICombatSceneProp_* _scenePropDict;
struct Dictionary_2_System_Int32_MoleMole_Config_TreeType_* _treeTypeDict;
struct List_1_MoleMole_MonoEnviroLight_* _pointLights;
struct List_1_MoleMole_MonoEnviroCityLight_* _cityLights;
struct List_1_NPOOODHAHMF_* BAKKEOKNFOI;
struct Vector3 _lastSectorPos;
struct FKHDAEKGMKC_DEGEMNHILIP__Array* _treeLeafInfos;
struct MoleMole_ScenePropManager_MoleMole_ScenePropManager_TreeLeafInfo__Array* _treeLeafInfos;
int32_t _treeLeafNum;
struct MaterialPropertyBlock* _mpb;
struct Camera* _mainCam;
struct List_1_UnityEngine_Material_* _leafDitherMaterials;
struct Dictionary_2_System_Int32_UnityEngine_Vector3__1* _shakeAnims;
struct List_1_NAKCOANCOHK_* _playingScenePropShakes;
struct List_1_JNFKAAAPLGE_* _chairs;
struct List_1_MoleMole_ICombatSceneProp_* _playingScenePropShakes;
struct List_1_MoleMole_IChair_* _chairs;
struct GameObject* iceBlockRoot;
struct GameObject* _surfaceMeshObjectRoot;
struct GameObject* _tileMeshObjectRoot;
};
struct MoleMole_ScenePropManager
{
struct FKHDAEKGMKC__Class* klass;
struct MoleMole_ScenePropManager {
struct MoleMole_ScenePropManager__Class* klass;
MonitorData* monitor;
struct FKHDAEKGMKC__Fields fields;
struct MoleMole_ScenePropManager__Fields fields;
};
@ -10212,30 +10222,29 @@ namespace app {
bool has_value;
};
struct IDPLOHKAJML__Fields {
struct LCAbilityElement__Fields {
struct LCBase__Fields _;
struct Dictionary_2_System_Int32_List_1_MLAAELGDIJH_* _elementModifierMap;
struct Action* _act;
struct List_1_System_Nullable_1_* _modifierDurabilities;
struct List_1_UniRx_Tuple_3__1* _elemAccuDurabilities;
struct OJGKFFDAGON* _levelAbilityCom;
struct OJGKFFDAGON* _selfLCAbility;
struct KMALPDEBPFP* _lcAbilityState;
struct DGLICFPOFBE* _vcBillboard;
struct Dictionary_2_System_Int32_List_1_MoleMole_ActorModifier_* _elementModifierMap;
struct Action* onElementModifierChanged;
struct List_1_System_Nullable_1__2* _modifierDurabilities;
struct List_1_System_ValueTuple_3__3* _elemOverloadDurabilities;
struct MoleMole_LCAbility* _levelAbilityCom;
struct MoleMole_LCAbility* _selfLCAbility;
struct MoleMole_LCAbilityState* _lcAbilityState;
struct MoleMole_VCBillboard* _vcBillboard;
float _purgeRate;
float _purgeIncement;
bool _ignorePurgeRate;
struct EDDKNGCGJFI* _grassScenePlugin;
struct EADDBDCPBMJ* _waterScenePlugin;
struct EBLDCCEGAOF* _bushScenePlugin;
struct BDFMIJCPDIC* _shakeInterval;
struct MoleMole_LevelSceneGrassPlugin* _grassScenePlugin;
struct MoleMole_LevelSceneWaterPlugin* _waterScenePlugin;
struct MoleMole_LevelSceneBushPlugin* _bushScenePlugin;
struct MoleMole_EntityTimerReceiver* _shakeInterval;
bool _showReactionText;
struct String* elementDecrateGroup;
bool BHDLGGOBAME;
bool AKLPKDONCJH;
struct Func_2_MLAAELGDIJH_Boolean_* NEMHEFJLFEA;
struct Action_3_GLPNBMKEPPD_CCAMDLAOBAA_Nullable_1_UnityEngine_Vector3_* FDHMHGFNCFD;
struct Action_3_GLPNBMKEPPD_CCAMDLAOBAA_Nullable_1_UnityEngine_Vector3_* NIHADNAGOND;
bool LDAPBJPCDHC;
struct Func_2_MoleMole_ActorModifier_Boolean_* HGAAHMCALBE;
struct Action_3_MoleMole_Config_ElementReactionType_MoleMole_BaseEntity_Nullable_1_UnityEngine_Vector3_* GGOGFKDBFHJ;
struct Action_3_MoleMole_Config_ElementReactionType_MoleMole_BaseEntity_Nullable_1_UnityEngine_Vector3_* MIIBJEAOIJI;
struct Vector3 elementReactionPos;
bool triggerFrozenBroken;
float _lastCrystallizeTime;
@ -10244,7 +10253,7 @@ namespace app {
struct LCAbilityElement {
struct LCAbilityElement__Class* klass;
MonitorData* monitor;
struct IDPLOHKAJML__Fields fields;
struct LCAbilityElement__Fields fields;
};
struct Camera__Fields {
@ -10546,7 +10555,6 @@ namespace app {
struct GadgetInteractRsp__Fields {
struct MessageBase_1__Fields _;
int32_t retcode_;
uint32_t gadgetEntityId_;
InteractType__Enum interactType_;
InterOpType__Enum opType_;
@ -10761,35 +10769,42 @@ namespace app {
struct LCCharacterCombat__Fields fields;
};
struct __declspec(align(8)) LCAvatarCombat_OMIIMOJOHIP__Fields {
enum class Config_MonitorType__Enum : int32_t {
MONITOR_NEVER = 0x00000000,
MONITOR_OFF_STAGE = 0x00000001,
MONITOR_ON_STAGE = 0x00000002,
MONITOR_ALWAYS = 0x00000003,
};
struct __declspec(align(8)) MoleMole_LCAvatarCombat_MoleMole_LCAvatarCombat_SkillInfo__Fields {
uint32_t skillID;
struct AvatarSkillExcelConfig* config;
struct Config_AvatarSkillExcelConfig* config;
struct SafeFloat cdTimer;
struct SafeFloat currChargeCount;
struct SafeInt32 currChargeCount;
struct SafeFloat costStamina;
bool canHold;
bool canTrigger;
bool useInAir;
struct HashSet_1_System_Int32_* canUseSkillStateWhiteList;
int32_t needMonitor;
Config_MonitorType__Enum needMonitor;
bool isLocked;
bool ignoreCDMinusRatio;
bool forceCanDoSkill;
struct SafeFloat NFNMNLKPNHD;
struct SafeFloat EBIABBHAFFD;
struct SafeFloat HPDKMHFJFMI;
struct SafeFloat IBKPGNDMDBJ;
struct SafeFloat GBGBNALDDFM;
struct SafeFloat KMKHNLHFIOL;
struct SafeFloat KBLGNPCEMON;
struct SafeFloat BKNLEDABNBI;
struct SafeFloat HADJBEOJAAI;
struct SafeFloat DJHJCNGKFMC;
int32_t skillIndex;
int32_t prority;
float _costElem_k__BackingField;
int32_t _maxChargeCount_k__BackingField;
};
struct LCAvatarCombat_OMIIMOJOHIP {
struct LCAvatarCombat_OMIIMOJOHIP__Class* klass;
struct LCAvatarCombat_LCAvatarCombat_SkillInfo {
struct MoleMole_LCAvatarCombat_MoleMole_LCAvatarCombat_SkillInfo__Class* klass;
MonitorData* monitor;
struct LCAvatarCombat_OMIIMOJOHIP__Fields fields;
struct MoleMole_LCAvatarCombat_MoleMole_LCAvatarCombat_SkillInfo__Fields fields;
};
struct LCAvatarCombat__Fields {
@ -10845,17 +10860,17 @@ namespace app {
struct HumanoidMoveFSM__Fields {
struct BaseComponentPlugin__Fields _;
struct HumanoidMoveFSMBaseMoveState* _curState;
struct MoleMole_HumanoidMoveFSMBaseMoveState* _curState;
int32_t fallOnGroundFirstFrame;
struct Dictionary_2_MoleMole_HumanoidMoveFSM_JJLCCKKCHPD_MoleMole_HumanoidMoveFSMBaseMoveState_* stateMapInfo;
struct Dictionary_2_MoleMole_HumanoidMoveFSM_MoleMole_HumanoidMoveFSM_FSMStateID_MoleMole_HumanoidMoveFSMBaseMoveState_* stateMapInfo;
struct VCHumanoidMoveData* _moveData;
struct VCHumanoidMoveConfig* _moveConfig;
struct MoleMole_VCHumanoidMoveConfig* _moveConfig;
struct VCHumanoidMove* _ownerMove;
struct Animator* _animator;
struct Rigidbody* _rigidbody;
struct AnimatorController* _animatorController;
void* OnMoveUpdateCallback;
void* OnAirUpdateCallback;
struct Action_1_MoleMole_HumanoidMoveFSMCallBackInfo_* OnMoveUpdateCallback;
struct Action_1_MoleMole_HumanoidMoveFSMCallBackInfo_* OnAirUpdateCallback;
bool _initSyncWithCurrentTask;
bool _behaviourSet;
float _sendCombatNotifyTime;
@ -10870,6 +10885,7 @@ namespace app {
bool ignoreOverallMoveWallProtectionCurrentFrame;
bool stopMoveWhenGoupstairs;
bool lastStopMoveWhenGoupstairs;
bool IMLLBMBBEJI;
float climbGlobalRecovery;
bool autoGoUpstair;
bool forceDoNotSyncWhenReset;
@ -10879,20 +10895,23 @@ namespace app {
bool _firstLatetick;
bool _lastInForbiddenToggleMoveState;
bool _disableMotion4hiUpdateCurrentFrame;
bool NGPIBEPBPKA;
int32_t _flyStateHash;
struct VCMoveIKController* _ikComp;
struct MoleMole_VCMoveIKController* _ikComp;
struct Transform* _lCalf;
struct Transform* _rCalf;
void* _weaponStandbyIKParams;
void* _normalStandbyIKParams;
void* _params;
float _lastSkirtBlendParam;
float _idealSkirtBlendParam;
float _lastIdealSkirtBlendParam;
float _lastSkirtWeight;
float _idealSkirtWeight;
float _lastSkirtPos;
float _idealSkirtPos;
float BLLOGGMCMIA;
float HNOACEPONMF;
float HDBOJNOFKFN;
float EGHOEFBGDKA;
float MCJGBJLKODK;
float LACOILFNJGC;
float EKNIHOJIDKN;
float COEEDFNDFEH;
float CDCJMAELEKE;
void* _lastFrameAnimSpeedInfo;
void* _currentFrameAnimSpeedInfo;
bool _isInSprintCheckInterval;
@ -10993,22 +11012,14 @@ namespace app {
struct Vector3d_1 _smoothingTransformLookAtPoint;
struct SimpleKalmanFilter* _dirKfilter;
bool _isDirectionFilterInitialized;
struct Vector3d__Array* _faceDirectionTrace;
struct Vector3d_1__Array* _faceDirectionTrace;
bool _isFaceDirectionTraceInitialized;
struct Vector3d_1 _lastFrameSmoothFaceDirection;
bool _hasEnteredAvatarClimb;
bool _hasBeenConsistent;
double _timerForWaitingFacingToWallNoraml;
#if defined(_CPLUSPLUS_)
HumanoidMoveFSM_HumanoidMoveFSM_FSMStateID__Enum _curFSMState;
#else
int32_t _curFSMState;
#endif
#if defined(_CPLUSPLUS_)
HumanoidMoveFSM_HumanoidMoveFSM_FSMStateID__Enum _lastFSMState;
#else
int32_t _lastFSMState;
#endif
struct Vector3d_1 _climbWallNormal;
bool _climbWallNormalGetted;
int32_t _LayerIndex;
@ -11029,11 +11040,11 @@ namespace app {
double _inputMoveAngle;
double _inputMoveMold;
double _defaultCameraDistanceAdjust;
float HOBOHFMFPPG;
float POIEBBJDKKF;
bool DJDBLKBDMAH;
float KNJMIPJHINJ;
float DFGOMAELPBC;
bool KNHDJFKJJDC;
struct Dictionary_2_UnityEngine_Vector2_System_Double_* _animStateChangePair;
struct Dictionary_2_UnityEngine_Vector2_SCameraModuleInitialize_SCameraModuleInitialize_FilterKeepType_* _animStateChangeType;
struct Dictionary_2_UnityEngine_Vector2_MoleMole_SCameraModuleInitialize_MoleMole_SCameraModuleInitialize_FilterKeepType_* _animStateChangeType;
struct Dictionary_2_UnityEngine_Vector2_System_Double_* _animStateChangeTime;
double _preNormalRadiusTarget;
double _preNormalRadiusStart;
@ -11307,7 +11318,8 @@ namespace app {
float _perfectRangeStart;
float _perfectRangeEnd;
bool _qteStart;
float _qteTime;
float OGOGOAJEFFI;
bool _qteTime;
float _qteBonusRange;
bool _isAuto;
int32_t _foodKind;
@ -11702,19 +11714,19 @@ namespace app {
};
struct MoleMole_VCBaseSetDitherValue__Fields {
void* _;
struct VCBase__Fields _;
bool _usingDitherAlpha;
float _ditherAlphaValue;
float _managerDitherAlphaValue;
float _localDitherAlphaValue;
bool IBKAJMBMGAE;
bool HCPHLKHJEBI;
struct MoleMole_VCBaseModel* _modelComponent;
float _showStartDitherDuration;
bool _needStartDitherAction;
float _detectDitherRangeBetweenCameraAndAvatar;
float _detectDitherRangeNormalBetweenCamera;
float _detectDitherRangeNormalBetweenCameraInTimeLine;
bool GCEGGKLBFPG;
bool LGEKBIFMMLF;
struct List_1_MoleMole_BaseDither_* _dithers;
bool _isDitherChangeStarted;
float _spd;
@ -11861,23 +11873,24 @@ namespace app {
struct MoleMole_Config_ConfigAbilityModifier__Fields fields;
};
struct __declspec(align(8)) HKMHAGBLLMK__Fields {
struct MoleMole_BaseAbilityMixin__Array* JGLDNAPGGGC;
struct List_1_System_ValueTuple_2__1* JFLGBBBFBLF;
struct List_1_System_ValueTuple_2__2* EFOPNOEMFBI;
struct List_1_MoleMole_Config_ConfigAbilityAction__1* PGICFJEDMAE;
struct List_1_System_ValueTuple_3__1* CGBNAMBLDOE;
struct IList_1_MoleMole_BaseAbilityMixin_* LOGOJNMHLIF;
};
struct __declspec(align(8)) MoleMole_BaseActorActionContext__Fields {
struct MoleMole_BaseAbilityMixin__Array* instancedMixins;
struct List_1_UniRx_Tuple_2__1* _attachedPatternIndices;
struct List_1_UniRx_Tuple_2__2* _attachedResistanceBuffDebuffs;
struct List_1_MoleMole_Config_ConfigAbilityAction__1* _attachedAbilityActions;
struct List_1_UniRx_Tuple_3__1* _attachedElementTypeResistance;
struct IList_1_MoleMole_BaseAbilityMixin_* _tickMixins;
};
struct MoleMole_ActorModifier__Fields {
HKMHAGBLLMK__Fields _;
struct MoleMole_BaseActorActionContext__Fields _;
struct MoleMole_ActorAbility* parentAbility;
uint32_t parentAbilityInstanceID;
struct MoleMole_Config_ConfigAbility* _parentAbilityConfig;
uint32_t parentAbilityEntityID;
uint32_t _applyEntityId_k__BackingField;
struct MoleMole_LCAbility* owner;
struct Action* ADBOKMOBNAN;
struct MoleMole_Config_ConfigAbilityModifier* _config;
struct Dictionary_2_MoleMole_EncryptedString_System_Int32_* stackIndices;
int32_t _parentOwnedIx;
@ -11888,17 +11901,17 @@ namespace app {
bool attachedModifierIsServerBuff;
int32_t attachedModifierNameHash;
bool isAttachedParentAbility;
bool PBDIKHPKHLF;
bool GDKHIMOECNI;
struct Action_1_MoleMole_ActorModifier_* onDetached;
uint32_t serverBuffUid;
struct Action_1_Nullable_1_Single_* onDurabilityEmpty;
struct Action_2_Nullable_1_Single_Single_* onDurabilityEmpty;
bool _isValid_k__BackingField;
uint64_t _modifierStartTime_k__BackingField;
bool isModifierInvalidByServer;
bool hasAddedAbilityState;
float thinkInterval;
float reduceElementRatio;
float PHKNIPMALFB;
float JCCKKCLDNLF;
};
struct MoleMole_ActorModifier {
@ -11957,6 +11970,15 @@ namespace app {
Overflow = 0x00000001,
};
struct Avatar__Fields {
struct Object_1__Fields _;
};
struct Avatar {
struct Avatar__Class* klass;
MonitorData* monitor;
struct Avatar__Fields fields;
};
#if !defined(_GHIDRA_) && !defined(_IDA_)
}

View File

@ -1,4 +1,5 @@
using namespace app;
DO_APP_FUNC(0x00B64280, app::Byte__Array*, Unity_RecordUserData, (int32_t nType));
DO_APP_FUNC(0x00AFCB60, Il2CppClass**, GetIl2Classes, ());
DO_APP_FUNC(0x00B7B980, app::Byte__Array*, Unity_RecordUserData, (int32_t nType));
DO_APP_FUNC(0x00B1B220, Il2CppClass**, GetIl2Classes, ());
DO_APP_FUNC(0x00DCE2B0, void, Animator_set_avatar, (Animator* __this, Avatar* value, MethodInfo* method));

View File

@ -17,6 +17,7 @@
#include <cheat/player/NoCD.h>
#include <cheat/player/NoClip.h>
#include <cheat/player/RapidFire.h>
#include <cheat/player/AutoRun.h>
#include <cheat/world/AutoLoot.h>
#include <cheat/world/DialogSkip.h>
@ -40,7 +41,6 @@
#include <cheat/world/AutoFish.h>
#include <cheat/world/AutoCook.h>
#include <cheat/world/MusicEvent.h>
#include <cheat/visuals/NoFog.h>
#include <cheat/visuals/FPSUnlock.h>
@ -82,6 +82,7 @@ namespace cheat
FEAT_INST(NoCD),
FEAT_INST(NoClip),
FEAT_INST(RapidFire),
FEAT_INST(AutoRun),
FEAT_INST(AutoLoot),
FEAT_INST(AutoTreeFarm),
@ -94,7 +95,6 @@ namespace cheat
FEAT_INST(KillAura),
FEAT_INST(MobVacuum),
FEAT_INST(FakeTime),
FEAT_INST(ChestTeleport),
FEAT_INST(OculiTeleport),
@ -106,7 +106,6 @@ namespace cheat
FEAT_INST(AutoFish),
FEAT_INST(AutoCook),
FEAT_INST(MusicEvent),
FEAT_INST(NoFog),
FEAT_INST(FPSUnlock),

View File

@ -417,6 +417,8 @@ namespace cheat::feature
ADD_FILTER_FIELD(collection, RadiantSpincrystal);
ADD_FILTER_FIELD(collection, BookPage);
ADD_FILTER_FIELD(collection, QuestInteract);
ADD_FILTER_FIELD(collection, WoodenCrate);
ADD_FILTER_FIELD(collection, GeoSigil);
ADD_FILTER_FIELD(chest, CommonChest);
ADD_FILTER_FIELD(chest, ExquisiteChest);

View File

@ -26,8 +26,10 @@ namespace cheat::game
public IEntityFilter
{
public:
AdvancedFilter(const std::vector<app::EntityType__Enum_1>& types = {}, const std::vector<std::string>& names = {}) : m_Names(names), m_Types(types) {}
AdvancedFilter(const app::EntityType__Enum_1 type, const std::string name) : AdvancedFilter(std::vector<app::EntityType__Enum_1>{type}, std::vector<std::string>{name}) {}
AdvancedFilter(std::initializer_list<app::EntityType__Enum_1> types = {}, std::initializer_list<std::string> names = {}) : m_Names(names), m_Types(types) {}
AdvancedFilter(std::initializer_list<app::EntityType__Enum_1> types, const std::string& name) : AdvancedFilter(types, { name }) {}
AdvancedFilter(const app::EntityType__Enum_1 type, std::initializer_list<std::string> name) : AdvancedFilter({ type }, name) {}
AdvancedFilter(const app::EntityType__Enum_1 type, const std::string& name) : AdvancedFilter({ type }, { name }) {}
friend AdvancedFilter operator+(AdvancedFilter lFilter, const AdvancedFilter& rFilter);
bool IsValid(Entity* entity) const override {

View File

@ -3,6 +3,13 @@
namespace cheat::game
{
SimpleFilter::SimpleFilter(std::initializer_list<SimpleFilter> names)
: m_Type(names.begin()->m_Type)
{
std::for_each(names.begin(), names.end(), [this](const SimpleFilter& other) {
m_Names.insert(m_Names.begin(), other.m_Names.begin(), other.m_Names.end());
});
}
bool SimpleFilter::IsValid(Entity* entity) const
{
@ -24,15 +31,4 @@ namespace cheat::game
return false;
}
SimpleFilter::SimpleFilter(app::EntityType__Enum_1 type, const std::vector<std::string>& names) : m_Names(names), m_Type(type)
{
}
SimpleFilter operator+(SimpleFilter lFilter, const SimpleFilter& rFilter)
{
lFilter.m_Names.insert(lFilter.m_Names.end(), rFilter.m_Names.begin(), rFilter.m_Names.end());
return lFilter;
}
}
}

View File

@ -10,12 +10,11 @@ namespace cheat::game
public IEntityFilter
{
public:
SimpleFilter(app::EntityType__Enum_1 type, const std::vector<std::string>& names = {});
SimpleFilter(app::EntityType__Enum_1 type, const std::string name) : SimpleFilter(type, std::vector<std::string>{name}) {}
SimpleFilter(app::EntityType__Enum_1 type, std::initializer_list<std::string> names = {}) : m_Type(type), m_Names{ names } {}
SimpleFilter(app::EntityType__Enum_1 type, const std::string& name) : SimpleFilter(type, {name}) {}
SimpleFilter(std::initializer_list<SimpleFilter> lst);
bool IsValid(Entity* entity) const override;
friend SimpleFilter operator+(SimpleFilter lFilter, const SimpleFilter& rFilter);
private:
protected:
app::EntityType__Enum_1 m_Type;
std::vector<std::string> m_Names;
};

View File

@ -4,6 +4,9 @@
namespace cheat::game::filters
{
using namespace game;
using namespace app;
namespace collection
{
SimpleFilter Book = { app::EntityType__Enum_1::GatherObject, "SkillObj_EmptyGadget" };
@ -11,312 +14,311 @@ namespace cheat::game::filters
ChestFilter RadiantSpincrystal = ChestFilter(game::Chest::ItemType::BGM);
ChestFilter BookPage = ChestFilter(game::Chest::ItemType::BookPage);
ChestFilter QuestInteract = ChestFilter(game::Chest::ItemType::QuestInteract);
SimpleFilter WoodenCrate = { app::EntityType__Enum_1::Chest, "Searchpoint_OnWater" };
SimpleFilter GeoSigil = { app::EntityType__Enum_1::Chest, "Prop_Search_Point" };
}
namespace chest
{
ChestFilter CommonChest = ChestFilter(game::Chest::ChestRarity::Common);
ChestFilter ExquisiteChest = ChestFilter(game::Chest::ChestRarity::Exquisite);
ChestFilter PreciousChest = ChestFilter(game::Chest::ChestRarity::Precious);
ChestFilter LuxuriousChest = ChestFilter(game::Chest::ChestRarity::Luxurious);
ChestFilter RemarkableChest = ChestFilter(game::Chest::ChestRarity::Remarkable);
ChestFilter SearchPoint = ChestFilter(game::Chest::ItemType::Investigate);
ChestFilter CommonChest = ChestFilter(Chest::ChestRarity::Common);
ChestFilter ExquisiteChest = ChestFilter(Chest::ChestRarity::Exquisite);
ChestFilter PreciousChest = ChestFilter(Chest::ChestRarity::Precious);
ChestFilter LuxuriousChest = ChestFilter(Chest::ChestRarity::Luxurious);
ChestFilter RemarkableChest = ChestFilter(Chest::ChestRarity::Remarkable);
ChestFilter SearchPoint = ChestFilter(Chest::ItemType::Investigate);
ChestFilter SLocked = ChestFilter(game::Chest::ChestState::Locked);
ChestFilter SInLock = ChestFilter(game::Chest::ChestState::InRock);
ChestFilter SFrozen = ChestFilter(game::Chest::ChestState::Frozen);
ChestFilter SBramble = ChestFilter(game::Chest::ChestState::Bramble);
ChestFilter STrap = ChestFilter(game::Chest::ChestState::Trap);
ChestFilter SLocked = ChestFilter(Chest::ChestState::Locked);
ChestFilter SInLock = ChestFilter(Chest::ChestState::InRock);
ChestFilter SFrozen = ChestFilter(Chest::ChestState::Frozen);
ChestFilter SBramble = ChestFilter(Chest::ChestState::Bramble);
ChestFilter STrap = ChestFilter(Chest::ChestState::Trap);
}
namespace equipment
{
SimpleFilter Artifacts = { app::EntityType__Enum_1::DropItem, "_Relic" };
SimpleFilter Bow = { app::EntityType__Enum_1::DropItem, "_Bow" };
SimpleFilter Claymore = { app::EntityType__Enum_1::DropItem, "_Claymore" };
SimpleFilter Catalyst = { app::EntityType__Enum_1::DropItem, "_Catalyst" };
SimpleFilter Pole = { app::EntityType__Enum_1::DropItem, "_Pole" };
SimpleFilter Sword = { app::EntityType__Enum_1::DropItem, "_Sword" };
SimpleFilter Artifacts = { EntityType__Enum_1::DropItem, "_Relic" };
SimpleFilter Bow = { EntityType__Enum_1::DropItem, "_Bow" };
SimpleFilter Claymore = { EntityType__Enum_1::DropItem, "_Claymore" };
SimpleFilter Catalyst = { EntityType__Enum_1::DropItem, "_Catalyst" };
SimpleFilter Pole = { EntityType__Enum_1::DropItem, "_Pole" };
SimpleFilter Sword = { EntityType__Enum_1::DropItem, "_Sword" };
}
namespace featured
{
SimpleFilter Anemoculus = { app::EntityType__Enum_1::GatherObject, "WindCrystalShell" };
SimpleFilter CrimsonAgate = { app::EntityType__Enum_1::GatherObject, "Prop_Essence" };
SimpleFilter Electroculus = { app::EntityType__Enum_1::GatherObject, "Prop_ElectricCrystal" };
SimpleFilter Electrogranum = { app::EntityType__Enum_1::Gadget, "ThunderSeedCreate" };
SimpleFilter FishingPoint = { app::EntityType__Enum_1::FishPool, "_FishingShoal" };
SimpleFilter Geoculus = { app::EntityType__Enum_1::GatherObject, "RockCrystalShell" };
WhitelistFilter ItemDrops = { std::vector<app::EntityType__Enum_1> {app::EntityType__Enum_1::GatherObject, app::EntityType__Enum_1::DropItem }, std::vector<std::string> {"_Food_BirdMeat", "_Food_Meat", "_DropItem","_Fishmeat" } };
SimpleFilter Lumenspar = { app::EntityType__Enum_1::GatherObject, "CelestiaSplinter" };
SimpleFilter KeySigil = { app::EntityType__Enum_1::GatherObject, "RuneContent" };
SimpleFilter ShrineOfDepth = { app::EntityType__Enum_1::Gadget, "Temple" };
SimpleFilter TimeTrialChallenge = { app::EntityType__Enum_1::Field, "Challengestarter_" };
SimpleFilter Anemoculus = { EntityType__Enum_1::GatherObject, "WindCrystalShell" };
SimpleFilter CrimsonAgate = { EntityType__Enum_1::GatherObject, "Prop_Essence" };
SimpleFilter Electroculus = { EntityType__Enum_1::GatherObject, "Prop_ElectricCrystal" };
SimpleFilter Electrogranum = { EntityType__Enum_1::Gadget, "ThunderSeedCreate" };
SimpleFilter FishingPoint = { EntityType__Enum_1::FishPool, "_FishingShoal" };
SimpleFilter Geoculus = { EntityType__Enum_1::GatherObject, "RockCrystalShell" };
WhitelistFilter ItemDrops = { {EntityType__Enum_1::GatherObject, EntityType__Enum_1::DropItem }, {"_Food_BirdMeat", "_Food_Meat", "_DropItem","_Fishmeat" } };
SimpleFilter Lumenspar = { EntityType__Enum_1::GatherObject, "CelestiaSplinter" };
SimpleFilter KeySigil = { EntityType__Enum_1::GatherObject, "RuneContent" };
SimpleFilter ShrineOfDepth = { EntityType__Enum_1::Gadget, "Temple" };
SimpleFilter TimeTrialChallenge = { EntityType__Enum_1::Field, "Challengestarter_" };
}
namespace guide
{
SimpleFilter CampfireTorch = { app::EntityType__Enum_1::Gadget, "_FireBasin" };
SimpleFilter DayNightSwitchingMechanism = { app::EntityType__Enum_1::Field, "_CircleConsole" };
SimpleFilter EnkanomiyaPhaseGate = { app::EntityType__Enum_1::Gadget, "_Singularity" };
SimpleFilter MysteriousCarvings = { app::EntityType__Enum_1::Gadget, "_ReginStatue" };
SimpleFilter PhaseGate = { app::EntityType__Enum_1::Field, "_TeleportHighway" };
SimpleFilter PlacesofEssenceWorship = { app::EntityType__Enum_1::Field, "_EnergySource" };
SimpleFilter Pot = { app::EntityType__Enum_1::Gadget, "_Cooking_" };
SimpleFilter RuinBrazier = { app::EntityType__Enum_1::Gadget, "_AncientHeatSource" };
SimpleFilter Stormstone = { app::EntityType__Enum_1::Gadget, "_ReginLamp" };
SimpleFilter TriangularMechanism = { app::EntityType__Enum_1::Field, "_TuningFork" };
SimpleFilter CampfireTorch = { EntityType__Enum_1::Gadget, "_FireBasin" };
SimpleFilter DayNightSwitchingMechanism = { EntityType__Enum_1::Field, "_CircleConsole" };
SimpleFilter EnkanomiyaPhaseGate = { EntityType__Enum_1::Gadget, "_Singularity" };
SimpleFilter MysteriousCarvings = { EntityType__Enum_1::Gadget, "_ReginStatue" };
SimpleFilter PhaseGate = { EntityType__Enum_1::Field, "_TeleportHighway" };
SimpleFilter PlacesofEssenceWorship = { EntityType__Enum_1::Field, "_EnergySource" };
SimpleFilter Pot = { EntityType__Enum_1::Gadget, "_Cooking_" };
SimpleFilter RuinBrazier = { EntityType__Enum_1::Gadget, "_AncientHeatSource" };
SimpleFilter Stormstone = { EntityType__Enum_1::Gadget, "_ReginLamp" };
SimpleFilter TriangularMechanism = { EntityType__Enum_1::Field, "_TuningFork" };
}
namespace living
{
SimpleFilter AvatarTeammate = { app::EntityType__Enum_1::Avatar, "authority :False" };
SimpleFilter AvatarOwn = { app::EntityType__Enum_1::Avatar, "authority :True" };
SimpleFilter BirdEgg = { app::EntityType__Enum_1::GatherObject, "BirdEgg" };
SimpleFilter ButterflyWings = { app::EntityType__Enum_1::EnvAnimal, "Butterfly" };
SimpleFilter Crab = { app::EntityType__Enum_1::EnvAnimal, "Crab" };
SimpleFilter CrystalCore = { app::EntityType__Enum_1::EnvAnimal, "Wisp" };
SimpleFilter Fish = { app::EntityType__Enum_1::EnvAnimal, "Fish" };
SimpleFilter Frog = { app::EntityType__Enum_1::EnvAnimal, "Frog" };
SimpleFilter LizardTail = { app::EntityType__Enum_1::EnvAnimal, "Lizard" };
SimpleFilter LuminescentSpine = { app::EntityType__Enum_1::EnvAnimal, "FireFly" };
SimpleFilter Onikabuto = { app::EntityType__Enum_1::GatherObject, "Electrohercules" };
SimpleFilter Starconch = { app::EntityType__Enum_1::GatherObject, "_Shell" };
SimpleFilter Eel = { app::EntityType__Enum_1::EnvAnimal, "Eel_" };
SimpleFilter Inu = { app::EntityType__Enum_1::EnvAnimal, "_Inu_Shihandai" };
SimpleFilter Boar = { app::EntityType__Enum_1::Monster, "Boar" };
SimpleFilter Fox = { app::EntityType__Enum_1::Monster, "Fox" };
SimpleFilter Squirrel = { app::EntityType__Enum_1::Monster, "Squirrel" };
SimpleFilter Npc = { app::EntityType__Enum_1::NPC,
std::vector<std::string> { "_Liyue", "_Mengde", "_Inazuma", "_Coop", "_Quest", "_Enkanomiya", "_Animal", "_Guide", "_Homeworld" } };
SimpleFilter Crane = { app::EntityType__Enum_1::Monster, "Crane" };
SimpleFilter Falcon = { app::EntityType__Enum_1::Monster, "Falcon" };
SimpleFilter LucklightFly = { app::EntityType__Enum_1::EnvAnimal, "Boltbug_" };
SimpleFilter Salamander = { app::EntityType__Enum_1::EnvAnimal, "Salamander" };
SimpleFilter Pigeon = { app::EntityType__Enum_1::Monster, "Pigeon" };
SimpleFilter Crow = { app::EntityType__Enum_1::Monster, "Crow" };
SimpleFilter Finch = { app::EntityType__Enum_1::Monster, "Tit" };
SimpleFilter Wigeon = { app::EntityType__Enum_1::Monster, "Wigeon" };
SimpleFilter Dog = { app::EntityType__Enum_1::Monster, "DogPrick" };
SimpleFilter Cat = { app::EntityType__Enum_1::Monster, "Cat" };
SimpleFilter Weasel = { app::EntityType__Enum_1::Monster, "Marten" };
SimpleFilter WeaselThief = { app::EntityType__Enum_1::Monster, "Thoarder_Weasel" };
SimpleFilter Kitsune = { app::EntityType__Enum_1::EnvAnimal, "Vulpes" };
SimpleFilter BakeDanuki = { app::EntityType__Enum_1::Monster, "Inu_Tanuki" };
SimpleFilter Meat = { app::EntityType__Enum_1::GatherObject , std::vector<std::string> { "_Food_BirdMeat", "_Food_Meat", "_Fishmeat" } };
SimpleFilter AvatarTeammate = { EntityType__Enum_1::Avatar, "authority :False" };
SimpleFilter AvatarOwn = { EntityType__Enum_1::Avatar, "authority :True" };
SimpleFilter BirdEgg = { EntityType__Enum_1::GatherObject, "BirdEgg" };
SimpleFilter ButterflyWings = { EntityType__Enum_1::EnvAnimal, "Butterfly" };
SimpleFilter Crab = { EntityType__Enum_1::EnvAnimal, "Crab" };
SimpleFilter CrystalCore = { EntityType__Enum_1::EnvAnimal, "Wisp" };
SimpleFilter Fish = { EntityType__Enum_1::EnvAnimal, "Fish" };
SimpleFilter Frog = { EntityType__Enum_1::EnvAnimal, "Frog" };
SimpleFilter LizardTail = { EntityType__Enum_1::EnvAnimal, "Lizard" };
SimpleFilter LuminescentSpine = { EntityType__Enum_1::EnvAnimal, "FireFly" };
SimpleFilter Onikabuto = { EntityType__Enum_1::GatherObject, "Electrohercules" };
SimpleFilter Starconch = { EntityType__Enum_1::GatherObject, "_Shell" };
SimpleFilter Eel = { EntityType__Enum_1::EnvAnimal, "Eel_" };
SimpleFilter Inu = { EntityType__Enum_1::EnvAnimal, "_Inu_Shihandai" };
SimpleFilter Boar = { EntityType__Enum_1::Monster, "Boar" };
SimpleFilter Fox = { EntityType__Enum_1::Monster, "Fox" };
SimpleFilter Squirrel = { EntityType__Enum_1::Monster, "Squirrel" };
SimpleFilter Npc = { EntityType__Enum_1::NPC, { "_Liyue", "_Mengde", "_Inazuma", "_Coop", "_Quest", "_Enkanomiya", "_Animal", "_Guide", "_Homeworld" } };
SimpleFilter Crane = { EntityType__Enum_1::Monster, "Crane" };
SimpleFilter Falcon = { EntityType__Enum_1::Monster, "Falcon" };
SimpleFilter LucklightFly = { EntityType__Enum_1::EnvAnimal, "Boltbug_" };
SimpleFilter Salamander = { EntityType__Enum_1::EnvAnimal, "Salamander" };
SimpleFilter Pigeon = { EntityType__Enum_1::Monster, "Pigeon" };
SimpleFilter Crow = { EntityType__Enum_1::Monster, "Crow" };
SimpleFilter Finch = { EntityType__Enum_1::Monster, "Tit" };
SimpleFilter Wigeon = { EntityType__Enum_1::Monster, "Wigeon" };
SimpleFilter Dog = { EntityType__Enum_1::Monster, "DogPrick" };
SimpleFilter Cat = { EntityType__Enum_1::Monster, "Cat" };
SimpleFilter Weasel = { EntityType__Enum_1::Monster, "Marten" };
SimpleFilter WeaselThief = { EntityType__Enum_1::Monster, "Thoarder_Weasel" };
SimpleFilter Kitsune = { EntityType__Enum_1::EnvAnimal, "Vulpes" };
SimpleFilter BakeDanuki = { EntityType__Enum_1::Monster, "Inu_Tanuki" };
SimpleFilter Meat = { EntityType__Enum_1::GatherObject , { "_Food_BirdMeat", "_Food_Meat", "_Fishmeat" }};
}
namespace mineral
{
SimpleFilter AmethystLump = { app::EntityType__Enum_1::GatherObject, "_Thundercrystal" };
SimpleFilter ArchaicStone = { app::EntityType__Enum_1::GatherObject, "_AncientOre" };
SimpleFilter CorLapis = { app::EntityType__Enum_1::GatherObject, "_ElementRock" };
SimpleFilter CrystalChunk = { app::EntityType__Enum_1::GatherObject,
std::vector<std::string> { "_OreCrystal", "_ShiningCrystalOre" } };
SimpleFilter CrystalMarrow = { app::EntityType__Enum_1::GatherObject, "_Crystalizedmarrow" };
SimpleFilter ElectroCrystal = { app::EntityType__Enum_1::GatherObject, "_OreElectricRock" };
SimpleFilter IronChunk = { app::EntityType__Enum_1::GatherObject, "_OreStone" };
SimpleFilter NoctilucousJade = { app::EntityType__Enum_1::GatherObject,
std::vector<std::string> { "_OreNightBerth", "_ShiningNightBerthOre" } };
SimpleFilter MagicalCrystalChunk = { app::EntityType__Enum_1::GatherObject, "_OreMagicCrystal" };
SimpleFilter ScarletQuartz = { app::EntityType__Enum_1::GatherObject, "_OreDulinsBlood" };
SimpleFilter Starsilver = { app::EntityType__Enum_1::GatherObject, "_OreMoonMeteor" };
SimpleFilter WhiteIronChunk = { app::EntityType__Enum_1::GatherObject, "_OreMetal" };
SimpleFilter DunlinsTooth = { app::EntityType__Enum_1::GatherObject, "_DunlinsTooth" };
SimpleFilter AmethystLump = { EntityType__Enum_1::GatherObject, "_Thundercrystal" };
SimpleFilter ArchaicStone = { EntityType__Enum_1::GatherObject, "_AncientOre" };
SimpleFilter CorLapis = { EntityType__Enum_1::GatherObject, "_ElementRock" };
SimpleFilter CrystalChunk = { EntityType__Enum_1::GatherObject, { "_OreCrystal", "_ShiningCrystalOre" } };
SimpleFilter CrystalMarrow = { EntityType__Enum_1::GatherObject, "_Crystalizedmarrow" };
SimpleFilter ElectroCrystal = { EntityType__Enum_1::GatherObject, "_OreElectricRock" };
SimpleFilter IronChunk = { EntityType__Enum_1::GatherObject, "_OreStone" };
SimpleFilter NoctilucousJade = { EntityType__Enum_1::GatherObject, { "_OreNightBerth", "_ShiningNightBerthOre" } };
SimpleFilter MagicalCrystalChunk = { EntityType__Enum_1::GatherObject, "_OreMagicCrystal" };
SimpleFilter ScarletQuartz = { EntityType__Enum_1::GatherObject, "_OreDulinsBlood" };
SimpleFilter Starsilver = { EntityType__Enum_1::GatherObject, "_OreMoonMeteor" };
SimpleFilter WhiteIronChunk = { EntityType__Enum_1::GatherObject, "_OreMetal" };
SimpleFilter DunlinsTooth = { EntityType__Enum_1::GatherObject, "_DunlinsTooth" };
SimpleFilter AmethystLumpDrop = { app::EntityType__Enum_1::GatherObject, "_Thundercrystaldrop" };
SimpleFilter CrystalChunkDrop = { app::EntityType__Enum_1::GatherObject,"_Drop_Crystal" };
SimpleFilter ElectroCrystalDrop = { app::EntityType__Enum_1::GatherObject, "_Drop_Ore_ElectricRock" };
SimpleFilter IronChunkDrop = { app::EntityType__Enum_1::GatherObject, "_Drop_Stone" };
SimpleFilter NoctilucousJadeDrop = { app::EntityType__Enum_1::GatherObject,"_NightBerth" };
SimpleFilter MagicalCrystalChunkDrop = { app::EntityType__Enum_1::GatherObject, "_DropMagicCrystal" };
SimpleFilter ScarletQuartzDrop = { app::EntityType__Enum_1::GatherObject, "_DropDulinsBlood" };
SimpleFilter StarsilverDrop = { app::EntityType__Enum_1::GatherObject, "_DropMoonMeteor" };
SimpleFilter WhiteIronChunkDrop = { app::EntityType__Enum_1::GatherObject, "_Drop_Metal" };
SimpleFilter AmethystLumpDrop = { EntityType__Enum_1::GatherObject, "_Thundercrystaldrop" };
SimpleFilter CrystalChunkDrop = { EntityType__Enum_1::GatherObject,"_Drop_Crystal"};
SimpleFilter ElectroCrystalDrop = { EntityType__Enum_1::GatherObject, "_Drop_Ore_ElectricRock" };
SimpleFilter IronChunkDrop = { EntityType__Enum_1::GatherObject, "_Drop_Stone" };
SimpleFilter NoctilucousJadeDrop = { EntityType__Enum_1::GatherObject,"_NightBerth" };
SimpleFilter MagicalCrystalChunkDrop = { EntityType__Enum_1::GatherObject, "_DropMagicCrystal" };
SimpleFilter ScarletQuartzDrop = { EntityType__Enum_1::GatherObject, "_DropDulinsBlood" };
SimpleFilter StarsilverDrop = { EntityType__Enum_1::GatherObject, "_DropMoonMeteor" };
SimpleFilter WhiteIronChunkDrop = { EntityType__Enum_1::GatherObject, "_Drop_Metal" };
}
namespace monster
{
SimpleFilter AbyssMage = { app::EntityType__Enum_1::Monster, "_Abyss" };
SimpleFilter FatuiAgent = { app::EntityType__Enum_1::Monster, "_Fatuus" };
SimpleFilter FatuiCicinMage = { app::EntityType__Enum_1::Monster, "_Fatuus_Summoner" };
SimpleFilter FatuiMirrorMaiden = { app::EntityType__Enum_1::Monster, "_Fatuus_Maiden" };
SimpleFilter FatuiSkirmisher = { app::EntityType__Enum_1::Monster, "_Skirmisher" };
SimpleFilter Geovishap = { app::EntityType__Enum_1::Monster, "_Drake_Rock" };
SimpleFilter GeovishapHatchling = { app::EntityType__Enum_1::Monster, "_Wyrm_Rock" };
SimpleFilter Hilichurl = { app::EntityType__Enum_1::Monster, "_Hili" };
SimpleFilter Mitachurl = { app::EntityType__Enum_1::Monster, "_Brute" };
SimpleFilter Nobushi = { app::EntityType__Enum_1::Monster, "_Ronin" };
SimpleFilter Kairagi = { app::EntityType__Enum_1::Monster, "_Kairagi" };
SimpleFilter RuinGuard = { app::EntityType__Enum_1::Monster, "_Defender" };
SimpleFilter RuinHunter = { app::EntityType__Enum_1::Monster, "_Formathr" };
SimpleFilter RuinGrader = { app::EntityType__Enum_1::Monster, "_Konungmathr" };
SimpleFilter RuinSentinel = { app::EntityType__Enum_1::Monster, "_Apparatus_Enigma" };
SimpleFilter Samachurl = { app::EntityType__Enum_1::Monster, "_Shaman" };
SimpleFilter ShadowyHusk = { app::EntityType__Enum_1::Monster, "ForlornVessel_Strong" };
SimpleFilter Slime = { app::EntityType__Enum_1::Monster, "_Slime" };
SimpleFilter FloatingFungus = { app::EntityType__Enum_1::Monster, "_Fungus" };
SimpleFilter Specter = { app::EntityType__Enum_1::Monster, "_Sylph" };
SimpleFilter TreasureHoarder = { app::EntityType__Enum_1::Monster, "_Thoarder" };
SimpleFilter UnusualHilichurl = { app::EntityType__Enum_1::Monster, "_Hili_Wei" };
SimpleFilter Whopperflower = { app::EntityType__Enum_1::Monster, "_Mimik" };
SimpleFilter RifthoundWhelp = { app::EntityType__Enum_1::Monster, "_Hound_Kanis" };
SimpleFilter Rifthound = { app::EntityType__Enum_1::Monster, "_Hound_Riftstalker" };
SimpleFilter Dvalin = { app::EntityType__Enum_1::Monster, "_Dragon_Dvalin" };
SimpleFilter Andrius = { app::EntityType__Enum_1::Monster, "_Wolf_LupiBoreas" };
SimpleFilter Tartaglia = { app::EntityType__Enum_1::Monster, "_Tartaglia" };
SimpleFilter Azhdaha = { app::EntityType__Enum_1::Monster, "_Dahaka" };
SimpleFilter Signora = { app::EntityType__Enum_1::Monster, "_LaSignora" };
SimpleFilter Shogun = { app::EntityType__Enum_1::Monster, "_Shougun" };
SimpleFilter EyeOfTheStorm = { app::EntityType__Enum_1::Monster, "_Elemental_Wind" };
SimpleFilter ElectroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Electric" };
SimpleFilter AnemoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Wind" };
SimpleFilter GeoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Rock" };
SimpleFilter HydroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Water" };
SimpleFilter CryoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Ice" };
SimpleFilter PyroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Fire" };
SimpleFilter HydroHypostasisSummon = { app::EntityType__Enum_1::Monster, "_Effigy_Water_Underling_Ooze" };
SimpleFilter Oceanid = { app::EntityType__Enum_1::Monster, "_Oceanid" };
SimpleFilter OceanidBoar = { app::EntityType__Enum_1::Monster, "_Oceanid_Boar" };
SimpleFilter OceanidCrane = { app::EntityType__Enum_1::Monster, "_Oceanid_Crane" };
SimpleFilter OceanidCrab = { app::EntityType__Enum_1::Monster, "_Oceanid_Crab" };
SimpleFilter OceanidFinch = { app::EntityType__Enum_1::Monster, "_Oceanid_Tit" };
SimpleFilter OceanidWigeon = { app::EntityType__Enum_1::Monster, "_Oceanid_Wigeon" };
SimpleFilter OceanidSquirrel = { app::EntityType__Enum_1::Monster, "_Oceanid_Squirrel" };
SimpleFilter OceanidFrog = { app::EntityType__Enum_1::Monster, "_Oceanid_Frog" };
SimpleFilter OceanidFalcon = { app::EntityType__Enum_1::Monster, "_Oceanid_Falcon" };
SimpleFilter PerpetualMechanicalArray = { app::EntityType__Enum_1::Monster, "_Apparatus_Perpetual" };
SimpleFilter PrimoGeovishap = { app::EntityType__Enum_1::Monster, "_Drake_Primo_Rock" };
SimpleFilter HydroBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Water" };
SimpleFilter CryoBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Ice" };
SimpleFilter ElectroBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Electric" };
SimpleFilter ThunderManifestation = { app::EntityType__Enum_1::Monster, "_Raijin" };
SimpleFilter HydroAbyssHerald = { app::EntityType__Enum_1::Monster, "_Invoker_Herald_Water" };
SimpleFilter ElectroAbyssLector = { app::EntityType__Enum_1::Monster, "_Invoker_Deacon_Electric" };
SimpleFilter PyroAbyssLector = { app::EntityType__Enum_1::Monster, "_Invoker_Deacon_Fire" };
SimpleFilter BlackSerpentKnight = { app::EntityType__Enum_1::Monster, "_Darkwraith_Strong_Wind" };
SimpleFilter GoldenWolflord = { app::EntityType__Enum_1::Monster, "_Hound_Planelurker" };
SimpleFilter RuinSerpent = { app::EntityType__Enum_1::Monster, "_Nithhoggr" };
SimpleFilter Millelith = { app::EntityType__Enum_1::Monster, "_Millelith_" };
SimpleFilter ShogunateInfantry = { app::EntityType__Enum_1::Monster, "_Aahigaru_" };
SimpleFilter SangonomiyaCohort = { app::EntityType__Enum_1::Monster, "_AahigaruTaisho_" };
SimpleFilter CryoRegisvine = { app::EntityType__Enum_1::Monster, "_Regisvine_Ice" };
SimpleFilter PyroRegisvine = { app::EntityType__Enum_1::Monster, "_Regisvine_Fire" };
SimpleFilter MaguuKenki = { app::EntityType__Enum_1::Monster, "_Ningyo" };
SimpleFilter Cicin = { app::EntityType__Enum_1::Monster, "_Cicin" };
SimpleFilter Beisht = { app::EntityType__Enum_1::Monster, "_Eldritch" };
SimpleFilter AbyssMage = { EntityType__Enum_1::Monster, "_Abyss" };
SimpleFilter FatuiAgent = { EntityType__Enum_1::Monster, "_Fatuus" };
SimpleFilter FatuiCicinMage = { EntityType__Enum_1::Monster, "_Fatuus_Summoner" };
SimpleFilter FatuiMirrorMaiden = { EntityType__Enum_1::Monster, "_Fatuus_Maiden" };
SimpleFilter FatuiSkirmisher = { EntityType__Enum_1::Monster, "_Skirmisher" };
SimpleFilter Geovishap = { EntityType__Enum_1::Monster, "_Drake_Rock" };
SimpleFilter GeovishapHatchling = { EntityType__Enum_1::Monster, "_Wyrm_Rock" };
SimpleFilter Hilichurl = { EntityType__Enum_1::Monster, "_Hili" };
SimpleFilter Mitachurl = { EntityType__Enum_1::Monster, "_Brute" };
SimpleFilter Nobushi = { EntityType__Enum_1::Monster, "_Ronin" };
SimpleFilter Kairagi = { EntityType__Enum_1::Monster, "_Kairagi" };
SimpleFilter RuinGuard = { EntityType__Enum_1::Monster, "_Defender" };
SimpleFilter RuinHunter = { EntityType__Enum_1::Monster, "_Formathr" };
SimpleFilter RuinGrader = { EntityType__Enum_1::Monster, "_Konungmathr" };
SimpleFilter RuinSentinel = { EntityType__Enum_1::Monster, "_Apparatus_Enigma" };
SimpleFilter Samachurl = { EntityType__Enum_1::Monster, "_Shaman" };
SimpleFilter ShadowyHusk = { EntityType__Enum_1::Monster, "ForlornVessel_Strong" };
SimpleFilter Slime = { EntityType__Enum_1::Monster, "_Slime" };
SimpleFilter FloatingFungus = { EntityType__Enum_1::Monster, "_Fungus" };
SimpleFilter Specter = { EntityType__Enum_1::Monster, "_Sylph" };
SimpleFilter TreasureHoarder = { EntityType__Enum_1::Monster, "_Thoarder" };
SimpleFilter UnusualHilichurl = { EntityType__Enum_1::Monster, "_Hili_Wei" };
SimpleFilter Whopperflower = { EntityType__Enum_1::Monster, "_Mimik" };
SimpleFilter RifthoundWhelp = { EntityType__Enum_1::Monster, "_Hound_Kanis" };
SimpleFilter Rifthound = { EntityType__Enum_1::Monster, "_Hound_Riftstalker" };
SimpleFilter Dvalin = { EntityType__Enum_1::Monster, "_Dragon_Dvalin" };
SimpleFilter Andrius = { EntityType__Enum_1::Monster, "_Wolf_LupiBoreas" };
SimpleFilter Tartaglia = { EntityType__Enum_1::Monster, "_Tartaglia" };
SimpleFilter Azhdaha = { EntityType__Enum_1::Monster, "_Dahaka" };
SimpleFilter Signora = { EntityType__Enum_1::Monster, "_LaSignora" };
SimpleFilter Shogun = { EntityType__Enum_1::Monster, "_Shougun" };
SimpleFilter EyeOfTheStorm = { EntityType__Enum_1::Monster, "_Elemental_Wind" };
SimpleFilter ElectroHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Electric" };
SimpleFilter AnemoHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Wind" };
SimpleFilter GeoHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Rock" };
SimpleFilter HydroHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Water" };
SimpleFilter CryoHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Ice" };
SimpleFilter PyroHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Fire" };
SimpleFilter HydroHypostasisSummon = { EntityType__Enum_1::Monster, "_Effigy_Water_Underling_Ooze" };
SimpleFilter Oceanid = { EntityType__Enum_1::Monster, "_Oceanid" };
SimpleFilter OceanidBoar = { EntityType__Enum_1::Monster, "_Oceanid_Boar" };
SimpleFilter OceanidCrane = { EntityType__Enum_1::Monster, "_Oceanid_Crane" };
SimpleFilter OceanidCrab = { EntityType__Enum_1::Monster, "_Oceanid_Crab" };
SimpleFilter OceanidFinch = { EntityType__Enum_1::Monster, "_Oceanid_Tit" };
SimpleFilter OceanidWigeon = { EntityType__Enum_1::Monster, "_Oceanid_Wigeon" };
SimpleFilter OceanidSquirrel = { EntityType__Enum_1::Monster, "_Oceanid_Squirrel" };
SimpleFilter OceanidFrog = { EntityType__Enum_1::Monster, "_Oceanid_Frog" };
SimpleFilter OceanidFalcon = { EntityType__Enum_1::Monster, "_Oceanid_Falcon" };
SimpleFilter PerpetualMechanicalArray = { EntityType__Enum_1::Monster, "_Apparatus_Perpetual" };
SimpleFilter PrimoGeovishap = { EntityType__Enum_1::Monster, "_Drake_Primo_Rock" };
SimpleFilter HydroBathysmalVishap = { EntityType__Enum_1::Monster, "_Drake_Deepsea_Water" };
SimpleFilter CryoBathysmalVishap = { EntityType__Enum_1::Monster, "_Drake_Deepsea_Ice" };
SimpleFilter ElectroBathysmalVishap = { EntityType__Enum_1::Monster, "_Drake_Deepsea_Electric" };
SimpleFilter ThunderManifestation = { EntityType__Enum_1::Monster, "_Raijin" };
SimpleFilter HydroAbyssHerald = { EntityType__Enum_1::Monster, "_Invoker_Herald_Water" };
SimpleFilter ElectroAbyssLector = { EntityType__Enum_1::Monster, "_Invoker_Deacon_Electric" };
SimpleFilter PyroAbyssLector = { EntityType__Enum_1::Monster, "_Invoker_Deacon_Fire" };
SimpleFilter BlackSerpentKnight = { EntityType__Enum_1::Monster, "_Darkwraith_Strong_Wind" };
SimpleFilter GoldenWolflord = { EntityType__Enum_1::Monster, "_Hound_Planelurker" };
SimpleFilter RuinSerpent = { EntityType__Enum_1::Monster, "_Nithhoggr" };
SimpleFilter Millelith = { EntityType__Enum_1::Monster, "_Millelith_" };
SimpleFilter ShogunateInfantry = { EntityType__Enum_1::Monster, "_Aahigaru_" };
SimpleFilter SangonomiyaCohort = { EntityType__Enum_1::Monster, "_AahigaruTaisho_" };
SimpleFilter CryoRegisvine = { EntityType__Enum_1::Monster, "_Regisvine_Ice" };
SimpleFilter PyroRegisvine = { EntityType__Enum_1::Monster, "_Regisvine_Fire" };
SimpleFilter MaguuKenki = { EntityType__Enum_1::Monster, "_Ningyo" };
SimpleFilter Cicin = { EntityType__Enum_1::Monster, "_Cicin" };
SimpleFilter Beisht = { EntityType__Enum_1::Monster, "_Eldritch" };
}
namespace plant
{
SimpleFilter AmakumoFruit = { app::EntityType__Enum_1::GatherObject, "_Electroseed" };
SimpleFilter Apple = { app::EntityType__Enum_1::GatherObject, "_Drop_Plant_Apple" };
SimpleFilter BambooShoot = { app::EntityType__Enum_1::GatherObject, "_Bambooshoot" };
SimpleFilter Berry = { app::EntityType__Enum_1::GatherObject, "_Raspberry" };
SimpleFilter CallaLily = { app::EntityType__Enum_1::GatherObject, "_Plant_Callas" };
SimpleFilter Cabbage = { app::EntityType__Enum_1::GatherObject, "_Plant_Cabbage" };
SimpleFilter Carrot = { app::EntityType__Enum_1::GatherObject, "_Plant_Carrot" };
SimpleFilter Cecilia = { app::EntityType__Enum_1::GatherObject, "_Cecilia" };
SimpleFilter DandelionSeed = { app::EntityType__Enum_1::GatherObject, "_Plant_Dandelion" };
SimpleFilter Dendrobium = { app::EntityType__Enum_1::GatherObject, "_Blooddendrobe" };
SimpleFilter FlamingFlowerStamen = { app::EntityType__Enum_1::GatherObject, "_Flower_FireFlower" };
SimpleFilter FluorescentFungus = { app::EntityType__Enum_1::GatherObject, "_Lampmushroom" };
SimpleFilter GlazeLily = { app::EntityType__Enum_1::GatherObject, "_GlazedLily" };
SimpleFilter Horsetail = { app::EntityType__Enum_1::GatherObject, "_HorseTail" };
SimpleFilter JueyunChili = { app::EntityType__Enum_1::GatherObject, "_UltimateChilli_Fruit" };
SimpleFilter LavenderMelon = { app::EntityType__Enum_1::GatherObject, "_Akebia" };
SimpleFilter LotusHead = { app::EntityType__Enum_1::GatherObject, "_Lotus_Drop" };
SimpleFilter Matsutake = { app::EntityType__Enum_1::GatherObject, "_Food_Matsutake" };
SimpleFilter Mint = { app::EntityType__Enum_1::GatherObject, "_Plant_Mint" };
SimpleFilter MistFlowerCorolla = { app::EntityType__Enum_1::GatherObject, "_Flower_IceFlower" };
SimpleFilter Mushroom = { app::EntityType__Enum_1::GatherObject, "_Plant_Mushroom" };
SimpleFilter NakuWeed = { app::EntityType__Enum_1::GatherObject, "_Howlgrass" };
SimpleFilter PhilanemoMushroom = { app::EntityType__Enum_1::GatherObject, "_WindmilHunter" };
SimpleFilter Pinecone = { app::EntityType__Enum_1::GatherObject, "_Drop_Plant_Pine" };
SimpleFilter Potato = { app::EntityType__Enum_1::GatherObject, "_Plant_Potato" };
SimpleFilter Qingxin = { app::EntityType__Enum_1::GatherObject, "_QingXin" };
SimpleFilter Radish = { app::EntityType__Enum_1::GatherObject, "_Plant_Radish" };
SimpleFilter SakuraBloom = { app::EntityType__Enum_1::GatherObject, "_Cherrypetals" };
SimpleFilter SangoPearl = { app::EntityType__Enum_1::GatherObject, "_Coralpearl" };
SimpleFilter SeaGanoderma = { app::EntityType__Enum_1::GatherObject, "_Electroanemones" };
SimpleFilter Seagrass = { app::EntityType__Enum_1::GatherObject, "_Seagrass" };
SimpleFilter SilkFlower = { app::EntityType__Enum_1::GatherObject, "_NiChang_Drop" };
SimpleFilter SmallLampGrass = { app::EntityType__Enum_1::Field, "_Plant_Fuchsia" };
SimpleFilter Snapdragon = { app::EntityType__Enum_1::GatherObject, "_Plant_Snapdragon" };
SimpleFilter Sunsettia = { app::EntityType__Enum_1::GatherObject, "_SunsetFruit" };
SimpleFilter SweetFlower = { app::EntityType__Enum_1::GatherObject, "_Plant_Whiteballet" };
SimpleFilter Valberry = { app::EntityType__Enum_1::GatherObject, "_DropingBerry_Gather" };
SimpleFilter Violetgrass = { app::EntityType__Enum_1::GatherObject, "_GlazedGrass" };
SimpleFilter Wheat = { app::EntityType__Enum_1::GatherObject, "_Plant_Wheat" };
SimpleFilter WindwheelAster = { app::EntityType__Enum_1::GatherObject, "_WindmilDaisy" };
SimpleFilter Wolfhook = { app::EntityType__Enum_1::GatherObject, "_GogoFruit" };
SimpleFilter RadishDrop = { app::EntityType__Enum_1::GatherObject, "_Plant_Carrot02_Clear" };
SimpleFilter CarrotDrop = { app::EntityType__Enum_1::GatherObject, "_Plant_Radish02_Clear" };
SimpleFilter AmakumoFruit = { EntityType__Enum_1::GatherObject, "_Electroseed" };
SimpleFilter Apple = { EntityType__Enum_1::GatherObject, "_Drop_Plant_Apple" };
SimpleFilter BambooShoot = { EntityType__Enum_1::GatherObject, "_Bambooshoot" };
SimpleFilter Berry = { EntityType__Enum_1::GatherObject, "_Raspberry" };
SimpleFilter CallaLily = { EntityType__Enum_1::GatherObject, "_Plant_Callas" };
SimpleFilter Cabbage = { EntityType__Enum_1::GatherObject, "_Plant_Cabbage" };
SimpleFilter Carrot = { EntityType__Enum_1::GatherObject, "_Plant_Carrot" };
SimpleFilter Cecilia = { EntityType__Enum_1::GatherObject, "_Cecilia" };
SimpleFilter DandelionSeed = { EntityType__Enum_1::GatherObject, "_Plant_Dandelion" };
SimpleFilter Dendrobium = { EntityType__Enum_1::GatherObject, "_Blooddendrobe" };
SimpleFilter FlamingFlowerStamen = { EntityType__Enum_1::GatherObject, "_Flower_FireFlower" };
SimpleFilter FluorescentFungus = { EntityType__Enum_1::GatherObject, "_Lampmushroom" };
SimpleFilter GlazeLily = { EntityType__Enum_1::GatherObject, "_GlazedLily" };
SimpleFilter Horsetail = { EntityType__Enum_1::GatherObject, "_HorseTail" };
SimpleFilter JueyunChili = { EntityType__Enum_1::GatherObject, "_UltimateChilli_Fruit" };
SimpleFilter LavenderMelon = { EntityType__Enum_1::GatherObject, "_Akebia" };
SimpleFilter LotusHead = { EntityType__Enum_1::GatherObject, "_Lotus_Drop" };
SimpleFilter Matsutake = { EntityType__Enum_1::GatherObject, "_Food_Matsutake" };
SimpleFilter Mint = { EntityType__Enum_1::GatherObject, "_Plant_Mint" };
SimpleFilter MistFlowerCorolla = { EntityType__Enum_1::GatherObject, "_Flower_IceFlower" };
SimpleFilter Mushroom = { EntityType__Enum_1::GatherObject, "_Plant_Mushroom" };
SimpleFilter NakuWeed = { EntityType__Enum_1::GatherObject, "_Howlgrass" };
SimpleFilter PhilanemoMushroom = { EntityType__Enum_1::GatherObject, "_WindmilHunter" };
SimpleFilter Pinecone = { EntityType__Enum_1::GatherObject, "_Drop_Plant_Pine" };
SimpleFilter Potato = { EntityType__Enum_1::GatherObject, "_Plant_Potato" };
SimpleFilter Qingxin = { EntityType__Enum_1::GatherObject, "_QingXin" };
SimpleFilter Radish = { EntityType__Enum_1::GatherObject, "_Plant_Radish" };
SimpleFilter SakuraBloom = { EntityType__Enum_1::GatherObject, "_Cherrypetals" };
SimpleFilter SangoPearl = { EntityType__Enum_1::GatherObject, "_Coralpearl" };
SimpleFilter SeaGanoderma = { EntityType__Enum_1::GatherObject, "_Electroanemones" };
SimpleFilter Seagrass = { EntityType__Enum_1::GatherObject, "_Seagrass" };
SimpleFilter SilkFlower = { EntityType__Enum_1::GatherObject, "_NiChang_Drop" };
SimpleFilter SmallLampGrass = { EntityType__Enum_1::Field, "_Plant_Fuchsia" };
SimpleFilter Snapdragon = { EntityType__Enum_1::GatherObject, "_Plant_Snapdragon" };
SimpleFilter Sunsettia = { EntityType__Enum_1::GatherObject, "_SunsetFruit" };
SimpleFilter SweetFlower = { EntityType__Enum_1::GatherObject, "_Plant_Whiteballet" };
SimpleFilter Valberry = { EntityType__Enum_1::GatherObject, "_DropingBerry_Gather" };
SimpleFilter Violetgrass = { EntityType__Enum_1::GatherObject, "_GlazedGrass" };
SimpleFilter Wheat = { EntityType__Enum_1::GatherObject, "_Plant_Wheat" };
SimpleFilter WindwheelAster = { EntityType__Enum_1::GatherObject, "_WindmilDaisy" };
SimpleFilter Wolfhook = { EntityType__Enum_1::GatherObject, "_GogoFruit" };
SimpleFilter RadishDrop = { EntityType__Enum_1::GatherObject, "_Plant_Carrot02_Clear" };
SimpleFilter CarrotDrop = { EntityType__Enum_1::GatherObject, "_Plant_Radish02_Clear" };
}
namespace puzzle
{
SimpleFilter AncientRime = { app::EntityType__Enum_1::Gadget, "_IceSolidBulk" };
SimpleFilter BakeDanuki = { app::EntityType__Enum_1::Monster, "Animal_Inu_Tanuki_" };
SimpleFilter BloattyFloatty = { app::EntityType__Enum_1::Field, "_Flower_PongPongTree_" };
WhitelistFilter CubeDevices = { std::vector<app::EntityType__Enum_1> {app::EntityType__Enum_1::Gadget, app::EntityType__Enum_1::Platform }, std::vector<std::string> {"_ElecStone", "_ElecSwitch" } };
SimpleFilter EightStoneTablets = { app::EntityType__Enum_1::Gadget, "_HistoryBoard" };
SimpleFilter ElectricConduction = { app::EntityType__Enum_1::Gear, "_ElectricPowerSource" };
SimpleFilter RelayStone = { app::EntityType__Enum_1::Worktop, "_ElectricTransfer_" };
WhitelistFilter ElectroSeelie = { std::vector<app::EntityType__Enum_1> {app::EntityType__Enum_1::Field, app::EntityType__Enum_1::Platform }, std::vector<std::string> {"_ElectricSeelie"} };
SimpleFilter ElementalMonument = { app::EntityType__Enum_1::Gear, "_ElemTablet" };
SimpleFilter FloatingAnemoSlime = { app::EntityType__Enum_1::Platform, "_WindSlime" };
SimpleFilter Geogranum = { app::EntityType__Enum_1::Gadget, "_Property_Prop_RockFragment" };
SimpleFilter GeoPuzzle = { app::EntityType__Enum_1::Field, "_Rockstraight_" };
SimpleFilter LargeRockPile = { app::EntityType__Enum_1::Gadget, std::vector<std::string> {"_ElecRocks", "_StonePile_02" } };
SimpleFilter LightUpTilePuzzle = { app::EntityType__Enum_1::Field, "_TwinStoryFloor" };
SimpleFilter LightningStrikeProbe = { app::EntityType__Enum_1::Gadget, "_MagneticGear" };
SimpleFilter LumenCage = { app::EntityType__Enum_1::Gadget, "_LitBulletLauncher" };
SimpleFilter LuminousSeelie = { app::EntityType__Enum_1::Platform, "_LitSeelie" };
SimpleFilter MistBubble = { app::EntityType__Enum_1::Platform, "_Suspiciousbubbles" };
SimpleFilter OozingConcretions = { app::EntityType__Enum_1::Gadget, "_AbyssCoreLv" };
SimpleFilter PirateHelm = { app::EntityType__Enum_1::Field, "_PirateHelm" };
WhitelistFilter PressurePlate = { std::vector<app::EntityType__Enum_1> {app::EntityType__Enum_1::Field, app::EntityType__Enum_1::Gadget }, std::vector<std::string> {"Gear_Gravity", "_LitPathPlate" } };
SimpleFilter SealLocations = { app::EntityType__Enum_1::Gadget, "_RunesKey" };
SimpleFilter SeelieLamp = { app::EntityType__Enum_1::Field, "Gear_SeeliaLamp" };
SimpleFilter Seelie = { app::EntityType__Enum_1::Platform, "Gear_Seelie" };
SimpleFilter SmallRockPile = { app::EntityType__Enum_1::Gadget, "_StonePile_01" };
SimpleFilter StormBarrier = { app::EntityType__Enum_1::Field, "_WindField_PushField" };
SimpleFilter SwordHilt = { app::EntityType__Enum_1::Field, "_WastedSword_" };
SimpleFilter Temari = { app::EntityType__Enum_1::Field, "_Temari" };
SimpleFilter TorchPuzzle = { app::EntityType__Enum_1::Gadget, "_ImmortalFire" };
SimpleFilter UniqueRocks = { app::EntityType__Enum_1::Gadget, "_Chalcedony" };
SimpleFilter WarmingSeelie = { app::EntityType__Enum_1::Platform, "_FireSeelie" };
SimpleFilter WindmillMechanism = { app::EntityType__Enum_1::Gear, "Gear_Windmill" };
SimpleFilter AncientRime = { EntityType__Enum_1::Gadget, "_IceSolidBulk" };
SimpleFilter BakeDanuki = { EntityType__Enum_1::Monster, "Animal_Inu_Tanuki_" };
SimpleFilter BloattyFloatty = { EntityType__Enum_1::Field, "_Flower_PongPongTree_" };
WhitelistFilter CubeDevices = { {EntityType__Enum_1::Gadget, EntityType__Enum_1::Platform }, {"_ElecStone", "_ElecSwitch" }};
SimpleFilter EightStoneTablets = { EntityType__Enum_1::Gadget, "_HistoryBoard" };
SimpleFilter ElectricConduction = { EntityType__Enum_1::Gear, "_ElectricPowerSource" };
SimpleFilter RelayStone = { EntityType__Enum_1::Worktop, "_ElectricTransfer_" };
WhitelistFilter ElectroSeelie = { {EntityType__Enum_1::Field, EntityType__Enum_1::Platform }, "_ElectricSeelie" };
SimpleFilter ElementalMonument = { EntityType__Enum_1::Gear, "_ElemTablet" };
SimpleFilter FloatingAnemoSlime = { EntityType__Enum_1::Platform, "_WindSlime" };
SimpleFilter Geogranum = { EntityType__Enum_1::Gadget, "_Property_Prop_RockFragment" };
SimpleFilter GeoPuzzle = { EntityType__Enum_1::Field, "_Rockstraight_" };
SimpleFilter LargeRockPile = { EntityType__Enum_1::Gadget, {"_ElecRocks", "_StonePile_02" } };
SimpleFilter LightUpTilePuzzle = { EntityType__Enum_1::Field, "_TwinStoryFloor" };
SimpleFilter LightningStrikeProbe = { EntityType__Enum_1::Gadget, "_MagneticGear" };
SimpleFilter LumenCage = { EntityType__Enum_1::Gadget, "_LitBulletLauncher" };
SimpleFilter LuminousSeelie = { EntityType__Enum_1::Platform, "_LitSeelie" };
SimpleFilter MistBubble = { EntityType__Enum_1::Platform, "_Suspiciousbubbles" };
SimpleFilter OozingConcretions = { EntityType__Enum_1::Gadget, "_AbyssCoreLv" };
SimpleFilter PirateHelm = { EntityType__Enum_1::Field, "_PirateHelm" };
WhitelistFilter PressurePlate = { {EntityType__Enum_1::Field, EntityType__Enum_1::Gadget }, {"Gear_Gravity", "_LitPathPlate" } };
SimpleFilter SealLocations = { EntityType__Enum_1::Gadget, "_RunesKey" };
SimpleFilter SeelieLamp = { EntityType__Enum_1::Field, "Gear_SeeliaLamp" };
SimpleFilter Seelie = { EntityType__Enum_1::Platform, "Gear_Seelie" };
SimpleFilter SmallRockPile = { EntityType__Enum_1::Gadget, "_StonePile_01" };
SimpleFilter StormBarrier = { EntityType__Enum_1::Field, "_WindField_PushField" };
SimpleFilter SwordHilt = { EntityType__Enum_1::Field, "_WastedSword_" };
SimpleFilter Temari = { EntityType__Enum_1::Field, "_Temari" };
SimpleFilter TorchPuzzle = { EntityType__Enum_1::Gadget, "_ImmortalFire" };
SimpleFilter UniqueRocks = { EntityType__Enum_1::Gadget, "_Chalcedony" };
SimpleFilter WarmingSeelie = { EntityType__Enum_1::Platform, "_FireSeelie" };
SimpleFilter WindmillMechanism = { EntityType__Enum_1::Gear, "Gear_Windmill" };
}
namespace combined
{
SimpleFilter Oculies = {
featured::Anemoculus +
featured::CrimsonAgate +
featured::Electroculus +
featured::Geoculus +
featured::Lumenspar +
featured::Anemoculus,
featured::CrimsonAgate,
featured::Electroculus,
featured::Geoculus,
featured::Lumenspar,
featured::KeySigil
};
SimpleFilter Chests = { app::EntityType__Enum_1::Chest };
SimpleFilter Chests = { EntityType__Enum_1::Chest };
SimpleFilter Ores = {
mineral::AmethystLump +
mineral::ArchaicStone +
mineral::CorLapis +
mineral::CrystalChunk +
mineral::CrystalMarrow +
mineral::ElectroCrystal +
mineral::IronChunk +
mineral::NoctilucousJade +
mineral::MagicalCrystalChunk +
mineral::Starsilver +
mineral::AmethystLump,
mineral::ArchaicStone,
mineral::CorLapis,
mineral::CrystalChunk,
mineral::CrystalMarrow,
mineral::ElectroCrystal,
mineral::IronChunk,
mineral::NoctilucousJade,
mineral::MagicalCrystalChunk,
mineral::Starsilver,
mineral::WhiteIronChunk
};
WhitelistFilter Doodads = {
std::vector<app::EntityType__Enum_1> { app::EntityType__Enum_1::Gadget },
std::vector<std::string> {
EntityType__Enum_1::Gadget,
{
"Monster_Effigy_Electric_01",
"Monster_Effigy_Electric_02",
"Monster_Effigy_Wind_01",
@ -340,151 +342,149 @@ namespace cheat::game::filters
"StonePile",
"BrokenWall",
"WoodenBox"
} };
SimpleFilter Animals = { app::EntityType__Enum_1::EnvAnimal };
}
};
SimpleFilter Animals = { EntityType__Enum_1::EnvAnimal };
SimpleFilter AnimalDrop = {
living::Falcon +
living::Pigeon +
living::Finch +
living::Wigeon +
living::Crane +
living::Crow +
living::Fox +
living::Squirrel +
living::Boar +
living::Falcon,
living::Pigeon,
living::Finch,
living::Wigeon,
living::Crane,
living::Crow,
living::Fox,
living::Squirrel,
living::Boar,
living::Weasel
};
SimpleFilter AnimalPickUp = {
living::CrystalCore +
living::Salamander +
living::Frog +
living::Crab +
living::LizardTail +
living::Eel +
living::Onikabuto +
living::ButterflyWings +
living::LucklightFly +
living::LuminescentSpine +
living::Starconch +
living::BirdEgg +
living::WeaselThief +
living::CrystalCore,
living::Salamander,
living::Frog,
living::Crab,
living::LizardTail,
living::Eel,
living::Onikabuto,
living::ButterflyWings,
living::LucklightFly,
living::LuminescentSpine,
living::Starconch,
living::BirdEgg,
living::WeaselThief,
living::Fish
};
SimpleFilter AnimalNPC = {
living::Dog +
living::Cat +
living::Kitsune +
living::Dog,
living::Cat,
living::Kitsune,
living::BakeDanuki
};
SimpleFilter Monsters = { app::EntityType__Enum_1::Monster };
SimpleFilter Monsters = { EntityType__Enum_1::Monster };
SimpleFilter MonsterCommon = {
monster::Slime +
monster::FloatingFungus +
monster::Specter +
monster::Whopperflower +
monster::Hilichurl +
monster::Samachurl +
monster::UnusualHilichurl +
monster::FatuiSkirmisher +
monster::TreasureHoarder +
monster::Nobushi +
monster::Kairagi +
monster::Millelith +
monster::ShogunateInfantry +
monster::Slime,
monster::FloatingFungus,
monster::Specter,
monster::Whopperflower,
monster::Hilichurl,
monster::Samachurl,
monster::UnusualHilichurl,
monster::FatuiSkirmisher,
monster::TreasureHoarder,
monster::Nobushi,
monster::Kairagi,
monster::Millelith,
monster::ShogunateInfantry,
monster::SangonomiyaCohort
};
SimpleFilter MonsterElites = {
monster::Mitachurl +
monster::AbyssMage +
monster::HydroAbyssHerald +
monster::PyroAbyssLector +
monster::ElectroAbyssLector +
monster::RifthoundWhelp +
monster::Rifthound +
monster::ShadowyHusk +
monster::RuinGuard +
monster::RuinHunter +
monster::RuinGrader +
monster::RuinSentinel +
monster::Cicin +
monster::FatuiCicinMage +
monster::FatuiAgent +
monster::FatuiMirrorMaiden +
monster::GeovishapHatchling +
monster::Geovishap +
monster::HydroBathysmalVishap +
monster::EyeOfTheStorm +
monster::Mitachurl,
monster::AbyssMage,
monster::HydroAbyssHerald,
monster::PyroAbyssLector,
monster::ElectroAbyssLector,
monster::RifthoundWhelp,
monster::Rifthound,
monster::ShadowyHusk,
monster::RuinGuard,
monster::RuinHunter,
monster::RuinGrader,
monster::RuinSentinel,
monster::Cicin,
monster::FatuiCicinMage,
monster::FatuiAgent,
monster::FatuiMirrorMaiden,
monster::GeovishapHatchling,
monster::Geovishap,
monster::HydroBathysmalVishap,
monster::EyeOfTheStorm,
monster::BlackSerpentKnight
};
SimpleFilter MonsterBosses = {
// Adding these comments for better tracking.
// Trounce
monster::Dvalin +
monster::Azhdaha +
monster::Signora +
monster::Shogun +
monster::Andrius +
monster::Tartaglia +
monster::Dvalin,
monster::Azhdaha,
monster::Signora,
monster::Shogun,
monster::Andrius,
monster::Tartaglia,
// Mondstadt
monster::CryoRegisvine +
monster::ElectroHypostasis +
monster::AnemoHypostasis +
monster::CryoHypostasis +
monster::CryoRegisvine,
monster::ElectroHypostasis,
monster::AnemoHypostasis,
monster::CryoHypostasis,
// Liyue
monster::PyroRegisvine +
monster::Oceanid +
monster::OceanidBoar +
monster::OceanidCrab +
monster::OceanidCrane +
monster::OceanidFalcon +
monster::OceanidFinch +
monster::OceanidFrog +
monster::OceanidSquirrel +
monster::OceanidWigeon +
monster::GeoHypostasis +
monster::RuinSerpent +
monster::PrimoGeovishap +
monster::Beisht +
monster::PyroRegisvine,
monster::Oceanid,
monster::OceanidBoar,
monster::OceanidCrab,
monster::OceanidCrane,
monster::OceanidFalcon,
monster::OceanidFinch,
monster::OceanidFrog,
monster::OceanidSquirrel,
monster::OceanidWigeon,
monster::GeoHypostasis,
monster::RuinSerpent,
monster::PrimoGeovishap,
monster::Beisht,
// Inazuma
monster::PerpetualMechanicalArray +
monster::PyroHypostasis +
monster::MaguuKenki +
monster::ThunderManifestation +
monster::GoldenWolflord +
monster::HydroHypostasis +
monster::HydroHypostasisSummon +
monster::CryoBathysmalVishap +
monster::PerpetualMechanicalArray,
monster::PyroHypostasis,
monster::MaguuKenki,
monster::ThunderManifestation,
monster::GoldenWolflord,
monster::HydroHypostasis,
monster::HydroHypostasisSummon,
monster::CryoBathysmalVishap,
monster::ElectroBathysmalVishap
};
SimpleFilter MonsterShielded = {
// Taken from https://genshin-impact.fandom.com/wiki/Shields/Enemy.
// We won't be including Regisvines and enemy objects here,
// just regular monsters.
monster::AbyssMage +
monster::Slime +
monster::Mitachurl +
monster::ElectroAbyssLector +
monster::HydroAbyssHerald +
monster::PyroAbyssLector +
monster::FatuiCicinMage +
monster::Cicin +
monster::AbyssMage,
monster::Slime,
monster::Mitachurl,
monster::ElectroAbyssLector,
monster::HydroAbyssHerald,
monster::PyroAbyssLector,
monster::FatuiCicinMage,
monster::Cicin,
monster::Whopperflower
};
SimpleFilter MonsterEquips = { app::EntityType__Enum_1::MonsterEquip };
BlacklistFilter Living = {
std::vector<app::EntityType__Enum_1> {
app::EntityType__Enum_1::EnvAnimal,
app::EntityType__Enum_1::Monster
},
std::vector<std::string> {
// Environmental mobs
"Cat", "DogPrick", "Vulpues", "Inu_Tanuki",
// Overworld bosses
"Ningyo", "Regisvine", "Hypostasis", "Planelurker", "Nithhoggr"
}
};
SimpleFilter OrganicTargets = Monsters + Animals; // Solael: Please don't mess around with this filter.
SimpleFilter MonsterEquips = { EntityType__Enum_1::MonsterEquip };
BlacklistFilter Living = {
{EntityType__Enum_1::EnvAnimal, EntityType__Enum_1::Monster},
{
// Environmental mobs
"Cat", "DogPrick", "Vulpues", "Inu_Tanuki",
// Overworld bosses
"Ningyo", "Regisvine", "Hypostasis", "Planelurker", "Nithhoggr"
}
};
SimpleFilter OrganicTargets = { Monsters, Animals }; // Solael: Please don't mess around with this filter.
//m0nkrel: We can choose the entities we need ourselves so as not to magnetize cats, dogs, etc.
//AdvancedFilter Animals = { std::vector<app::EntityType__Enum_1> {app::EntityType__Enum_1::EnvAnimal, app::EntityType__Enum_1::Monster }, std::vector<std::string> {"Crane","Tit", "Boar" , "Squirrel", "Fox", "Pigeon", "Wigeon", "Falcon" ,"Marten" } };
//AdvancedFilter Animals = { {EntityType__Enum_1::EnvAnimal, EntityType__Enum_1::Monster }, {"Crane", "Tit", "Boar", "Squirrel", "Fox", "Pigeon", "Wigeon", "Falcon" ,"Marten" } };
}
}
}

View File

@ -10,6 +10,8 @@ namespace cheat::game::filters
{
extern SimpleFilter Book;
extern SimpleFilter Viewpoint;
extern SimpleFilter WoodenCrate;
extern SimpleFilter GeoSigil;
extern ChestFilter RadiantSpincrystal;
extern ChestFilter BookPage;

View File

@ -189,7 +189,7 @@ namespace cheat::feature
const auto sceneID = game::GetCurrentMapSceneID();
if (m_ScenesData.count(sceneID) == 0)
ImGui::Text("Sorry. Current scene is not supported.");
ImGui::InputText("Search", &m_SearchText); ImGui::SameLine();
HelpMarker(
"This page following with filters for items.\n"
@ -1387,13 +1387,25 @@ namespace cheat::feature
bool mapActive = IsMapActive();
if (mapActive != _lastMapActive)
{
MapToggled(mapActive);
if (!mapActive)
renderer::SetInputLock(this, false);
}
_lastMapActive = mapActive;
if (!mapActive)
return;
// If any InputText is focused, the game will not respond any keyboard input.
auto ctx = ImGui::GetCurrentContext();
if (ctx->IO.WantCaptureKeyboard && !renderer::IsInputLocked())
renderer::SetInputLock(this, true);
else if (!ctx->IO.WantCaptureKeyboard && renderer::IsInputLocked())
renderer::SetInputLock(this, false);
auto mapManager = GET_SINGLETON(MoleMole_MapManager);
if (mapManager == nullptr)
return;

View File

@ -0,0 +1,77 @@
#include "pch-il2cpp.h"
#include "AutoRun.h"
#include <helpers.h>
#include <cheat/events.h>
#include <cheat/game/EntityManager.h>
#include <cheat/game/util.h>
#include <cheat-base/render/renderer.h>
namespace cheat::feature
{
AutoRun::AutoRun() : Feature(),
NF(f_Enabled, "Auto Run", "Player::AutoRun", false),
NF(f_Speed, "Speed", "Player::AutoRun",1.0f)
{
events::GameUpdateEvent += MY_METHOD_HANDLER(AutoRun::OnGameUpdate);
}
const FeatureGUIInfo& AutoRun::GetGUIInfo() const
{
static const FeatureGUIInfo info{ "Auto Run", "Player", true };
return info;
}
void AutoRun::DrawMain()
{
ConfigWidget("Enable", f_Enabled);
ConfigWidget("Auto Run speed", f_Speed, 0.01f, 0.01f, 1000.0f, "Speed of character \n Not recommended going above 5");
}
bool AutoRun::NeedStatusDraw() const
{
return f_Enabled;
}
void AutoRun::DrawStatus()
{
ImGui::Text("Auto Run[%.01f]",f_Speed.value());
}
AutoRun& AutoRun::GetInstance()
{
static AutoRun instance;
return instance;
}
void EnableAutoRun(float speed) {
auto& manager = game::EntityManager::instance();
auto avatarEntity = manager.avatar();
auto baseMove = avatarEntity->moveComponent();
auto rigidBody = avatarEntity->rigidbody();
if (baseMove == nullptr || rigidBody == nullptr || renderer::IsInputLocked())
return;
auto cameraEntity = game::Entity(reinterpret_cast<app::BaseEntity*>(manager.mainCamera()));
auto relativeEntity = &cameraEntity;
app::Vector3 dir = relativeEntity->forward();
app::Vector3 prevPos = avatarEntity->relativePosition();
float deltaTime = app::Time_get_deltaTime(nullptr);
app::Vector3 newPos = prevPos + dir * speed * deltaTime;
avatarEntity->setRelativePosition(newPos);
}
void AutoRun::OnGameUpdate() {
if (f_Enabled) {
float speed = f_Speed.value();
EnableAutoRun(speed);
}
}
}

View File

@ -0,0 +1,27 @@
#pragma once
#include <cheat-base/cheat/Feature.h>
#include <cheat-base/config/config.h>
namespace cheat::feature
{
class AutoRun : public Feature
{
public:
config::Field<config::Toggle<Hotkey>> f_Enabled;
config::Field<float> f_Speed;
static AutoRun& GetInstance();
const FeatureGUIInfo& GetGUIInfo() const override;
void DrawMain() override;
bool NeedStatusDraw() const override;
void DrawStatus() override;
void OnGameUpdate();
private:
AutoRun();
};
}

View File

@ -9,7 +9,7 @@ namespace cheat::feature
static bool HumanoidMoveFSM_CheckSprintCooldown_Hook(void* __this, MethodInfo* method);
static bool LCAvatarCombat_IsEnergyMax_Hook(void* __this, MethodInfo* method);
static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method);
static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method);
static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method);
static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(void* __this, app::String* key, float value, float minValue, float maxValue,
bool forceDoAtRemote, MethodInfo* method);
@ -124,7 +124,7 @@ namespace cheat::feature
}
// Timer Speed Up / CoolDown Reduce New | RyujinZX#6666
static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method) {
static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method) {
NoCD& noCD = NoCD::GetInstance();
if (noCD.f_AbilityReduce)
{

View File

@ -20,255 +20,387 @@ namespace cheat::feature
NF(f_DebugMode, "Debug Mode", "CustomTeleports", false), // Soon to be added
NF(f_Enabled, "Custom Teleport", "CustomTeleports", false),
NF(f_Next, "Teleport Next", "CustomTeleports", Hotkey(VK_OEM_6)),
NF(f_Previous, "Teleport Previous", "CustomTeleports", Hotkey(VK_OEM_4))
NF(f_Previous, "Teleport Previous", "CustomTeleports", Hotkey(VK_OEM_4)),
dir(util::GetCurrentPath() / "teleports")
{
f_Next.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnNextKeyPressed);
f_Previous.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnPreviousKeyPressed);
f_Next.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnNext);
f_Previous.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnPrevious);
}
const FeatureGUIInfo& CustomTeleports::GetGUIInfo() const
{
static const FeatureGUIInfo info{ "Custom Teleports", "Teleport", true };
return info;
}
void CustomTeleports::CheckFolder()
{
if (!std::filesystem::exists(dir))
std::filesystem::create_directory(dir);
else return;
}
bool CustomTeleports::ValidateTeleport(std::string name)
{
for (auto &Teleport : Teleports)
if (Teleport.name == name)
return false;
if (name.find_first_of("\\/:*?\"<>|") != std::string::npos)
return false;
return true;
}
Teleport CustomTeleports::Teleport_(std::string name, app::Vector3 position, std::string description)
{
Teleport t(name, position, description);
return t;
}
void CustomTeleports::SerializeTeleport(Teleport t)
{
Teleports.push_back(t);
LOG_INFO("Teleport '%s' Loaded", t.name.c_str());
CheckFolder();
std::ofstream ofs(dir / (t.name + ".json"));
nlohmann::json j;
try
{
j["name"] = t.name;
j["position"] = {t.position.x, t.position.y, t.position.z};
j["description"] = t.description;
ofs << j;
ofs.close();
LOG_INFO("Teleport '%s' Serialized.", t.name.c_str());
} catch (std::exception e)
{
ofs.close();
LOG_ERROR("Failed to serialize teleport: %s: %s", t.name.c_str(), e.what());
}
}
Teleport CustomTeleports::SerializeFromJson(std::string json, bool fromfile)
{
nlohmann::json j;
try { j = nlohmann::json::parse(json);}
catch (nlohmann::json::parse_error &e)
{
LOG_ERROR("Invalid JSON Format");
LOG_ERROR("Failed to parse JSON: %s", e.what());
}
std::string teleportName;
teleportName = j["name"];
if (j["name"].is_null() && fromfile)
{
LOG_ERROR("No name found! Using File Name");
teleportName = std::filesystem::path(json).stem().filename().string();
}
std::string description;
if (j["description"].is_null()) description = "";
else description = j["description"];
return Teleport_(teleportName, {j["position"][0], j["position"][1], j["position"][2]}, description);
}
void CustomTeleports::ReloadTeleports()
{
auto result = std::filesystem::directory_iterator(dir);
Teleports.clear();
for (auto &file : result)
{
if (file.path().extension() == ".json")
{
std::ifstream ifs(file.path());
std::string json;
std::getline(ifs, json);
SerializeTeleport(SerializeFromJson(json, true));
}
}
}
float PositionDistance(app::Vector3 a, app::Vector3 b)
{
return sqrt(pow(a.x - b.x, 2) + pow(a.y - b.y, 2) + pow(a.z - b.z, 2));
}
void CustomTeleports::OnTeleportKeyPressed(bool next)
{
if (!f_Enabled || selectedIndex < 0)
return;
auto &mapTeleport = MapTeleport::GetInstance();
app::Vector3 position;
if (selectedByClick)
{
position = Teleports.at(selectedIndex).position;
selectedByClick = false;
}
else
{
std::vector list(checkedIndices.begin(), checkedIndices.end());
if (selectedIndex == list.back() ? next : selectedIndex == list.front())
return;
auto index = std::distance(list.begin(), std::find(list.begin(), list.end(), selectedIndex));
position = Teleports.at(list.at(index + (next ? 1 : -1))).position;
selectedIndex = list.at(index + (next ? 1 : -1));
}
mapTeleport.TeleportTo(position);
UpdateIndexName();
}
void CustomTeleports::OnPrevious()
{
OnTeleportKeyPressed(false);
}
void CustomTeleports::OnNext()
{
OnTeleportKeyPressed(true);
}
void CustomTeleports::UpdateIndexName()
{
std::string name(selectedIndex == -1 || checkedIndices.empty() ? "" : Teleports.at(selectedIndex).name);
// abbreviate teleport names that are too long
if (name.length() > 15)
{
std::string shortened;
std::regex numsExp("[\\d]+");
std::regex firstCharsExp("\\b[A-Za-z]");
std::sregex_iterator wordItr(name.begin(), name.end(), firstCharsExp);
while (wordItr != std::sregex_iterator())
{
for (unsigned i = 0; i < wordItr->size(); i++)
{
shortened.append((*wordItr)[i]);
}
wordItr++;
}
std::sregex_iterator numItr(name.begin(), name.end(), numsExp);
while (numItr != std::sregex_iterator())
{
for (unsigned i = 0; i < numItr->size(); i++)
{
shortened.append(" ");
shortened.append((*numItr)[i]);
}
numItr++;
}
name = shortened;
}
selectedIndexName = name;
}
void CustomTeleports::DrawMain()
{
auto& entityManager = game::EntityManager::instance();
auto& MapTeleport = MapTeleport::GetInstance();
static std::string teleportName;
static std::string search;
app::Vector3 pos = app::ActorUtils_GetAvatarPos(nullptr);
// Buffers
static std::string nameBuffer_;
static std::string searchBuffer_;
static std::string JSONBuffer_;
static std::string descriptionBuffer_;
ImGui::InputText("Teleport name", &teleportName);
ImGui::InputText("Name", &nameBuffer_);
ImGui::InputText("Description", &descriptionBuffer_);
if (ImGui::Button("Add Teleport"))
{
// check if name is valid and doesnt contain special characters
if (teleportName.find_first_of("\\/:*?\"<>|") != std::string::npos)
return;
// check if already added
if (std::any_of(teleports.begin(), teleports.end(), [](const auto& pair)
{ return pair.first == teleportName; }))
return;
selectedIndex = -1;
UpdateIndexName();
teleports.push_back({ teleportName, pos });
auto dir = std::filesystem::current_path();
dir /= "teleports";
if (!std::filesystem::exists(dir))
std::filesystem::create_directory(dir);
std::ofstream ofs(dir / (teleportName + ".json"));
nlohmann::json j;
j["name"] = teleportName;
j["position"] = { pos.x, pos.y, pos.z };
ofs << j;
teleportName.clear();
SerializeTeleport(Teleport_(nameBuffer_, app::ActorUtils_GetAvatarPos(nullptr), descriptionBuffer_));
nameBuffer_ = "";
descriptionBuffer_ = "";
}
ImGui::SameLine();
if (ImGui::Button("Reload"))
{
selectedIndex = -1;
UpdateIndexName();
checkedIndices.clear();
auto dir = std::filesystem::current_path();
dir /= "teleports";
auto result = std::filesystem::directory_iterator(dir);
teleports.clear();
for (auto& file : result)
{
if (file.path().extension() != ".json")
continue;
std::string name = file.path().stem().string();
if (file.is_directory())
continue;
std::ifstream ifs(file.path());
nlohmann::json j;
ifs >> j;
teleports.push_back({ j["name"], {j["position"][0], j["position"][1], j["position"][2]} });
LOG_INFO("Loaded teleport %s", name.c_str());
}
ReloadTeleports();
}
ImGui::SameLine();
// open directory
if (ImGui::Button("Open Folder"))
{
auto dir = std::filesystem::current_path();
dir /= "teleports";
CheckFolder();
ShellExecuteA(NULL, "open", dir.string().c_str(), NULL, NULL, SW_SHOW);
}
ImGui::SameLine();
static std::string jsonInput;
if (ImGui::Button("Load from JSON"))
{
selectedIndex = -1;
UpdateIndexName();
auto dir = std::filesystem::current_path();
dir /= "teleports";
LOG_INFO("Defined dir");
if (!std::filesystem::exists(dir))
std::filesystem::create_directory(dir);
nlohmann::json j;
try
{
j = nlohmann::json::parse(jsonInput);
}
catch (nlohmann::json::parse_error& e)
{
LOG_ERROR("Failed to parse JSON: %s", e.what());
return;
}
LOG_INFO("Parsed JSON");
std::string teleportName = j["name"];
app::Vector3 pos = { j["position"][0], j["position"][1], j["position"][2] };
teleports.push_back({ teleportName, pos });
LOG_INFO("Loaded teleport %s", teleportName.c_str());
std::ofstream ofs(dir / (teleportName + ".json"));
ofs << jsonInput;
jsonInput.clear();
SerializeTeleport(SerializeFromJson(JSONBuffer_, false));
JSONBuffer_ = "";
}
ImGui::InputTextMultiline("JSON input", &jsonInput, ImVec2(0, 50), ImGuiInputTextFlags_AllowTabInput);
ImGui::InputTextMultiline("JSON input", &JSONBuffer_, ImVec2(0, 50), ImGuiInputTextFlags_AllowTabInput);
ConfigWidget("Teleport Next", f_Next, true, "Press to teleport next of selected");
ConfigWidget("Teleport Previous", f_Previous, true, "Press to teleport previous of selected");
ConfigWidget("Enable",
f_Enabled,
"Enable teleport-through-list functionality\n" \
"Usage:\n" \
"1. Put Checkmark to the teleports you want to teleport using hotkey\n" \
"2. Single click the teleport (with checkmark) to select where you want to start\n" \
"3. You can now press Next or Previous Hotkey to Teleport through the Checklist\n" \
"Initially it will teleport the player to the selection made\n" \
"Note: Double click or click the arrow to open teleport details");
ConfigWidget("Enable", f_Enabled,
"Enable teleport-through-list functionality\n"
"Usage:\n"
"1. Put Checkmark to the teleports you want to teleport using hotkey\n"
"2. Single click the teleport (with checkmark) to select where you want to start\n"
"3. You can now press Next or Previous Hotkey to Teleport through the Checklist\n"
"Initially it will teleport the player to the selection made\n"
"Note: Double click or click the arrow to open teleport details");
ImGui::SameLine();
if (ImGui::Button("Delete Checked"))
{
if (!teleports.empty()) {
std::vector<std::string> teleportNames;
// get all teleport names by index
for (auto& i : checkedIndices) {
teleportNames.push_back(teleports.at(i).first);
if (selectedIndex == i) selectedIndex = -1;
if (!Teleports.empty())
{
if (checkedIndices.empty())
{
LOG_INFO("No teleports selected");
return;
}
for (auto& name : teleportNames) {
auto dir = std::filesystem::current_path();
dir /= "teleports";
// delete file
std::filesystem::remove(dir / (name + ".json"));
// remove from list
teleports.erase(std::remove_if(teleports.begin(), teleports.end(), [&name](const auto& pair)
{ return pair.first == name; }), teleports.end());
std::vector<std::string> teleportNames;
for (auto &Teleport : Teleports)
teleportNames.push_back(Teleport.name);
for (auto &index : checkedIndices)
{
std::filesystem::remove(dir / (teleportNames[index] + ".json"));
LOG_INFO("Deleted teleport %s", teleportNames[index].c_str());
}
checkedIndices.clear();
UpdateIndexName();
}
ReloadTeleports();
} else {LOG_INFO("No teleports to delete");}
}
ImGui::SameLine();
HelpMarker("Warning: This will delete the file from the directory and\nremove the teleport from the list. It will be lost forever.");
HelpMarker("Warning: This will delete the file from the directory and\n \
remove the teleport from the list. It will be lost forever.");
if (ImGui::TreeNode("Teleports"))
{
// using natural sort instead of ascii sort
std::sort(teleports.begin(), teleports.end(), [](const auto& a, const auto& b)
{ return StrCmpLogicalW(std::wstring(a.first.begin(), a.first.end()).c_str(), std::wstring(b.first.begin(), b.first.end()).c_str()) < 0; });
bool allSearchChecked = std::includes(checkedIndices.begin(), checkedIndices.end() ,searchIndices.begin(), searchIndices.end()) && !searchIndices.empty();
bool allChecked = (checkedIndices.size() == teleports.size() && !teleports.empty()) || allSearchChecked;
std::sort(Teleports.begin(), Teleports.end(), [](const auto &a, const auto &b)
{ return StrCmpLogicalW(std::wstring(a.name.begin(), a.name.end()).c_str(), std::wstring(b.name.begin(), b.name.end()).c_str()) < 0; });
bool allChecked = checkedIndices.size() == Teleports.size() && !Teleports.empty();
bool allSearchChecked = checkedIndices.size() == searchIndices.size() && !searchIndices.empty();
ImGui::Checkbox("All", &allChecked);
if (ImGui::IsItemClicked()) {
if (!teleports.empty()) {
if (allChecked) {
if (ImGui::IsItemClicked())
{
if (!Teleports.empty())
{
if (allChecked)
{
selectedIndex = -1;
if (!searchIndices.empty()) {
for (const auto& i : searchIndices) {
if (!searchIndices.empty())
for (const auto &i : searchIndices)
checkedIndices.erase(i);
}
}
else {
else
checkedIndices.clear();
}
}
else {
if (!searchIndices.empty()) {
checkedIndices.insert(searchIndices.begin(), searchIndices.end());
}
else {
for (int i = 0; i < teleports.size(); i++)
checkedIndices.insert(i);
}
}
else if (!searchIndices.empty())
checkedIndices.insert(searchIndices.begin(), searchIndices.end());
else
for (int i = 0; i < Teleports.size(); i++)
checkedIndices.insert(i);
UpdateIndexName();
}
}
ImGui::SameLine();
ImGui::InputText("Search", &search);
ImGui::InputText("Search", &searchBuffer_);
unsigned int index = 0;
searchIndices.clear();
for (const auto& [teleportName, position] : teleports)
{
// find without case sensitivity
if (search.empty() || std::search(teleportName.begin(), teleportName.end(), search.begin(), search.end(), [](char a, char b)
{ return std::tolower(a) == std::tolower(b); }) != teleportName.end())
{
// sets are sorted by default and does not allow duplicates
// which works in favor here.
if (!search.empty()) {
searchIndices.insert(index);
}
bool checked = std::any_of(checkedIndices.begin(), checkedIndices.end(), [&index](const auto& i) { return i == index; });
unsigned int maxNameLength = 0;
for (auto &Teleport : Teleports)
if (Teleport.name.length() > maxNameLength)
maxNameLength = Teleport.name.length();
ImGui::BeginTable("Teleports", 4, ImGuiTableFlags_Borders | ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable | ImGuiTableFlags_Hideable | ImGuiTableFlags_NoSavedSettings);
ImGui::TableSetupColumn("#", ImGuiTableColumnFlags_WidthFixed, 20);
ImGui::TableSetupColumn("Commands", ImGuiTableColumnFlags_WidthFixed, 100);
ImGui::TableSetupColumn("Name", ImGuiTableColumnFlags_WidthFixed, maxNameLength * 8 + 10);
ImGui::TableSetupColumn("Position");
ImGui::TableHeadersRow();
ImGuiTreeNodeFlags nodeFlags = ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_SpanAvailWidth;
for (const auto &[name, position, description] : Teleports)
{
if (searchBuffer_.empty() || std::search(name.begin(), name.end(), searchBuffer_.begin(), searchBuffer_.end(), [](char a, char b)
{ return std::tolower(a) == std::tolower(b); }) != name.end())
{
if (!searchBuffer_.empty())
searchIndices.insert(index);
bool checked = std::any_of(checkedIndices.begin(), checkedIndices.end(), [&index](const auto &i)
{ return i == index; });
bool selected = index == selectedIndex;
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::Text("%d", index);
ImGui::TableNextColumn();
ImGui::Checkbox(("##Index" + std::to_string(index)).c_str(), &checked);
if (ImGui::IsItemClicked(0)) {
if (checked) {
if (selected) selectedIndex = -1;
if (ImGui::IsItemClicked(0))
{
if (checked)
{
if (selected)
selectedIndex = -1;
checkedIndices.erase(index);
}
else {
else
checkedIndices.insert(index);
}
UpdateIndexName();
}
ImGui::SameLine();
if (ImGui::Button(("TP##Button" + std::to_string(index)).c_str()))
{
auto& mapTeleport = MapTeleport::GetInstance();
mapTeleport.TeleportTo(position);
auto &manager = game::EntityManager::instance();
auto avatar = manager.avatar();
if (avatar->moveComponent() == nullptr)
{
LOG_ERROR("Avatar has no move component, Is scene loaded?");
return;
}
if (PositionDistance(position, app::ActorUtils_GetAvatarPos(nullptr)) > 60.0f)
MapTeleport::GetInstance().TeleportTo(position);
else
manager.avatar()->setAbsolutePosition(position);
}
ImGui::SameLine();
if (ImGui::Button(("Select##Button" + std::to_string(index)).c_str()))
{
selectedIndex = index;
selectedByClick = true;
UpdateIndexName();
}
ImGui::SameLine();
ImGui::PushStyleColor(ImGuiCol_Text, selected ? IM_COL32(40, 90, 175, 255) : IM_COL32(255, 255, 255, 255));
ImGuiTreeNodeFlags nodeFlags = ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_SpanAvailWidth;
if (selected) nodeFlags |= ImGuiTreeNodeFlags_Selected;
bool node_open = ImGui::TreeNodeEx(teleportName.data(), nodeFlags);
if (ImGui::IsItemClicked() && checked) {
if (!selected) {
selectedIndex = index;
selectedByClick = true;
}
else {
selectedIndex = -1;
selectedByClick = false;
}
UpdateIndexName();
}
if (node_open)
{
ImGui::Text("Position: %.3f, %.3f, %.3f", position.x, position.y, position.z);
ImGui::TreePop();
}
if (selected)
nodeFlags |= ImGuiTreeNodeFlags_Selected;
ImGui::PopStyleColor();
ImGui::TableNextColumn();
ImGui::Text("%s", name.c_str());
if (ImGui::IsItemHovered())
{
ImGui::BeginTooltip();
ImGui::Text("%s", description.c_str());
ImGui::Text("Distance: %.2f", PositionDistance(position, app::ActorUtils_GetAvatarPos(nullptr)));
ImGui::EndTooltip();
}
ImGui::TableNextColumn();
ImGui::Text("%f, %f, %f", position.x, position.y, position.z);
}
index++;
}
ImGui::EndTable();
ImGui::TreePop();
}
if (selectedIndex != -1)
ImGui::Text("Selected: [%d] %s", selectedIndex, Teleports[selectedIndex].name.c_str());
}
bool CustomTeleports::NeedStatusDraw() const
@ -281,88 +413,7 @@ namespace cheat::feature
ImGui::Text("Custom Teleport\n[%s]", selectedIndexName);
}
void CustomTeleports::OnNextKeyPressed()
{
if (!f_Enabled || selectedIndex < 0)
return;
auto& mapTeleport = MapTeleport::GetInstance();
app::Vector3 position;
if (selectedByClick) {
position = teleports.at(selectedIndex).second;
selectedByClick = false;
}
else {
std::vector list(checkedIndices.begin(), checkedIndices.end());
if (selectedIndex == list.back())
return;
auto index = std::distance(list.begin(), std::find(list.begin(), list.end(), selectedIndex));
position = teleports.at(list.at(index + 1)).second;
selectedIndex = list.at(index + 1);
}
mapTeleport.TeleportTo(position);
UpdateIndexName();
}
void CustomTeleports::OnPreviousKeyPressed()
{
if (!f_Enabled || selectedIndex < 0)
return;
auto& mapTeleport = MapTeleport::GetInstance();
app::Vector3 position;
if (selectedByClick) {
position = teleports.at(selectedIndex).second;
selectedByClick = false;
}
else {
std::vector list(checkedIndices.begin(), checkedIndices.end());
if (selectedIndex == list.front())
return;
auto index = std::distance(list.begin(), std::find(list.begin(), list.end(), selectedIndex));
position = teleports.at(list.at(index - 1)).second;
selectedIndex = list.at(index - 1);
}
mapTeleport.TeleportTo(position);
UpdateIndexName();
}
void CustomTeleports::UpdateIndexName() {
std::string name(selectedIndex == -1 || checkedIndices.empty() ? "" : teleports.at(selectedIndex).first);
// abbreviate teleport names that are too long
if (name.length() > 15) {
std::string shortened;
std::regex numsExp("[\\d]+");
std::regex firstCharsExp("\\b[A-Za-z]");
std::sregex_iterator wordItr(name.begin(), name.end(), firstCharsExp);
while (wordItr != std::sregex_iterator()) {
for (unsigned i = 0; i < wordItr->size(); i++) {
shortened.append((*wordItr)[i]);
}
wordItr++;
}
std::sregex_iterator numItr(name.begin(), name.end(), numsExp);
while (numItr != std::sregex_iterator()) {
for (unsigned i = 0; i < numItr->size(); i++) {
shortened.append(" ");
shortened.append((*numItr)[i]);
}
numItr++;
}
name = shortened;
}
selectedIndexName = name;
}
CustomTeleports& CustomTeleports::GetInstance()
CustomTeleports &CustomTeleports::GetInstance()
{
static CustomTeleports instance;
return instance;

View File

@ -8,6 +8,20 @@
namespace cheat::feature
{
class Teleport
{
public:
Teleport(std::string name, app::Vector3 position, std::string description)
{
this->name = name;
this->position = position;
this->description = description;
}
std::string name;
app::Vector3 position;
std::string description;
};
class CustomTeleports : public Feature
{
public:
@ -17,21 +31,34 @@ namespace cheat::feature
config::Field<Hotkey> f_Previous;
static CustomTeleports& GetInstance();
const FeatureGUIInfo& GetGUIInfo() const override;
void DrawMain() override;
void CheckFolder();
bool ValidateTeleport(std::string name);
Teleport Teleport_(std::string name, app::Vector3 position, std::string description);
void SerializeTeleport(Teleport t);
void ReloadTeleports();
Teleport SerializeFromJson(std::string json, bool fromfile);
void DrawMain() override;
virtual bool NeedStatusDraw() const override;
void DrawStatus() override;
std::vector<Teleport> Teleports;
std::filesystem::path dir;
private:
std::vector<std::pair<std::string, app::Vector3>> teleports;
std::set<unsigned int> checkedIndices;
std::set<unsigned int> searchIndices;
bool selectedByClick = false;
int selectedIndex = -1;
std::string selectedName;
std::string selectedIndexName;
CustomTeleports();
void OnNextKeyPressed();
void OnPreviousKeyPressed();
void OnTeleportKeyPressed(bool next);
void OnPrevious();
void OnNext();
void UpdateIndexName();
};
}

View File

@ -9,22 +9,33 @@
namespace cheat::feature
{
AutoSeelie::AutoSeelie() : Feature(),
NF(f_Enabled, "Auto follow seelie", "AutoSeelie", false)
{
events::GameUpdateEvent += MY_METHOD_HANDLER(AutoSeelie::OnGameUpdate);
}
NF(f_Enabled, "Auto seelie", "Auto Seelie", false),
NF(f_ElectroSeelie, "Auto Electro seelie", "Auto Seelie", false),
nextTime(0)
{
events::GameUpdateEvent += MY_METHOD_HANDLER(AutoSeelie::OnGameUpdate);
}
const FeatureGUIInfo& AutoSeelie::GetGUIInfo() const
{
static const FeatureGUIInfo info{ "", "World", true };
return info;
}
void AutoSeelie::DrawMain()
{
ConfigWidget("Auto seelie", f_Enabled, "Auto follow seelie to its home");
ImGui::SameLine();
ImGui::TextColored(ImColor(255, 165, 0, 255), "Don't work with Electro Seelies");
}
void AutoSeelie::DrawMain()
{
ConfigWidget("Auto seelie", f_Enabled, "Auto follow seelie to its home");
if (f_Enabled)
{
ImGui::Indent();
ConfigWidget("Auto Electro seelie", f_ElectroSeelie, "Since you don't need to manually start electroseelie, \n"
"they start moving automatically with this option within 100m radius.");
ImGui::SameLine();
ImGui::TextColored(ImColor(255, 165, 0, 255), "Read the note!");
ImGui::Unindent();
}
}
bool AutoSeelie::NeedStatusDraw() const
{
@ -33,7 +44,7 @@ namespace cheat::feature
void AutoSeelie::DrawStatus()
{
ImGui::Text ("AutoSeelie");
ImGui::Text("AutoSeelie %s", f_ElectroSeelie ? "+ Electro" : "");
}
AutoSeelie& AutoSeelie::GetInstance()
@ -47,35 +58,52 @@ namespace cheat::feature
auto& manager = game::EntityManager::instance();
auto distance = manager.avatar()->distance(entity);
float radius = 100.0f;
if (entity->name().find("Gear_Seelie") != std::string::npos || entity->name().find("_FireSeelie") != std::string::npos ||
entity->name().find("_LitSeelie") != std::string::npos)
if (entity->name().find("Seelie") != std::string::npos)
{
if (entity->name().find("ElectricSeelie") != std::string::npos)
{
if (f_ElectroSeelie)
{
auto EntityGameObject = app::MoleMole_BaseEntity_get_rootGameObject(entity->raw(), nullptr);
auto Transform = app::GameObject_GetComponentByName(EntityGameObject, string_to_il2cppi("Transform"), nullptr);
auto child = app::Transform_GetChild(reinterpret_cast<app::Transform*>(Transform), 1, nullptr);
auto pre_status = app::Component_1_get_gameObject(reinterpret_cast<app::Component_1*>(child), nullptr);
auto status = app::GameObject_get_active(reinterpret_cast<app::GameObject*>(pre_status), nullptr);
if (status)
{
return false;
}
return distance <= radius;
}
return false;
}
return distance <= radius;
}
return false;
}
void AutoSeelie::OnGameUpdate()
{
if (!f_Enabled)
return;
void AutoSeelie::OnGameUpdate()
{
if (!f_Enabled)
return;
auto currentTime = util::GetCurrentTimeMillisec();
if (currentTime < nextTime)
return;
auto& manager = game::EntityManager::instance();
auto& manager = game::EntityManager::instance();
auto avatarEntity = manager.avatar();
for (const auto& entity : manager.entities())
{
if (!IsEntityForVac(entity))
continue;
for (const auto& entity : manager.entities())
{
if (!IsEntityForVac(entity))
continue;
entity->setRelativePosition(avatarEntity->relativePosition());
}
entity->setRelativePosition(avatarEntity->relativePosition());
}
nextTime = currentTime + 1000;
}
}
}

View File

@ -4,8 +4,10 @@
#include <cheat/game/Entity.h>
#include <cheat/game/filters.h>
#include <cheat-base/thread-safe.h>
#include <il2cpp-appdata.h>
namespace cheat::feature
{
@ -13,6 +15,7 @@ namespace cheat::feature
{
public:
config::Field<config::Toggle<Hotkey>> f_Enabled;
config::Field<bool> f_ElectroSeelie;
static AutoSeelie& GetInstance();
@ -24,10 +27,8 @@ namespace cheat::feature
void OnGameUpdate();
private:
std::vector<game::IEntityFilter*> m_Filters;
AutoSeelie();
int nextTime{};
SafeValue<int64_t> nextTime;
bool IsEntityForVac(cheat::game::Entity* entity);
};
}

View File

@ -190,7 +190,7 @@ namespace cheat::feature
if (manager.avatar()->distance(monster) > killAura.f_Range)
return;
moveSync->fields.moveSyncTask.position.x = 1000000.0f;
moveSync->fields._syncTask.position.x = 1000000.0f;
}
static void BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo_Hook(app::BaseMoveSyncPlugin* __this, MethodInfo* method)

View File

@ -14,16 +14,16 @@
void Run(HMODULE* phModule)
{
ResourceLoader::SetModuleHandle(*phModule);
util::SetCurrentPath(util::GetModulePath(*phModule));
// Init config
std::string configPath = (std::filesystem::current_path() / "cfg.json").string();
config::Initialize(configPath);
config::Initialize((util::GetCurrentPath() / "cfg.json").string());
// Init logger
auto& settings = cheat::feature::Settings::GetInstance();
if (settings.f_FileLogging)
{
Logger::PrepareFileLogging((std::filesystem::current_path() / "logs").string());
Logger::PrepareFileLogging((util::GetCurrentPath() / "logs").string());
Logger::SetLevel(Logger::Level::Trace, Logger::LoggerType::FileLogger);
}
@ -43,7 +43,7 @@ void Run(HMODULE* phModule)
#ifdef _DEBUG
LOG_DEBUG("Waiting 10sec for loading game library.");
Sleep(10000);
Sleep(15000);
#else
LOG_DEBUG("Waiting 15sec for game initialize.");
Sleep(15000);
@ -55,5 +55,5 @@ void Run(HMODULE* phModule)
cheat::Init();
LOG_DEBUG("Config path is at %s", configPath.c_str());
LOG_DEBUG("Config path is at %s", (util::GetCurrentPath() / "cfg.json").string().c_str());
}

View File

@ -18,79 +18,121 @@ bool OpenGenshinProcess(HANDLE* phProcess, HANDLE* phThread);
int main(int argc, char* argv[])
{
Logger::SetLevel(Logger::Level::Debug, Logger::LoggerType::ConsoleLogger);
Logger::SetLevel(Logger::Level::Debug, Logger::LoggerType::ConsoleLogger);
auto path = std::filesystem::path(argv[0]).parent_path();
current_path(path);
WaitForCloseProcess(GlobalGenshinProcName);
WaitForCloseProcess(ChinaGenshinProcName);
auto path = std::filesystem::path(argv[0]).parent_path();
current_path(path);
Sleep(1000); // Wait for unloading all dlls.
WaitForCloseProcess(GlobalGenshinProcName);
WaitForCloseProcess(ChinaGenshinProcName);
ini.SetUnicode();
ini.LoadFile("cfg.ini");
Sleep(1000); // Wait for unloading all dlls.
HANDLE hProcess, hThread;
if (!OpenGenshinProcess(&hProcess, &hThread))
{
std::cout << "Failed to open GenshinImpact process." << std::endl;
return 1;
}
ini.SetUnicode();
ini.LoadFile("cfg.ini");
current_path(path);
ini.SaveFile("cfg.ini");
HANDLE hProcess, hThread;
if (!OpenGenshinProcess(&hProcess, &hThread))
{
std::cout << "Failed to open GenshinImpact process." << std::endl;
system("pause");
return 1;
}
std::string filename = (argc == 2 ? argv[1] : "CLibrary.dll");
std::filesystem::path currentDllPath = std::filesystem::current_path() / filename;
current_path(path);
ini.SaveFile("cfg.ini");
std::string filename = (argc == 2 ? argv[1] : "CLibrary.dll");
std::filesystem::path currentDllPath = std::filesystem::current_path() / filename;
#ifdef _DEBUG
std::filesystem::path tempDllPath = std::filesystem::temp_directory_path() / filename;
std::filesystem::path tempDllPath = std::filesystem::temp_directory_path() / filename;
std::error_code ec;
std::filesystem::copy_file(currentDllPath, tempDllPath, std::filesystem::copy_options::update_existing, ec);
if (ec)
{
LOG_ERROR("Copy dll failed: %s", ec.message().c_str());
std::system("pause");
}
std::error_code ec;
std::filesystem::copy_file(currentDllPath, tempDllPath, std::filesystem::copy_options::update_existing, ec);
if (ec)
{
LOG_ERROR("Copy dll failed: %s", ec.message().c_str());
std::system("pause");
}
InjectDLL(hProcess, tempDllPath.string());
InjectDLL(hProcess, tempDllPath.string());
#else
InjectDLL(hProcess, currentDllPath.string());
InjectDLL(hProcess, currentDllPath.string());
#endif
Sleep(2000);
ResumeThread(hThread);
Sleep(2000);
ResumeThread(hThread);
CloseHandle(hProcess);
CloseHandle(hProcess);
}
bool OpenGenshinProcess(HANDLE *phProcess, HANDLE* phThread)
bool OpenGenshinProcess(HANDLE* phProcess, HANDLE* phThread)
{
STARTUPINFOA startInfo{};
PROCESS_INFORMATION processInformation{};
auto filePath = util::GetOrSelectPath(ini, "Inject", "GenshinPath", "genshin path", "Executable\0GenshinImpact.exe;YuanShen.exe\0");
auto commandline = ini.GetValue("Inject", "GenshinCommandLine");
HANDLE hToken;
BOOL TokenRet = OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken);
if (!TokenRet)
{
LOG_LAST_ERROR("Privilege escalation failed!");
return false;
}
LPSTR lpstr = commandline == nullptr ? nullptr : const_cast<LPSTR>(commandline);
auto filePath = util::GetOrSelectPath(ini, "Inject", "GenshinPath", "genshin path", "Executable\0GenshinImpact.exe;YuanShen.exe\0");
auto commandline = ini.GetValue("Inject", "GenshinCommandLine");
if (!filePath)
return false;
LPSTR lpstr = commandline == nullptr ? nullptr : const_cast<LPSTR>(commandline);
if (!filePath)
return false;
BOOL result = CreateProcessA(filePath->c_str(),
lpstr, 0, 0, FALSE, CREATE_SUSPENDED, nullptr, nullptr, &startInfo, &processInformation);
if (result == FALSE)
{
LOG_LAST_ERROR("Failed to create game process.");
LOG_ERROR("If you have problem with GenshinImpact.exe path. You can change it manually in cfg.ini.");
return false;
}
DWORD pid = FindProcessId("explorer.exe");
if (pid == 0)
{
LOG_ERROR("Can't find 'explorer' pid!");
return false;
}
ini.SaveFile("cfg.ini");
std::string CurrentDirectory = filePath.value();
int pos = CurrentDirectory.rfind("\\", CurrentDirectory.length());
CurrentDirectory = CurrentDirectory.substr(0, pos);
*phThread = processInformation.hThread;
*phProcess = processInformation.hProcess;
return true;
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SIZE_T lpsize = 0;
InitializeProcThreadAttributeList(NULL, 1, 0, &lpsize);
char* temp = new char[lpsize];
LPPROC_THREAD_ATTRIBUTE_LIST AttributeList = (LPPROC_THREAD_ATTRIBUTE_LIST)temp;
InitializeProcThreadAttributeList(AttributeList, 1, 0, &lpsize);
if (!UpdateProcThreadAttribute(AttributeList, 0, PROC_THREAD_ATTRIBUTE_PARENT_PROCESS,
&handle, sizeof(HANDLE), NULL, NULL))
{
LOG_WARNING("UpdateProcThreadAttribute failed ! (%d).\n", GetLastError());
}
STARTUPINFOEXA si{};
si.StartupInfo.cb = sizeof(si);
si.lpAttributeList = AttributeList;
PROCESS_INFORMATION pi{};
BOOL result = CreateProcessAsUserA(hToken, const_cast<LPSTR>(filePath->data()), lpstr,
0, 0, 0, EXTENDED_STARTUPINFO_PRESENT | CREATE_SUSPENDED, 0,
(LPSTR)CurrentDirectory.data(), (LPSTARTUPINFOA)&si, &pi);
bool isOpened = result;
if (isOpened)
{
ini.SaveFile("cfg.ini");
*phThread = pi.hThread;
*phProcess = pi.hProcess;
}
else
{
LOG_LAST_ERROR("Failed to create game process.");
LOG_ERROR("If you have problem with GenshinImpact.exe path. You can change it manually in cfg.ini.");
}
DeleteProcThreadAttributeList(AttributeList);
delete[] temp;
return isOpened;
}