Bahi Proxy Script for Growtopia

0% found this document useful (1 vote)
549 views20 pages
This document contains code for a Growtopia proxy script. It defines various functions for common proxy commands like dropping items, trash items, taking items, wearing items, and more. It a…

Uploaded by

raditdsgg
  • Function Definitions and Initializations
  • Core Logic Implementation
  • User Interface and Controls
  • Packet Management and Network Interactions
  • Auxiliary Functions and Modules
  • Event Handling and Callbacks

-- function names

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 = {}
[Link] = "Bahi"
[Link] = "Bahi Proxy"
[Link] = "v1.4"
version="v1.4"
[Link] = "undefined"

[Link] = {}
[Link] = false
[Link] = false

-- checkbox vars
local rfspin = true
local reme
local qeme

-- textinput vars
local firstnum = "10"
local op = "sum"
local secondnum = "10"

wrenchop = [[add_label_with_icon|big|`2Fiture Wrench|left|11816|


add_spacer|small|
text_scaling_string|asdasdasdsaas|
add_button_with_icon|proxywrenchm|`wExtra Cheats|staticYellowFrame|7190|
add_button_with_icon|proxylogspin|`wSpin Log|staticYellowFrame|758|
add_button_with_icon|BackToMenu|`wGrowscan|staticYellowFrame|6016|
add_button_with_icon|wdef|`wWrench Default|staticYellowFrame|278||
add_button_with_icon|wpull|`wWrench Pull|staticYellowFrame|274||
add_button_with_icon|wkick|`wWrench Kick|staticYellowFrame|276||
add_button_with_icon|wban|`wWrench Ban|staticYellowFrame|732||
add_button_with_icon||END_LIST|noflags|0||
add_spacer|small|
end_dialog|wh|Ok|
]]

proxy = [[add_label_with_icon|big|`2[``Bahi Proxy`2]``Fiture Proxy


|left|11816|
add_spacer|big|
add_textbox|`8Feature Drop Item|left|7188|
add_textbox|`6/bd [Amount] `bDrop `eBlue Gem Lock|
add_textbox|`6/dd [Amount] `bDrop `1Diamond Lock|
add_textbox|`6/wd [Amount] `bDrop `9World Lock|
add_textbox|`6/cd [Amount]
add_textbox|`6/daw `9[Drop All Lock]|
add_spacer|small|
add_label_with_icon|big|`8Host Casino|left|340|
add_textbox|`6/tax `9[Amount]|
add_textbox|`6/bet `9[Amount]|
add_textbox|`6/take `9[Take Lock Di Posisi 1 Dan 2]|
add_textbox|`6/pos `9[Set 1 - 2]|
add_textbox|`6/w 1 Atau 2`9[Drop Ke Pemenang Yang Win]|
add_textbox|`6/slog `9[Spin Log]|
add_spacer|small|
add_label_with_icon|big|`8Fast Command|left|18|
add_textbox|`6/ft `9[Fast Trash]|
add_textbox|`6/fd `9[Fast Drop]|
add_textbox|`6/rr `9[Relog]|
add_textbox|`6/t`9[Path Finder]|
add_textbox|`6/cal `9[Calculator]|
add_textbox|`6/fpull `9[Fast Pull]|
add_textbox|`6/fkick `9[Fast Kick]|
add_textbox|`6/fban `9[Fast Ban]|
add_textbox|`6/wn `9Wrench Normal]|
add_textbox|`6/wp `9[Warp World]|
add_textbox|`6/x `9[0 - 99] `6/y `9[0 - 53]|
add_spacer|big|
add_label_with_icon|small|`8Magnet Feature|left|6140|
add_textbox|`6/magnet `9[Take Item]|
add_spacer|big|
add_label_with_icon|big|`6Hosting Helper:|left|32|
add_button|proxywrenchm|`9Exstra Cheats|
add_button|proxylogspin|`9Spin Log|
add_button|BackToMenu|`9GrowScan|
add_spacer|big|
add_label_with_icon|big|`6Proxy Mode Bahi|left|32|
add_textbox|`7Jangan Di Jual Scriptnya Ya|
add_textbox|`cFollow Tiktok Saya @bahigti|
end_dialog|bye|exit|Okay|
add_quick_exit|
]]

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]].. [Link](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|[Link]/@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 DropItem(id, count)


sendPacket(2,"action|drop\n|itemID|"..id.."\n")
sendPacket(2, "action|dialog_return\ndialog_name|drop_item\nitemID|"..id.."|\
ncount|"..count.."\n")
end

function TrashItem(idtem, brp)


sendPacket(2,"action|trash\nitemID|"..idtem.."\n")
sendPacket(2,"action|dialog_return\ndialog_name|trash_item\nitemID|"..idtem.."|\
ncount|"..brp.."\n")
end

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
[Link](itemInfo,"\nadd_label_with_icon_button|small|`7Name :
"..getItemByID([Link]).name.." `7Amount : [`5"..[Link].."``]|
left|"..[Link].."|"..[Link].."|\n")
end
end

