SRL Archive - Archive

bobzilla69 - SRL Member Application Form


Bobzilla69

2008-07-23 15:37:30

<!– BEGIN TEMPLATE: formanswers –>
bobzilla69 - SRL Member Application Form
bobzilla69

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
Java, HTML, VBA

Other Communitys
no

How Long have You Played Runescape
3-4 years

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

well i have been learning pascal for a years or so now, it was a bit hard to get my head round as i hated scripting, but once i started uni and learned some java and VBA i started to get back into pascal.

I am slowly but suring learning more about pascal and from other people which is the best way i learn, i am a practical learner, i find it hard to simply read how to do something, i prefer to be shown and do by testing and failing.

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted

i am still testing the script and working out some bugs, but overall i feel that the scipt is working.

i have mainly been focusing on the woodcutting since the last runescape update, so other area might not work perfectly.

i am also procuding auto color procedure for the road below lumbridge where mining and fishing occurs so that area is under development.

Please focus on what i have done so far and my scripting, the script works for well at time, but other time, it can completely fail.


//Welcome To Bobzilla69's Random Skill Trainer.
//I created this script to help level up new account
//The script will randomly choose one of the 4 skill
//and train the account on that for 30 minutes
//This is due to the home teleport requiring 30 min to recharge
//once the 30 min is up it will teleport home
//and the script will start again training another random skill
//There is a chance that it will train the same skill
//To run the script simply insure that your internet explorer is maximised.
//The script will automaticly open and choose a free world

//The walking and pickup of required tools for skill can be buggy
//I recomend wearing 3 bits of armour including a weapon
//I also recomend using FireFox as i have had less errors using it

//This script is for new accounts that have been created

//I would like to thank NaumanAkhlaQ for his tutorial on TPA's and
//I also want to thank BobboHobbo for his tutorial on DDTM walking
//I also want to thank King Vash for helping me with auto coloring.
//Thanks to Wizzup? for helping me with my scipting

//NOT SMART COMPATABIL YET

Program MultiSkiller;
//{.include SRL\SRL\Misc\smart.scar}
{.include SRL\SRL.scar}
{.include SRL\SRL\skill\Fishing.scar}
{.include SRL\SRL\skill\Mining.scar}
{.include SRL\SRL\skill\Magic.scar}
{.include SRL\SRL\skill\Fighting.scar}
{.include SRL\SRL\skill\Woodcutting.scar}


const YourSRLID = ''; //srl stats id
const YourSRLPassword = ''; //srl stats password
const SymbolColor = 11971761; //Gray of the symbol color
const mode = 4; //attack style 1:attack, 2:strength, 3:defence, 4:control

var
//Main program Variables
x, y, i, Timer ,FailSafe, f, m, w, a, s1, s2, s3, s4,
GateColor, WalkNumber:integer;
failedTrigger, modeStyle:string;

//TPA variables
SearchColor:integer;
SearchText:String;

Procedure DeclarePlayers;
begin
HowManyPlayers := 3;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //UserName
Players[0].Pass := ''; //Password
Players[0].Nick := ''; //3 or 4 letter from your username
Players[0].Active :=True;

Players[1].Name := ''; //UserName
Players[1].Pass := ''; //Password
Players[1].Nick := ''; //3 or 4 letter from your username
Players[1].Active :=True;

Players[2].Name := ''; //UserName
Players[2].Pass := ''; //Password
Players[2].Nick := ''; //3 or 4 letter from your username
Players[2].Active :=True;

end;


//auto colors the sand road below lumbridge (NOT WORKING)
function SandAutoColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MMCX, MMCY, arP, 6655381, MMX1, MMY1, MMX2, MMY2, 80);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);

if (H >= 13.52) and (H <= 14.99) and (S >= 19.35) and (S <= 19.70) and (L >= 48.22) and (L <= 49.63) then
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 23.35) and (X <= 24.85) and (Y >= 25.26) and (Y <= 27.28) and (Z >= 15.43) and (Z <= 16.47) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//find objects

Function FindObjects : Boolean;
Var
Bx, By : Integer;
TPA : Array Of TPoint;
ATPA : T2DPointArray;
I : Integer;
Begin
FindColorsSpiralTolerance(Bx, By, TPA, SearchColor, MSX1, MSY1, MSX2, MSY2, 15);
Begin
ATPA := SplitTPA(TPA, 10);
For I := 0 To High(ATPA) Do
If MiddleTPAEx(ATPA[I], Bx, By) Then
begin
MMouse(Bx, By, 1, 1);
Wait(100 + Random(100));
If IsUpText(SearchText) Then
Begin
Mouse(Bx, By, 1, 1, true);
Flag;
Result := True;
Exit;
end else
begin
Result := False;
//Exit;
end;
end;
end;
end;

// fail safe walking, implementing for getting to certain locations
function FailSafeWalking(WalkNumber:Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
case WalkNumber of
1: begin
dtmMainPoint.x := 925;
dtmMainPoint.y := 277;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWaterColor;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 925;
dtmSubPoints[0].y := 277;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWaterColor;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 860;
dtmSubPoints[1].y := 293;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindLumbyRoadColor;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 859;
dtmSubPoints[2].y := 279;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindLumbyRoadColor;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 849;
dtmSubPoints[3].y := 264;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindLumbyRoadColor;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 833;
dtmSubPoints[4].y := 263;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := FindLumbyRoadColor;
dtmSubPoints[4].Tolerance := 0;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
end;
end;


function DDTMWalking: Boolean;
var
WalkDTM: integer; // Calls the WalkDTM making walking simpler.
begin
WalkDTM := FailSafeWalking(WalkNumber); //Load which DDTM you want to find.
if FindDTM(WalkDTM, x, y, MMX1,MMY1,MMX2,MMY2) then // Find the DDTM using Find DTM
begin
Mouse(x - 30, y, 8, 8, True);
WriteLn('Walking to Woodcutting tutor complete');
FFlag(0);
Result := True; // If succesfully finds it will click it and wait to flag is gone.
end;
end;

Procedure AntiBanFishing; //diffrent antiban for each skill
begin //that can be trained, all are same
case Random(14) of //except for the hover skill
2: HoverSkill('fishing', False);
5: PickUpMouse;
9: Wait(2500 + random(1000));
11: BoredHuman;
13: FindNormalRandoms;
end;
end;

Procedure AntiBanAttacking;
begin
case Random(14) of
2: BoredHuman;
5: PickUpMouse;
9: HoverSkill(modeStyle, False);
11: Wait(2000 + random(1000));
13: FindNormalRandoms;
end;
end;

Procedure AntiBanMining;
begin
case Random(14) of
2: HoverSkill('mining', False);
5: Wait(2000 + random(1000));
9: BoredHuman;
11: PickUpMouse;
13: FindNormalRandoms;
end;
end;

Procedure AntiBanWoodcutting;
begin
case Random(14) of
2: FindNormalRandoms;
5: PickUpMouse;
9: BoredHuman;
11: Wait(2000 + random(1000));
13: HoverSkill('woodcutting', False);
end;
end;

procedure Report;
begin
ClearDebug;
SRLRandomsReport;
WriteLn('Welcome To Bobzilla69''s''Random Skill Trainer');
WriteLn('');
WriteLn('So Far Your Character Has: ');
WriteLn(' Fished Around: ' +IntToStr(f)+' Shrimps');
WriteLn(' Mined Around: ' +IntToStr(m)+' Ores');
WriteLn(' Cut Around: ' +IntToStr(w)+' Logs');
WriteLn(' Attacked Around: ' +IntToStr(a)+' Chickens');
WriteLn('This Has Happened For ' +TimeRunning);
WriteLn('');
WriteLn('Number Of Times Trained A Skill');
WriteLn(' Attack: ' +IntToStr(s1));
WriteLn(' Mining: ' +IntToStr(s3));
WriteLn(' Fishing: ' +IntToStr(s4));
WriteLn(' Woodcutting: ' +IntToStr(s2));
WriteLn('');
WriteLn('Please Post Report');
WriteLn('');
SendSRLReport;
end;

Procedure FightCheck; //checks for fight random and runs away
begin
FindNormalRandoms;
if FindFight then
begin
RunAway('N', true, 1, 2500);
end;
end;


procedure DropItems;
begin
i:=1;
while(i<28) do
begin
i:=i+1
DropItem(i);
FightCheck;
FindNormalRandoms;
end;
end;

procedure Failed;
begin
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
nextplayer(false);
if(not(LoggedIn))then
begin
TerminateScript;
end else
end;

procedure Tele; //teleports home after 30 min of training
begin //on a random skill, script will then
If not CastSpell(1) then //randomly choose another skill
begin
failedTrigger:='could not cast home teleport';
Failed;
end;
Wait(30000 + random(1500));
DropAll;
Logout;
Wait(10000 + random(5500));
if(not(LoggedIn))then Exit;
end;

Procedure GetNet;
begin
FailSafe:= 0;
SearchText:='ishing'; //uptext of tutor
SearchColor:= 11566704; //tutor color
if FindSymbol(x, y, 'guide') then
begin
Mouse(x, y, 2, 2, True);
end else
Mouse(625, 108, 5, 5, true);
Flag;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects = true) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find fishing tutor';
Failed;
end else
Flag;
Wait(2500 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('et fishing', Clickleft);
Wait(1500 + random(1000));
end;

Procedure WalkToFish; //walks from lumbridge to fishing spot
begin
FailSafe:= 0;
repeat
RadialRoadWalk(FindLumbyRoadColor, 84, 100, 56, 0, 0);
Wait(500 + random(300));
until(FindSymbol(x, y, 'Guide'));
RadialRoadWalk(FindLumbyRoadColor, 160, 210, 66, 0, 0);
Wait(500 + random(300));
Flag;
RadialRoadWalk(FindDirtRoadColor, 185, 120, 58, 0, 0);
Wait(500 + random(300));
repeat
RadialWalk(FindDirtRoadColor, 140, 215, 74, 0, 0);
Wait(500 + random(300));
Flag;
FailSafe:= FailSafe + 1;
Until(FindSymbol(x, y, 'fish') or (FailSafe = 2));
GetNet;
FindSymbol(x, y, 'fish');
Mouse(x, y, 4, 2, True);
Flag;
end;

procedure GetPic; //gets a pickaxe for mining
begin
FailSafe:= 0;
SearchText:='ining'; //uptext of tutor
SearchColor:= 11518154; //tutor color
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects = true) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find mining tutor';
Failed;
end else
Flag;
Wait(2000 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(500 + random(1000));
end;

Procedure WalkToMine; //walks from lumbridge to mining area
begin
FailSafe:= 0;
repeat
RadialRoadWalk(FindLumbyRoadColor, 84, 100, 56, 0, 0);
Wait(500 + random(300));
until(FindSymbol(x, y, 'Guide'));
RadialRoadWalk(FindLumbyRoadColor, 160, 210, 66, 0, 0);
Wait(500 + random(300));
Flag;
Wait(200);
RadialRoadWalk(FindSandColor, 120, 184, 56, 0, 0);
Wait(500 + random(300));
repeat
RadialWalk(FindSandColor, 250, 150, 70, 0, 0);
Wait(500 + random(300));
Flag;
Until(FindSymbol(x, y, 'mining site') or (FailSafe = 4));
FindSymbol(x, y, 'mining site');
Mouse(x, y, 4, 2, True);
Flag;
Wait(500 + random(300));
If(not(FindSymbol(x, y, 'mining site')))then
begin
RadialWalk(SymbolColor, 170, 340, 75, 0, 0);
Flag;
Wait(500 + random(300));
end;
end;

Procedure GetAxe; //gets axe for woodcutting
begin
SearchText:= 'oodcutting';
SearchColor:= 5406267;
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects = true) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find woodcutting tutor';
Failed;
end else
Flag;
Wait(2500 + random(2000));
FindNPCChatText('oodcutting', Clickleft);
wait(800 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
end;

Procedure WalkToTrees; //walks from lumbridge to woods
begin
FailSafe:=0;
RadialRoadWalk(FindLumbyRoadColor, 50, 120, 60, 1, -1);
Wait(500 + random(300));
repeat
RadialRoadWalk(FindLumbyRoadColor, 360, 300, 50, 0, 1);
FailSafe:= FailSafe + 1;
Flag;
Wait(500 + random(300));
until(FindSymbolIn(x, y, 'shop', MMX1, MMY1, MMX2, MMY2)or FindSymbolIn(x, y, 'furnace', MMX1, MMY1, MMX2, MMY2) or (FailSafe = 2))
WalkNumber:=1; //walking to woodcutting tutor using ddtm
DDTMWalking;
if FindSymbolIn(x, y, 'Guide', 590, 69, 631, 100)then
begin
Mouse(x, y, 1, 1, true);
Flag;
end;
Wait(500 + random(300));
GetAxe;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 260, 270, 60, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 250, 350, 60, 0, 0);
Wait(500);
Mouse(575, 90, 17, 10, True);
Wait(500 + random(300));
Flag;
end;

