SRL Archive - Help and Support

Access Violation in Mouse.scar


FrÕzÑ_§ÕµL

2007-12-22 03:26:51

I keep getting the errors
[Runtime Error] : Exception: Access violation at address 0052041B in module 'scar.exe'. Write of address 046AF0B8 in line 28 in script C:\Program Files\SCAR 3.12\includes\SRL/SRL/Core/Mouse.scar
[Runtime Error] : Math error in line 42 in script C:\Program Files\SCAR 3.12\includes\SRL/SRL/Core/Mouse.scar

after running my script for a certain amount of time. Can anybody fix this? It seems to have something to do with sqrt2? The script is below.


{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\ Fr0zn S0ul's Multi-Tree Chopper Banker~Dropper \\//\\//\\//\\}
{//\\//\\//\\// Version: 2.6 SCAR: 3.12c SRL: 4.7 //\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}
{//\\//\\//\\ Hi, thanks for using my script. If you have any \\//\\//\\//}
{\\//\\//\\// questions, problems or suggestions, feel free to //\\//\\//\\}
{//\\//\\//\\ contact me at SRL Forums. I recommend using mozilla \\//\\//\\//}
{\\//\\//\\// firefox as the script runs much better on itz. You //\\//\\//\\}
{//\\//\\//\\ can download it from [url]www.mozilla.com[/url]. \\//\\//\\//}
{\\//\\//\\// Read my instructions and hints carefully! //\\//\\//\\}
{//\\//\\//\\ Make sure you set up the script in lines 82 - 158. \\//\\//\\//}
{\\//\\//\\// Read my instructions and hints carefully! //\\//\\//\\}
{\\//\\//\\// Run RuneScape in your internet browser on low detail.//\\//\\//\\}
{//\\//\\//\\ Do not use clients! \\//\\//\\//}
{\\//\\//\\// Make sure your brightness is set to max. //\\//\\//\\}
{//\\//\\//\\ Start script in the bank (See Below). \\//\\//\\//}
{\\//\\//\\// Drag the crosshair on your SCAR toolbar onto the //\\//\\//\\}
{//\\//\\//\\ RuneScape login screen. \\//\\//\\//}
{\\//\\//\\// I suggest weilding one axe and holding one in inv 1. //\\//\\//\\}
{//\\//\\//\\ However if the inventory one breaks, you will logout.\\//\\//\\//}
{\\//\\//\\// If Dropping logs then weild one axe, hold one axe in //\\//\\//\\}
{//\\//\\//\\ inv 1 and put 1gp in inv slot 2(So you keep gp from \\//\\//\\//}
{\\//\\//\\// random events). //\\//\\//\\}
{//\\//\\//\\ If banking willows make sure you are OVER level 14 \\//\\//\\//}
{\\//\\//\\// or else you will DIE. //\\//\\//\\}
{//\\//\\//\\ Sit back and watch some TV, play Halo 3 or go make \\//\\//\\//}
{\\//\\//\\// yourself a cup of coffee =) //\\//\\//\\}
{//\\//\\//\\ Script was made using SCAR 3.12c and SRL 4.7. \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Fr0zn S0ul \\//\\//\\//}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\// Current Version: 2.6 \\//\\//\\//\\//\\//\\//\\//}
{//\\//\\//\\//\\//\\//\\ *Release Notes* //\\//\\//\\//\\//\\//\\//\\}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}
{//\\//\\//\\ Version 1.0: \\//\\//\\//}
{\\//\\//\\// Release version. //\\//\\//\\}
{//\\//\\//\\ \\//\\//\\//}
{\\//\\//\\// Version 1.1: //\\//\\//\\}
{//\\//\\//\\ Fixed bugs in WorldSwitcher. Adjusted AutoResponder. \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 1.2: \\//\\//\\//}
{\\//\\//\\// Created my own AutoResponder. //\\//\\//\\}
{//\\//\\//\\ Changed FindEnt2. Added PosArray function. \\//\\//\\//}
{\\//\\//\\// Revamped Willow Banker. Changed Yew banker tons (it //\\//\\//\\}
{//\\//\\//\\ definitely works now =p). \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 1.3: \\//\\//\\//}
{\\//\\//\\// Deleted the loops in AutoResponder, which were the //\\//\\//\\}
{//\\//\\//\\ cause of the lag. NO MORE LAG =D \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 1.4: \\//\\//\\//}
{\\//\\//\\// Added support for Bank PIN anf fixed LogOutWait. //\\//\\//\\}
{//\\//\\//\\ \\//\\//\\//}
{\\//\\//\\// Version 1.5: //\\//\\//\\}
{//\\//\\//\\ Added RunDirection when find fight or ent. Added \\//\\//\\//}
{\\//\\//\\// new bankers at draynor for trees and oaks =) (See //\\//\\//\\}
{//\\//\\//\\ script thread at SRL forums for pictures on exactly \\//\\//\\//}
{\\//\\//\\// where to cut). WorldSwitcher no longer gets stuck if //\\//\\//\\}
{//\\//\\//\\ NWorld is full. \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 2.0: \\//\\//\\//}
{\\//\\//\\// Added AutoChatter. Readjusted AutoResponder. Slightly//\\//\\//\\}
{//\\//\\//\\ modified bankers. General fix up. \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 2.1: \\//\\//\\//}
{\\//\\//\\// Just a small but noticible bug that could cause bans //\\//\\//\\}
{//\\//\\//\\ after logging in. \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 2.2: \\//\\//\\//}
{\\//\\//\\// Fixed WorldSwitcher error cause by SRL rev#6. Sorry //\\//\\//\\}
{//\\//\\//\\ about that guys! \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 2.3: \\//\\//\\//}
{\\//\\//\\// Rev#7. Updated World List. Fix on normal log banker. //\\//\\//\\}
{//\\//\\//\\ Function TypeSend2. More auto responses. \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 2.4 BETA: \\//\\//\\//}
{\\//\\//\\// Complete clean up and change of entire script. //\\//\\//\\}
{//\\//\\//\\ Thanks alot to SubiN! Created EntFinder. \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Version 2.4: \\//\\//\\//}
{\\//\\//\\// Tweaked EntFinder. Made FindBrokenAxe. Fixed bug that//\\//\\//\\}
{//\\//\\//\\ made script think you did 2 loads instead of 1 lol! \\//\\//\\//}
{\\//\\//\\// Function TypeSend2. More auto responses. //\\//\\//\\}
{//\\//\\//\\ //\\//\\//\\}
{\\//\\//\\// Version 2.5 BETA: \\//\\//\\//}
{//\\//\\//\\ Deleted and re-wrote all bankers. Now use DTM's, //\\//\\//\\}
{\\//\\//\\// RadialWalk and LinearWalk. Added LogOutProc. \\//\\//\\//}
{//\\//\\//\\ Localised some non-global variables. Reformat of all //\\//\\//\\}
{\\//\\//\\// procedures, removing useless sequences. Players now \\//\\//\\//}
{//\\//\\//\\ start in the bank and walk to tree. //\\//\\//\\}
{\\//\\//\\// \\//\\//\\//}
{//\\//\\//\\ Version 2.5: //\\//\\//\\}
{\\//\\//\\// Added AlignMM and fixed BETA bugs. Rewrote the Oak \\//\\//\\//}
{//\\//\\//\\ Banker walkers with different DTM's. All bankers now //\\//\\//\\}
{\\//\\//\\// attempt to find a DTM of the bankers before radial \\//\\//\\//}
{//\\//\\//\\ walking when they are close, this is more accurate. //\\//\\//\\}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}
{------------------------------------------------------------------------------}
{//\\//\\//\\//\\//\\//\\// Banking Locations \\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}
{//\\//\\//\\ Start in the bank! \\//\\//\\//}
{\\//\\//\\// Draynor Bankers (Tree, Oak and Willow): //\\//\\//\\}
{//\\//\\//\\ Northern most Bank Booth. \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ Varrock Yews: \\//\\//\\//}
{\\//\\//\\// Start on the eastern most side of the banks in the //\\//\\//\\}
{//\\//\\//\\ Grand Exchange, beside the banker. \\//\\//\\//}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}
{------------------------------------------------------------------------------}
{//\\//\\//\\//\\//\\//\\// Acknowledgements \\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}
{//\\//\\//\\ XcanadamanX: \\//\\//\\//}
{\\//\\//\\// Thanks sooo much for the AlignMM procedure, makes //\\//\\//\\}
{//\\//\\//\\ the script so much more reliable =) \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ The Man: \\//\\//\\//}
{\\//\\//\\// Thank you for the awesome work you've done at the //\\//\\//\\}
{//\\//\\//\\ thread answering everyones questions! \\//\\//\\//}
{\\//\\//\\// //\\//\\//\\}
{//\\//\\//\\ spaztaz666 and SubiN: \\//\\//\\//}
{\\//\\//\\// Your testing was awesome, thanks for everything, //\\//\\//\\}
{//\\//\\//\\ script wouldn't be here without you guys! \\//\\//\\//}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}
{

___________ _______ _______ ________________ .____
\_ _____/______ \ _ \ ________\ \ / _____/\ _ \ __ __| |
| __) \_ __ \/ /_\ \\___ // | \ \_____ \ / /_\ \| | \ |
| \ | | \/\ \_/ \/ // | \ / \\ \_/ \ | / |___
\___ / |__| \_____ /_____ \____|__ /____/_______ / \_____ /____/|_______ \
\/ \/ \/ \/_____/ \/ \/ \/
}

program MultiTreeChopperBankerDropper;

{.include Smart.scar}
var
x, y, i, LogCounter, LogOutEvery, LogOutWaitEvery, LogOutWaitFor, LoadsTillLog : Integer;
LevelsGained, Tries, Fixes, NWorld, OWorld, ActivePlayers, RemoveChatters : Integer;
RandomChatter, FreeSlot, TalkEvery, GameColorTolerance, Picture, SpeedOfMouse : Integer;
Tree : String;
LogOutWait : Boolean;
Chatters : Array[0..100] of String;
TreeColor : Array[0..2] of Integer;
frmDesign : TForm;
Label1, Label2, Label3, Label4, Label5, Label6, Label7 : TLabel;
StartButton, HomeButton, ExitButton : TButton;
LogoutEdit, TalkEdit, ColorEdit, SpeedEdit, LampEdit, SRLIDEdit, SRLPassEdit : TEdit;

{.include SRL/SRL.scar}
{.include SRL/SRL/misc/WorldSwitcher.scar}

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\

I recommend using Mozilla FireFox. The script runs much better on it. Get it at [url]www.mozilla.com[/url].
You must have your axe in Inventory Slot 1!
Start in Bank unless dropping. See above for recommended booths. }

Procedure Greeting;
Begin
ClearDebug;
Writeln('//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//');
Writeln('\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ ' + ' ()' + (chr(39)) + (chr(39)) + (chr(39)) + '()');
Writeln('\\//\\// I hope you enjoy this script! //\\//\\// ' + ' (' + (chr(39)) + '( 0 0 )' + (chr(39)) +')');
Writeln('//\\//\\ Fr0zN_S0uL \\//\\//\\ ' + ' ( o )');
Writeln('//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\// ' + ' (' + (chr(39)) + ')-(' + (chr(39)) + ')');
Writeln('\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\');
WriteLn('* I recommend using Mozilla FireFox. The script runs much better on it *');
WriteLn('* Get it at [url]www.mozilla.com[/url] *');
WriteLn('');
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

function FindVarrockRoadColor2: Integer; //By Tarajunky, my numbers from colors.

var
GC, a, l, TestColor, Red, Green, Blue : integer;
P:array of Tpoint;

Begin
GC := 6388368;
Flag;
FindColorsSpiralTolerance(MMCX, MMCY, P, GC, MMX1, MMY1, MMX2, MMY2, 60);
l:=GetArrayLength(P);
for a:= 0 to l-1 do
Begin
if rs_OnMinimap(P[a].x,P[a].y) then
Begin
TestColor := GetColor(P[a].x,P[a].y);
if SimilarColors(TestColor,GC,60) then
Begin
red := (TestColor mod 256);
green := ((TestColor / 256) mod 256);
blue := ((TestColor / 256) / 256);
if Red - Blue <= 55 then if Red - Blue >= 41 then
if Red - Green <= 28 then if Red - Green >= 14 then
if Green - Blue <= 34 then if Green - Blue >= 21 then
if GetColor(P[a].x + 5, P[a].y + 5) = TestColor then
if GetColor(P[a].x + 3, P[a].y + 3) = TestColor then
if GetColor(P[a].x, P[a].y + 5) = TestColor then
if GetColor(P[a].x + 5, P[a].y) = TestColor then
if GetColor(P[a].x, P[a].y + 3) = TestColor then
if GetColor(P[a].x + 3, P[a].y) = TestColor then
if GetColor(P[a].x + 5, P[a].y + 3) = TestColor then
if GetColor(P[a].x + 3, P[a].y + 5) = TestColor then
Begin
Result := TestColor;
Exit;
end;
end;
end;
end;
WriteLn('Could not find Varrock Road Color!');
Result := 0;
end;

Procedure MainLoop; Forward;

{*******************************************************************************
Procedure AlignMM(Direction : char);
By: XcanadamanX
Description: Rotates compass to perfectly align with nearest compass angle.
Direction : Direction to make compass if fails to align.
*******************************************************************************}

Procedure AlignMM(Direction : char);
var
acc : extended;
Begin
Picture := DTMFromString('78DA634C676260086240016F9F7C641001D28' +
'C40FC1F0818416AFC71AB0101B09A7022D44413A1C60BBF1A009F' +
'1015DF');
wait(50)
if FindDtmRotated(Picture,x,y,MMX1,MMY1,MMX2,MMY2,radians(-40),radians(40),0.01,acc) then
Begin
if (acc < 0.1) and (acc > -0.1) then exit;
else
Begin
repeat
If FindDtmRotated(Picture,x,y,MMX1,MMY1,MMX2,MMY2,radians(-40),radians(40),0.01,acc) then
Begin
if acc < 0 then
Begin
KeyDown(VK_RIGHT)
Wait(20+random(10))
KeyUp(VK_RIGHT)
end;
if acc > 0 then
Begin
KeyDown(VK_LEFT)
Wait(20+random(10))
KeyUp(VK_LEFT)
end;
if acc = 0 then break;
end else exit;
wait(20)
Inc(i)
until (((acc < 0.1) and (acc > -0.1)) or (i > 25))
end;
end else
MakeCompass(Direction);
freeDtm(Picture)
end;

{*************************************************************************************************
Function TypeSend2(Text: String; PercentPerfect, PercentMistake, MaxMistakes: Integer): Boolean;
By: Fr0zN_S0uL
Description: Types Text Human-like, pressing random keys around the original. Results True if
mistake is made.
PercentPerfect = Chance of no errors (Normal TypeSend).
PercentMistake = Chance of making an error.
MaxMistakes = Highest number of mistakes to make. Will break loop if reached.
*************************************************************************************************}

Function TypeSend2(Text: String; PercentPerfect, PercentMistake, MaxMistakes: Integer): Boolean;

var
s : String;
i, NumMistakes : Integer;

Begin
if PercentPerfect > 100 then RaiseException(ErException, 'PercentPerfect must be 100 or less:');
if PercentMistake > 100 then RaiseException(ErException, 'PercentMistake must be 100 or less:');
Trim(Text);
if Random(101) <= PercentPerfect then
Begin
TypeSend(Text);
Exit;
end;
for i := 1 to Length(Text) do
Begin
if NumMistakes >= MaxMistakes then Break;
if Random(101) <= PercentMistake then
Begin
NumMistakes := NumMistakes + 1;
Result := true;
s := Copy(Text, i, 1);
case LowerCase(s) of
'a' : Begin
Delete(Text, i, 1);
case Random(4) of
0: Insert('q', Text, i);
1: Insert('s', Text, i);
2: Insert('z', Text, i);
3: Insert('w', Text, i);
end;
end;
'b' : Begin
Delete(Text, i, 1);
case Random(5) of
0: Insert('v', Text, i);
1: Insert('g', Text, i);
2: Insert('h', Text, i);
3: Insert('n', Text, i);
4: Insert(' ', Text, i);
end;
end;
'c' : Begin
Delete(Text, i, 1);
case Random(5) of
0: Insert('x', Text, i);
1: Insert('d', Text, i);
2: Insert('f', Text, i);
3: Insert('v', Text, i);
4: Insert(' ', Text, i);
end;
end;
'd' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('s', Text, i);
1: Insert('e', Text, i);
2: Insert('r', Text, i);
3: Insert('f', Text, i);
4: Insert('c', Text, i);
5: Insert('x', Text, i);
end;
end;
'e' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('w', Text, i);
1: Insert('3', Text, i);
2: Insert('4', Text, i);
3: Insert('r', Text, i);
4: Insert('d', Text, i);
5: Insert('s', Text, i);
end;
end;
'f' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('d', Text, i);
1: Insert('r', Text, i);
2: Insert('t', Text, i);
3: Insert('g', Text, i);
4: Insert('v', Text, i);
5: Insert('c', Text, i);
end;
end;
'g' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('f', Text, i);
1: Insert('t', Text, i);
2: Insert('y', Text, i);
3: Insert('h', Text, i);
4: Insert('b', Text, i);
5: Insert('v', Text, i);
end;
end;
'h' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('g', Text, i);
1: Insert('y', Text, i);
2: Insert('u', Text, i);
3: Insert('j', Text, i);
4: Insert('n', Text, i);
5: Insert('b', Text, i);
end;
end;
'i' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('u', Text, i);
1: Insert('8', Text, i);
2: Insert('9', Text, i);
3: Insert('o', Text, i);
4: Insert('k', Text, i);
5: Insert('j', Text, i);
end;
end;
'j' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('h', Text, i);
1: Insert('u', Text, i);
2: Insert('i', Text, i);
3: Insert('k', Text, i);
4: Insert('m', Text, i);
5: Insert('n', Text, i);
end;
end;
'k' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('j', Text, i);
1: Insert('i', Text, i);
2: Insert('o', Text, i);
3: Insert('l', Text, i);
4: Insert(',', Text, i);
5: Insert('m', Text, i);
end;
end;
'l' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('k', Text, i);
1: Insert('o', Text, i);
2: Insert('p', Text, i);
3: Insert(';', Text, i);
4: Insert('.', Text, i);
5: Insert(',', Text, i);
end;
end;
'm' : Begin
Delete(Text, i, 1);
case Random(5) of
0: Insert('n', Text, i);
1: Insert('j', Text, i);
2: Insert('k', Text, i);
3: Insert(',', Text, i);
4: Insert(' ', Text, i);
end;
end;
'n' : Begin
Delete(Text, i, 1);
case Random(5) of
0: Insert('b', Text, i);
1: Insert('h', Text, i);
2: Insert('j', Text, i);
3: Insert('m', Text, i);
4: Insert(' ', Text, i);
end;
end;
'o' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('i', Text, i);
1: Insert('9', Text, i);
2: Insert('0', Text, i);
3: Insert('p', Text, i);
4: Insert('l', Text, i);
5: Insert('k', Text, i);
end;
end;
'p' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('o', Text, i);
1: Insert('0', Text, i);
2: Insert('-', Text, i);
3: Insert('[', Text, i);
4: Insert(';', Text, i);
5: Insert('l', Text, i);
end;
end;
'q' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('1', Text, i);
1: Insert('2', Text, i);
2: Insert('w', Text, i);
3: Insert('s', Text, i);
4: Insert('a', Text, i);
5: Insert(' ', Text, i);
end;
end;
'r' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('e', Text, i);
1: Insert('4', Text, i);
2: Insert('5', Text, i);
3: Insert('t', Text, i);
4: Insert('f', Text, i);
5: Insert('d', Text, i);
end;
end;
's' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('a', Text, i);
1: Insert('w', Text, i);
2: Insert('e', Text, i);
3: Insert('d', Text, i);
4: Insert('x', Text, i);
5: Insert('z', Text, i);
end;
end;
't' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('r', Text, i);
1: Insert('5', Text, i);
2: Insert('6', Text, i);
3: Insert('y', Text, i);
4: Insert('g', Text, i);
5: Insert('f', Text, i);
end;
end;
'u' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('y', Text, i);
1: Insert('7', Text, i);
2: Insert('8', Text, i);
3: Insert('i', Text, i);
4: Insert('j', Text, i);
5: Insert('h', Text, i);
end;
end;
'v' : Begin
Delete(Text, i, 1);
case Random(5) of
0: Insert('c', Text, i);
1: Insert('f', Text, i);
2: Insert('g', Text, i);
3: Insert('b', Text, i);
4: Insert(' ', Text, i);
end;
end;
'w' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('q', Text, i);
1: Insert('2', Text, i);
2: Insert('3', Text, i);
3: Insert('e', Text, i);
4: Insert('s', Text, i);
5: Insert('a', Text, i);
end;
end;
'x' : Begin
Delete(Text, i, 1);
case Random(5) of
0: Insert('z', Text, i);
1: Insert('s', Text, i);
2: Insert('d', Text, i);
3: Insert('c', Text, i);
4: Insert(' ', Text, i);
end;
end;
'y' : Begin
Delete(Text, i, 1);
case Random(6) of
0: Insert('t', Text, i);
1: Insert('6', Text, i);
2: Insert('7', Text, i);
3: Insert('u', Text, i);
4: Insert('h', Text, i);
5: Insert('g', Text, i);
end;
end;
'z' : Begin
Delete(Text, i, 1);
case Random(4) of
0: Insert('a', Text, i);
1: Insert('s', Text, i);
2: Insert('x', Text, i);
3: Insert('z ', Text, i);
end;
end;
end;
i := i + random(3) + 2;
end;
end;
TypeSend(Text);
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure WalkToTrees;
Begin
if Not(LoggedIn) then LoginPlayer;
HighestAngle;
MakeCompass('n');
AlignMM('n');
SetRun(True);
tries := 0;
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'tree' : Begin
RadialRoadWalk(FindRoadColor, 255, 315, 70, 2, 0);
FFlag(3);
RadialRoadWalk(FindRoadColor, 350, 380, 55, 0, -2);
Flag;
Mouse(640, 30, 5, 2, true);
Flag;
end;
'oak' : Begin
RadialRoadWalk(FindRoadColor, 255, 315, 70, 2, 0);
FFlag(3);
RadialRoadWalk(FindRoadColor, 350, 380, 55, 0, -2);
Flag;
Mouse(640, 30, 2, 2, true);
FFlag(3);
Picture := DTMFromString('78DA639CC2CCC0A0CDC8800C728BA31944803' +
'448F43F103082D4C843D43043D538BA58C1D58000630F50469A80' +
'9A16A08C090135FD40192B026AA60365CCF1AB01006AD60E06');
Repeat
if FindDTM(Picture, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y, 2, 2, true);
Break;
end;
tries := tries + 1;
Wait(250);
if tries > 3 then
Mouse(660, 50, 2, 2, true);
until(tries > 3)
FreeDTM(Picture);
Flag;
tries := 0;
Repeat
Mouse(675, 71, 2, 2, true);
Flag;
tries := tries + 1;
until FindColorTolerance(x, y, 417228, 685, 50, 720, 95, 20) or (Tries > 1);
end;
'willow' : Begin
Mouse(620, 120, 2, 2, true);
FFlag(3);
end;
'yew' : Begin
Mouse(700, 90, 2, 2, true);
Flag;
tries := 0;
RadialRoadWalk(FindVarrockRoadColor2, 60, 130, 35, -2, 0);
Flag;
Repeat
RadialRoadWalk(FindVarrockRoadColor2, 50, 100, 30, 1, 1);
Flag;
if RadialRoadWalk(FindVarrockRoadColor2, 347, 374, 60, 0, 1) then
Begin
Flag;
break;
end;
tries := tries + 1;
until(tries > 2);
LinearRoadWalk(FindVarrockRoadColor2, 80, 25, 1, 1);
end;
end;
Tries := 0;
Fixes := 0;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure TreeSetup;
Begin
Tree := Capitalize(Players[CurrentPlayer].Strings[0]);
Case Lowercase(Tree) of
'tree' : Begin
TreeColor[0] := 1059370;
TreeColor[1] := 3693652;
TreeColor[2] := 531484;
end;
'oak' : Begin
TreeColor[0] := 1454376;
TreeColor[1] := 2711126;
TreeColor[2] := 3372904;
end;
'willow' : Begin
TreeColor[0] := 4083788;
TreeColor[1] := 2120016;
TreeColor[2] := 3896170;
end;
'yew' : Begin
TreeColor[0] := 1865575;
TreeColor[1] := 1125157;
TreeColor[2] := 3374703;
end;
'magic' : Begin
Writeln('Sorry but Magic trees are not yet supported!');
TerminateScript;
end;
else
Begin
ReadLn('Please enter a valid tree name (Tree, Oak, Willow, Yew)');
RaiseException(ErCouldNotCallProc, 'Invalid Tree Name');
end;
end;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure LogInSetup;
Begin
MarkTime(RemoveChatters);
MarkTime(RandomChatter);
for i := 0 to FreeSlot - 1 do
Begin
Chatters[i] := '';
end;
FreeSlot := 1;
LoadsTillLog := LogoutEvery + random(2);
TreeSetup;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, Upchars);
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Lets Cut Some ' + Tree + 's!');
if Not(Players[CurrentPlayer].Integers[2] > 0) then
Repeat
Players[CurrentPlayer].Integers[2] := GetSkillLevel('WoodCutting');
until(Players[CurrentPlayer].Integers[2] > 0);
If Not(Lowercase(Players[CurrentPlayer].Strings[0]) = 'oak') then
Mouse(130, 485, 40, 12, true);
SetChat('on', 1);
SetChat('off', 2);
MakeCompass('N');
HighestAngle;
FindNormalRandoms;
if Lowercase(Players[CurrentPlayer].Strings[1]) = 'bank' then
WalkToTrees;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure WorldSelect;
Begin
OWorld := NWorld;
Repeat
if Not(Players[CurrentPlayer].Booleans[0]) then
Begin
Repeat
case random(73) of
0: NWorld := 1;
1: NWorld := 3;
2: NWorld := 4;
3: NWorld := 5;
4: NWorld := 7;
5: NWorld := 8;
6: NWorld := 10;
7: NWorld := 1;
8: NWorld := 13;
9: NWorld := 14;
10: NWorld := 15;
11: NWorld := 16;
12: NWorld := 17;
13: NWorld := 19;
14: NWorld := 20;
15: NWorld := 21;
16: NWorld := 25;
17: NWorld := 29;
18: NWorld := 30;
19: NWorld := 32;
20: NWorld := 33;
21: NWorld := 34;
22: NWorld := 35;
23: NWorld := 37;
24: NWorld := 38;
25: NWorld := 40;
26: NWorld := 41;
27: NWorld := 43;
28: NWorld := 47;
29: NWorld := 50;
30: NWorld := 51;
31: NWorld := 52;
32: NWorld := 55;
33: NWorld := 57;
34: NWorld := 61;
35: NWorld := 62;
36: NWorld := 63;
37: NWorld := 67;
38: NWorld := 68;
39: NWorld := 72;
40: NWorld := 74;
41: NWorld := 75;
42: NWorld := 80;
43: NWorld := 81;
44: NWorld := 85;
45: NWorld := 86;
46: NWorld := 87;
47: NWorld := 90;
48: NWorld := 93;
49: NWorld := 94;
50: NWorld := 95;
51: NWorld := 96;
52: NWorld := 101;
53: NWorld := 102;
54: NWorld := 105;
55: NWorld := 106;
56: NWorld := 107;
57: NWorld := 108;
58: NWorld := 109;
59: NWorld := 113;
60: NWorld := 117;
61: NWorld := 118;
62: NWorld := 119;
63: NWorld := 123;
64: NWorld := 125;
65: NWorld := 126;
66: NWorld := 127;
67: NWorld := 128;
68: NWorld := 133;
69: NWorld := 134;
70: NWorld := 136;
71: NWorld := 141;
72: NWorld := 142;
end;
until(NWorld <> OWorld);
end else
Begin
Repeat
case random(64) of
0: NWorld := 2;
1: NWorld := 6;
2: NWorld := 9;
3: NWorld := 12;
4: NWorld := 18;
5: NWorld := 22 ;
6: NWorld := 23;
7: NWorld := 24;
8: NWorld := 26
9: NWorld := 27;
10: NWorld := 28;
11: NWorld := 31;
12: NWorld := 36;
13: NWorld := 39;
14: NWorld := 42;
15: NWorld := 44;
16: NWorld := 45;
17: NWorld := 46;
18: NWorld := 48;
19: NWorld := 53;
20: NWorld := 54;
21: NWorld := 56;
22: NWorld := 58;
23: NWorld := 59;
24: NWorld := 64;
25: NWorld := 65;
26: NWorld := 66;
27: NWorld := 69;
28: NWorld := 70;
29: NWorld := 71;
30: NWorld := 76;
31: NWorld := 77;
32: NWorld := 78;
33: NWorld := 79;
34: NWorld := 82;
35: NWorld := 83;
36: NWorld := 84;
37: NWorld := 88;
38: NWorld := 89;
39: NWorld := 91;
40: NWorld := 92;
41: NWorld := 97;
42: NWorld := 98;
43: NWorld := 99;
44: NWorld := 100;
45: NWorld := 103;
46: NWorld := 104;
47: NWorld := 110;
48: NWorld := 111;
49: NWorld := 112;
50: NWorld := 114;
51: NWorld := 115;
52: NWorld := 116;
53: NWorld := 120;
54: NWorld := 121;
55: NWorld := 124;
56: NWorld := 129;
57: NWorld := 130;
58: NWorld := 131;
59: NWorld := 132;
60: NWorld := 137;
61: NWorld := 138;
62: NWorld := 143;
63: NWorld := 144;
end;
until(Nworld <> OWorld);
end;
until(SelectWorld(NWorld));
ReportVars[1] := ReportVars[1] + 1;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure LogOutProc(PlayerActive : Boolean);
Begin
Writeln(Capitalize(Players[CurrentPlayer].Name) + ': An Error was Encountered. NextPlayer(' + BoolToStr(PlayerActive) + ')');
LogOut;
WorldSelect;
if ((ActivePlayers - 1) <> 0) then
Begin
RandomNextPlayer(PlayerActive);
end else
Begin
WriteLn('Training Finished. Thanks For Using My Script! Have a Nice Day =)');
TerminateScript;
end;
LogInSetup;
MainLoop;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

procedure FixPosition;
Begin
Fixes := Fixes + 1;
if Fixes >= 3 then
LogOutProc(False);
if Not(Lowercase(Players[CurrentPlayer].Strings[1]) = 'bank') then exit;
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'tree' : Begin
if FindSymbol(x, y, 'dungeon') then
Begin
Mouse(x - 10, y, 0, 0, true);
Flag; ;
exit
end;
if FindColorTolerance(x, y, 1455934, MMX1, MMY1, 620, 60, 30) then
Begin
Mouse(665, 114, 5, 5, true);
Flag;
Exit;
end;
end;
'oak' : Begin
if InBlackChat('each') then
Begin
Mouse(600, 100, 2, 2, true);
Repeat
i := 1 + Random(28);
if ExistsItem(i) then
MouseItem(i, false);
until(ChooseOption('xamin'));
Flag;
exit;
end;
Mouse(666, 66, 2, 2, true);
Flag;
end;
'willow' : Begin
Picture := DTMFromString('78DA634C676660706064400635FD3B188C803' +
'448F43F10306601D51843D43041D52426A6328840D58000630250' +
'8D230135F940352E04D480DCE349404D31508D077E350062D1104' +
'A');
if FindDTM(Picture, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x + 33, y, 2, 2, true);
Wait(250);
If Not(FlagPresent) then
repeat
GetMousePos(x, y);
Mouse(x - 1, y, 0, 0, true);
Wait(250);
until(FlagPresent);
Flag;
end;
FreeDTM(Picture);
end;
'yew' : Begin
if FindSymbol(x, y, 'tree') then
Begin
Mouse(x, y, 0, 0, true);
Wait(250);
If Not(FlagPresent) then
Repeat
GetMousePos(x, y);
Mouse(x + 1, y, 0, 0, true);
Wait(250);
until(FlagPresent);
Flag;
end;
end;
end;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure PlayerReport;

var
XPNextLevel, NextLevel, TotalLoads, TotalLevels : Integer;

Begin
Players[CurrentPlayer].Integers[1] := Players[CurrentPlayer].Integers[1] + 1;
LoadsTillLog := LoadsTillLog - 1;
ReportVars[0] := ReportVars[0] + 1;
SRLRandomsReport;
Players[CurrentPlayer].Integers[3] := 0;
repeat
Players[CurrentPlayer].Integers[3] := GetSkillLevel('woodcutting');
until(Players[CurrentPlayer].Integers[3] > 1);
NextLevel := Players[CurrentPlayer].Integers[3] + 1;
Players[CurrentPlayer].Integers[3] := Players[CurrentPlayer].Integers[3] - Players[CurrentPlayer].Integers[2];
repeat
XPNextLevel := XpTilNextLevel('woodcutting');
until(XPNextLevel > 0);
TotalLoads := 0;
TotalLevels := 0;
ActivePlayers := 0;
for i := 0 to HowManyPlayers - 1 do
Begin
TotalLoads := TotalLoads + Players[i].Integers[1];
TotalLevels := TotalLevels + Players[i].Integers[3];
if Players[i].Active then
Begin
ActivePlayers := ActivePlayers + 1;
end;
end;
WriteLn('');
WriteLn('() (=================================================)');
WriteLn('() (= Fr0zn S0uls Multi-Tree Chopper Banker~Dropper =)');
WriteLn('() (= ' + Capitalize(Players[CurrentPlayer].Name) + chr(39) + 's Report');
WriteLn('() (=================================================)');
Writeln('() (= ' + IntToStr(XPNextLevel) + ' XP To Level ' + IntToStr(NextLevel) + ' Woodcutting');
WriteLn('() (= Gained ' + IntToStr(Players[CurrentPlayer].Integers[3]) + ' Levels out of ' + IntToStr(TotalLevels) + ' Total Levels');
WriteLn('() (= Done ' + IntToStr(Players[CurrentPlayer].Integers[1]) + ' of ' + IntToStr(TotalLoads) + ' Total Loads' + ' (' + IntToStr(ActivePlayers) + ' Players Still Active)');
Writeln('() (= Script Running For ' + TimeRunning);
WriteLn('() (=================================================)');
WriteLn('');
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure WalkToBank;
Begin
if Not(LoggedIn) then Exit;
if Not(InvFull) then MainLoop;
FindNormalRandoms;
MakeCompass('n');
AlignMM('n');
SetRun(false);
tries := 0;
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'tree' : Begin
While Not(RadialRoadWalk(FindRoadColor, 190, 170, 65, 0, -2)) do
Mouse(642, 108, 2, 2, true);
RadialRoadWalk(FindRoadColor, 190, 170, 65, 0, -2);
FFlag(3);
Picture := DTMFromString('78DA632C65666070616440061909090C92401' +
'A24FA1F08182B816ADC206A98A06AFEFD13661081AA0101B01A3B' +
'026A0A806ABC08A8A920AC0600EFDD119B');
if FindDTM(Picture, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x + 10, y, 2, 5, true);
Wait(500);
If Not(FlagPresent) then
repeat
GetMousePos(x, y);
Mouse(x - 2, y, 0, 0, true);
Wait(500);
until(FlagPresent);
Flag;
FreeDTM(Picture);
end else
Begin
FreeDTM(Picture);
Flag;
if Not(RadialRoadWalk(FindRoadColor, 80, 120, 60, -2, 0)) then
Mouse(706, 93, 2, 5, true);
end;
end;
'oak' : Begin
Repeat
Mouse(624, 88, 2, 2, true);
Wait(500);
Flag;
until Not(FindColorTolerance(x, y, 417228, 685, 50, 720, 105, 20));
Flag;
Picture := DTMFromString('78DA63AC6066607062644006F9A5B10C22401' +
'A24FA1F0818CB806ACC206A98A16A1C5DACE06A4080B10628E34F' +
'404D2E50C688809A12A04C300135E940195F026A406ED6C1AF060' +
'081F10F6D');
tries := 0;
repeat
if FindDTM(Picture, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y + 5, 2, 2, true);
Flag;
Break;
end;
tries := tries + 1;
Mouse(620, 85, 2, 1, true);
Flag;
until(tries > 1);
FreeDTM(Picture);
Mouse(630, 140, 15, 5, true);
Flag;
While Not(RadialRoadWalk(FindRoadColor, 200, 180, 65, 0, -2)) do
Mouse(642, 108, 2, 2, true);
RadialRoadWalk(FindRoadColor, 190, 170, 65, 0, -2);
FFlag(3);
Picture := DTMFromString('78DA632C65666070616440061909090C92401' +
'A24FA1F08182B816ADC206A98A06AFEFD13661081AA0101B01A3B' +
'026A0A806ABC08A8A920AC0600EFDD119B');
if FindDTM(Picture, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x + 10, y, 2, 5, true);
Wait(500);
If Not(FlagPresent) then
repeat
GetMousePos(x, y);
Mouse(x - 2, y, 0, 0, true);
Wait(500);
until(FlagPresent);
Flag;
FreeDTM(Picture);
end else
Begin
FreeDTM(Picture);
Flag;
if Not(RadialRoadWalk(FindRoadColor, 80, 120, 60, -2, 0)) then
Mouse(706, 93, 2, 5, true);
Flag;
end;
end;
'willow' : Begin
Picture := DTMFromString('78DA632C65666070616440061909090C92401' +
'A24FA1F08182B816ADC206A98A06AFEFD13661081AA0101B01A3B' +
'026A0A806ABC08A8A920AC0600EFDD119B');
if FindDTM(Picture, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x + 12, y, 2, 5, true);
Wait(500);
If Not(FlagPresent) then
repeat
GetMousePos(x, y);
Mouse(x - 2, y, 0, 0, true);
Wait(500);
until(FlagPresent);
Flag;
FreeDTM(Picture);
end else
Begin
FreeDTM(Picture);
if FindSymbol(x, y, 'fish') then
Begin
Mouse(x + 29, y - 58, 2, 2, true);
FFlag(3);
end else
Begin
Mouse(674, 47, 2, 2, true);
FFlag(3);
end;
end;
end;
'yew' : Begin
RadialRoadWalk(FindVarrockRoadColor2, 250, 280, 50, 1, 0);
Flag;
RadialRoadWalk(FindVarrockRoadColor2, 180, 220, 50, 0, -1);
Flag;
RadialRoadWalk(FindVarrockRoadColor2, 260, 270, 72, 1, 0);
Flag;
LinearRoadWalk(FindVarrockRoadColor, 260, 65, 1, 0);
Flag;
end;
end;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure BankLogs;
Begin
if Not(LoggedIn) then exit;
DwarfItem;
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'yew' : Begin
if FindObjCustom(x, y, ['anke'], [4343623, 4541002, 337198, 270118], 10) then
Begin
Mouse(x, y, 0, 0, false);
if Not(ChooseOption('ank ')) then
if Not(ChooseOption('ank Banke')) then
Mouse(x, y + 40, 0, 0, true);
end;
Wait(500);
If Not(BankScreen) then
If Not(PinScreen) then
Begin
if FindSymbol(x, y, 'bank') then
Begin
Mouse(x, y, 0, 0, true);
if FindObj(x, y, 'anke', 4672845, 10) then
Begin
Mouse(x, y, 0, 0, false);
if Not(ChooseOption('ank ')) then
if Not(ChooseOption('ank Banke')) then
Mouse(x, y + 40, 0, 0, true);
end;
end;
end else
InPin(Players[CurrentPlayer].Strings[2]);
If Not(BankScreen) then
LogOutProc(False);
end;
else
Begin
if Not(OpenBankFast('db')) then
if Not(OpenBankQuiet('db')) then
Begin
if FindSymbol(x, y, 'bank') then
Begin
Mouse(x, y, 2, 2, true);
FFlag(3);
end;
LowestAngle;
OpenBankGlass('db', true, false);
end;
Flag;
if PinScreen then
InPin(Players[CurrentPlayer].Strings[2]);
If Not(BankScreen) then
LogOutProc(false);
end;
end;
if BankScreen then
Begin
for i := 2 to 28 do
Begin
if ExistsItem(i) then
Begin
MouseItem(i, false);
ChooseOption('ll');
Wait(1000 + random(500));
end;
end;
Mouse(485, 41, 4, 4, True);
Wait(250 + random(125));
end;
if BankScreen then
CloseBank;
GameTab(2);
PlayerReport;
HighestAngle;
FindNormalRandoms;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Function PosArray(SubStr : Array of String; S : String) : Boolean;
Begin
for i := 0 to GetArrayLength(SubStr) - 1 do
Begin
Result := Pos(SubStr[i], S) > 0;
if Result then exit;
end;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure AutoRespond;

var
LolChatter : Integer;
TextFound, Name, OldMessage : String;

Begin
GetLastChatText(TextFound);
if OldMessage = TextFound then exit;
OldMessage := TextFound;
if Not(PosArray(['wc l', 'woodcutting l', 'w/c l', 'wc?', 'wcing l', 'lol', 'haha','hehe','lmao','rofl','hi ','hello',' hey',' yo ','bot ','macro','u noob','u nub','u loser',Lowercase(Capitalize(Players[CurrentPlayer].Name)), Left(Lowercase(Capitalize(Players[CurrentPlayer].Name)), 4), Right(Lowercase(Capitalize(Players[CurrentPlayer].Name)), 4), 'woot','woop'],TextFound)) then exit;
LastChatter(Name);
if Lowercase(Name) = Lowercase(Capitalize(Players[CurrentPlayer].Name)) then exit;
if TimeFromMark(RemoveChatters) >= 50000 then
Begin
if Not(PosArray(['wc l', 'woodcutting l', 'w/c l', 'wc?', 'wcing l', 'lol', 'haha','hehe','lmao','rofl','hi ','hello',' hey',' yo ','bot ','macro','u noob','u nub','u loser',Lowercase(Capitalize(Players[CurrentPlayer].Name)), Left(Lowercase(Capitalize(Players[CurrentPlayer].Name)), 4), Right(Lowercase(Capitalize(Players[CurrentPlayer].Name)), 4), 'woot','woop'],TextFound)) then exit;
MarkTime(RemoveChatters);
for i := 0 to FreeSlot - 1 do
Begin
Chatters[i] := ''
end;
FreeSlot := 1;
end;
for i := 0 to FreeSlot - 1 do
Begin
if Chatters[i] = Name then exit;
end;
for i := FreeSlot to 100 do
if Chatters[i] = '' then
Begin
Chatters[i] := Name;
FreeSlot := FreeSlot + 1;
Break;
end;
if (PosArray(['wc l','woodcutting l', 'w/c l', 'wc?', 'wcing l'],TextFound)) then
Begin
if (Players[CurrentPlayer].Integers[2] <= 0) then
Begin
Players[CurrentPlayer].Integers[2] := GetSkillLevel('WoodCutting');
end;
Case Random(6) of
0: TypeSend2(IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained), 33, 5, 5);
1: TypeSend2('me ' + IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained) + ' u?', 33, 5, 5);
2: TypeSend2(IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained) + ' =p', 33, 5, 5);
3: TypeSend2('I' + chr(39) + 'm ' + IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained), 33, 5, 5);
4: TypeSend2(IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained) + '...', 33, 5, 5);
5: TypeSend2('low lol', 33, 5, 5);
end;
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Talked to ' + Name);
talks := talks + 1;
exit;
end;
if (PosArray(['lol','haha','hehe','lmao','rofl'],TextFound)) then
Begin
If TimeFromMark(LolChatter) < 10000 then exit;
MarkTime(LolChatter);
Case Random(10) of
0: TypeSend2('lol', 33, 5, 5);
1: TypeSend2('', 33, 5, 5);
2: TypeSend2('lmao', 33, 5, 5);
3: TypeSend2('rofl', 33, 5, 5);
4: TypeSend2('?', 33, 5, 5);
5: TypeSend2('...', 100, 0, 0);
6: TypeSend2('haha', 33, 5, 5);
7: TypeSend2('hehe', 33, 5, 5);
8: TypeSend2('=]', 33, 5, 5);
9: TypeSend2('', 33, 5, 5);
end;
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Talked to ' + Name);
talks := talks + 1;
exit;
end;
if (PosArray(['Hi ','Hello',' hey','sup',' yo '],TextFound)) then
Begin
Case Random(12) of
0: TypeSend2('hi', 33, 5, 5);
1: TypeSend2('hello', 33, 5, 5);
2: TypeSend2('hey', 33, 5, 5);
3: TypeSend2('yo', 33, 5, 5);
4: TypeSend2('sup', 33, 5, 5);
5: TypeSend2('wasup', 33, 5, 5);
6: TypeSend2('g' + chr(39) + 'day', 33, 5, 5);
7: TypeSend2('good mornin!', 33, 5, 5);
8: TypeSend2('good aftanoon!', 33, 5, 5);
9: TypeSend2('good evenin!', 33, 5, 5);
10: TypeSend2('ohaiyogozaimasu - im asian hehe', 33, 5, 5);
11: TypeSend2('hau - im indian =]', 33, 5, 5);
end;
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Talked to ' + Name);
talks := talks + 1;
exit;
end;
if (PosArray(['bot ', 'macro'],TextFound)) then
Begin
Case Random(10) of
0: TypeSend2('Wat r they?', 33, 5, 5);
1: TypeSend2('wots the point in gettin sumthin else 2 play 4 u?', 33, 5, 5);
2: TypeSend2('bots r stupid', 33, 5, 5);
3: TypeSend2('i h8 bots', 33, 5, 5);
4: TypeSend2('macros r ruinin rs for us =[', 33, 5, 5);
5: TypeSend2('?', 33, 5, 5);
6: TypeSend2('stupid autos r forcing jagex to fight back... wich affects us 2 =[', 33, 5, 5);
7: TypeSend2('macros made our shop prices rise =[', 33, 5, 5);
8: TypeSend2('bots r so obvious', 33, 5, 5);
9: TypeSend2('wots da point banning macros coz there r bots to even make new bots = /', 33, 5, 5);
end;
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Talked to ' + Name);
talks := talks + 1;
exit;
end;
if (PosArray(['u noob','u nub','u loser'],TextFound)) then
Begin
Case Random(10) of
0: TypeSend2('stfu', 33, 5, 5);
1: TypeSend2('look in da mirror', 33, 5, 5);
2: TypeSend2('lmao u r', 33, 5, 5);
3: TypeSend2('...', 33, 5, 5);
4: TypeSend2('omg...', 33, 5, 5);
5: TypeSend2('get a life', 33, 5, 5);
6: TypeSend2('gotta start sumwhea', 33, 5, 5);
7: TypeSend2('shut up', 33, 5, 5);
8: TypeSend2('hmph', 33, 5, 5);
9: TypeSend2('=[', 33, 5, 5);
end;
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Talked to ' + Name);
talks := talks + 1;
exit;
end;
if (PosArray([Lowercase(Capitalize(Players[CurrentPlayer].Name)), Left(Lowercase(Capitalize(Players[CurrentPlayer].Name)), 4), Right(Lowercase(Capitalize(Players[CurrentPlayer].Name)), 4)],TextFound)) then
Begin
Case Random(9) of
0: TypeSend2('me?', 33, 5, 5);
1: TypeSend2('wot u want', 33, 5, 5);
2: TypeSend2('...', 33, 5, 5);
3: TypeSend2('leave me alone!', 33, 5, 5);
4: TypeSend2('I' + chr(39) + 'm not in the mood =[', 33, 5, 5);
5: TypeSend2('ye?', 33, 5, 5);
6: TypeSend2('yo?', 33, 5, 5);
7: TypeSend2('uh?', 33, 5, 5);
8: TypeSend2('shudup', 33, 5, 5);
end;
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Talked to ' + Name);
talks := talks + 1;
exit;
end;
if (PosArray(['woot','woop'],TextFound)) then
Begin
Case Random(9) of
0: TypeSend2('gratz', 33, 5, 5);
1: TypeSend2('grats', 33, 5, 5);
2: TypeSend2('...', 33, 5, 5);
3: TypeSend2('what?', 33, 5, 5);
4: TypeSend2('huh?', 33, 5, 5);
5: TypeSend2('wat?', 33, 5, 5);
6: TypeSend2('wot?', 33, 5, 5);
7: TypeSend2('uh whatd i miss?', 33, 5, 5);
8: TypeSend2('', 33, 5, 5);
end;
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Talked to ' + Capitalize(Name));
talks := talks + 1;
exit;
end;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure AutoChatter;
Begin
if TimeFromMark(RandomChatter) < (TalkEvery * 60000) then exit;
MarkTime(RandomChatter);
Case Random(20) of
0: Case Random(11) of
0: TypeSend2('wc lvls? me ' + IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained), 33, 5, 5);
1: TypeSend2('wc lvlz? ' + IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained), 33, 5, 5);
2: TypeSend2('woodcuttin lvls? Im ' + IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained), 33, 5, 5);
3: TypeSend2('wc levels? ' + IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained), 33, 5, 5);
4: TypeSend2('wc lvls? Im ' + IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained), 33, 5, 5);
5: TypeSend2('Woodcutting levels? Im ' + IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained), 33, 5, 5);
6: TypeSend2('wc lvl ' + chatters[0] +'?', 33, 5, 5);
7: TypeSend2('yo '+ chatters[0] + ' wc lvl?', 33, 5, 5);
8: TypeSend2('wats ur wc lvl ' + chatters[0] + '?', 33, 5, 5);
9: TypeSend2('woodcutting lvl ' + chatters[0] + '?', 33, 5, 5);
10: TypeSend2('wats ur woodcutting lvl ' + chatters[0] + '?', 33, 5, 5);
end;
1: TypeSend2('Man im bored', 33, 5, 5);
2: TypeSend2('wc is sooo boring!', 33, 5, 5);
3: TypeSend2('hehe gime dem ' + tree + 's!', 33, 5, 5);
4: TypeSend2('so sleepy...', 33, 5, 5);
5: TypeSend2('arg cmon u stupid tree!', 33, 5, 5);
6: TypeSend2('haha im so nooby', 33, 5, 5);
7: TypeSend2('woot lvl '+ IntToStr(Players[CurrentPlayer].integers[2] + LevelsGained) + '!', 33, 5, 5);
8: TypeSend2(tree + 's r all mine!', 33, 5, 5);
9: TypeSend2('look at all da bots =[', 33, 5, 5);
10: TypeSend2('yay nerly lvl!', 33, 5, 5);
11: TypeSend2('sweet only 2k to lvl!', 33, 5, 5);
12: TypeSend2('im da man!', 33, 5, 5);
13: TypeSend2('u guys eva been in zezimas chat? u cant hear urself think!', 33, 5, 5);
14: TypeSend2('omg i wish i was a mem...', 33, 5, 5);
15: Begin
SendText('red:shake:');
TypeSend2('mwuahahaha my ' + tree + 's!', 33, 5, 5);
end;
16: Begin
SendText('white:');
TypeSend2('have a good day all of you... =]', 33, 5, 5);
end;
17: Begin
SendText('red:shake:');
TypeSend2('Im goin 2 eat ur souls mwuahahahahahahahahahaha', 33, 5, 5);
end;
18: TypeSend2('what sorta music yall listen 2?', 33, 5, 5);
19: Begin
TypeSend2('I luv rock! ', 33, 5, 5);
Wait(500);
TypeSend2('music that is =]', 33, 5, 5);
end;
end;
talks := talks + 1;
Writeln(Capitalize(Players[CurrentPlayer].Name) + ': Auto Chattered');
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Function EntFinder(RunAway : Boolean) : Boolean;

var
Counter : Integer;

Begin
if Not(LoggedIn) then Exit;
Counter := 0;
While Counter < 15 do
Begin
i := GetColor(82 + Counter, 17);
Counter := Counter + 2;
if SimilarColors(i, 119764, 80) then
Begin
EntsAvoided := 1;
Result := True;
if RunAway then
Begin
Mouse(630, 80, 5, 5, true);
MainLoop;
end;
exit;
end;
end;
end;

{*******************************************************************************
Function FindAxe: Boolean;
By: Sumilion
Description: Finds if there is an axe present. Axe can be wielded or unwielded.
Stores place in Boolean var EquipAxe.
Modded to:
Procedure FindBrokenAxe;
Description: Checks inventory slot one to see if the current axe is broken.
*******************************************************************************}

Procedure FindBrokenAxe;
var
Ix, Iy, i: Integer;
Axes: array[0..6] of Integer;

Begin
if Not(LoggedIn) then exit;
Axes[0] := BitmapFromString(13, 12, 'beNpljzEKwkAQRTed5BA' +
'G7UNgUwhaBQsT2CYECxs7G8/g4f3y4DO4yytmh7d/Z8qUUiPuZYJt' +
'OYv6+i67z6NFrrEvR1y2J4zzKlzYJIomgnklnWboOrR+vIk/R+AIj' +
'af6cNznnKPMYHbQItHkOzb1KxE1TGsxmXBMzc8K9GMyYHpNBGs2PT' +
'BOuZ6cVuOcH1/x2l5L'); //rune
Axes[1] := BitmapFromString(12, 13, 'beNptkTEKgDAQBGMn' +
'PkLRDwiCFnY2gpBOLHyAjW/w8S4MnocxLHLRuc3mjFMImbQu4xYnp' +
'BrZ9oz5tReQqWAESP08/AoMk1/gCFpZW1ViumelJgIkFXVTSh4jDI' +
'DyfEJ6TABXM948/VkMga82HLNSYDLrpQfoArNLfUy8m8/M00+eOm1' +
'PsfcP3gW5WBM='); //addamant
Axes[2] := BitmapFromString(11, 13, 'beNptkEEKwjAURNOt' +
'h2jRvRR+F6K7UkGFbERceIDcwsP7ZGD4VMMQksz7yeTXuZTucTuhZ' +
'51RXmv7fm1g/kowQETbT5dfwXAJM2sxnlErjG4chojIVVjT9a5yXL' +
'Td9cjA+dgUQC4ZcqrMyEUikQE9pF8Q0qRuE4CtkGpFXQ6SGX/B5XL' +
'NrFx3WICDaZvbvjr56gMxMVIM'); //mithril
Axes[3] := BitmapFromString(12, 13, 'beNp1kTEKgDAMRSs4ub' +
'm4egRHwU2cCt3EwQN4Cw/vkw+hxFg+JW1fk98mLyk1e17QUdY/3Wc' +
'HFopTXYcZ+jaUlSDQ0s1XYjTTOMKEgAIARMWwRA0g57NOYp7FoxrQ' +
'rCRi7B8sFYblWYwBit2j6ooOc57LNn8bIYB9TgUoCDv1Ag8xy0js'); // black
Axes[4] := BitmapFromString(11, 13, 'beNptkMEKgkAURe0Dwl' +
'1QKz8hCDcRIUGS9AXuRErBLCrTzIywwVVEv9ylaw8XwWWYd9+ZN3f' +
'GMueTkWgxbUrHMiHuNa3zVwBsy1zOxvdzdktP1+R4OewhbFDCFEac' +
'Ks+xUklfBzA0DFyRbCJ2VVEIwy4Bz3Xj9QrD67J8PioGYJcZJFW6j' +
'THkpRQBPgQMYZih55F51zVKnIXk7VhhRr6Pu7KBzpDO9wqOomDuwi' +
'DodSVGG7B/jHQ5vD2Bfytd8ZlHAJ5qhn8AYiBqCQ=='); //steel
Axes[5] := BitmapFromString(11, 12, 'beNptj8EJwDAMA5NJMkL' +
'Bzz4ChX5K8iklI2T/FSqqIgyxEX5EF1vux3Pto/99Fd5TyqHEnLWG' +
'EhO6M6HyVgoAM/PW3Rq/wyWAbl9psnchpSKDCQSQn6cRFiBGgL+XD' +
'BIypCyJjE5gDLk+kg+57vLueAECBk9w'); //iron
Axes[6] := BitmapFromString(11, 13, 'beNptUEEKwCAMq+/Yw' +
'OtugkfZZUdht7En+P8vLCMQSqkEqW1M087x3hfwzKGbAYHYrKQQ4W' +
'x7CnAolVaX4ZRWKzi40+/Ik3BshqB3U0nVYFJSEidIRhJSwWEYWSJ' +
'wSJNaTuBoBDXya/QmfRfFcuW37Qk+/z8/ntRQSA=='); //bronze
GameTab(4);
for i := 0 to 7 do
Begin
if i = 7 then
Begin
for i := 0 to 6 do
FreeBitmap(Axes[i]);
Exit;
end;
if FindBitmapToleranceIn(Axes[i], Ix, Iy, 500, 150, 650, 300, 25) then
Break;
end;
for i := 0 to 6 do
FreeBitmap(Axes[i]);
LogOutProc(False);
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure CheckForRandoms;

var
Loops : Integer;

Begin
FindNormalRandoms;
if FindFight then
Begin
x := MMCX;
y := MMCY;
case Lowercase(Players[CurrentPlayer].Strings[3]) of
'n' : Begin
Mouse(x, y - 50, 0, 0, true);
Wait(7000 + random(3500));
Mouse(x, y + 50, 0, 0, true);
Flag;
end;
'ne': Begin
Mouse(x + 50, y - 50, 0, 0, true);
Wait(7000 + random(3500));
Mouse(x - 50, y + 50, 0, 0, true);
Flag;
end;
'e' : Begin
Mouse(x + 50, y, 0, 0, true);
Wait(7000 + random(3500));
Mouse(x - 50, y, 0, 0, true);
Flag;
end;
'se': Begin
Mouse(x + 50, y + 50, 0, 0, true);
Wait(7000 + random(3500));
Mouse(x - 50, y - 50, 0, 0, true);
Flag;
end;
's' : Begin
Mouse(x, y + 50, 0, 0, true);
Wait(7000 + random(3500));
Mouse(x, y - 50, 0, 0, true);
end;
'sw': Begin
Mouse(x - 50, y + 50, 0, 0, true);
Wait(7000 + random(3500));
Mouse(x + 50, y - 50, 0, 0, true);
end;
'w' : Begin
Mouse(x - 50, y, 0, 0, true);
Wait(7000 + random(3500));
Mouse(x + 50, y, 0, 0, true);
end;
'nw': Begin
Mouse(x - 50, y - 50, 0, 0, true);
Wait(7000 + random(3500));
Mouse(x + 50, y + 50, 0, 0, true);
end;
end;
end;
AutoRespond;
AutoChatter;
FindNormalRandoms;
Loops := Loops + 1;
If Loops > 5 then
Begin
FindBrokenAxe;
Loops := 0;
end;
if Lowercase(Players[CurrentPlayer].Strings[0]) = 'oak' then
if Lowercase(Players[CurrentPlayer].Strings[1]) = 'bank' then
if InBlackChat('each') then
Begin
Mouse(600, 100, 2, 2, true);
Repeat
i := 1 + Random(28);
if ExistsItem(i) then
MouseItem(i, false);
until(ChooseOption('xamin'));
Flag;
exit;
end;
EntFinder(true);
If InvFull then MainLoop;
if Not(LoggedIn) then
if ((ActivePlayers - 1) <> 0) then
Begin;
RandomNextPlayer(False);
LogInSetup;
MainLoop;
end;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure ChopTree;

var
ClickedTree : Integer;

Begin
repeat
GameTab(4);
if InvFull then exit;
repeat
FindNormalRandoms;
if FindObjCustom(x, y, ['down ' + Tree], [TreeColor[0], TreeColor[1], TreeColor[2]], GameColorTolerance) then
Begin
tries := 0;
if Not(EntFinder(false)) then
Begin
Mouse(x, y, 0, 0, true);
Flag;
MarkTime(ClickedTree);
end else
MainLoop;
end else
Begin
Tries := Tries + 1;
if (tries >= 10) then
FixPosition;
end;
until(IsUpText('down ' + Tree));
repeat
CheckForRandoms;
if (TimeFromMark(ClickedTree) >= 30000 + random(5000)) then
Begin
Mouse(x, y ,0, 0, true);
MarkTime(ClickedTree);
end;
until InvFull or Not(IsUpText('down ' + Tree));
until(InvFull);
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure DropLogs;
Begin
if Not(LoggedIn) then exit;
GameTab(4);
for i := 3 to 28 do
Begin
If ExistsItem(i) then
DropItem(i);
if (i = 10) or (i = 20) then
FindNormalRandoms;
end;
PlayerReport;
FindNormalRandoms;
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure ButtonClick(Sender: TObject);
Begin
Case Sender of
StartButton : Begin
MouseSpeed := StrToInt(SpeedEdit.Text);
LampSkill := LampEdit.Text;
GameColorTolerance := StrToInt(ColorEdit.Text);
TalkEvery := StrToInt(TalkEdit.Text);
LogoutEvery := StrToInt(LogoutEdit.Text);
SRLID := SRLIDEdit.Text;
SRLPassword := SRLPassEdit.Text;
frmDesign.ModalResult := mrOk;
SRLPlayerForm(True, ['Member?'], ['Loads To Do'], ['Tree To Cut', 'Bank or Drop', 'Bank PIN', 'Run Direction'], []);
end;
HomeButton : Begin
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=18498');
frmDesign.ModalResult := mrOk;
TerminateScript;
end;
ExitButton: Begin
frmDesign.ModalResult := mrOk;
TerminateScript;
end;
end;
end;

Procedure AddPic;

var
Canvas : TCanvas;

begin
Picture := BitmapFromString(247, 28, 'beNpVm3dw3El234kZzCAQ' +
'BEFyGZdcLjOBweQIzGAGAwwGGEwe5ByJjEFOJMG8jMsld7nL3eVyb' +
'+Pd6XKQ5LtTnVSSdT5F2+ezylVW8Nmyq2T/oX8sySrZpSp/9nX9WK' +
'uprl/17/Xr169ff1/oH0i93lVVZausdFRW+qTjrqqqkr6lspIhc2W' +
'lU4jWykroMNDxVlVBqa6stFdWmoXir6pqrKqqr6pqqqpKmkxh4WfI' +
'I3Is0ndpUxwixyZ9p4hiuZqqKoe2FvKdGoNH6FBqhUdxslyoqsou6' +
'zJUJ32lPKORqiqPiA2KSmhSL5RaYYNukqdfKGGZQgtI80pT+3Vq6/' +
'pFVEhT0i0ML5pH06pBpIWkhcUgIW2J8Jco9RpPQJ7tJtOgyTQgrc9' +
'kmjGZZqWDGRPyzMnrhMn0utl8pbqa0VGTabG6+nJ19WZ1NfxIyAqF' +
'V56XqqvfN5vvCvOcMCxXV69VV/NcqK6eNpkuiIQJmZKvrqYzJX14G' +
'LptNreJwGaTqcVkGjeZuoW/w2SKa082QueG2Twv8umgzGOz+QOz+Z' +
'sWyydm81ctln9vtf7UaqXzHYvlexbLR2bzr1ssP7RYvmWx3DKbL4k' +
'mzJ0U/ZMiNi5bjstrRhSgxaSP0Vo1lWBIiybsblRGsa1iaxIjp4SB' +
'flyUp3lMJgdnx3mZTGYwyflWVQFIr8kExSavQLHGZHLJKHSvxvmFF' +
'4AcYWgwmYJIRs/q6oDwqLkOmVIjC7lkSp28umTii+X8MsUtdDh9Jl' +
'OtNDitohvMNhHFKMvVynJ18uoWTr+2hGIIC0ODiFUK22UXQeGvl6d' +
'bZvllFf+X+koOmoeEEhZ+v+xOUZQ+bk1h5AdkKCCjddKvlxbWWqy6' +
'urm6Oij9Znk2akMjZvOY2TxsNvdUV0/JM282r5vNfWZza3V1V3X1q' +
'tl80WyGeAHoms13LBZer1ssdG5YLIp50Wymf9tieWq1vmO1viU8a2' +
'YzlE2zeUqm81wym2fM5ml5LpjNyxqd1yERcstiyVZXD5jN8epq2qj' +
'ZzOrjMppkCyZTqrqaDkpugG3RfFvUg+0jq/VbVuv3rNZf2u2/sNu/' +
'Y7XSftNq/aE8f89m+67VipKzMmtQW3FRttxrNmeqq7MiGVulq6sz0' +
'mGtRs2AnGZcXnmOyS46hCEttqVxQFEZTYuoNrEenI7qarM0uzyd1d' +
'UeszkgzVNd7a6u9pnNfrOZp00YrNJUxyc88AfN5gazudlsjprNCW1' +
'6rdnshUHm0twi3FVdXSuvtZpYjxAZVbP8WqvVJqKh0kQp82JRGMKy' +
'LqvXacwv+qwVFJ4mIUJRq3ilz6yQpqFfpgSFUi+tThvyaSrVaDvya' +
'6+1QglqTc1VdmiR1qAN1cmQMk690CNmc6OmA/1Bi6XLbM5x1oQ4q3' +
'XBan3Dav2x3f5vHI6f2O0PrFaI96zWOYvlodW6Kq+f22yf2Wy/ZrN' +
'NWyzbVuuK1bpltTL6mtX6ptV6zWrdtFp7RfK6DPF6VdhWhO2BcF4X' +
'UUtW65TFMmOxDAkzbDet1gz4kV20gX+LBTkTFsuwxdIteqbBp0x5x' +
'2a7Y7XmLZbXRSBKotIvHY5fOBx/4nB8227/qcPxM4eDvfyOw/FNu/' +
'0jm+26bJAVRywWNOy3WBYslnmLZUzk9wsRO3SK8p2yXIsYqkks3yB' +
'03F8xp0XDXmHrFOKYjNIuWCysckF0dlssdovFarE4LBabxeK0WNzS' +
'nELnWWu11lit9L1Cd2lD8PusVkbrrdZWqzVitTZbrUmrNWi1+hiyW' +
'AIy6lNNm+4WuiL6rdY6qzUgjY5beJTMWhn1y5BPhmqUNJHsEzUghm' +
'TdRtFB6VkvPC7ZERNRNait4tZmBUXJsBA9FotH9qhUrRXmoHTURhq' +
'0RUMiIaDpBhsURpukRWRppU/Cam2Rvl+ERMU+UemHhA2emJirQSiN' +
'wt9rtc7YbJfs9t92Ov9U2s+czp87nX/idP6x0/mHTucvXK4fOZ3jN' +
'tsNu/1NwG+3/5bT+ROn84ndPmmzrQjlqt1+z26nn7fZpmy2CZtt7k' +
'udCzbbqM22YLOt2u0XhZl23W6/bbc/tNuv2e13hPLM4UDDrNXaKVo' +
'xpcdqHRcJaDhos3XKK4t+1eH4wOG4ZbfTbshc1P4zlwtVf+ly/Wun' +
'83dkC7/udH7scHzqcCB5225HjQGrtV/kt1utwzbbst0+ZrPRWC4jQ' +
'zlRIC2mi4vR0mK0Nqt1QnYxJttha+t2+5rdPirEEdkpG7xst9+UHV' +
'2SIZ/N5rbZnNLsNls2lbp+5cqt69dfu3nz9q1b927ffnj//sTQUCQ' +
'USkYimWi0O53uSCTqHI4am218aOitx4+fP3v2/P33H965M9bVlbXb' +
'HZpAnzTY6uz2XEvL9ubmB8+ebW9ttcdiEDuy2ZG+vkQ4XG+308J2u' +
'1MmemUKbaS3943797/y/Plnn376ta997eL6eiwYZDTW0LCxsvL+e+' +
'8h7e0nT9aXl+MNDQ12e6Pb3RION3i98NQ6na0eT8hunxoaevPRIzi' +
'Xp6d9DgdDAbs9arfTaaypybS01Pt8UJgesduDdvsXo17vxtwc6777' +
'9tsz4+OpcLi/szM/Pb00NdWRTDY4nXWyVqqhIezxoHnC6017vc12e' +
'zIQ6M9mW/3+Fru9CWkOx2h3961Ll2b6+2fb2vobGhJ2+3giMZpMtr' +
'hcraJGxm4fsNvnHI7Xmpo+XVj4+tOnX3/+/Nfm5787NfW1p08/+8p' +
'Xnj16tDk5ORaPX4zH38rlfru29rtu93eCwa8ODn60sPBGOPwzt/vH' +
'bjcSNqLR9/L5hyMjd7zeRYfjqtPJM+9wbHZ2vvnaa59/9tn7jx59+' +
'PTpW9eu3cxmLzud15zOS8Iz5XBMOhwzDseW03mrpeWtvr6Pu7omg0' +
'F0G/F6BxsbF1paJpqbB3y+cRG4EgisR6OXWlqmGhruud0/dLs/cbl' +
'WnM6Lbve/6u7+nZWVn6fTf+p2/yIQ+MPm5t9rbv5RS8u34/HvdXR8' +
'KxT62OVCsTlt0TGHA5mDdjtqTDscww5Hh90OhDrt9rTd3i4tLlaKC' +
'D0hFEaZvixC+sGww8H0Vafz6y4Xmjx1Oh9Jo/O20/nQ6dx2Or0Oh9' +
'vhcElrSyavXr1aU1PjcvEGWgnt3BorL1y48Oabbz548ODevXuXLl2' +
'6du3aV+W3sLDw6quv7t2796WXXqqurt7a2locHU3G4/n5+dnp6bnJ' +
'yYGurqDHg4/cv38fJMJZX1//3nvvMXdzc3N6evrx48c96XTA6QSBA' +
'ZrTydPvcLSnUmhy/vz53bt3G43GgoKCTCbz2Wef9Xd3P3r0KBaLse' +
'KePXuOHj3a2tqKbgPp9Mcff8zQhx9+2BIKffLJJ7zODA2trq6eOHG' +
'CdUdGRpgedLuDTmeL293b1fXBBx+89tprPOtqa1k0rJb2eJjb29vL' +
'ukeOHEFDZC4vL3d2dnZ3d6MSQjpaW+GBzhKtgcCH8uuNxZ4+fYoF2' +
'F0uEIi53co+wWBwZmZmbW0N/pWJCUx35cqVTz/9dMzrnXS5ZlyuZZ' +
'cLfL7++uvZbPbQoUOsy+oYnP6uXbtOnjzJ6/Xr12/cuIHwr3zlK3e' +
'CQZZAMfjfeuutb6VS/87nexyLYeFcLjc2NoZW8z7ffY8n73LdiMdv' +
'375ttVoNBgN2QCYx4OHDh9dHRu5NTV3NZrc7O2/PzFwbHp51u7cGB' +
'u7evTs3N4fR3nnnnb5wmOVQ7M6dO9CfP38+E48D/nfffZe1EMuOsM' +
'ZPg8GvezyLHg99DJVIJNjjb4yOYpMH8lPMGxsbqP0ZO/V4brvdd93' +
'uDbd7wuWijblcmAJte12urMvV5XKlpdPpcvW4XBmXq8PlSjqdHdKB' +
'p83lGpSJcy7Xptt9y+2+6navud3jLtc1t/uJx/PY43ldGqNDLhetx' +
'u0OSPO73dsb2DtaUVEBqDDIqVOnysvLQQjni3F4PXv2LK/79+9H7a' +
'mpKU6h4Eu/V155hU3dvHmzra2NKZzO0tISeOCAsLDiwX3A5Oeff84' +
'oonAorBetqwt5PI0eTwPhl2dt7UcffYQ7wO/z+eLxOJxnzpwBkBwr' +
'3qTT6V4sSr+lpQXkoDmIQjgQSqfTwBJMojM8+/btGx8f58ia/P6g1' +
'8txoFhdXR1i+/v7QSMxucXjIfhHPZ6x3l4m4kFMhAEJpaWlrKLX67' +
'FJPp/HNZLJpNvtRh92197eHhcsNTU17dy5E4TMdHezBHgrKSkpLi4' +
'+duwYEqqqqgYHB3EcPPfJkydbkcg8OPd6R+rqsMDQ0BD7DYfDbJNV' +
'mIXFeC0rKyssLDwkP3Zx8eJFtAXtXV1d+H4oFOL1d7u7MQvg9Hg8E' +
'BcXFy/39d31+S75fIziC2wEO7///vuYBQa2jBNh/+3tbbyPk5qcnI' +
'QT8J87dw4GViek3FhcJKAR4tDk+PHjqEeIuzw7Cz+U06dPKwdE+Z/' +
'H4+yXcx8eHj58+DAWw0eANOcCD6/wYxmsxLmnvN4+j2fB6817vTNe' +
'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' +
'DAZ8BP37xXNzkg5U2Fd2TosTucT4nKZCeIGc+AGBgUJpqVD0gpw9E' +
'hKPaOd4UkO7VcJ4oXZpLZZIXiJoV1dXnbwWfSlBMHRKrzcZDKGior' +
'bS0qGysvny8uXy8qXy8jV50ua1zmp5+YK8rsrrTHn5rDaUl1kLGtt' +
'IWVm2pKSpuLjOaKzU65U/HpEgv0vz313yrJA9HpahPbLZEtmvykR7' +
'BcbnxH+b5AhOCvaOyaxjsvcDgvCjgsxXhf+41jeJST0SjV2SuK0aG' +
'hvkrO1SeWL546JepczdI9qekHWrJJgHBCHVgrEFgaJdy9RuwV5YZI' +
'bkQFNyvq3yPaFVUPEXxcV/V1Ly/0pK/k9JyRODYaWwcEzQS9Abl1j' +
'dK6hoFYRMy2tAu8oNCWdUduGTS9xZ0ZNZqh7GR35dIvn/LC7eEmdR' +
'mYKdKu/wiG5hrc6JipLwnBb7eIXeJESVldQqpyXUnBeQJ2Ro+EvpJ' +
'iYIn5Dl8hLDKX6gXDMYemXRRpGZFEfOCUVVTcpzC7XipFDL8ju1pF' +
'+qleV0XtIuoZXyPCAqIaRYi94qnpdoFY5BHESnlfRGYVMgPy7QUhO' +
'NwnkIExkMTdxni4snd+7Ml5Utl5UtlJUtlZXRn5POfFnZjLR5ITK6' +
'Vla2Km1F41RTVJssLe0tKWktKvIYDOf1+qM63R4JwqUC6b0S7ZULH' +
'BXEHpS+Cu+KU9UMxzS/VneQVyVuvyzgPC2wPCX0E1oiaBLbVkoEUE' +
'WLQ47VpVVEKra/IpLPy7NCyyYvih+/xmkWbPfJB4Sw4Mct/hIRmV6' +
'JkGlJzZyvV0DOQr9fVPS/S0r+QSoWYEDs3ZYiJCOVg7rZhTUoxgVL' +
'nQLgHqlGVgRLCpnqWxw4HJEliNVE0W8YjSxBvhiXsK8STUBqhnYNc' +
'nG5NtZrtTooBXUqXXrktUWKIp+ktnOSyJQXNErSGROQd4rOca0IGR' +
'KtUpKD8P3vG41jsuuEqN2r8YyK83aIU3DhpWArFwBjZ3X3VJV5mWD' +
'PICBU535ceFQ+VXH+pBSNL8K4KgnUpVWhSNX5RdqdsVSL5xUanJRk' +
'VSEfkCpCAaxUor2NS7fBkCwq6i8unispmZU2r7WV0tKlkpLV0lLaQ' +
'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' +
'zxO5NbT/f1xUZog=');
Canvas:= GetBitmapCanvas(Picture);
CopyCanvas(Canvas, frmDesign.Canvas, 0, 0, 427, 29, 27, 0, 427, 29);
end;

Procedure FormTitle(Sender : TObject);
begin
AddPic;
end;

Procedure InitForm;
Begin
frmDesign := CreateForm;
frmDesign.Left := 489;
frmDesign.Top := 136;
frmDesign.BorderStyle := bsNone;
frmDesign.Caption := 'Fr0zn S0ul'#39's Multi-Tree Chopper Banker~Dropper';
frmDesign.ClientHeight := 345;
frmDesign.ClientWidth := 283;
frmDesign.Color := clBlack;
frmDesign.Font.Color := clMaroon;
frmDesign.Font.Height := -15;
frmDesign.Font.Name := 'Franklin Gothic Medium';
frmDesign.Font.Style := [];
frmDesign.OnPaint := @FormTitle;
frmDesign.Visible := False;
frmDesign.PixelsPerInch := 96;
Label1 := TLabel.Create(frmDesign);
Label1.Parent := frmDesign;
Label1.Left := 16;
Label1.Top := 168;
Label1.Width := 92;
Label1.Height := 20;
Label1.Hint := 'Log Out After How Many Loads';
Label1.Caption := 'Log Out Every:';
Label1.Font.Color := clMaroon;
Label1.Font.Height := -15;
Label1.Font.Name := 'Franklin Gothic Medium';
Label1.Font.Style := [];
Label1.ParentFont := False;
Label1.ParentShowHint := False;
Label1.ShowHint := True;
Label2 := TLabel.Create(frmDesign);
Label2.Parent := frmDesign;
Label2.Left := 16;
Label2.Top := 136;
Label2.Width := 69;
Label2.Height := 20;
Label2.Hint := 'Randomly Talk Every How Many Minutes';
Label2.Caption := 'Talk Every:';
Label2.ParentShowHint := False;
Label2.ShowHint := True;
Label3 := TLabel.Create(frmDesign);
Label3.Parent := frmDesign;
Label3.Left := 16;
Label3.Top := 104;
Label3.Width := 147;
Label3.Height := 20;
Label3.Hint := 'Recommended as 3-10';
Label3.Caption := 'Game Color Tolerance:';
Label3.ParentShowHint := False;
Label3.ShowHint := True;
Label4 := TLabel.Create(frmDesign);
Label4.Parent := frmDesign;
Label4.Left := 16;
Label4.Top := 72;
Label4.Width := 92;
Label4.Height := 20;
Label4.Hint := 'Mouse Movement Speed';
Label4.Caption := 'Mouse Speed:';
Label4.ParentShowHint := False;
Label4.ShowHint := True;
Label5 := TLabel.Create(frmDesign);
Label5.Parent := frmDesign;
Label5.Left := 16;
Label5.Top := 40;
Label5.Width := 72;
Label5.Height := 20;
Label5.Hint := 'Skill to Choose With Genie';
Label5.Caption := 'Lamp Skill:';
Label5.ParentShowHint := False;
Label5.ShowHint := True;
Label6 := TLabel.Create(frmDesign);
Label6.Parent := frmDesign;
Label6.Left := 16;
Label6.Top := 232;
Label6.Width := 61;
Label6.Height := 20;
Label6.Hint := 'Register at stats.srl-forums.com';
Label6.Caption := 'SRL Pass';
Label6.Font.Color := clMaroon;
Label6.Font.Height := -15;
Label6.Font.Name := 'Franklin Gothic Medium';
Label6.Font.Style := [];
Label6.ParentFont := False;
Label6.ParentShowHint := False;
Label6.ShowHint := True;
Label7 := TLabel.Create(frmDesign);
Label7.Parent := frmDesign;
Label7.Left := 16;
Label7.Top := 200;
Label7.Width := 44;
Label7.Height := 20;
Label7.Hint := 'Register at stats.srl-forums.com';
Label7.Caption := 'SRL ID';
Label7.Font.Color := clMaroon;
Label7.Font.Height := -15;
Label7.Font.Name := 'Franklin Gothic Medium';
Label7.Font.Style := [];
Label7.ParentFont := False;
Label7.ParentShowHint := False;
Label7.ShowHint := True;
StartButton := TButton.Create(frmDesign);
StartButton.Parent := frmDesign;
StartButton.Left := 16;
StartButton.Top := 272;
StartButton.Width := 113;
StartButton.Height := 49;
StartButton.Cursor := crHandPoint;
StartButton.Hint := 'Click to Choose Your Characters';
StartButton.Caption := 'Start Script';
StartButton.Font.Color := clWindowText;
StartButton.Font.Height := -15;
StartButton.Font.Name := 'Franklin Gothic Medium';
StartButton.Font.Style := [];
StartButton.OnClick := @ButtonClick;
StartButton.ParentFont := False;
StartButton.ParentShowHint := False;
StartButton.ShowHint := True;
StartButton.TabOrder := 6;
HomeButton := TButton.Create(frmDesign);
HomeButton.Parent := frmDesign;
HomeButton.Left := 152;
HomeButton.Top := 272;
HomeButton.Width := 113;
HomeButton.Height := 49;
HomeButton.Cursor := crHandPoint;
HomeButton.Hint := 'Check For Updates or Get Help';
HomeButton.Caption := 'Visit Home Page';
HomeButton.OnClick := @ButtonClick;
HomeButton.ParentShowHint := False;
HomeButton.ShowHint := True;
HomeButton.TabOrder := 7;
LogoutEdit := TEdit.Create(frmDesign);
LogoutEdit.Parent := frmDesign;
LogoutEdit.Left := 176;
LogoutEdit.Top := 168;
LogoutEdit.Width := 89;
LogoutEdit.Height := 28;
LogoutEdit.Hint := 'Log Out After How Many Loads';
LogoutEdit.ParentShowHint := False;
LogoutEdit.ShowHint := True;
LogoutEdit.TabOrder := 5;
LogoutEdit.Text := '10';
TalkEdit := TEdit.Create(frmDesign);
TalkEdit.Parent := frmDesign;
TalkEdit.Left := 176;
TalkEdit.Top := 136;
TalkEdit.Width := 89;
TalkEdit.Height := 28;
TalkEdit.Hint := 'Randomly Talk Every How Many Minutes';
TalkEdit.ParentShowHint := False;
TalkEdit.ShowHint := True;
TalkEdit.TabOrder := 4;
TalkEdit.Text := '10';
ColorEdit := TEdit.Create(frmDesign);
ColorEdit.Parent := frmDesign;
ColorEdit.Left := 176;
ColorEdit.Top := 105;
ColorEdit.Width := 89;
ColorEdit.Height := 28;
ColorEdit.Hint := 'Recommended as 3-10';
ColorEdit.ParentShowHint := False;
ColorEdit.ShowHint := True;
ColorEdit.TabOrder := 3;
ColorEdit.Text := '3';
SpeedEdit := TEdit.Create(frmDesign);
SpeedEdit.Parent := frmDesign;
SpeedEdit.Left := 176;
SpeedEdit.Top := 73;
SpeedEdit.Width := 89;
SpeedEdit.Height := 28;
SpeedEdit.Hint := 'Mouse Movement Speed';
SpeedEdit.ParentShowHint := False;
SpeedEdit.ShowHint := True;
SpeedEdit.TabOrder := 2;
SpeedEdit.Text := '12';
LampEdit := TEdit.Create(frmDesign);
LampEdit.Parent := frmDesign;
LampEdit.Left := 176;
LampEdit.Top := 41;
LampEdit.Width := 89;
LampEdit.Height := 28;
LampEdit.Hint := 'Skill to Choose With Genie';
LampEdit.ParentShowHint := False;
LampEdit.ShowHint := True;
LampEdit.TabOrder := 1;
LampEdit.Text := 'Woodcutting';
ExitButton := TButton.Create(frmDesign);
ExitButton.Parent := frmDesign;
ExitButton.Left := 128;
ExitButton.Top := 328;
ExitButton.Width := 25;
ExitButton.Height := 12;
ExitButton.Caption := 'Exit';
ExitButton.Font.Color := clMaroon;
ExitButton.Font.Height := -11;
ExitButton.Font.Name := 'Times New Roman';
ExitButton.Font.Style := [];
ExitButton.OnClick := @ButtonClick;
ExitButton.ParentFont := False;
ExitButton.TabOrder := 15;
SRLIDEdit := TEdit.Create(frmDesign);
SRLIDEdit.Parent := frmDesign;
SRLIDEdit.Left := 176;
SRLIDEdit.Top := 200;
SRLIDEdit.Width := 89;
SRLIDEdit.Height := 28;
SRLIDEdit.Hint := 'SRL Stats User Number';
SRLIDEdit.ParentShowHint := False;
SRLIDEdit.ShowHint := True;
SRLIDEdit.TabOrder := 16;
SRLPassEdit := TEdit.Create(frmDesign);
SRLPassEdit.Parent := frmDesign;
SRLPassEdit.Left := 176;
SRLPassEdit.Top := 232;
SRLPassEdit.Width := 89;
SRLPassEdit.Height := 28;
SRLPassEdit.Hint := 'SRL Stats Password';
SRLPassEdit.ParentShowHint := False;
SRLPassEdit.ShowHint := True;
SRLPassEdit.TabOrder := 17;
end;

procedure SafeInitForm;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('InitForm', v);
end;

procedure ShowFormModal;
begin
frmDesign.ShowModal;
end;

procedure SafeShowFormModal;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure Setup;
Begin
SetupSRL;
ScriptID := '355';
ClearDebug;
ClearReport;
Disguise('iTunes');
Greeting;
Wait(1000);
SafeInitForm;
SafeShowFormModal;
ActivateClient;
Wait(500);
CurrentPlayer := Random(HowManyPlayers);
LoginPlayer;
LogInSetup;
FreeSlot := 1;
ActivePlayers := -1;
x := 540 + random(200);
y := 180 + random(250);
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Procedure MainLoop;
Begin
Repeat
ChopTree;
Case LowerCase(Players[CurrentPlayer].Strings[1]) of
'bank': Begin
WalkToBank;
Wait(50);
BankLogs;
end;
'drop': DropLogs;
else
Begin
Writeln('Please enter a valid log option(bank or drop). Dropping Logs.');
DropLogs;
end;
end;
if (Players[CurrentPlayer].Integers[1] >= Players[CurrentPlayer].Integers[0]) then
Begin
Writeln(Capitalize(Players[CurrentPlayer].Name) + ': Finished Training =D');
Logout;
WorldSelect;
RandomNextPlayer(false);
LogInSetup;
end;
If LoadsTillLog <= 0 then
Begin
LogOut;
WriteLn(Capitalize(Players[CurrentPlayer].Name) + ': Time to Switch Players!');
WorldSelect;
Wait(500 + random(250));
RandomNextPlayer(True);
LogInSetup;
end else
if Lowercase(Players[CurrentPlayer].Strings[1]) = 'bank' then
WalkToTrees;
until(ActivePlayers = 0);
WriteLn('Training Finished. Thanks For Using My Script! Have a Nice Day =)');
end;

{//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//}
{------------------------------------------------------------------------------}
{\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\}

Begin
Setup;
MainLoop;
end.
Much appreciated,
Fr0zN_S0uL.

Home

2007-12-22 04:44:41

Hey, it might be because when it tries log in… for like 100 times it will return the runtime error :)

~Home

Miitchyy

2007-12-22 08:34:42

begin
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);

That's lines 27-29 in Mouse.scar

So most likely what Home said

FrÕzÑ_§ÕµL

2007-12-22 13:48:01

I guess thats possible… but it was in the middle of a player and it had only logged in twice prior, it being the third =/ And it had only done 8 loads… I used to run for 11 hours without an error :(