SRL Archive - Archive

Frt - SRL Member Application Form


Frt

2009-02-05 07:54:50

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

What is the meaning to life?


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


Programming Knowledge
PHP

Other Communitys
Sythe

How Long have You Played Runescape
2 years with breaks.

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

I've been home the last two weeks which I'v spend on learning SRL.
I already had some basic knowledge about Scar since I have used the program for other games on the internet. To explain this I've made some basic programs for Facebook applications like Pet Society and some MafiaGames on the internet (MafiaFamily).

I've currently been working on a Tut-runner but got stuck on the fighting part. Haven't had time atm to get it done (:

I've just started learning reflection and I'm hoping to master this in a couple of months.

Well, that's about all I had to say about myself. (:

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

EDIT: I have updated the code for the Chopper and added my tutRunner.

// Made by Frt
//
// INSTRUCTIONS:
// Stand in an area with a lot of the trees you want to cut.
// Fill in the const.
// Have your axe in the firstspot in the inventory. Don't have anything else.
// There is no Axe-finder so don't use an expensive axe since it won't find it.
// There is a safeguard against fights so you don't risk dying.
//
// Don't blaim me if you get banned using this auto!

program PowerChopper;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/woodcutting.scar}

const
YourID = ''; // SRL User
YourPW = ''; // SRL Pass
TreeColor = 4097400; // Speaks for itself.
MaxCuttingTime = 30000; // How long in ms before moving on to another tree
Chop = 'Tree'; // Tree, Oak, Willow etc.
Draynor = True; // If true, it will bank instead of drop. You have to start in Draynor bank at the first banker!

var
x,y,Inventory,Road,i,times,tp,Logs: integer;

Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Integers[0] := 300; // Amount of logs to cut.
Players[0].Active := True;
end;

Procedure AntiBan;
begin
if (not (LoggedIn)) then
Exit;
if (not (LoggedIn)) then
Exit;
case random(4) of
0: PickUpMouse;
1: RandomMovement;
2: RandomRClick;
3: case random(4) of
0: HoverSkill('Fishing', false);
1: HoverSkill('Cooking', false);
2: HoverSkill('Woodcutting', false);
3: HoverSkill('Firemaking', false);
end;
end;
end;

Function Runner(Way: Boolean): Boolean;
begin
if (not (LoggedIn)) then
Exit;
if (Draynor) then
begin
Road := 7302775;
// to Trees
if (Way = True) then
begin
begin
if (not (RadialWalk(Road, 0, 90, 70, 1, -1))) then
RunTo('N', True);
if (not (RadialWalk(Road, 0, 80, 60, 1, -1))) then
RunTo('N', True);
if (not (RadialWalk(Road, 270, 360, 40, 1, -1))) then
RunTo('W', True);
if (FindSymbol(x, y, 'dungeon')) then
begin
Mouse(x - 5, y + 5, 5, 5, true);
FFlag(5);
end;
Wait(1500+Random(500));
end;
end;
// To Bank
if (Way = False) then
begin
if (FindSymbol(x, y, 'dungeon')) then
begin
Mouse(x + 5, y - 5, 5, 5, True);
FFlag(5);
end else
Runto('W', True);
if (not (RadialWalk(Road, 0, 110, 40, 1, -1))) then
RunTo('E', True);
if (not (RadialWalk(Road, 45, 90, 30, 1, -1))) then
RunTo('S', True);
if (not (RadialWalk(Road, 120, 310, 70, 1, -1))) then
RunTo('S', True);
if (not (RadialWalk(Road, 120, 310, 70, 1, -1))) then
RunTo('S', True);
if (FindSymbol(x, y, 'bank')) then
begin
Mouse(x, y, 4, 4, True);
FFlag(5);
end else
Runto('W', True);
end;
end;
end;

procedure Drop;
var
i: Integer;
begin
if (not (LoggedIn)) then
Exit;
for i:= 2 to 28 do
begin
DropItem(i);
Wait(500+Random(500));
end;
end;


Procedure Bank;
begin
if (not (LoggedIn)) then
Exit;
Runner(False);
Wait(2500+Random(500));
i := 0;
repeat
if (FindSymbol(x, y, 'bank')) then
Mouse(x,y,1,1,true);
OpenBankFast('draynor');
Wait(500+Random(1000));
Deposit(2,28,true);
Wait(500+Random(1000));
CloseBank;
Wait(1000+Random(500));
i := i + 1;
if (i = 10) then
begin
Writeln('Could not find bank. Terminating script...');
TerminateScript;
end;
until(InvFull = False);
AntiBan;
if(FindSymbol(x,y,'bank')) then Mouse(x,y,1,1,true);
Runner(True);;
end;

Procedure ChopDrop;
begin
if (not (LoggedIn)) then
Exit;
MarkTime(tp);
if (FindColorTolerance(x, y, TreeColor, 1, 1, 515, 250, 2)) then
begin
MMouse(x , y, 1, 1);
Wait(1000+Random(500));
if (IsUpText(Chop)) then
begin
Mouse(x, y, 1, 1, False);
ChooseOption('Chop');
Repeat
FindBirdsNest;
AntiBan;
if (FindFight) then
RunAway('S', True, 1, 4000 + random(2000));
Wait(1000+Random(1000));
if (TimeFromMark(tp) > MaxCuttingTime) then
Break;
Until(Invcount = Inventory + 1);
Logs := Logs + 1;
Inventory := InvCount;
if (Inventory = 28) then
begin
if Draynor then
begin
Bank;
end else Drop;
Writeln('Logs cutted: ' + IntToStr(Logs));
Writeln('Runtime: ' + TimeRunning);
AntiBan;
end;
Wait(2000+Random(500));
end;
end;
end;

begin
SetupSRL;
ActivateClient();
ClearDebug;
Lampskill := 'woodcutting';
DeclarePlayers;
LoginPlayer;
SetAngle(True);
MakeCompass('N');
Runner(True);
repeat
ChopDrop;
until (AllPlayersInactive); // Repeats till all players are Inactive
end.

