SRL Archive - Archive

Dervish - SRL Member Application Form


Dervish

2008-12-07 11:41:23

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

What is the meaning to life?


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


Programming Knowledge
A little Batch (.bat and notepad) coding.

Other Communitys
ScuneRape (and Merchants of Death [Not a real community]).

How Long have You Played Runescape
Since 2003 or early 2004.

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

I've been playing RuneScape for almost 5 years now.
Unfortunately, 3 years after I started, my account was hacked; that made me quit for a few months.

Later on, I started a new account but I found it so boring and slow to skill and level-up.
I googled a little on "Skill Changers" and only result was me being hacked a second time.

In the end of 2006, I found out about SCAR but I didn't understand ANYTHING about it. So I gave up and started playing legit.

End 2007, I had a fairly good and rich account in RuneScape, but it still wasn't as good as the one I had lost the first time. I got bored and tired so I googled for "Tips and tricks" to level-up.

Then I found SCAR again, and looked into it more in deep.
Finally, I found out about SRL. I found it good : great tutorials, helping community, friendly community (unlike Sythe !)…etc.

I started learning and made a first script (an autotalker) which didn't even work xD. However I got the fix by someone and just merely copied and pasted. I didn't feel alright about doing that, so I gave up on that project and asked for closing that thread.

Then I made a LongBow fletcher (used MoveMouseSmooth and stuff…) and gave up on that project too.

My third script was a Fight Caver, basic but it ran good and easily made 20 hour + proggies.
The bad part was : ANTIBAN !!! It took a few weeks before I got banned but I enjoyed the fact that I made a script that actually worked.

A few weeks after the ban, I quit RuneScape for months and started playing Guild Wars.
I didn't like that you only fought and didn't skill at all, so I came back to RuneScape and started autoing again straight away.

Since then, I've been mostly active on the forums (and in my opinion, made good progress), I made a few scripts but nothing good.

I've been reading alot of tutorials since then and made a personal script.

I hope becoming a good scripter someday and make an awesome and exceptional script which everybody will like.

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

program New;
{.include SRL/SRL.scar}
{.include SRL/SRL/Misc/users.scar}

var
x,y,Softened,ClayDTM,SoftClayDTM,BucketDTM,WalkDTM: Integer;
BucketsFilled,HaveClay,HaveBuckets,
IsAutoing,IsWalking: Boolean;

procedure SetupDTMs;
begin

ClayDTM := DTMFromString('78DA63CC61626078CE8002A63784826946289' +
'F3119A8E619031A604455930E54F39A809A7CA09A9744A8B98F5F' +
'0D00993F0819');

SoftClayDTM := DTMFromString('78DA639CC6C4C0F0940105E406F1826946289' +
'FB117A8E621031A604455330FA8E60E0135B3806ADE1350D30554' +
'F38C809A8984CD0100E42E09C6');

BucketDTM := DTMFromString('78DA63CC65626078C18002A654BA806946289' +
'FB104A8E63D031A604455530654738F809A34A09ADB04D4A400D5' +
'BCC1AF0600933F0807');

end;

procedure StartUp;
begin
ClearDebug;
Writeln('Welcome to Dervish SoftClayer.');
Writeln('Post ALL bugs and feedback on my thread.');
Writeln('At ANY TIME, use F12 to terminate the script');
Wait(1500);
Writeln('Setting up...');
SetupSRL;
SetupDTMs;
BucketsFilled := False;
HaveClay := False;
HaveBuckets := False;
IsAutoing := True;
IsWalking := False;
Writeln('Set up successfully; setup your player in SRL PlayerForm.');
Wait(1000);
SRLPlayerForm(true,[],[],['Lamp Skill ?'],[]);
Writeln('Good luck...');
Wait(500);
end;

