SRL Archive - Archive

N C D S - SRL Member Application Form


NCDS

2009-01-08 18:32:55

<!– BEGIN TEMPLATE: formanswers –>
N C D S - SRL Member Application Form
N C D S

What is the meaning to life?


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


Programming Knowledge
I know my way around HTML pretty well.

Other Communitys
d00med.net Im a member of others but not really active anymore.

How Long have You Played Runescape
6 years

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

Im 18 years old and have ben involved in RuneScape cheating for about 5 years. Sadly I never bothered to learn to Script until recently. In March I will be Attending ITT Tech. Im going for Software Applications & Programming, Computer Networking, Web Development, and Computer Drafting and Design. I have Already taken DDP Classes and a Communications course Which covers lessons in Photoshop, Photography and Video Editing. Within the next few months I will Also be taking online Classes for JavaScript.

I applied once already but since then I have learned many different thing and therefor have re-wrote this script in its entirety.

Thank You for your time, it is much Appreciated.

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


program NCDSBakeStallThieveAndBank;
{.include srl/srl.scar}
///////////////////////////////////////////////////////////////////////
//////////////////////////NCDS' Power Thieve///////////////////////////
///////////////////////////////////////////////////////////////////////
/// ///
/// Thank you for using NCDS' Auto Thiever! ///
/// ///
/// Make Sure you Start at the Eastern Bake Stall in Ardougne ///
/// ///
/// I Would Like To Thank: ///
/// TViYH ///
/// Shermanator ///
/// noidea ///
/// Narcle ///
/// Along With All SRL Devs For Making This Possible ///
/// ///
/// Please Post ALL Progress Reports and The Reason it Stopped ///
/// ///
/// Find More INFO at [url]WWW.SRL-FORUMS.COM[/url] ///
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////




//SETUP Constants and Declare Players!

Const DirectionToRun = 'S' ;
SleepTime = 60000 ; // in MS, 60000 = 1 minute plus a random of 1-3 minutes will be added.
LoadsToThieve = 10; //Loads To Thieve

Var
AmtStolen, LoadsDone,
BankDTM, CCakeDTM, CakeDTM, BreadDTM : integer;


procedure DeclarePlayers;

begin


HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Integers[0] := 10;//loads to thieve

Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := True;
Players[1].Integers[0] := 10;//loads to thieve

end;




////////////////////////////////////////////////////////////////////////////////




procedure Walk2Bank1;

var x, y : Integer;

begin
if (not(LoggedIn)) then
Exit;
begin
SetRun(True);
MakeCompass('N');
WriteLn('Walking To Bank');
Wait(RandomRange(200, 300));
RadialRoadWalk(FindVarrockRoadColor, 190, 220, 70, -1, 0);
FFlag(5);
Status('Searching For Bank on Mini Map');
if (FindSymbol( x, y, 'bank'))then
begin;
Writeln('Found bank!');
Mouse( x, y, 5, 5, True);
FFlag(5);
Wait(RandomRange(3000, 5000));
Exit;
end else
BankDTM := DTMFromString('78DA633460646038C280021A4BD218FE0369A' +
'00CC37F20603402B2F6A0AA29719660E087AA0101465D22D4E801' +
'59E708A83126AC06009C320EA6');
RadialRoadWalk(FindVarrockRoadColor, 190, 230, 65, -1, 0);
FFlag(5)
if (DTMRotated(BankDTM,x,y,MMX1,MMY1,MMX2,MMY2)) then
begin
WriteLn('FoundBankDTM');
Mouse(x, y, 3, 3, True);
FFlag(5);
FreeDTM(BankDTM);//DONT FORGET
Exit;
end else
WriteLn('Wheres the Banker? Lets look A bit Closer');
Status('Searching For Bank on Mini Map');
if (FindSymbol( x, y, 'bank'))then
begin;
Writeln('Found bank!');
Mouse( x, y, 5, 5, True);
Wait(RandomRange(2000, 3000));
Exit;
end else
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Walking To Bank';
end;

procedure OpenASBandBank;

begin
if (not (Loggedin)) then
Exit;
begin
OpenBankFast('feb');
if (not (BankScreen)) then
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'At The Bank';
Logout;
Exit;
Deposit(1,28,true);
end;
CloseBank;
end;


procedure Eat;

var x, y : Integer;

begin
if (not (LoggedIn)) then
Exit;

CakeDTM := DTMFromString('78DA63AC62646078C28002EEDEBCC1F01F480' +
'36518FE03012348CD0D0634C0C8C00F5503E6750259F709A80199' +
'F39E809A1C4CF7C064616A0058570E9B');
BreadDTM := DTMFromString('78DA63AC66646078CC800226950B31FC07D24' +
'01986FF40C0D80A64DD6240038C0CFC5035605E3E90F596809A52' +
'20EB3E01358D40D64B4C350C486A0072400D2E');
CCakeDTM := DTMFromString('78DA63AC62646078CA8002729D7819FE0369A' +
'00CC37F206004A9B9C980061819F8A16AC0BC7620EB3901352073' +
'3E1050930F643DC254C380A406003B3F0CD3');
begin
if HpPercent <50 then
begin
while (DTMRotated(CakeDTM, x, y, MiX1, MiY1, MiX2, MiY2))do
begin
MouseItem(CakeDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;
while (DTMRotated(BreadDTM, x, y, MiX1, MiY1, MiX2, MiY2)) do
begin
MouseItem(BreadDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;
while (DTMRotated(CCakeDTM, x, y, MiX1, MiY1, MiX2, MiY2)) do
begin
MouseItem(CCakeDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;
end;
FreeDTM(CakeDTM);
FreeDTM(BreadDTM);
FreeDTM(CCakeDTM);
end;


procedure Walk2Stall1;

var x, y : Integer;

begin
if (not (LoggedIn) then
Exit;
begin
SetRun(True);
Wait (RandomRange(200, 300));
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 30, 180, -1, 0)) then
begin
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 40, 180, -1, 0)) then
begin
WriteLn('Failed Walking To Stall, Post Error on Thread.');
end;
end else
FFlag(5);
Wait(RandomRange(1000, 2000));
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 90 ,57 , -1, 0)) then
begin
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 100 ,57 , -1, 0)) then
begin
WriteLn('Failed Walking To Stall, Post Error on Thread.');
end;
end else
FFlag(5);
Wait(RandomRange(1000, 2000));
if FindObjCustom(x,y,['Sack','acks','Sacks'],[4287091,3825511,4023405,4484985,3693667],5)then
begin
MMouse(x,y,1,1);
Wait(RandomRange(200, 300));
if (IsUpTextMultiCustom(['Sack','acks','Sacks']))then
begin
Mouse(x, y, 1, 1, True);
Exit;
end;
end;
WriteLn('Cant Get to North End Of Stall,Please Report Error On Thread');
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Walking To Stall';
end;