Runtime Log:
Logs cutted: 55
Runtime: 24 Minutes and 48 Seconds

Next script is my tutorial runner, which I got gut stuck at by the fighting part. Would like if you took a look at that one too.

program TutRunner;
{.include SRL/SRL.scar}
{.include SRL/SRL/Misc/users.scar}
{.include SRL/SRL/skill/Smithing.scar}
{.include SRL/SRL/skill/Fighting.scar}

const
Arrow = 3585227;
ArrowMap = 2357498;
DoneBar = 10118512;
Tree = 2634566;
XpTab = 2910245;
RoadScreen = 6649727;
Fire = 7720182;
Range = 1319581;
FenceMap = 15396332;
Furnace = 2242984;
Rat = 7963523;

var
x, y, i, n, b: integer; // Misc
RoadColour: integer;

function W(Waiter:integer): Boolean;
begin
Wait(Waiter + Random(1000));
end;

function Chooser(UpText, ChooseText: string): Boolean;
begin
n := 0;
repeat
if (FindColorTolerance(x, y, Arrow, 2, 2, 500, 400, 5)) then
begin
MMouse(x, y + 20 + Random(10), 5, 5);
if (IsUpText(UpText)) then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, False);
W(500);
if (ChooseOption(ChooseText)) then Break;
W(2000);
end;
end;
Wait(150);
n := n + 1;
until(n = 5);
W(1000);
end;

function DropMany(maxc:integer):Boolean;
begin
repeat
maxc := maxc + 1;
if (ExistsItem(maxc)) then
begin
DropItem(maxc);
W(500);
end;
until(maxc = 28);
end;

function OpenGate(name, D: string): Boolean;
begin
i := 0;
MakeCompass('N');
repeat
if (not (LoggedIn)) then Break;
if (FindColorTolerance(x, y, Arrow, 2, 2, 500, 400, 5)) then
begin
MMouse(x - 5, y + 30, 5, 5);
W(500);
if (IsUpText(name)) then
begin
Mouse(x - 5, y + 30, 5, 5, true);
W(3500);
Break;
end else
begin
MakeCompass(D);
W(1000);
end;
end;
Wait(100 + Random(100));
i := i + 1;
until(i = 20);
MakeCompass('N');
W(1000);
end;

function WalkToMap(A1, A2, A3, A4, A5:integer):Boolean;
var
a:integer;
begin
i := 0;
repeat
if (not (LoggedIn)) then Break;
if (not (RadialWalk(ArrowMap, A1, A2, A3, A4, A5))) then
begin
Wait(100+Random(100));
end else Break;
i := i + 1;
W(500);
until(i > 5);
W(1000);
end;


function FindIns:Boolean;
begin
i := 0;
Writeln('Looking for instructor to talk with...');
repeat
if (not (LoggedIn)) then Break;
if (ClickContinue(true, true)) then Break;
if (FindColorTolerance(x, y, Arrow, 2, 2, 500, 400, 5)) then
begin
MMouse(x, y+20+Random(10), 5, 5);
if (IsUpText('Talk')) then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, true);
end;
W(1500);
end;
Wait(50+Random(50));
i := i + 1;
until(i = 5);
Writeln('Found instructor and engaged conversation!');
W(1000);
end;

function FinishTalk:Boolean;
begin
Writeln('Talking with instructor...');
i := 0;
repeat
if (not (LoggedIn)) then Exit;
if (not (ClickContinue(true, true))) then Break;
i := i + 1;
W(1000);
until(i = 15);
Writeln('Finished talking with instructor!');
W(1000);
end;

// Introducer
procedure StepOne;
begin
if (not (LoggedIn)) then Exit;
FinishTalk;
FindIns;
FinishTalk;
// Click the Option Tab
W(1000);
Mouse(674, 483, 5, 5, true);
W(2000);
FindIns;
FinishTalk;
// Walk out of door
OpenGate('Door', 'E');
Writeln('Step one complete!');
Writeln(' ');
end;

// Woodcutting/Fishing
procedure StepTwo;
begin
// Walk To next instructor
WalkToMap(90, 270, 70, 1, -1);
i := 0;
repeat
FindIns;
FinishTalk;
// Backpack
Writeln('Wieving backpack...');
Mouse(642, 185, 5, 5, true);
W(1000);
i := i + 1;
if (InvCount = 2) then Break;
until(i = 5);
// Chop Tree
Writeln('Chopping trees...');
i := 0;
repeat
if (not (LoggedIn)) then Break;
if (i = 30) then Break;
x := 240;
y := 180;
if (FindColorSpiralTolerance(x, y, Tree, 2, 2, 500, 400, 5)) then
begin
MMouse(x+5, y-30, 5, 5);
if (IsUpText('Tree')) then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, true);
end;
W(5000);
end;
Wait(100+Random(100));
i := i + 1;
until(InvCount = 4);
W(1000);
DropMany(4);
i := 0;
// Check if leveled up.
repeat
if (not (LoggedIn)) then Break;
ClickContinue(true, true);
i := i + 1;
if (not (ClickContinue(true, true))) then Break;
until(i = 6);
W(500);
i := 0;
// Walk to empty spot and light a fire
Writeln('Lightning a fire...');
repeat
if (not (LoggedIn)) then Break;
x := 240+20;
y := 180+20;
if (FindColorSpiraltolerance(x, y, RoadScreen, 2, 2, 500, 400, 5)) then
begin
Mouse(x, y, 5, 5, true);
W(2000);
end;
MouseItem(2, true);
W(500);
MouseItem(3, true);
W(500);
i := i + 1;
if (InvCount = 3) then Break;
until(i = 30);
W(10000);
Mouse(245+Random(20), 435, 3, 3, true);
// Open XpTab
Writeln('Opening XpTab...');
Mouse(576, 187, 5, 5, true);
W(1000);
FindIns;
FinishTalk;
// Walk to fishing spot
Writeln('Walking to fishing spot...');
WalkToMap(90, 270, 60, 1, -1);
// Start fishing
writeln('Beginning to fish...');
repeat
if (not (LoggedIn)) then Break;
if (Invcount = 6) then Break;
if FindObjCustom(x, y, ['Net', 'et F', 't Fi'], [12828090, 11182231], 3) then
begin
Mouse(x, y, 5, 5, true);
i := 0;
W(8000);
i := i + 1;
end;
until(i = 20);
DropMany(6);
// Walk to empty spot and light a fire
x := 240+20;
y := 180+20;
Writeln('Lightning fire...');
repeat
if (not (LoggedIn)) then Break;
if (FindColorSpiraltolerance(x, y, RoadScreen, 2, 2, 500, 400, 5)) then
begin
Mouse(x, y, 5, 5, true);
W(2000);
end;
MouseItem(2, true);
W(500);
MouseItem(4, true);
W(500);
i := i + 1;
if (InvCount = 5) then Break;
until(i = 30);
W(10000);
Mouse(245+Random(20), 435, 3, 3, true);
W(500);
// Cook fish
i := 0;
n := 5;
Writeln('Cooking shrimps...');
repeat
if (not (LoggedIn)) then Break;
if (FindColorTolerance(x, y, ArrowMap, 530, 4, 700, 160, 5)) then Break;
if (not (ExistsItem(n))) then n := n + 1;
x := 240;
y := 180;
if (FindColorSpiralTolerance(x, y, Fire, 2, 2, 500, 400, 5)) then
begin
MouseItem(n, true);
W(1000);
Mouse(x, y, 3, 3, true);
W(2000);
end;
Wait(200+Random(100));
i := i + 1;
until(i = 10);
Mouse(245+Random(20), 435, 3, 3, true);
// Walk to gate
Writeln('Walking to gate...');
WalkToMap(180, 360, 65, 1, 1);
// Open Gate
OpenGate('ate', 'E');
Writeln('Step Two Completed!');
Writeln(' ');
W(1000);
end;

