PDA

View Full Version : New... and different... and my first script



HairyDuncan2
08-13-2007, 09:26 PM
Hi, thank's for looking, first of all. This is my first script and I am hopeful that it will be a fairly good one :D . Anyway the first release, 0.1, is just an autotalker. What I plan to do is as I gain more knowledge about SCAR and SRL add more things into my script. So this is sort of like my journal. Anyway eventually I would like it to do lot's and lot's. Anyway better shutup. Hope ya like it, and post up some feedback about the script or my idea. Catch ya later!


Updates

03/8/07 - Version 0.1 - Auto Login, First release
04/8/07 - Version 0.15 - Auto Login updated with SRL functions
04/8/07 - Version 0.16 - Added VERY basic Autotalker
17/8/07 - Version 0.2 - Added basic autofighter and updated Talk; procedure
3/9/07 - Version 0.201 - Major update, added player array, made much more professional autofighter, added features and now walk's from lumby castle to goblin's (if needed).
8/9/07 - Version 0.22 - Updated, finds location, opens door

drnewheart
08-13-2007, 09:55 PM
This looks like a good piece of code. My only suggestion is including SRL's login procedure instead of yours.

And remember to add SetupSRL; into your mainloop. So that it will look like this:

begin
SetupSRL;
Login;
Talk;
end.

Also your standards are a bit off you should learn standards they keep your script looking clean and tidy.

And by the way you left your password in the script. So you should change your password before someone untrustworthy takes it. But aside from that I like the idea and think that after you learn some more scripting you will do very well. congrats on your first script. And as always

NEVER GIVE UP!

-Dr.Newheart

HyperSecret
08-14-2007, 02:54 AM
yea not bad but like drnewheart said you need to setup ur srl, u have it included but it doesnt setup, but i would use typesend instead of sendkeys, since typesend is a srl random typing procedure,

what you have,

Procedure Talk;
begin
Wait(2000);
MakeCompass('N');
SendKeys(Say+chr(13));
DropAll;
end;

how i would suggest doing it:

Procedure Talk;
begin
Wait(2000);
MakeCompass('N');
TypeSend(Say);
DropAll;
end;

also you dont need the chr13 w/ typesend
and also same thing w/ ur login procedure instead of using sendkeys use type send

procedure TypeSend(Text: String);
By: Mutant Squirrle
Description:
Types text humanlike using random timeing on keys.

that what typesend does according to the SRL manual

and also instead of using movemouse and click mouse, use


begin
Mouse(x,y,0,0,true);
end

procedure Mouse(mousex, mousey, ranx, rany: Integer; left: Boolean);
By: Mutant Squirrle
Description:
Moves then clicks mouse.

definintion ^^ SRL Manual x ,y put your cordinates in like you have in click and mouse mouse and the ranx and rany can just be 0's and that should make it undetectable, but the way you have it, its detectable b/c they arent SRL commands. hope this helps





1 thing i just thought of also, instead of using that long procedure to log in you could use the srl login procedure which is this,

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name :=''; //Character name
Players[0].Pass :=''; //Character PAss
Players[0].Nick :=''; //Nickname 3 Letter of char name
Players[0].Active:=True;

end;

so that way you dont have that long procedure and this you can also make to do multiple players and everything

this pretty much takes apart your whole script and makes it all undetectable

HairyDuncan2
08-14-2007, 05:51 AM
Wow, thank's for the feedback. Oop's, I kept telling myself to remember to take my username and password out. Ah well, whoevers got it now, have fun (Stupid Idiot). Well, now for some questions.

For
SetupSRL;
If I do not have that, will SRL not work? Some info on that would be appreciated.

Thank's for
TypeSend;
I shall change that in a sec.


By the way, I just noticed something. I put
DropAll;
in the main loop. That is not supposed to be there, I was experimenting with it last night.


I shall change all mouse procedures to SRL format, but just curious, will it change anything, or was it just made so you do not have to type as much?

For this fantastic SRL login procedure
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name :=''; //Character name
Players[0].Pass :=''; //Character PAss
Players[0].Nick :=''; //Nickname 3 Letter of char name
Players[0].Active:=True;