procedure ProgressReport;
begin
Status('Progress Report');
ClearDebug;
Writeln(',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,');
Writeln('/\ Time Running : ' + TimeRunning + ' /\');
Writeln('/\ Stole From Stall : ' + IntToStr(AmtStolen) + ' /\ ');
Writeln('/\ Banked : ' + IntToStr(LoadsDone) + ' /\');
Writeln('/\ Thanks For Using NCDS Thieve And Bank! /\');
Writeln('`````````````````````````````````````````````````');
end;


procedure AntiBan;

begin
if (not (LoggedIn)) then
Exit;
begin
case random(20) of
0 : case random (100) of
10 : TypeSend(AddMistakes('I hate thieving lol its so boring', 20));
20 : TypeSend(AddMistakes('thieve lvl?', 20));
30 : TypeSend(AddMistakes('heyyy', 20));
40 : TypeSend(AddMistakes('Nice Armor!', 20));
50 : TypeSend(AddMistakes('Stupid Guards', 20));
60 : TypeSend(AddMistakes('ugh 99 thieve takes forever', 20));
70 : TypeSend(AddMistakes('Its Almost my Birthday!', 20));
80 : TypeSend(AddMistakes('Fresh Prince Rulezz d00d!', 20));
90 : TypeSend(AddMistakes('Just bought a new LapTop :)', 20));
100 : TypeSend(AddMistakes('Emachines are no good :/', 20));
end;
4 : SleepAndMoveMouse(400+random(200));
6 : case random (9) of
0 : DoEmote(3);
4 : DoEmote(7);
8 : DoEmote(15);
end;
10 : BoredHuman ;
12 : case random(9) of
0 : HoverSkill('Thieving', False);
4 : HoverSkill('Random', False);
8 : HoverSkill('Strength', False);
end;
14 : RandomRClick ;
18 : PickUpMouse;
20 : case random(30) of
15 : begin
WriteLn('Sleep Time!');
Status('Sleeping...');
Logout;
Wait((SleepTime)+RandomRange( 60000, 240000));
LoginPlayer;
Wait(1000+Random(500));
end;
end;
end;
end;
end;


procedure FindStall;

var x, y : Integer;

begin
if (not(Loggedin))then
Exit;
if FindObjTPA(x, y, 9677753, 5, -1, 5, 5, 10,['Baker','ake','aker'])then
begin
MMouse(x , y , 1 , 1);
Wait (Randomrange(100, 200));
if (IsUpTextMultiCustom(['aker','Bake','ake'])) then
begin
case random(2)of
0 : begin
Mouse(x, y, 1, 1, True);
wait(RandomRange(300, 400));
end;
1 : begin
Mouse(x, y, 1, 1, False);
wait(RandomRange(300, 400));
ChooseOption('teal');
end;
end;
end;
WriteLn('Stole From Stall!');
Inc(AmtStolen);
FindNormalRandoms;
Exit;
end;
WriteLn('Dindt Find Stall, Trying 1 More Time');
if FindObjTPA( x, y, 9677753, 10, -1, 5, 5, 10, ['Baker','ake','aker'])then
begin
MMouse(x , y , 1 , 1);
Wait (100 + random (100));
if (IsUpTextMultiCustom(['aker','Bake','ake'])) then
begin
case random(2)of
0 : begin
Mouse(x, y, 1, 1, True);
wait(RandomRange(100, 200));
end;
1 : begin
Mouse(x, y, 1, 1, False);
wait(RandomRange(100, 300));
ChooseOption('teal');
end;
end;
AntiBan;
WriteLn('Stole From Stall!');
Inc(AmtStolen);
Exit;
end;
writeln('Could Not Find Stall Please Post Error on the Proper Thread');
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Stealing From Stall';
end;
end;

function NInFight: Boolean;

Var x, y : Integer;

begin
Result := (FindColor(x, y, 65280, 242, 142, 283, 158) or
FindColor(x, y, 255, 242, 142, 283, 158));
end;



function DontDie1: Boolean;

begin
if (not (LoggedIn)) then
Exit;
if HpPercent < 50 then
begin
WriteLn('Running so we dont die');
RunAway(DirectionToRun, True, 1, 9000) Result:= True;
end;
end;


procedure NAFOutFight;

var
T: integer;
begin
if Players[CurrentPlayer].Booleans[6] then
T := GetSystemTime - 12000
else
T := GetSystemTime;
while not NInFight and (TimeFromMark(T) < 5000) do wait(100);
if NInFight then
begin
Status('Killing monster...');
repeat
Wait(800+random(300));
DontDie1;
Wait(1500+random(500));
If Players[CurrentPlayer].Booleans[0] then
Break;
until(not NInFight) or (not LoggedIn)
Status('');
end else
Wait(300);
end;


procedure AntiRandom;

begin
if (not (LoggedIn)) then
Exit;
begin
if FindBox=False then
exit;
begin
if FindBox then
Wait (100+random(100));
SolveBox;
end;
SolveDemon;
SolveFrog;
SolveMaze;
TouchShrine;
SolvePillory;
SolveSandWich;
end;
end;


procedure MainLoop;

begin
repeat
FindNormalRandoms;
FindStall;
AntiBan;
DontDie1;
NInFight;
NAFOutFight;
AntiRandom;
until (InvFull) or (not (LoggedIn))
Walk2Bank1;
OpenASBandBank;
Inc(LoadsDone);
Walk2Stall1;
ProgressReport;
Wait (500+random(500));
MainLoop;
end;


begin
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
FindNormalRandoms;
Retaliate(True);
MakeCompass('N');
SetAngle(True);
repeat
repeat
MainLoop;
until (LoadsDone >= Players[0].Integers[0]) or not LoggedIn;
NextPlayer(LoggedIn);
until (AllPlayersInactive);
end.

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

Griff

2009-01-08 18:58:03

I like it, you have almost everything except ddtms. The one thing I don't like is that you took one of Narcle's procedures, credited him at the top, but didn't say what he did. Please credit his procedure. I liked the autocolour in the radialwalk btw.
Holding vote.

-Griff

TViYH

2009-01-08 19:03:07

[X]: DTMs
[X]: DDTMs
[X]: Walking
[X]: Antiban/Antirandom
[X]: Multiplayer
[X]: TPAs/T2DTPAs

Not bad, overall.
From what I could tell, there was no multiplayer, though…
And. The standards are off.

For example,

if LoggedIn=True then
...
if LoggedIn=False then

should be

if LoggedIn then
...
if not LoggedIn then

Just little things like that.

I saw you used FindObjTPA. That is TPAs, but it's not the kind of TPAs I like to use.

Good improvement from the last. I like your walking procedure.

I'm holding my vote to see how the attitude towards learning is.

Thanks for the credit, btw ;)

benjaa

2009-01-08 19:03:31

Walking - Yes
TPa - Yes
DTMs/DDTms - Yes
Failsafes - Yes

Multiplayer - No

Multiplayer is a huge part of SRL scripting, without it you're making it alot harder on yourself to get in. Look up some tutorials and add it in.

Loads to Thieve should changed to
Players[0].Integers[0] := 10;

And antiban talker is incredibly bannable - more responses are needed

I'm holding my vote, but I would like to see you get in
good poster, active, and now scripting!

Pyro

2009-01-08 19:51:00

Hmm I dont like main loops being outside of the actual main loop. But i have seen other scripters do it and it has worked for them. But should get out of the habit i guess.

About the multiplayer. That is true, and it is an integral part of SRL. However i dont think many people have more then one member? A way of dodging the bullet anyway.

Also you need to decide what you want to do when things go wrong. In your findbank procedure you dont really do anything. If all ways of finding bank fail, your script will still continue on.

Further down your script if it fails it will logout.

Then in another procedure if it fails it will terminate.

What you need to do is mod the findbank that if it fails it does SOMETHING. And that something should probably be logout then terminate the script.

Also one question for you. Say in walk2bank1. Did you actually test it to see if it was actually getting as far as needing to find the symbol etc? Or did you just add that in there just in the 1 million to 1 chance :P

Tniffoc

2009-01-08 19:57:22

No. Sorry.
TViYH - I'm copying your style of voting because it is solid and not so loose…

[X]: DTMs
[X]: DDTMs
[X]: Walking
[X]: Anti-crap
[X]: Multiplayer
[X]: Custom TPAs

Standards Rating: 0-10
6.7
You missed some indenting. You have some redundant code.

Paragraph Rating: 0-10
9.8
Really good paragraph. Just two misspellings.

Special Comments:
Some of your code is redundant in nature and is not needed. This is just a small detail that I thought you should know about. Nothing that would keep you out of members though. I won't usually accept an application without custom TPA finding. You might want to look at "The Almighty TPA Tutorial" in the Tutorial Island section of the forums. Otherwise, good luck with scripting!

NCDS

2009-01-08 20:03:20

There you go guys.
Added MultiPlayer, More Things to say for AntiBan, looked for messed up standards but couldnt find any?
Keep the FeedBack Coming!


program NCDSBakeStallThieveAndBank;
{.include srl/srl.scar}
///////////////////////////////////////////////////////////////////////
//////////////////////////NCDS' Power Thieve///////////////////////////
///////////////////////////////////////////////////////////////////////
/// ///
/// Thank you for using NCDS' Auto Thiever! ///
/// ///
/// Make Sure you Start at the Eastern Bake Stall in Ardougne ///
/// ///
/// I Would Like To Thank: ///
/// TViYH ///
/// Shermanator ///
/// noidea ///
/// Narcle ///
/// Along With All SRL Devs For Making This Possible ///
/// ///
/// Please Post ALL Progress Reports and The Reason it Stopped ///
/// ///
/// Find More INFO at [url]WWW.SRL-FORUMS.COM[/url] ///
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////




//SETUP Constants and Declare Players!

Const DirectionToRun = 'S' ;
SleepTime = 60000 ; // in MS, 60000 = 1 minute plus a random of 1-3 minutes will be added.
LoadsToThieve = 10;

Var x , y,
AmtStolen, LoadsDone,
BankDTM, CCakeDTM, CakeDTM, BreadDTM : integer;


procedure DeclarePlayers;

begin


HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;

Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := True;


end;




////////////////////////////////////////////////////////////////////////////////




procedure Walk2Bank1;

begin
SetRun(True);
MakeCompass('N');
WriteLn('Walking To Bank');
Wait(RandomRange(200, 300));
RadialRoadWalk(FindVarrockRoadColor, 190, 220, 70, -1, 0);
FFlag(5);
Status('Searching For Bank on Mini Map');
if (FindSymbol( x, y, 'bank'))then
begin;
Writeln('Found bank!');
Mouse( x, y, 5, 5, True);
FFlag(5);
Wait(RandomRange(3000, 5000));
Exit;
end else
BankDTM := DTMFromString('78DA633460646038C280021A4BD218FE0369A' +
'00CC37F20603402B2F6A0AA29719660E087AA0101465D22D4E801' +
'59E708A83126AC06009C320EA6');
RadialRoadWalk(FindVarrockRoadColor, 190, 230, 65, -1, 0);
FFlag(5)
if (DTMRotated(BankDTM,x,y,MMX1,MMY1,MMX2,MMY2)) then
begin
WriteLn('FoundBankDTM');
Mouse(x, y, 3, 3, True);
FFlag(5);
FreeDTM(BankDTM);//DONT FORGET
Exit;
end else
WriteLn('Wheres the Banker? Lets look A bit Closer');
Status('Searching For Bank on Mini Map');
if (FindSymbol( x, y, 'bank'))then
begin;
Writeln('Found bank!');
Mouse( x, y, 5, 5, True);
Wait(RandomRange(2000, 3000));
Exit;
end else
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Walking To Bank';
end;

procedure OpenASBandBank;

begin
if (not (Loggedin)) then
Exit;
begin
OpenBankFast('feb');
if (not (BankScreen)) then
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'At The Bank';
Logout;
Exit;
Deposit(1,28,true);
end;
CloseBank;
end;


procedure Eat;
begin
CakeDTM := DTMFromString('78DA63AC62646078C28002EEDEBCC1F01F480' +
'36518FE03012348CD0D0634C0C8C00F5503E6750259F709A80199' +
'F39E809A1C4CF7C064616A0058570E9B');
BreadDTM := DTMFromString('78DA63AC66646078CC800226950B31FC07D24' +
'01986FF40C0D80A64DD6240038C0CFC5035605E3E90F596809A52' +
'20EB3E01358D40D64B4C350C486A0072400D2E');
CCakeDTM := DTMFromString('78DA63AC62646078CA8002729D7819FE0369A' +
'00CC37F206004A9B9C980061819F8A16AC0BC7620EB3901352073' +
'3E1050930F643DC254C380A406003B3F0CD3');

if HpPercent <50 then
begin
while (DTMRotated(CakeDTM, x, y, MiX1, MiY1, MiX2, MiY2))do
begin
MouseItem(CakeDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;
while (DTMRotated(BreadDTM, x, y, MiX1, MiY1, MiX2, MiY2)) do
begin
MouseItem(BreadDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;
while (DTMRotated(CCakeDTM, x, y, MiX1, MiY1, MiX2, MiY2)) do
begin
MouseItem(CCakeDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;
end;
FreeDTM(CakeDTM);
FreeDTM(BreadDTM);
FreeDTM(CCakeDTM);
end;


procedure Walk2Stall1;

begin
SetRun(True);
Wait (RandomRange(200, 300));
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 30, 180, -1, 0)) then
begin
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 40, 180, -1, 0)) then
begin
WriteLn('Failed Walking To Stall, Post Error on Thread.');
end;
end else
FFlag(5);
Wait(RandomRange(1000, 2000));
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 90 ,57 , -1, 0)) then
begin
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 100 ,57 , -1, 0)) then
begin
WriteLn('Failed Walking To Stall, Post Error on Thread.');
end;
end else
FFlag(5);
Wait(RandomRange(1000, 2000));
if FindObjCustom(x,y,['Sack','acks','Sacks'],[4287091,3825511,4023405,4484985,3693667],5)then
begin
MMouse(x,y,1,1);
Wait(RandomRange(200, 300));
if (IsUpTextMultiCustom(['Sack','acks','Sacks']))then
begin
Mouse(x, y, 1, 1, True);
Exit;
end;
end;
WriteLn('Cant Get to North End Of Stall,Please Report Error On Thread');
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Walking To Stall';
end;