procedure WalkToChickens; //walks from lumbridge to chicken pen (NE)
begin
repeat
RadialRoadWalk(FindLumbyRoadColor, 80, 110, 60, 0, 0);
Wait(500 + random(300));
until(FindSymbol(x, y, 'Guide') or (FailSafe = 2))
if(not(RadialRoadWalk(FindBridgeColor, 50, 90, 65, 0, 0)))then
begin
RadialRoadWalk(FindLumbyRoadColor, 40, 120, 80, 0, 0);
end;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 400, 430, 50, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindDirtRoadColor, 330, 390, 70, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindDirtRoadColor, 350, 300, 70, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 300, 400, 70, 0, 0);
Wait(500 + random(300));
if(not(FindSymbol(x, y, 'churn')))then
begin
RadialRoadWalk(FindLumbyRoadColor, 280, 400, 65, 0, 0);
end;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 320, 400, 35, 0, 0);
Flag;
Wait(500 + random(300));
end;

procedure CheckGate;
begin
Wait(1000);
GateColor:=220; //checks if chicken pen gate is open
repeat
GateColor:= GateColor + 1;
Until(FindColorSpiral(x, y, GateColor, 615, 66, 629, 110)or (GateColor = 340))
Mouse(x - 4, y, 0, 0, true);
Flag;
Wait(500 + random(500));
MakeCompass('W');
if FindObjEx(x, y, ['lose'], [5005424], 60, MSCX, MSCY, 1, 168, 73, 297, 194) then
begin
MakeCompass('N');
Exit;
end
else
begin
if FindObjEx(x, y, ['pen'], [5005424], 60, MSCX, MSCY, 1, 168, 73, 297, 194) then
begin
Mouse(x, y, 2, 2, True);
MakeCompass('N');
Flag;
Wait(500 + random(500));
end;
end;
end;

Procedure IntoPen; //enters chicken pen if gate is open
begin
if FindSymbol(x, y, 'churn')then
begin
Mouse(x + 10, y - 10, 2, 2, True);
end
else
begin
Mouse(609, 77, 4, 3, True);
Flag;
Wait(500 + random(300));
end;
end;

procedure StartAttacking; //attacks chickens for 30 min
begin
SearchText:='ttack Chicken'; //uptext of chicken
SearchColor:= 924026; //chicken color
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects = true) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find chicken';
Failed;
end else
Flag;
Wait(2000 + random(1000));
AntiBanAttacking;
FindNormalRandoms;
Wait(2000 + random(1000));
if FindColor(x, y, 65280, 260, 140, 270, 150)then
begin
FindNormalRandoms;
a:= a + 1;
ReportVars[7] := + 1;
repeat
wait(1500 + random(1500));
FindNormalRandoms;
until(not (InFight));
end;
Report;
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end else
StartAttacking;
end;

Procedure StartMining; //mines for 30 min
begin
SearchText:='pot'; //up text
SearchColor:= 5011106; //rock color
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects = true) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find rock';
Failed;
end else
Mouse(x, y, 2, 2, True);
Wait(2500 + random(1500));
FindGas(x, y);
FightCheck;
AntiBanMining;
Wait(2500 + random(1000));
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(200));
DropItems;
FightCheck;
m:= m + 27;
ReportVars[5] := + 27;
Report;
StartMining;
end;
StartMining
end;


procedure StartFishing; //fishes for 30 min
begin
SearchText:='ishing spot'; //uptext
SearchColor:= 11181976; //Fishing spot color
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects = true) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find fishing spot';
Failed;
end else
//Mouse(x, y, 2, 2, True);
Flag;
Wait(500 + random(100));
if FindObj(x, y, SearchText, SearchColor, 20) then
HandleWhirlPool;
Wait(3000 + Random(1000));
FightCheck;
Wait(3500 + Random(530));
AntiBanFishing;
FightCheck;
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(100));
DropItems;
FightCheck;
f:= f + 27;
ReportVars[4] := + 27;
Report;
StartFishing;
end;
StartFishing
end;

procedure StartWoodcutting; //cuts wood for 30min
begin
SearchText:='Tree'; //uptext
SearchColor:= 7649194; //tree color
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects = true) or (FailSafe = 10));
if FailSafe = 10 then
begin
failedTrigger:='could not find tree';
Failed;
end else
x:= 274; //center of main screen
y:= 161; //center of main screen
Wait(600 + Random(600));
FindObjEx(x, y, ['down Tree'], [7649194], 60, MSCX, MSCY, 1, 168, 73, 297, 194);
MMouse(x, y, 2, 4);
FindEnt(x, y, True);
Wait(2500 + random(1000));
FightCheck;
AntiBanWoodcutting;
Wait(2000 + random(1000));
FightCheck;
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(200));
DropItems;
FightCheck;
w:= w + 27;
ReportVars[6] := + 27;
Report;
StartWoodcutting;
end;
StartWoodcutting;
end;

Procedure Attack; //procedure for attacking
begin
Wait(500 + random(100));
WriteLn('Training Attack');
SetFightMode(mode);
s1:= s1 + 1;
ReportVars[0] := + 1;
Wait(500 + random(100));
WalkToChickens;
CheckGate;
IntoPen;
MakeCompass('N');
MarkTime(Timer);
StartAttacking;
If(not(LoggedIn))then Exit;
end;

Procedure Woodcutting; //procedure for cutting wood
begin
Wait(500 + random(100));
WriteLn('Training Woodcutting');
s2:= s2 + 1;
ReportVars[3] := + 1;
Wait(500 + random(100));
WalkToTrees;
MarkTime(Timer);
StartWoodcutting;
If(not(LoggedIn))then Exit;
end;

Procedure Mining; //procedure for mining
begin
Wait(500 + random(100));
WriteLn('Training Mining');
s3:= s3 + 1;
ReportVars[2] := + 1;
Wait(500 + random(100));
WalkToMine;
GetPic;
MarkTime(Timer);
StartMining;
If(not(LoggedIn))then Exit;
end;

Procedure Fishing; //procedure for fishing
begin
Wait(500 + random(100));
WriteLn('Training Fishing');
s4:= s4 + 1;
ReportVars[1] := + 1;
Wait(500 + random(100));
WalkToFish;
MarkTime(Timer);
StartFishing;
If(not(LoggedIn))then Exit;
end;

Procedure RandomSkillToTrain; //randomly selects skill to train
begin
WriteLn('Choosing Random Skill to Train........');
case Random(4) of
0: Attack;
1: Woodcutting;
2: Fishing;
3: Mining;
end;
If(not(LoggedIn))then Exit;
end;

Procedure MainLoop; //gets screen set up and starts the script
begin
LoginPlayer;
MakeCompass('N');
SetAngle(True);
if (mode = 1) then modeStyle:= 'Attack';
if (mode = 2) then modeStyle:= 'Strength';
if (mode = 3) then modeStyle:= 'Defence';
if (mode = 4) then
begin
case random(3) of
0: modeStyle:= 'Defence';
1: modeStyle:= 'Attack';
2: modeStyle:= 'Strength';
end;
end;
GameTab(4);
RandomSkillToTrain;
repeat
If not LoggedIn then
begin
MainLoop;
end;
until(False);
end;

begin
SetUpSRL;
Wait(500);
DeclarePlayers;
ScriptID := '351';
SRLID := YourSRLId;
SRLPassword := YourSRLPassword;
MainLoop;
end.

——————————————————
<!– END TEMPLATE: formanswers –>

NiCbaZ

2008-07-24 17:16:59

Procedure Attack;            //procedure for attacking
begin
Wait(500 + random(100));
WriteLn('Training Attack');
SetFightMode(mode);
s1:= s1 + 1;
ReportVars[0] := + 1;
Wait(500 + random(100));
WalkToChickens;
CheckGate;
IntoPen;
MakeCompass('N');
MarkTime(Timer);
StartAttacking;
If(not(LoggedIn))then Exit;
end;

Procedure Woodcutting; //procedure for cutting wood
begin
Wait(500 + random(100));
WriteLn('Training Woodcutting');
s2:= s2 + 1;
ReportVars[3] := + 1;
Wait(500 + random(100));
WalkToTrees;
MarkTime(Timer);
StartWoodcutting;
If(not(LoggedIn))then Exit;
end;

Procedure Mining; //procedure for mining
begin
Wait(500 + random(100));
WriteLn('Training Mining');
s3:= s3 + 1;
ReportVars[2] := + 1;
Wait(500 + random(100));
WalkToMine;
GetPic;
MarkTime(Timer);
StartMining;
If(not(LoggedIn))then Exit;
end;