end;

Will that just work? Or do I have to add mouse procedures?

Right, my standards are a bit off? Does that mean i'm not neat enough? If so can you tell me where I can view a tut or something of the sort. Thanks.

Well, you have given me lot's of feedback and i'm real pleased. I'll update the script after I do my homework and hang the washing *sigh*. Anyway, THANKS!

HairyDuncan2
08-14-2007, 05:52 AM
Oh yeah, and make a new file...

HairyDuncan2
08-14-2007, 06:37 AM
Line 12: [Error] (14461:20): Invalid number of parameters in script C:\Program Files\SCAR 3.06\Scripts\Runescape\Auto 0.1.scar

I get this error, when I use Mouse and MMouse.

HyperSecret
08-14-2007, 06:43 AM
post your new script and let me take a look w/ the new commands

yea the login procedure will do everything to get you totally thru logging in, the typing procedure makes it so you dont have to code as much but it also randomly types letters so its like someone is actually typing, so it will push a letter diff milliseconds apart

and the SetUp SRL part, pretty much just sets up your srl acc and records how well the script works, that would be my best description, but as long as you put the

{.include SRL/SRL.scar}

in your script that will make it so that your srl commands run correctly, but the first way you had it none of your procedures were srl commmands besides the

MakeCompass('N');
DropAll;

if you have any question to be sorted ill try and help add my msn or pm me
derekmardian@hotmail.com <-- MSN

HairyDuncan2
08-14-2007, 06:53 AM
post your new script and let me take a look w/ the new commands

yea the login procedure will do everything to get you totally thru logging in, the typing procedure makes it so you dont have to code as much but it also randomly types letters so its like someone is actually typing, so it will push a letter diff milliseconds apart

and the SetUp SRL part, pretty much just sets up your srl acc and records how well the script works, that would be my best description, but as long as you put the

{.include SRL/SRL.scar}

in your script that will make it so that your srl commands run correctly, but the first way you had it none of your procedures were srl commmands besides the

MakeCompass('N');
DropAll;

if you have any question to be sorted ill try and help add my msn or pm me
derekmardian@hotmail.com <-- MSN


Thank's dude, that helped me a lot. :D By the way fixed the problem, wasn't adding random coordinates.:D Thanks Again!

HairyDuncan2
08-14-2007, 07:05 AM
Well I've been testing out the SRL login and it doesn't seem to be doing anything, the mouse just sit's there. So, unless anybody has an answer or really needs the SRL login I think I might just use the current login (which I have updated to SRL (Mouse, MMouse etc.)) XD

HyperSecret
08-14-2007, 07:26 AM
add me on msn lets talk it will be easier

HairyDuncan2
08-16-2007, 06:53 AM
Right, well, here's the talk procedure:

Procedure Talk;
begin
i:= 0;
repeat
RandomMovement;
i:= i + 1;
TypeSend(Say);
Wait(50+random(50));
until (i >= (HowMany));
Writeln('Finished talking!')
SRLRandomsReport;
end;


What I want to know is, where I added RandomMovement;, it repeats still the player stops talking, meaning the player moves the mouse and the screen around while he is talking. Do you think this will work, or be detectable? Feedback would be great. Ta! ^^

HyperSecret
08-16-2007, 09:32 AM
it should work just fine, as far as i know it would be alittle detectable b/c it repeats on every loop...try somethin like this


Procedure Talk;
begin
i:= 0;
repeat
case Random(3) of
0: RandomMovement;
end;
i:= i + 1;
TypeSend(Say);
Wait(50+random(50));
until (i >= (HowMany));
Writeln('Finished talking!')
SRLRandomsReport;
end;


i would do that, what the random part does is, it randomly chooses a number 0-2 and if it chooses 0 it will do the RandomMovements and if it chooses 1 or 2 it will just go on w/ the rest of the procedure, so this way its not repeatative and not detectable

HairyDuncan2
08-17-2007, 05:26 AM
Sweet, that looks great. I'm kinda stuck on what to do next though. Any ideas? Thanks

