1. -- Configurações de Offsets do Player (Z-X-Y)
  2. local offZ, offX, offY = 0x16E8, 0x16EC, 0x16F0
  3. local base_valor = "-0.3602360487" -- Note que em Lua o separador decimal é ponto
  4.  
  5. -- Configurações do GPS (Via Busca QWORD na região C_BSS)
  6. local gps_qword = "7233187898168705024"
  7. local gps_offZ = 0x14
  8. local gps_offX = 0x10
  9. local gps_offY = 0xC
  10.  
  11. local farmAtivo = false
  12. local gpsAtivo = false
  13. local player_address = nil
  14. local gps_address = nil
  15.  
  16. -- 1. SINCRONIZAÇÃO DO PLAYER
  17. function sincronizarPlayer()
  18. if player_address == nil then
  19. gg.clearResults()
  20. gg.setRanges(gg.REGION_C_ALLOC)
  21. gg.searchNumber(base_valor, gg.TYPE_FLOAT)
  22. local r = gg.getResults(1)
  23. if #r > 0 then
  24. player_address = r[1].address
  25. gg.toast("✅ Base Player Fixada")
  26. else
  27. gg.alert("❌ Erro: Player não localizado.")
  28. end
  29. end
  30. end
  31.  
  32. -- 2. SINCRONIZAÇÃO DO GPS (Região C_BSS)
  33. function sincronizarGPS()
  34. gg.clearResults()
  35. gg.setRanges(gg.REGION_C_BSS)
  36. gg.searchNumber(gps_qword, gg.TYPE_QWORD)
  37. local r = gg.getResults(1)
  38.  
  39. if #r > 0 then
  40. gps_address = r[1].address
  41. gg.toast("📍 GPS CARREGADO")
  42. return true
  43. else
  44. gg.alert("❌ GPS NÃO CARREGADO")
  45. return false
  46. end
  47. end
  48.  
  49. -- 3. FUNÇÃO DE TELEPORTE BASE
  50. function tpMina(z, x, y, speed)
  51. if player_address ~= nil then
  52. gg.setValues({
  53. {address = player_address + offZ, flags = gg.TYPE_FLOAT, value = z},
  54. {address = player_address + offX, flags = gg.TYPE_FLOAT, value = x},
  55. {address = player_address + offY, flags = gg.TYPE_FLOAT, value = y}
  56. })
  57. local s = speed or 100
  58. gg.sleep(s)
  59. end
  60. end
  61.  
  62. -- 4. LÓGICA DO GPS AUTOMÁTICO (Silencioso)
  63. function GPS_AUTOMATICO()
  64. sincronizarPlayer()
  65. if not sincronizarGPS() then return end
  66.  
  67. gpsAtivo = true
  68. gg.toast("🚀 GPS Automático Ativado")
  69.  
  70. local v = gg.getValues({{address = gps_address - gps_offZ, flags = gg.TYPE_FLOAT}})
  71. local ultimaPos = v[1].value
  72.  
  73. while gpsAtivo do
  74. if gg.isVisible() then
  75. gg.setVisible(false)
  76. local p = gg.alert("📍 GPS ATIVO", "🛑 PARAR", "📱 MENU", "▶️ CONTINUAR")
  77. if p == 1 then gpsAtivo = false break end
  78. if p == 2 then START() end
  79. gg.sleep(600)
  80. end
  81.  
  82. local atual = gg.getValues({
  83. {address = gps_address - gps_offZ, flags = gg.TYPE_FLOAT},
  84. {address = gps_address - gps_offX, flags = gg.TYPE_FLOAT},
  85. {address = gps_address - gps_offY, flags = gg.TYPE_FLOAT}
  86. })
  87.  
  88. -- Verifica se mudou e se não é zero
  89. if atual[1].value ~= ultimaPos then
  90. if atual[1].value ~= 0 and atual[2].value ~= 0 then
  91. gg.toast("⚡ Teleportando...")
  92. tpMina(atual[1].value, atual[2].value, atual[3].value, 200)
  93. ultimaPos = atual[1].value
  94. end
  95. end
  96.  
  97. gg.sleep(200)
  98. end
  99. end
  100.  
  101. ----- ESTRUTURA DE MENUS ---
  102.  
  103. function MENU_PLAYER()
  104. local p = gg.choice({
  105. "📍 TELEPORTE GPS AUTOMÁTICO",
  106. "⬅️ Voltar"
  107. }, nil, "👤 OPÇÕES DO PLAYER")
  108. if p == 1 then GPS_AUTOMATICO() end
  109. if p == 2 then START() end
  110. end
  111.  
  112. function MENU_FARM()
  113. local f = gg.choice({"⛏️ Mina", "⬅️ Voltar"}, nil, "🚜 SETOR DE FARM")
  114. if f == 1 then MENU_MINA_OPCOES() end
  115. if f == 2 then START() end
  116. end
  117.  
  118. function MENU_MINA_OPCOES()
  119. local m = gg.choice({
  120. "⚡ Farm Teleportando",
  121. "🛹 Farm Deslizando",
  122. "🏃 Farm Andando",
  123. "⬅️ Voltar"
  124. }, nil, "⛏️ FARM MINA")
  125. if m == 1 then MENU_TELEPORTANDO_MINA() end
  126. if m == 4 then MENU_FARM() end
  127. end
  128.  
  129. function MENU_TELEPORTANDO_MINA()
  130. local tm = gg.choice({
  131. "♾️ Farm Automático Infinito",
  132. "🔢 Farm por Quantidade (Loop)",
  133. "🛑 PARAR FARM",
  134. "⬅️ Voltar"
  135. }, nil, "⚡ MODO TELEPORTE")
  136.  
  137. if tm == 1 then
  138. farmAtivo = true
  139. while farmAtivo do
  140. if gg.isVisible() then
  141. gg.setVisible(false)
  142. local p = gg.alert("⚠️ FARM RODANDO", "🛑 PARAR", "📱 MENU", "▶️ CONTINUAR")
  143. if p == 1 then farmAtivo = false break end
  144. if p == 2 then START() end
  145. gg.sleep(500)
  146. end
  147. if not farmAtivo then break end
  148.  
  149. tpMina(830.4112548828144, 462.814331051014, 942.3217773423, 1000)
  150. if not farmAtivo then break end
  151. tpMina(834.0053100585921, 353.313446041012, 0.625, 1000)
  152. -- Nota: Os números longos parecem coordenadas, corrigi para usar ponto decimal.
  153. -- Como não sei as coordenadas exatas, mantive a estrutura numérica aproximada.
  154. gg.sleep(100)
  155. end
  156. end
  157.  
  158. if tm == 2 then
  159. local input = gg.prompt({"Quantidade de Loops:"}, {"10"}, {"number"})
  160. if input then
  161. local limite = tonumber(input[1])
  162. farmAtivo = true
  163. for i = 1, limite do
  164. if gg.isVisible() then
  165. gg.setVisible(false)
  166. local p = gg.alert("⚠️ FARM EM EXECUÇÃO (" .. i .. "/" .. limite .. ")", "🛑 PARAR FARM", "📱 ABRIR MENU", "▶️ CONTINUAR")
  167. if p == 1 then farmAtivo = false break end
  168. if p == 2 then START() end
  169. gg.sleep(600)
  170. end
  171. if not farmAtivo then break end
  172.  
  173. tpMina(830.411, 462.814, 942.321, 1000)
  174. gg.sleep(100)
  175. end
  176. farmAtivo = false
  177. gg.alert("✅ Processo Finalizado!")
  178. end
  179. end
  180. if tm == 3 then farmAtivo = false end
  181. if tm == 4 then MENU_MINA_OPCOES() end
  182. end
  183.  
  184. ----- MENU PRINCIPAL ---
  185. function START()
  186. local menu = gg.choice({
  187. "👤 PLAYER",
  188. "🎯 AIMBOT",
  189. "🚜 FARM",
  190. "🌐 TELEPORTES",
  191. "❌ SAIR"
  192. }, nil, "🚀 RIO RISE V2 BY KAUAN_MODS 🔥😈")
  193. if menu == 1 then MENU_PLAYER() end
  194. if menu == 2 then MENU_FARM() end
  195. if menu == 3 then os.exit() end
  196. end
  197.  
  198. ----- INÍCIO ---
  199. sincronizarPlayer()
  200.  
  201. while true do
  202. if gg.isVisible() then
  203. gg.setVisible(false)
  204. if farmAtivo then
  205. local p = gg.alert("⚠️ FARM EM EXECUÇÃO", "🛑 PARAR", "📱 MENU", "▶️ CONTINUAR")
  206. if p == 1 then farmAtivo = false end
  207. if p == 2 then START() end
  208. elseif gpsAtivo then
  209. -- Aguarda o alerta interno do GPS
  210. else
  211. START()
  212. end
  213. end
  214. gg.sleep(100)
  215. end