// Cook
procedure StepThree;
begin
WalkToMap(0, 360, 70, 1, 1);
OpenGate('oor', 'E');
repeat
if (InvCount = 7) then Break;
FindIns;
FinishTalk;
i := i + 1;
W(500);
until(i = 5);
i := 0;
repeat
if (InvCount = 8) then Break;
MouseItem(6, true);
W(1000);
MouseItem(7, true);
W(1000);
until(i = 5);
WalkToMap(90, 270, 50, 0, -1);
i := 0;
repeat
MouseItem(8, true);
W(1000);
MakeCompass('S');
if (FindColorTolerance(x, y, Range, 2, 2, 500, 400, 5)) then
begin
Mouse(x, y, 3, 3, true);
W(8000);
MouseItem(8, false);
W(500);
ChooseOption('rop');
W(500);
end;
i := i + 1;
if (InvCount = 7) then Break;
until(i = 6);
MakeCompass('N');
Mouse(252+Random(20), 433, 5, 5, true);
W(1000);
Mouse(742, 483, 5, 5, true);
W(1000);
WalkToMap(360, 90, 50, 1, 1);
OpenGate('oor', 'E');
Mouse(710, 483, 5, 5, true);
W(500);
Mouse(566+Random(130), 218+Random(200), 5, 5, true);
W(1000);
SetRun(true);
end;

// Quest-instructor
procedure StepFour;
begin
RoadColour := FindWaterColor;
RadialWalk(RoadColour, 270, 360, 80, 1, 1);
W(2000);
RadialWalk(RoadColour, 0, 10, 70, 1, 0);
W(2000);
RadialWalk(RoadColour, 90, 0, 70, 1, 0);
W(2000);
WalkToMap(0, 180, 70, -1, -1);
W(500);
OpenGate('oor', 'S');
WalkToMap(90, 270, 70, 1, 1);
FindIns;
FinishTalk;
Mouse(610, 186, 5, 5, true);
W(1500);
FindIns;
FinishTalk;
OpenGate('adder', 'S');
end;

// The Mine
procedure StepFive;
begin
RunAway('n', True, 3, 2000+Random(200));
WalkToMap(0, 360, 65, 1, 1);
// Talk to instructor
FindIns;
FinishTalk;
// Prospect tin
WalkToMap(0, 360, 65, 1, 1);
Chooser('Mine', 'Prospect');
W(1500);
// Prospect copper
WalkToMap(0, 360, 65, 1, 1);
Chooser('Mine', 'Prospect');
W(1500);
// Talk to instructor
repeat
if (InvCount = 8) then Break;
WalkToMap(0, 360, 60, 1, 1);
FindIns;
FinishTalk;
until(i = 5);
// Mine tin
i := 0;
repeat
if (InvCount = 9) then Break;
WalkToMap(0, 360, 60, 1, 1);
Chooser('Mine', 'Mine');
W(1500);
until(i = 5);
// Mine copper
i := 0;
repeat
if (InvCount = 10) then Break;
WalkToMap(0, 360, 60, 1, 1);
Chooser('Mine', 'Mine');
W(1500);
until(i = 5);
// Smelt Bronze bar
i := 0;
repeat
if (InvCount = 9) then Break;
WalkToMap(0, 360, 60, -1, -1);
MouseItem(9, true);
W(1000);
Chooser('urnace', 'se');
W(1500);
Mouse(233+Random(25), 432, 2, 2, true);
W(500);
i := i + 1;
until(i = 5);
i := 0;
// Talk to instructor to get hammer
repeat
if (InvCount = 10) then Break;
WalkToMap(0, 360, 65, 1, 1);
FindIns;
FinishTalk;
i := i + 1;
until(i = 5);
// Make dagger
i := 0;
repeat
WalkToMap(0, 360, 60, -1, -1);
W(500);
MouseItem(9, true);
W(500);
Chooser('Use', 'Use');
SmithItem('Dagger', '1');
W(1000);
Mouse(233+Random(25), 432, 2, 2, true);
MMouseItem(9);
i := i + 1;
if (IsUpText('ield')) then Break;
until(i = 5);
// Walk out of area
WalkToMap(0, 360, 65, -1, 0);
OpenGate('ate', 'E');
end;