procedure ProgressReport;
begin
Status('Progress Report');
ClearDebug;
Writeln(',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,');
Writeln('/\ Time Running : ' + TimeRunning + ' /\');
Writeln('/\ Stole From Stall : ' + IntToStr(AmtStolen) + ' /\ ');
Writeln('/\ Banked : ' + IntToStr(LoadsDone) + ' /\');
Writeln('/\ Thanks For Using NCDS Thieve And Bank! /\');
Writeln('`````````````````````````````````````````````````');
end;


procedure AntiBan;

begin
case random(20) of
0 : case random (100) of
10 : TypeSend(AddMistakes('I hate thieving lol its so boring', 20));
20 : TypeSend(AddMistakes('thieve lvl?', 20));
30 : TypeSend(AddMistakes('heyyy', 20));
40 : TypeSend(AddMistakes('Nice Armor!', 20));
50 : TypeSend(AddMistakes('Stupid Guards', 20));
60 : TypeSend(AddMistakes('ugh 99 thieve takes forever', 20));
70 : TypeSend(AddMistakes('Its Almost my Birthday!', 20));
80 : TypeSend(AddMistakes('Fresh Prince Rulezz d00d!', 20));
90 : TypeSend(AddMistakes('Just bought a new LapTop :)', 20));
100 : TypeSend(AddMistakes('Emachines are no good :/', 20));
end;
4 : SleepAndMoveMouse(400+random(200));
6 : case random (9) of
0 : DoEmote(3);
4 : DoEmote(7);
8 : DoEmote(15);
end;
10 : BoredHuman ;
12 : case random(9) of
0 : HoverSkill('Thieving', False);
4 : HoverSkill('Random', False);
8 : HoverSkill('Strength', False);
end;
14 : RandomRClick ;
18 : PickUpMouse;
20 : case random(30) of
15 : begin
WriteLn('Sleep Time!');
Status('Sleeping...');
Logout;
Wait((SleepTime)+RandomRange( 60000, 240000));
LoginPlayer;
Wait(1000+Random(500));
end;
end;
end;
end;


procedure FindStall;

begin
if (not(Loggedin))then
Exit;
if FindObjTPA(x, y, 9677753, 5, -1, 5, 5, 10,['Baker','ake','aker'])then
begin
MMouse(x , y , 1 , 1);
Wait (Randomrange(100, 200));
if (IsUpTextMultiCustom(['aker','Bake','ake'])) then
begin
case random(2)of
0 : begin
Mouse(x, y, 1, 1, True);
wait(RandomRange(300, 400));
end;
1 : begin
Mouse(x, y, 1, 1, False);
wait(RandomRange(300, 400));
ChooseOption('teal');
end;
end;
end;
WriteLn('Stole From Stall!');
Inc(AmtStolen);
FindNormalRandoms;
Exit;
end;
WriteLn('Dindt Find Stall, Trying 1 More Time');
if FindObjTPA( x, y, 9677753, 10, -1, 5, 5, 10, ['Baker','ake','aker'])then
begin
MMouse(x , y , 1 , 1);
Wait (100 + random (100));
if (IsUpTextMultiCustom(['aker','Bake','ake'])) then
begin
case random(2)of
0 : begin
Mouse(x, y, 1, 1, True);
wait(RandomRange(100, 200));
end;
1 : begin
Mouse(x, y, 1, 1, False);
wait(RandomRange(100, 300));
ChooseOption('teal');
end;
end;
AntiBan;
WriteLn('Stole From Stall!');
Inc(AmtStolen);
Exit;
end;
writeln('Could Not Find Stall Please Post Error on the Proper Thread');
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Stealing From Stall';
end;
end;

function NInFight: Boolean;

Var x, y : Integer;

begin
Result := (FindColor(x, y, 65280, 242, 142, 283, 158) or
FindColor(x, y, 255, 242, 142, 283, 158));
end;



function DontDie1: Boolean;

begin
if HpPercent < 50 then
begin
WriteLn('Running so we dont die');
RunAway(DirectionToRun, True, 1, 9000) Result:= True;
end;
end;


procedure NAFOutFight;

var
T: integer;
begin
if Players[CurrentPlayer].Booleans[6] then
T := GetSystemTime - 12000
else
T := GetSystemTime;
while not NInFight and (TimeFromMark(T) < 5000) do wait(100);
if NInFight then
begin
Status('Killing monster...');
repeat
Wait(800+random(300));
DontDie1;
Wait(1500+random(500));
If Players[CurrentPlayer].Booleans[0] then
Break;
until(not NInFight) or (not LoggedIn)
Status('');
end else
Wait(300);
end;


procedure AntiRandom;

begin
if FindBox=False then
exit;
begin
if FindBox=True then
Wait (100+random(100));
SolveBox;
end;
SolveDemon;
SolveFrog;
SolveMaze;
TouchShrine;
SolvePillory;
SolveSandWich;
end;


procedure MainLoop;

begin
repeat
FindNormalRandoms;
FindStall;
AntiBan;
DontDie1;
NInFight;
NAFOutFight;
AntiRandom;
until (InvFull)
Walk2Bank1;
OpenASBandBank;
Inc(LoadsDone);
Walk2Stall1;
ProgressReport;
Wait (500+random(500));
MainLoop;
end;


begin
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
FindNormalRandoms;
Retaliate(True);
MakeCompass('N');
SetAngle(True);
repeat
MainLoop;
until LoadsDone >= LoadsToThieve;
NextPlayer(True);
end.

Nava2

2009-01-08 20:08:24

No, global x, y's. No multiplayer.

Sorry, I vote hard, but you are have inefficient code, and that, is an annoyance to me.

I'm a stickler.

Better luck next time :)

NCDS

2009-01-08 20:20:11

From: Nava2
No, global x, y's. No multiplayer.

Sorry, I vote hard, but you are have inefficient code, and that, is an annoyance to me.

I'm a stickler.

Better luck next time :)


Whats wrong with Global x ,y's ? and I did add MultiPlayer in the one I just posted above.

TViYH

2009-01-08 20:31:28

Mate. The one you just added makes it switch to the next player at the very end of the script. What good will that do?

benjaa

2009-01-08 20:34:59

repeat
MainLoop;
until LoadsDone >= LoadsToThieve or not (LoggedIn)

Also, add in that part i said in my first post;
Players[0].Integers[0] := 10// loads to steal
It's simple and handy part

and Global x, y is not a good idea, as stated above. Just put them into the procedures that use them

Resting would also dramatically improve this script

and FindObjCustom never picks up capitals AFAIK

You're pretty close to ready, but just little things are letting you down
Still holding vote

Pyro

2009-01-08 20:47:21

Hmm nice try but not quite what i was expecting. You dont want to set the player false. You need to let SRL do that. All you need to do is logout… I dont really know how to explain it.

I wrote : http://www.villavu.com/forum/showthread.php?t=12860?t=14248

I wrote it early last year but it is still basically what you need in way of failsafes and logging to go into the next player.

noidea

2009-01-08 20:47:25

From: N C D S
Whats wrong with Global x ,y's ? and I did add MultiPlayer in the one I just posted above.


Edit the application ;)

