𝗦𝗥𝗖 𝗭𝗢𝗡𝗘 𓆈
الذهاب إلى القناة على Telegram
576
المشتركون
+524 ساعات
+2157 أيام
+38030 أيام
أرشيف المشاركات
582
#define offset_GetWeaponOnHand11 (uintptr_t) Il2CppGetMethodOffset(OBFUSCATE("Assembly-CSharp.dll"), OBFUSCATE("COW.GamePlay"), OBFUSCATE("Player"), OBFUSCATE("GetWeaponOnHand"), 0)
static void *GetWeaponOnHand11(void *localPlayer) {
if (!localPlayer) return nullptr;
return ((void *(*)(void *))(offset_GetWeaponOnHand11))(localPlayer);
}
#define offset_StopFire1 (uintptr_t) Il2CppGetMethodOffset(OBFUSCATE("Assembly-CSharp.dll"), OBFUSCATE("COW.GamePlay"), OBFUSCATE("HBIBDMMOOOK"), OBFUSCATE("NFFJEBKJCAK"), 0)
static void StopFire1(void *weapon_instance) {
if (!weapon_instance) return;
((void (*)(void *))(offset_StopFire1))(weapon_instance);
}
#define offset_StartFiringer1 (uintptr_t) Il2CppGetMethodOffset(OBFUSCATE("Assembly-CSharp.dll"), OBFUSCATE("COW.GamePlay"), OBFUSCATE("HBIBDMMOOOK"), OBFUSCATE("ALJMFCJMDCF"), 0)
static void StartFiring1(void *weapon_instance) {
if (!weapon_instance) return;
((void (*)(void *))(offset_StartFiringer1))(weapon_instance);
}
void* GetEnemyThroughWall(void* match, void* localPlayer) {
if (!match !localPlayer !Startgs) return nullptr;
float shortestDistance = 99999.0f;
void* closestEnemy = nullptr;
auto players = *(MyDictionary**)((uintptr_t)match + ListPlayer);
if (!players || !players->entries) return nullptr;
auto entries = players->entries;
Vector3 camPos = CameraMain(localPlayer);
for (int u = 0; u < players->count; u++) {
DictionaryEntry& entry = entries->vector[u];
if (entry.hashCode < 0) continue;
void* Player = entry.value;
if (!Player || Player == localPlayer) continue;
if (!get_isLocalTeam(Player)
&& !get_IsDieing(Player)
&& get_MaxHP(Player) > 0
&& !get_God(Player)) {
Vector3 PlayerPos = GetHeadPosition(Player);
float distance = Vector3::Distance(camPos, PlayerPos);
if (distance > Aimdis) continue;
Vector3 targetDir = Vector3::Normalized(PlayerPos - camPos);
float angle = Vector3::Angle(targetDir, GetForward(Component_GetTransform(Camera_main()))) * 100.0f;
if (angle <= AimLockFov && angle < shortestDistance) {
if (!AimLockThroughWall && !IsVisible(Player)) continue;
shortestDistance = angle;
closestEnemy = Player;
}
}
}
return closestEnemy;
}
void AimLockLogic(void* localPlayer, void* match) {
if (!AimLock || !localPlayer) return;
void* target = nullptr;
if (AimLockThroughWall) {
target = GetEnemyThroughWall(match, localPlayer);
} else {
target = EnemyVisible(match);
}
if (target) {
LockedEnemy = target;
LockedEnemyTime = (float)ImGui::GetTime();
} else {
float now = (float)ImGui::GetTime();
if (LockedEnemy && (now - LockedEnemyTime) < LOCK_MEMORY_TIME) {
if (LockedEnemy && get_MaxHP(LockedEnemy) > 0 && !get_IsDieing(LockedEnemy)) {
target = LockedEnemy;
} else {
LockedEnemy = nullptr;
}
}
}
if (!target) return;
Vector3 enemyPos = GetHeadPosition(target);
enemyPos.y += 0.08f;
Vector3 camPos = CameraMain(localPlayer);
Quaternion targetRot = GetRotationToLocation(enemyPos, AimLockSpeed, camPos);
set_aim(localPlayer, targetRot);
}
void CustomFireRateLogic(void* localPlayer, void* lockedEnemy) {
if (!CustomFireRate !localPlayer !lockedEnemy) return;
void* WeaponHand = GetWeaponOnHand11(localPlayer);
if (!WeaponHand) return;
if (!AimLockThroughWall) {
if (!IsVisible(lockedEnemy)) return;
}
float now = (float)ImGui::GetTime();
float interval = FireRateMs / 1000.0f;
if (now - lastFireTime < interval) return;
lastFireTime = now;
int burst = (int)ShotsPerBurst;
for (int i = 0; i < burst; i++) {
StartFiring1(WeaponHand);
StopFire1(WeaponHand);
}
}
//lateupdate
CustomFireRateLogic(localPlayer, lockedEnemy);