// Combat
procedure StepSix;
begin
// Talk to instructor
WalkToMap(0, 360, 60, 1, 1);
FindIns;
FinishTalk;
// Gametab 6
Mouse(672, 187, 5, 5, true);
W(1000);
Mouse(611, 428, 5, 5, true);
W(1000);
// Equip Dagger
MouseItem(9, true);
W(500);
Mouse(491, 45, 3, 3, true);
// Talk to instructor
FindIns;
FinishTalk;
GameTab(4);
W(750);
// Equip Sword and shield
MouseItem(9, true);
W(500);
MouseItem(11, true);
W(1000);
// Gametab 1
Mouse(541, 183, 5, 5, true);
W(750);
// Go kill rat
b := 0;
repeat
// Enter cage
WalkToMap(0, 360, 60, 1, 1);
OpenGate('ate', 'E');
WalkToMap(0, 360, 60, 1, 1);
// Look for rat to attack
RunAway('E', True, 3, 2000+Random(200));
i := 0;
repeat
x := 240;
y := 180;
// Look and see if it's fighting
if (FindColorSpiralTolerance(x, y, Rat, 2, 2, 500, 400, 5)) AND not (IsFightAt(x, y)) then
begin
// Attack
MMouse(x, y, 3, 3);
if (IsUpText('ttack')) then Mouse(x, y, 3, 3, true);
n := 0;
if (InFight) then Break;
end;
W(250);
until(i = 10);
repeat
W(500);
if (not (InFight)) then Break;
until(n = 20);
RunAway('W', True, 3, 2000+Random(200));
MakeCompass('E');
SetAngle(False);
repeat
MMouse(Random(500), Random(400), 3, 3);
GetMousePos(x, y);
if (IsUpText('Gate')) then
begin
Mouse(x, y, 3, 3, true);
W(1000);
Break;
end;
until(false);
SetAngle(True);
MakeCompass('N');
WalkToMap(0, 360, 60, 1, 1);
FindIns;
FinishTalk;
if (InvCount = 14) then Break;
b := b + 1;
until(b = 20);
MouseItem(13, true);
W(500);
MouseItem(14, true);
W(500);
// Shoot rat
RunAway('S', True, 3, 2000+Random(200));
i := 0;
repeat
x := 240;
y := 180;
// Look and see if it's fighting
if (FindColorSpiralTolerance(x, y, Rat, 2, 2, 500, 400, 5)) AND not (IsFightAt(x, y)) then
begin
// Attack
MMouse(x, y, 3, 3);
if (IsUpText('ttack')) then Mouse(x, y, 3, 3, true);

end;
W(250);
until(i = 10);
end;

begin
ActivateClient;
ClearDebug;
SetupSRL;
SetAngle(True);
// Introducer
if (not (TabExists(11))) then StepOne;
// Woodcutting/Fishing
if (not (TabExists(2 ))) then StepTwo;
// Cook
if (not (TabExists(12))) then StepThree;
// Quest
if (not (TabExists(3 ))) then StepFour;
// Mining/Smithing
StepFive;
// Combat
StepSix;
end.

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

Heavenzeyez1

2009-02-05 08:08:10

No, for this time, because it's too simple imo, but I can see, that you are learning! And I didn't see much failsaves either, sorry.
Read this one.
~Eerik~

Lee Lok Hin

2009-02-05 08:08:53

I changed your password for you.

PMing.

MasterKill

2009-02-05 08:24:09

Sorry, but we would like to see a script with walking, banking, and cutting/mining/ect.

But, remember you made a very good start! Good luck with scripting and please re-apply when you made an more advanced script, with the stuff i mentioned above.

Good luck! No for now.

Frt

2009-02-05 08:29:30

It does include Banking?
You can choose to be in Draynor and it will walk to trees, fill you inventory and then walk back to bank and store them.

Frt

2009-02-05 08:30:56

From: heavenzeyez1
No, for this time, because it's too simple imo, but I can see, that you are learning! And I didn't see much failsaves either, sorry.
Read this one.
~Eerik~


Nope that one doesn't have a lot of failsafes since it was my first script and I hadn't read failsafe threads at that time.

If you want to I can post the part of my Tutrunner I have done?
It has failsafes but isn't quite finished.

NCDS

2009-02-05 09:06:13

Im sorry but , No for now.
There are no FailSafes and the walking is just blind clicking.
Try incorporating RadialWalk instead.

If you need help with anything please feel free to ask me.
You have a good start.

Good Luck.

Gu3st...

2009-02-05 09:10:57

I am like 70% on the No side, If you'd added walking then I would vote yes right away :)
I wont vote right now.

Frt

2009-02-05 09:33:54

This is my tut runner. It's not done, got stuck by the attack section. It has got failsafes and a lot more walking.

program TutRunner;
{.include SRL/SRL.scar}
{.include SRL/SRL/Misc/users.scar}
{.include SRL/SRL/skill/Smithing.scar}
{.include SRL/SRL/skill/Fighting.scar}

const
Arrow = 3585227;
ArrowMap = 2357498;
DoneBar = 10118512;
Tree = 2634566;
XpTab = 2910245;
RoadScreen = 6649727;
Fire = 7720182;
Range = 1319581;
FenceMap = 15396332;
Furnace = 2242984;
Rat = 7963523;

var
x, y, i, n, b: integer; // Misc
RoadColour: integer;

function W(Waiter:integer):Boolean;
begin
Wait(Waiter+Random(1000));
end;

Procedure Angle;
begin
KeyDown(VK_UP);
W(1500);
KeyUp(VK_UP);
W(500);
writeln('Angle set.');
end;

Procedure AngleDown;
begin
KeyDown(VK_DOWN);
W(1500);
KeyUp(VK_DOWN);
W(500);
writeln('Angle set.');
end;

