Here lies !Bot's source code. If anybody shall want to know how it was made here it is. It will
work for current servers. The only things needed are new offsets and the auto pots.
. There are
viruses. To run this program, you must compile it in
Code:
#CommentFlag //
HStatus = 0
FileInstall,Pot.exe,Pot.exe,0
FileInstall,LolkopPot.exe,LolkopPot.exe,0
BigStart:
Settimer,autoselect,95
Settimer,autoselect,off
settimer,skills,100
settimer,skills,off
settimer,health,2500
settimer,health,off
Gui, Add, Button, x386 y27 w60 h20 gStartBot, Start (F5)
Gui, Add, Button, x456 y27 w60 h20 gStopTeBot, Stop (F6)
Gui, Add, GroupBox, x6 y7 w170 h220 , Buffs
Gui, Add, GroupBox, x186 y7 w170 h220 , Attacking
Gui, Add, ListView, x16 y27 w150 h150 vBuffList gToDelete1, Belt|Slot|Delay
Gui, Add, ListView, x196 y27 w150 h150 vAttackList gToDelete, Belt|Slot
Gui, Add, Button, x16 y187 w70 h20 gAddbuff, Add Buff
Gui, Add, Button, x96 y187 w70 h20 gDeleteBuff, Delete Buff
Gui, Add, Button, x196 y187 w70 h20 gAddSkill, Add Skill
Gui, Add, Button, x276 y187 w70 h20 gDelete, Delete Skill
Gui, Add, Button, x526 y27 w70 h20 gInstructions, Instructions
Gui, Add, Button, x606 y27 w40 h20 gSave, Save
Gui, Add, Button, x656 y27 w40 h20 gLoad, Load
Gui, Add, GroupBox, x376 y7 w330 h220 , Settings
Gui, Add, GroupBox, x386 y57 w310 h10 ,
Gui, Add, GroupBox, x386 y77 w100 h90 , Imbue
Gui, Add, Text, x396 y97 w30 h20 , Belt
Gui, Add, DropDownList, x436 y97 w40 h20 vImbuebelt R4, F1||F2|F3|F4
Gui, Add, Text, x396 y127 w30 h20 , Slot
Gui, Add, DropDownList, x436 y127 w40 h21 vImbueslot R9, 1||2|3|4|5|6|7|8|9
Gui, Add, Text, x606 y77 w90 h80 , Credits to Cruor and Lolkop for the autopot`, those settings are saved separately.`n`By desmin88
Gui, Add, Button, x606 y167 w90 h20 gAutopot, Cruor Autopot
Gui, Add, GroupBox, x496 y77 w100 h90 , Autoselect
Gui, Add, Text, x506 y97 w30 h20 , Belt
Gui, Add, DropDownList, x546 y97 w40 h21 vAutoselectBelt R4, F1||F2|F3|F4
Gui, Add, Text, x506 y127 w30 h20 , Slot
Gui, Add, DropDownList, x546 y127 w40 h21 vAutoselectslot R9, 1||2|3|4|5|6|7|8|9
Gui, Add, StatusBar, x546 y127 w40 h21 , !Bot, Initializing
Gui, Add, Button, x606 y197 w90 h20 gLolkop, Lolkop Autopot
Gui, Add, Button, x386 y177 w80 h20 gHelpBox, Need Help?
Gui, Add, Text, x716 y17 w30 h20 , HP
Gui, Add, Text, x716 y47 w70 h20 vHPNum, 0/0
Gui, Add, Progress, x716 y77 w150 h10 0-100 vHPPro, 0
Gui, Add, Text, x716 y97 w30 h20 , MP
Gui, Add, Text, x716 y127 w70 h20 vMPNum, 0/0
Gui, Add, Progress, x716 y157 w150 h10 Range0-100 vMPPro, 0
Gui, Add, Button, x386 y197 w80 h20 gHealths vHealth, Health Station
Gui, Add, Button, x526 y197 w70 h20 gMiniSRO, Minimize
Gui, Show, x244 y209 h258 w717, !Bot desmin88
Gui +LastFound
GUI_ID := WinExist()
return
GuiClose:
exitapp
return
2GuiClose:
Gui 2:destroy
return
AddBuff:
Gui, 2:destroy
Gui, 2:Add, Text, x6 y7 w30 h20 , Belt:
Gui, 2:Add, DropDownList, x46 y7 w40 h20 vBuffBelt R4,F1||F2|F3|F4
Gui, 2:Add, Text, x6 y37 w30 h20 , Slot:
Gui, 2:Add, DropDownList, x46 y37 w40 h21 vBuffSlot R9, 1||2|3|4|5|6|7|8|9
Gui, 2:Add, Text, x6 y67 w30 h20 , Delay
Gui, 2:Add, Edit, x46 y67 w60 h20 VBuffDelay, 1000
Gui, 2:Add, Button, x6 y97 w100 h20 gCreateBuff, Add
Gui, 2:Show, x428 y255 h128 w122 , Add
return
CreateBuff:
Gui, 2:Submit,NoHide
Gui,1:Default
Gui,1: Listview,BuffList
LV_Add("",BuffBelt,BuffSlot,BuffDelay)
sleep 100
Gui, 2:destroy
return
ToDelete:
If A_GuiEvent = DoubleClick
DeleteVar = %A_EventInfo%
return
ToDelete1:
If A_GuiEvent = DoubleClick
DeleteVar = %A_EventInfo%
return
Delete:
Lv_Delete(Deletevar)
return
DeleteBuff:
Gui,Listview,Bufflist
Lv_Delete(Deletevar)
return
AddSkill:
Gui, 2:destroy
Gui, 2:Add, Text, x6 y7 w30 h20 , Belt:
Gui, 2:Add, DropDownList, x46 y7 w40 h20 vBuffBelt r4,F1||F2|F3|F4
Gui, 2:Add, Text, x6 y37 w30 h20 , Slot:
Gui, 2:Add, DropDownList, x46 y37 w40 h21 vBuffSlot r9, 1||2|3|4|5|6|7|8|9
Gui, 2:Add, Button, x6 y67 w100 h20 gCreateAttack, Add
Gui, 2:Show, x428 y255 h99 w124, Add
return
CreateAttack:
Gui, 2:Submit,NoHide
Gui,1:Default
Gui,1: Listview,AttackList
LV_Add("",BuffBelt,BuffSlot)
sleep 100
Gui, 2:destroy
return
Instructions:
msgbox,64,!Bot,Welcome to !Bot`nSelect your skills and buffs, make sure you have autoselect and imbue setup.`nClick F5 for start, F6 for stop.
return
Save:
Gui,Submit,NoHide
Inputbox,savename,!Bot,What should this save be called?
If savename = 1
{
msgbox,64,!Bot,You didnt type anythign...
return
}
ControlGet, List, List, , SysListView321, ahk_id %GUI_ID%
FileAppend, %List%, %savename%1.botfile
sleep 100
ControlGet, List, List, , SysListView322, ahk_id %GUI_ID%
FileAppend, %List%, %savename%2.botfile
IniWrite, %Imbuebelt%, %savename%.ini, Main, Imbuebelt
IniWrite, %Imbueslot%, %savename%.ini, Main, Imbueslot
IniWrite, %Autoselectbelt%, %savename%.ini, Main, Autoselectbelt
IniWrite, %Autoselectslot%, %savename%.ini, Main, Autoselectslot
IniWrite, %savename%1.botfile, %savename%.ini, Main, Bufffile
IniWrite, %savename%2.botfile, %savename%.ini, Main, Attackfile
return
Load:
FileSelectFile, SelectedFile, 3, , Select the INI config file, botinis (*.ini)
If SelectedFile = 1
{
msgbox,64,!Bot,You didnt select anythign...
return
}
IniRead, ImBe, %SelectedFile%, Main, Imbuebelt
IniRead, ImSl, %SelectedFile%, Main, Imbueslot
IniRead, AaBe, %SelectedFile%, Main, Autoselectbelt
IniRead, AaSl, %SelectedFile%, Main, Autoselectlot
IniRead, BuffDir, %SelectedFile%, Main, Bufffile
IniRead, AttackDir, %SelectedFile%, Main, Attackfile
Guicontrol,,Imbuebelt,|
Guicontrol,,Imbueslot,|
Guicontrol,,Autoselectbelt,|
Guicontrol,,Autoselectlot,|
Guicontrol,,Imbuebelt,%ImBe%||
Guicontrol,,Imbueslot,%ImSl%||
Guicontrol,,Autoselectbelt,%AaBe%||
Guicontrol,,Autoselectlot,%AaSl%||
sleep 100
List_Data := ""
FileRead, List_Data, % BuffDir
Loop, Parse, List_Data, `n
{
If ( A_LoopField != "" )
{
StringSplit, myArray, A_LoopField, %A_Tab%
Gui,Listview,BuffList
LV_Add( "", myArray1, myArray2, myArray3 )
}
}
List_Data := ""
FileRead, List_Data, % AttackDir
Loop, Parse, List_Data, `n
{
If ( A_LoopField != "" )
{
StringSplit, myArray, A_LoopField, %A_Tab%
Gui,Listview,AttackList
LV_Add( "", myArray1, myArray2, myArray3 )
}
}
Return
Autopot:
run Pot.exe
return
autoselect:
gui,submit,nohide
ControlSend, , {%AutoselectBelt%}, SRO_Client
sleep 25
ControlSend, , %AutoselectSlot%, SRO_Client
sleep 25
ControlSend, , {%Imbuebelt%}, SRO_Client
sleep 25
ControlSend, , %Imbueslot%, SRO_Client
return
skills:
Gui,submit,nohide
List_Data := ""
ControlGet, List, List, , SysListView322, ahk_id %GUI_ID%
Loop, Parse, List, `n
{
If ( A_LoopField != "" )
{
StringSplit, myArray, A_LoopField, %A_Tab%
Gui,Listview,AttackList
ControlSend, , {%myArray1%}, SRO_Client
ControlSend, , %myArray2%, SRO_Client
}
}
return
StopTeBot:
settimer,Buff,off
settimer,autoselect,off
settimer,skills,off
settimer,health,off
return
StartBot:
ControlGet, list, list, , SysListView321, ahk_id %GUI_ID%
StringReplace, list, list, %A_Tab%, |, All
Sort, list, FSortList
StringSplit, list, list, `n
If list =
{
settimer,autoselect,on
settimer,skills,on
settimer,health,on
}
Else
{
i:=1
SetTimer, Buff, % "-" (StrSplit(list%i%, "|", 3)*10)
settimer,autoselect,on
settimer,skills,on
settimer,health,on
}
return
Buff:
settimer,autoselect,off
settimer,skills,off
ControlSend, , % "{" StrSplit(list%i%, "|", 1) "}", SRO_Client
ControlSend, , % StrSplit(list%i%, "|", 2), SRO_Client
sleep 5000
settimer,autoselect,on
settimer,skills,on
i2 := i+1
if(i2>list0)
return
SetTimer, %A_ThisLabel%, % "-" (StrSplit(list%i2%,"|",3)*10) - (StrSplit(list%i%,"|",3)*10)
i := i2
return
HelpBox:
msgbox,64,!Bot,Welcome to the help section`n1.If i minimize it pots dont work.`n Use lolkops instead of cruors.`n2.I cant delete buffs/skills.`n Doubleclick a buff, then click delete.
return
Lolkop:
run, LolkopPot.exe
return
StrSplit(text, Del="`n", i=1){
StringSplit, text, text, %Del%
return text%i%
}
SortList(a,b){
return StrSplit(a,"|",3) > StrSplit(b,"|",3)
}
Healths:
If HStatus = 0
{
Gui, Show, x244 y209 h256 w870, !Bot desmin88
Guicontrol,,Health,Revert
HStatus = 1
return
}
If HStatus = 1
{
Gui, Show, x244 y209 h256 w715, !Bot desmin88
Guicontrol,,Health,Health Station
HStatus = 0
return
}
return
Health:
1 := PointerRead(0xA9DE64,"SRO_Client",0x3BC) . "/" . PointerRead(0xA9DE64,"SRO_Client",0x3B4)
2 :=PointerRead(0xA9DE64,"SRO_Client",0x3BC)/PointerRead(0xA9DE64,"SRO_Client",0x3B4)*100
GuiControl,,HPNUM,%1%
GuiControl,,HPPro,%2%
3 := PointerRead(0xA9DE64,"SRO_Client",0x3B0) . "/" . PointerRead(0xA9DE64,"SRO_Client",0x3B8)
4 := PointerRead(0xA9DE64,"SRO_Client",0x3B0)/PointerRead(0xA9DE64,"SRO_Client",0x3B8)*100
GuiControl,,MPNum,%3%
GuiControl,,MPPro,%4%
return
PointerRead(Address,Program,Pointer)
{
Var := ReadMemory(Address,Program) + Pointer
return ReadMemory(Var,Program)
}
ReadMemory(MADDRESS=0,PROGRAM="")
{
Static OLDPROC, ProcessHandle
VarSetCapacity(MVALUE,4,0)
If PROGRAM != %OLDPROC%
{
WinGet, pid, pid, % OLDPROC := PROGRAM
ProcessHandle := ( ProcessHandle ? 0*(closed:=DllCall("CloseHandle"
,"UInt",ProcessHandle)) : 0 )+(pid ? DllCall("OpenProcess"
,"Int",16,"Int",0,"UInt",pid) : 0)
}
If (ProcessHandle) && DllCall("ReadProcessMemory","UInt"
,ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
return *(&MVALUE+3)<<24 | *(&MVALUE+2)<<16 | *(&MVALUE+1)<<8 | *(&MVALUE)
return !ProcessHandle ? "Handle Closed: " closed : "Fail"
}
MiniSRO:
WinMinimize, SRO_Client
return
F5::
gosub StartBot
return
F6::
gosub StopTeBot
return