I really like your style mate :)

I vote yes!
Although, get your ass to the TPA's tutorials :)

NCDS

2009-01-08 21:08:15

From: noidea
Edit the application ;)

I really like your style mate :)

I vote yes!
Although, get your ass to the TPA's tutorials :)


Thank you very much :)

@ Pyro thank you very much aswell, I will read that momentarily.

@ Everyone else! I updated the script in the Application so Take a Peek.

Oh and @ TViYH, I have that there so that when LoadsDone >= LoadsToThieve it will go to next player, correct?

Benjaa! lol, I added it but it wouldnt Compile. Said I have Duplicate Identifier 'Players'. What is the point of Changing it to that anyways?

TViYH

2009-01-08 21:09:54

N C D S: You have it right at the end of the script. All it does is set the player to the boolean, logout, and login the next player. It doesn't redo your mainloop :P You need to put it in a repeat.

benjaa

2009-01-08 21:18:36

zomg, like this

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Integers[0] := 10;//loads
in declareplayers

is that what you tried???

Runescapian321

2009-01-08 21:36:06

I voted Yes. You have a great attitude and are active. The script may not be amazing, but, as Fakawi said, we have made the bar too high. A month ago people were saying TPAs won't, by any means, hurt you if you don't have them. They were purely an 'extra'. Look at it now :(

NCDS

2009-01-08 21:41:27

From: TViYH
N C D S: You have it right at the end of the script. All it does is set the player to the boolean, logout, and login the next player. It doesn't redo your mainloop :P You need to put it in a repeat.


Fixed Thank you! :)