Procedure Fishing; //procedure for fishing
begin
Wait(500 + random(100));
WriteLn('Training Fishing');
s4:= s4 + 1;
ReportVars[1] := + 1;
Wait(500 + random(100));
WalkToFish;
MarkTime(Timer);
StartFishing;
If(not(LoggedIn))then Exit;
end;


could be shortener, aka made into 1 function….. like

function Skill(what: string): boolean;
begin
case what of
'attack':
begin
Wait(500 + random(100));
WriteLn('Training Attack');
SetFightMode(mode);
s1:= s1 + 1;
ReportVars[0] := + 1;
Wait(500 + random(100));
WalkToChickens;
CheckGate;
IntoPen;
MakeCompass('N');
MarkTime(Timer);
StartAttacking;
If(not(LoggedIn))then Exit;
end;
'wood':
begin
Wait(500 + random(100));
WriteLn('Training Woodcutting');
s2:= s2 + 1;
ReportVars[3] := + 1;
Wait(500 + random(100));
WalkToTrees;
MarkTime(Timer);
StartWoodcutting;
If(not(LoggedIn))then Exit;
end;
'mine':
begin
Wait(500 + random(100));
WriteLn('Training Mining');
s3:= s3 + 1;
ReportVars[2] := + 1;
Wait(500 + random(100));
WalkToMine;
GetPic;
MarkTime(Timer);
StartMining;
If(not(LoggedIn))then Exit;
end;
'fish':
begin
Wait(500 + random(100));
WriteLn('Training Fishing');
s4:= s4 + 1;
ReportVars[1] := + 1;
Wait(500 + random(100));
WalkToFish;
MarkTime(Timer);
StartFishing;
If(not(LoggedIn))then Exit;
end;
end;
end;



im not voting for now until i read more of the script.

function SandAutoColor: Integer;

ACA? creds?

also all thos anti ban procecdures could be made into 1 function…

with your find object function

you do this before you use it

SearchText:='pot';       //up text
SearchColor:= 5011106;

you could make the function like this..

Function FindObjects(Text: string, Color : integer) : Boolean;

well something like that anyway il write more later

the scar noob

2008-07-24 17:32:41

:O That was sooo totally the idea I had in mind, ask cnr sport etc:p

-Tsn.

Dusk412

2008-07-24 17:44:51

also the if not LoggedIn then Exit should be at the beginning of the script. I am beginning to see this more and more lately, so don't take it to heart, but if you do not know how to add multiplayer properly, don't just stick a DeclarePlayers at the beginning and assume it will work. There is more to it than that and alot of it is missing in your script.

For example:
procedure Failed;
begin
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
nextplayer(false);
if(not(LoggedIn))then
begin
TerminateScript;
end else
end;

So if your script fails, it logs out, makes player inactive and goes to next player, and then ends the script because you aren't logged in. So pretty much there isn't multiplayer.

You have TPAs and RRW and a little AC so that isn't bad.

Procedure WalkToFish;            //walks from lumbridge to fishing spot
begin
FailSafe:= 0;
repeat
RadialRoadWalk(FindLumbyRoadColor, 84, 100, 56, 0, 0);
Wait(500 + random(300));
until(FindSymbol(x, y, 'Guide'));
RadialRoadWalk(FindLumbyRoadColor, 160, 210, 66, 0, 0);
Wait(500 + random(300));
Flag;
RadialRoadWalk(FindDirtRoadColor, 185, 120, 58, 0, 0);
Wait(500 + random(300));
repeat
RadialWalk(FindDirtRoadColor, 140, 215, 74, 0, 0);
Wait(500 + random(300));
Flag;
FailSafe:= FailSafe + 1;
Until(FindSymbol(x, y, 'fish') or (FailSafe = 2));
GetNet;
FindSymbol(x, y, 'fish');
Mouse(x, y, 4, 2, True);
Flag;
end;

You have attempted a little failsafe here but it is ineffective really because if it doesnt radial walk properly after its 2 attempts. It will proceed and try to find the fish symbol, fail, then continue with the script. If you have an alternate condition to break a loop, make sure you know where it is going after that.

I am going to vote a no because while you have a lot of the knowledge we like to see, it seems like you havn't really had enough practice putting it together and combining what you know and applying it practically. It also seems like you aren't quite proficient at certain things (like multiplayer) and are just throwing them in there because you read that we like to see it. Sorry.

Scaper

2008-07-24 20:02:54

deaathsycth if you read the post in the applinces section you will see you should not be voting yet anyway:s

ontopc im gunna hold my vote and test this script

Claymore

2008-07-24 20:24:24

oh right ;) Yer, well thats just teachings… Work on Fail safes and do a more generalized script!

Bobzilla69

2008-07-25 02:33:57

From: NiCbaZ

could be shortener, aka made into 1 function….. like

function Skill(what: string): boolean;
begin
case what of
'attack':
begin
Wait(500 + random(100));
WriteLn('Training Attack');
SetFightMode(mode);
s1:= s1 + 1;
ReportVars[0] := + 1;
Wait(500 + random(100));
WalkToChickens;
CheckGate;
IntoPen;
MakeCompass('N');
MarkTime(Timer);
StartAttacking;
If(not(LoggedIn))then Exit;
end;
'wood':
begin
Wait(500 + random(100));
WriteLn('Training Woodcutting');
s2:= s2 + 1;
ReportVars[3] := + 1;
Wait(500 + random(100));
WalkToTrees;
MarkTime(Timer);
StartWoodcutting;
If(not(LoggedIn))then Exit;
end;
'mine':
begin
Wait(500 + random(100));
WriteLn('Training Mining');
s3:= s3 + 1;
ReportVars[2] := + 1;
Wait(500 + random(100));
WalkToMine;
GetPic;
MarkTime(Timer);
StartMining;
If(not(LoggedIn))then Exit;
end;
'fish':
begin
Wait(500 + random(100));
WriteLn('Training Fishing');
s4:= s4 + 1;
ReportVars[1] := + 1;
Wait(500 + random(100));
WalkToFish;
MarkTime(Timer);
StartFishing;
If(not(LoggedIn))then Exit;
end;
end;
end;



but if i did that the script wouldnt train randomly, well unless i use a random case mmmmm, good idea. thanks for feed back.

From: NiCbaZ

function SandAutoColor: Integer;

ACA? creds?


thought i did credit at top? sorry, must be one of my to do's.
planning on redoing autocolor, so will update credits then

From: NiCbaZ

also all thos anti ban procecdures could be made into 1 function…

with your find object function

you do this before you use it

SearchText:='pot';       //up text
SearchColor:= 5011106;

you could make the function like this..

Function FindObjects(Text: string, Color : integer) : Boolean;

well something like that anyway il write more later


ok, i can make my antiban linked to the output from a random case that outputs the skill training, thanks for that idea, never thought of it that way.

From: the scar noob
:O That was sooo totally the idea I had in mind, ask cnr sport etc:p

-Tsn.


:P i know, people keep saying they will make this so i thought i would jump at it before they do.

From: Dusk412
also the if not LoggedIn then Exit should be at the beginning of the script. I am beginning to see this more and more lately, so don't take it to heart, but if you do not know how to add multiplayer properly, don't just stick a DeclarePlayers at the beginning and assume it will work. There is more to it than that and alot of it is missing in your script.

For example:
procedure Failed;
begin
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
nextplayer(false);
if(not(LoggedIn))then
begin
TerminateScript;
end else
end;


i can see what you mean, really mucked up there, will be sure to make a note for my next update

From: Dusk412


Procedure WalkToFish;            //walks from lumbridge to fishing spot
begin
FailSafe:= 0;
repeat
RadialRoadWalk(FindLumbyRoadColor, 84, 100, 56, 0, 0);
Wait(500 + random(300));
until(FindSymbol(x, y, 'Guide'));
RadialRoadWalk(FindLumbyRoadColor, 160, 210, 66, 0, 0);
Wait(500 + random(300));
Flag;
RadialRoadWalk(FindDirtRoadColor, 185, 120, 58, 0, 0);
Wait(500 + random(300));
repeat
RadialWalk(FindDirtRoadColor, 140, 215, 74, 0, 0);
Wait(500 + random(300));
Flag;
FailSafe:= FailSafe + 1;
Until(FindSymbol(x, y, 'fish') or (FailSafe = 2));
GetNet;
FindSymbol(x, y, 'fish');
Mouse(x, y, 4, 2, True);
Flag;
end;

You have attempted a little failsafe here but it is ineffective really because if it doesnt radial walk properly after its 2 attempts. It will proceed and try to find the fish symbol, fail, then continue with the script. If you have an alternate condition to break a loop, make sure you know where it is going after that.


the reason it carries on an still attempts to find the fishing tutor is because it most of the time in view of the tutor, so a quick check to see if he is doesnt hurt that much and will activate my fail safe if he aint found


looking forward to more coments about my script, even if they are bad, its the only way to get better :)

NiCbaZ

2008-07-25 02:38:45

i see you got a good attitude to learning, good app yes.

MasterKill

2008-07-25 04:35:55

Yes from me.

Bobzilla69

2008-07-25 04:44:56

is it ok if i post improvements to the script?

at work at the moment so wont be till 2nite (UK time)

MasterKill

2008-07-25 05:04:42

From: bobzilla69
is it ok if i post improvements to the script?


sure why not? It's a good thing that your improving :)

Scaper

2008-07-25 10:18:55

the script doesnt even work youi cant have multiplayers coz it dont log you in it just says "cant find lumbridge road color" then when you start logged in the mouse does nothing i "swaying to a no" unless i come back and see the script working im off to work now ill be there 9 hrs uk time

Bobzilla69

2008-07-25 11:37:01

From: Scaper
the script doesnt even work youi cant have multiplayers coz it dont log you in it just says "cant find lumbridge road color" then when you start logged in the mouse does nothing i "swaying to a no" unless i come back and see the script working im off to work now ill be there 9 hrs uk time


sorry that your having trouble, i have loginplayer, so it should log you in, also if it doesnt find roadcolor its the autocolot thats not working.

try using it on a diffrent world, but anyways when i get home i will have a look at it

Waddo

2008-07-25 13:48:01

const YourSRLID = '';           //srl stats id
const YourSRLPassword = ''; //srl stats password
const SymbolColor = 11971761; //Gray of the symbol color
const mode = 4; //attack style 1:attack, 2:strength, 3:defence, 4:control

Only need 1 const.