HyperSecret
08-19-2007, 02:47 AM
if your going to try and put fighting in there also, make sure you have an antiban procedure and antirandoms, msn me if you need help

HairyDuncan2
08-19-2007, 04:42 AM
if your going to try and put fighting in there also, make sure you have an antiban procedure and antirandoms, msn me if you need help

Sure thing =]

HairyDuncan2
09-01-2007, 03:56 AM
Hi there.
I haven't been on here for a while. Just installed the new SRL. Look's excellent. Anyway, it's just been mid-term assignment time, and it's been hectic, so I haven't really had that much free time. I know you don't really care, but I thought i'd just tell you what's been happening. So, i'm back in. I will now update the script, implementing all the previous suggestions.
Happy autoing! :D :D :D

HyperSecret
09-01-2007, 04:54 PM
still should use the login thing i gave you works 1000x better, here for the fighting have it find colors not just randomly move the mouse b/c that moves it through your whole computer screen and will take minutes to attack prolly log out b4 it finds the uptext, also dont put 'Attack" for choose option put 'ttack'

HairyDuncan2
09-01-2007, 10:07 PM
still should use the login thing i gave you works 1000x better, here for the fighting have it find colors not just randomly move the mouse b/c that moves it through your whole computer screen and will take minutes to attack prolly log out b4 it finds the uptext, also dont put 'Attack" for choose option put 'ttack'

Righto

For finding the monster should I use

AttackMonster;

Or

FindObject;

?


Thanks mate


Oh yeah, about the SRL player login. It's gotta a bug I think. Need's to be fixed. I created a new thread. That explains the problem. http://www.villavu.com/forum/showthread.php?t=16560?p=202227
There's the link.

HyperSecret
09-01-2007, 11:11 PM
i use findskipboxarraytolerance, but that is alittle to advanced i would say, so
i would use

FindColorTolerance(var x, y: Integer; color, xs, ys, xe, ye: Integer; Tolerance: Integer): Boolean;

or

FindColorSpiralTolerance(var x, y: Integer; color, xs, ys, xe, ye: Integer; Tolerance: Integer): Boolean;

whichever you'd prefer

FindColorSpiralTolerance(x, y, color, xs, ys, xe, ye, Tolerance);

you would set them both up like ^^ set the color as a const or even make it an array(if you know how) then usually put msx1, ect for xs, ect then put a tolerance in

let me know if you dont understand anything

HairyDuncan2
09-02-2007, 12:36 AM
i use findskipboxarraytolerance, but that is alittle to advanced i would say, so
i would use

FindColorTolerance(var x, y: Integer; color, xs, ys, xe, ye: Integer; Tolerance: Integer): Boolean;

or

FindColorSpiralTolerance(var x, y: Integer; color, xs, ys, xe, ye: Integer; Tolerance: Integer): Boolean;

whichever you'd prefer

FindColorSpiralTolerance(x, y, color, xs, ys, xe, ye, Tolerance);

you would set them both up like ^^ set the color as a const or even make it an array(if you know how) then usually put msx1, ect for xs, ect then put a tolerance in

let me know if you dont understand anything



Excellent.
Do I fill in 'xs, ys, xe, ye'?
Or just leave them like that. I will most likely use FindColorSpiralTolerance.
Thank's a lot for the support.

HyperSecret
09-02-2007, 01:02 AM
change 'xs, ys, xe, ye' to MSX1,MSY1,MSX2,MSY2 so it searches runescapes mainscreen, also using attackmonster would work to i guess if you wanted to use that

HairyDuncan2
09-04-2007, 05:22 AM
Yeppo, major update!! Used FindColorSpiralTolerance! Thanks

HyperSecret
09-04-2007, 05:59 AM
k this is gonna be a huge amount of changes that i did and quite a bit for you to take in...if you need more explaining let me know on msn...

Standards
i would personally put the colors in an array instead of having so many findcolorstoleraces...
the mainloop needs an endless loop so that it can do multiplayer...
dont put i as a global variable will mess your counting up REALLY badly!
STANDARDS STANDARDS STANDARDS :D