From: benjaa
zomg, like this

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Integers[0] := 10;//loads
in declareplayers

is that what you tried???


And Fixed thanks :)

TViYH

2009-01-08 21:46:52

You still need if not LoggedIn then Exit; in all of your functions that use RS while logged in.

NCDS

2009-01-08 22:13:13

From: TViYH
You still need if not LoggedIn then Exit; in all of your functions that use RS while logged in.


oops :redface:

Fixed!



EDT:….Please dont vote without posting your reasoning. I would like to know why you voted what

benjaa

2009-01-08 23:40:42

I'm gonna vote Yes

Reasoning: you took all the suggestions and fixed them up, and i hope you'll read up a couple more tutorials about multiplayer in members

The script is by no means great, but you are willing to learn which is great!
Good luck

richk1693

2009-01-08 23:50:16

Yes. Good attitude, and a good script. It's not perfect, but attitude comes before script. I vote yes.

NCDS

2009-01-08 23:56:39

Well Thank you both, Very much :)

p.s. I've been reading tuts all night ;)

Pyro

2009-01-09 00:36:42

Yep i gave you a yes aswell :)

There is still alot to learn. But i think you can manage it. To be honest i dont think TPA's are terribly important etc. You just want to learn some sound logic.

" Its not how you do it. Its if you do it. " Thats pretty much how ill sum it up. Doesnt matter how you find that rock, aslong as it finds that rock :)

benjaa

2009-01-09 00:38:33

To be honest i dont think TPA's are terribly important


I've never used TPA's… ever

NCDS

2009-01-09 00:58:43

From: Pyro
Yep i gave you a yes aswell :)

There is still alot to learn. But i think you can manage it. To be honest i dont think TPA's are terribly important etc. You just want to learn some sound logic.

" Its not how you do it. Its if you do it. " Thats pretty much how ill sum it up. Doesnt matter how you find that rock, aslong as it finds that rock :)


Thank You very much :) it really does mean alot!


EDT: IF YOUR GOING TO VOTE "NO" THEN POST WHY! Im doing this for a learning experience, tell me why you say "no".

Naike

2009-01-09 01:32:12

Voted yes mainly becuase you keep uptading it and really trying to get in :), and the script is good ^^

Floor66

2009-01-09 01:46:22

Yes.

Why?
As said before, you really want this, and have the scripting talents to do this.
You kept on changing, updating your script so you could get in =]
The script looks decent, and I hope to see more of you!

Gu3st...

2009-01-09 01:50:08

Yes.

