SRL Archive - Archive

tazzin44 - SRL Member Application Form


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


{.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 –>

JAD

2009-02-24 18:40:06


If the script is not all your work then please give credits where credits are due. If you do not provide a example of your scripting knowledge that is atleast 90% original work by you then your application will be automaticly declined.


Is that rule outdated, or does it still apply to all applications? Either way, you should have read that before applying…

There is some pretty good code in there that is yours though. I'm going to wait to see what some other people have to say before I vote.

NCDS

2009-02-24 18:45:05

I read through it just real quick but im not exactly sure how I feel about it.

I will come to a conclusion soon enough.

tazzin44

2009-02-24 20:46:57

Is that rule outdated, or does it still apply to all applications? Either way, you should have read that before applying…

There is some pretty good code in there that is yours though. I'm going to wait to see what some other people have to say before I vote.


what do you mean? did I forget to Credit somewhere?

the only things that arent mine 100% are the object finders, Which I could have edited out with my APAC but i figured that I would keep it to maintain the flawless tree finding already present, the antiban, and obviously the loginPlayer that I edited slightly, which I dont count as part of the script as it could be replaced by editing it in the loginPlayer.scar but this way others can have it instead of editing theirs. and all the others that arent 100% mine were edited by me to make them more useful in the script, but still credited.

the auto color was built by me, cazax taught me how to make it work for allpurpose requirements.

Sir R. M8gic1an

2009-02-25 02:54:54

Definite yes. Lots of improvement since the last app, great guy.

have a look at: TreeType and FindTree and how well they work together. Have a look at DropThemCowboy and how well the case is used.

Have a look at WalkToStorePT2. Amazing.

Yes.

~RM

NiCbaZ

2009-02-25 02:59:01

no sorry,imporvement but not upto my yes… still use lots of scar assistance, even tho you edit it, standards are quite off in some places, the autocolor is nice, but looks like cazex did a bit of it :) heaps better.. make some home made custom TPAs and fix upstandards , apply some locic etc… and i would vote yes.

Naum

2009-02-25 03:10:59

Not voting, sorry. Not much of it is yours. I look for custom made functions. You could have stored your sig letters to a variable, to make it shorter ;).
But a big improvement. :)

ZaSz

2009-02-25 04:05:59

Currently better then my script i applied with, (iron man but i'm working on it to be a hybrid)

Yes.

tazzin44

2009-02-25 10:17:01

still use lots of scar assistance, even tho you edit it, standards are quite off in some places, the autocolor is nice, but looks like cazex did a bit of it heaps better


it has 2 SA functions out of 21, I didn't realise that was still to much, although it would be simple to use my autocolor to remove them, which casaz helped with the best tolerance, so that it would work for every color

JAD

2009-02-25 13:34:50

Yes from me.

Good luck tazzin!

tazzin44

2009-02-25 13:35:32

ty :D

Naike

2009-02-25 13:47:28

Your like in between Yes & No for me..

Thats why i won't vote for now, but if it was up to me, i have you apply again in 2 weeks and made sure you knew Standards.

But if you promiss me and show me improvement on the standards then i would vote yes since it proves your trying and are willing to learn.

tazzin44

2009-02-25 14:41:05

I have been trying to learn standards, and am willing to take more lessons, I would be grateful if would Pm me and show me what Im doing wrong, I have gone over this script many times and compared it to the official standards tut, and I guess theres something Im not getting… it would be great if you showed me :D

Torrent of Flame

2009-02-25 14:47:40

Excuse my french but.. Fuck standards. If he can script and it works then it doesnt matter if he forgets a few indents here or there. I'm not being funny but SRL isnt founded on good standards is it?

Yes from me.


Although I still dont understand why half the script is your signature/PvP login :D

tazzin44

2009-02-25 14:49:34

ty torrent:D

[offtopic] are you fully billingual in french cuz your damn fluent;0[/offtopic]

Torrent of Flame

2009-02-25 14:50:30

[offtopic]Oui Oui, je suis parle fantastique francais..[/offtopic]

NCDS

2009-02-25 14:53:09

I am just not going to vote on this. I cant seem to come to a conclusion.

I want to say yes because it isnt a bad app. at all.
At the same tim etho I want to say no because I know there are things you can do better and I want to see you push yourself.

Be sure to take alot of pride in your scripts and dont get to eager with things.

If you dont get in this time I am sure you will next time.

tazzin44

2009-02-25 14:59:42

thank you for the words of wisdom:)

Dervish

2009-02-26 02:58:46

I'm french !!! :p

Yes.

85/100

tazzin44

2009-02-26 08:39:09

thanks :D

Nava2

2009-02-26 09:16:08

Uhm, Yes.

You need to work on your standards.

Also, you use some unnecessary nests, as well as some string cases, which SHOULD be changed as they are slow. (Thats something I JUST learned so no harm no foul haha)

Learn some custom TPAs, as well as you should pass parameters more rather than using globals. Its just safer. :)

Great app, I'd like to see you get in.

E: Try and shorten your signature, if not, add some waits after each block. Makes it look better ;)

tazzin44

2009-02-26 16:57:42

great advice thank you :D

jakeyboy29

2009-03-01 16:27:10

welcome.

Richard

2009-03-01 18:12:50

I'm not going to vote, as I'm stuck in between, it has a lot of good functions, but about 30-40% of the script is SRLs login function, with just a small edit by you, but there are some good features, I just feel there good be more to show what you can do.

But from what it looks like your probably getting in, so me not won't make any difference.

tazzin44

2009-03-01 18:24:00

I realise the login does take up alot of the space, but I dont count it as 30-40% I look at it as 1/21 procedures. thankyou for reviewing. What would you suggest to make it better?

Tniffoc

2009-03-01 21:27:49

Yes.

[X] - (D)DTMs
[X] - TPAs
[X] - Walking
[X] - Multiplayer

Good Job!

Standards
Good job on your standards. Code is easy to read. I don't like these multiple main loop things, but that's just me. There are a few glitches in some minor things, but nothing major that I saw. I'm not a terrible critic on standards, I really don't care at all as long as I can read it.

Globals
You've got a few too many.

TPAs
I saw a few. TPAs are the most useful tool in scripting imo next to DTMs.

Hope to see you around.

Overall Grade:

Blumblebee

2009-03-02 00:41:22

I dont know what it is, but it just seems to be missing something. The coding seems rather inefficient, standards are off in some places, it looks like you put alot of effort into it but it still all seems rather simple. A large portion of the script seems to be you rewriting the srl login procedure, the object/willow finding is created with scar assistant, which somewhat makes me doubt you wrote the autocoloring function if you had to use scar assistant to make a willow finding procedure. With that said its still a good script, but I'm going to vote no, sorry.

boberman

2009-03-02 01:26:32

It's a yes from me. The script is a fair amount better then the last one. Though, some of the suggestions weren't implemented (The script is basically the last one with some more functions tacked on). However, I feel like it sufficiently demonstrates the scar scripting abilities.

As was said before, things are a bit funky in some places. random begins and ends that really shouldn't be there exist. As well there is a fair amount of code that is pretty much exactly the same (like your walk to bankpt1 ect). It would be better to figure out a way to make your walking function into one function rather then 4 separate functions. That way, if you want to add fail safes, or correct a bug present you have to do minimal work (the goal of a programmer)

Keep up the good work.

Hobbit

2009-03-04 02:41:49

Welcome :)