Начинающий
- Статус
- Онлайн
- Регистрация
- 26 Авг 2021
- Сообщения
- 99
- Реакции
- 9
эзо решил сделать приколы с речарджем даблтапа, и ограничил чок в 14 тиков
вот два скрипта, первый - изменяет чок (максимум 15 тиков, иначе скит начинает косоёбить)
второй - убирает приколы, по типу запрета речарджа в скопе(??????) и запрет речарджа при дистанции(sqr) (14400)(??????????????)
также можно убрать проверку на can_shoot(выглядит странно)
потыкайте там
вот два скрипта, первый - изменяет чок (максимум 15 тиков, иначе скит начинает косоёбить)
code_language.lua:
local ffi = require "ffi";
local tickbase_slider = ui.new_slider("RAGE", "Other", "Tickbase limit", 9, 32, 16)
local function update_tickbase()
if not ui.get(master) then return end
local limit = ui.get(tickbase_slider)
local ptr = ffi.cast("unsigned char*", 0x433AC21C)
ptr[0] = 0x3D -- cmp eax, imm32
ptr[1] = limit - 1 -- value
ptr[2] = 0x00
ptr[3] = 0x00
ptr[4] = 0x00
ptr[5] = 0x90 -- nop
local ptr = ffi.cast("unsigned char*", 0x433AC245)
ptr[0] = 0x3D -- cmp eax, imm32
ptr[1] = limit -- value
ptr[2] = 0x00
ptr[3] = 0x00
ptr[4] = 0x00
ptr[5] = 0x90 -- nop
end
ui.set_callback(tickbase_slider, update_tickbase)
второй - убирает приколы, по типу запрета речарджа в скопе(??????) и запрет речарджа при дистанции(sqr) (14400)(??????????????)
также можно убрать проверку на can_shoot(выглядит странно)
потыкайте там
code_language.lua:
local ffi = require("ffi")
local patches = {
{
name = "Bypass Scope Restriction",
addr = 0x433ABFFE,
size = 6,
bytes = {0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
},
{
name = "Bypass Distance Check",
addr = 0x433AC167,
size = 6,
bytes = {0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
},
{
name = "Bypass Fire Rate Check",
addr = 0x433AC17C,
size = 6,
bytes = {0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
},
{
name = "Bypass Ammo Check",
addr = 0x433AC222,
size = 2,
bytes = {0x90, 0x90}
},
}
local original_bytes = {}
for _, patch in ipairs(patches) do
local ptr = ffi.cast("char*", patch.addr)
local buf = ffi.new("char[?]", patch.size)
ffi.copy(buf, ptr, patch.size)
original_bytes[patch.addr] = buf
end
-- Функции
local function apply_patch(patch)
local ptr = ffi.cast("char*", patch.addr)
local buf = ffi.new("char[?]", patch.size)
for i = 1, patch.size do
buf[i-1] = patch.bytes[i]
end
ffi.copy(ptr, buf, patch.size)
end
local function restore_patch(patch)
local orig = original_bytes[patch.addr]
if orig then
local ptr = ffi.cast("char*", patch.addr)
ffi.copy(ptr, orig, patch.size)
end
end
local master = ui.new_checkbox("RAGE", "Other", "Double Tap Force Recharge")
local checkboxes = {}
for _, patch in ipairs(patches) do
checkboxes[patch.addr] = ui.new_checkbox("RAGE", "Other", patch.name)
ui.set_callback(checkboxes[patch.addr], function()
if ui.get(master) and ui.get(checkboxes[patch.addr]) then
apply_patch(patch)
else
restore_patch(patch)
end
end)
end
ui.set_callback(master, function()
local state = ui.get(master)
for _, patch in ipairs(patches) do
if state and ui.get(checkboxes[patch.addr]) then
apply_patch(patch)
else
restore_patch(patch)
end
end
end)