function Chooser(uptext,choosetext:string):Boolean;
begin
n := 0;
repeat
if(FindColorTolerance(x,y,Arrow,2,2,500,400,5)) then
begin
MMouse(x,y+20+Random(10),5,5);
if(IsUpText(uptext)) then
begin
GetMousePos(x,y);
Mouse(x,y,1,1,false);
W(500);
if(ChooseOption(choosetext)) then Break;
W(2000);
end;
end;
Wait(150);
n := n + 1;
until(n = 5);
W(1000);
end;

function DropMany(maxc:integer):Boolean;
begin
repeat
if(ExistsItem(maxc+1)) then
begin
DropItem(maxc);
W(500);
end;
maxc := maxc + 1;
until(maxc = 28);
end;

function OpenGate(name,D:string):Boolean;
begin
i := 0;
MakeCompass('N');
repeat
if(not(LoggedIn)) then Break;
if(FindColorTolerance(x,y,Arrow,2,2,500,400,5)) then
begin
MMouse(x-5,y+30,5,5);
W(500);
if(IsUpText(name)) then
begin
Mouse(x-5,y+30,5,5,true);
W(3500);
Break;
end else
begin
MakeCompass(D);
W(1000);
end;
end;
Wait(100+Random(100));
i := i + 1;
until(i = 20);
MakeCompass('N');
W(1000);
end;

function WalkToMap(A1,A2,A3,A4,A5:integer):Boolean;
var
a:integer;
begin
i := 0;
repeat
if(not(LoggedIn)) then Break;
if(not(RadialWalk(ArrowMap,A1,A2,A3,A4,A5))) then
begin
Wait(100+Random(100));
end else Break;
i := i + 1;
W(500);
until(i > 5);
W(1000);
end;


function FindIns:Boolean;
begin
i := 0;
Writeln('Looking for instructor to talk with...');
repeat
if(not(LoggedIn)) then Break;
if(ClickContinue(true,true)) then Break;
if(FindColorTolerance(x,y,Arrow,2,2,500,400,5)) then
begin
MMouse(x,y+20+Random(10),5,5);
if(IsUpText('Talk')) then
begin
GetMousePos(x,y);
Mouse(x,y,1,1,true);
end;
W(1500);
end;
Wait(50+Random(50));
i := i + 1;
until(i = 5);
Writeln('Found instructor and engaged conversation!');
W(1000);
end;

function FinishTalk:Boolean;
begin
Writeln('Talking with instructor...');
i := 0;
repeat
if(not(LoggedIn)) then Exit;
if(not(ClickContinue(true,true))) then Break;
i := i + 1;
W(1000);
until(i = 15);
Writeln('Finished talking with instructor!');
W(1000);
end;

// Introducer
procedure StepOne;
begin
if(not(LoggedIn)) then Exit;
FinishTalk;
FindIns;
FinishTalk;
// Click the Option Tab
W(1000);
Mouse(674,483,5,5,true);
W(2000);
FindIns;
FinishTalk;
// Walk out of door
OpenGate('Door','E');
Writeln('Step one complete!');
Writeln(' ');
end;

// Woodcutting/Fishing
procedure StepTwo;
begin
// Walk To next instructor
WalkToMap(90,270,70,1,-1);
i := 0;
repeat
FindIns;
FinishTalk;
// Backpack
Writeln('Wieving backpack...');
Mouse(642,185,5,5,true);
W(1000);
i := i + 1;
if(InvCount = 2) then Break;
until(i = 5);
// Chop Tree
Writeln('Chopping trees...');
i := 0;
repeat
if(not(LoggedIn)) then Break;
if(i = 30) then Break;
x := 240;
y := 180;
if(FindColorSpiralTolerance(x,y,Tree,2,2,500,400,5)) then
begin
MMouse(x+5,y-30,5,5);
if(IsUpText('Tree')) then
begin
GetMousePos(x,y);
Mouse(x,y,1,1,true);
end;
W(5000);
end;
Wait(100+Random(100));
i := i + 1;
until(InvCount = 4);
W(1000);
DropMany(4);
i := 0;
// Check if leveled up.
repeat
if(not(LoggedIn)) then Break;
ClickContinue(true,true);
i := i + 1;
if(not(ClickContinue(true,true))) then Break;
until(i = 6);
W(500);
i := 0;
// Walk to empty spot and light a fire
Writeln('Lightning a fire...');
repeat
if(not(LoggedIn)) then Break;
x := 240+20;
y := 180+20;
if(FindColorSpiraltolerance(x,y,RoadScreen,2,2,500,400,5)) then
begin
Mouse(x,y,5,5,true);
W(2000);
end;
MouseItem(2,true);
W(500);
MouseItem(3,true);
W(500);
i := i + 1;
if(InvCount = 3) then Break;
until(i = 30);
W(10000);
Mouse(245+Random(20),435,3,3,true);
// Open XpTab
Writeln('Opening XpTab...');
Mouse(576,187,5,5,true);
W(1000);
FindIns;
FinishTalk;
// Walk to fishing spot
Writeln('Walking to fishing spot...');
WalkToMap(90,270,60,1,-1);
// Start fishing
writeln('Beginning to fish...');
repeat
if(not(LoggedIn)) then Break;
if(Invcount = 6) then Break;
if FindObjCustom(x, y, ['Net','et F','t Fi'], [12828090, 11182231], 3) then
begin
Mouse(x,y,5,5,true);
i := 0;
W(8000);
i := i + 1;
end;
until(i = 20);
DropMany(6);
// Walk to empty spot and light a fire
x := 240+20;
y := 180+20;
Writeln('Lightning fire...');
repeat
if(not(LoggedIn)) then Break;
if(FindColorSpiraltolerance(x,y,RoadScreen,2,2,500,400,5)) then
begin
Mouse(x,y,5,5,true);
W(2000);
end;
MouseItem(2,true);
W(500);
MouseItem(4,true);
W(500);
i := i + 1;
if(InvCount = 5) then Break;
until(i = 30);
W(10000);
Mouse(245+Random(20),435,3,3,true);
W(500);
// Cook fish
i := 0;
n := 5;
Writeln('Cooking shrimps...');
repeat
if(not(LoggedIn)) then Break;
if(FindColorTolerance(x,y,ArrowMap,530,4,700,160,5)) then Break;
if(not(ExistsItem(n))) then n := n + 1;
x := 240;
y := 180;
if(FindColorSpiralTolerance(x,y,Fire,2,2,500,400,5)) then
begin
MouseItem(n,true);
W(1000);
Mouse(x,y,3,3,true);
W(2000);
end;
Wait(200+Random(100));
i := i + 1;
until(i = 10);
Mouse(245+Random(20),435,3,3,true);
// Walk to gate
Writeln('Walking to gate...');
WalkToMap(180,360,65,1,1);
// Open Gate
OpenGate('ate','E');
Writeln('Step Two Completed!');
Writeln(' ');
W(1000);
end;