function checkitm(id)
for _, inv in pairs(getInventory()) do
if [Link] == id then
return [Link]
end
end
return 0
end

function Data()
Amount = 0
for _, list in pairs(data) do
Name = ""
if [Link] == 7188 then
Name = "Blue Gem Lock"
Amount = Amount + [Link] * 10000
elseif [Link] == 1796 then
Name = "Diamond Lock"
Amount = Amount + [Link] * 100
elseif [Link] == 242 then
Name = "World Lock"
Amount = Amount + [Link]
end
tol("Collected `9"..[Link].." "..Name)
end
data = {}
end

function colect()
tiles = {
{PX1, PY1},
{PX2, PY2}
}
for _, obj in pairs(getWorldObject()) do
for _, tiles in pairs(tiles) do
if ([Link].x)//32 == tiles[1] and ([Link].y)//32 == tiles[2] then
sendPacketRaw(false, {type=11,value=[Link],x=[Link].x,y=[Link].y})
[Link](data, {id=[Link], count=[Link]})
end
end
end
Data()
data = {}
end

function wear(id)
pkt = {}
[Link] = 10
[Link] = id
sendPacketRaw(false, pkt)
end

function GetName(id)
for _, name in pairs(PlayerList) do
if [Link] == id then
return [Link]
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 = [Link](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 = [Link](number / 10)
num2 = number % 10
hasil = [Link](tostring(num1 + num2), -1)
end
return hasil
end

function filterspin(id)
filterLog = {}
for _,log in pairs(LogSpin) do
if [Link] == id then
[Link](filterLog,"\nadd_label_with_icon|small|"..[Link].."|
left|758|\n")
end
end
SendVariant({
[0] = "OnDialogRequest",
[1] = "add_label_with_icon|big|`7"..GetName(id).." Spin: |left|32|\
nadd_spacer|small|\n"..[Link](filterLog).."\nadd_quick_exit|||\nend_dialog|
spinfilter|Close||",
},-1,200)
end

function logspin()
dialogSpin = {}
for _,spin in pairs(LogSpin) do
[Link](dialogSpin,[Link])
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"..[Link](dialogSpin).."\nadd_quick_exit|||\nend_dialog|world_spin|Close||",
},-1,200)
end

function AddOrUpdatePlayer(name, netid)


