Simba Code:
program xtraivy;
{$DEFINE SMART}
{$i SRL\SRL.simba}
{$i SRL/SRL/skill/woodcutting.simba}
{$i sps/sps.simba}
{♠===================================================================♠
Instructions:
1. Start by IVY (This script was written for CastleWars but it should work
elsewhere.
2. Make sure hatchet is equiped
3.Leave bot to work it's magic
4. Check every now and again as Simba hasn't done all Randoms!
♠XtraIVY♠
♠Release Date♠: 17/02/2012
♠Author♠: xtrapsp
♠Support♠: [url]http://villavu.com/forum/showthread.php?t=75528[/url]
Changelog:
06/03/2012 - Theres been a huge SRL Update so I'm learning source. Tweaking parts of code!
23/02/2012 - Changed around with the Nest Settings
20/02/2012 - Cleaned up script a bit + Setup script for addons
17/02/2012 - Chopping done.
18/02/2012 - Added Various antiban.
19/02/2012 - Added elements which aren't in use yet.
♠===================================================================♠}
Const
SRLStats_Username = '';
SRLStats_Password = '';
NumbOfPlayers= 1;
StartPlayer= 0;
Debug = True;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
BoxRewards := ['amp'];
lampSkill := SKILL_WOODCUTTING;
Member := True;
Active := True;
end;
end;
Procedure Bank;
begin
begin
OpenBankChestEdge(SRL_BANK_CW);
Until(BankScreen);
begin
DepositAll;
end;
end;
end;
Procedure Banking;
var
myPath:TPointArray;
begin
Writeln('Attempting to walk to bank in Castle Wars');
SPS_Setup(RUNESCAPE_SURFACE,['3_10','4_10']);//SPS Areas
myPath :=[ Point(1503, 4368), Point(1564, 4365), Point(1606, 4366),
Point(1635, 4355), Point(1643, 4324), Point(1648, 4300),
Point(1645, 4286), Point(1628, 4279), Point(1605, 4280),
Point(1595, 4309), Point(1575, 4280), Point(1597, 4311)];//Path
SPS_WalkPath(myPath);
While (IsMoving) do
Bank;
end;
Procedure AFK;
begin
if not loggedIn then Exit;
Case Random (100) Of
1..15 : Wait(1000 + Random (3050));
16..24 : Wait (1340 + Random (1093));
25..45: Wait (1211 + Random (6000));
46..47: Wait (20000 + Random (10000)); // This looks like you've gone to get a drink
end;
end;
function MyFindBirdsNest: Boolean; // Modified from VineVanguisher
var
x, y, i: Integer;
TileArray: array [0..5] of TPoint;
BirdLine, ChopLine: Integer;
begin
if Debug then Writeln('Looking for a birds nest');
BirdLine:= -1;
ChopLine:= -1;
for i:=8 downto 1 do
if (Pos('A bird', GetChatBoxText(i, 255))<>0) then
begin
BirdLine:= i;
AFK;
end;
if (BirdLine = -1) then
Exit;
if Debug then Writeln('Found uptext for nests');
for i:=8 downto 1 do
if (Pos('wing you', GetChatBoxText(i, clMessage))<>0) then
begin
ChopLine:= i;
Break;
end;
if (ChopLine < BirdLine) then
begin
if Debug then Writeln('Havent Chopped the vines yet');
for i:=0 to 5 do
TileArray[i]:= GridCoords(Point((i mod 3)-2, i div 3));
for i:=0 to 5 do
begin
MMouse(TileArray[i].x-5, TileArray[i].y-5, 11, 11)
if WaitUptextMulti(['ake B', 'Bird', 'nest'], 1000) then
begin
GetMousePos(x, y);
if Debug then Writeln('Found a birds nest!');
Mouse(x, y, 0, 0, True);
Result:= True;
AFK;
Exit;
end;
end;
if FindObjEx(x, y, ['ake B', 'Bird', 'nest'], [2767422, 2961972, 3818051], 5, 50, 191, 149, 354, 252) then
begin
Mouse(x, y, 0, 0, True);
Result:= True;
Wait(1500+Random(500))
Exit;
end;
end;
if Debug then Writeln('Finished looking for a birds nest');
end;
procedure CheckSRLStats;
begin
if ((SRLStats_Username= '') and (SRLStats_Password = '')) then
begin
case MessageBox('No Stats account entered, would you like to register?','SRL Stats',mbYesNoCancel) of
mrYes:
begin
OpenWebPage('http://stats.villavu.com/register');
TerminateScript;
end;
mrNo:
begin
SetupSRLStats(837, 'Anonymous', 'anon1337');
Exit;
end;
mrCancel: TerminateScript;
end;
end else
SetupSRLStats(837, SRLStats_Username, SRLStats_Password);
end;
procedure x_Stats_Commit;
var
Gained: Integer;
begin
stats_IncVariable('Woodcutting EXP', (Gained));
Stats_Commit;
Writeln('Updated SRL Stats')
end;
Procedure ProgressReport;
var
startEXP, newExp, Gained : Integer;
begin
startExp := Players[CurrentPlayer].Integers[0];
newExp := GetXPBarTotal;
Gained := newExp - startExp;
WriteLn('Exp gained: ' + ToStr(Gained));
x_Stats_Commit;
end;
{♠===================================================================♠}
////////////////////////////////////////////////////////////////////////////////
////////////AutoColour Feature (I'm British I spell it like Colour)/////////////
function IVYColour: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.03, 0.08);
if not (FindColorsTolerance(arP, 4619873, MSX1, MSY1, MSX2, MSY2, 10)) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function Nestcolour: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.39, 0.74);
if not (FindColorsTolerance(arP, 2964028, MSX1, MSY1, MSX2, MSY2, 10)) then
begin
Writeln('Failed to find the nest, cannot pickup.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('Failed to find the nest, cannot pickup.');
end;
procedure Chop;
var
X, Y: Integer;
begin
if not LoggedIn then
Exit;
FindNormalRandoms;
SetColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 0.07);
if FindObj(X, Y, 'Iv', 4619873, 8) then
begin
mouse( x, y, 2, 2, true);
wait(687 + random(15000))
MMouse( x, y, 10, 10);
end;
(* We revert back to the defaults here. *)
SetColorSpeed2Modifiers(0.2, 0.2);
SetColorToleranceSpeed(1);
if InvFull Then
begin
Banking;
end;
end;
Procedure StatsGuise(wat:String); // Thanks YoHoJo
Begin
Status(wat);
Disguise(wat);
End;
Procedure Antiban_Upgrade;
var
I: Integer;
CurrentCompassDegree: Extended;
begin
I := Random(1000);
StatsGuise('AntiBan');
case (I) of
0..99 :
begin
GameTab(tab_Stats);
HoverSkill('Woodcutting', False);
GameTab(28);
end;
100..200 :
begin
SleepAndMoveMouse(7000 + Random(500));
MakeCompass(CurrentCompassDegree-18+Random(32));
end;
200..210 :
begin
GameTab(Tab_Stats);
MakeCompass(CurrentCompassDegree-2+Random(34));
Wait(3000 + Random(500));
GameTab(28);
end;
211..220 :
begin
BoredHuman;
MakeCompass('N')
end;
221..300 :
begin
GameTab(Tab_Stats);
Wait(100 + Random(1000));
end;
end;
end;
Procedure FindNest_old;
var
X, Y: Integer;
Begin
if not LoggedIn then
Exit;
FindNormalRandoms;
If FindObjCustom(x, y, ['Ne', 'st'], [3290938,3883332], 5) Then
begin
Mouse( x, y, 2, 2, True);
Writeln('Found a nest... Attempting to pickup');
MakeCompass(10 + random(50));
end;
End;
Procedure X_FindNest; ///FINISH THIS WHEN YOU HAVE A NEST
var
X, Y, Colour: Integer;
begin
if not LoggedIn then
Exit;
FindNormalRandoms;
Colour := NestColour;
if FindObj(X, Y, 'Nes', NestColour, 10) then
begin
mouse( x, y, 2, 2, true);
end;
If Not FindObj (X, Y, 'Nes', NestColour, 10) then
begin
Chop;
end;
end;
Procedure FindEmptyNest; //Probably not needed. It's a procedure incase the script drops a nest randomly?
var
X, Y, EmptyNest: Integer;
Begin
if not LoggedIn then
Exit;
FindNormalRandoms;
EmptyNest := DTMFromString('mlwAAAHicY2dgYMhmZGDIAuI4IE4B4nwgLgfiIiCew8TAsByIFwDxDCCeDsTzoGKeHhYMjo4WDN7ejkC2PYObmxmDjY0Gg56eBgM+wIgHQwEA+fEMeg==')
If FindDTM(EmptyNest, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
Writeln('Found a nest... Attempting to pickup');
MMouse (x, y, 5, 5);
MakeCompass(0 + random(50));
If IsUpText('nes') Then
Mouse(x, y, 0, 0, True);
End;
FreeDTM(EmptyNest);
End;
Procedure X_CrushNest;
var
X, Y, CrushNest: Integer;
Begin
if not LoggedIn then
Exit;
FindNormalRandoms;
CrushNest := DTMFromString('mggAAAHicY2NgYOADYiEgFgNiGSDmZYAATijNCGULQWkTAw0gyYSBuRiwA0YcGAIAboABOg==')
If FindDTM(CrushNest, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
Writeln('Found a nest inside Inventory, Attempting to crush');
MMouse (x, y, 5, 5);
If IsUpText('cru') Then
Mouse(x, y, 0, 0, True);
End;
FreeDTM(CrushNest);
End;
Procedure Joincommunity;
begin
case MessageBox('While the bot is running, would you like to browse our other scripts?','Community Site',mbYesNoCancel) of
mrYes:
begin
OpenWebPage('http://bot.lizardguru.com');
end;
mrNo:
begin
Exit;
end;
mrCancel: TerminateScript;
end;
end;
Procedure W2IVY;
var
myPath:TPointArray;
begin
Writeln('Attempting to walk to back to IVY');
SPS_Setup(RUNESCAPE_SURFACE,['3_10','4_10','3_11']);//SPS Areas
myPath := [Point(1592, 4279), Point(1635, 4279), Point(1645, 4314),
Point(1647, 4351), Point(1594, 4385), Point(1543, 4410),
Point(1517, 4372), Point(1534, 4368), Point(1505, 4370),
Point(1519, 4369), Point(1522, 4372), Point(1514, 4375),
Point(1509, 4372), Point(1518, 4372), Point(1510, 4365),
Point(1528, 4373), Point(1519, 4369)];
SPS_WalkPath(myPath);
end;
begin
SetupSRL;
//Joincommunity;
DeclarePlayers;
//CheckSRLStats;
LoginPlayer;
ToggleXPBar(True);
Players[CurrentPlayer].Integers[0] := GetXPBarTotal;
Writeln('Your using XtraIvy V 1.00');
Writeln('Please report any bugs on the thread');
Writeln('Thanks for using the most flawless IVY script on Simba :)');
Repeat
FindNormalRandoms;
Banking;
Chop;
MyFindBirdsNest;
Antiban_Upgrade;
AFK;
//X_CrushNest;
//ProgressReport;
until(Not LoggedIn);
End.