procedure OpenASBandBank;

begin
if (not (Loggedin)) then
Exit;
begin
OpenBankFast('feb');
if (not (BankScreen)) then
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'At The Bank';
Logout;
Exit;
Deposit(1,28,true);
end;
CloseBank;
end;
This would not work, read a tut about begins and end;s. :)

NCDS

2009-01-09 02:02:06

From: Floor66
Yes.

Why?
As said before, you really want this, and have the scripting talents to do this.
You kept on changing, updating your script so you could get in =]
The script looks decent, and I hope to see more of you!


Thank you very much, and you will definately see more of me :)


From: Zytex!
Yes.

procedure OpenASBandBank;

begin
if (not (Loggedin)) then
Exit;
begin
OpenBankFast('feb');
if (not (BankScreen)) then
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'At The Bank';
Logout;
Exit;
Deposit(1,28,true);
end;
CloseBank;
end;
This would not work, read a tut about begins and end;s. :)


Thank you very much :)

procedure OpenASBandBank;

begin
if (not (Loggedin)) then
Exit;
begin
OpenBankFast('feb');
if (not (BankScreen)) then
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'At The Bank';
Logout;
Exit;
end; // would it be like that or should it be "end else"?
Deposit(1,28,true);
CloseBank;
end;

Tootoot222

2009-01-09 02:34:43

I think that zytex meant something more like this:

procedure OpenASBandBank;
begin
if (not (Loggedin)) then
Exit;
OpenBankFast('feb');
Wait(300 + Random(300)); //some wait to prevent lag
if (not (BankScreen)) then
begin
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'At The Bank';
Logout;
Exit;
end;
Deposit(1,28,true);
CloseBank;
end;

before you were only setting the active to false if the bank screen wasn't open, and it would set the loc, logout and exit either way

I like your attitude, you seem like you're capable of scripting and willing to learn, i'm going to vote YES

NCDS

2009-01-09 02:49:11

Well thank you very much :)

and yeah I get what your saying about that!

TViYH

2009-01-09 07:25:06

Voting yes due to determination and attitude.

Torrent of Flame

2009-01-09 11:21:54

Yes. Great attitude.

NCDS

2009-01-09 12:29:05

Thank You guys :)

The_Shermanator

2009-01-09 13:05:01

Yes, Congrats man!

-The_Shermanator :garfield:

NCDS

2009-01-09 13:28:13

From: The_Shermanator
Yes, Congrats man!

-The_Shermanator :garfield:


Ahh Thank you man!

Ive been missin you where have you beeen? get on MSN sometime?

boberman

2009-01-09 14:05:15

Yes from me. The script is a bit simple, but I don't know what I would add to it, it's just right for me.

Good job.

NCDS

2009-01-09 14:44:22

From: boberman
Yes from me. The script is a bit simple, but I don't know what I would add to it, it's just right for me.

Good job.


Thank you :)
thank you all very much!

Blumblebee

2009-01-09 16:37:00

I voted Yes and pure attitude. The script is ok, but your attitude and how much you strive to learn/improve makes me think your ready.

Quickmarch

2009-01-09 16:41:21

I'm voting yes. I think you have spent a long time on this script and your attitude is good :)

Timer

2009-01-09 18:25:31

what the?
No offence, this script sucks, and your still getting in? :confused:

program NCDSBakeStallThieveAndBank;
{.include srl/srl.scar}
///////////////////////////////////////////////////////////////////////
//////////////////////////NCDS' Power Thieve///////////////////////////
///////////////////////////////////////////////////////////////////////
/// ///
/// Thank you for using NCDS' Auto Thiever! ///
/// ///
/// Make Sure you Start at the Eastern Bake Stall in Ardougne ///
/// ///
/// I Would Like To Thank: ///
/// TViYH ///
/// Shermanator ///
/// noidea ///
/// Narcle ///
/// Along With All SRL Devs For Making This Possible ///
/// ///
/// Please Post ALL Progress Reports and The Reason it Stopped ///
/// ///
/// Find More INFO at <a href="http://WWW.SRL-FORUMS.COM" target="_blank">WWW.SRL-FORUMS.COM</a> ///
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////




//SETUP Constants and Declare Players!

Const DirectionToRun = 'S' ;
SleepTime = 60000 ; // in MS, 60000 = 1 minute plus a random of 1-3 minutes will be added.
LoadsToThieve = 10; //Loads To Thieve

Var
AmtStolen, LoadsDone,
BankDTM, CCakeDTM, CakeDTM, BreadDTM : integer;//Proper standards please???


procedure DeclarePlayers;

begin


HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Integers[0] := 10;//loads to thieve

Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := True;
Players[1].Integers[0] := 10;//loads to thieve

end;




////////////////////////////////////////////////////////////////////////////////




procedure Walk2Bank1;

var x, y : Integer;

begin
if (not(LoggedIn)) then
Exit;
begin
SetRun(True);
MakeCompass('N');
WriteLn('Walking To Bank');
Wait(RandomRange(200, 300));
RadialRoadWalk(FindVarrockRoadColor, 190, 220, 70, -1, 0);
FFlag(5);
Status('Searching For Bank on Mini Map');
if (FindSymbol( x, y, 'bank'))then
begin;
Writeln('Found bank!');
Mouse( x, y, 5, 5, True);
FFlag(5);
Wait(RandomRange(3000, 5000));
Exit;
end else
BankDTM := DTMFromString('78DA633460646038C280021A4BD218FE0369A' +
'00CC37F20603402B2F6A0AA29719660E087AA0101465D22D4E801' +
'59E708A83126AC06009C320EA6');
RadialRoadWalk(FindVarrockRoadColor, 190, 230, 65, -1, 0);//Fail Safe?
FFlag(5)
if (DTMRotated(BankDTM,x,y,MMX1,MMY1,MMX2,MMY2)) then
begin
WriteLn('FoundBankDTM');
Mouse(x, y, 3, 3, True);
FFlag(5);
FreeDTM(BankDTM);//DONT FORGET
//Your only freeing it if its found? thats dumb..
Exit;
end else
WriteLn('Wheres the Banker? Lets look A bit Closer');
Status('Searching For Bank on Mini Map');
if (FindSymbol( x, y, 'bank'))then
begin;
Writeln('Found bank!');
Mouse( x, y, 5, 5, True);
Wait(RandomRange(2000, 3000));
Exit;
end else
Players[CurrentPlayer].Active := False;// Exit & logout now..?
Players[CurrentPlayer].Loc := 'Walking To Bank';
end;

