Script Proxy
Script Proxy
SendPacket = sendPacket
SendPacketRaw = sendPacketRaw
SendVariant = sendVariant
GetLocal = getLocal
SleepMS = sleep
GetPlayerByNetID = getPlayerByNetID
GetWorldObject = getWorldObject
LogToConsole = logToConsole
CheckTile = checkTile
GetTile = getTile
GetInventory = getInventory
GetItemByID = getItemByID
GetPlayerList = getPlayerList
FindPath = findPath
SleepS = function(int_s)
sleep(int_s * 1000)
end
-- main vars
-- configuration
local proxy = {}
local command = {}
local user = {}
local config = {}
local PlayerList = {}
local LogSpin = {}
-- local nPlayerList = {}
local itemInfo = {}
proxy.dev = "Bahi"
proxy.name = "Bahi Proxy"
proxy.version = "v1.4"
version="v1.4"
proxy.support = "undefined"
command.var = {}
command.var.taptp = false
command.var.rfspin = false
-- checkbox vars
local rfspin = true
local reme
local qeme
-- textinput vars
local firstnum = "10"
local op = "sum"
local secondnum = "10"
function dext()
return [[
add_label_with_icon|big|``Hosting Helper |left|32|
text_scaling_string|iprogramtext
add_spacer|big|
add_checkbox|realfakespin|`2REAL``-`4FAKE`` Spin Detection|]]..realfakes..[[|
add_checkbox|gamereme|Reme Checker|]]..remeg..[[|
add_checkbox|gameqeme|Qeme Checker|]]..qemeg..[[|
add_spacer|big|
end_dialog|proxywrenchend|Close|Set|
]]
end
function calcu()
return [[
set_default_color|`7
add_label_with_icon|big|`9Calculator |left|5016|
add_spacer|small|
add_text_input|fnum|First number|]]..firstnum..[[|25|
add_text_input|opr|(sum, sub, multi, divide)|]]..op..[[|25|
add_text_input|snum|Second number|]]..secondnum..[[|25|
add_spacer|big|
end_dialog|calculatorpage|Cancel|Calculate|
]]
end
local sum = [[
add_label_with_icon|big|`9Calculator Result |big|5016|
add_spacer|small|
add_textbox|Result: `2]].. math.floor(firstnum + secondnum) ..[[||
add_spacer|big|
add_button|backtocalc|`wBack to calc page|
add_quick_exit|
]]
loginp = [[
set_default_color|`7
add_label_with_icon|big|`2[`#Bahi Proxy`2]`` Information Update|left|11816|
add_spacer|small|
add_smalltext|Jangan Di Jual Ya.|
add_smalltext|Script Mode Bahi.|
add_spacer|big|
add_label_with_icon|big|`9Updated Logs|left|32|
add_label_with_icon|small|- Added `6Auto Change `1Diamond Lock|left|482|
add_label_with_icon|small|- Added `6/x /y |left|482|
add_spacer|big|
add_url_button||`bTiktok Saya|NOFLAGS|tiktok.com/@bahigti|Anda Ingin Pergi Ke
Tiktok?|0|0|
add_spacer|small|
end_dialog|loginpend|Close||
add_quick_exit|
]]
itemInfo = {}
data = {}
ftrash = false
fdrop = false
pull = false
kick = false
ban = false
Tax = 0
function take(id)
x = 0
y = 0
sendPacket(2,"action|dialog_return\ndialog_name|extractor\ntilex|"..x.."|\
ntiley|"..y.."|\nstartIndex|0|\nextractorID|6140|\nbuttonClicked|
extractOnceObj_"..tostring(id))
end
function getItemObject()
for _,item in pairs(getWorldObject()) do
table.insert(itemInfo,"\nadd_label_with_icon_button|small|`7Name :
"..getItemByID(item.id).name.." `7Amount : [`5"..item.amount.."``]|
left|"..item.id.."|"..item.oid.."|\n")
end
end
function checkitm(id)
for _, inv in pairs(getInventory()) do
if inv.id == id then
return inv.amount
end
end
return 0
end
function Data()
Amount = 0
for _, list in pairs(data) do
Name = ""
if list.id == 7188 then
Name = "Blue Gem Lock"
Amount = Amount + list.count * 10000
elseif list.id == 1796 then
Name = "Diamond Lock"
Amount = Amount + list.count * 100
elseif list.id == 242 then
Name = "World Lock"
Amount = Amount + list.count
end
tol("Collected `9"..list.count.." "..Name)
end
data = {}
end
function colect()
tiles = {
{PX1, PY1},
{PX2, PY2}
}
for _, obj in pairs(getWorldObject()) do
for _, tiles in pairs(tiles) do
if (obj.pos.x)//32 == tiles[1] and (obj.pos.y)//32 == tiles[2] then
sendPacketRaw(false, {type=11,value=obj.oid,x=obj.pos.x,y=obj.pos.y})
table.insert(data, {id=obj.id, count=obj.amount})
end
end
end
Data()
data = {}
end
function wear(id)
pkt = {}
pkt.type = 10
pkt.value = id
sendPacketRaw(false, pkt)
end
function GetName(id)
for _, name in pairs(PlayerList) do
if name.netid == id then
return name.name
end
end
end
function multiboxChecker(boolean)
local hasil = ""
if boolean then
hasil = "1"
else
hasil = "0"
end
return hasil
end
function qemefunc(number)
if number >= 10 then
hasil = string.sub(number, -1)
else
hasil = number
end
return hasil
end
function getGame(num)
if reme and not qeme then
return "`2R : `1"..remefunc(tonumber(num))..""
elseif not reme and qeme then
return "`2Q : `1"..qemefunc(tonumber(num))..""
elseif reme and qeme then
return "`2R : "..remefunc(num).." and Q : "..qemefunc(num).."]"
else
return ""
end
end
function remefunc(number)
if number == 19 or number == 28 or number == 0 then
hasil = 0
else
num1 = math.floor(number / 10)
num2 = number % 10
hasil = string.sub(tostring(num1 + num2), -1)
end
return hasil
end
function filterspin(id)
filterLog = {}
for _,log in pairs(LogSpin) do
if log.netid == id then
table.insert(filterLog,"\nadd_label_with_icon|small|"..log.spin.."|
left|758|\n")
end
end
SendVariant({
[0] = "OnDialogRequest",
[1] = "add_label_with_icon|big|`7"..GetName(id).." Spin: |left|32|\
nadd_spacer|small|\n"..table.concat(filterLog).."\nadd_quick_exit|||\nend_dialog|
spinfilter|Close||",
},-1,200)
end
function logspin()
dialogSpin = {}
for _,spin in pairs(LogSpin) do
table.insert(dialogSpin,spin.spin)
end
SendVariant({
[0] = "OnDialogRequest",
[1] = "add_label_with_icon|big|Log Spin|left|758|\nadd_spacer|small|\
nadd_smalltext|Click The Wheel Button For Filter Player You Need|\
n"..table.concat(dialogSpin).."\nadd_quick_exit|||\nend_dialog|world_spin|Close||",
},-1,200)
end
function ovlay(str)
var = {}
var[0] = "OnTextOverlay"
var[1] = "[`#Bahi Proxy``] " .. str
sendVariant(var)
end
function tol(txt)
logToConsole("`o[`#Bahi Proxy`o] `6"..txt)
end
AddHook("onTextPacket", "packet",
function(type,packet)
-- checkboxs
if packet:find("realfakespin|1") then
rfspin = true
tol("`2REAL``-`4FAKE`` spin detection `2enabled.")
else if packet:find("realfakespin|0") then
rfspin = false
end
end
if packet:find("gamereme|1") then
reme = true
tol("Reme checker `2enabled")
else if packet:find("gamereme|0") then
reme = false
end
end
if packet:find("gameqeme|1") then
qeme = true
tol("Qeme checker `2enabled")
else if packet:find("gameqeme|0") then
qeme = false
end
end
if packet:find("dialog_name|world_spin\nbuttonClicked|(%d+)") then
netid = packet:match("buttonClicked|(%d+)")
filterspin(tonumber(netid))
end
if packet:find("buttonClicked|proxylogspin") then
logspin()
return true
end
if packet:find("buttonClicked|proxywrenchm") then
realfakes = multiboxChecker(rfspin)
remeg = multiboxChecker(reme)
qemeg = multiboxChecker(qeme)
SendVariant({
[0] = "OnDialogRequest",
[1] = dext(),
}, -1, 100)
end
-- /slog command
if packet:find("/slog") then
logspin()
return true
end
if packet:find("/magnet") then
getItemObject()
var = {}
var[0] = "OnDialogRequest"
var[1] = string.format("add_label_with_icon|big|Proxy By QoD Proxy |left|
6140|\nadd_spacer|small|\nadd_smalltext|`7To Extract U Must Click The Item `4Note
Before Take u Must Have Extract O Snap|\n"..table.concat(itemInfo).."\
nadd_quick_exit|||\nend_dialog|scanbilek|Thanks!||")
sendVariant(var,-1,100)
end
if packet:find("dialog_name|scanbilek\nbuttonClicked|(%d+)") then
x=0
y=0
dasarleakers = packet:match("dialog_name|scanbilek\nbuttonClicked|(%d+)")
sendPacket(2,"action|dialog_return\ndialog_name|extractor\ntilex|"..x.."|\
ntiley|"..y.."|\nstartIndex|0|\nextractorID|6140|\nbuttonClicked|
extractOnceObj_"..dasarleakers)
ovlay("Cip Gw Sepuh World:SaveBahi")
end
if packet:find("action|friends") then
var = {}
var[0] = "OnDialogRequest"
var[1] = wrenchop
sendVariant (var);
logToConsole("Wrench Option")
return true
end
if packet:find("/proxy") then
var = {}
var[0] = "OnDialogRequest"
var[1] = proxy
sendVariant (var);
logToConsole("Fiture I Will Add")
return true
end
if packet:find("/pos1") or packet:find("/Pos1")then
PX1 = getLocal().pos.x//32
PY1 = getLocal().pos.y//32
ovlay("Succes Set ("..PX1..", "..PY1..")")
return true
end
if packet:find("/w2") or packet:find("/W2")then
bgl =math.floor(drop/10000)
drop = drop - bgl*10000
dl = math.floor(drop/100)
wl = drop % 100
sendPacketRaw(false, { type = 0, x = (PX2) * 32, y = (PY2) * 32, state = 32 })
if checkitm(242) < wl then
wear(1796)
end
if checkitm(1796) < dl then
wear(7188)
end
if bgl > 0 then
DropItem(7188, bgl)
end
if dl > 0 then
DropItem(1796, dl)
end
if wl > 0 then
DropItem(242, wl)
end
hasil = (bgl ~= 0 and bgl.." `eBlue Gem Lock`0" or "").." "..(dl ~= 0 and dl.."
`1Diamond Lock`0" or "").." "..(wl ~= 0 and wl.." `9World Lock`0" or "")
tol("`9Amount Lock : "..Amount)
tol("`9Tax : "..Tax.."%")
tol("`9Total drop : `0"..hasil.." `4Tax Reset")
return true
end
if packet:find("/daw") then
DropItem(7188, checkitm(7188))
DropItem(1796, checkitm(1796))
DropItem(242, checkitm(242))
return true
end
if packet:find("action|dialog_return\ndialog_name|wh\nbuttonClicked|wpull") or
packet:find("/fpull") then
if pull == false then
pull = true
kick = false
ban = false
ovlay("Pull Mode Enable")
else
pull = false
kick = false
ban = false
ovlay("Pull Mode Disable")
return true
end
end
if packet:find("action|dialog_return\ndialog_name|wh\nbuttonClicked|wban") or
packet:find("/fkick") then
if ban == false then
ban = true
pull = false
kick = false
ovlay("Ban Mode Enable")
else
ban = false
pull = false
kick = false
ovlay("Ban Mode Disable")
return true
end
end
if packet:find("action|dialog_return\ndialog_name|wh\nbuttonClicked|wkick") or
packet:find("/fban") then
if kick == false then
kick = true
ban = false
pull = false
ovlay("Kick Mode Enable")
else
kick = false
ban = false
pull = false
ovlay("Kick Mode Disable")
return true
end
end
if packet:find("action|dialog_return\ndialog_name|wh\nbuttonClicked|wdef") or
packet:find("/wn") then
kick = false
ban = false
pull = false
ovlay("Default")
return false
end
-- Execute Wrench Mode
if packet:find("action|wrench\n|netid|(%d+)") then
id = packet:match("action|wrench\n|netid|(%d+)")
if pull == true then
sendPacket(2,"action|wrench\n|netid|"..id)
sendPacket(2,"action|dialog_return\ndialog_name|popup\nnetID|"..id.."|\
nnetID|"..id.."\nbuttonClicked|pull")
for _, player in pairs(GetPlayerlist()) do
if player.netid == tonumber(id) then
ovlay("Succesfully `5Pulls `0"..player.name.."..")
end
end
return true
end
end
if packet:find("action|wrench\n|netid|(%d+)") then
id = packet:match("action|wrench\n|netid|(%d+)")
if kick == true then
sendPacket(2,"action|wrench\n|netid|"..id)
sendPacket(2,"action|dialog_return\ndialog_name|popup\nnetID|"..id.."|\
nnetID|"..id.."\nbuttonClicked|kick")
for _, player in pairs(GetPlayerlist()) do
if player.netid == tonumber(id) then
ovlay("Succesfully `4Kicks `0"..player.name.."..")
end
end
return true
end
end
if packet:find("action|wrench\n|netid|(%d+)") then
id = packet:match("action|wrench\n|netid|(%d+)")
if ban == true then
sendPacket(2,"action|wrench\n|netid|"..id)
sendPacket(2,"action|dialog_return\ndialog_name|popup\nnetID|"..id.."|\
nnetID|"..id.."\nbuttonClicked|worldban")
for _, player in pairs(GetPlayerlist()) do
if player.netid == tonumber(id) then
ovlay("Succesfully `4World Ban `0"..player.name.."..")
end
end
return true
end
end
if packet:find("/t") then
if command.var.taptp == true then
command.var.taptp = false
tol("Tap tp `4Hidup.")
else
command.var.taptp = true
tol("Tap tp `2Mati.")
end
return true
end
-- calculator menu
-- calculator helped by bahi
if packet:find("dialog_name|calculatorpage") then
firstnum = tonumber(packet:match("fnum|(%d+)"))
op = tostring(packet:match("opr|(%w+)"))
secondnum = tonumber(packet:match("snum|(%d+)"))
if op == "sum" then
sendVariant({
[0] = "OnDialogRequest",
[1] = sum,
},-1)
else if op == "sub" then
local sub = [[
add_label_with_icon|big|`9Calculator Result |big|5016|
add_spacer|small|
add_textbox|Result: `2]].. math.floor(firstnum - secondnum) ..[[||
add_spacer|big|
add_button|backtocalc|`wBack to calc page|
add_quick_exit|
]]
sendVariant({
[0] = "OnDialogRequest",
[1] = sub,
},-1)
else if op == "multi" then
multi = [[
add_label_with_icon|big|`9Calculator Result |big|5016|
add_spacer|small|
add_textbox|Result: `2]].. math.floor(firstnum * secondnum) ..[[||
add_spacer|big|
add_button|backtocalc|`wBack to calc page|
add_quick_exit|
]]
sendVariant({
[0] = "OnDialogRequest",
[1] = multi,
},-1)
else if op == "divide" then
divide = [[
add_label_with_icon|big|`9Calculator Result |big|5016|
add_spacer|small|
add_textbox|Result: `2]].. math.floor(firstnum / secondnum) ..[[||
add_spacer|big|
add_button|backtocalc|`wBack to calc page|
add_quick_exit|
]]
sendVariant({
[0] = "OnDialogRequest",
[1] = divide,
},-1)
else
errorpage = [[
add_label_with_icon|big|`9Calculator Result |left|5016|
add_spacer|small|
add_textbox|`4[ERROR]||
add_spacer|big|
add_button|backtocalc|`wBack to calc page|
add_quick_exit|
]]
sendVariant({
[0] = "OnDialogRequest",
[1] = errorpage,
},-1)
end
end
end
end
return true
end
if packet:find("buttonClicked|backtocalc") then
sendVariant({
[0] = "OnDialogRequest",
[1] = calcu(),
},-1)
return true
end
if packet:find("/cal") then
sendVariant({
[0] = "OnDialogRequest",
[1] = calcu(),
},-1,100)
return true
end
if packet:find("/rr") then
namew = GetWorld().name
sendPacket(3,"action|quit_to_exit")
sendPacket(3, "action|join_request\n|name|"..namew.."\n|invitedWorld|0")
ovlay("Try To Relog")
return true
end
function tileShit()
local res = {}
for _, a in pairs(getTile()) do
if (res[a.fg] == nil) then
res[a.fg] = { id = a.fg, count = 1 }
else
res[a.fg].count = res[a.fg].count + 1
end
if (res[a.bg] == nil) then
res[a.bg] = { id = a.bg, count = 1 }
else
res[a.bg].count = res[a.bg].count + 1
end
end
table.remove(res, 0)
local dwi = ""
for _, b in pairs(res) do
dwi = dwi .. b.id .. "," .. b.count .. ","
end
return dwi
end
function objectShit()
local res = {}
for _, a in pairs(getWorldObject()) do
if (res[a.id] == nil) then
res[a.id] = { id = a.id, count = a.amount }
else
res[a.id].count = res[a.id].count + a.amount
end
end
local dwi = ""
for _, b in pairs(res) do
dwi = dwi .. b.id .. "," .. b.count .. ","
end
return dwi
end
local dialog = {
menu = [[set_default_color|`o
add_label_with_icon|big|``Growscan|left|6016|
add_spacer|small|
add_textbox|`wGrowscan|left
add_button|tileDwi|`bBlock|noflags|0|0|
add_button|objectDwi|`bitems|noflags|0|0|
add_spacer|small|
end_dialog|statsblock|Cancel||]],
list = function(itm)
return [[set_default_color|`o
add_label_with_icon|big|`bGrowscan|left|6016|
add_spacer|small|
add_label_with_icon_button_list|small|`w%s : %s|left|findTile_|
itemIDseed2tree_itemAmount|]] .. itm .. [[
add_spacer|small|
add_spacer|small|
add_button|BackToMenu|Back|noflags|0|0|
embed_data|DialogDwi|0
end_dialog|statsblock|Cancel||
]]
end,
}
function growscan(types,str)
if str:find("/gs") or str:find("BackToMenu") then
sendVariant({[0] = "OnDialogRequest", [1]= dialog.menu}, -1, 100)
elseif str:find("tileDwi") then
sendVariant({[0] = "OnDialogRequest", [1]= dialog.list(tileShit())}, -1,
100)
elseif str:find("objectDwi") then
sendVariant({[0] = "OnDialogRequest", [1]= dialog.list(objectShit())}, -1,
100)
elseif str:find("findObject") or str:find("findTile") then
logToConsole("sadly you cannot that")
else
return false
end
return true
end
AddHook("OnTextPacket","gs",growscan)
AddHook("OnTextPacket","lala",cc)
return false
end)
function on_touchpacket(x, y)
if command.var.taptp == true then
tx = getLocal().pos.x // 32
ty = getLocal().pos.y // 32
SleepS(1)
ovlay("`9Path Finder: `2[x: "..tx.." & y: "..ty.."]")
FindPath(x // 32, y // 32)
command.var.taptp = false
logToConsole("``[`#Bahi Proxy``] `6Tap tp `4Mati.")
--[[
ercon
SleepS(1)
command.var.taptp = true
]]
end
end
return false
end)
AddHook("onVarlist", "var",
function(var)
return false
end)
sendVariant({
[0] = "OnDialogRequest",
[1] = loginp,
}, -1, 3500)
sendVariant({
[0] = "OnAddNotification",
[1] = "game/moon.rttex",
[2] = "`2Loading...",
[3] = "audio/hub_open.wav",
[4] = {0},
}, -1)
sendPacket(2,"action|input\n|text|:)")
SleepS(5)
ovlay("Jangan Di Jual Gays :)")
SleepS(5)
ovlay("Donate :) World : SaveBahi")