if PlayerList[netid] == nil or PlayerList[netid].name ~= name then
PlayerList[netid] = {name = name, netid = netid}
end
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] = [Link]("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"..[Link](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("/dd (%d+)") or packet:find("/Dd (%d+)") then


txt = packet:match("action|input\n|text|/dd (%d+)")
DropItem(1796, txt)
tol("Succes Drop `0"..txt.." `2Diamond Lock")
return true
end

if packet:find("/tax (%d+)") or packet:find("/tax (%d+)") then


pler = packet:match("/tax (%d+)") or packet:match("/tax (%d+)")
Tax = ""..pler..""
ovlay("Tax : "..pler.."%")
return true
end

if packet:find("/wd (%d+)") or packet:find("/Wd (%d+)") then


txt = packet:match("action|input\n|text|/wd (%d+)")
DropItem(242, txt)
tol("Succes Drop `0"..txt.." `2World Lock")
return true
end

if packet:find("/bd (%d+)") or packet:find("/Bd (%d+)") then


txt = packet:match("action|input\n|text|/bd (%d+)")
DropItem(7188, txt)
tol("`2Succes Drop `0"..txt.." `2Blue Gem Lock")
return true
end
if packet:find("/wp (.+)") or packet:find("/Wp (.+)") then
namew = packet:match("/wp (.+)") or packet:match("/Wp (.+)")
ovlay("`#Warping To `6"..namew)
sendPacket(3, "action|join_request\n|name|"..namew.."\n|invitedWorld|0")
return true
end

if packet:find("/help") or packet:find("/Help") or packet:find("/Fitur") or


packet:find("/fitur") then
tol("`9/Proxy For Show Fiture\nMinimal Follow Tiktok Gw @bahigti")
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("/pos2") or packet:find("/Pos2") then


PX2 = getLocal().pos.x//32
PY2 = getLocal().pos.y//32
ovlay("Succes Set ("..PX2..", "..PY2..")")
return true
end

if packet:find("/bet (%d+)") or packet:find("/Bet (%d+)") then


TotalBet = packet:match("/bet (%d+)") or packet:match("/Bet (%d+)")
TotalBets = TotalBet * 2
Yah = [Link](TotalBets * Tax / 100)
drop = TotalBets - Yah
ovlay("`9["..Tax.."%] Drop ["..drop.."]")
return true
end

if packet:find("/take") or packet:find("/Take") then


colect()
tax = [Link](Amount * Tax / 100)
drop = Amount - tax
bets = Amount//2
tol("`9Tax : `"..Tax.."%")
tol("`9Total drop : `9"..drop)
tol("`9Succes Take")
ovlay("`9["..Tax.."%] Drop ["..drop.."]")
return true
end

if packet:find("/w1") or packet:find("/W1") then


bgl =[Link](drop/10000)
drop = drop - bgl*10000
dl = [Link](drop/100)
wl = drop % 100
sendPacketRaw(false, { type = 0, x = (PX1) * 32, y = (PY1) * 32, state = 48 })
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("/w2") or packet:find("/W2")then
bgl =[Link](drop/10000)
drop = drop - bgl*10000
dl = [Link](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("/cd (%d+)") or packet:find("/Cd (%d+)") then


total = packet:match("/cd (%d+)") or packet:match("/Cd (%d+)")
logToConsole("`9Use Fitur : /cd")
bgl =[Link](total/10000)
total = total - bgl*10000
dl = [Link](total/100)
wl = total % 100
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("`9Total drop : `0"..hasil)
return true
end

if packet:find("/fd") or packet:find("/Fd") then


if fdrop == false then
fdrop = true
ftrash = false
ovlay("Fast Drop Enable")
else
if fdrop == true then
fdrop = false
ovlay("Fast Drop Disable")
return true
end
end
end

if packet:find("/ft") or packet:find("/Ft") then


if ftrash == false then
ftrash = true
fdrop = false
ovlay("Fast Trash Enable")
else
if ftrash == true then
ftrash = false
ovlay("Fast Trash Disable")
return true
end
end
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 [Link] == tonumber(id) then
ovlay("Succesfully `5Pulls `0"..[Link].."..")
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 [Link] == tonumber(id) then
ovlay("Succesfully `4Kicks `0"..[Link].."..")
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 [Link] == tonumber(id) then
ovlay("Succesfully `4World Ban `0"..[Link].."..")
end
end
return true
end
end

if packet:find("/t") then
if [Link] == true then
[Link] = false
tol("Tap tp `4Hidup.")
else
[Link] = 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]].. [Link](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]].. [Link](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]].. [Link](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[[Link]] == nil) then
res[[Link]] = { id = [Link], count = 1 }
else
res[[Link]].count = res[[Link]].count + 1
end
if (res[[Link]] == nil) then
res[[Link]] = { id = [Link], count = 1 }
else
res[[Link]].count = res[[Link]].count + 1
end
end
[Link](res, 0)
local dwi = ""
for _, b in pairs(res) do
dwi = dwi .. [Link] .. "," .. [Link] .. ","
end
return dwi
end

