vizzyy
2014-03-15 17:00:39
How Long have You Played Runescape?
10 Year(s)
Are you affilated in anyway with Jagex LTD?
no
Were you Referred to SRL?
What is your general programming knowledge?
Java
Python
Pascal
Are you a member of any other communities?
no
Tell us about yourself…
Please show us one (or multiple) of your scripts.
10 Year(s)
Are you affilated in anyway with Jagex LTD?
no
Were you Referred to SRL?
What is your general programming knowledge?
Java
Python
Pascal
Are you a member of any other communities?
no
Tell us about yourself…
From: vizzyy
Computer Science College student
21 years old now
second time applying for SRL Mem.
Enjoy making shitty ass music in my spare time
Enjoy Drawing, painting, biking, smoking pot, and banging bitches.
I wish to contribute to the community and feel that SRL membership would help immensely.
this is the main script i've been working on for a while now. it's pretty all encompassing for my needs. efficiently chops magics and banks at seers, tree/ent detection using reflection based objectID/npcID fetching. custom bank function randomizing bank location. Overall goal of script was to minimize all color methods, and to maximize human 'nature' of bot. There is an axe repair function, As well as death/axerepair run back accomodating rune teleports or teletabs. i wrote in my own birds nest function, as well as very simple frog+plant random to combat some simple common randoms that weren't being picked up by the srl/reflection anti-randoms.
Important:
a few functions are ported from other scripts, namely elfy's mouse and world switch, a few tutorial snippets + turnonrun + AL functions, I do not wish to take credit for these, but seeing as how they're publicly accessible and well written, I've taken the liberty of using them.
seers magic script posted below
http://villavu.com/forum/showthread.php?t=108407
Please show us one (or multiple) of your 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 plant',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;
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.