procedure OpenASBandBank;

begin
if (not (Loggedin)) then
Exit;
begin
OpenBankFast('feb');//fail safe?
if (not (BankScreen)) then
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'At The Bank';
Logout;
Exit;
Deposit(1,28,true); //no begins and ends where needed
end;
CloseBank;
end;


procedure Eat;

var x, y : Integer;

begin
if (not (LoggedIn)) then
Exit;

CakeDTM := DTMFromString('78DA63AC62646078C28002EEDEBCC1F01F480' +
'36518FE03012348CD0D0634C0C8C00F5503E6750259F709A80199' +
'F39E809A1C4CF7C064616A0058570E9B');
BreadDTM := DTMFromString('78DA63AC66646078CC800226950B31FC07D24' +
'01986FF40C0D80A64DD6240038C0CFC5035605E3E90F596809A52' +
'20EB3E01358D40D64B4C350C486A0072400D2E');
CCakeDTM := DTMFromString('78DA63AC62646078CA8002729D7819FE0369A' +
'00CC37F206004A9B9C980061819F8A16AC0BC7620EB3901352073' +
'3E1050930F643DC254C380A406003B3F0CD3');
begin
if HpPercent <50 then
begin
while (DTMRotated(CakeDTM, x, y, MiX1, MiY1, MiX2, MiY2))do
begin
MouseItem(CakeDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;//Endless loop -- No failsafe break.
while (DTMRotated(BreadDTM, x, y, MiX1, MiY1, MiX2, MiY2)) do
begin
MouseItem(BreadDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;//Endless loop -- No failsafe break.
while (DTMRotated(CCakeDTM, x, y, MiX1, MiY1, MiX2, MiY2)) do
begin
MouseItem(CCakeDTM, True);
Wait(RandomRange(1000, 2000));
if HpPercent > 50 then
Exit;
end;//Endless loop -- No failsafe break.
end;
FreeDTM(CakeDTM);
FreeDTM(BreadDTM);
FreeDTM(CCakeDTM); //Usless unless you free them before you exeit above ^^^^^^^
end;


procedure Walk2Stall1;

var x, y : Integer;

begin
if (not (LoggedIn) then
Exit;
begin
SetRun(True);
Wait (RandomRange(200, 300));
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 30, 180, -1, 0)) then
begin
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 40, 180, -1, 0)) then
begin
WriteLn('Failed Walking To Stall, Post Error on Thread.');
end; //Flag?
end else
FFlag(5);
Wait(RandomRange(1000, 2000));
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 90 ,57 , -1, 0)) then
begin
if not (RadialRoadWalk(FindVarrockRoadColor, 0, 100 ,57 , -1, 0)) then
begin
WriteLn('Failed Walking To Stall, Post Error on Thread.');
end;//Flag?
end else
FFlag(5);
Wait(RandomRange(1000, 2000));
if FindObjCustom(x,y,['Sack','acks','Sacks'],[4287091,3825511,4023405,4484985,3693667],5)then
begin
MMouse(x,y,1,1);
Wait(RandomRange(200, 300));
if (IsUpTextMultiCustom(['Sack','acks','Sacks']))then
begin
Mouse(x, y, 1, 1, True);
Exit;
end;
end;
WriteLn('Cant Get to North End Of Stall,Please Report Error On Thread');
Players[CurrentPlayer].Active := False;//Logout and exit???
Players[CurrentPlayer].Loc := 'Walking To Stall';
end;