and if you wanted you could add more failsafes...then the srlid and password part is useless since your script isnt registered w/ srl stats

and also your walking is very unstable

program Auto;
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Fighting.scar}

var
x,y: Integer;
////////Start at the foot of the stairs at lumby castle\\\\\\\\
Const
//Player Setup
Say = 'Hi!'; // What you would like to type?
Monster = 'Goblin'; // What are you killing?
ShallWeTalk = False; // Would you like to auto talk?
HowManyTalks = 30; //How many times would you like to say whatever your saying?
HowManyFights = 2; // How many monsters would you like to kill?
//////////////////////Colors\\\\\\\\\\\\\\\\\\\\\\\\

GoblinColor1 = 6730116;
GoblinColor2 = 607590;
GoblinColor3 = 11711164;
GoblinColor4 = 3842459;
GoblinColor5 = 5859440;
GoblinColor6 = 6048053;
GoblinHut = 2117213;
DoorC = 1990008;
RoadColor1 = 6842479;

Procedure DeclarePlayers;
Begin
HowManyPlayers :=1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:=0;

Players[0].Name :=''; // Your ingame username
Players[0].Pass :=''; // Your ingame password
Players[0].Nick :=''; // The first three letters of your username. No capitals.
Players[0].Active:=True; // Leave as is

if(not(LoggedIn)) then LoginPlayer;

End;

Procedure Talk;
var
i: integer;
Begin
GameTab(4);
MakeCompass('N');
HighestAngle;
If (ShallWeTalk=True) Then
Begin
i:= 0;
Repeat
Case Random(3) of
0: RandomMovement;
End;
i:= i + 1;
Wait(100+random(50));
TypeSend(Say);
Wait(50+random(50));
Until (i >= (HowManyTalks));
Writeln('Finished talking!')
End Else
Exit;
End;

Procedure Walk;
Begin
If FindColor(x, y, FindWaterColor, 564, 11, 729, 132) Then
Begin
Exit;
End Else
FindColor(x, y, FindRoadColor, 697, 46, 708, 56);
Mouse(x, y, 2, 2, true);
CountFlag(1);
FindSymbol(x, y, 'fish');
Mouse(x, y, 2, 2, true);
Wait(5000+random(2000));
CountFlag(1);
Mouse(672, 88, 1, 1, true);
CountFlag(1);
Writeln('Arrived at goblins!')
End;

Procedure Fight;
var
GoblinColors: array[0..5] of integer;
i,gc: integer;
Begin
GoblinColors[0] := GoblinColor1;
GoblinColors[1] := GoblinColor2;
GoblinColors[2] := GoblinColor3;
GoblinColors[3] := GoblinColor4;
GoblinColors[4] := GoblinColor5;
GoblinColors[5] := GoblinColor6;
i:= 0;
Repeat
HighestAngle;
i:= i + 1;
for gc := 0 to 5 do
Repeat
If FindColorTolerance(x, y, GoblinColors[gc], MSX1, MSY1, MSX2, MSY2, 10) then
MMouse(x, y, 2, 2);
Until(IsUpText(Monster));
If IsUpText(Monster) Then
Mouse(x, y, 1, 3, false);
ChooseOption('ttack');
OutFight;
Until(i >= (HowManyFights));
Writeln('Succesfully fought');
End;


Begin
SetupSRL;
DeclarePlayers;
repeat
Talk;
Walk;
Fight;
until(false)
End.

