tazzin44
2009-02-24 17:54:32
<!– BEGIN TEMPLATE: formanswers –>
tazzin44 - SRL Member Application Form
tazzin44
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
java, basic, learning shell scripting
Other Communitys
only srl
How Long have You Played Runescape
4 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
not sure what to say here, Im 18 years old scripting is my main hobby, next semester I will be attending college for a degree in computer programming for 2 years and after, another 4 years for information system security, while Im not studying at school I work in the military.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
tazzin44 - SRL Member Application Form
tazzin44
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
java, basic, learning shell scripting
Other Communitys
only srl
How Long have You Played Runescape
4 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
not sure what to say here, Im 18 years old scripting is my main hobby, next semester I will be attending college for a degree in computer programming for 2 years and after, another 4 years for information system security, while Im not studying at school I work in the military.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{.Script Info:
# ScriptName = Powellow
# Author = Tazzin44
# Description = anywhere cut and drop or rimm cut & sell
# Version = 2.2
# Date = feb 1/2009
# Comments = Goodluck! post any problems or errors on the forums
/Script Info}
program Powellow;
{.include srl/srl/misc/Smart.scar}
{.include srl/srl.scar}
{.include SRL/SRL/Skill/WoodCutting.scar}
{.include srl/srl/misc/path.scar}
var
willowlog,OakLog, Log, x, y, LoadsDropped,LoadsDoneSinceBreak, TreeFS, Color, TreesCut: Integer;
Colors: TIntegerArray; ////////////////////////////////////////////////////////////////////////////////////////////////////
// Tazzin44's Power Willow Chopper //
// _/_/_/ _/_/ _/ _/ _/_/_/_/ _/ _/ _/_/ _/ _/ //
// _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ //
// _/_/_/ _/ _/ _/ _/ _/ _/_/_/ _/ _/ _/ _/ _/ _/ _/ //
// _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ //
//_/ _/_/ _/ _/ _/_/_/_/ _/_/_/_/ _/_/_/_/ _/_/ _/ _/ //
// //
//current version 2.2 //
// //
// Instructions on the forums, this is also where all bugs should be posted, suggestions //
// be stated, or proggies to be posted //
// //
// player setup - lines 39-97 //
// //
// //
// A VERY SPECIAL THANKs TO: EvilChicken!, and Rasta Magician for alot of help, //
// something I am very grateful for // //
// as well as credit for scar assistant for the obj finding //
// also thanks goes out to all people in the srl community who take time to write tuts, or post //
// in the scripting help section //
////////////////////////////////////////////////////////////////////////////////////////////////////
const
SmartWorld = 160; //world
Members = false; // auto on members?
//SRL Stats
MySRLID = '3996';
MySRLPassword = '6v6eEk8kzb';
/////////////////////////////////////////////////
// player setup //
/////////////////////////////////////////////////
procedure PlayerSetUp;
begin
LampSkill := 'magic';//If It Finds Lamp What Skill?
HowManyPlayers := 1; //How many Players
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; //Starting Player
Players[0].Name := ''; //username
Players[0].Pass := ''; //password
Players[0].Nick := ''; //3-4 non capitalised letters from your username
Players[0].Active := true; //do you want to use this player?
Players[0].Integers[1]:= 999; //how many loads do you want to do
Players[0].Integers[2]:= 3; // break after how many loads?
Players[0].Booleans[1]:= false; //true sells logs, false drops
Players[0].Booleans[2]:= false; //do you want to run on a pvp world for drop potential?
Players[0].Strings[0] := 'Willow'; //type of tree do you want to cut? ('Willow', 'Oak', 'Tree')
{
Players[1].Name := ''; //username
Players[1].Pass := ''; //password
Players[1].Nick := ''; //3-4 non capitalised letters from your username
Players[1].Active := true; //do you want to use this player?
Players[1].Integers[1]:= 2; //how many loads do you want to do
Players[1].Integers[2]:= 3; // break after how many loads?
Players[1].Booleans[1]:= true; //true sells logs, false drops
Players[1].Booleans[2]:= false; //do you want to run on a pvp world for drop potential?
Players[1].Strings[0]:= 'Willow'; //type of tree do you want to cut? ('Willow', 'Oak', 'Tree')
Players[2].Name := 'Username'; //username
Players[2].Pass := 'Password'; //password
Players[2].Nick := 'sern'; //3-4 non capitalised letters from your username
Players[2].Active := true; //do you want to use this player?
Players[2].Integers[1]:= 2; //how many loads do you want to do
Players[2].Integers[2]:= 3; // break after how many loads?
Players[2].Booleans[1]:= true; //true sells logs, false drops
Players[2].Booleans[2]:= false; //do you want to run on a pvp world for drop potential?
Players[2].Strings[0] := 'Willow'; //type of tree do you want to cut? ('Willow', 'Oak', 'Tree')
Players[3].Name := 'Username'; //username
Players[3].Pass := 'Password'; //password
Players[3].Nick := 'sern'; //3-4 non capitalised letters from your username
Players[3].Active := true; //do you want to use this player?
Players[3].Integers[1]:= 2; //how many loads do you want to do
Players[3].Integers[2]:= 3; // break after how many loads?
Players[3].Booleans[1]:= true; //true sells logs, false drops
Players[3].Booleans[2]:= false; //do you want to run on a pvp world for drop potential?
Players[3].Strings[0] := 'Willow'; //type of tree do you want to cut? ('Willow', 'Oak', 'Tree')
}
end;
//////////////////////////////////////////
// end player setup //
//////////////////////////////////////////
Procedure PVPLogin; //my edited version of LoginPlayer; for use on pvp worlds
var
Mark, Attempts: Integer;
Actions: TVariantArray;
RetryLogin: Boolean;
label
ProcStart;
begin
ActivateClient;
Wait(100);
TypeByte(vk_Escape);
if (GetColor(212, 327) = 238301) then //At Click To Play screen
begin
Wait(1000 + Random(3000));
MouseBox(227, 337, 555, 364, 1);
MarkTime(Mark);
while (TimeFromMark(Mark) < 30000) and (not(LoggedIn)) do
Wait(1000 + Random(1000));
end;
if (not(RSReady)) then
begin
MarkTime(Mark);
while (not(RSReady)) do
begin
Wait(100);
if (TimeFromMark(Mark) > 180000) then
begin
WriteLn('It has been 3 minutes and Runescape is not yet ready... Terminating.');
TerminateScript;
end;
end;
WriteLn('Welcome to Runescape.');
end;
LoginScreenMusic(True);
if (not(GraphicsSet)) then
begin
SetAutoingDefaults;
GraphicsSet := True;
end;
ProcStart:
if (not(LoggedIn)) then
begin
if (not(Players[CurrentPlayer].Active)) then
begin
WriteLn('Player is not Active...');
NextPlayer(False);
Exit;
end;
Wait(900 + Random(60));
//Click 'Log In' on main menu
while (GetColor(343, 175) <> 7750) do //while (GetColor(343, 174) <> 7750) do
begin
MouseBox(360, 180, 400, 185, 1);
Wait(100 + Random(100));
end;
//Type Username
Mouse(315, 272, 10, 5, True);
while (CountColor(7750, 311, 269, 452, 284) > 13) do
begin
KeyDown(vk_Back);
Wait(10 + Random(10));
KeyUp(vk_Back);
Wait(50 + Random(50));
end;
for Mark := 0 to 3 do
begin
KeyDown(vk_Back);
Wait(10 + Random(10));
KeyUp(vk_Back);
Wait(50 + Random(50));
end;
Wait(100 + Random(200));
WriteLn(Capitalize(Players[CurrentPlayer].Name));
TypeSend(Players[CurrentPlayer].Name);
Wait(100 + Random(50));
//Type Password
Mouse(315, 334, 10, 5, True);
while (CountColor(7750, 311, 337, 452, 352) > 13) do
begin
KeyDown(vk_Back);
Wait(10 + Random(10));
KeyUp(vk_Back);
Wait(50 + Random(50));
end;
for Mark := 0 to 3 do
begin
KeyDown(vk_Back);
Wait(10 + Random(10));
KeyUp(vk_Back);
Wait(50 + Random(50));
end;
Wait(100 + Random(200));
TypeSend(Players[CurrentPlayer].Pass);
Wait(500 + Random(300));
if (not(FindTextTPA(12509695, 0, 288, 205, 475, 247, 'login', StatChars, Nothing))) then //If 'enter' from typesend didn't log us in
begin
MouseBox(355, 359, 403, 372, 1); //Click 'login' login screen
Wait(250 + Random(100));
end;
begin
Wait (500 + Random(250)); //logs pvp
Mouse(434,417,46,8,true);
Wait (3000 + Random(3500));
end;
MarkTime(Mark);
repeat
SetLength(Actions, 0);
if (TimeFromMark(Mark) > 60000) then
Actions := ['One minute has passed...', 0, 2, 'NextPlayer', 'Login Failed']
else
case (CountColor(12509695, 288, 205, 475, 247)) of //Number of text colour points
// Actions := ['WriteLn Text', TimeToWait, NumberOfRetries, 'FinalAction', 'PlayerStatus'];
760: Actions := ['Too many incorrect logins.', 5 * 60000, 2, 'NextPlayer', ''];
536: Actions := ['Login limit exceeded. Please wait 1 minute and try again.', 60000, 2, 'NextPlayer', ''];
711: Actions := ['Your account has been disabled', 0, 0, 'NextPlayer', 'Acc Disabled'];
598: Actions := ['Invalid Username / Password', 0, 2, 'NextPlayer', 'Wrong User/Pass'];
787: Actions := ['Not a Members Account', 0, 0, 'NextPlayer', 'Non-member'];
408: Actions := ['World is full.', 5000, 20, 'Terminate', ''];
623: Actions := ['Your account is already logged in', 5000, 0, 'RandomNextPlayer', ''];
555: Actions := ['The Server is being updated.', 60000, 4, 'Terminate', 'Server Updating'];
218: Actions := ['Error Connecting.', 20000, 9, 'Terminate', 'Error Connecting'];
335: Actions := ['Unable to connect Login Server offline.',(20000) + Random(6000), 4, 'Terminate', 'Login Server Offline'];
512: Actions := ['RuneScape has been updated. Script Terminated.', 0, 0, 'Terminate', 'RS Updated'];
489: Actions := ['Connection timed out.', 0, 4, 'Terminate', 'Connection Timed Out'];
737: Actions := ['You are standing in a members-only area.', 0, 0, 'NextPlayer', 'In Mems-Only Area'];
//10: Actions := ['Error loading your profile.', 5000, 10, 'NextPlayer', 'Profile Loading Failed']; // Error loading your profile. Will attempt to re-login 5 more times.)
//11: Actions := ['Login server rejected session.', 1000, 10, 'NextPlayer', 'Login Serv. Rejected']; // Login server rejected session.
end;
if (Length(Actions) > 0) then
begin
WriteLn(Actions[0]);
Wait(Actions[1] + Random(100));
if (Actions[2] <> 0) then
if (Attempts < Actions[2]) or (Actions[2] = -1) then
begin
RetryLogin := True;
Break;
end;
if (Actions[4] <> '') then
Players[CurrentPlayer].Loc := Actions[4];
case Actions[3] of
'NextPlayer': NextPlayer(False);
'RandomNextPlayer': RandomNextPlayer(True);
'Terminate': TerminateScript;
end;
Exit;
end;
Wait(100);
until(GetColor(212, 327) = 238301);
if (RetryLogin) then
begin
RetryLogin := False;
Inc(Attempts);
goto ProcStart;
end;
if (GetColor(212, 327) = 238301) then
begin
Wait(1000 + Random(2000));
MouseBox(227, 337, 555, 364, 1);
end;
MarkTime(Mark);
while (TimeFromMark(Mark) < 30000) and (not(LoggedIn)) do
Wait(1000 + Random(1000));
end;
if (LoggedIn) then
begin
PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
if Length(Players[CurrentPlayer].NickTPA) < 2 then
begin;
WriteLn('Creating the NickTPA.');
if Players[CurrentPlayer].Nick <> '' then
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Nick, UpChars)
else
begin;
WriteLn('Nickname isn''t set, taking the username instead..');
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Name, UpChars);
end;
end;
AddToSRLLog('Current player: ' + Capitalize(Players[CurrentPlayer].Name));
end;
end;
procedure AntiRandoms; //checks for Randoms
begin
if not LoggedIn then Exit;
begin
FindNormalRandoms;
if FindFight then RunAway('N',True,1,15000);
end;
end;
procedure LoadDTMs; // loads the DTM for willow logs
begin
Willowlog := DTMFromString('78DA63DCC7C4C0B09991011978384831F0006' +
'990E87F2060DC0454B31A550D441646026990392B09A8390A54B3' +
'81809A9340353B09A8D90354B38F809A8D40357B08A8590354B30' +
'DBF1A00E3B0104F');
OakLog := DTMFromString('78DA631460666098C8C8800C4AA3CD1958813' +
'448F43F1030B201D574A0AA81C8C248202D0154D34A408D2C50CD' +
'0422D44C23A04604A8662601352C4035BD04D43000D54CC7AF060' +
'043760A41');
Log := DTMFromString('78DA637CC6C4C0309191011964041A32B0026' +
'990E87F2060BC0B54D381AA06220B2381F42BA09A56026A3E02D5' +
'F41350F301A8660601354F816A661350731BA866260135B7806A7' +
'AF0AB0100516810C8');
end;
Function TreeType: TIntegerArray;
begin
case Players[CurrentPlayer].Strings[0] of
'Willow': Result := [5338216, 7968394, 2575165, 4945001, 7970189, 4020304, 8166820, 2111021, 2044971];
'Oak' : Result := [1983549, 2777686, 1131576, 1197635, 2182725, 1721916, 3632739, 3109220, 1462595];
'Tree' : Result := [1918012, 1856583, 3434076, 1126956, 3371622, 4487021, 2054735, 2053449, 3898222];
end;
end;
function FindTree: Boolean; // scar assistant obj finder edited by me
var
Colors: TIntegerArray;
X, Y, I, A, M, curCTS: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
Result := False;
curCTS := GetColorToleranceSpeed;
Colors := TreeType;
if not LoggedIn then exit;
for I := 0 to 8 do
begin
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Colors[I], MSX1, MSY1, MSX2, MSY2, 5);
if Length(TPA) = 0 then Continue;
ATPA := TPAtoATPAEx(TPA, 75, 75);
M := High(ATPA);
for A := 0 to M do
if MiddleTPAEx(ATPA[A], X, Y) then
begin
MMouse(X, Y, 6, 6);
Wait(100 + Random(50));
if Pos('down', RS_GetUpText) > 0 then
begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
WriteLn('found tree')
Result := True;
ColorToleranceSpeed(curCTS);
FindEnt(x, y, True);
WriteLn('checking for ent');
FindBirdsNest;
WriteLn('checking for nest');
TreeFS := 0;
AntiRandoms;
WriteLn('anti-Random');
RandomMovement;
wait(7000 + Random(2500));
ColorToleranceSpeed(curCTS);
Exit;
end else // if it can't find any of the colours form the array
begin
WriteLn('no trees here, you on crack'); // then it adds 1 to the failsafe count and checks for
TreeFS :=(TreeFS + 1); // the trees again
WriteLn('checking for trees fail ' + inttostr(TreeFS) + '/10');
wait(1000 + Random(500));
if (TreeFS = 10) then
begin
Players[CurrentPlayer].Active := False; // Set your player to false!!
LogOut;
Exit;
end;
ColorToleranceSpeed(curCTS);
Exit;
end;
end;
end;
end;
procedure AntiBan; //thanks to i pro leechin' tut
begin
if not LoggedIn then Exit;
case 6 + Random(10) of //Will alow AntiBan to sometimes never occur
0 : HoverSkill('woodcutting', false);
1: PickUpMouse;
2: RandomMovement;
3: BoredHuman;
4,5,6: begin
MakeCompass('N');
wait(100 + Random(50));
MakeCompass('S');
wait(100 + Random(50));
MakeCompass('N');
end;
end;
wait(30 + Random(30));
end;
procedure Report;
var
XPPerLog, TotXP: extended;
begin
case Players[currentPlayer].Strings[0] of
'Willow' : XPPerLog := (67.5);
'Oak' : XPPerLog := (20);
'Tree' : XPPerLog := (38);
end;
begin
TotXP := (XPPerLog) * (TreesCut);
ReportVars[0] := reportVars[0] + Round(TotXP);
ReportVars[1] := ReportVars[1] + 1;
TimeRunning;
WriteLn('_____________________________________________________________________');
WriteLn('\| Progress report ');
WriteLn('\| ');
WriteLn('\| TreeType = ' + Players[currentPlayer].strings[0] + ' ');
WriteLn('\| Loads Completted = ' + inttostr(LoadsDropped) + ' ');
WriteLn('\| Total XP Gained = ' + inttostr(ReportVars[0]) + ' ');
WriteLn('\| Total Time = ' + Timerunning + ' ');
WriteLn('\| |~)/~\| |[~| | /~\| | ');
WriteLn('\| |~ \_/ \/\/ [_|_|_\_/ \/\/ by Tazzin44 ');
WriteLn('\|___________________________________________________________________');
SRLRandomsReport;
end;
end;
procedure DropEmCowboy; // my custum dropper checks for
var
TheDTM : Integer;
begin //the DTM of the willow log
if not LoggedIn then Exit;
case Players[currentPlayer].Strings[0] of
'Willow' : TheDTM := WillowLog;
'Oak' : TheDTM := OakLog;
'Tree' : TheDTM := Log;
end;
Begin
if FindDTM(TheDTM, x, y, MIX1, MIY1, MIX2, MIY2) then //if any are found it drops them
begin //if none are found it continues cutting
repeat
Mouse(x, y, 5, 5, false); //right clicks dtm
ChooseOption('rop'); //drops the log
Wait(500 + Random(250));
until not finddtm(WillowLog, x, y, MIX1, MIY1, MIX2, MIY2) ;
end else
begin
WriteLn('no dtms');
Players[CurrentPlayer].Active := False; // Set your player to false!!
LogOut;
Exit;
end;
end;
end;
{*******************************************************************************
All Purpose AutoColor
function APAC(Color : Integer): Integer;
By: Tazzin44
Description: autocolors whatever you need
Variable for the color is Color: integer;
Credits: To Cazax for helping me understand AutoColoring as well as
editing it to make it work :D
*******************************************************************************}
function APAC: Integer;
var
I, C2, TestColor, bestTol, CR, CG, CB : Integer;
R, G, B : TIntegerArray;
TP: TPointArray;
begin
FFlag(0); //waits to be safe
TestColor := Color;
ColorToRGB(Color, CR, CG, CB); // Transforms the color to RGB values
FindColorsSpiralTolerance(MMCX, MMCY, TP, TestColor, MMX1, MMY1, MMX2, MMY2, 60); //searches for the color from the center out
C2 := High(TP);
SetLength(R, Length(TP)); //Sets the length of RGB arrays
SetLength(G, Length(TP));
SetLength(B, Length(TP));
for I:=0 to C2 do
if rs_OnMinimap(TP[i].x,TP[i].y) then // checks to see if the color is on the minimap
begin
ColorToRGB(GetColor(TP[i].X, TP[i].Y), R[i], G[i], B[i]); //Grabs the RGB value of every color
bestTol := 50;// tolerance refer
for I := 0 To C2 Do
begin
if Round(Sqrt(Sqr(CR - R[i]) + Sqr(CG - G[i]) + Sqr(CB - B[i]))) < bestTol Then //Basically gets the tolerance between the TestColor and the one in the color array(when we grabbed the rgb values)
begin
bestTol := Round(Sqrt(Sqr(CR - R[i]) + Sqr(CG - G[i]) + Sqr(CB - B[i]))) //Sets the best tolerance
Result := RGBToColor(R[i], G[i], B[i]); //the most similar result
Writeln('The Color you are looking for = '+IntToStr(Result));
end;
end;
end;
if Result = 0 then
begin
Writeln('Could not find color!');
Exit;
end;
end;
Function WalkToStorePt1: Boolean;
var
x, y, FalseWalk: Integer;
begin
if (not loggedin) then Exit;
begin
FalseWalk := FalseWalk + 1;
Color := 6776944;
APAC;
Result := true;
if not RadialWalk(APAC, 350, 310, 72, 1,1) then
begin
Color := 2313827;
APAC;
if not RadialWalk(APAC, 350, 300, 72, 1,1) then
if (FindSymbol(x, y, 'water')) then MouseFlag(x, y, 5, 5, 0) else
if RadialWalk(FindLadderColor, 350, 10, 50, 1, 1) then
if (FindSymbol(x, y, 'water')) then MouseFlag(x, y, 5, 5, 0) else
if (FindSymbol(x, y, 'archery shop')) then MouseFlag(x, y, 5, 5, 0) else Result := false;
end;
if (Result = false) then
begin
WriteLn('player could not make it through the walk, player, ' + Players[CurrentPlayer].Name + ' is now false.');
Players[CurrentPlayer].Active := False; // Set your player to false!!
LogOut;
Exit;
end else
begin
Writeln('walking part one complete');
end;
end;
end;
Function WalkToStorePt2: Boolean;
var
x, y: Integer;
begin
if (not loggedin) then Exit;
begin
Result := true;
if (FindSymbol(x, y, 'shop')) then MouseFlag(x, y, 5, 5, 0) else
if not RadialWalk(FindLadderColor, 315, 350, 60, 1, 1) then
begin
Color := 62965;
APAC;
if not RadialWalk(APAC, 350, 310, 72, 1,1) then
begin
Color := 6645356;
APAC;
if not RadialWalk(APAC, 350, 310, 72, 1,1) then Result := false;
end;
end;
if (Result = false) then
begin
WriteLn('player could not make it through the walk, player, ' + Players[CurrentPlayer].Name + ' is now false.');
Players[CurrentPlayer].Active := False; // Set your player to false!!
LogOut;
Exit;
end else
begin
Writeln('walking part two complete');
end;
end;
end;
function WalkBackPt1: boolean;
var
x, y: Integer;
begin
if (not loggedin) then Exit;
begin
Result := true;
if (FindSymbol(x, y, 'water')) then MouseFlag(x, y, 5, 5, 0) else
begin
Color := 6776944;
APAC;
if not RadialWalk(APAC, 90, 120, 74, 1,1) then
if (FindSymbol(x, y, 'archery shop')) then MouseFlag(x, y, 5, 5, 0) else Result := false;
if (Result = false) then
begin
WriteLn('player could not make it through the walk, player, ' + Players[CurrentPlayer].Name + ' is now false.');
Players[CurrentPlayer].Active := False; // Set your player to false!!
LogOut;
Exit;
end else
begin
Writeln('Walking back half complete');
end;
end;
end;
end;
function WalkBackPt2: boolean;
var
x, y: Integer;
begin
if (not loggedin) then Exit;
begin
Result := true;
if not RadialWalk(FindLadderColor, 140, 90, 72, 1, 1) then
if (FindSymbol(x, y, 'quest')) then MouseFlag(x, y, 5, 5, 0);
if not RadialWalk(FindLadderColor, 210, 110, 72, 1, 1) then Result := false;
if (Result = false) then
begin
WriteLn('player could not make it through the walk, player, ' + Players[CurrentPlayer].Name + ' is now false.');
Players[CurrentPlayer].Active := False; // Set your player to false!!
LogOut;
Exit;
end else
begin
Writeln('Walking complete');
end;
end;
end;
//an edited SA obj finder
function ClickTheKeeper: Boolean;
var
X, Y, A, I, II, L, M, curCTS, ClickColor: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
Result := False;
if not LoggedIn then exit;
begin
curCTS := GetColorToleranceSpeed;
if Length(Colors) = 0 then
begin
SetArrayLength(Colors, 3);
Colors := [5667736, 3037314, 6786230];
end;
L := High(Colors);
for II := 0 to 1 do
for I := 0 to L do
begin
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Colors[I], MSX1, MSY1, MSX2, MSY2, II * 6);
if Length(TPA) > 0 then
begin
ATPA := TPAtoATPAEx(TPA, 10, 25);
M := High(ATPA);
for A := 0 to M do
if MiddleTPAEx(ATPA[A], X, Y) then
begin
if II = 1 then
ClickColor := GetColor(X, Y);
MMouse(X, Y, 6, 6);
Wait(100 + Random(50));
if Pos('hop', RS_GetUpText) > 0 then
begin
LoadsDropped := (LoadsDropped + 1);
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, false);
ChooseOption('rade');
fflag(0);
Result := True;
ColorToleranceSpeed(curCTS);
if (II = 0) or InIntArrayEx(Colors, I, ClickColor) then
begin
if I > 0 then
Swap(Colors[I], Colors[I - 1]);
Exit;
end;
SetArrayLength(Colors, L + 2);
Colors[L + 1] := ClickColor;
Exit;
end;
end;
end;
end;
ColorToleranceSpeed(curCTS);
end;
end;
procedure SellEm;
begin
if not LoggedIn then Exit;
if FindDTM(WillowLog, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
wait(1000 + Random(1500));
Mouse(x, y, 5, 5, false); //right clicks dtm
ChooseOption('50'); //sells the log
Wait(500 + random(500));
if FindDTM(WillowLog, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
FindSymbol(x, y, 'shop')
MouseFlag(x, y, 5, 5, 0);
Wait(500 + random(500));
ClickTheKeeper;
FindDTM(WillowLog, x, y, MIX1, MIY1, MIX2, MIY2)
wait(1000 + Random(1500));
Mouse(x, y, 5, 5, false);
ChooseOption('50'); //sells the log
Wait(500 + random(500));
Wait(1000 + random(1000));
end;
Wait(500 + Random(250));
Mouse(478, 35, 11, 9, false);
wait(200 + Random(200));
ChooseOption('lose');
exit;
end else
begin
WriteLn('no dtms');
Players[CurrentPlayer].Active := False; // Set your player to false!!
LogOut;
Exit;
end;
end;
procedure DropItOrSellIt;
var
TheDTM , FalseWalk: Integer;
begin
if Players[CurrentPlayer].Booleans[1] then
begin
FalseWalk := 0;
if not LoggedIn then Exit;
begin
FalseWalk := 0;
while InvFull do
begin
WalkToStorePt1;
WalkToStorePt2
TreesCut := CountItems(WillowLog, 'DTM', []);
ClickTheKeeper;
Wait(1000 + Random(1600));
SellEm;
WalkBackPt1;
WalkBackPt2;
freedtm(WillowLog);
Report;
FalseWalk := (FalseWalk + 1);
If (FalseWalk > 5) then
begin
Players[CurrentPlayer].Active := False; // Set your player to false!!
LogOut; // Log him out!!
Exit;
end;
end;
end;
end else
begin
while InvFull do
begin
WriteLn('full lets loose some weight');
case Players[currentPlayer].Strings[0] of
'Willow' : TheDTM := WillowLog;
'Oak' : TheDTM := OakLog;
'Tree' : TheDTM := Log;
end;
begin
TreesCut := CountItems(TheDTM, 'DTM', []) ;
DropEmCowboy;
LoadsDropped := (LoadsDropped + 1);
LoadsDoneSinceBreak := (LoadsDoneSinceBreak + 1);
ClearDebug;
Report;
freedtm(WillowLog);
freedtm(oakLog);
freedtm(Log);
end;
end;
end;
end;
Procedure Login;
begin
if (Players[currentPlayer].booleans[2] = false) then LoginPlayer else PVPlogin;
end;
procedure Siggy;
begin
ClearDebug;
WriteLn(' _____ ');
WriteLn('|_ _| ');
WriteLn(' | | ');
WriteLn(' | | ');
WriteLn(' | | ');
WriteLn(' \_/ ');
wait(232);
ClearDebug;
WriteLn(' _____ ');
WriteLn('|_ _| ');
WriteLn(' | | __ _ ');
WriteLn(' | | / _` | ');
WriteLn(' | || (_| | ');
WriteLn(' \_/ \__,_| ');
wait(232);
ClearDebug;
WriteLn(' _____ ');
WriteLn('|_ _| ');
WriteLn(' | | __ _ ____ ');
WriteLn(' | | / _` ||_ / ');
WriteLn(' | || (_| | / / ');
WriteLn(' \_/ \__,_|/___| ');
wait(232);
ClearDebug;
WriteLn(' _____ ');
WriteLn('|_ _| ');
WriteLn(' | | __ _ ____ ____ ');
WriteLn(' | | / _` ||_ /|_ / ');
WriteLn(' | || (_| | / / / / ');
WriteLn(' \_/ \__,_|/___|/___| ');
wait(232);
ClearDebug;
WriteLn(' _____ _ ');
WriteLn('|_ _| (_) ');
WriteLn(' | | __ _ ____ ____ _ ');
WriteLn(' | | / _` ||_ /|_ /| | ');
WriteLn(' | || (_| | / / / / | | ');
WriteLn(' \_/ \__,_|/___|/___||_| ');
wait(232);
ClearDebug;
WriteLn(' _____ _ ');
WriteLn('|_ _| (_) ');
WriteLn(' | | __ _ ____ ____ _ _ __ ');
WriteLn(' | | / _` ||_ /|_ /| || |_ \ ');
WriteLn(' | || (_| | / / / / | || | | | ');
WriteLn(' \_/ \__,_|/___|/___||_||_| |_| ');
wait(232);
ClearDebug;
WriteLn(' _____ _ ___ ___ ');
WriteLn('|_ _| (_) / | / | ');
WriteLn(' | | __ _ ____ ____ _ _ __ / /| | / /| | ');
WriteLn(' | | / _` ||_ /|_ /| || |_ \ / /_| |/ /_| | ');
WriteLn(' | || (_| | / / / / | || | | | \___ |\___ | ');
WriteLn(' \_/ \__,_|/___|/___||_||_| |_| |_/ |_/ ');
WriteLn(' ');
wait(500);
ClearDebug
WriteLn(' ');
WriteLn(' ');
WriteLn(' _ __ ');
WriteLn(' | |__| ');
WriteLn(' | | ');
WriteLn(' |_| ');
wait(232);
ClearDebug;
WriteLn(' ');
WriteLn(' ');
WriteLn(' _ __ ___ ');
WriteLn(' | |__| / __| ');
WriteLn(' | | \__ \ ');
WriteLn(' |_| |___/ ');
wait(232);
ClearDebug;
WriteLn('______ ');
WriteLn('| ___ \ ');
WriteLn('| |_/ / _ __ ___ ');
WriteLn('| __/ | |__| / __| ');
WriteLn('| | | | \__ \ ');
WriteLn('\_| |_| |___/ ');
wait(232);
ClearDebug;
WriteLn('______ _ ');
WriteLn('| ___ \ | | ');
WriteLn('| |_/ / _ __ ___ | |_ ');
WriteLn('| __/ | |__| / __| | __| ');
WriteLn('| | | | \__ \ | |_ ');
WriteLn('\_| |_| |___/ \__| ');
wait(232);
ClearDebug;
WriteLn('______ _ ');
WriteLn('| ___ \ | | ');
WriteLn('| |_/ / _ __ ___ ___ | |_ ');
WriteLn('| __/ | |__| / __| / _ \ | __| ');
WriteLn('| | | | \__ \ | __/ | |_ ');
WriteLn('\_| |_| |___/ \___| \__| ');
wait(232);
ClearDebug;
WriteLn('______ _ ');
WriteLn('| ___ \ | | ');
WriteLn('| |_/ / _ __ ___ ___ | |_ ___ ');
WriteLn('| __/ | |__| / __| / _ \ | __| / __| ');
WriteLn('| | | | \__ \ | __/ | |_ \__ \ ');
WriteLn('\_| |_| |___/ \___| \__| |___/ ');
wait(232);
ClearDebug;
WriteLn('______ _ ');
WriteLn('| ___ \ | | ');
WriteLn('| |_/ / _ __ ___ ___ ___ | |_ ___ ');
WriteLn('| __/ | |__| / _ \ / __| / _ \ | __| / __| ');
WriteLn('| | | | | __/ \__ \ | __/ | |_ \__ \ ');
WriteLn('\_| |_| \___| |___/ \___| \__| |___/ ');
wait(232);
ClearDebug;
WriteLn('______ _ ');
WriteLn('| ___ \ | | ');
WriteLn('| |_/ / _ __ ___ ___ ___ _ __ | |_ ___ ');
WriteLn('| __/ | |__| / _ \ / __| / _ \ | |_ \ | __| / __| ');
WriteLn('| | | | | __/ \__ \ | __/ | | | | | |_ \__ \ ');
WriteLn('\_| |_| \___| |___/ \___| |_| |_| \__| |___/ ');
Wait(500);
ClearDebug;
WriteLn(' ____ ___ ___ ');
WriteLn('/\ _`\ /\_ \ /\_ \ ');
WriteLn('\ \ \L\ \___ __ __ __ __\//\ \ \//\ \ ___ __ __ __ ');
WriteLn(' \ \ ,__/ __`\/\ \/\ \/\ \ / __`\\ \ \ \ \ \ / __`\/\ \/\ \/\ \ ');
WriteLn(' \ \ \/\ \L\ \ \ \_/ \_/ \/\ __/ \_\ \_ \_\ \_/\ \L\ \ \ \_/ \_/ \');
WriteLn(' \ \_\ \____/\ \___x___/ \ \____\/\____\/\____\ \____/\ \___x___/ ');
WriteLn(' \/_/\/___/ \/__//__/ \/____/\/____/\/____/\/___/ \/__//__/ ');
end;
procedure Mainloop;
var
BreakTime: Integer;
begin
smartSetupEx(SmartWorld, Members, true, false);
wait(10000);
SetTargetDC(SmartGetDC);
ClearDebug; //clears debug box
Siggy;
setupSRL; //sets up srl
ScriptID := '1178';
playerSetUp; //sets up declared player array
Login;
MouseSpeed := 17 + Random(2) - Random(2);
FindAxe; //checks for axe
wait(3000 + Random(1000)); //waits for 3 seconds ( + /- 1 sec)
setRun(True); //runs to increase time to tree
SetAngle(True);
LoadsDropped := 0;
LoadsDoneSinceBreak := 0;
BreakTime := (Players[currentPlayer].Integers[2] + Random(2));
begin
repeat
repeat
if (TreeFS >= 10) then Exit;
begin
SetAngle(True);
FindTree; //this is the start of the chopping
AntiBan;
AntiRandoms;
LoadDTMs;
DropItOrSellIt;
AntiBan;
end;
if(LoadsDoneSinceBreak >= BreakTime) then
begin
LogOut;
wait(60000 + Random(30000));
LoadsDoneSinceBreak := 0;
NextPlayer(true);
Login;
end;
until (loadsDropped > Players[CurrentPlayer].Integers[1]) or (not loggedIn)
NextPlayer(Players[CurrentPlayer].Active);
until (AllPlayersInactive);
end;
end;
////////////////////////////////////////////////////////////////////////////////
// MAINLOOP //
////////////////////////////////////////////////////////////////////////////////
begin
Mainloop;
Report;
TerminateScript;
end.
——————————————————
<!– END TEMPLATE: formanswers –>