procedure SetupPlayer;
begin
ActivateClient;
LoginPlayer;
Disguise('Setting up player.');
SetRun(true);
GameTab(4);
SymbolAccuracy := 0.2;
If not(FindSymbol(x,y,'bank')) then
begin
Writeln('You are not in the bank, read instructions.');
TerminateScript;
end else
begin
SymbolAccuracy := 0.8;
If FindDTM(BucketDTM,x,y,560,205,595,245) and
FindDTM(BucketDTM,x,y,605,315,635,350) then
begin
Writeln('Found the buckets.');
HaveBuckets := True;
If FindColorTolerance(x,y,10255741,605,315,635,350,5) then
begin
Writeln('They are filled');
BucketsFilled := True;
end;
end;
If FindDTM(ClayDTM,x,y,MIX1,MIY1,MIX2,MIY2) and
FindDTM(ClayDTM,x,y,690,430,720,460) then
begin
Writeln('Found the clay.')
HaveClay := True;
end;
end;
end;

procedure Soften;
begin
If Not (LoggedIn) then Exit;
If (HaveClay) and (HaveBuckets) and (BucketsFilled) then
begin
MouseItem(1+random(13),true);
Wait(500+random(250));
MouseItem(15+random(13),true);
Disguise('Softening.');
repeat
Wait(100+random(50));
until(not FindDTM(ClayDTM,x,y,690,430,720,460));
HaveClay := False;
BucketsFilled := False;
end;
end;

function SetDDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..7] of TDTMPointDef;
TempTDTM: TDTM;

begin
dtmMainPoint.x := 766;
dtmMainPoint.y := 320;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 8555405;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 766;
dtmSubPoints[0].y := 320;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 8555405;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 766;
dtmSubPoints[1].y := 337;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 8555405;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 770;
dtmSubPoints[2].y := 320;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 8555405;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 778;
dtmSubPoints[3].y := 313;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 8555405;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 761;
dtmSubPoints[4].y := 318;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 8555405;
dtmSubPoints[4].Tolerance := 0;

dtmSubPoints[5].x := 755;
dtmSubPoints[5].y := 317;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 8555405;
dtmSubPoints[5].Tolerance := 0;

dtmSubPoints[6].x := 768;
dtmSubPoints[6].y := 341;
dtmSubPoints[6].AreaSize := 0;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 8555405;
dtmSubPoints[6].Tolerance := 0;

dtmSubPoints[7].x := 780;
dtmSubPoints[7].y := 317;
dtmSubPoints[7].AreaSize := 0;
dtmSubPoints[7].AreaShape := 0;
dtmSubPoints[7].Color := 8555405;
dtmSubPoints[7].Tolerance := 0;

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