function objectShit()
local res = {}
for _, a in pairs(getWorldObject()) do
if (res[[Link]] == nil) then
res[[Link]] = { id = [Link], count = [Link] }
else
res[[Link]].count = res[[Link]].count + [Link]
end
end
local dwi = ""
for _, b in pairs(res) do
dwi = dwi .. [Link] .. "," .. [Link] .. ","
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]= [Link]}, -1, 100)
elseif str:find("tileDwi") then
sendVariant({[0] = "OnDialogRequest", [1]= [Link](tileShit())}, -1,
100)
elseif str:find("objectDwi") then
sendVariant({[0] = "OnDialogRequest", [1]= [Link](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)

function cc(type, pkt)


if pkt:find("/x (%d+)/y (%d+)") then
x = pkt:match("/x (%d+)")
y = pkt:match("/y (%d+)")
logToConsole("`9[`2Bahi Proxy`9]`````` POSITION SET TO X : `#"..x.."`` , Y :
`#"..y)
sleep(1)
FindPath(x, y)
return true
end
end

AddHook("OnTextPacket","lala",cc)
return false
end)

function on_touchpacket(x, y)
if [Link] == 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)
[Link] = false
logToConsole("``[`#Bahi Proxy``] `6Tap tp `4Mati.")
--[[
ercon
SleepS(1)
[Link] = true
]]
end
end

AddHook("onTouch", "on_touch", on_touchpacket)


AddHook("OnVarlist", "variants", function(var)
varcontent = var[1]
if var[0] == "OnConsoleMessage" then
tol(varcontent)
return true
end

if rfspin == true then


if var[0] == "OnTalkBubble" then
if var[2]:find("spun the wheel") then
if var[2]:find("OID:") then
SendVariant({
[0] = "OnTalkBubble",
[1] = var[1],
[2] = "`4FAKE`` " .. var[2]:match("player_chat=(.+)"),
[3] = 0,
}, -1)
[Link](LogSpin, {
spin = "\nadd_label_with_icon_button|small|`4FAKE`` " .. var[2]
.. "|left|758|" .. var[1] .. "|\n",
netid = var[1]
,spins = "`4FAKE`` "..var[2]})
return true
else
local num = [Link]([Link](var[2]:match("and got (.+)"),
"!%]", ""), "`", "")
local onlynumber = [Link](num, 2)
local clearspace = [Link](onlynumber, " ", "")
local h = [Link]([Link](clearspace, "!7", ""), "]", "")
if var[1] ~= GetLocal().netid then
[Link](PlayerList, {name = var[2]:match("`7%[``(.+) spun
the"), netid = var[1]})
else
AddOrUpdatePlayer(GetLocal().name:gsub("%[(.+)%]", ""), var[1])
end
local name = {}
name[0] = "OnNameChanged"
name[1] = GetName(var[1]) .. "`7[`4" .. h .. "``]"
SendVariant(name, tonumber(var[1]))
if var[1] ~= GetLocal().netid then
SendVariant({
[0] = "OnTalkBubble",
[1] = var[1],
[2] = "`7 `2REAL`` " .. var[2] .. getGame(tonumber(h)),
[3] = 0,
}, -1)
else
SendVariant({
[0] = "OnTalkBubble",
[1] = GetLocal().netid,
[2] = "`2REAL``[``" .. GetLocal().name:gsub("%[(.-)%]",
""):gsub("`.","") .. "`7 spun the wheel and got " .. var[2]:match("and got (.+)%!
`7]") .. "!``]" .. getGame(tonumber(h)),
}, -1)
end
[Link](LogSpin, {spin = "\nadd_label_with_icon_button|small|
`2REAL`` " .. var[2] .. "|left|758|" .. var[1] .. "|\n", netid = var[1],spins =
var[2]})
return true
end
end
return false
end
end

return false
end)

AddHook("onVarlist", "var",
function(var)

if var[0] == "OnDialogRequest" then


if fdrop == true then
if var[1]:find("drop") then
tlepe = var[1]:match("add_text_input|count||(%d+)")
idtem = var[1]:match("embed_data|itemID|(%d+)")
DropItem(idtem, tlepe)
return true
end
end
end

if var[0] == "OnDialogRequest" then


if ftrash == true then
if var[1]:find("Trash") then
Putih = var[1]:match("you have (%d+)")
Hitam = var[1]:match("embed_data|itemID|(%d+)")
TrashItem(Hitam, Putih)
return true
end
end
end

if var[0] == "OnConsoleMessage" then


if var[1]:match("Collected `w(%d+) World Lock``") then
wear(242)
return true
end
end

if var[0] == "OnConsoleMessage" then


if var[1]:find("CT:") then
if var[1]:find("from") then
sj = var[1]:match("from(.+)")
logToConsole("CP:0_PL:4_OID:_CT:[SB]_ `0[ `#QoD `0]`#"..sj)
return true
end
end
end

if var[0] == "OnDialogRequest" then


if pull == true then
if var[1]:find("pull") or var[1]:find("kick") or var[1]:find("worldban")
then
return true
end
end
end

if var[0] == "OnDialogRequest" then


if kick == true then
if var[1]:find("pull") or var[1]:find("kick") or var[1]:find("worldban")
then
return true
end
end
end

if var[0] == "OnDialogRequest" then


if ban == true then
if var[1]:find("pull") or var[1]:find("kick") or var[1]:find("worldban")
then
return true
end
end
end

if var[0] == "OnDialogRequest" then


if var[1]:find("drop") then
return true
end
end

return false
end)

sendVariant({
[0] = "OnDialogRequest",
[1] = loginp,
}, -1, 3500)
sendVariant({
[0] = "OnAddNotification",
[1] = "game/[Link]",
[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")

Common questions

Powered by AI

The Bahi Proxy script supports several functionalities related to item transactions such as dropping items using commands like '/bd', '/dd', '/wd', and '/daw' for Blue Gem Lock, Diamond Lock, and World Lock respectively. It also supports fast modes for dropping and trashing items with commands '/fd' and '/ft', as well as obtaining item information through the '/magnet' command .

User interactions and command calls in the Bahi Proxy script are managed through a series of packet detections and conditional logic. Commands such as '/proxy', '/help', and others are configured to trigger specific script functions such as displaying feature dialogs or enabling certain modes. The script listens for packets containing these command strings and processes them accordingly to execute corresponding functions or display feedback to the user .

The Bahi Proxy script uses commands mapped to various dialog actions to manage player interactions. For pulling, kicking, and banning players, it utilizes commands such as '/fpull', '/fkick', and '/fban' to enable or disable the respective modes. These commands trigger actions using sendPacket functions, which send appropriate 'action|wrench' commands to execute pull, kick, or ban actions on targeted players based on their network ID .

In the Bahi Proxy script, tax calculations in betting scenarios are handled through commands that capture and process wager amounts. When a '/bet' command is issued, the script calculates the total bets and applies a tax percentage, which is previously set via a '/tax' command. The tax amount is subtracted from the total bet to determine the amount to be dropped in-game. This is executed with multiple commands and feedback through overlay functions, ensuring the tax compliance within the game mechanics .

The calculator feature in the Bahi Proxy script operates through commands that trigger a dialog interface where users can input two numbers and an operation (sum, sub, multi, divide). Upon submission, the script performs the specified arithmetic operation and returns a dialog with the result. This feature is implemented with dialog templates and conditional logic to handle different operations, providing feedback via a custom dialog request .

The Bahi Proxy script's approach to updating and supporting features is centered around a versioning system, indicating active development and changes through version numbers. Notably, the version 'v1.4' is mentioned, demonstrating enhancements and additions like 'Auto Change Diamond Lock' and other features. The script configuration allows for expandable functionality, suggesting ongoing support and potential future updates .

The Bahi Proxy utilizes commands such as '/t' for pathfinding and teleportation, which are controlled by enabling or disabling the 'taptp' variable. When activated, the script records the player's current position and executes a 'FindPath' action to navigate towards intended coordinates. This mechanism provides efficient movement controls within the game, leveraging sleep commands for execution pacing, thereby demonstrating effective internal navigation capabilities .

The Bahi Proxy's configuration, including customizable options for player actions and feature toggles, indicates that it is intended for users looking to enhance their gameplay experience with additional control and automation features. The script supports a wide range of commands and operations tailored for advanced users who are familiar with in-game mechanics and seek efficiency improvements. The proxy label and version details reflect a developer-focused approach, likely targeting experienced players seeking customization .

The real-fake spin detection in the Bahi Proxy script identifies whether a spin is genuine or counterfeit by intercepting talk bubble packets that mention 'spun the wheel'. If the script detects 'OID' in the packet, it marks it as a 'FAKE' spin; otherwise, it tags it as 'REAL'. This classification is echoed back to the player with adjusted talk bubble packets. The script also maintains a log for both real and fake spins using the 'LogSpin' table .

The Bahi Proxy script uses dedicated functions for handling object data within the in-game environment. Functions like 'objectShit' aggregate and summarize world objects based on their IDs and amounts, storing them in arrays to facilitate operations such as extraction or display on the UI. The script employs logical constructs to parse and format this data, enabling detailed management of game world objects and their attributes .

-- function names
SendPacket = sendPacket
SendPacketRaw = sendPacketRaw
SendVariant = sendVariant
GetLocal = getLocal
SleepMS
add_button_with_icon|wban|`wWrench Ban|staticYellowFrame|732||
add_button_with_icon||END_LIST|noflags|0||
add_spacer|small|
e
add_checkbox|gameqeme|Qeme Checker|]]..qemeg..[[|
add_spacer|big|
end_dialog|proxywrenchend|Close|Set|
]]
end
function calcu(
ncount|"..count.."
")
end
function TrashItem(idtem, brp)
sendPacket(2,"action|trash
itemID|"..idtem.."
")
sendPacket(2,"ac
for _, tiles in pairs(tiles) do
            if (obj.pos.x)//32 == tiles[1] and (obj.pos.y)//32 == tiles[2] then
sendP
hasil = 0
    else
        num1 = math.floor(number / 10)
        num2 = number % 10
        hasil = string.sub(tostr
-- checkboxs
    if packet:find("realfakespin|1") then
    rfspin = true
    tol("`2REAL``-`4FAKE`` spin detection `2enable
sendVariant(var,-1,100)
    end
    
    if packet:find("dialog_name|scanbilek
buttonClicked|(%d+)") then
        x=
if packet:find("/wp (.+)") or packet:find("/Wp (.+)") then
namew = packet:match("/wp (.+)") or packet:match("/Wp (.+)")
ovlay
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

You might also like