HairyDuncan2
09-04-2007, 07:31 AM
Hi,
Thanks heaps for the feedback.
Your new Fight; procedure doesn't seem to be working for me. I'll attach the current version ( the one I have been working on, various thing's changed ), and do you reckon you could have a look at it?? That would be fab. I'll have a look at working on my standards now.
Cheers

HyperSecret
09-04-2007, 04:27 PM
Procedure Fight;
var
GoblinColors: array [0..5] of integer;
i, gc: integer;
Begin
GoblinColors[0] := GoblinColor1;
GoblinColors[1] := GoblinColor2;
GoblinColors[2] := GoblinColor3;
GoblinColors[3] := GoblinColor4;
GoblinColors[4] := GoblinColor5;
GoblinColors[5] := GoblinColor6;
i:= 0;
Repeat
HighestAngle;
i:= i + 1;
for gc := 0 to 5 do
begin
If FindColorTolerance(x, y, GoblinColors[gc], MSX1, MSY1, MSX2, MSY2, 10) then
If IsUpText(Monster) Then
Mouse(x, y, 1, 3, false);
ChooseOption('ttack');
OutFight;
end;
Until(i >= (HowManyFights));
Writeln('Succesfully fought');
End;

use that as your fight procedure should work then...sry it had to many repeats and kept repeating and wouldnt att

WT-Fakawi
09-04-2007, 06:32 PM
HyperSecret: If I could give you two bears, I'd hand 'm to you :)


EDIT: Though complicated as it may seems, this in fact the same way I hunt for Goblins in Gobbiez!

//----------------------------------------------------------------------------//

Function ClickGoblin: Boolean;
var i, CBx,CBy,Dmx, Dmy: Integer;
begin
if Players[CurrentPlayer].skill = Lowercase('prayer') then
begin
Result := False;
Exit;
end;
for GCIndex := 1 to 16 do
begin
CBx := MSCx;
CBy := MSCy;
if FindColorSpiralTolerance(CBx, CBy, GoblinColors[GCIndex], MSX1, MSY1, MSX2, MSY2, 12) then
begin
GoblinAttempts := GoblinAttempts + 1;
Status('GA = '+IntToStr(GoblinAttempts));
MMouse(CBx, CBy, 0, 0);
if FindColorTolerance(Dmx, Dmy, 450015, 42, 8, 120, 21, 55) then // Yellow
begin
if IsUpText('b') then
begin
if not InFightAt(CBx, CBy) then
begin
Mouse(CBx, CBy, 0, 0, True);
G[GCIndex] := G[GCIndex] + 1;
for i := 0 to 20 do
begin
if FindColor(Dmx, Dmy, MouseHit, CBx - 8, CBy - 8, CBx + 8, CBy + 8) then
begin
GoodClick:=GoodClick + 1;
Break;
end
if FindColor(Dmx, Dmy, MouseMis, CBx - 8, CBy - 8, CBx + 8, CBy + 8) then
begin
BadClick := BadClick + 1;
Exit;
end;
Wait(10);
end;
FTWait(1);
FFlag(1);
if FindBlackChatMessage('already') then
begin
Result:=False;
WaitGoblin;
Exit;
end;
if FindBlackChatMessage('omeone') then
begin
Result:=False;
Exit;
end
else
begin
Result := True;
GoblinAttempts := 0;
end;
Exit;
end;
end;
end;
end;
end;
end;

HairyDuncan2
09-04-2007, 08:49 PM
HyperSecret: If I could give you two bears, I'd hand 'm to you :)


EDIT: Though complicated as it may seems, this in fact the same way I hunt for Goblins in Gobbiez!

//----------------------------------------------------------------------------//

Function ClickGoblin: Boolean;
var i, CBx,CBy,Dmx, Dmy: Integer;
begin
if Players[CurrentPlayer].skill = Lowercase('prayer') then
begin
Result := False;
Exit;
end;
for GCIndex := 1 to 16 do
begin
CBx := MSCx;
CBy := MSCy;
if FindColorSpiralTolerance(CBx, CBy, GoblinColors[GCIndex], MSX1, MSY1, MSX2, MSY2, 12) then
begin
GoblinAttempts := GoblinAttempts + 1;
Status('GA = '+IntToStr(GoblinAttempts));
MMouse(CBx, CBy, 0, 0);
if FindColorTolerance(Dmx, Dmy, 450015, 42, 8, 120, 21, 55) then // Yellow
begin
if IsUpText('b') then
begin
if not InFightAt(CBx, CBy) then
begin
Mouse(CBx, CBy, 0, 0, True);
G[GCIndex] := G[GCIndex] + 1;
for i := 0 to 20 do
begin
if FindColor(Dmx, Dmy, MouseHit, CBx - 8, CBy - 8, CBx + 8, CBy + 8) then
begin
GoodClick:=GoodClick + 1;
Break;
end
if FindColor(Dmx, Dmy, MouseMis, CBx - 8, CBy - 8, CBx + 8, CBy + 8) then
begin
BadClick := BadClick + 1;
Exit;
end;
Wait(10);
end;
FTWait(1);
FFlag(1);
if FindBlackChatMessage('already') then
begin
Result:=False;
WaitGoblin;
Exit;
end;
if FindBlackChatMessage('omeone') then
begin
Result:=False;
Exit;
end
else
begin
Result := True;
GoblinAttempts := 0;
end;
Exit;
end;
end;
end;
end;
end;
end;