procedure ProgressReport;
begin
Status('Progress Report');
ClearDebug;
Writeln(',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,');
Writeln('/\ Time Running : ' + TimeRunning + ' /\');
Writeln('/\ Stole From Stall : ' + IntToStr(AmtStolen) + ' /\ ');
Writeln('/\ Banked : ' + IntToStr(LoadsDone) + ' /\');
Writeln('/\ Thanks For Using NCDS Thieve And Bank! /\');
Writeln('`````````````````````````````````````````````````');
end;


procedure AntiBan;

begin
if (not (LoggedIn)) then
Exit;
begin
case random(20) of
0 : case random (100) of
10 : TypeSend(AddMistakes('I hate thieving lol its so boring', 20));
20 : TypeSend(AddMistakes('thieve lvl?', 20));
30 : TypeSend(AddMistakes('heyyy', 20));
40 : TypeSend(AddMistakes('Nice Armor!', 20));
50 : TypeSend(AddMistakes('Stupid Guards', 20));
60 : TypeSend(AddMistakes('ugh 99 thieve takes forever', 20));
70 : TypeSend(AddMistakes('Its Almost my Birthday!', 20));
80 : TypeSend(AddMistakes('Fresh Prince Rulezz d00d!', 20));
90 : TypeSend(AddMistakes('Just bought a new LapTop :)', 20));
100 : TypeSend(AddMistakes('Emachines are no good :/', 20));
end;
4 : SleepAndMoveMouse(400+random(200));
6 : case random (9) of
0 : DoEmote(3);
4 : DoEmote(7);
8 : DoEmote(15);
end;
10 : BoredHuman ;
12 : case random(9) of
0 : HoverSkill('Thieving', False);
4 : HoverSkill('Random', False);
8 : HoverSkill('Strength', False);
end;
14 : RandomRClick ;
18 : PickUpMouse;
20 : case random(30) of
15 : begin
WriteLn('Sleep Time!');
Status('Sleeping...');
Logout;
Wait((SleepTime)+RandomRange( 60000, 240000));
LoginPlayer;
Wait(1000+Random(500));
end;
end;
end;
end;
end;


procedure FindStall;

var x, y : Integer;

begin
if (not(Loggedin))then
Exit;
if FindObjTPA(x, y, 9677753, 5, -1, 5, 5, 10,['Baker','ake','aker'])then
begin
MMouse(x , y , 1 , 1);
Wait (Randomrange(100, 200));
if (IsUpTextMultiCustom(['aker','Bake','ake'])) then
begin
case random(2)of
0 : begin
Mouse(x, y, 1, 1, True);
wait(RandomRange(300, 400));
end;
1 : begin
Mouse(x, y, 1, 1, False);
wait(RandomRange(300, 400));
ChooseOption('teal');
end;
end;
end;
WriteLn('Stole From Stall!');
Inc(AmtStolen);
FindNormalRandoms;
Exit;
end;
WriteLn('Dindt Find Stall, Trying 1 More Time');
if FindObjTPA( x, y, 9677753, 10, -1, 5, 5, 10, ['Baker','ake','aker'])then
begin
MMouse(x , y , 1 , 1);
Wait (100 + random (100));
if (IsUpTextMultiCustom(['aker','Bake','ake'])) then
begin
case random(2)of
0 : begin
Mouse(x, y, 1, 1, True);
wait(RandomRange(100, 200));
end;
1 : begin
Mouse(x, y, 1, 1, False);
wait(RandomRange(100, 300));
ChooseOption('teal');
end;
end;
AntiBan;
WriteLn('Stole From Stall!');
Inc(AmtStolen);
Exit;
end;
writeln('Could Not Find Stall Please Post Error on the Proper Thread');
Players[CurrentPlayer].Active := False;//Logout and exit?
Players[CurrentPlayer].Loc := 'Stealing From Stall';
end;
end;

function NInFight: Boolean;

Var x, y : Integer;

begin
Result := (FindColor(x, y, 65280, 242, 142, 283, 158) or
FindColor(x, y, 255, 242, 142, 283, 158));
end;



function DontDie1: Boolean;

begin
if (not (LoggedIn)) then
Exit;
if HpPercent < 50 then
begin
WriteLn('Running so we dont die');
RunAway(DirectionToRun, True, 1, 9000) Result:= True;
end;
end;


procedure NAFOutFight;

var
T: integer;
begin
if Players[CurrentPlayer].Booleans[6] then
T := GetSystemTime - 12000
else
T := GetSystemTime;
while not NInFight and (TimeFromMark(T) < 5000) do wait(100);
if NInFight then
begin
Status('Killing monster...');
repeat
Wait(800+random(300));
DontDie1;
Wait(1500+random(500));
If Players[CurrentPlayer].Booleans[0] then
Break;
until(not NInFight) or (not LoggedIn)
Status('');
end else
Wait(300);
end;


procedure AntiRandom;

begin
if (not (LoggedIn)) then
Exit;
begin
if FindBox=False then//not FindBox? JUST USE FINDNORMALRANDOMS.
exit;
begin
if FindBox then
Wait (100+random(100));
SolveBox;//no prober begins and ends.
end;
SolveDemon;
SolveFrog;
SolveMaze;
TouchShrine;
SolvePillory;
SolveSandWich;
end;
end;


procedure MainLoop;

begin
repeat
FindNormalRandoms;
FindStall;
AntiBan;
DontDie1;
NInFight;
NAFOutFight;
AntiRandom;
until (InvFull)//endless loop? -.-
Walk2Bank1;
OpenASBandBank;
Inc(LoadsDone);
Walk2Stall1;
ProgressReport;
Wait (500+random(500));
MainLoop;
end;


begin
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
FindNormalRandoms;
Retaliate(True);
MakeCompass('N');
SetAngle(True);
repeat
repeat
MainLoop;
until (LoadsDone >= Players[0].Integers[0]) or not LoggedIn;
NextPlayer(LoggedIn);
until (AllPlayersInactive);
end.

noidea

2009-01-09 18:39:16

Chill Timer, this guy has tried very hard to get to this point. He will learn as time goes on.

benjaa

2009-01-09 19:04:53

The current trend looks like your in bud, congratz!

Runescapian321

2009-01-09 19:04:58

@Timer

http://www.villavu.com/forum/showthread.php?t=35644?t=38429

N C D S fulfills 3/3 of Fakawi's points, yet Fakawi said an applicant only needs one. That is why he is on the Yes side.

NCDS

2009-01-09 20:45:23

noidea, Benjaa, Runescapian, Quickmarch, Thank you very much.

Timer, how is
 until(InvFull) 

and endless loop?

TViYH

2009-01-09 20:48:07

It's not, Timer is just a nerd.

Pyro

2009-01-09 21:46:52

From: TViYH
It's not, Timer is just a nerd.


Welll actually….

Its because if your character gets logged out or something else then ofcourse your inv will never be filled.

In your case doesnt matter because its one player. But if it was multiplayer and one player got logged out for whatever reason, then it would never continue on.

NCDS

2009-01-09 22:02:53

From: Pyro
Welll actually….

Its because if your character gets logged out or something else then ofcourse your inv will never be filled.

In your case doesnt matter because its one player. But if it was multiplayer and one player got logged out for whatever reason, then it would never continue on.


! I will fix that then because if you look at the script, I added MultiPlayer lol. First time ever doing that tho so it may be a bit ify.

TViYH

2009-01-09 22:53:15

I thought he had if ((InvFull) or (not LoggedIn) then?

Apparently not =/

NCDS

2009-01-09 23:29:39

Fixed!

JAD

2009-01-09 23:39:54

Yes from me.

Your location logic is logically incorrect though.

If IsUpText('Online') then WriteLn('At the Comp!');

Your computer is always online unless you unplugged your modem/router. So being online doesn't necessarily mean you're at the comp… You're going to have to use a different condition to make such a statement as saying At the Comp.

I was so close to giving you a no for that reason alone.

NCDS

2009-01-10 00:18:49

hahaha

Well thank you for giving me the yes.

Give me a few minutes to think of something creative and Ill switch it ;)

EDT: There, this ones pretty long tho so I think Im going to change again lol

Dervish

2009-01-10 06:25:53

Good attitude, good (and useful) posts, helpful.
:)

Decent script, does its job, some flaws.

Grade : 80/100


You also corrected (almost) everything we pointed out and want to learn.

Yes from me.

Torrent of Flame

2009-01-10 07:43:44

Timer, who cares about a little standard flaw in the variables? Jesus, how pathetic is that? I mean there's being pedantic.. and then theres that..

NCDS

2009-01-10 12:44:49

From: Torrent of Flame
Timer, who cares about a little standard flaw in the variables? Jesus, how pathetic is that? I mean there's being pedantic.. and then theres that..


I was wondering the same thing. It is Clearly readable, and as of my knowledge thats what Standards are for? I thought I made it pretty clean.

and Timer, Have you tested the script? because I highly doubt you have.
You cant really say it sucks if you dont test it :/

TViYH

2009-01-10 13:03:30

You don't need to run a script to tell if it sucks.

You can tell how good it is by how extensive the script is.

NCDS

2009-01-10 13:38:11

Maybe how skillful the procedures are, and you might be able to tell to a certain extent, but I dont think you can actually tell how efficient a script will work until you run it.

I have had this script run for 3-4 hours without a problem me stopping it myself, so it cant be that bad.

TViYH

2009-01-10 14:14:42

But we're looking at how the script is written, how efficient of scripting it was written in, how much sense it makes, order, etc.

WT-Fakawi

2009-01-10 14:18:07

In!