делал этот ваш супертосс модный заебался устал держите --https://github.com/perilouswithadollarsign/cstrike15_src/blob/f82112a2388b841d72cb62ca48ab1846dfcc11c8/game/shared/cstrike15/weapon_basecsgrenade.cpp#L555C2-L663C2 --straight throw local switch = false local _switch = ui.find("Aimbot", "Anti\x20Aim", "Angles"):switch(string.format("\a%s%s", "B6B666FF", "Straight\x20Throw"))--пробел хуйня боже байты _switch:set_callback(function (ref) switch = ref:get() end, true) local suuuuupper_tosss = {}--... suuuuupper_tosss.active = false suuuuupper_tosss.check_active = function() suuuuupper_tosss.active = false if switch ~=true then return end local local_player = entity.get_local_player() if local_player == nil then return end if local_player:is_alive() == false then return end if local_player.m_MoveType == 8 then return end local weapon = local_player:get_player_weapon() if weapon == nil then return end local weapon_info = weapon:get_weapon_info() if weapon_info == nil then return end if weapon_info.weapon_type ~= 9 then return end suuuuupper_tosss.active = true end ffi.cdef([[ typedef struct { float x; float y; float z; } vector_t; ]]) suuuuupper_tosss.ang_vec = function(ang) --???? 3 часа ночи codenz? return vector(math.cos(ang.x * math.pi / 180) * math.cos(ang.y * math.pi / 180), math.cos(ang.x * math.pi / 180) * math.sin(ang.y * math.pi / 180), -math.sin(ang.x * math.pi / 180)) end suuuuupper_tosss.last_angles = vector(0, 0, 0) suuuuupper_tosss.target_angles = vector(0, 0, 0) suuuuupper_tosss.on_pre_render = function() suuuuupper_tosss.check_active() suuuuupper_tosss.last_angles = render.camera_angles() if suuuuupper_tosss.active == true and common.is_in_thirdperson() == false then render.camera_angles(suuuuupper_tosss.target_angles) end end suuuuupper_tosss.on_override_view = function(zv) if suuuuupper_tosss.active == true then zv.view = suuuuupper_tosss.last_angles render.camera_angles(suuuuupper_tosss.last_angles) end end suuuuupper_tosss.on_createmove = function(cmd) if suuuuupper_tosss.active ~= true then return end local local_player = entity.get_local_player() if local_player == nil then return end if local_player:is_alive() == false then return end local weapon = local_player:get_player_weapon() if weapon == nil then return end local weapon_info = weapon:get_weapon_info() if weapon_info == nil then return end local lp_addr = ffi.cast("uintptr_t", local_player[0]) local ang_throw = vector(cmd.view_angles.x, cmd.view_angles.y, 0) ang_throw.x = ang_throw.x - (90 - math.abs(ang_throw.x)) * 10 / 90 ang_throw = suuuuupper_tosss.ang_vec(ang_throw) local throw_strength = math.clamp(weapon.m_flThrowStrength, 0, 1) local fl_velocity = math.clamp(weapon_info.throw_velocity * 0.9, 15, 750) fl_velocity = fl_velocity * (throw_strength * 0.7 + 0.3) local localplayer_velocity = ffi.cast("vector_t*", lp_addr + 0x94)[0] --PPPPPPP100000000000 ABSVELOCITY localplayer_velocity = vector(localplayer_velocity.x, localplayer_velocity.y, localplayer_velocity.z) local vec_throw = (ang_throw * fl_velocity + localplayer_velocity * 1.45) vec_throw = vec_throw:angles() local yaw_difference = cmd.view_angles.y - vec_throw.y while yaw_difference > 180 do yaw_difference = yaw_difference - 360 end while yaw_difference < -180 do yaw_difference = yaw_difference + 360 end local pitch_difference = cmd.view_angles.x - vec_throw.x - 10 while pitch_difference > 90 do -- вронг? вронг pitch_difference = pitch_difference - 45 end while pitch_difference < -90 do pitch_difference = pitch_difference + 45 end suuuuupper_tosss.target_angles.y = cmd.view_angles.y + yaw_difference cmd.view_angles.y = cmd.view_angles.y + yaw_difference suuuuupper_tosss.target_angles.x = math.clamp(cmd.view_angles.x + pitch_difference, -89, 89) cmd.view_angles.x = math.clamp(cmd.view_angles.x + pitch_difference, -89, 89) end events.pre_render:set(suuuuupper_tosss.on_pre_render) events.override_view:set(suuuuupper_tosss.on_override_view) events.createmove:set(suuuuupper_tosss.on_createmove)