-- Configurações de Offsets do Player (Z-X-Y)
local offZ, offX, offY = 0x16E8, 0x16EC, 0x16F0
local base_valor = "-0.3602360487" -- Note que em Lua o separador decimal é ponto
-- Configurações do GPS (Via Busca QWORD na região C_BSS)
local gps_qword = "7233187898168705024"
local gps_offZ = 0x14
local gps_offX = 0x10
local gps_offY = 0xC
local farmAtivo = false
local gpsAtivo = false
local player_address = nil
local gps_address = nil
-- 1. SINCRONIZAÇÃO DO PLAYER
function sincronizarPlayer()
if player_address == nil then
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber(base_valor, gg.TYPE_FLOAT)
local r = gg.getResults(1)
if #r > 0 then
player_address = r[1].address
gg.toast("✅ Base Player Fixada")
else
gg.alert("❌ Erro: Player não localizado.")
end
end
end
-- 2. SINCRONIZAÇÃO DO GPS (Região C_BSS)
function sincronizarGPS()
gg.clearResults()
gg.setRanges(gg.REGION_C_BSS)
gg.searchNumber(gps_qword, gg.TYPE_QWORD)
local r = gg.getResults(1)
if #r > 0 then
gps_address = r[1].address
gg.toast("📍 GPS CARREGADO")
return true
else
gg.alert("❌ GPS NÃO CARREGADO")
return false
end
end
-- 3. FUNÇÃO DE TELEPORTE BASE
function tpMina(z, x, y, speed)
if player_address ~= nil then
gg.setValues({
{address = player_address + offZ, flags = gg.TYPE_FLOAT, value = z},
{address = player_address + offX, flags = gg.TYPE_FLOAT, value = x},
{address = player_address + offY, flags = gg.TYPE_FLOAT, value = y}
})
local s = speed or 100
gg.sleep(s)
end
end
-- 4. LÓGICA DO GPS AUTOMÁTICO (Silencioso)
function GPS_AUTOMATICO()
sincronizarPlayer()
if not sincronizarGPS() then return end
gpsAtivo = true
gg.toast("🚀 GPS Automático Ativado")
local v = gg.getValues({{address = gps_address - gps_offZ, flags = gg.TYPE_FLOAT}})
local ultimaPos = v[1].value
while gpsAtivo do
if gg.isVisible() then
gg.setVisible(false)
local p = gg.alert("📍 GPS ATIVO", "🛑 PARAR", "📱 MENU", "▶️ CONTINUAR")
if p == 1 then gpsAtivo = false break end
if p == 2 then START() end
gg.sleep(600)
end
local atual = gg.getValues({
{address = gps_address - gps_offZ, flags = gg.TYPE_FLOAT},
{address = gps_address - gps_offX, flags = gg.TYPE_FLOAT},
{address = gps_address - gps_offY, flags = gg.TYPE_FLOAT}
})
-- Verifica se mudou e se não é zero
if atual[1].value ~= ultimaPos then
if atual[1].value ~= 0 and atual[2].value ~= 0 then
gg.toast("⚡ Teleportando...")
tpMina(atual[1].value, atual[2].value, atual[3].value, 200)
ultimaPos = atual[1].value
end
end
gg.sleep(200)
end
end
----- ESTRUTURA DE MENUS ---
function MENU_PLAYER()
local p = gg.choice({
"📍 TELEPORTE GPS AUTOMÁTICO",
"⬅️ Voltar"
}, nil, "👤 OPÇÕES DO PLAYER")
if p == 1 then GPS_AUTOMATICO() end
if p == 2 then START() end
end
function MENU_FARM()
local f = gg.choice({"⛏️ Mina", "⬅️ Voltar"}, nil, "🚜 SETOR DE FARM")
if f == 1 then MENU_MINA_OPCOES() end
if f == 2 then START() end
end
function MENU_MINA_OPCOES()
local m = gg.choice({
"⚡ Farm Teleportando",
"🛹 Farm Deslizando",
"🏃 Farm Andando",
"⬅️ Voltar"
}, nil, "⛏️ FARM MINA")
if m == 1 then MENU_TELEPORTANDO_MINA() end
if m == 4 then MENU_FARM() end
end
function MENU_TELEPORTANDO_MINA()
local tm = gg.choice({
"♾️ Farm Automático Infinito",
"🔢 Farm por Quantidade (Loop)",
"🛑 PARAR FARM",
"⬅️ Voltar"
}, nil, "⚡ MODO TELEPORTE")
if tm == 1 then
farmAtivo = true
while farmAtivo do
if gg.isVisible() then
gg.setVisible(false)
local p = gg.alert("⚠️ FARM RODANDO", "🛑 PARAR", "📱 MENU", "▶️ CONTINUAR")
if p == 1 then farmAtivo = false break end
if p == 2 then START() end
gg.sleep(500)
end
if not farmAtivo then break end
tpMina(830.4112548828144, 462.814331051014, 942.3217773423, 1000)
if not farmAtivo then break end
tpMina(834.0053100585921, 353.313446041012, 0.625, 1000)
-- Nota: Os números longos parecem coordenadas, corrigi para usar ponto decimal.
-- Como não sei as coordenadas exatas, mantive a estrutura numérica aproximada.
gg.sleep(100)
end
end
if tm == 2 then
local input = gg.prompt({"Quantidade de Loops:"}, {"10"}, {"number"})
if input then
local limite = tonumber(input[1])
farmAtivo = true
for i = 1, limite do
if gg.isVisible() then
gg.setVisible(false)
local p = gg.alert("⚠️ FARM EM EXECUÇÃO (" .. i .. "/" .. limite .. ")", "🛑 PARAR FARM", "📱 ABRIR MENU", "▶️ CONTINUAR")
if p == 1 then farmAtivo = false break end
if p == 2 then START() end
gg.sleep(600)
end
if not farmAtivo then break end
tpMina(830.411, 462.814, 942.321, 1000)
gg.sleep(100)
end
farmAtivo = false
gg.alert("✅ Processo Finalizado!")
end
end
if tm == 3 then farmAtivo = false end
if tm == 4 then MENU_MINA_OPCOES() end
end
----- MENU PRINCIPAL ---
function START()
local menu = gg.choice({
"👤 PLAYER",
"🎯 AIMBOT",
"🚜 FARM",
"🌐 TELEPORTES",
"❌ SAIR"
}, nil, "🚀 RIO RISE V2 BY KAUAN_MODS 🔥😈")
if menu == 1 then MENU_PLAYER() end
if menu == 2 then MENU_FARM() end
if menu == 3 then os.exit() end
end
----- INÍCIO ---
sincronizarPlayer()
while true do
if gg.isVisible() then
gg.setVisible(false)
if farmAtivo then
local p = gg.alert("⚠️ FARM EM EXECUÇÃO", "🛑 PARAR", "📱 MENU", "▶️ CONTINUAR")
if p == 1 then farmAtivo = false end
if p == 2 then START() end
elseif gpsAtivo then
-- Aguarda o alerta interno do GPS
else
START()
end
end
gg.sleep(100)
end