// Cook
procedure StepThree;
begin
WalkToMap(0,360,70,1,1);
OpenGate('oor','E');
repeat
if(InvCount = 7) then Break;
FindIns;
FinishTalk;
i := i + 1;
W(500);
until(i = 5);
i := 0;
repeat
if(InvCount = 8) then Break;
MouseItem(6,true);
W(1000);
MouseItem(7,true);
W(1000);
until(i = 5);
WalkToMap(90,270,50,0,-1);
i := 0;
repeat
MouseItem(8,true);
W(1000);
MakeCompass('S');
if(FindColorTolerance(x,y,Range,2,2,500,400,5)) then
begin
Mouse(x,y,3,3,true);
W(8000);
MouseItem(8,false);
W(500);
ChooseOption('rop');
W(500);
end;
i := i + 1;
if(InvCount = 7) then Break;
until(i = 6);
MakeCompass('N');
Mouse(252+Random(20),433,5,5,true);
W(1000);
Mouse(742,483,5,5,true);
W(1000);
WalkToMap(360,90,50,1,1);
OpenGate('oor','E');
Mouse(710,483,5,5,true);
W(500);
Mouse(566+Random(130),218+Random(200),5,5,true);
W(1000);
SetRun(true);
end;

// Quest-instructor
procedure StepFour;
begin
RoadColour := FindWaterColor;
RadialWalk(RoadColour,270,360,80,1,1);
W(2000);
RadialWalk(RoadColour,0,10,70,1,0);
W(2000);
RadialWalk(RoadColour,90,0,70,1,0);
W(2000);
WalkToMap(0,180,70,-1,-1);
W(500);
OpenGate('oor','S');
WalkToMap(90,270,70,1,1);
FindIns;
FinishTalk;
Mouse(610,186,5,5,true);
W(1500);
FindIns;
FinishTalk;
OpenGate('adder','S');
end;

// The Mine
procedure StepFive;
begin
RunAway('n',True,3,2000+Random(200));
WalkToMap(0,360,65,1,1);
// Talk to instructor
FindIns;
FinishTalk;
// Prospect tin
WalkToMap(0,360,65,1,1);
Chooser('Mine','Prospect');
W(1500);
// Prospect copper
WalkToMap(0,360,65,1,1);
Chooser('Mine','Prospect');
W(1500);
// Talk to instructor
repeat
if(InvCount = 8) then Break;
WalkToMap(0,360,60,1,1);
FindIns;
FinishTalk;
until(i = 5);
// Mine tin
i := 0;
repeat
if(InvCount = 9) then Break;
WalkToMap(0,360,60,1,1);
Chooser('Mine','Mine');
W(1500);
until(i = 5);
// Mine copper
i := 0;
repeat
if(InvCount = 10) then Break;
WalkToMap(0,360,60,1,1);
Chooser('Mine','Mine');
W(1500);
until(i = 5);
// Smelt Bronze bar
i := 0;
repeat
if(InvCount = 9) then Break;
WalkToMap(0,360,60,-1,-1);
MouseItem(9,true);
W(1000);
Chooser('urnace','se');
W(1500);
Mouse(233+Random(25),432,2,2,true);
W(500);
i := i + 1;
until(i = 5);
i := 0;
// Talk to instructor to get hammer
repeat
if(InvCount = 10) then Break;
WalkToMap(0,360,65,1,1);
FindIns;
FinishTalk;
i := i + 1;
until(i = 5);
// Make dagger
i := 0;
repeat
WalkToMap(0,360,60,-1,-1);
W(500);
MouseItem(9,true);
W(500);
Chooser('Use','Use');
SmithItem('Dagger','1');
W(1000);
Mouse(233+Random(25),432,2,2,true);
MMouseItem(9);
i := i + 1;
if(IsUpText('ield')) then Break;
until(i = 5);
// Walk out of area
WalkToMap(0,360,65,-1,0);
OpenGate('ate','E');
end;

