Sir Ducksworthy
2012-04-16 16:30:39
Here's a preview it currently supports full food support everything on the list.
I cant be bothered writing up current features any more but here's the code
It does Goblins, Cow's and Chicken's at the moment and will Loot and Bank Hides in Al-Kharid.
Supports SPS 1.0 only atm in this one looting isn't fully done, I have another version that does feathers and has a different in fight check but it still has a few things that need sorting out.
I cant be bothered writing up current features any more but here's the code
It does Goblins, Cow's and Chicken's at the moment and will Loot and Bank Hides in Al-Kharid.
Supports SPS 1.0 only atm in this one looting isn't fully done, I have another version that does feathers and has a different in fight check but it still has a few things that need sorting out.
program LeetzGhettoBot;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$I SRL/SRL/misc/debug.simba}
Const
//////////////////////////////////////////IMPORTANT!!IMPORTANT!!IMPORTANT!!IMORTANT\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Welcome to LeetzGhettoBot Pro version 1 by leetsxc B*TCH!!, Please review the 19 STEPS below and complete which are required before starting the script.\\
//Rememeber to Start the script inside yo hood aight\\
//////////////////////////////Start of $etup////////////////////////////////////
SERVER = 89; // Enter "0" to pick a random server. STEP 1
MEMBERS = True; //False if F2P True for P2P STEP 2
NumbOfPlayers = 1; //Dont touch
StartPlayer = 0;//Dont touch
/////BREAKING SETUP\\\\\
UseBreaks = True; //Do you want to take breaks? STEP 3
SwitchWorld = True; //Do you want to switch worlds after the break? STEP 4
BreakIn = 290; //How many minutes until you take a break? STEP 5
BreakInRandom = 10; //How many minutes should the "BreakIn" time be varied by? STEP 6
BreakFor = 7; //How many minutes will you break for? STEP 7
BreakForRandom = 7; //How many minutes should the "BreakFor" time be varied by? STEP 8
///END OF BREAKING SETUP\\\
///LeetzGhettoBot Setup\\\
// //Will do 30% Rights and 70% Lefts if True
Switching = False; //Do you want to use Spot switching for example if you are at cows and their are none detected on the MS go to the next pos?
RandomClicking = False; //Only activate it to true if your confident the mouse wont miss
SpecialAttack = True; //Do you want to special attack or not?
Debug = True; //Turn it to true if you would like messages showing up in the debug or False if not needed
Ethnicity = 'White'; //White/Black/Asian
Howmany = 1000; //Type how many "Caps" would you like to "Pop" in Npc's "Ayses"? will END STEP 9
Monster = 'Chicken'; //Type the npc name for the proggie report and other critical settings
Location = 'Lumbridge Chickens East'; //Where yo hood at? Hoods Supported are: Lumbridge Goblins, Lumbridge Cows STEP 10
CBSkill = 'Strength'; //Type 1 of 5 Skill's wished to be trained 'Range', 'Magic', 'Attack', 'Strength', 'Defence' Its important to change this for the anti-ban skill hovering STEP 11
Eat = True; //True or false STEP 12
Rest = True; //Rest if you do not have any Food instead of logging out when you have low health
Food = 'Tuna';//If true do not leave blank, 'Shrimp', 'Salmon', 'Tuna', 'Lobster', 'Swordfish', 'Shark' It supports pretty much all food types STEP 13
Pot = True; //True or false
Potion = 'Strength'; //If true do not leave blank, 'Super strength', 'Strength', 'Super Attack', 'Attack', 'Super defence', 'Defence', STEP 15 STEP 14
Potin = 10; //Time in Between Doses of Potion
PotInRandom = 2; //How many miliseconds should the Potin Time be varied by?
Pray = False; //U can Choose to use Prayer such as Protect against Melee etc you should be Potting for this
Prayer = 'Protect Against Melee';
ArrowCollect = False; //True or False STEP 16
Arrow = 'Mithril'; //If true do not leave blank, 'Bronze', 'Iron', 'Steel', 'Black', 'Mithril', 'Adamant', 'Rune' STEP 17
ItemCollect = False;
Item1 = ''; //Cow Hide, Gold Charm, Grape, Feather, Green Dragon Hide
Item2 = '';
BoneCollect = False;
Bone = 'Regular Bones';
Bury_Bones = False; //Bury or Deposit?
BankItems = False; //Deposit Item's you have collected or Withdraw Food and shit
UseBank = 'Al-kharid'; //Which bank you will use
Deposit_Collected = True;
Withdraw_Pots = True; //Withdraw Pots or not?
Keep_Pots_Always = 2; //Keep this many pot's in the inventory always so if you have it set to 5, bank and have 2 pots it withdraws 3
Withdraw_Food = True; //Withdraw more food or not
Keep_Food_Always = 1; //Same as keep pots always
///End of Ghetto Bot Setup\\\
var
BoneColor, BoneTol, ArrowColor, ArrowTol, ItemColor, ItemColor2, ItemTol, ItemTol2,
ItemDTM1, ItemDTM2,BoneDTM, EmptyVial, PotDTM, FoodDTM, Pots, Tries, LocationSwitch, Foods, Kills, Process,
Direction, Exptype, Time, x,y, xp: integer;
MakeShort, Banking: boolean;
BoneHueModifier, BoneSatModifier, ArrowHueModifier, ArrowSatModifier, ItemHueModifier, ItemSatModifier, ItemHueModifier2, ItemSatModifier2: Extended;
BoneText, ArrowText, ItemText,ItemText2, Text:TstringArray; //This belongs here because we may want to do things like ithril for faster recognition, one and the CONST's arnt going to do that
Bounds, DeathPath, MonsterPath, BankPath, pts, SafeSpot, SwitchPath : TPointArray;
HueModifier, SatModifier:TExtendedArray;
ColorCombo, TimersandStuff, TPASearchArea, ExpMonster, Color, Tol:TIntegerArray;
procedure DeclarePlayers;
var
i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['XP'];
With Players[0] do
begin
Name := ''; //Username. STEP 18
Pass := ''; //Password. STEP 19
Active := True;
end;
end;
////////////////////////////// End of Setup////////////////////////////////////
procedure AntiBan;
begin
if(not(LoggedIn))then
exit;
FindNormalRandoms;
Case Random (2500) of
0..18: Begin SleepAndMoveMouse(5000 + Random(750)); End;
19..24: Begin GameTab(tab_Inv) ExamineInv; GameTab(tab_Magic); SleepAndMoveMouse(2500 + Random(553)); End;
43..48: Begin GameTab(Tab_Stats); Wait(3000 + Random(400)); GameTab(tab_Inv); SleepAndMoveMouse(2550 + Random(658)); End;
49..54: Begin GameTab(tab_Stats) HoverSkill(CBSkill, False); GameTab(tab_Inv); SleepAndMoveMouse(2200 + Random(545)); End;
55..60: Begin PickUpMouse; End;
61..66: Begin RandomMovement; End;
67..72: Begin BoredHuman; End;
73..78: begin if(gametab(tab_inv))then Begin ExamineInv; End; end;
End;
end;
function FindTpa(HueModifier, SatModifier:TExtendedArray; Color, Tol, ColorCombo:TIntegerArray; Length1, Length2, xx1, yy1, xx2, yy2:Integer; Text, Option:TstringArray): Boolean;
var
Probability, ArrayLength, xx,yy,CTS, I,II: Integer;
TPA,StoreTPA: TPointArray;
ATPA: Array of TPointArray;
Uptextfound:boolean;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
For i := 0 to High(Color) do
begin
SetColorSpeed2Modifiers(HueModifier[i], SatModifier[i]);
if(FindColorsSpiralTolerance(x, y, StoreTPA, Color[i], xx1, yy1, xx2, yy2, Tol[i]))then
begin
RAaSTPA(StoreTPA, 60);
//Splitting Points once per Color Works best Because you have a higher probability of finding something with 2 colors on the same Area within a range
TPA := TPA+StoreTPA;
StoreTPA:=[];
end else
{*Color Combinations if we do not find for example the red on a chicken or the yellow on the feet inside a TPA it lowers the probability that the rest of the colors relate to a chicken and more likely
A hay bale or something this allows me to very accurately find Creatures or people or basically any item its sort of like TPA DTM Detection*}
For II:=0 to High(ColorCombo) do
if(i=ColorCombo[II])then
begin
Probability:=Probability+1;
if(Probability=High(ColorCombo)+1)then
begin
Writeln('Didnt Find any Probable Color Combinations Exiting');
break;
Exit;
end;
break;
end;
end;
ATPA := TPAToATPA(TPA, 30);
SortATPAFromSize(ATPA, 30, true);
ColorToleranceSpeed(CTS);
DebugATPABounds(ATPA);
if(MakeShort)then
ArrayLength:= 2
else
ArrayLength:=High(ATPA);
For I := 0 to ArrayLength do
begin
MiddleTPAEx(ATPA[i], x, y);
if(not(findcolortolerance(xx,yy,524459, x-25, y-50, x+25, y+25, 17)))then
begin
MMouse(x, y, 0, 0);
GetMousePos(x, y);
For II := 0 to High(Text) do
If(WaitUpText(Text[II],200-(II*200)))then
begin
ExpType:=ExpMonster[II];
writeln('ExpType = ' + inttostr(ExpType));
Uptextfound:=true;
end;
if(Uptextfound)then
begin
if(RandomClicking)then
begin
Case Random(9) of
0..2: begin //**30% Right Click Chance**\\
Mouse(x,y,0,0,false);
if(WaitoptionMulti(Option, 200))then
begin
Result := True;
Break;
end;
end;
3..9: begin //**70% Left Click Chance**\\
Mouse(x,y,0,0,True);
Result := True;
Break;
end;
END;
end else
begin
Mouse(x,y,0,0,false);
if(WaitoptionMulti(Option, 200))then
begin
Result := True;
Break;
end;
Uptextfound:=false;
end;
end;
end;
end;
end;
procedure SafeSpots;
begin
if(Monster='Goblin')then
begin
SPS_WalkToPos(Point(4865, 3740));
SPS_WalkToPos(Point(4875, 3720));
SPS_WalkToPos(Point(4815, 3755));
end;
end;
Procedure DoRest;
begin
if(Debug)then
writeln('We have Low Hp and have no food Need to bank or Log out');
SafeSpots;
mouse(715, 101, 10, 10, false);
if(waitoption('Rest', 1000))then
begin
Repeat
sleep(50);
Until(not(FindColorTolerance(x,y,255,727,26,741,41,2)));
sleep(10000+random(10000));
end;
end;
procedure VitalsManager;
begin
if(FindColorTolerance(x,y,255,727,26,741,41,3))then
begin
if(Eat)then
begin
if(Finddtm(FoodDTM, x, y, 553, 207, 736, 466))then
begin
if(Debug)then
writeln('We have Low Hp and have food in the inventory Lets eat');
mouse(x,y,4,4,true);
sleep(500);
Exit;
end else
begin
if(Withdraw_Food)then
begin
if(Debug)then
writeln('We have Low Hp and have No food We need to go Bank :)');
Banking:=true;
end else
if(Rest)then
begin
if(Debug)then
writeln('We have Low Hp, No Food and Withdraw Food Banking Disabled but Rest Enabled lets go Rest');
DoRest;
end;
Exit;
end;
end else
if(Rest)then
begin
if(Debug)then
writeln('We have Low HP and Eating is Disabled and Resting is Enabled Lets go rest');
DoRest;
end else
begin
if(Debug)then
writeln('We have Low Hp and Eating and Resting Are Disabled, So we are terminating the Script And logging out.');
Logout;
TerminateScript();
end;
end;
If(Pot=true)then
begin
if(GetSystemTime > TimersandStuff[2])then
begin
if(Debug=true)then
Writeln('Havnt Potted for the amount of time entered into potin Lets pot! and reset timer');
if(Finddtm(PotDTM, x,y, 551, 205, 736, 466))then
mouse(x,y,4,4,true);
TimersandStuff[2] := GetSystemTime + (Potin * 60000 + random(PotInRandom * 60000));
end;
end;
end;
{*
############################# *WAITFOREXPGAIN* by Leetsxc #######################################
Get's current Exp Total.. and then wait's until it has changed to a certain number.
##################################################################################################
*}
Function WaitForExpGain(ExpLeft:Integer): Boolean;
var
Time,CurrentXP, T: Integer;
begin
CurrentXp:=GetXPBar(1);
writeln('Current XP = ' + inttostr(CurrentXp));
T := GetSystemTime + 35000;
marktime(Time);
while FindFlag(x, y)=true and (timefrommark(Time) < 15000) do
sleep(50);
marktime(Time);
while ((timefrommark(Time) < 1500+Random(500)) and (srl_infight=false) and (GetXpBar(1) = CurrentXp)) do
sleep(50);
if((srl_infight=true) or (GetXpBar(1) > CurrentXp))then
begin
while (GetSystemTime < T) do
begin
VitalsManager;
if(srl_infight=false)then
break;
if(GetXpBar(1) >= (CurrentXp+ExpLeft))then
begin
Result := True;
Kills:=Kills+1;
Exit;
end;
Wait(50);
end;
Kills:=Kills+1;
end;
end;
procedure LeetFightProcess;
var
i,times:integer;
begin
if(FindTpa(HueModifier, SatModifier, Color, Tol, ColorCombo, 10, 10, TPASearchArea[0], TPASearchArea[1],
TPASearchArea[2], TPASearchArea[3], Text, Text))then
begin
WaitForExpGain(ExpType);
Tries:=0
end else
Tries:=Tries+1;
if(ArrowCollect)then
begin
For times:=0 To Random(3) do
begin
FindTpa([ArrowHueModifier], [ArrowSatModifier], [ArrowColor], [ArrowTol], ColorCombo, 3, 3, MSX1, MSY1, MSX2, MSY2, ArrowText, ['ick Up']);
end;
end;
if(ItemCollect)then
begin
if(Invfull)then
begin
Banking:=true;
exit;
end;
writeln('Item Collecting..');
if(FindTpa([ItemHueModifier], [ItemSatModifier], [ItemColor], [ItemTol], ColorCombo, 7, 14, MSX1, MSY1, MSX2, MSY2, ['Take'], ItemText))then
begin
Flag;
sleep(300+random(500));
end;
if(not(Item2=''))then
begin
FindTpa([ItemHueModifier2], [ItemSatModifier2], [ItemColor2], [ItemTol2], ColorCombo, 7, 14, MSX1, MSY1, MSX2, MSY2, ['Take '], ItemText);
writeln('Searching for item 2');
end;
end;
end;
function CheckBankUp: Boolean;
begin
Result:= WaitFindColor(x,y,4106994,195,26,321,43,5,3000);
end;
Procedure Countthem;
Var
done:Boolean;
times,row,u,i,o,p:Integer;
Begin
//Items, reseting their values before a count
row:=1;
u:=559;
i:=209;
o:=600;
p:=246
Repeat
if(finddtm(FoodDTM,x,y,u,i,o,p))then
foods:=foods+1;
if(Pot)then
if(finddtm(PotDTM,x,y,u,i,o,p))then
pots:=pots+1;
times:=times+1;
Case times of
1..3: begin
u:=u+41;
o:=o+41;
end;
4: begin
u:=u-123;
o:=o-123;
i:=i+37;
p:=p+37;
end;
End;
if(times=4)then
begin
if(row=7)then
begin
done:=true;
end else
begin
row:=row+1;
times:=0;
end;
end;
Until(done=true);
writeln('Found');
writeln(inttostr(Foods) + ' ' + Food + 's Left');
writeln(inttostr(Pots) + ' ' + Potion + ' Potions Left');
End;
Procedure BankingProcess;
begin
if(not(CheckBankUp))then
begin
MakeCompass('W');
SetAngle(0);
if(FindTpa([0.07], [1.07], [11189201], [20], ColorCombo, 7, 44, 194, 5, 322, 168, ['ank Bank boo'], ['ank Bank boo']))then
begin
if(Not(WaitFunc(@CheckBankUp, 50, 5000)))then BankingProcess;
end else
begin
BankingProcess;
end;
end;
if(Deposit_Collected)then
begin
if(FindDtm(ItemDTM1, x, y, 550, 205, 733, 467))then
begin
mouse(x, y, 3, 3, false);
WaitOptionMulti(['-All', 'eposit'], 3000);
sleep(random(300));
end;
if(not(Item2=''))then
if(FindDtm(ItemDTM2, x, y, 550, 205, 733, 467))then
begin
mouse(x, y, 3, 3, false);
WaitOptionMulti(['-All', 'eposit'], 3000);
sleep(random(300));
end;
end;
if(Withdraw_Food)then
begin
if(CheckBankUp)then
begin
Countthem;
if(foods<Keep_Food_Always)then
begin
if(finddtm(FoodDTM, x, y, 27, 83, 497, 293))then
begin
Mouse(x, y, 3, 4, false);
WaitOption('-X', 3000);
WaitFindColor(x, y, 0, 207, 392, 310, 411, 2, 3000);
sleep(2000);
TypeSendEx('' + InttoStr(Keep_Food_Always-foods), True);
end else
begin
Writeln('No Food Left In your bank.. Logging out');
Logout;
TerminateScript();
end;
end;
end;
end;
if(Withdraw_Pots)then
begin
Countthem;
if(pots<Keep_Pots_Always)then
begin
if(FindDtm(EmptyVial, x, y, 550, 205, 733, 467))then
begin
mouse(x, y, 3, 3, false);
WaitOptionMulti(['-All', 'eposit'], 3000);
sleep(random(300));
end;
if(finddtm(PotDTM, x, y, 27, 83, 497, 293))then
begin
Mouse(x, y, 3, 4, false);
WaitOption('-X', 3000);
WaitFindColor(x,y, 0, 207, 392, 310, 411, 2, 3000);
Sleep(2000);
TypeSendEx('' + InttoStr(Keep_Pots_Always-pots), True);
end else
begin
Writeln('No Pots Left In your bank');
Writeln('Loggin out may be optional later but for now No');
end;
end;
end;
Writeln('We are All done Exiting.. Bank and walking back to Monster destination');
Mouse(483,29,5,5,true); //CLICK BANK X
end;
Function CheckExitEntrance(IntoArea,OutofArea:Tpoint; Zone:TPointArray; CompassDirection:String) : Boolean;
var
MyPos:tpoint;
begin
while Result=false do
begin
SPS_WalktoPos(OutofArea);
flag;
sleep(3000+random(500));
MyPos := SPS_GetMyPos();
if(not((MyPos.x >= Zone[0].x) and (MyPos.y >= Zone[0].y) and (MyPos.x <= Zone[1].x) and (MyPos.y <= Zone[1].y)))then
begin
Case Monster of
'Cow': begin
writeln('At Cows Checking Door..');
sleep(1000);
SPS_WalktoPos(IntoArea);
sleep(500);
MakeCompass(CompassDirection);
if(FindTpa([0.06], [0.48], [3753296], [9], ColorCombo, 4, 6, 145, 2, 418, 186, ['Open Gate'], ['Open Gate']))then
begin
writeln('Found Gate and it was closed weve opened it now');
end else
begin
writeln('Didnt find the open uptext so someone must have opened it');
end;
end;
End;
end else
begin
SetAngle(0);
Result:=true;
writeln('Congratulations Weve Gone in to entrance or out of exit!');
Banking:=false;
end;
end;
end;
Function PassGuards(CompassDirection:String) : Boolean;
var
MyPos:tpoint;
begin
While Result=false do
begin
sleep(1000);
MyPos := SPS_GetMyPos();
writeln('At Al-Kharid Border Guards Passing Gate..');
sleep(500);
MakeCompass(CompassDirection);
SetAngle(1);
if(FindTpa([0.08], [0.58], [3819089], [7], ColorCombo, 40, 80, MSX1, MSY1, MSX2, MSY2, ['Open Gate'], ['Pay-toll']))then
begin
writeln('Found Gate and payed Toll :)');
SetAngle(0);
writeln('Congratulations Weve passed the gates and now we can go banking! ');
Result:=true;
end else
begin
writeln('Didnt find the open uptext so someone must have opened it');
end;
sleep(1000+Random(1000));
end;
end;
{*
##################################################################################################################
Makes sure your in the right Location Before Calling Fight or Banking Procedures.
##################################################################################################################
*}
Procedure LocationManager;
Var
i, posx, posy:integer;
MyPos:tpoint;
NotInZone:boolean;
begin
if(Banking=False)then
begin
if(Tries>=3)then
begin
Tries:=0;
MyPos := SPS_GetMyPos();
posx:=MyPos.x; posy:=MyPos.y;
if(Debug=True)then
writeln('My Position is ' + inttostr(posx) + ', ' + inttostr(posy));
if(not(Monster='Cow'))then
begin
if(not((Mypos.x>Bounds[0].x) and (Mypos.y>Bounds[0].y) and (Mypos.x<Bounds[1].x) and (Mypos.y<Bounds[1].y)))then
NotInZone:=true; //Zone1
end;
if(NotInZone)then
begin
writeln('Not in zone');
notinzone:=false;
SPS_WalkPath(Monsterpath); //Middle point if out of bounds
LocationManager;
end else
begin
if(Switching)then
begin
if(SPS_PosonMM(Switchpath[LocationSwitch]))then
begin
SPS_WalkToPos(Switchpath[LocationSwitch]);
end else
begin
SPS_WalkPath(Monsterpath);
LocationSwitch:=0;
Direction:=0;
end;
i:=High(Switchpath);
if(LocationSwitch=i)then
Direction:=1
else
Direction:=0;
if(Direction=0)then //Will cycle back ward once in Last position required for npc
LocationSwitch:=LocationSwitch+1 //This lets us toggle locations inside of a large area of monsters such as switching positions in a cow field
else
LocationSwitch:=LocationSwitch-1;
end;
end;
end;
LeetFightProcess;
end else
if((BankItems=True) and (Banking=True))then
begin
// if(not(Mypos.x>BankBoundsx1) and (Mypos.y>BankBoundsy1) and (Mypos.x<BankBoundsx2) and (Mypos.y<BankBoundsy2))then
begin
writeln('Banking!');
SPS_WalkPath(MonsterPath);
sleep(1000);
//CheckExitEntrance(OutofArea:Tpoint; Zonex1, Zoney1, Zonex2, Zoney2:Integer; CompassDirection:String)
CheckExitEntrance(Point(4855, 3590), Point(4835, 3595), [Point(4820, 3580), Point(4845, 3610)], 'W');
writeln('Outside of area now on our way to the bank!');
Case UseBank of
'Al-kharid': //May need to walk to a specific point and open a gate or whatever
begin
while not((Mypos.x>=4895) and (Mypos.y>=3740) and (Mypos.x<=4905) and (Mypos.y<=3755)) do
begin
if(SPS_WalkPath([Point(4840, 3615), Point(4850, 3655), Point(4870, 3685), Point(4875, 3720), Point(4900, 3750)]))then
begin
writeln('Walked to guards successfully');
end else
begin
writeln('We fucked up in the walking.. for some reason');
end;
MyPos := SPS_GetMyPos();
posx:=MyPos.x; posy:=MyPos.y;
end;
PassGuards('E');
//To Border Guards from cows
SPS_WalkPath([Point(4920, 3790), Point(4915, 3840), Point(4895, 3895), Point(4905, 3950), Point(4915, 3995)]); //From Border Guards to bank
BankingProcess;
while not((Mypos.x>=4910) and (Mypos.y>=3735) and (Mypos.x<=4925) and (Mypos.y<=3760)) do
begin
if(SPS_WalkPath([Point(4930, 3980), Point(4905, 3950), Point(4895, 3895), Point(4915, 3840), Point(4920, 3790), Point(4910, 3745)]))then //Back to Border Guards from bank
begin
writeln('Walked to guards successfully');
end else
begin
writeln('We fucked up in the walking.. for some reason Doing a NON SPS click to Kick Start');
mouse(616, 24, 5, 2, true);
flag;
end;
MyPos := SPS_GetMyPos();
posx:=MyPos.x; posy:=MyPos.y;
end;
PassGuards('W');
while not((Mypos.x>=4830) and (Mypos.y>=3585) and (Mypos.x<=4845) and (Mypos.y<=3605)) do
begin
if(SPS_WalkPath([Point(4870, 3720), Point(4870, 3680), Point(4835, 3640), Point(4840, 3595)]))then
begin
writeln('Walked to Cow gate successfully');
end else
begin
writeln('We fucked up in the walking.. for some reason');
end;
MyPos := SPS_GetMyPos();
posx:=MyPos.x; posy:=MyPos.y;
end; //Back to monsters from border guards
CheckExitEntrance(Point(4840, 3595),Point(4860, 3595), [Point(4850, 3585), Point(4870, 3605)], 'E');
end;
'Lumbridge Castle':
begin
SPS_WalkPath(BankPath);
end;
End;
end;
end;
end;
Procedure Setup;
var
ItemDTMZ, times, howmanyz,ItemColorz, ItemTolz:integer;
ItemHueModifierz, ItemSatModifierz:extended;
Item:String;
ItemTextz:TstringArray;
Begin
if(Eat=True)then
begin
Case Food of //All Working
'Shrimps': FoodDTM := DTMFromString('mggAAAHicY2NgYPBiYmBwBmJXILYFYjsgDgRiRkYGhv9AeREgLQrE7FA8O00MKMqEgTkZsANGHBgCAJTmBB0=');
'Salmon': FoodDTM := DTMFromString('mlwAAAHicY2dgYMhhYmBIA+JcIC4C4koonQfE7IwMDGxAzIiEOYCYD4iXmIgDdTNhxZwMuAEjHgwFABMbBFg=');
'Tuna': FoodDTM := DTMFromString('mrAAAAHic42BgYJjJxMDQC8RLmCDshVD+VCCeD8STGIFsIJ4AxPOAeBoQzwbibiDuAeLYoACgKUw4MRcDfsBIAMMAAJRZCqI=');
'Lobster': FoodDTM := DTMFromString('mrAAAAHic42BgYJjJxMAwB4jnAvESKJ4HxJOgNCsjUBEjhP4PZP4G4j9AzATk8wHxokBxEA8n5mTADxgJYBgAAOjMCT8=');
'Swordfish': FoodDTM := DTMFromString('mrAAAAHic42BgYDjIxMBwBIhPAvE+IN4FxIeB+BwQnwBiZkYGhn9AdYxA+g+Q5gHSbEDMCcTcQNwW1wsUZcKJORnwA0YCGAYAbUUJ8g==');
'Shark': FoodDTM := DTMFromString('mwQAAAHic42RgYDjMxMBwEIhPA/EpIN4PxDuB+BwQHwXik0B8D6juBhA/AuKPQPwcyn8NxC+B+A4Qz6pNB5JMeDEnA2HASASGAwC8TxCh');
'Monkfish': FoodDTM := DTMFromString('m6wAAAHic42ZgYHBkYmDwBmJ7IHYHYi8g9gdiPyAOgsq5ALEdEOswMjDoArEaEKtDaWUo2wiITYDYFIjNgDjQww5oOhNRmJOBeMBIAkYCAHHsBis=');
End;
end;
if(Pot=True)then
begin
EmptyVial:= DTMFromString('mggAAAHicY2NgYMhlYmBIBeJCIC4C4mQgzgbiF0C5Z0D8BIg/AvF7IL4KxOER0UCSCQvGDhhxYAgAAHEBCRc=');
Case Potion of
'Super Strength': PotDTM := DTMFromString('mwQAAAHic42RgYJjOxMAwD4gnAPFsIO4H4jlAPAmIZwFxDxDHMTIwhDNCaBAOgmJfKI4C4h0bNgBNY8KL2RkIA0YiMBwAAEVMCqk=');
'Strength': PotDTM := DTMFromString('mggAAAHicY2NgYMhmYmBIBeJCIC4C4mQmiNhHoNwzIH7CAGG/B+KrQHz4oC2QZMLAnAzYASMODAEArRYJ3g==');
'Super Attack': PotDTM := DTMFromString('mwQAAAHic42RgYJjOxMAwD4gnAPFsIO4H4jlAPAmIZwFxDxDHMTIwhDNCaBAOgmJfKI4CYkubbUDTmPBidgbCgJEIDAcA2VQJvA==');
'Attack': PotDTM := DTMFromString('mwQAAAHic42RgYJjOxMAwD4gnAPFsIO4H4jlAPAmIZwFxDxDHMTIwhDNCaBAOgmJfKI4CYvPVG4CmMeHF7AyEASMRGA4ACBMKIw==');
'Super Defence': PotDTM := DTMFromString('mggAAAHicY2NgYAhnYmCIAOJgII6BsoOA+BVQ7g4QPwXiJ0D8FohfAjG/LisDuxA7HDMxMoExP1COFQtmxIEhAAAcUghZ');
'Rang': PotDTM := DTMFromString('mwQAAAHic42RgYJjGxMDQA8TzgHgCEM8G4n4gngPEk4B4FhDHMTIwRABxOCOEDcJBUOwLxdYz9wJNY8KL2RkIA0YiMBwAAAUTCh8=');
'Magic': PotDTM := DTMFromString('mwQAAAHic42RgYJjOxMAwD4gnAPFsIO4H4jlAPAmIZwFxDxDHMTIwhDNCaBAOgmJfKI4CYufy6UDTmPBidgbCgJEIDAcA6rUJ4g==');
End;
end;
if(BoneCollect=True)then
begin
Case Bone of
'Regular Bones': begin
BoneColor:=3820930;
BoneTol:=99;
BoneHueModifier:=0.03;
BoneSatModifier:=0.02;
BoneText:=['night'];
BoneDTM := DTMFromString('mggAAAHicY2NgYAhnYmCIAOJgII6BsoOA+BVQ7g4QPwXiJ0D8FohfAjG/LisDuxA7HDMxMoExP1COFQtmxIEhAAAcUghZ');
end;
'Big Bones': begin
BoneColor:=3820930;
BoneTol:=99;
BoneHueModifier:=0.03;
BoneSatModifier:=0.02;
BoneText:=['night'];
BoneDTM := DTMFromString('mggAAAHicY2NgYAhnYmCIAOJgII6BsoOA+BVQ7g4QPwXiJ0D8FohfAjG/LisDuxA7HDMxMoExP1COFQtmxIEhAAAcUghZ');
end;
'Dragon Bones': begin
BoneColor:=3820930;
BoneTol:=99;
BoneHueModifier:=0.03;
BoneSatModifier:=0.02;
BoneText:=['night'];
BoneDTM := DTMFromString('mggAAAHicY2NgYAhnYmCIAOJgII6BsoOA+BVQ7g4QPwXiJ0D8FohfAjG/LisDuxA7HDMxMoExP1COFQtmxIEhAAAcUghZ');
end;
'Baby Dragon Bones': begin
BoneColor:=3820930;
BoneTol:=99;
BoneHueModifier:=0.03;
BoneSatModifier:=0.02;
BoneText:=['night'];
BoneDTM := DTMFromString('mggAAAHicY2NgYAhnYmCIAOJgII6BsoOA+BVQ7g4QPwXiJ0D8FohfAjG/LisDuxA7HDMxMoExP1COFQtmxIEhAAAcUghZ');
end;
End;
end;
if(ItemCollect=True)then
begin
if(not(Item2=''))then //This Allows us to use 2 items with out 2 cases :)
begin
Howmanyz:=2
end else
begin
Howmanyz:=1
end;
item:=Item1;
Repeat
times:=times+1;
Case Item1 of
'Gold Charm': begin
ArrowColor:=3820930;
ArrowTol:=5;
ArrowHueModifier:=0.22;
ArrowSatModifier:=5.75;
ArrowText:=['night'];
end;
'Cow Hide': begin //Done
if(times=1)then
begin
ItemDTM1:= DTMFromString('mlwAAAHicY2dgYJjKxMCwBIhnAHE3EHcyQcQWATEHIwMDGxD/AqpjAtJ8QCwKxPxAvHLRIpAoVsyKU4aBgREPhgIAdYoHhQ==');
end else
begin
ItemDTM2:= DTMFromString('mlwAAAHicY2dgYJjKxMCwBIhnAHE3EHcyQcQWATEHIwMDGxD/AqpjAtJ8QCwKxPxAvHLRIpAoVsyKU4aBgREPhgIAdYoHhQ==');
end;
ItemColorz:=15135974;
ItemTolz:=5;
ItemHueModifierz:=6.67;
ItemSatModifierz:=6.89;
ItemTextz:=['ake Cow'];
end;
'Green Dragon Hide': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Coins': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Feather': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Grape': begin //Done
ItemColorz:=7152238;
ItemTolz:=6;
ItemHueModifierz:=0.01;
ItemSatModifierz:=0.10;
ItemTextz:=['ake Grap'];
end;
'Something else': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
End;
if(times=1)then
begin
Item:=Item2;
ItemColor:=ItemColorz;
ItemTol:=ItemTolz;
ItemHueModifier:=ItemHueModifierz;
ItemSatModifier:=ItemSatModifierz;
ItemText:=ItemTextz;
end else
begin
ItemColor2:=ItemColorz;
ItemTol2:=ItemTolz;
ItemHueModifier2:=ItemHueModifierz;
ItemSatModifier2:=ItemSatModifierz;
ItemText2:=ItemTextz;
end;
FreeDTM(ItemDTMZ);
Until(times=howmanyz);
end;
if(Arrowcollect=True)then
begin
Case Arrow of //NEED TPAS FOR EACH ARROW FOR ARROW COLLECT
'Bronze': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Iron': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Steel': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Black': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Mithril': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Adamant': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
'Rune': begin
ArrowColor:=3820930;
ArrowTol:=99;
ArrowHueModifier:=0.03;
ArrowSatModifier:=0.02;
ArrowText:=['night'];
end;
End;
end;
Case Location of
'Port Sarim Knight': begin
MakeCompass('W');
SetAngle(0);
TPASearchArea:=[90, 176, 90, 176];
Color:=[2714502, 3245689];
Tol:=[12, 12];
HueModifier:=[0.08, 0.14];
SatModifier:=[0.09, 0.69];
Text:=['night'];
end;
'Varrock Bear': begin
MakeCompass('S');
TPASearchArea:=[MSX1, MSY1, MSX2, MSY2];
Color:=[2714502, 3245689];
Tol:=[12, 12];
HueModifier:=[0.08, 0.14];
SatModifier:=[0.09, 0.69];
Text:=['ear'];
end;
'Varrock Zammy Monk': begin
MakeCompass('W');
SetAngle(0);
TPASearchArea:=[MSX1, MSY1, MSX2, MSY2];
Color:=[2714502, 3245689];
Tol:=[12, 12];
HueModifier:=[0.08, 0.14];
SatModifier:=[0.09, 0.69];
Text:=['onk'];
SPS_Setup(RUNESCAPE_SURFACE, ['11_8']);
Pts := [Point(4762, 3455), Point(4724, 3452)];
end;
'Lumbridge Chickens West': begin
SetAngle(0);
TPASearchArea:=[MSX1, MSY1, MSX2, MSY2];
Color:=[2714502, 3245689];
Tol:=[12, 12];
HueModifier:=[0.08, 0.14];
SatModifier:=[0.09, 0.69];
Text:=['onk'];
SPS_Setup(RUNESCAPE_SURFACE, ['11_8']);
Pts := [Point(4762, 3455), Point(4724, 3452)];
end;
'Lumbridge Chickens East': begin
ColorCombo:=[0,1];
MakeShort:=true;
SetAngle(0);
TPASearchArea:=[MSX1, MSY1, MSX2, MSY2];
Bounds:=[Point(4735, 3459), Point(4775, 3475)];
//Color Combo Colors are most important and come first in the arrays
Color:=[2636931,2801622,7125205,3434635];
Tol:=[6, 21, 20, 6];
HueModifier:=[0.48, 0.05, 0.09, 0.16];
SatModifier:=[0.14, 1.44, 1.79, 1.25];
ExpMonster:=[16];
Text:=['ck Chicken'];
SPS_Setup(RUNESCAPE_SURFACE, ['11_8']);
MonsterPath := [Point(4755, 3467)];
end;
'Lumbridge Goblins': begin
SetAngle(0);
TPASearchArea:=[MSX1, MSY1, MSX2, MSY2];
Bounds:=[Point(4805, 3685), Point(4875, 3715)];
Color:=[2714502, 3245689];
Tol:=[12, 12];
HueModifier:=[0.08, 0.14];
SatModifier:=[0.09, 0.69];
ExpMonster:=[26, 26];
Text:=['ck Goblin', 'ck Spid'];
SPS_Setup(RUNESCAPE_SURFACE, ['12_9','11_9']);
MonsterPath := [Point(4840,3700)];
SafeSpot := [Point(4858, 3687), Point(4859, 3721), Point(4812, 3735)];
end;
'Lumbridge Cows': begin
SetAngle(0);
TPASearchArea:=[MSX1, MSY1, MSX2, MSY2];
Color:=[1450792, 5732749, 3817548, 6390186];
Tol:=[5, 10, 4, 11];
HueModifier:=[0.10, 0.03, 0.24, 0.04];
SatModifier:=[0.27, 0.43, 0.22, 0.25];
ExpMonster:=[42, 32];
Text:=['ck Cow (', 'ck Cow ca'];
SPS_Setup(RUNESCAPE_SURFACE, ['12_10', '12_9' , '12_8', '11_9', '11_8']);
Pts := [Point(4875, 3575)]; //This should be a path incase you are outside the bounds by to much for the point to still be on the screen
Switchpath:= [Point(4875, 3620), Point(4870, 3580), Point(4865, 3540), Point(4870, 3687), Point(4850, 3495)];
//DeathCheck should also probably be done once detected outside of monster zone just incase
MonsterPath:= [Point(4850, 3660), Point(4850, 3445), Point(4865, 3590),Point(4860, 3540), Point(4850, 3500), Point(4865, 3530), Point(4875, 3585)];
SafeSpot := [Point(4858, 3687), Point(4859, 3721), Point(4812, 3735)];
end;
End;
end;
procedure Proggy;
begin
Writeln('**/*/*/*/*/*/*/*/*/*/*\*\*\*\*\*\*\*\*\*\**');
Writeln(' $$$$$$$$$LeetzGhettoBot!$$$$$$$$$$');
Writeln('Time Running: ' + TimeRunning);
Writeln('Killed: ' + IntToStr(kills) + ' ' + Monster + 's');
xp := kills*exptype; //Calculate Exp Ratio's of All skill's difference between HP
Writeln(CBSkill + ' Total EXP Gain: ' + IntToStr(xp));
// Writeln('HP EXP Gain: ' + IntToStr(xp));
Writeln('**\*\*\*\*\*\*\*\*\*\*/*/*/*/*/*/*/*/*/*/**');
end;
procedure Greeter;
begin
Case Ethnicity of
'White': writeln('Hey bro!,');
'Black': writeln('WADUP Gangsta!,');
'Asian': writeln('RReeeerll Herro deyer!,');
END;
sleep(100);
writeln('Welcome to Leetsxcz GhettoBot... "B!TCH!!"');
sleep(2000);
end;
procedure FREEDTMZ;
begin
FreeDTM(EmptyVial);
FreeDTM(ItemDTM1);
FreeDTM(ItemDTM2);
FreeDTM(PotDTM);
if(BoneCollect)then
FreeDTM(BoneDTM);
FreeDTM(FoodDTM);
end;
Procedure KillTrialMembershipSpam;
var
x, y:integer;
begin
Repeat
if(WaitFindColor(x,y, 6533359 ,206, 183, 250, 212, 3, 1000))then
begin
if(FindColorTolerance(x, y, 6533359, 237, 51, 256, 66, 3))then
begin
mouse(163, 285, 21, 202, true);
sleep(1000);
end;
end else
begin
Break;
end;
Until(false);
end;
procedure TakeBreaks;
begin
if not LoggedIn then
Exit;
WriteLn('Taking a break.');
Logout;
Wait(BreakFor * 60000 + Random(BreakForRandom * 60000));
WriteLn('Logging back in.');
Case (SwitchWorld) of
True: if LoginPlayerToLob then
ChangeWorld(RandomWorld(True, False));
False: LoginPlayer;
end;
Wait(2000);
TimersandStuff[1]:= TimersandStuff[1]+1;
TimersandStuff[0] := GetSystemTime + (BreakIn * 60000 + Random(BreakInRandom * 60000));
end;
begin
Smart_server := SERVER;
Smart_Signed := TRUE;
Smart_Members := MEMBERS;
Smart_SuperDetail := FALSE;
SetupSRL;
mousespeed:=randomrange(29,36);
DeclarePlayers;
LoginPlayer;
KillTrialMembershipSpam;
Setup;
Greeter;
Wait(2000);
Addonterminate('FREEDTMZ();');
TimersandStuff := [0,1,2];
TimersandStuff[0] := GetSystemTime + (BreakIn * 60000 + Random(BreakInRandom * 60000));
if(Pot=true)then
TimersandStuff[2] := GetSystemTime + (Potin * 60000 + random(PotInRandom * 60000));
repeat
process:=0;
LocationManager;
VitalsManager;
Proggy;
antiban;
if (UseBreaks) then
if (GetSystemTime > TimersandStuff[0]) then
begin
writeln('Taking a break');
TakeBreaks;
end;
until (not Loggedin);
end.