vizzyy
2014-03-15 01:38:05
Yadidadi
Work in progress. i'm Aware of redundancies.
axe equipped, Coins first slot , airs second, laws third, eaths fourth (bank slots), ensure bank scrolled all the way up (for repairing axe), obvi will require cami tele magic level
if skiller then it uses teletabs
pretty awesome ent detection, nests, axe repair, bank and chop functions
will switch world per interval, based on elfy's world switch that i edited(really unreliable but i added because of the whole world 85/86 bullshit)
also, a quick shoutout to the community, as I have pulled snippets from other scripts .
Work in progress. i'm Aware of redundancies.
axe equipped, Coins first slot , airs second, laws third, eaths fourth (bank slots), ensure bank scrolled all the way up (for repairing axe), obvi will require cami tele magic level
if skiller then it uses teletabs
pretty awesome ent detection, nests, axe repair, bank and chop functions
will switch world per interval, based on elfy's world switch that i edited(really unreliable but i added because of the whole world 85/86 bullshit)
also, a quick shoutout to the community, as I have pulled snippets from other scripts .
program SeersMagics;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.Simba}
{$I SRL-OSR/SRL/Reflection/Reflection.simba}
{$I SRL-OSR/SRL/misc/al_functions.simba}
var
CurTime, ProgTime,plantTime,birdsnest,timesswitched,worldtime,switchinterval,ents,ProgBank ,died, TreeFail, randoms, Lagg,brokentimes, TreeColor, BankColor1, spot: integer;
pin,axetype: string;
skiller: boolean;
toTrees,toBank,seersToTrees,toBob,fromBob,seersBanks:TPointArray;
myloc,currentTree:TPoint;
evacced,pickedPlant:boolean;
ent:tnpc;
entnpcs:tnpcarray;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=True;
pin:='';
skiller:=false;
SetScreenName(Players[CurrentPlayer].Nick);
End;
procedure initVars;
begin
lampskill:='woodcutting';
AxeType:='Drag';
TreeColor:= 7579819;
evacced:=false;
pickedPlant:=false;
BankColor1:=8555406;
MarkTime(ProgTime);
MarkTime(worldtime);
switchinterval:=randomrange(450,700);
treefail:=0;
ProgBank := 0;
R_RunAwayDirection := 'random';
R_Reincarnate := True;
R_CombatRandoms := True;
timesswitched:=0;
died:=0;
ents:=0;
brokentimes:=0;
randoms:=0;
birdsnest:=0;
seersbanks:=[point(2721,3494),point(2722,3494),point(2724,3494),point(2727,3494),point(2728,3494),point(2729,3494)];
toTrees := [Point(2725 + RandomRange(-2, 2), 3492 + RandomRange(-2, 2)), Point(2726 + RandomRange(-2, 2), 3480 + RandomRange(-2, 2)), Point(2724 + RandomRange(-2, 2), 3464 + RandomRange(-2, 2)), Point(2718 + RandomRange(-2, 2), 3449 + RandomRange(-2, 2)), Point(2717 + RandomRange(-2, 2), 3433 + RandomRange(-2, 2)), Point(2716 + RandomRange(-2, 2), 3417 + RandomRange(-2, 2)), Point(2715 + RandomRange(-2, 2), 3402 + RandomRange(-2, 2)), Point(2701 + RandomRange(-2, 2), 3395 + RandomRange(-2, 2)),point(2703 + RandomRange(-2, 2),3397 + RandomRange(-2, 2))];
toBank:=[Point(2702 + RandomRange(-2, 2), 3398 + RandomRange(-2, 2)), Point(2703 + RandomRange(-2, 2), 3393 + RandomRange(-2, 2)), Point(2708 + RandomRange(-2, 2), 3392 + RandomRange(-2, 2)), Point(2713 + RandomRange(-2, 2), 3392 + RandomRange(-2, 2)), Point(2714 + RandomRange(-2, 2), 3397 + RandomRange(-2, 2)), Point(2716 + RandomRange(-2, 2), 3402 + RandomRange(-2, 2)), Point(2715 + RandomRange(-2, 2), 3407 + RandomRange(-2, 2)), Point(2715 + RandomRange(-2, 2), 3412 + RandomRange(-2, 2)), Point(2715 + RandomRange(-2, 2), 3417 + RandomRange(-2, 2)), Point(2714 + RandomRange(-2, 2), 3422 + RandomRange(-2, 2)), Point(2713 + RandomRange(-2, 2), 3427 + RandomRange(-2, 2)), Point(2713 + RandomRange(-2, 2), 3432 + RandomRange(-2, 2)), Point(2713 + RandomRange(-2, 2), 3437 + RandomRange(-2, 2)), Point(2710 + RandomRange(-2, 2), 3442 + RandomRange(-2, 2)), Point(2712 + RandomRange(-2, 2), 3447 + RandomRange(-2, 2)), Point(2714 + RandomRange(-2, 2), 3452 + RandomRange(-2, 2)), Point(2718 + RandomRange(-2, 2), 3456 + RandomRange(-2, 2)), Point(2718 + RandomRange(-2, 2), 3461 + RandomRange(-2, 2)), Point(2718 + RandomRange(-2, 2), 3466 + RandomRange(-2, 2)), Point(2720 + RandomRange(-2, 2), 3471 + RandomRange(-2, 2)), Point(2724 + RandomRange(-2, 2), 3475 + RandomRange(-2, 2)), Point(2726 + RandomRange(-2, 2), 3480 + RandomRange(-2, 2)), Point(2727 + RandomRange(-2, 2), 3485 + RandomRange(-2, 2)), Point(2726 + RandomRange(-2, 2), 3490 + RandomRange(-2, 2))];
end;
procedure ElfMouse(x, y: integer);//AntiBan Mouse Function
var
Cx, Cy: Integer;
begin
GetMousePos(Cx, Cy);
AL_SetMouseSpeed(20);
case Random(5) of
0: AL_BrakeWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 5, True);
1: AL_HumanWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 5);
2: AL_AccurateMMouse(IntToPoint(x, y), 2, 2);
3: AL_HumanMMouse(IntToPoint(x, y), 2, 2);
4: AL_ShiftWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 20, 5);
5: AL_MissMouse(IntToPoint(x, y), 2, 2);
end;
end;
procedure ProgressReport;
begin
cleardebug;
MarkTime(CurTime);
writeln('Banked ' + inttostr(ProgBank) + ' invs in ' + inttostr(((TimeFromMark(ProgTime) / 1000) / 60)) + ' mins.');
writeln('Birds Nests: '+inttostr(birdsnest)+'. Died: '+inttostr(died)+', Ents: '+inttostr(ents));
writeln('Times Axe Broken: '+inttostr(brokentimes)+'. Random Events: '+inttostr(randoms)+', WorldSwitches: '+inttostr(timesswitched));
writeln(entnpcs);
end;
procedure Release;
begin
srl_freebitmaps;
freebitmap(bmpAdmin);
freebitmap(bmpMinimapMask);
freedtm(Lamp);
freedtm(BookOfKnowledge);
//progressreport;
end;
function withinZone(topLeft,botRight: tpoint): boolean;
begin
MyLoc:=R_GetTileGlobal;
result:=((myloc.x>topLeft.x) and (myloc.x<botRight.x) and (myloc.y<topLeft.y) and (myloc.y>botRight.y));
end;
function isAtTrees: boolean;
begin
result:=withinZone(Point(2696, 3402), Point(2707, 3394));
end;
function isInBank: boolean;
begin
result:=withinZone(Point(2720, 3494), Point(2730, 3486));
end;
function isAtLumby: boolean;
begin
result:=withinZone(Point(3200, 3236), Point(3226, 3200));
end;
function FindBirdsNest1: Boolean;
var // seed nest [(5073, 1, (2726, 3492)), ring nest (5074, 1, (2726, 3493))]
i: Integer;
itemsInArea:TGroundItemArray;
begin
itemsInArea:=R_GetGroundItemsDistance(10);
for i:=0 to high(itemsInArea) do
begin
if((itemsInArea[i].ID = 5073) or (itemsInArea[i].ID = 5074)) then
begin
birdsnest:=birdsnest+1;
Writeln('Birds Nest Found.');
Result:=R_ChooseOptionTile('Take',itemsInArea[i].Tile);
end;
end;
end;
function AmIDead1: boolean;
begin
if(R_GetHealth = 0) then
begin
result:=true;
end
else
result:=false;
end;
procedure teleWalkTrees;
begin
wait(2000+random(100));
if(skiller) then
invmouse(3,1);
if(not skiller) then
CastSpellByNumber(27);
wait(6000+random(300));
seersToTrees:=[Point(2756, 3476), Point(2748, 3465), Point(2734, 3456), Point(2727, 3441), Point(2728, 3423), Point(2728, 3407), Point(2715, 3397), Point(2703, 3397)];
R_WalkPath(seersToTrees);
end;
procedure RepairAxe;
var
Guard: TNPC;
Tp : Tpoint;
begin
brokentimes:=brokentimes+1;
MyLoc:=R_GetTileGlobal;
toBob:=[Point(3225, 3218), Point(3234, 3214), Point(3230, 3203)];
fromBob:=[Point(3235, 3203), Point(3232, 3216), Point(3218, 3218), Point(3206, 3210)];
if(not skiller) then
begin
gametab(tab_equip)
wait(randomrange(700,900));
elfMouse(592,303);//,3,3,true);
ClickMouse2(Mouse_Left);
end;
for spot:=1 to 28 do
begin
invmouse(spot,3);
wait(randomrange(150,250));
if(isuptext(AxeType) or isuptext('roken')) then
begin
invmouse(spot,3);
Break;
end;
end;
if(isUpText('roken')) then
begin
Writeln('Excercising RepairAxe');
R_WalkPath(toBob);
repeat
repeat
if R_FindNpc('Bob', Guard) then // Loads the record for Guard.
begin
Tp := Guard.Tile; //Get guard tile location
Tp := R_TileToMs(Tp); //Changes Tile into a Onscreen Point
elfmouse(Tp.x, Tp.y);
if waituptext('Bob', 200) then
begin
InvMouse(spot,1);
elfmouse(Tp.x, Tp.y);
ClickMouse2(Mouse_Left);
wait(randomrange(1500,2000));
end;
end;
until(aretalking);
if(areTalking()) then
begin
ClickContinueEx(true,true);
elfmouse(261,401);//,3,3,true);
ClickMouse2(Mouse_Left);
ClickContinueEx(true,true);
ClickContinueEx(true,true);
wait(randomrange(1500,2000));
end;
for spot:=1 to 28 do
begin
invmouse(spot,3);
wait(randomrange(150,250));
if(isuptext(AxeType)) then
begin
invmouse(spot,3);
Break;
end;
end;
until(isUpText(AxeType));
end;
if(isuptext(AxeType)) then
begin
writeln('Axe is good.');
if(not skiller) then
invmouse(spot,1);
teleWalkTrees;
end;
end;
procedure BankLogs;
begin
writeln('Bank logs');
wait(lagg);
if(BankScreen) then
begin
if(not Skiller) then
QuickDeposit('inv');
if(skiller) then
Deposit(2,28,true);
end;
ProgBank := ProgBank + 1;
end;
function turnonrun: Boolean;
var
x,y : Integer;
enable:boolean;
begin
Result := False;
enable:=true;
if not loggedin() then
Exit;
if Enable then
begin
if findColorTolerance(x, y, 28552, 571, 127, 595, 152, 20) then
begin
result := true;
exit;
end else
begin
mouseBox(545, 130, 590, 150, MOUSE_LEFT);
result := true;
exit;
end;
end else if not Enable then
if findColorTolerance(x, y, 28552, 571, 127, 595, 152, 20) then
begin
mouseBox(545, 130, 590, 150, MOUSE_LEFT);
Result := True;
end;
end;
procedure GoToBank;
begin
writeln('gotobank');
if(BankScreen) then
begin
BankLogs;
end;
TurnOnRun;
R_WalkPath(toBank);
if(not IsInBank) then
R_BlindWalk(Point(2726, 3491));
writeln('Walk to bank successful.');
wait (lagg);
end;
function Banker(spot: tpoint): boolean;
var
tile:tpoint;
begin
Tile:= R_TileToMs(spot);
elfmouse(tile.x,tile.y);
wait(randomrange(500,600));
if(random(2) = 1) then
begin
ClickMouse2(Mouse_Left);
wait(2000+random(100));
end
else
begin
ClickMouse2(Mouse_Right);
ChooseOptionMulti(['ank','ooth']);
wait(2000+random(100));
end;
if(pinpending) then
confirmpin;
if(pinscreen) then
inpin(pin);
if(bankscreen) then
begin
result:=true;
end
else
result:=false;
end;
procedure OpenBank1;
begin
makecompass('n');
myloc:=R_gettileGlobal;
writeln('openbank ('+inttostr(myloc.x)+','+inttostr(myloc.y)+')');
Repeat
Banker(seersbanks[randomrange(0,5)]);
wait (1000+random(2000));
if(not isInBank) then
begin
writeln('Bank Contingency');
R_BlindWalk(Point(2726, 3492));
end;
until(BankScreen)
end;
procedure CheckAxeBroken;
begin
if(skiller)then
begin
invmouse(1,3);
end
else
begin
ftab(tab_Equip);
wait(1000+random(100));
elfMouse(592,303);//,3,3);
wait(1000+random(100));
end;
if(isuptext(AxeType)) then
writeln('Axe good.');
if(isUpText('Broken')) then
begin
writeln('Axe broken.');
gotobank;
openbank1;
banklogs;
if(bankscreen) then
begin
writeln('Withdrawing');
if(skiller) then
begin
wait(randomrange(500,600)); //coins in first bank slot
Withdraw(0, 0, 1800);//, ['Coins']);
wait(randomrange(500,600)); //Cammy in second slot
Withdraw(1, 0, 1); //['Cammy Tele']);
wait(randomrange(500,600));
end
else
begin
wait(randomrange(500,600)); //coins in first bank slot
Withdraw(0, 0, 1800);//, ['Coins']);
wait(randomrange(500,600)); //airs in second slot
Withdraw(1, 0, 5); //['Air Rune']);
wait(randomrange(500,600)); //laws in third slot
Withdraw(2, 0, 1);//, ['Law Rune']);
wait(randomrange(500,600));
end;
end;
closebank;
wait(2000+random(1000));
elfmouse (644,91);//,3,3,true);
ClickMouse2(Mouse_Left);
wait(randomrange(600,800));
CastSpellByNumber(1);
wait(randomrange(600,800));
if(findchatboxtext('need to wait',8,0)) then //skill on cooldown then use reagents
begin
openbank1;
if(skiller) then
begin
wait(randomrange(500,600));
Withdraw(2, 0, 1); //['Lumby Tab']);
wait(randomrange(500,600));
closebank;
wait(randomrange(600,800));
invmouse(4,1);
end
else
begin
wait(randomrange(500,600));
Withdraw(3, 0, 1);//, ['Earth Rune']);
wait(randomrange(500,600));
Withdraw(2, 0, 1);//, ['Law Rune']);
wait(randomrange(500,600)); //airs in second slot
Withdraw(1, 0, 3); //['Air Rune']);
wait(randomrange(500,600));
closebank;
wait(randomrange(600,800));
CastSpellByNumber(19);
end;
end;
wait(15000+random(300));
RepairAxe;
Exit;
end;
end;
Function FindEnt: tpoint;
begin
if (R_Findnpc('Magic tree',ent)) then
begin
entnpcs:=r_getallnpcs;
result:=ent.tile;
if(ent.tile = currentTree) then
begin
if(not evacced) then
begin
Writeln ('An ent has been detected...');
ents:=ents+1;
R_BlindWalkMS(point(2702+randomrange(-1,1),3398+randomrange(-1,1)));
evacced:=true
end;
end;
end
else
begin
evacced:=false;
result:=point(0,0);
end;
end;
procedure GoToTrees;
begin
writeln('gototrees');
myloc:= R_GetTileGlobal;
if(not isattrees and not isatlumby) then //if outside tree zone reflection walk to tree zone
begin
TurnOnRun;
R_WalkPath(toTrees);
if(not isattrees) then
R_BlindWalk(point(2702,3398));
writeln('Walk to trees successfully');
end;
wait (lagg);
end;
function plant:boolean;
var
Ivy:tnpc;
begin
if(R_Findnpc('Strange',ivy)) then
begin
if(R_NearTile(ivy.tile,5) and (not pickedPlant))then
begin
ElfMouse(R_Tiletoms(ivy.tile).x,R_Tiletoms(ivy.tile).y);
ClickMouse2(Mouse_Left);
pickedPlant:=true;
MarkTime(plantTime);
if(IsChatBoxTextAnyLine('fruit',0)) then
pickedPlant:=false;
end;
end;
end;
function froggieRandom: boolean;
var
Frogs:tnpcArray;
Peach:Tnpc;
i:integer;
begin
result:=false;
if(withinZone(point(2450,4797),point(2480,4760))) then
begin
R_FindNPC(1329,Peach);
frogs:=R_GetAllNpcs;
writeln(Peach);
for i:=0 to high(frogs) do
begin
if(frogs[i].Index = 1329) then
Peach:=frogs[i];
end;
R_BlindWalk(Peach.tile);
for i:=0 to 5 do
begin
R_FindNPC(1329,Peach);
Mouse(R_TiletoMs(Peach.tile).x,R_TiletoMS(Peach.Tile).y,3,3,true);
wait(2000+random(1000));
if(aretalking)then
break;
end;
if(aretalking) then
begin
ClickContinueEx(true,true);
ClickText('back','CharsNPC07',MCX1,MCY1,MCX2,MCY2,true);
wait(randomrange(600,800));
ClickContinueEx(true,true);
ClickContinueEx(true,true);
result:=true;
end;
end;
end;
function pointNotOnScreen(point:tpoint): boolean;
begin
result:=false;
if((point.x<MSX1)
or (point.x>MSX2)
or (point.y<MSY1)
or (point.y>MSY2)) then
result:=true;
end;
procedure ChopTree;
var
i,treeID:integer;
treespots: tpointarray;
mouseGo,mouseGo2:tpoint;
begin
treespots:=[point(2706, 3397),point(2706, 3399),point(2699, 3399),point(2699, 3397)];
if(not isatTrees) then
gototrees;
for i:=0 to high(treespots) do
begin
if(findent = treespots[i]) then
continue;
treeID:=R_GetObjectAt(0,treespots[i]).ID;
writeln(treeID);
if(treeID = 2120) then
begin
if(not r_iswalking) then
begin
mouseGo:=point(treespots[i].x-1,treespots[i].y-1);
mouseGo2:=point(treespots[i].x,treespots[i].y);
mouseGo:=point((R_TileToMsHeight(mouseGo,R_GetTileHeight(mouseGo)).x+R_TileToMsHeight(mouseGo2,R_GetTileHeight(mouseGo2)).x)/2,
(R_TileToMsHeight(mouseGo,R_GetTileHeight(mouseGo)).y+R_TileToMsHeight(mouseGo2,R_GetTileHeight(mouseGo2)).y)/2);
if(pointNotOnScreen(mouseGo)) then
begin
R_BlindWalkMS(point(2702+randomrange(-1,1),3398+randomrange(-1,1)));
//compassmovement(45,90,false);
end;
elfmouse(mouseGo.x,mouseGo.y);
wait(randomrange(400,600));
if(R_Isuptext('Magic tree')) then
begin
ClickMouse2(Mouse_Left);
AL_HumanRandomMouse;
currentTree:=treespots[i];
R_FNRwait(randomrange(900,1400),300);
break;
end
else
R_BlindWalkMS(point(2702+randomrange(-1,1),3398+randomrange(-1,1)));
end;
end
else
continue;
end;
end;
procedure haveDied;
begin
if(not skiller) then
begin
for spot:=1 to 28 do
begin
invmouse(spot,3);
wait(randomrange(150,250));
if(isuptext(AxeType) or isuptext('roken')) then
begin
invmouse(spot,1);
Break;
end;
end;
end;
repeat
R_BlindWalk(point(3206, 3209));
wait(randomrange(800,1000));
if(R_getplane=0) then
R_ChooseOptionTile('Climb-up',point(3205, 3208));
wait(randomrange(800,1000));
until((R_getplane=1) or (R_getplane=2));
repeat
if(R_getplane=1) then
R_ChooseOptionTile('Climb-up',point(3205, 3208));
wait(randomrange(800,1000));
until(R_getplane=2);
if(R_getplane=2) then
begin
repeat
R_BlindWalk(Point(3209, 3219));
wait(randomrange(800,1000));
Banker(point(3208, 3221));
wait(randomrange(800,1100));
until(bankscreen);
BankLogs;
wait(randomrange(800,1100));
if(skiller) then
begin
Withdraw(1, 0, 1); //['Cammy Tele']);
end
else
begin
wait(randomrange(500,600)); //airs in second slot
Withdraw(1, 0, 5); //['Air Rune']);
wait(randomrange(500,600)); //laws in third slot
Withdraw(2, 0, 1);//, ['Law Rune']);
end;
wait(randomrange(800,1100));
closebank;
wait(randomrange(600,1000));
if(skiller) then
invmouse(2,1);
wait(randomrange(2500,3000));
telewalktrees;
end;
end;
procedure MyWorld(W: Integer);//Pick World On WOrld Screen
var
WArray: array of Integer;
I: Integer;
begin
Warray := [302, 303, 304, 305, 306, 309, 310, 311, 312, 313, 314, 317, 318, 319, 320, 321, 322, 326, 327, 328, 329, 330, 333, 334, 335, 336, 338, 341, 342, 343, 344, 345, 346, 349, 350, 351, 352, 353, 354, 357, 358, 359, 360, 361, 362, 366, 367, 368, 369, 370, 373, 374, 375, 376, 377, 378];
if InIntArrayEx(WArray, i, W) then
begin
ElfMouse(250 + ((i / 16) * 90), 80 + (24 * (i mod 16)));
Wait(1000)
ClickMouse2(Mouse_Left);
Exit;
end
else
i := 28;
ElfMouse(250 + ((i / 16) * 90), 80 + (24 * (i mod 16)));
Wait(1000)
ClickMouse2(Mouse_Left);
Exit;
end;
function OpenWScreen: Boolean;
var
x, y: integer;
begin
Result := False;
if findcolortolerance(x, y, 3166829, 350, 190, 435, 220, 10) then
Result := True;
if Loggedin then
Exit;
if not result then
begin
Mmouse(54, 475, 1, 1);
wait(200);
ClickMouse2(Mouse_Left);
Wait(1500);
Result := True;
end;
end;
procedure SwitchWorldTo;
var
WArray: array of Integer;
num: integer;
begin
num:= Randomrange(2,50);
Warray := [302, 303, 304, 305, 306, 309, 310, 311, 312, 313, 314, 317, 318, 319, 320, 321, 322, 326, 327, 328, 329, 330, 333, 334, 335, 336, 338, 341, 342, 343, 344, 345, 346, 349, 350, 351, 352, 353, 354, 357, 358, 359, 360, 361, 362, 366, 367, 368, 369, 370, 373, 374, 375, 376, 377, 378];
Logout;
OpenWScreen;
MyWorld(WArray[num]);
writeln(warray[num]);
LoginPlayer;
end;
Procedure Antiban;
begin
R_FindNormalRandoms;
findent;
if(r_isanimating) then
begin
case random(45) of
1: HoverSkill(randomrange(1,23), False);
2: HoverOnlineFriend;
//3: compassmovement(100,150,false);
4: BoredHuman;
8: Turnonrun;
9: RandomFKeys(false);
10: MMouseOffClient('random');
//11: PressKey(randomrange(1,4));
12..15: AL_HumanRandomMouse;
end;
Wait(randomrange(800,1000));
end;
end;
begin
SetupSRL();
DeclarePlayers;
SetScreenName(Players[CurrentPlayer].Nick);
ActivateClient;
SetupReflection;
ClearDebug;
writeln('Welcome to Vizzyy Seers Magic Bot.');
initVars;
AddOnTerminate('Release');
If (Not LoggedIn) Then
begin
LogInPlayer;
end;
makecompass('n');
setAngle(Srl_angle_high);
repeat
if (((TimeFromMark(PlantTime) / 1000) / 60) > 2) then
begin
pickedPlant:=false;
end;
if (((TimeFromMark(WorldTime) / 1000) / 60) > switchinterval) then
begin
Writeln('Switching World');
SwitchWorldTo;
MarkTime(WorldTime);
switchinterval:=randomrange(450,700);
timesswitched:=timesswitched+1;
end;
if(not R_NearTile(point(2705,3397),400) and (not isatlumby))then
begin
writeln('Somethings fucked, we are too far.');
CastSpellByNumber(1);
wait(15000);
end;
//main loop
if(findchatboxtext('You do not have',8,0))then
begin
checkaxebroken;
end;
progressreport;
plant;
froggieRandom;
FindEnt;
if(R_FindNormalRandoms) then
randoms:=randoms+1; ;
if(solvebox) then
randoms:=randoms+1;
AntiBan;
if(FindBirdsNest1) then
Birdsnest := Birdsnest + 1;
if(AmIDead1 or isatlumby) then
begin
writeln('Died/lumby, resetting');
died:=died+1;
haveDied;
end;
if(InvFull) then
begin
GoToBank;
OpenBank1;
BankLogs;
closebank;
GoToTrees;
end
else
begin
if((not R_IsAnimating) and (not Al_playerwalking)) then
begin
ChopTree;
end;
end;
until (Not LoggedIn)
TerminateScript;
end.