// Combat
procedure StepSix;
begin
// Talk to instructor
WalkToMap(0,360,60,1,1);
FindIns;
FinishTalk;
// Gametab 6
Mouse(672,187,5,5,true);
W(1000);
Mouse(611,428,5,5,true);
W(1000);
// Equip Dagger
MouseItem(9,true);
W(500);
Mouse(491,45,3,3,true);
// Talk to instructor
FindIns;
FinishTalk;
GameTab(4);
W(750);
// Equip Sword and shield
MouseItem(9,true);
W(500);
MouseItem(11,true);
W(1000);
// Gametab 1
Mouse(541,183,5,5,true);
W(750);
// Go kill rat
b := 0;
repeat
// Enter cage
WalkToMap(0,360,60,1,1);
OpenGate('ate','E');
WalkToMap(0,360,60,1,1);
// Look for rat to attack
RunAway('E',True,3,2000+Random(200));
i := 0;
repeat
x := 240;
y := 180;
// Look and see if it's fighting
if(FindColorSpiralTolerance(x,y,Rat,2,2,500,400,5)) AND not(IsFightAt(x,y)) then
begin
// Attack
MMouse(x,y,3,3);
if(IsUpText('ttack')) then Mouse(x,y,3,3,true);
n := 0;
if(InFight) then Break;
end;
W(250);
until(i = 10);
repeat
W(500);
if(not(InFight)) then Break;
until(n = 20);
RunAway('W',True,3,2000+Random(200));
MakeCompass('E');
AngleDown;
repeat
MMouse(Random(500),Random(400),3,3);
GetMousePos(x,y);
if(IsUpText('Gate')) then
begin
Mouse(x,y,3,3,true);
W(1000);
Break;
end;
until(false);
Angle;
MakeCompass('N');
WalkToMap(0,360,60,1,1);
FindIns;
FinishTalk;
if(InvCount = 14) then Break;
b := b + 1;
until(b = 20);
MouseItem(13,true);
W(500);
MouseItem(14,true);
W(500);
// Shoot rat
RunAway('S',True,3,2000+Random(200));
i := 0;
repeat
x := 240;
y := 180;
// Look and see if it's fighting
if(FindColorSpiralTolerance(x,y,Rat,2,2,500,400,5)) AND not(IsFightAt(x,y)) then
begin
// Attack
MMouse(x,y,3,3);
if(IsUpText('ttack')) then Mouse(x,y,3,3,true);

end;
W(250);
until(i = 10);
end;

begin
ActivateClient;
ClearDebug;
SetupSRL;
Angle;
// Introducer
if(not(TabExists(11))) then StepOne;
// Woodcutting/Fishing
if(not(TabExists(2 ))) then StepTwo;
// Cook
if(not(TabExists(12))) then StepThree;
// Quest
if(not(TabExists(3 ))) then StepFour;
// Mining/Smithing
StepFive;
// Combat
StepSix;
end.

Gu3st...

2009-02-05 09:42:00

From: Frt
This is my tut runner. It's not done, got stuck by the attack section. It has got failsafes and a lot more walking.

Procedure Angle;
begin
KeyDown(VK_UP);
W(1500);
KeyUp(VK_UP);
W(500);
writeln('Angle set.');
end;

Procedure AngleDown;
begin
KeyDown(VK_DOWN);
W(1500);
KeyUp(VK_DOWN);
W(500);
writeln('Angle set.');
end;

Can be replaced with:
SetAngle(True/False);

Frt

2009-02-05 09:54:02

Oh, didn't know (:
Well, besides that, does it meet the standards?

Kyle Undefined

2009-02-05 10:30:03

First of all, not bad. It does need failsafes, standards and walking but here is how you can make it better.

1) Ok, your antiban procedure isn't bad. But here are the standards you need:
procedure AntiBan; // Never cap bold words
begin
if (not (LoggedIn)) then // After if...then's it's a enter and indention for one line
Exit;
case random(4) of
0: PickUpMouse;
1: RandomMovement;
2: RandomRClick;
3: case random(4) of // You almost had the indenting correct on this one
0: HoverSkill('Fishing', false);
1: HoverSkill('Cooking', false);
2: HoverSkill('Woodcutting', false);
3: HoverSkill('Firemaking', false);
end;
end;
end;

2) Your drop procedure is good, but here is a better way of doing it. It was good tho.
procedure Drop;
var
I : Integer; // It's a variable so it's declared
begin
for I := 2 to 28 do // This will make it go from 2 to 28 in your Inventory
begin
DropItem(i);
Wait(500+Random(500));
end;
end;

3) Your bank procedure is very choppy. And your standards aren't the best in there either.
RunAway('S', True, 2, 2000 + Random(1000));
Vs.
RunAway('S',false,2,2000+Random(1000));
After each comma there needs to be a space. Also, before and after each math sign there needs to be a space.
if (FindSymbol(x, y, 'bank')) then
Mouse(x, y, 1, 1, true);

Vs.
if(FindSymbol(x,y,'bank')) then Mouse(x,y,1,1,true);
You need to put spaces in between your if('s and )then's. Also, remember the one line rule of if…then's. Instead of using a FindObjCustom to bank, use OpenBank, OpenBankFast, or OpenBankGlass. The "until(InvFull = False);" can be done "until not (InvFull);" The last part of that procedure needs some standards aswell.

4) Your ChopDrop procedure isn't bad. Just needs standards. Here is something that could be improved.
begin
if (Draynor = true) then
Bank;
else
begin
Drop;
Writeln(IntToStr(Logs) + ' Logs cutted so far.');
AntiBan;
end;
end;
begin
if(Draynor = true) then Bank;
if(Draynor = false) then Drop;
Writeln(IntToStr(Logs) + ' Logs cutted so far.');
AntiBan;
end;

5) Your runner procedure is just random points, would be better if it was a better walking method.

6) Zyt3x already covered the Angle.

7) Your main loop is pretty bad, I'm sorry.
begin
SetupSRL;
Wait(2000);
ActivateClient();
ClearDebug;
Lampskill := 'woodcutting';
MouseSpeed := 10;
AC := DTMFromString('78DA638C676260886640012C1D8C609A11CA6' +
'74C06AA0923A006644E20AA1AE1C9686AA230CD415703009D5A05' +
'4C');
DeclarePlayers;
Wait(2000+Random(1000));
LoginPlayer;
SetAngle(True);
Runner;
repeat
ChopDrop;
until (AllPlayersInactive); // Repeats till all players are Inactive
end.
Vs.
begin
ActivateClient();
wait(2000);
ClearDebug;
SetupSRL;
Lampskill := 'woodcutting';
MouseSpeed := 10;
AC := DTMFromString('78DA638C676260886640012C1D8C609A11CA6' +
'74C06AA0923A006644E20AA1AE1C9686AA230CD415703009D5A05' +
'4C');
DeclarePlayers;
CurrentPlayer := 0;
Logout;
Wait(2000+Random(1000));
LoginPlayer;
Angle;
Logs := 0;
Inventory := InvCount;
Runner;
Repeat
ChopDrop;
Until(False);
end.
You were declaring variables twice in your main loop that were declared in other procedures.

