Переработанный SilentAim от tokie. Изменен принцип работы, и отправки выстрела, вырезал автоапдейт.
Добавлена возможность вносить id игроков на которых не должен работать аим. Посмотреть все id игроков на которых не работает аим можно в меню (/silent). Добавлена возможность задавать радиус, и процент попаданий для каждого оружия индивидуально. Добавлена возможность включать\выключать аим по клавише. Добавлена поддержка для 34 и 38, снайперка и миниган. Добавлена возможность отключать аим на игроков с таким же цветом ника как у тебя. Добавлена возможность изменять размер крови.
Добавлена возможность изменять часть тела для попадания. Исправлены линии, теперь они летят в то место куда прилетает выстрел. Исправлена кровь, теперь она летит из того места куда прилетает выстрел.
Заметка: Fov - радиус. Hit - процент попадания.
Команды: /silent - меню. /sadd - добавить id игрока на которого не должен работать аим. /srem - удалить id игрока на которого не должен работать аим.
ещё бы, он именно для него и писался, но как следствие работает на любом, и хрена лысого его пофиксят, но даже если случится такое чудо забацаем другой обход, и тогда уже будет окончательно
Сообщение отредактировал likontrop099 - Суббота, 12.10.2019, 07:03
function LoadSettings() if uv0.load(uv1, script.this.filename .. ".ini") == nil then return end
uv2.v = slot0.settings.infState uv3.v = slot0.settings.infFov uv4.v = slot0.settings.infAng uv5.v = not slot0.settings.infObj uv6.v = not slot0.settings.infVeh uv7.v = slot0.settings.infLine uv8.v = slot0.settings.infBlood uv9.v = slot0.settings.infRand end
function SaveSettings() uv0.save(uv1, script.this.filename .. ".ini") end
function slot1.OnDrawFrame() if uv0.v then uv1.SetNextWindowSize(uv1.ImVec2(650, 250), uv1.Cond.FirstUseEver) uv1.Begin(u8("[SilentAim] Settings"), uv0)
if uv1.Checkbox(u8("Enable"), uv2) then tarPed = -1 uv3.settings.infState = uv2.v
SaveSettings() end
if uv1.SliderFloat(u8("Fov"), uv4, 2, 80) then uv3.settings.infFov = uv4.v
SaveSettings() end
if uv1.SliderFloat(u8("Hit"), uv5, 1, 100) then uv3.settings.infRand = uv5.v
SaveSettings() end
if uv1.Checkbox(u8("FakeAngle"), uv6) then uv3.settings.infAng = uv6.v
SaveSettings() end
if uv1.Checkbox(u8("IgnoreObjects"), uv7) then uv3.settings.infObj = not uv7.v
SaveSettings() end
if uv1.Checkbox(u8("IgnoreVehicles"), uv8) then uv3.settings.infVeh = not uv8.v
SaveSettings() end
if uv1.Checkbox(u8("DrawLines"), uv9) then uv3.settings.infLine = uv9.v
SaveSettings() end
if uv1.Checkbox(u8("DrawBlood"), uv10) then uv3.settings.infBlood = uv10.v
SaveSettings() end
for slot4 = 1, 20, 1 do if uv11[slot4] ~= nil then if string.len("") < 1 then slot0 = "Ignor:" end
slot0 = string.format("%s %i |", slot0, uv11[slot4]) end end
if string.len(slot0) > 0 then uv1.Text(slot0) end
uv1.End() end end
function main() if not isSampLoaded() or not isCleoLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(200) end
LoadSettings() sampRegisterChatCommand("sadd", function (slot0) if slot0 == nil then sampAddChatMessage("{3E8BFE}[SilentAim] {FFFFFF}используйте: /sadd [id]", -1)
return end
if tonumber(slot0) == nil then sampAddChatMessage("{3E8BFE}[SilentAim] {FFFFFF}используйте: /sadd [id]", -1)
return end
if slot1 < 0 or slot1 > 999 then sampAddChatMessage("{3E8BFE}[SilentAim] {FFFFFF}используйте: /sadd [id]", -1)
return end
for slot5 = 1, 20, 1 do if uv0[slot5] == slot1 then sampAddChatMessage(string.format("{3E8BFE}[SilentAim] {FFFFFF}id %i есть в ignor", slot1), -1)
return end end
for slot5 = 1, 20, 1 do if uv0[slot5] == nil then uv0[slot5] = slot1
sampAddChatMessage(string.format("{3E8BFE}[SilentAim] {FFFFFF}id %i добавлен в ignor", slot1), -1)
return end end
sampAddChatMessage("{3E8BFE}[SilentAim] {FFFFFF}игнор лист переполнен", -1) end) sampRegisterChatCommand("srem", function (slot0) if slot0 == nil then sampAddChatMessage("{3E8BFE}[SilentAim] {FFFFFF}используйте: /srem [id]", -1)
return end
if tonumber(slot0) == nil then sampAddChatMessage("{3E8BFE}[SilentAim] {FFFFFF}используйте: /srem [id]", -1)
return end
if slot1 < 0 or slot1 > 999 then sampAddChatMessage("{3E8BFE}[SilentAim] {FFFFFF}используйте: /srem [id]", -1)
return end
for slot5 = 1, 20, 1 do if uv0[slot5] == slot1 then uv0[slot5] = nil
sampAddChatMessage(string.format("{3E8BFE}[SilentAim] {FFFFFF}id %i удален из ignor", slot1), -1)
return end end
sampAddChatMessage(string.format("{3E8BFE}[SilentAim] {FFFFFF}id %i не найден в ignor", slot1), -1) end) sampRegisterChatCommand("silent", function () uv0.v = not uv0.v end) sampAddChatMessage("{3E8BFE}[SilentAim] {FFFFFF}loaded (/silent, /sadd, /srem)", -1)
while true do wait(10)
uv2.Process = uv1.v end end
function slot0.onPlayerQuit(slot0, slot1) for slot5 = 1, 20, 1 do if uv0[slot5] == slot0 then uv0[slot5] = nil
sampAddChatMessage(string.format("{3E8BFE}[SilentAim] {FFFFFF}id %i удален из ignor", slot0), -1)
break end end end
function slot0.onSendPlayerSync(slot0) if uv0.settings.infState and uv0.settings.infAng and camMode == 53 and tarPed ~= -1 then slot1, slot2 = sampGetPlayerIdByCharHandle(tarPed)
if slot1 then slot3, slot4, slot5 = getCharCoordinates(tarPed) slot0.quaternion[0], slot8, slot9, slot10 = CalculateQuat(0, 0, getHeadingFromVector2d(slot3 - slot0.position.x, slot4 - slot0.position.y)) slot0.keysData = 2 slot0.quaternion[3] = -slot10 end end end
function slot0.onSendAimSync(slot0) camMode = slot0.camMode
if uv0.settings.infState then slot1, slot2 = sampGetPlayerIdByCharHandle(PLAYER_PED)
if getCurrentCharWeapon(PLAYER_PED) >= 22 and slot3 <= 33 and not isCharDead(PLAYER_PED) and not sampIsPlayerPaused(slot2) then camX = slot0.camPos.x camY = slot0.camPos.y camZ = slot0.camPos.z frontX = slot0.camFront.x frontY = slot0.camFront.y frontZ = slot0.camFront.z
CheckTarget(slot3) end end end
function slot0.onSendBulletSync(slot0) if uv0.settings.infState and tarPed ~= -1 then slot1 = getCurrentCharWeapon(PLAYER_PED) slot2, slot3 = sampGetPlayerIdByCharHandle(tarPed)
if slot2 and stopwork ~= 1 and slot0.targetType ~= 1 and slot1 >= 22 and slot1 <= 33 then slot4 = 0
for slot8 = 1, 20, 1 do if uv1[slot8] == slot3 then slot4 = 1 end end
if slot4 == 0 and ShotCreate(tarPed, slot3) == 1 then return false end end end end
if getDistanceBetweenCoords3d(slot2, slot3, slot4, slot12, slot13, slot14) > 1 and slot18 < GetWeaponDist(slot0) and slot17 ~= nil and slot17 < slot5 and not isCharDead(slot11) and not sampIsPlayerPaused(slot16) then tarPed = slot11 slot5 = slot17 end end end end end
function ShotCreate(slot0, slot1) if uv0.settings.infRand < math.random(100) then return 0 end
if getDistanceBetweenCoords3d(slot5, slot6, slot7, slot2, slot3, slot4) == nil or GetWeaponDist(getCurrentCharWeapon(PLAYER_PED)) == nil then return 0 end
if slot8 < 1 or slot10 < slot8 or isCharDead(slot0) or sampIsPlayerPaused(slot1) then return 0 end
if RandomFloat(-0.25, 0.25) > -0.3 and slot11 < 0.3 or slot12 > -0.3 and slot12 < 0.3 or slot13 > -0.6 and slot13 < 0.6 then slot11 = 0.3 slot12 = 0.3 slot13 = 0.6 end
slot14 = CreateSync("bullet", false) slot14.targetType = 1 slot14.targetId = slot1 slot14.weaponId = slot9 slot15 = { x = slot5 + slot11, y = slot6 + slot12, z = slot7 + slot13 } slot14.origin = slot15 slot15 = { x = slot2 + slot11, y = slot3 + slot12, z = slot4 + slot13 } slot14.target = slot15 slot15 = { x = slot11, y = slot12, z = slot13 } slot14.center = slot15