function LoadAllDTMWalks(WalkNumber: Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array[0..7] of TDTMPointDef;
TempTDTM: TDTM;

begin
case WalkNumber of
1: begin
dtmMainPoint.x := 766;
dtmMainPoint.y := 320;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 8555405;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 766;
dtmSubPoints[0].y := 320;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 8555405;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 766;
dtmSubPoints[1].y := 337;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 8555405;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 770;
dtmSubPoints[2].y := 320;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 8555405;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 778;
dtmSubPoints[3].y := 313;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 8555405;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 761;
dtmSubPoints[4].y := 318;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 8555405;
dtmSubPoints[4].Tolerance := 0;

dtmSubPoints[5].x := 755;
dtmSubPoints[5].y := 317;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 8555405;
dtmSubPoints[5].Tolerance := 0;

dtmSubPoints[6].x := 768;
dtmSubPoints[6].y := 341;
dtmSubPoints[6].AreaSize := 0;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 8555405;
dtmSubPoints[6].Tolerance := 0;

dtmSubPoints[7].x := 780;
dtmSubPoints[7].y := 317;
dtmSubPoints[7].AreaSize := 0;
dtmSubPoints[7].AreaShape := 0;
dtmSubPoints[7].Color := 8555405;
dtmSubPoints[7].Tolerance := 0;

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

procedure FillBuckets;
begin
If Not (LoggedIn) then Exit;
Case Random(3) of
0: begin
RadialWalk( FindRoadColor, 315, 335, 99, 99, 99);
IsWalking := True;
Disguise('Walking with RW.');
Flag;
end;

1: begin
If FindSymbolIn(x,y,'water',MMX1,MMY1,630,45) then
begin
Mouse(x,y,8,8,true);
IsWalking := True;
Disguise('Walking with FindSymbol');
Flag;
end else
begin
Writeln('Unable to find water symbol.');
RadialWalk( 8686734, 315, 335, 99, 99, 99);
IsWalking := True;
Disguise('Walking with RW.');
end;
end;

2: begin
WalkDTM := LoadAllDTMWalks(1);
if FindDTM(WalkDTM, X, Y, 540, 0, 695, 165) then
begin
Mouse(X, Y, 8, 8, True);
Disguise('Walking with DDTM)');
Flag;
end else
begin
RadialWalk( 8686734, 315, 335, 99, 99, 99);
IsWalking := True;
Disguise('Walking with RW.');
Flag;
end;
end;
end;
If (IsWalking = True) then
begin
MouseItem(1+random(13),true);
Wait(100+random(50));
if FindObjTPA(x,y,4146244,10,2,5,5,5,['ell']) then
begin
IsWalking := False;
Wait(250+random(150));
Mouse(x,y,0,0,true);
Disguise('Filling buckets.');
repeat
Wait(100+random(50));
until(FindColorTolerance(x,y,10255741,605,315,635,350,5));
Disguise('Filled buckets.');
BucketsFilled := True;
end else
begin
if FindObjTPA(x,y,8029059,10,2,5,5,5,['ell']) then
begin
IsWalking := False;
Wait(250+random(150));
Mouse(x,y,0,0,true);
Disguise('Filling buckets.');
repeat
Wait(100+random(50));
until(FindColorTolerance(x,y,10255741,605,315,635,350,5));
Disguise('Filled buckets.');
BucketsFilled := True;
end else
begin
Writeln('Not able to find well...');
NextPlayer(False);
end;
end;
end;
end;

procedure WalkToBank;
begin
If Not (LoggedIn) then Exit;
If FindSymbol(x,y,'bank') then
begin
Disguise('Walking to bank.');
Mouse(x,y,5,5,true);
Flag;
OpenBankQuiet('eb');
end else
begin
Writeln('No bank symbol found...');
NextPlayer(false);
end;
end;

procedure Bank;
begin
If Not (LoggedIn) then Exit;
If FindDTM(SoftClayDTM,x,y,MIX1,MIY1,MIX2,MIY2) then
begin
Disguise('Banking.');
FixBankTab;
FixBank;
Mouse(x,y,0,0,false);
Wait(100+random(50));
ChooseOption('ll');
Softened := Softened+ 28;
Wait(200+random(100));
If FindDTM(ClayDTM,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Mouse(x,y,0,0,false);
Wait(100+random(50));
ChooseOption('ll');
Wait(200+random(50));
end else
begin
Writeln('Could not find clay in bank...');
NextPlayer(True);
end;
end else
begin
Writeln('You do not have any soft clay..?');
NextPlayer(False);
end;
end;

Procedure RandomMM;
begin
MMouse(0,0,700,500);
Wait(1000+random(500));
end;

Procedure MMSpin;
begin
case Random(6) of
0: SendArrowSilentWait(((Random(2) * 2) + 1), 1000 + Random(200));
1: SendArrowSilentWait(((Random(2) * 2)), 1000 + Random(200));
2: SendArrowSilentWait(((Random(2) * 2) + 1), 200 + Random(200));
3: SendArrowSilentWait(((Random(2) * 2)), 200 + Random(200));
4: SendArrowSilentWait(((Random(2) * 2) + 1), 20 + Random(20));
5: SendArrowSilentWait(((Random(2) * 2)), 20 + Random(20));
end;
Wait(500+random(500));
MakeCompass('N');
end;

procedure AntiBan;
begin
If Not (LoggedIn) then Exit;
Case random (10) of
1: RandomMM;
2: MMSpin;
3: RandomRClick;
4: RandomMovement;
5: BoredHuman;
end;
end;

procedure AntiRandoms;
begin
If Not (LoggedIn) then Exit;
FindNormalRandoms;
FindTalk;
FTWait(500+random(100));
Disguise('Doing AntiRandoms');
end;

Procedure Proggy;
begin
Writeln('[Thanks for useing this script.]');
Writeln('[Been running for : ' + TimeRunning + ']');
Writeln('[Have softened : ' + IntToStr(Softened)+ ']');
Writeln('[Thanks.]');
Writeln(' ');
Writeln(' ');
Writeln(' ');
Writeln(' ');
end;

Procedure ScriptTerminate;
begin
Proggy;
Writeln('You were been terminated ;)');
end;

procedure MainLoop;
begin
StartUp;
SetupPlayer;
SetDDTM;
FillBuckets;
WalkToBank;
Soften;
Bank;
end;

begin
While (IsWalking) do
begin
AntiBan;
AntiRandoms;
end;
While (IsAutoing) do
begin
If IsFKeyDown(12) then
begin
TerminateScript;
end;
end;
repeat
MainLoop;
until(false);
end.

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

boberman

2008-12-07 11:50:31

Yes from me, the script looks pretty good to me. Just be aware that you have a pretty bad memory leak. You create your DTMs but you never delete them. This should be rectified (rather then load the DTMs every main loop, load them once before the main loop. and free them after it)

Also, in your walking, while you have 3 different methods but you pick them randomly, Rather then that, use the one that works the best, if it fails use the next, if that fails use the third. Random walking methods don't gain you anything.

EvilChicken!

2008-12-07 11:58:43

Dervish! >:3
YES.

Um, I've got nothing more to add other than what boberman said, other than that you really should avoid SendKeys(silent) to rotate the MM, you could go for keydown, then keyup, or do a MakeCompass(IntToStr(1 + Random(360)));


Anyway, the script looks nice, I just hope that the others share my opinion on this.

Good luck ^___^

Method

2008-12-07 12:06:46

I think I'm going to vote no, sorry.

Your main loop looks really weird. You check the Is* booleans once and never return to them again, which seems like a waste. Neither of them are set when you check them, so they're both false. This means you narrowly escape two infinite loops because neither of the loops are executed.

Also, in your AntiRandoms procedure, FTWait(500 + Random(100)); doesn't wait between 500 and 599 seconds - it waits (500 + Random(100)) * (200 + Random(50)) seconds. That's quite a lot of time to wait to find a talking random. Furthermore, you only call your AntiRandoms procedure once in the entire script, which won't help to stop random events either.

The issue of failsafes presents itself too, especially in key parts like banking. Trying multiple times to open the bank if the script fails to find it the first time will ensure that you're either on the bank screen or your player is lost. Your repeat loop in Soften also will run forever if it is interrupted for any reason. Adding a timing failsafe to that would probably be best to ensure the script doesn't hang in there indefinitely.

Good work on this script! If you don't get in this time, I'm sure that with just a little more work you'll make it next time. :)

Dervish

2008-12-07 12:56:05

From: boberman
Yes from me, the script looks pretty good to me. Just be aware that you have a pretty bad memory leak. You create your DTMs but you never delete them. This should be rectified (rather then load the DTMs every main loop, load them once before the main loop. and free them after it)

Also, in your walking, while you have 3 different methods but you pick them randomly, Rather then that, use the one that works the best, if it fails use the next, if that fails use the third. Random walking methods don't gain you anything.


Ooo darn it ! Forgot to fix that memory leak !!! D: A bit too late now eh ? :(
Thanks for the fast reply and the yes :).

For the 3 different walking methods : Awww :( I thought It would be original xD.

Best is FindSymbol method… Oh well I guess its also too late now :(.

From: EvilChicken!
Dervish! >:3
YES.

Um, I've got nothing more to add other than what boberman said, other than that you really should avoid SendKeys(silent) to rotate the MM, you could go for keydown, then keyup, or do a MakeCompass(IntToStr(1 + Random(360)));


Anyway, the script looks nice, I just hope that the others share my opinion on this.

Good luck ^___^


Thanks.
Just a little note for you and the other SRL Developers :

SendKeysSilent is used in AntiBan.scar (thats where I found it) in "BoredHuman".
Just thought I'd let you know ;).

From: Method
I think I'm going to vote no, sorry.

Your main loop looks really weird. You check the Is* booleans once and never return to them again, which seems like a waste. Neither of them are set when you check them, so they're both false. This means you narrowly escape two infinite loops because neither of the loops are executed.

Also, in your AntiRandoms procedure, FTWait(500 + Random(100)); doesn't wait between 500 and 599 seconds - it waits (500 + Random(100)) * (200 + Random(50)) seconds. That's quite a lot of time to wait to find a talking random. Furthermore, you only call your AntiRandoms procedure once in the entire script, which won't help to stop random events either.

The issue of failsafes presents itself too, especially in key parts like banking. Trying multiple times to open the bank if the script fails to find it the first time will ensure that you're either on the bank screen or your player is lost. Your repeat loop in Soften also will run forever if it is interrupted for any reason. Adding a timing failsafe to that would probably be best to ensure the script doesn't hang in there indefinitely.

Good work on this script! If you don't get in this time, I'm sure that with just a little more work you'll make it next time.


Oh nooooeeess !!! Method voted no :( !!!
I didn't think of these problems at first but now when you tell me, its clear :(.

You have your reasons and now I think about it, these errors were really stupid and could have resulted in a ban within the first time it happened. Thanks for letting me know your point of view ;), it will be great help if I ever actually release this script.

Magiic

2008-12-07 13:19:07

hmm, im going to hold my vote there are the errors that method mentioned yet, you seem to have knowledge of srl and scar, you've used (D)DTM's and RadialWalk, but i'll have to see what others say, leaning towards yes though.

JAD

2008-12-07 13:52:50

Definite yes from me.

Many times the bank symbol can be covered, so terminating the script if the bank symbol is not found probably isn't the best idea, but overall it seems like a good script. Maybe add multiplayer?

And as said above, making it use the 1 walking method and the other 2 as fail safes would make this script run for much longer amounts of time without getting lost.

Good luck!

Naike

2008-12-07 14:24:04

Yes, Just work on those failsafes..

Dervish

2008-12-07 14:28:58

Thanks !
I will.

Magiic

2008-12-07 14:40:24

i thought about it and looked over the script again, just work on the failsafes as others have said and flatten out those mishaps before you realease it, yes from me.

The_Shermanator

2008-12-07 15:38:43

Yes from me, just work on some TPA's and everyone will vote yes :)

-The_Shermanator

Dervish

2008-12-07 15:40:25

Sherman : You mean make my own TPA's ?

P1nky

2008-12-07 17:28:40

sorry no from me,

missing things:
tpa's and no failsafe , walktobank is so simple and some other proc use rrw with no back support :S so keep working your almost there

Dervish

2008-12-08 01:14:06

I got a few questions to all SRL Members :

Do I need at least 50% votes to get the rank or is it more ?

And : How many votes are there ? Is it per time ?

Edit : And if I get a no this time, can I apply with the same script if I improved it and fix stuff ?

Iron Man

2008-12-08 01:53:12

From: Dervish
I got a few questions to all SRL Members :

Do I need at least 50% votes to get the rank or is it more ?

And : How many votes are there ? Is it per time ?

Edit : And if I get a no this time, can I apply with the same script if I improved it and fix stuff ?


1. I think (but I'm not sure) that it's 70%, probably rounded up, if close (give or take some). Though I also assume that it could depend on the situation.
2. I think they need a good amount of votes to distinguish which choice, or it could be a mix of the two. Just be patient and an admin will post with the results eventually.
3. You can apply with the same script, as long as you make fixes, hopefully with the advice people gave.

Holding vote.

Nava2

2008-12-08 17:09:20

Dont use SCAR Key commands.

Yes.

TheChineseMan

2008-12-09 04:26:52

yep:)

Dervish

2008-12-09 11:11:20

Thanks for the votes.

Please note that every mark and suggestion you make here will be taken in consideration if i ever feel like releasing the script.

Naum

2008-12-09 13:04:15

Yep :).

You showed that you have basic understanding of SCAR and SRL.

Although it would be 'kick-ass' If you added a Loads constant, that way people can choose how much loads they want to do. Simple really.

You know enough ;)

Dervish

2008-12-09 13:11:36

Thanks Nauman ;)
Maybe add the loads in the SRL PlayerForm with Sleep? and such ? :)

WT-Fakawi

2008-12-09 15:28:20

In.