function FailSafeWalking(WalkNumber:Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
case WalkNumber of
1: begin
dtmMainPoint.x := 925;
dtmMainPoint.y := 277;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWaterColor;
dtmMainPoint.Tolerance := 0;


Does that being in a case really help?


And a yes from me its a good script standards are ok they go out in some places but mine aren't perfect and im not to fussed about presentation more about the content.
It is a multi skill script so is very useful I think you should improve this and attempt to make it flawless it could be extremely useful for when we are creating armies wd.

Bobzilla69

2008-07-25 14:15:32

From: Waddo
const YourSRLID = '';           //srl stats id
const YourSRLPassword = ''; //srl stats password
const SymbolColor = 11971761; //Gray of the symbol color
const mode = 4; //attack style 1:attack, 2:strength, 3:defence, 4:control

Only need 1 const.

function FailSafeWalking(WalkNumber:Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
case WalkNumber of
1: begin
dtmMainPoint.x := 925;
dtmMainPoint.y := 277;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWaterColor;
dtmMainPoint.Tolerance := 0;


Does that being in a case really help?


And a yes from me its a good script standards are ok they go out in some places but mine aren't perfect and im not to fussed about presentation more about the content.
It is a multi skill script so is very useful I think you should improve this and attempt to make it flawless it could be extremely useful for when we are creating armies wd.


thanks for your comments, as for the FailSafeWalking, i was planning on adding more to improve my walking and make the script flawless, and thats also how i learned it in a tutorial.

there will be a updated script in a few minutes

Edit:

Updated Script, fixed some auto color problems and made change that where recommended.
Multiplayer works but the next player will continue what first was doing, working on fixing this and will release script again when done

//Welcome To Bobzilla69's Random Skill Trainer.
//I created this script to help level up new account
//The script will randomly choose one of the 4 skill
//and train the account on that for 30 minutes
//This is due to the home teleport requiring 30 min to recharge
//once the 30 min is up it will teleport home
//and the script will start again training another random skill
//There is a chance that it will train the same skill

//The walking and pickup of required tools for skill can be buggy
//I recomend wearing 3 bits of armour including a weapon
//I also recomend using FireFox as i have had less errors using it

//This script is for new accounts that have been created

//I would like to thank NaumanAkhlaQ for his tutorial on TPA's and
//I also want to thank BobboHobbo for his tutorial on DDTM walking
//I also want to thank King Vash for helping me with auto coloring.
//Thanks to Wizzup? for helping me with my scipting

//And a big thanks to the whole SRL team for making this libary

//Have not used script with SMART yet but should work, i hope

Program MultiSkiller;
//{.include SRL\SRL\Misc\smart.scar}
{.include SRL\SRL.scar}
{.include SRL\SRL\skill\Fishing.scar}
{.include SRL\SRL\skill\Mining.scar}
{.include SRL\SRL\skill\Magic.scar}
{.include SRL\SRL\skill\Fighting.scar}
{.include SRL\SRL\skill\Woodcutting.scar}


const YourSRLID = ''; //srl stats id
const YourSRLPassword = ''; //srl stats password
const SymbolColor = 11971761; //Gray of the symbol color
const mode = 4; //attack style 1:attack, 2:strength, 3:defence, 4:control

var
//Main program Variables
x, y, i, Timer ,FailSafe, f, m, w, a, s1, s2, s3, s4,
GateColor, WalkNumber:integer;
failedTrigger, modeStyle, Skill:string;

//TPA variables
SearchColor:integer;
SearchText:String;

Procedure DeclarePlayers;
begin
HowManyPlayers := 3;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //UserName
Players[0].Pass := ''; //Password
Players[0].Nick := ''; //3 or 4 letter from your username
Players[0].Active :=True;

Players[1].Name := ''; //UserName
Players[1].Pass := ''; //Password
Players[1].Nick := ''; //3 or 4 letter from your username
Players[1].Active :=True;

Players[2].Name := ''; //UserName
Players[2].Pass := ''; //Password
Players[2].Nick := ''; //3 or 4 letter from your username
Players[2].Active :=True;

end;


//auto colors the sand road below lumbridge (NOT WORKING)
Function MyFindSandColor:Integer;
var
i, Tcolor, Red, Green, Blue, color:integer;
colorArray : Tpointarray;
begin
Result := 0;
color := 6456721;
FindColorsTolerance(colorArray, color, MMX1, MMY1, MMX2, MMY2, 60);
for i := 0 to high(colorArray) do
if rs_OnMinimap(colorArray[i].x,colorArray[i].y) then
begin
TColor := GetColor(colorArray[i].x,colorArray[i].y);
colortoRGB(Tcolor, Red, Green, Blue);
if (Blue>93) and (Blue<102) then
if (Green>120) and (Green<145) then
if (Red>138) and (Red<152) then
begin
Result := Tcolor
Writeln('Sand Color Found! :'+ IntToStr(Tcolor));
Exit;
end;
end;
end;

//find objects

Function FindObjects(SearchColor:Integer; SearchText:String; WhatToDo:String):Boolean;
Var
Bx, By : Integer;
TPA : Array Of TPoint;
ATPA : T2DPointArray;
I : Integer;
Begin
FindColorsSpiralTolerance(Bx, By, TPA, SearchColor, MSX1, MSY1, MSX2, MSY2, 15);
Begin
ATPA := SplitTPA(TPA, 10);
For I := 0 To High(ATPA) Do
If MiddleTPAEx(ATPA[i], Bx, By) Then
begin
MMouse(Bx, By, 0, 0);
Wait(100 + Random(100));
If IsUpText(SearchText) Then
Begin
Mouse(Bx, By, 0, 0, False);
GetMousePos(x, y);
ChooseOption(WhatToDo);
Flag;
Result := True;
Exit;
end else
begin
Result := False;
//Exit;
end;
end;
end;
end;

// fail safe walking, implementing for getting to certain locations
function FailSafeWalking(WalkNumber:Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
case WalkNumber of
1: begin
dtmMainPoint.x := 925;
dtmMainPoint.y := 277;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWaterColor;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 925;
dtmSubPoints[0].y := 277;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWaterColor;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 860;
dtmSubPoints[1].y := 293;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindLumbyRoadColor;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 859;
dtmSubPoints[2].y := 279;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindLumbyRoadColor;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 849;
dtmSubPoints[3].y := 264;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindLumbyRoadColor;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 833;
dtmSubPoints[4].y := 263;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := FindLumbyRoadColor;
dtmSubPoints[4].Tolerance := 0;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
end;
end;


function DDTMWalking: Boolean;
var
WalkDTM: integer; // Calls the WalkDTM making walking simpler.
begin
WalkDTM := FailSafeWalking(WalkNumber); //Load which DDTM you want to find.
if FindDTM(WalkDTM, x, y, MMX1,MMY1,MMX2,MMY2) then // Find the DDTM using Find DTM
begin
Mouse(x - 30, y, 8, 8, True);
WriteLn('Walking to Woodcutting tutor complete');
FFlag(0);
Result := True; // If succesfully finds it will click it and wait to flag is gone.
end;
end;

Procedure AntiBan; //diffrent antiban for each skill
begin
if (Skill = 'fishing')then
begin
case Random(14) of
2: HoverSkill('fishing', False);
5: PickUpMouse;
9: Wait(2500 + random(1000));
11: BoredHuman;
13: FindNormalRandoms;
end;
end;
if (Skill = 'attack')then
begin
case Random(14) of
2: BoredHuman;
5: PickUpMouse;
9: HoverSkill(modeStyle, False);
11: Wait(2000 + random(1000));
13: FindNormalRandoms;
end;
end;
if (Skill = 'mining') then
begin
case Random(14) of
2: HoverSkill('mining', False);
5: Wait(2000 + random(1000));
9: BoredHuman;
11: PickUpMouse;
13: FindNormalRandoms;
end;
end;
if(Skill = 'woodcutting')then
begin
case Random(14) of
2: FindNormalRandoms;
5: PickUpMouse;
9: BoredHuman;
11: Wait(2000 + random(1000));
13: HoverSkill('woodcutting', False);
end;
end;
end;

procedure Report;
begin
ClearDebug;
SRLRandomsReport;
WriteLn('Welcome To Bobzilla69''s''Random Skill Trainer');
WriteLn('');
WriteLn('So Far Your Character Has: ');
WriteLn(' Fished Around: ' +IntToStr(f)+' Shrimps');
WriteLn(' Mined Around: ' +IntToStr(m)+' Ores');
WriteLn(' Cut Around: ' +IntToStr(w)+' Logs');
WriteLn(' Attacked Around: ' +IntToStr(a)+' Chickens');
WriteLn('This Has Happened For ' +TimeRunning);
WriteLn('');
WriteLn('Number Of Times Trained A Skill');
WriteLn(' Attack: ' +IntToStr(s1));
WriteLn(' Mining: ' +IntToStr(s3));
WriteLn(' Fishing: ' +IntToStr(s4));
WriteLn(' Woodcutting: ' +IntToStr(s2));
WriteLn('');
WriteLn('Please Post Report');
WriteLn('');
SendSRLReport;
end;

Procedure FightCheck; //checks for fight random and runs away
begin
FindNormalRandoms;
if FindFight then
begin
RunAway('N', true, 1, 2500);
end;
end;


procedure DropItems;
begin
i:=1;
while(i<28) do
begin
i:=i+1
DropItem(i);
FightCheck;
FindNormalRandoms;
end;
end;

procedure Failed;
begin
if(not(LoggedIn))then Exit;
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
nextplayer(false);
end;

procedure Tele; //teleports home after 30 min of training
begin //on a random skill, script will then
if(not(LoggedIn))then Exit;
If not CastSpell(1) then //randomly choose another skill
begin
failedTrigger:='could not cast home teleport';
Failed;
end;
Wait(30000 + random(1500));
DropAll;
Logout;
Wait(10000 + random(5500));
end;

Procedure GetNet;
begin
If(not(LoggedIn))then Exit;
FailSafe:= 0;
if FindSymbol(x, y, 'guide') then
begin
Mouse(x, y, 2, 2, True);
end else
Mouse(625, 108, 5, 5, true);
Flag;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects(11566704, 'ishing', 'alk')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find fishing tutor';
Failed;
end else
Flag;
Wait(2500 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('et fishing', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(1500 + random(1000));
end;

Procedure WalkToFish; //walks from lumbridge to fishing spot
begin
If(not(LoggedIn))then Exit;
FailSafe:= 0;
RadialRoadWalk(FindLumbyRoadColor, 120, 80, 60, 1, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 160, 210, 66, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(MyFindSandColor, 185, 120, 58, 0, 0);
Wait(500 + random(300));
repeat
RadialWalk(MyFindSandColor, 140, 215, 74, 0, 0);
Wait(500 + random(300));
FailSafe:= FailSafe + 1;
Until(FindSymbol(x, y, 'fish') or (FailSafe = 2));
GetNet;
FindSymbol(x, y, 'fish');
Mouse(x, y, 4, 2, True);
Flag;
end;

procedure GetPic; //gets a pickaxe for mining
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects(11518154, 'ining', 'alk')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find mining tutor';
Failed;
end else
Flag;
Wait(2000 + random(1000));
FindNPCChatText('ining', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(500 + random(1000));
end;

Procedure WalkToMine; //walks from lumbridge to mining area
begin
If(not(LoggedIn))then Exit;
FailSafe:= 0;
RadialRoadWalk(FindLumbyRoadColor, 100, 82, 60, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 160, 210, 66, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(MyFindSandColor, 120, 184, 56, 0, 0);
Wait(500 + random(300));
repeat
RadialWalk(MyFindSandColor, 250, 150, 70, 0, 0);
Wait(500 + random(300));
FailSafe:= FailSafe + 1;
Until(FindSymbol(x, y, 'mining site') or (FailSafe = 4));
FailSafe:= 0;
FindSymbol(x, y, 'mining site');
Mouse(x, y, 4, 2, True);
Wait(500 + random(300));
Flag;
If(not(FindSymbol(x, y, 'mining site')))then
begin
RadialWalk(SymbolColor, 170, 340, 75, 0, 0);
Wait(500 + random(300));
end;
end;

Procedure GetAxe; //gets axe for woodcutting
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects(5406267, 'oodcutting', 'alk')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find woodcutting tutor';
Failed;
end else
Flag;
Wait(2500 + random(2000));
FindNPCChatText('oodcutting', Clickleft);
wait(800 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
end;

Procedure WalkToTrees; //walks from lumbridge to woods
begin
If(not(LoggedIn))then Exit;
FailSafe:=0;
RadialRoadWalk(FindLumbyRoadColor, 50, 120, 60, 1, -1);
Wait(500 + random(300));
repeat
RadialRoadWalk(FindLumbyRoadColor, 360, 300, 50, 0, 1);
FailSafe:= FailSafe + 1;
Wait(500 + random(300));
until(FindSymbolIn(x, y, 'shop', MMX1, MMY1, MMX2, MMY2)or FindSymbolIn(x, y, 'furnace', MMX1, MMY1, MMX2, MMY2) or (FailSafe = 2))
WalkNumber:=1; //walking to woodcutting tutor using ddtm
DDTMWalking;
if FindSymbolIn(x, y, 'Guide', 590, 69, 631, 100)then
begin
Mouse(x, y, 1, 1, true);
Flag;
end;
Wait(500 + random(300));
GetAxe;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 260, 270, 60, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 250, 350, 60, 0, 0);
Wait(500);
Mouse(575, 90, 17, 10, True);
Wait(500 + random(300));
Flag;
end;

procedure WalkToChickens; //walks from lumbridge to chicken pen (NE)
begin
If(not(LoggedIn))then Exit;
RadialRoadWalk(FindLumbyRoadColor, 80, 110, 60, 0, 0);
Wait(500 + random(300));
if(not(RadialRoadWalk(FindBridgeColor, 50, 90, 65, 0, 0)))then
begin
RadialRoadWalk(FindLumbyRoadColor, 40, 120, 80, 0, 0);
end;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 400, 430, 50, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindDirtRoadColor, 330, 390, 70, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindDirtRoadColor, 350, 300, 70, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 300, 400, 70, 0, 0);
Wait(500 + random(300));
if(not(FindSymbol(x, y, 'churn')))then
begin
RadialRoadWalk(FindLumbyRoadColor, 280, 400, 65, 0, 0);
end;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 320, 400, 35, 0, 0);
Wait(500 + random(300));
end;

procedure CheckGate;
begin
If(not(LoggedIn))then Exit;
Wait(1000);
GateColor:=220; //checks if chicken pen gate is open
repeat
GateColor:= GateColor + 1;
Until(FindColorSpiral(x, y, GateColor, 615, 66, 629, 110)or (GateColor = 340))
Mouse(x - 4, y, 0, 0, true);
Flag;
Wait(500 + random(500));
MakeCompass('W');
if FindObjEx(x, y, ['lose'], [5005424], 60, MSCX, MSCY, 1, 168, 73, 297, 194) then
begin
MakeCompass('N');
Exit;
end
else
begin
if FindObjEx(x, y, ['pen'], [5005424], 60, MSCX, MSCY, 1, 168, 73, 297, 194) then
begin
Mouse(x, y, 2, 2, True);
MakeCompass('N');
Flag;
Wait(500 + random(500));
end;
end;
end;

Procedure IntoPen; //enters chicken pen if gate is open
begin
If(not(LoggedIn))then Exit;
if FindSymbol(x, y, 'churn')then
begin
Mouse(x + 10, y - 10, 2, 2, True);
end
else
begin
Mouse(609, 77, 4, 3, True);
Flag;
Wait(500 + random(300));
end;
end;

procedure StartAttacking; //attacks chickens for 30 min
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects(924026, 'ttack Chicken', 'ttck')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find chicken';
Failed;
end else
Flag;
Wait(2000 + random(1000));
AntiBan;
FindNormalRandoms;
Wait(2000 + random(1000));
if FindColor(x, y, 65280, 260, 140, 270, 150)then
begin
FindNormalRandoms;
a:= a + 1;
ReportVars[7] := + 1;
repeat
wait(1500 + random(1500));
FindNormalRandoms;
until(not (InFight));
end;
Report;
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end else
StartAttacking;
end;

Procedure StartMining; //mines for 30 min
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects(5011106, 'ine', 'ine')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find rock';
Failed;
end else
MMouse(x, y, 2, 2);
Wait(2500 + random(1500));
FindGas(x, y);
FightCheck;
AntiBan;
Wait(2500 + random(1000));
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(200));
DropItems;
FightCheck;
m:= m + 27;
ReportVars[5] := + 27;
Report;
StartMining;
end;
StartMining
end;


procedure StartFishing; //fishes for 30 min
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects(11181976, 'ishing spot', 'et')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find fishing spot';
Failed;
end else
MMouse(x, y, 2, 2);
Flag;
Wait(500 + random(100));
if FindObj(x, y, SearchText, SearchColor, 20) then
HandleWhirlPool;
Wait(3000 + Random(1000));
FightCheck;
Wait(3500 + Random(530));
AntiBan;
FightCheck;
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(100));
DropItems;
FightCheck;
f:= f + 27;
ReportVars[4] := + 27;
Report;
StartFishing;
end;
StartFishing
end;

procedure StartWoodcutting; //cuts wood for 30min
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects(7649194, 'Tree', 'hop')) or (FailSafe = 10));
if FailSafe = 10 then
begin
failedTrigger:='could not find tree';
Failed;
end else
x:= 274; //center of main screen
y:= 161; //center of main screen
Wait(600 + Random(600));
FindObjEx(x, y, ['down Tree'], [7649194], 60, MSCX, MSCY, 1, 168, 73, 297, 194);
MMouse(x, y, 2, 4);
FindEnt(x, y, True);
Wait(2500 + random(1000));
FightCheck;
AntiBan;
Wait(2000 + random(1000));
FightCheck;
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(200));
DropItems;
FightCheck;
w:= w + 27;
ReportVars[6] := + 27;
Report;
StartWoodcutting;
end;
StartWoodcutting;
end;

Function SkillTraining(Skill:String):Boolean; //procedure for attacking
begin
case Skill of
'Attack':
begin
If(not(LoggedIn))then Exit;
Wait(500 + random(100));
WriteLn('Training Attack');
SetFightMode(mode);
s1:= s1 + 1;
ReportVars[0] := + 1;
Wait(500 + random(100));
WalkToChickens;
CheckGate;
IntoPen;
MakeCompass('N');
MarkTime(Timer);
StartAttacking;

end;
'Woodcutting': //procedure for cutting wood
begin
If(not(LoggedIn))then Exit;
Wait(500 + random(100));
WriteLn('Training Woodcutting');
s2:= s2 + 1;
ReportVars[3] := + 1;
Wait(500 + random(100));
WalkToTrees;
MarkTime(Timer);
StartWoodcutting;

end;
'Mining': //procedure for mining
begin
If(not(LoggedIn))then Exit;
Wait(500 + random(100));
WriteLn('Training Mining');
s3:= s3 + 1;
ReportVars[2] := + 1;
Wait(500 + random(100));
WalkToMine;
GetPic;
MarkTime(Timer);
StartMining;

end;
'Fishing': //procedure for fishing
begin
If(not(LoggedIn))then Exit;
Wait(500 + random(100));
WriteLn('Training Fishing');
s4:= s4 + 1;
ReportVars[1] := + 1;
Wait(500 + random(100));
WalkToFish;
MarkTime(Timer);
StartFishing;

end;
end;
end;

Procedure RandomSkillToTrain; //randomly selects skill to train
begin
If(not(LoggedIn))then Exit;
WriteLn('Choosing Random Skill to Train........');
case Random(4) of
0: Skill:= 'Attack';
1: Skill:= 'Woodcutting';
2: Skill:= 'Fishing';
3: Skill:= 'Mining';
end;
end;

Procedure MainLoop; //gets screen set up and starts the script
begin
LoginPlayer;
MakeCompass('N');
SetAngle(True);
if (mode = 1) then modeStyle:= 'Attack';
if (mode = 2) then modeStyle:= 'Strength';
if (mode = 3) then modeStyle:= 'Defence';
if (mode = 4) then
begin
case random(3) of
0: modeStyle:= 'Defence';
1: modeStyle:= 'Attack';
2: modeStyle:= 'Strength';
end;
end;
GameTab(4);
RandomSkillToTrain;
SkillTraining(Skill);
repeat
If not LoggedIn then
begin
nextplayer(false);
MainLoop;
end;
until(False);
end;

begin
SetUpSRL;
Wait(500);
DeclarePlayers;
ScriptID := '351';
SRLID := YourSRLId;
SRLPassword := YourSRLPassword;
MainLoop;
end.

Dusk412

2008-07-25 15:06:27

I am glad to see you made the multiplayer better :D. Good job. I have a question though, has anyone (not including bobzilla669 lol :P) tested the script to see if it actually works rather than just looking at the script itself?

 SetAngle(True);
if (mode = 1) then modeStyle:= 'Attack';
if (mode = 2) then modeStyle:= 'Strength';
if (mode = 3) then modeStyle:= 'Defence';
if (mode = 4) then
begin
case random(3) of
0: modeStyle:= 'Defence';
1: modeStyle:= 'Attack';
2: modeStyle:= 'Strength';
end;

you could make the mode a case as well. As in "case mode of" "1: modeStyle := 'Defence';

Also, just out of good technique, try to make all your strings (like defence and attack) lowercase all the time. Then when people have to fill in constants, say they filled in their attack type themselves, even if they put 'defence', 'Defence', 'DEFENCE', or whatever you can do modeStyle := Lowercase(modeStyle). It is just a technique thing and is a good habit. Nice job :D.

- Dusk412

Bobzilla69

2008-07-25 15:40:09

ok i see what you mean there.

will make more improvements later 2nite or tomorow

thanks for all the help, going to relax and watch some tv now, been a long day at work

the scar noob

2008-07-25 17:11:37

From: Dusk412
also the if not LoggedIn then Exit should be at the beginning of the script.


"if not(LoggedIn) then Exit;" at the top of every 'major' function/procedure.
"if not(LoggedIn) then Break;" at the top of every loop.

That my friend, is the ultimate way (well, somekinda, i prefer adding other stuff like usage of player's loc:p);)

@Bobzilla69(<lol!): np, you can make every script you want:p

-Tsn.

Scaper

2008-07-25 18:49:01

From: Dusk412
I am glad to see you made the multiplayer better :D. Good job. I have a question though, has anyone (not including bobzilla669 lol :P) tested the script to see if it actually works rather than just looking at the script itself?

ScarScript:By Drunkenoldma [LEFT] SetAngle(True); if (mode = 1) then modeStyle:= 'Attack'; if (mode = 2) then modeStyle:= 'Strength'; if (mode = 3) then modeStyle:= 'Defence'; if (mode = 4) then begin case random(3) of 0: modeStyle:= 'Defence'; 1: modeStyle:= 'Attack'; 2: modeStyle:= 'Strength'; end; [/LEFT]

you could make the mode a case as well. As in "case mode of" "1: modeStyle := 'Defence';

Also, just out of good technique, try to make all your strings (like defence and attack) lowercase all the time. Then when people have to fill in constants, say they filled in their attack type themselves, even if they put 'defence', 'Defence', 'DEFENCE', or whatever you can do modeStyle := Lowercase(modeStyle). It is just a technique thing and is a good habit. Nice job :D.

- Dusk412


if you read a few posts up i tested today and it…well jus trad my post further up

[ontopic] ill test the new version now see if that is any better then ill be back with my verdict i like the quantity of the script and it could be realy usefull to me at the mo

Dusk412

2008-07-25 19:05:20

@ the scar noob: that's what I meant lol, it was late. He knew what I meant and fixed it pretty well lol.

Okay Scaper so here is my problem right now (no offence to bobzilla69). He has good stuff in the script, don't get me wrong, but why is it that he has 6 yes votes when they only person (that I know of) who has tested it said that it doesn't work? Isn't it a requirement to submit a working script?

Scaper

2008-07-25 20:02:02

From: Dusk412
@ the scar noob: that's what I meant lol, it was late. He knew what I meant and fixed it pretty well lol.

Okay Scaper so here is my problem right now (no offence to bobzilla69). He has good stuff in the script, don't get me wrong, but why is it that he has 6 yes votes when they only person (that I know of) who has tested it said that it doesn't work? Isn't it a requirement to submit a working script?


true but it is also quality more than quantity,know;egdge etc etc the person himself over all like eager to learn (which he is) hi attitude ertc etc see what im saying??

and also im just about to tes the script now so ill be back with my vote soon

Scaper

2008-07-25 20:09:14

ok here is my verdict it choose to mine at the swamp walked from front of the castel got nere the fishing tutor and stoped im gunna test and tweak a lil more this is a good overall script from what i have see

Welcome To Bobzilla69's'Random Skill Trainer

So Far Your Character Has:
Fished Around: 0 Shrimps
Mined Around: 0 Ores
Cut Around: 0 Logs
Attacked Around: 0 Chickens
This Has Happened For 1 Minutes and 24 Seconds

Number Of Times Trained A Skill
Attack: 0
Mining: 1
Fishing: 0
Woodcutting: 0

Please Post Report

Script terminated due to failsafe
Please post skill training and failsafe
FailSafe: could not find mining tutor
NextPlayer
Yes from me nice work man jus needs a few more fail safes:)

here is some of the scripts stats proves it works sort of



edit ok it needs better finding skills doesnt find the fishing tutor,doesnt find the mining tutor the only thing it has sucesfuly got to and started traing was woodcuting havent tried the fighting skill the walking is very buggy but this solves the problem by 99%



procedure WalkToChickens;  //walks from lumbridge to chicken pen (NE)
begin
If(not(LoggedIn))then Exit;
RoadColor:=FindLumbyRoadColor;
RadialRoadWalk(RoadColor, 80, 110, 60, 0, 0);
Wait(500 + random(300));
if(not(RadialRoadWalk(FindBridgeColor, 50, 90, 65, 0, 0)))then
begin
RadialRoadWalk(RoadColor, 40, 120, 80, 0, 0);
end;
Wait(500 + random(300));
RadialRoadWalk(RoadColor, 400, 430, 50, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindDirtRoadColor, 330, 390, 70, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindDirtRoadColor, 350, 300, 70, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 300, 400, 70, 0, 0);
Wait(500 + random(300));
if(not(FindSymbol(x, y, 'churn')))then
begin
RadialRoadWalk(RoadColor, 280, 400, 65, 0, 0);
end;
Wait(500 + random(300));
RadialRoadWalk(RoadColor, 320, 400, 35, 0, 0);
Wait(500 + random(300));
end;

RoadColor:=FindLumbyRoadColor;

Bobzilla69

2008-07-26 03:35:47

ty, i know the walking can be buggy, since the last update where the road colors changed its been a real pain in the back side.

but i will spend today seeing if i can improve it more.

and as for the
RoadColor:=FindLumbyRoadColor;
thats weird that that workd better than just
FindLumbyRoadColor

Edit:

Yet another fixed one.

i tested and worked fine for me

//Welcome To Bobzilla69's Random Skill Trainer.
//I created this script to help level up new account
//The script will randomly choose one of the 4 skill
//and train the account on that for 30 minutes
//This is due to the home teleport requiring 30 min to recharge
//once the 30 min is up it will teleport home
//and the script will start again training another random skill
//There is a chance that it will train the same skill

//The walking and pickup of required tools for skill can be buggy
//I recomend wearing 3 bits of armour including a weapon
//I also recomend using FireFox as i have had less errors using it

//This script is for new accounts that have been created

//I would like to thank NaumanAkhlaQ for his tutorial on TPA's and
//I also want to thank BobboHobbo for his tutorial on DDTM walking
//I also want to thank King Vash for helping me with auto coloring.
//Thanks to Wizzup? for helping me with my scipting

//And a big thanks to the whole SRL team for making this libary

//Have not used script with SMART yet but should work, i hope

Program MultiSkiller;
//{.include SRL\SRL\Misc\smart.scar}
{.include SRL\SRL.scar}
{.include SRL\SRL\skill\Fishing.scar}
{.include SRL\SRL\skill\Mining.scar}
{.include SRL\SRL\skill\Magic.scar}
{.include SRL\SRL\skill\Fighting.scar}
{.include SRL\SRL\skill\Woodcutting.scar}


const YourSRLID = ''; //srl stats id
const YourSRLPassword = ''; //srl stats password
const SymbolColor = 11971761; //Gray of the symbol color
const mode = 1; //attack style 1:attack, 2:strength, 3:defence, 4:control

var
//Main program Variables
x, y, i, Timer ,FailSafe, f, m, w, a, s1, s2, s3, s4,
GateColor, WalkNumber, ChatText:integer;
failedTrigger, modeStyle, Skill:string;

//TPA variables
SearchColor:integer;
SearchText:String;

Procedure DeclarePlayers;
begin
HowManyPlayers := 3;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //UserName
Players[0].Pass := ''; //Password
Players[0].Nick := ''; //3 or 4 letter from your username
Players[0].Active :=True;

Players[1].Name := ''; //UserName
Players[1].Pass := ''; //Password
Players[1].Nick := ''; //3 or 4 letter from your username
Players[1].Active :=True;

Players[2].Name := ''; //UserName
Players[2].Pass := ''; //Password
Players[2].Nick := ''; //3 or 4 letter from your username
Players[2].Active :=True;

end;


//auto colors the sand road below lumbridge (NOT WORKING)
Function MyFindSandColor:Integer;
var
i, Tcolor, Red, Green, Blue, color:integer;
colorArray : Tpointarray;
begin
Result := 0;
color := 6325135;
FindColorsTolerance(colorArray, color, MMX1, MMY1, MMX2, MMY2, 60);
for i := 0 to high(colorArray) do
if rs_OnMinimap(colorArray[i].x,colorArray[i].y) then
begin
TColor := GetColor(colorArray[i].x,colorArray[i].y);
colortoRGB(Tcolor, Red, Green, Blue);
if (Blue>=90) and (Blue<=102) then
if (Green>=116) and (Green<=145) then
if (Red>=134) and (Red<=152) then
begin
Result := Tcolor
Writeln('Sand Color Found! :'+ IntToStr(Tcolor));
Exit;
end;
end;
end;

//find objects

Function FindObjects(SearchColor:Integer; SearchText:String; WhatToDo:String):Boolean;
Var
Bx, By : Integer;
TPA : Array Of TPoint;
ATPA, ObjectTPA : T2DPointArray;
I : Integer;
Begin
FindColorsSpiralTolerance(Bx, By, TPA, SearchColor, MSX1, MSY1, MSX2, MSY2, 15);
ObjectTPA := TPAtoATPAEx(TPA, 20, 20);
SortATPAFromFirstPoint(ObjectTPA, Point(MSCX, MSCY));
Begin
For I := 0 To High(ObjectTPA) Do
If MiddleTPAEx(ObjectTPA[i], Bx, By) Then
begin
MMouse(Bx, By, 0, 0);
Wait(100 + Random(100));
If IsUpText(SearchText) Then
Begin
Mouse(Bx, By, 0, 0, False);
GetMousePos(x, y);
ChooseOption(WhatToDo);
Flag;
Result := True;
Exit;
end else
begin
Result := False;
//Exit;
end;
end;
end;
end;

// fail safe walking, implementing for getting to certain locations
function FailSafeWalking(WalkNumber:Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
case WalkNumber of
1: begin
dtmMainPoint.x := 925;
dtmMainPoint.y := 277;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWaterColor;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 925;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWaterColor;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 860;
dtmSubPoints[1].y := 293;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindLumbyRoadColor;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 859;
dtmSubPoints[2].y := 279;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindLumbyRoadColor;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 849;
dtmSubPoints[3].y := 264;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindLumbyRoadColor;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 833;
dtmSubPoints[4].y := 263;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := FindLumbyRoadColor;
dtmSubPoints[4].Tolerance := 0;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
2: begin
dtmMainPoint.x := 1095;
dtmMainPoint.y := 376;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 195836;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 1095;
dtmSubPoints[0].y := 376;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 195836;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 1119;
dtmSubPoints[1].y := 363;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWaterColor;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 1121;
dtmSubPoints[2].y := 378;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWaterColor;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 1118;
dtmSubPoints[3].y := 397;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWaterColor;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 1118;
dtmSubPoints[4].y := 387;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := FindWaterColor;
dtmSubPoints[4].Tolerance := 0;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
end;
end;


function DDTMWalking: Boolean;
var
WalkDTM: integer; // Calls the WalkDTM making walking simpler.
begin
WalkDTM := FailSafeWalking(WalkNumber); //Load which DDTM you want to find.
case WalkNumber of
1: begin
if FindDTM(WalkDTM, x, y, MMX1,MMY1,MMX2,MMY2) then // Find the DDTM using Find DTM
begin
Mouse(x - 30, y, 8, 8, True);
WriteLn('Walking to Woodcutting tutor complete');
FFlag(0);
Result := True; // If succesfully finds it will click it and wait to flag is gone.
end;
end;
2: begin
if FindDTM(WalkDTM, x, y, MMX1,MMY1,MMX2,MMY2) then // Find the DDTM using Find DTM
begin
Mouse(x , y, 8, 8, True);
WriteLn('Walking to FishingTutor tutor complete');
FFlag(0);
Result := True; // If succesfully finds it will click it and wait to flag is gone.
end;
end;

end;


end;

Procedure AntiBan; //diffrent antiban for each skill
begin
if (Skill = 'Fishing')then
begin
case Random(14) of
2: HoverSkill('fishing', False);
5: PickUpMouse;
9: Wait(2500 + random(1000));
11: BoredHuman;
13: FindNormalRandoms;
end;
end;
if (Skill = 'Attack')then
begin
case Random(14) of
2: BoredHuman;
5: PickUpMouse;
9: HoverSkill(modeStyle, False);
11: Wait(2000 + random(1000));
13: FindNormalRandoms;
end;
end;
if (Skill = 'Mining') then
begin
case Random(14) of
2: HoverSkill('mining', False);
5: Wait(2000 + random(1000));
9: BoredHuman;
11: PickUpMouse;
13: FindNormalRandoms;
end;
end;
if(Skill = 'Woodcutting')then
begin
case Random(14) of
2: FindNormalRandoms;
5: PickUpMouse;
9: BoredHuman;
11: Wait(2000 + random(1000));
13: HoverSkill('woodcutting', False);
end;
end;
end;

procedure Report;
begin
ClearDebug;
SRLRandomsReport;
WriteLn('Welcome To Bobzilla69''s''Random Skill Trainer');
WriteLn('');
WriteLn('So Far Your Character Has: ');
WriteLn(' Fished Around: ' +IntToStr(f)+' Shrimps');
WriteLn(' Mined Around: ' +IntToStr(m)+' Ores');
WriteLn(' Cut Around: ' +IntToStr(w)+' Logs');
WriteLn(' Attacked Around: ' +IntToStr(a)+' Chickens');
WriteLn('This Has Happened For ' +TimeRunning);
WriteLn('');
WriteLn('Number Of Times Trained A Skill');
WriteLn(' Attack: ' +IntToStr(s1));
WriteLn(' Mining: ' +IntToStr(s3));
WriteLn(' Fishing: ' +IntToStr(s4));
WriteLn(' Woodcutting: ' +IntToStr(s2));
WriteLn('');
WriteLn('Please Post Report');
WriteLn('');
SendSRLReport;
end;

Procedure FightCheck; //checks for fight random and runs away
begin
FindNormalRandoms;
if FindFight then
begin
RunAway('N', true, 1, 2500);
end;
end;


procedure DropItems;
begin
i:=1;
while(i<28) do
begin
i:=i+1
DropItem(i);
FightCheck;
FindNormalRandoms;
end;
end;

procedure Failed;
begin
if(not(LoggedIn))then Exit;
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
NextPlayer(False);
end;

procedure Tele; //teleports home after 30 min of training
begin //on a random skill, script will then
if(not(LoggedIn))then Exit;
If not CastSpell(1) then //randomly choose another skill
begin
failedTrigger:='could not cast home teleport';
Failed;
end;
Wait(30000 + random(1500));
DropAll;
Logout;
Wait(10000 + random(5500));
end;

Procedure GetNet;
begin
If(not(LoggedIn))then Exit;
FailSafe:= 0;
if FindSymbol(x, y, 'guide') then
begin
Mouse(x, y, 2, 2, True);
end else
Mouse(625, 108, 5, 5, true);
Flag;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects(11566704, 'ishing', 'alk')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find fishing tutor';
Failed;
end else
Flag;
Wait(2500 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('et fishing', Clickleft);
Wait(1500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(1500 + random(1000));
end;

Procedure WalkToFish; //walks from lumbridge to fishing spot
begin
If(not(LoggedIn))then Exit;
FailSafe:= 0;
RadialRoadWalk(FindLumbyRoadColor, 110, 80, 60, 1, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 160, 210, 66, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(MyFindSandColor, 185, 120, 58, 0, 0);
Wait(500 + random(300));
repeat
RadialWalk(MyFindSandColor, 110, 215, 74, 0, 0);
Wait(500 + random(300));
FailSafe:= FailSafe + 1;
Until(FindSymbol(x, y, 'fish') or (FailSafe = 2));
WalkNumber:= 2;
DDTMWalking;
GetNet;
FindSymbol(x, y, 'fish');
Mouse(x, y, 4, 2, True);
Flag;
end;

procedure GetPic; //gets a pickaxe for mining
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects(11518154, 'ining', 'alk')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find mining tutor';
Failed;
end else
Flag;
Wait(2000 + random(1000));
FindNPCChatText('ining', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(500 + random(1000));
FindNPCChatText('here to continue', Clickleft);
Wait(500 + random(1000));
end;

Procedure WalkToMine; //walks from lumbridge to mining area
begin
If(not(LoggedIn))then Exit;
FailSafe:= 0;
RadialRoadWalk(FindLumbyRoadColor, 100, 82, 60, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 160, 210, 66, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(MyFindSandColor, 120, 184, 56, 0, 0);
Wait(500 + random(300));
repeat
RadialWalk(MyFindSandColor, 250, 150, 70, 0, 0);
Wait(500 + random(300));
FailSafe:= FailSafe + 1;
Until(FindSymbol(x, y, 'mining site') or (FailSafe = 4));
FailSafe:= 0;
FindSymbol(x, y, 'mining site');
Mouse(x, y, 4, 2, True);
Wait(500 + random(300));
Flag;
If(not(FindSymbol(x, y, 'mining site')))then
begin
RadialWalk(SymbolColor, 170, 340, 75, 0, 0);
Wait(500 + random(300));
end;
end;

Procedure GetAxe; //gets axe for woodcutting
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
until((FindObjects(5406267, 'oodcutting', 'alk')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find woodcutting tutor';
Failed;
end else
Flag;
Wait(2500 + random(2000));
FindNPCChatText('oodcutting', Clickleft);
wait(800 + random(1000));
FindNPCChatText('teach me the basics', Clickleft);
FindNPCChatText('already know a bit', Clickleft);
FindNPCChatText('an advanced', Clickleft);
Wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
FindNPCChatText('here to continue', Clickleft);
wait(800 + random(1000));
end;

Procedure WalkToTrees; //walks from lumbridge to woods
begin
If(not(LoggedIn))then Exit;
FailSafe:=0;
RadialRoadWalk(FindLumbyRoadColor, 50, 120, 60, 1, -1);
Wait(500 + random(300));
repeat
RadialRoadWalk(FindLumbyRoadColor, 360, 300, 50, 0, 1);
FailSafe:= FailSafe + 1;
Wait(500 + random(300));
until(FindSymbolIn(x, y, 'shop', MMX1, MMY1, MMX2, MMY2)or FindSymbolIn(x, y, 'furnace', MMX1, MMY1, MMX2, MMY2) or (FailSafe = 2))
WalkNumber:=1; //walking to woodcutting tutor using ddtm
DDTMWalking;
if FindSymbolIn(x, y, 'Guide', 590, 69, 631, 100)then
begin
Mouse(x, y, 1, 1, true);
Flag;
end;
Wait(500 + random(300));
GetAxe;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 260, 270, 60, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 250, 350, 60, 0, 0);
Wait(500);
Mouse(575, 90, 17, 10, True);
Wait(500 + random(300));
Flag;
end;

procedure WalkToChickens; //walks from lumbridge to chicken pen (NE)
begin
If(not(LoggedIn))then Exit;
RadialRoadWalk(FindLumbyRoadColor, 80, 110, 60, 0, 0);
Wait(500 + random(300));
if(not(RadialRoadWalk(FindBridgeColor, 50, 90, 65, 0, 0)))then
begin
RadialRoadWalk(FindLumbyRoadColor, 40, 120, 80, 0, 0);
end;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 400, 430, 50, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindDirtRoadColor, 320, 390, 70, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindDirtRoadColor, 350, 300, 70, 0, 0);
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 300, 400, 70, 0, 0);
Wait(500 + random(300));
if(not(FindSymbol(x, y, 'churn')))then
begin
RadialRoadWalk(FindLumbyRoadColor, 280, 400, 65, 0, 0);
end;
Wait(500 + random(300));
RadialRoadWalk(FindLumbyRoadColor, 320, 400, 35, 0, 0);
Wait(500 + random(300));
end;

procedure CheckGate;
begin
If(not(LoggedIn))then Exit;
Wait(1000);
GateColor:=220; //checks if chicken pen gate is open
repeat
GateColor:= GateColor + 1;
Until(FindColorSpiral(x, y, GateColor, 615, 66, 629, 110)or (GateColor = 340))
Mouse(x - 4, y, 0, 0, true);Flag;
Wait(1500 + random(1500));
MakeCompass('W');
if FindObjEx(x, y, ['lose'], [5005424], 60, MSCX, MSCY, 1, 158, 118, 412, 233) then
begin
MakeCompass('N');
Exit;
end
else
begin
if FindObjEx(x, y, ['pen'], [5005424], 60, MSCX, MSCY, 1, 168, 73, 297, 194) then
begin
Mouse(x, y, 2, 2, True);
MakeCompass('N');
Flag;
Wait(500 + random(500));
end;
end;
end;

Procedure IntoPen; //enters chicken pen if gate is open
begin
If(not(LoggedIn))then Exit;
if FindSymbol(x, y, 'churn')then
begin
Mouse(x + 15, y - 15, 2, 2, True);
end
else
begin
Mouse(609, 77, 4, 3, True);
Flag;
Wait(500 + random(300));
end;
end;

procedure StartAttacking; //attacks chickens for 30 min
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects(924026, 'ttack Chicken', 'hicken')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find chicken';
Failed;
end else
Flag;
Wait(2000 + random(1000));
AntiBan;
FindNormalRandoms;
Wait(2000 + random(1000));
if FindColor(x, y, 65280, 260, 140, 270, 150)then
begin
FindNormalRandoms;
a:= a + 1;
ReportVars[7] := + 1;
repeat
wait(1500 + random(1500));
FindNormalRandoms;
until(not (InFight));
end;
Report;
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end else
StartAttacking;
end;

Procedure StartMining; //mines for 30 min
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects(5011106, 'ine', 'ine')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find rock';
Failed;
end else
MMouse(x, y, 2, 2);
Wait(2500 + random(1500));
FindGas(x, y);
FightCheck;
AntiBan;
ChatText:=0;
repeat
Wait(2500 + random(1500));
FightCheck;
AntiBan;
ChatText:=ChatText + 1;
until(FindBlackChatMessage('mine some') or (ChatText = 3));
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(200));
DropItems;
FightCheck;
m:= m + 27;
ReportVars[5] := + 27;
Report;
StartMining;
end;
StartMining
end;


procedure StartFishing; //fishes for 30 min
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects(11181976, 'ishing spot', 'et')) or (FailSafe = 20));
if FailSafe = 20 then
begin
failedTrigger:='could not find fishing spot';
Failed;
end else
MMouse(x, y, 2, 2);
Flag;
Wait(500 + random(100));
if FindObj(x, y, SearchText, SearchColor, 20) then
HandleWhirlPool;
Wait(3000 + Random(1000));
FightCheck;
ChatText:=0;
repeat
Wait(3500 + Random(1530));
AntiBan;
FightCheck;
ChatText:=ChatText + 1;
until(FindBlackChatMessage('catch some') or (ChatText = 3));
Wait(3000 + Random(1500));
FightCheck;
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(100));
DropItems;
FightCheck;
f:= f + 27;
ReportVars[4] := + 27;
Report;
StartFishing;
end;
StartFishing
end;

procedure StartWoodcutting; //cuts wood for 30min
begin
FailSafe:= 0;
repeat
If(not(LoggedIn))then Exit;
FailSafe:= FailSafe + 1;
wait(200 + random(200));
Until((FindObjects(7649194, 'Tree', 'hop')) or (FailSafe = 10));
if FailSafe = 10 then
begin
failedTrigger:='could not find tree';
Failed;
end else
x:= 274; //center of main screen
y:= 161; //center of main screen
Wait(600 + Random(600));
FindObjEx(x, y, ['down Tree'], [7649194], 60, MSCX, MSCY, 1, 168, 73, 297, 194);
MMouse(x, y, 2, 4);
FindEnt(x, y, True);
Wait(2500 + random(1000));
FightCheck;
AntiBan;
Wait(2000 + random(1000));
FightCheck;
ChatText:=0;
repeat
Wait(2500 + random(1000));
FightCheck;
AntiBan;
ChatText:=ChatText + 1;
until(FindBlackChatMessage('get some') or (ChatText = 4));
if(TimeFromMark(Timer) >= 1800000) then
begin
Tele;
end;
if InvFull then
begin
GameTab(4);
Wait(250 + random(200));
DropItems;
FightCheck;
w:= w + 27;
ReportVars[6] := + 27;
Report;
StartWoodcutting;
end;
StartWoodcutting;
end;

Function SkillTraining(Skill:String):Boolean; //procedure for attacking
begin
case Skill of
'Attack':
begin
If(not(LoggedIn))then Exit;
Wait(500 + random(100));
WriteLn('Training Attack');
SetFightMode(mode);
s1:= s1 + 1;
ReportVars[0] := + 1;
Wait(500 + random(100));
WalkToChickens;
CheckGate;
IntoPen;
MakeCompass('N');
MarkTime(Timer);
StartAttacking;

end;
'Woodcutting': //procedure for cutting wood
begin
If(not(LoggedIn))then Exit;
Wait(500 + random(100));
WriteLn('Training Woodcutting');
s2:= s2 + 1;
ReportVars[3] := + 1;
Wait(500 + random(100));
WalkToTrees;
MarkTime(Timer);
StartWoodcutting;

end;
'Mining': //procedure for mining
begin
If(not(LoggedIn))then Exit;
Wait(500 + random(100));
WriteLn('Training Mining');
s3:= s3 + 1;
ReportVars[2] := + 1;
Wait(500 + random(100));
WalkToMine;
GetPic;
MarkTime(Timer);
StartMining;

end;
'Fishing': //procedure for fishing
begin
If(not(LoggedIn))then Exit;
Wait(500 + random(100));
WriteLn('Training Fishing');
s4:= s4 + 1;
ReportVars[1] := + 1;
Wait(500 + random(100));
WalkToFish;
MarkTime(Timer);
StartFishing;

end;
end;
end;

Procedure RandomSkillToTrain; //randomly selects skill to train
begin
If(not(LoggedIn))then Exit;
WriteLn('Choosing Random Skill to Train........');
case Random(4) of
0: Skill:= 'Attack';
1: Skill:= 'Woodcutting';
2: Skill:= 'Fishing';
3: Skill:= 'Mining';
end;
end;

Procedure MainLoop; //gets screen set up and starts the script
begin
LoginPlayer;
MakeCompass('N');
SetAngle(True);
if (mode = 1) then modeStyle:= 'Attack';
if (mode = 2) then modeStyle:= 'Strength';
if (mode = 3) then modeStyle:= 'Defence';
if (mode = 4) then
begin
case random(3) of
0: modeStyle:= 'Defence';
1: modeStyle:= 'Attack';
2: modeStyle:= 'Strength';
end;
end;
GameTab(4);
Skill:= 'Attack';
SkillTraining(Skill);
repeat
If not LoggedIn then
begin
NextPlayer(False);
MainLoop;
end;
until(False);
end;

begin
SetUpSRL;
Wait(500);
DeclarePlayers;
ScriptID := '351';
SRLID := YourSRLId;
SRLPassword := YourSRLPassword;
MainLoop;
end.

Scaper

2008-07-26 06:49:36

nope still doesnt walk for mw with radialwalk(findlumbyroadcolor,,,,,,)

works with

roadcolor:=FindlumbyRoadcolor;

:s

Bobzilla69

2008-07-26 07:14:47

thats very weird, its not like its completely different.

ok well the only option is to make an auto color for that as well then

the scar noob

2008-07-26 08:51:49

From: bobzilla69
thats very weird, its not like its completely different.

ok well the only option is to make an auto color for that as well then


Just make a habit from it to load everything in a var, also when using in a loop.
Like usage of ddtm, first load it in var then use that var, same with autocolor etc;)

-Tsn.

Claymore

2008-07-27 00:57:46

LOL Scaper… You forgot this

RoadColor := FindLumbyRoadColor;
if (RoadColor <= 0) then
RoadColor := FindRoadColor;

A major failsafe! This is what i used in my scripts.

RoadColor := SearchRoadColor; //My own Auto-Color
if (RoadColor := 0) then
RoadColor := FindVarrockRoadColor;
if (RoadColor := 0) then
RoadColor := FindRoadColor;
// Walking RRWs and stuff//
if (not (RRW…)) and (RoadColor := 0) then
LogOut;

Scaper

2008-07-27 03:33:46

From: Deathscytex
LOL Scaper… You forgot this

RoadColor := FindLumbyRoadColor;
if (RoadColor <= 0) then
RoadColor := FindRoadColor;

A major failsafe! This is what i used in my scripts.

RoadColor := SearchRoadColor; //My own Auto-Color
if (RoadColor := 0) then
RoadColor := FindVarrockRoadColor;
if (RoadColor := 0) then
RoadColor := FindRoadColor;
// Walking RRWs and stuff//
if (not (RRW…)) and (RoadColor := 0) then
LogOut;


hey hey now i was tiredi stated on the prevouse page i were going to work for 9 hrs then i cam home and tested this at

Yesterday, 01:09 AM

give me a break lol:duh::(h)::f:

Negaal

2008-07-27 06:34:39

I'd say this script sucks. It's really missing some failsafes, badly organized, there's lot's of stuff what can be made easier, But IMO you've tried pretty many times and seen lot of pain on making this..So yes from me, Good luck.

Negaal

2008-07-27 06:41:06

I have to point this out.

You do it like that


failedtrigger:= 'Helloworld';
Failed;


procedure Failed;
begin
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
nextplayer(false);
if(not(LoggedIn))then
begin
TerminateScript;
end else
end;

But you can make failedtrigger as function input variable..



Failed('Helloworld');


procedure Failed(failedTrigger : String);
begin
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
nextplayer(false);
if(not(LoggedIn))then
begin
TerminateScript;
end else
end;

You were using same technique at object searching function, doing like I showed you, could make it bit shorter and easier.

BobboHobbo

2008-07-27 06:45:42

From: Negaal
I have to point this out.

You do it like that


failedtrigger:= 'Helloworld';
Failed;


procedure Failed;
begin
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
nextplayer(false);
if(not(LoggedIn))then
begin
TerminateScript;
end else
end;

But you can make failedtrigger as function input variable..



Failed('Helloworld');


procedure Failed(failedTrigger : String);
begin
Report;
WriteLn('Script terminated due to failsafe');
WriteLn('Please post skill training and failsafe ');
WriteLn('FailSafe: ' +failedTrigger);
Logout;
nextplayer(false);
if(not(LoggedIn))then
begin
TerminateScript;
end else
end;

You were using same technique at object searching function, doing like I showed you, could make it bit shorter and easier.


Agreed. Its a no, you need FAILSAFE's on your RadialWalking..

Camaro'

2008-07-28 10:08:21

From: the scar noob
:O That was sooo totally the idea I had in mind, ask cnr sport etc:p

-Tsn.


TSN just got pwned! lols it definitly was his idea, well, too bad so sad. Well guess where doing are "new" idea, not mentioning to public cause well i just dont want too :spot: :spot: :spot: :spot:

Nava2

2008-07-29 09:53:53

Yes, no, maybe so.

Ugh, I'm with holding my vote, the script doesn't impress me but you are learning which is good.

The script is a good concept, but it needs more functions, failsafes, and other simple pleasures :)

Still holding my vote.

Nava2

Bobzilla69

2008-07-29 11:09:50

hi all,

just a note to say i am not updating the script for at least a week or so due to work.

will still be active on forums but thats it for now.

Hobbit

2008-07-30 03:40:15

The poll has closed.

8 Yes
10 No

Sorry.
Please take the tips people have given you here and apply them to your script and reapply in time of 2 weeks. It was so close there is no need to wait a month. But please keep at it and don't give up! :)

Cheers,
Hobbit.