As of now, it's a no from me. Take what others and I have to offer you in help and build off that. Best of luck ;)

~Camo

kitchenrange

2009-02-05 11:02:31

Your doing a really good job for your first two weeks and im pretty confident that if you finish your tut runner, when you reapply, you will probably make it.

P1nky

2009-02-05 11:05:14

Sorry no.

  RunAway('S',true,2,2000+Random(1000));
RunAway('S',false,2,2000+Random(1000));
RunAway('E',true,2,2000+Random(1000));

That isn't really stable :S

we are looking for RRW, DDTM's , TPA's , DTMs, AutoColor.

GL dude.

Dervish

2009-02-05 11:28:36

No.

30/100.

Naum

2009-02-05 11:54:31

Okay things to Improve on, I'll tell you my actual comment later :).

1.
    if FindObjCustom(x, y, ['se Ba', 'ank b', 'oth'], [605264, 3685438, 2313826, 6192526], 3) then
begin
Mouse(x,y,1,1,false);
Wait(1000+Random(1000));
ChooseOption('se-q');
Wait(5500+Random(500));
Deposit(2,28,true);
Wait(2000+Random(500));
Mouse(482,37,1,1,true);
Wait(4000+Random(500));
end;

Could be replcaed to:
OpenBankFast(argument here);
If BankScreen Then
Deposit(2, 28, True);

CloseBank;

:)

2.
  RunAway('S',true,2,2000+Random(1000));
RunAway('S',false,2,2000+Random(1000));
RunAway('E',true,2,2000+Random(1000));

A MouseClick would be much better as it has alot of randomness inside it and you can miss your spot if there is too much ranomness.

3. You need to use
FFlag(0)
this waits until the flag on the screen is gone :).

4. You dont need to set Times to zero, as all integers are set by default as zero :). And also booleans are set to False by default :).
Proof:
program New;

Var
X : Integer;
Lol : Boolean;

begin
WriteLn('Integer is set as : '+IntToStr(x)+', Boolean is : '+BoolToStr(Lol));
end.

5.
        if(Draynor = true) then Bank;
if(Draynor = false) then Drop;
to this:
        if Draynor then Bank
Else Drop;
:). An else statement shortens the code soo much.

Second Script
Wow this really changed my mind, It seems like everyone else has ignored that script. It is really good you use so many custom functions, I like your W function :).

You also could shorten it alot and use SRL alot more ;). I'm voting yes, add that script to your first post, as it will give you a bigger chance :).

Sir R. M8gic1an

2009-02-05 12:33:23

Your scar scripting seems to be good, and you seem to have a lot of potential. You do however lack SRL knowledge.


// Gametab 6
Mouse(672,187,5,5,true);
W(1000);
Mouse(611,428,5,5,true);
W(1000);

Gametab(6) would do this for you…

You seem to be getting a lot of good feedback :)

~RM

Frt

2009-02-05 12:57:21

From: Rasta Magician
Your scar scripting seems to be good, and you seem to have a lot of potential. You do however lack SRL knowledge.


// Gametab 6
Mouse(672,187,5,5,true);
W(1000);
Mouse(611,428,5,5,true);
W(1000);

Gametab(6) would do this for you…

You seem to be getting a lot of good feedback :)

~RM


I know this, but since it's blinking it doesn't work. That's why I had to manually click it. :)

Sir R. M8gic1an

2009-02-05 15:30:10

Good point. ATM i'm just hesitating on the vote because i've seen so little from you; That tut runner pretty much me hang towards the yes, although I do wish that there would be some more complex object finding for the powerchopper. You're tut runner is rather good so far, nice failsafes etc. I see potential.

how long did these scripts take you? Because not too long ago you applied without a script.

~RM

Frt

2009-02-05 15:47:55

From: Rasta Magician
Good point. ATM i'm just hesitating on the vote because i've seen so little from you; That tut runner pretty much me hang towards the yes, although I do wish that there would be some more complex object finding for the powerchopper. You're tut runner is rather good so far, nice failsafes etc. I see potential.

how long did these scripts take you? Because not too long ago you applied without a script.

~RM


The appliance was a mistake. I first saw it when it was closed. Had some forums open in tabs and didn't know what that was so just pressed send d;
Srorry 'bout that =)

To be honest I have spend one day on each script.
Object finding: Could you please tell me some good tutorials on that 'cause I haven't really read much about that.
Thanks in advance.

Dracody

2009-02-05 22:31:21

I would recommend that you read a little more and then re-apply since you dont seem to know very good Srl Functions, and they would be very helpfull to you. ;)

NCDS

2009-02-05 22:33:55

From: Dracody
I would recommend that you read a little more and then re-apply since you dont seem to know very good Srl Functions, and they would be very helpfull to you. ;)


I would not go as far as to say he doesnt know the functions. He just didnt create his own, but he used them correctly for the most part.

NiCbaZ

2009-02-06 03:51:27

Nice Apply, nice script…

but as you have said its your first scripts and first scripts are not read for SRL members, when i vote i look for advanced scripting methods, such as advanced Math and locic ,inverted into For To Do loops etc… I don't really look at what Things you use such as RRW and DTMs because Imo anyone can make them… When you re-apply try and use some of my surgestions , in your script and i will most likly vote yes and give you a thumbs up..

This time im sorry to say i will have to vote no…

Good luck in the furture of your scripting you seem to be learning fast good work keep it up

(Btw i wrote this whole thing without looking at the Keybored, im getting better YAY.)

Sir R. M8gic1an

2009-02-07 05:19:13

Well, it seems like you won't get in this time. But everyone has given good feedback, and is rather happy with your attitude. It only took you one day for each of these scripts. Put a week of work into it. let's see how it comes out.

also about object finding: http://www.villavu.com/forum/showthread.php?t=28484?t=31003&highlight=tpa
That is a advanced method, but i have the impression you'll understand it.

You can re-apply in one month.

~RM