Yes, I did notice that you use an array in your script. I don't really know how to make one. What did you think of the script. Look at my last post, I attached the one I am working on to it. It has more options, and I changed walking procedure to RadialRoadWalk.

Thanks alot for posting on my script.

HairyDuncan2
09-04-2007, 08:53 PM
Procedure Fight;
var
GoblinColors: array [0..5] of integer;
i, gc: integer;
Begin
GoblinColors[0] := GoblinColor1;
GoblinColors[1] := GoblinColor2;
GoblinColors[2] := GoblinColor3;
GoblinColors[3] := GoblinColor4;
GoblinColors[4] := GoblinColor5;
GoblinColors[5] := GoblinColor6;
i:= 0;
Repeat
HighestAngle;
i:= i + 1;
for gc := 0 to 5 do
begin
If FindColorTolerance(x, y, GoblinColors[gc], MSX1, MSY1, MSX2, MSY2, 10) then
If IsUpText(Monster) Then
Mouse(x, y, 1, 3, false);
ChooseOption('ttack');
OutFight;
end;
Until(i >= (HowManyFights));
Writeln('Succesfully fought');
End;

use that as your fight procedure should work then...sry it had to many repeats and kept repeating and wouldnt att

Line 104: [Error] (12746:1): Identifier expected in script C:\Program Files\SCAR 3.11\Scripts\Runescape\Auto 0.201.scar


????

WT-Fakawi
09-04-2007, 09:07 PM
Yes, I did notice that you use an array in your script. I don't really know how to make one.

program New;

var
i: integer;
GoblinColors: array of integer;

begin
GoblinColors:= [1,2,3,0,5,2356];

for i := 0 to 5 do
writeln(IntToStr(Goblincolors[i]));
end.

array.

or this

program New;

var
i: integer;
GoblinNames: array of string;

begin
GoblinNames:= ['Goblin1','Goblin2','a','two','banana'];

for i := 0 to Length(GoblinNames) - 1 do
writeln(GoblinNames[i]);
end.

HairyDuncan2
09-04-2007, 09:11 PM
program New;

var
i: integer;
GoblinColors: array of integer;

begin
GoblinColors:= [1,2,3,0,5,2356];

for i := 0 to 5 do
writeln(IntToStr(Goblincolors[i]));
end.

array.

or this

program New;

var
i: integer;
GoblinNames: array of string;

begin
GoblinNames:= ['Goblin1','Goblin2','a','two','banana'];

for i := 0 to Length(GoblinNames) - 1 do
writeln(GoblinNames[i]);
end.

Very confusing. I sorta understand. That's how you declare them.. I'll have to look up a tut.
What do you think of my script?

WT-Fakawi
09-04-2007, 09:49 PM
What do you think of my script? You are going in the right direction. Look around into SRL a bit more. Read some tuts. Print out your favourite scripts. Make notes on them. Try to understand them. Copy bits and pieces and glue them all together. You will do fine.

HairyDuncan2
09-08-2007, 10:06 AM
Hi guys,

Well, time for another update.
I have updated alot. It is not fully working. I posted it up only because I haven't updated in a while. Anyway, it's better than it was before, and I made an array :D !!
Anyway, have a look and post some feedback.
Thanks

Bloodcheck
09-08-2007, 03:58 PM
Pretty Good Actually :)

