移除内存修改类功能(NoSway/InfStamina/NoFallDmg): Mono 版偏移不兼容防乱写; 中文字体换全量 CJK 字库修复问号

This commit is contained in:
kedou 2026-08-05 22:27:33 +08:00
parent c3e9737d20
commit 211d8ac4c2
6 changed files with 22 additions and 50 deletions

View File

@ -1,28 +1,7 @@
#include "Framework.h"
void CFramework::MiscAll()
{
// BasePointer
uintptr_t Physics = m.Read<uintptr_t>(local.m_address + offset::Player::pPhysics);
uintptr_t BreathEffector = m.Read<uintptr_t>(local.m_pWeaponAnimation + offset::WeaponAnimations::Breath);
uintptr_t Stamina = m.Read<uintptr_t>(Physics + offset::Physics::Stamina);
// No Recoil/Sway
if (g.g_NoSway) {
m.Write<int>(local.m_pWeaponAnimation + 0x140, 1); // Mask?
m.Write<float>(BreathEffector + 0xa4, 0.001f);
}
// InfStamina
if (g.g_InfStamina && m.Read<float>(Stamina + 0x48) < 85.f)
m.Write<float>(Stamina + 0x48, 100.f);
// NoFall Damage
if (g.g_NoFallDmg && m.Read<float>(Physics + offset::Physics::FallDamageMultiplier) != 0.f)
m.Write<float>(Physics + offset::Physics::FallDamageMultiplier, 0.f);
}
// 内存修改类功能 (NoSway/InfStamina/NoFallDmg) 已移除:
// 它们依赖 IL2CPP 版偏移, 在 EXFIL DELTA (Mono 0.16.9) 上偏移不兼容, 会乱写内存。
void CFramework::GetESPInfo(const int& SpawnType, std::string& vOutStr, ImColor& vOutColor)
{

View File

@ -21,7 +21,6 @@ public:
void RenderInfo();
void RenderMenu();
void RenderESP();
void MiscAll();
void AimAll();
private:
CGame* tarkov = new CGame();

View File

@ -119,9 +119,8 @@ void CFramework::RenderMenu()
ImGui::Separator();
ImGui::Spacing();
ImGui::Checkbox("无摆动", &g.g_NoSway);
ImGui::Checkbox("无限耐力", &g.g_InfStamina);
ImGui::Checkbox("无掉落伤害", &g.g_NoFallDmg);
ImGui::TextDisabled("内存修改类功能已移除");
ImGui::TextDisabled("(Mono 版偏移不兼容, 防止乱写内存)");
ImGui::EndChild();
ImGui::BeginChild("##C021", ImVec2(ImGui::GetContentRegionAvail()), true);
@ -234,11 +233,11 @@ void CFramework::RenderMenu()
ImGui::InputInt("MC", &g.g_AimMcOffset, 8, 8, ImGuiInputTextFlags_CharsHexadecimal);
ImGui::InputInt("旋转", &g.g_AimRotOffset, 4, 4, ImGuiInputTextFlags_CharsHexadecimal);
// 误改输入框会直接导致 Memory 模式失效, 一键恢复默认
if (ImGui::Button("重置偏移 (0x170/0x2C0)", ImVec2(ImGui::GetContentRegionAvail().x, 0.f)))
// 误改输入框会直接导致 Memory 模式失效, 一键恢复本客户端实测默认值
if (ImGui::Button("重置偏移 (0x1E0/0x3A4)", ImVec2(ImGui::GetContentRegionAvail().x, 0.f)))
{
g.g_AimMcOffset = 0x170;
g.g_AimRotOffset = 0x2C0;
g.g_AimMcOffset = 0x1E0;
g.g_AimRotOffset = 0x3A4;
}
if (ImGui::Button("扫描旋转偏移(两步)", ImVec2(ImGui::GetContentRegionAvail().x, 0.f)))

View File

@ -18,8 +18,8 @@ namespace offset
namespace Player
{
constexpr auto pPlayerBody = 0xC0;
constexpr auto pMovementContext = 0x170;
constexpr auto pWeaponAnimation = 0x1E0;
constexpr auto pMovementContext = 0x1E0; // EXFIL DELTA (Mono 0.16.9) 实测. IL2CPP 0.15.x 是 0x170
constexpr auto pWeaponAnimation = 0x1E0; // IL2CPP 版定义, Mono 版实际是 MovementContext (框架旧代码保留)
constexpr auto pProfile = 0x600;
constexpr auto pPhysics = 0x610;
constexpr auto pHealthController = 0x640;
@ -29,8 +29,8 @@ namespace offset
namespace MovementContext
{
// Vector2 (x = yaw, y = pitch) [rad]
// SPT 3.11.x (EFT 0.15.x) の既定値。ズレていたらメニューの [回転デバッグ] で確認して調整する事。
constexpr auto Rotation = 0x2C0;
// EXFIL DELTA (Mono 0.16.9) 实测: +0x3A4. IL2CPP 0.15.x 是 0x2C0
constexpr auto Rotation = 0x3A4;
}
// EFT.Profile

View File

@ -29,10 +29,7 @@ struct Globals
float g_ESP_MaxDistance = 500.f;
float g_ESP_MaxItemDistance = 50.f;
// Misc
bool g_NoSway = false;
bool g_InfStamina = true;
bool g_NoFallDmg = true;
// Misc (内存修改类功能已移除: Mono 版偏移不兼容, 防止乱写内存)
// Aim (自瞄)
bool g_Aim = false;
@ -55,11 +52,12 @@ struct Globals
float g_RecoilStrength = 4.f; // 每次下拉的鼠标单位(mickeys)
int g_RecoilInterval = 15; // 下拉间隔 [ms]
// Aim Offset (运行时可调, 默认 = Offset.h 的值)
// Aim Offset (运行时可调, 默认 = 本客户端实测值)
// Memory 模式自瞄用: Player + g_AimMcOffset -> + g_AimRotOffset (Vector2 yaw/pitch)
// 内置扫描器 [Scan Rotation] 找到后会直接写到这里, 再复制进 Offset.h 固化
int g_AimMcOffset = 0x170;
int g_AimRotOffset = 0x2C0;
// EXFIL DELTA (Mono 0.16.9) 实测: Player+0x1E0 = MovementContext, +0x3A4 = Rotation
// 内置扫描器 [扫描旋转偏移] 找到后会直接写到这里
int g_AimMcOffset = 0x1E0;
int g_AimRotOffset = 0x3A4;
// System
bool g_StreamProof = false;

View File

@ -17,8 +17,6 @@ auto cheat = std::make_unique<CFramework>();
void Overlay::OverlayUserFunction()
{
cheat->MiscAll();
cheat->RenderInfo();
if (g.g_ESP)
@ -59,13 +57,12 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
// Load Font
io.Fonts->AddFontFromMemoryCompressedTTF(RobotoRegular_compressed_data, RobotoRegular_compressed_size, 13.f, nullptr);
// 中文字体 fallback (微软雅黑, 菜单中文化用)
static const ImWchar cjk_ranges[] = { 0x4E00, 0x9FFF, 0 };
// 中文字体 fallback (微软雅黑, 全量 CJK 字库, 菜单中文化用)
if (GetFileAttributesA("C:\\Windows\\Fonts\\msyh.ttc") != INVALID_FILE_ATTRIBUTES)
{
ImFontConfig cjk_config;
cjk_config.MergeMode = true;
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\msyh.ttc", 13.f, &cjk_config, io.Fonts->GetGlyphRangesChineseSimplifiedCommon());
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\msyh.ttc", 13.f, &cjk_config, io.Fonts->GetGlyphRangesChineseFull());
}
// Load Icon
@ -81,7 +78,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
ImFontConfig cjk_icon_config;
cjk_icon_config.MergeMode = true;
cjk_icon_config.GlyphOffset.y = 2.f;
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\msyh.ttc", 16.f, &cjk_icon_config, io.Fonts->GetGlyphRangesChineseSimplifiedCommon());
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\msyh.ttc", 16.f, &cjk_icon_config, io.Fonts->GetGlyphRangesChineseFull());
}
io.Fonts->Build();