bobthefag
09-08-2007, 04:10 PM
pretty good i'll test it

Cdexswzaq555
09-08-2007, 04:11 PM
Wow very nice.

Lg Solidat
09-08-2007, 06:22 PM
10/10 =) Great job.:sasmokin:

HairyDuncan2
09-08-2007, 10:02 PM
Thank you guys =)

dyles
09-08-2007, 11:29 PM
Realy nice... keep it going! :)

HairyDuncan2
09-09-2007, 06:55 AM
Cheers fellas,
Nice to hear lot's of positive feedback.
Any bugs, problems or suggestions?
Thanks

HyperSecret
09-09-2007, 07:09 AM
HyperSecret: If I could give you two bears, I'd hand 'm to you :)


thx alot man, it means alot when something like that is said from someone as great as you are, big compliment thx!


Line 104: [Error] (12746:1): Identifier expected in script C:\Program Files\SCAR 3.11\Scripts\Runescape\Auto 0.201.scar


????


how your script is:

Procedure Walk;
Var
i: Integer;
Begin
If (AtMonster=False) Then
RadialRoadWalk(FindRoadColor, 85, 95, 59, 0, 0);
FindSymbol(x, y, 'guide');
Mouse(x, y, 1, 1, true);
FindSymbol(x, y, 'fish');
Begin
Mouse(x, y, 1, 1, true);
WalkedToGobs:= + 1;
End;

Procedure Fight;
var
GoblinColors: array [0..5] of integer;
i, gc: integer;
Begin
GoblinColors[0] := GoblinColor1;
GoblinColors[1] := GoblinColor2;
GoblinColors[2] := GoblinColor3;
GoblinColors[3] := GoblinColor4;
GoblinColors[4] := GoblinColor5;
GoblinColors[5] := GoblinColor6;
i:= 0;
Repeat
HighestAngle;
i:= i + 1;
for gc := 0 to 5 do
Repeat
If FindColorTolerance(x, y, GoblinColors[gc], MSX1, MSY1, MSX2, MSY2, 10) then
MMouse(x, y, 2, 2);
Until(IsUpText(Monster));
If IsUpText(Monster) Then
Mouse(x, y, 1, 3, false);
ChooseOption('ttack');
OutFight;
Until(i >= (HowManyFights));
Writeln('Succesfully fought');
End;

how it should be(with standards):

Procedure Walk;
Var
i: Integer;
Begin
If (AtMonster=False) Then
RadialRoadWalk(FindRoadColor, 85, 95, 59, 0, 0);
FindSymbol(x, y, 'guide');
Mouse(x, y, 1, 1, true);
FindSymbol(x, y, 'fish');
Begin
Mouse(x, y, 1, 1, true);
WalkedToGobs:= + 1;
End;
end;

Procedure Fight;
var
GoblinColors: array [0..5] of integer;
i, gc: integer;
Begin
GoblinColors[0] := GoblinColor1;
GoblinColors[1] := GoblinColor2;
GoblinColors[2] := GoblinColor3;
GoblinColors[3] := GoblinColor4;
GoblinColors[4] := GoblinColor5;
GoblinColors[5] := GoblinColor6;
i:= 0;
Repeat
HighestAngle;
i:= i + 1;
for gc := 0 to 5 do
Repeat
If FindColorTolerance(x, y, GoblinColors[gc], MSX1, MSY1, MSX2, MSY2, 10) then
MMouse(x, y, 2, 2);
Until(IsUpText(Monster));
If IsUpText(Monster) Then
Mouse(x, y, 1, 3, false);
ChooseOption('ttack');
OutFight;
Until(i >= (HowManyFights));
Writeln('Succesfully fought');
End;

the thing that was giving the error was your Walk procedure it was missing a final end, when you get that error make sure all your begin and end match up and have the same ammount in each procedure

ps: you prolly wont get to much legit feedback b/c they are prolly leechers tryin to get their post counts up sry :( , also your script wouldnt work at all with a missing end, so all those ppl up there ^^ that said some feedback was a big post count lie b/c it couldnt work for them at all :duh::duh: hope that helps