SRL Archive - Archive

Timer150 - SRL Member Application Form


Timer

2007-07-24 14:28:24

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

What is the meaning to life?


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


Programming Knowledge


Other Communitys
Sythe

How Long have You Played Runescape
About 4 Years

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

Im Veary Good At Scar Scripting, I Can Do Bitmaps, Auto Color, Fail-Safes, and ect.. Allthough, Some Times I Get Board When Writing A Scar Script and Don't Wanna Finish It… I Get Around To It Though! When I First became A Autoer I Always Was Using Scar 2.03 and Never Botherd to Look For Updates. Then I Finnaly Upgraded To Scar Divi 3.06 Cause Alot Of Scripts Started Being Made With SRL, and all the includes Got Out Dated and My Skills and ideas couldn't be used on scar 2.03, and I got some ideas to add to SRL, possibly! =)

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

{=================================================]
[ Auto Coal Miner ]
[ By: Timer150 ]
[=================================================]
[+++++++++++++++++++++++++++++++++++++++++++++++++]
| Instructions: |
| Start In Dwarf Mines [ Recomended ] |
| Have Pick Axe Equiped Or Not Equiped |
| Fill Out Set-Up Bellow |
| Begin Script Logged-In |
[=================================================]
[+++++++++++++++++++++++++++++++++++++++++++++++++]
[ Updates Working On Now... ]
[+++++++++++++++++++++++++++++++++++++++++++++++++]
[ 1. Fail Safes ]
[ 2. Banking ]
[ 3. Auto Color ]
[ 4. Pick Axe Head Finder / Attacher ]
[ 5. Multi - User ]
[ 6. Better Forum ]
[+++++++++++++++++++++++++++++++++++++++++++++++++]
| Creadits: |
|+++++++++++++++++++++++++++++++++++++++++++++++++|
| Account Creadits For Letting Me Test The Script:|
| |
| Timer150 |
| Warior Man75 |
| Sylux Noxus |
|+++++++++++++++++++++++++++++++++++++++++++++++++|
| Creadits For Anti - Randoms |
|+++++++++++++++++++++++++++++++++++++++++++++++++|
| WT-Fakawi------------ For Fast Function |
| Stupedspam--------|-- For Suppling Procedures |
| |-- and WT-Fakawi's Function |
| Timer150------------- For editing the stuff |
|=================================================|
|+++++++++++++++++++++++++++++++++++++++++++++++++|
| Other Information: |
| |
| NO Auto Log-In ( Yet ) |
|=================================================|
|+++++++++++++++++++++++++++++++++++++++++++++++++|
[=================================================}
Program Coal_Miner;
{===++Set-Up++===}
{===++Screen++===}// |--------------|
Const Coal1= 0;{===++ Color Of Coal On Screen ++===}// |about 4-5secs.|---|
Const Coal3= 0;{===++ Color Of Coal On Screen ++===}// |So The Out Come |
Const Coal4= 0;{===++ Color Of Coal On Screen ++===}// |Is About 5-6 secs |
{===++Inventory / Weildings / Random++===}// |Per Coal |
Const Coal2= 0;{===++ Color Of Coal In Inventory ++===}// |------------------|
Const OreToMine= 100;{===+++ How Much Coal To Mine / Drop +++===}// ^
Const WaitTimeCoal= 1000 ;{===+++ 1 Seconds Is Recomended... Because Randoms Take | ++===}

{===++Set-Up End++===}
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
var
EndScript , LoggedOut: Boolean;
Auto_Coal_Miner : TForm;
Label1 , Label2: TLabel;
ComboBox1, ComboBox2 : TComboBox;
PickAxe2, Run2, Run:string;
Button1 : TButton;
DidRandomHappen : Boolean; {

{*******************************************************************************
procedure Logout;
By: Stupid3ooo, Flyboy
Description: Logs you out, I modified it for my script. =)
*******************************************************************************}

procedure Logout2;
var
x, y, bmpLogOut, FailSafe: Integer;
begin
bmpLogOut := BitmapFromString(26, 2, 'z78DA8D4F5B0A80300CBB52D321' +
'759F7335F73F92D0FA519982F90825E4416914278325B03710CE4' +
'54FD88689D19B3615FECEA67EF350E0CC1E9B701CABBFEA8FF50F' +
'7F6D4EAE9E956B674DD5EFF27ED90AE705B1A445B8');
try
MarkTime(FailSafe);
if (LogTimeOut) then
begin
Wait(90000);
end
else
if (LoggedIn) then
begin
if GetCurrentTab <> 10 then GameTab(10);

wait(2000);
while ((TimeFromMark(FailSafe) < 90000) and LoggedIn) do
begin
if FindBitmapIn(bmpLogOut, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 20, 10, True);
LoggedOut:=true;
wait(10000);
end;
end;
finally
FreeBitmap(bmpLogOut);
end; //end try/finally
end;

{*******************************************************************************
function FindNormalRandoms: Boolean;
by: The SRL Developers Team!... all time sexiness by Mutant
Description: Calls the 'normal' random checks.
*******************************************************************************}

function FindNormalRandoms2: Boolean;
var
i: Integer;
begin
for i := 1 to 16 do
begin
case I of
1: CloseWindow;
2: if FindTalk then
Result := True;
3: if FindDead then
Result := True;
4: if FindMod then
Result := True;
5: if FindMime then
Result := True;
6: if FindMaze then
Result := True;
7: if FindQuiz then
Result := True;
8: if FindDemon then
Result := True;
9: if FindScapeRune then
Result := True;
10: if FindTalk then // Call it twice
Result := True;
11: if FindLamp(LampSkill) then // Maybe we missed it?
Result := True;
12: if (FindNewBox) then
begin
Result := True;
if (UseBoxSolver) then
SolveBox
else
GambleNewBox;
end;
13: if FindTrade then
Result := True;
14:
begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].Rand := 'No GameTab';
//Players[CurrentPlayer].loc := 'No GameTab';
Logout2;
Exit;
end;
end;
15: if RC then
Result := True;
16:SaveToChatLog
end;
if Result then
Break;
Wait(1);
end;
end;

function FindNormalRandom: Boolean;
var
i: Integer;
begin
for i := 1 to 16 do
begin
case I of
1: CloseWindow;
2: if FindTalk then
Result := True;
3: if FindDead then
Result := True;
4: if FindMod then
Result := True;
5: if FindMime then
Result := True;
6: if FindMaze then
Result := True;
7: if FindQuiz then
Result := True;
8: if FindDemon then
Result := True;
9: if FindScapeRune then
Result := True;
10: if FindTalk then // Call it twice
Result := True;
11: if FindLamp(LampSkill) then // Maybe we missed it?
Result := True;
12: if (FindNewBox) then
begin
Result := True;
if (UseBoxSolver) then
SolveBox
else
GambleNewBox;
end;
13: if FindTrade then
Result := True;
14:
begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout2;
Exit;
end;
end;
15: SaveToChatLog;
16: if RC then
Result := True;
end;
Wait(1);
end;
end;


function FindFastRandoms: Boolean; //By WT-Fakawi.
var
i: Integer;
begin
for i := 1 to 8 do
begin
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout2;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout2;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
if (Result = true) then
DidRandomHappen := true;
end;


procedure gasattck;
begin
if (FindGas(x, y)) then
begin
RunAwayDirection('N')
Wait(15000)
RunBack;
end;
end;

procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms2;
end;

procedure antirandom;
begin
FindnormalRandom;
gasattck;
FindFastRandoms;
if (FindNormalRandoms) then
DidRandomhappen := true;
if (findFight = true) then
begin
RunAwayDirection('N');
Wait(12000 + Random(4000));
RunBack;
end;
end;


procedure DoRandoms;
Begin
Findrandoms;
antirandom;
If(LoggedOut=True)then
Logout;
Terminatescript;
end;

procedure Choose(sender : tobject);
begin
openwebpage('http://www.villavu.com/forum/showthread.php?t=12930')
end;

Procedure Setup;
begin
If(PickAxe= 1)then
begin
Ore:=24;
begin
Writeln('Your Weilding A Pick, So I Will Mine 24')
end;
end;
end;

Procedure Setup2;
Begin
If(PickAxe= 2)then
begin
Ore:=23;
Begin
Writeln('Your Not Weilding A Pick, So I Will Mine 23')
end;
end;
end;

Procedure Mine_Coal;
begin
if
findcolor(x,y,Coal1,201,113,327,220)
or
findcolor(x,y,Coal3,201,113,327,220)
or
findcolor(x,y,Coal4,201,113,327,220)
then
wait(random(50)+500)
MMouse(x,y,1,1)
wait(random(50)+100)
Mouse(x,y,1,1,true)
end;

Var CoalMined:integer;

Procedure ReportProgress;
Begin;
ClearDebug;
Writeln('Progress Report - Auto CoalMiner Ver 12.3')
Writeln('By: Timer150')
Writeln('')
Writeln('Ran Script For: ' + TimeRunning)
Writeln('')
Writeln('Averaged Coal/Exp')
Writeln('Mined ' + inttostr(CoalMined) + ' Coal')
Writeln('Exp Gained ' + inttostr(CoalMined*50))
SrlRandomsReport;
End;

Procedure Drop_Coal(Color:Integer);
var
x, y, Drop:Integer;
begin
Drop:= DTMFromString('78DA63B4636260E064644006FFFFFF07D3305' +
'1465BA01A5E5435300057E30A542344408D07500D0F01BBF48854' +
'C346408D19A69B31D480FCCE875F0D00B9181450');
while(FindColor(x,y,Color,548,168,761,496))do
begin
Mouse(x+5,y,1,1,false);
Wait(900);
if(FindDtm(Drop,x,y,548,168,761,496))then
begin
Mouse(x,y,1,1,true)
Wait(450);
end;
end;
FreeDtm(Drop);
end;

Var Z:integer;

Procedure MineOre;
Begin;
Repeat;
Mine_Coal;
CoalMined:=CoalMined+1;
ReportVars[0] := ReportVars[0] + 1;
ReportProgress;
Z:=z+1;
DoRandoms;
wait(WaitTimeCoal)
Until(Z=Ore)or(CoalMined=OreToMine);
End;

Procedure DoItAll;
Begin;
MineOre;
Drop_Coal(Coal2);
DoRandoms;
End;

Procedure Figer;
Begin
Case(PickAxe2)Of
'I'#39'm Weiling A Pick' : PickAxe:=1;
'I'#39'm Not Weiling A Pick': PickAxe:=2;
end;
end;

Procedure Figer2;
Begin
Case(Run2)Of
'N': Run:='N';
'S': Run:='S';
'W': Run:='W';
'E': Run:='E';
end;
end;

Procedure StartScript(Sender:TObject);
begin
Auto_Coal_Miner.ModalResult:= 1;
EndScript:=False;
PickAxe2:=ComboBox1.Text;
Run2:=ComboBox2.Text;
Figer;
Figer2;
end;

procedure InitForm;
begin
Auto_Coal_Miner := CreateForm;
with Auto_Coal_Miner do
begin
Position := poScreenCenter;
BorderStyle := bsSingle;
BorderIcons := [biSystemMenu];
FormStyle := fsStayOnTop;
Width := 250;
Height := 210;
Caption := 'Coal Powerminer Ver 12.3';
Color := clBtnFace;
Font.Color := clWindowText;
Font.Height := -11;
Font.Name := 'MS Sans Serif';
Font.Style := [];
PixelsPerInch := 96;
end;
Label1 := TLabel.Create(Auto_Coal_Miner);
with Label1 do
begin
Parent := Auto_Coal_Miner;
Left := 11;
Top := 22;
Width := 32;
Height := 13;
Caption := 'Pickaxe';
end;
Label2 := TLabel.Create(Auto_Coal_Miner);
with Label2 do
begin
Parent := Auto_Coal_Miner;
Left := 11;
Top := 64;
Width := 32;
Height := 13;
Caption := 'Run Direction';
end;
ComboBox1 := TComboBox.Create(Auto_Coal_Miner);
with ComboBox1 do
begin
ComboBox1.Parent := Auto_Coal_Miner;
ComboBox1.Left := 77;
ComboBox1.Top := 18;
ComboBox1.Width := 145;
ComboBox1.Height := 21;
ComboBox1.ItemHeight := 13;
ComboBox1.Hint := 'Are You Weilding A Pick?';
ComboBox1.ParentShowHint := False;
ComboBox1.ShowHint := True;
ComboBox1.TabOrder := 8;
ComboBox1.Text := PickAxe2;
ComboBox1.Items.Add('I'#39'm Weiling A Pick')
ComboBox1.Items.Add('I'#39'm Not Weiling A Pick')
end;
Button1 := TButton.Create(Auto_Coal_Miner);
with Button1 do
begin
Parent := Auto_Coal_Miner;
Left := 76;
Top := 106;
Width := 75;
Height := 25;
Caption := 'Start';
TabOrder := 11;
OnClick := @StartScript;
end;
ComboBox2 := TComboBox.Create(Auto_Coal_Miner);
with ComboBox2 do
begin
ComboBox2.Parent := Auto_Coal_Miner;
ComboBox2.Left := 77;
ComboBox2.Top := 60;
ComboBox2.Width := 145;
ComboBox2.Height := 21;
ComboBox2.ItemHeight := 13;
ComboBox2.Hint := 'Direction To Run From Randoms and / or Attacks...';
ComboBox2.ParentShowHint := False;
ComboBox2.ShowHint := True;
ComboBox2.TabOrder := 8;
ComboBox2.Text := Run2;
ComboBox2.Items.Add('N')
ComboBox2.Items.Add('S')
ComboBox2.Items.Add('W')
ComboBox2.Items.Add('E')
end;
end;

procedure SafeInitForm;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('InitForm', V);
end;

procedure ShowInitFormModal;
begin
Auto_Coal_Miner.ShowModal;
end;

procedure SafeShowInitFormModal;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('ShowInitFormModal', V);
end;

procedure MainInitForm;
begin
try
SafeInitForm;
SafeShowInitFormModal;
finally
FreeForm(Auto_Coal_Miner);
except
WriteLn('An error seems to have occurred in: InitForm');
end;
end;

var
EndMinedAll : Boolean;
Done : TForm;
Label3, Label4 : TLabel;
Button2 : TButton;

procedure MinedAllOnClose(Sender : TObject; var Action : TCloseAction);
begin
if(not(Done.ModalResult = 1))then
EndMinedAll := True;
end;

procedure Kill(sender : tobject);
begin
Done.ModalResult := 1;
end;

procedure MinedAll2;
begin
Done := CreateForm;
with Done do
begin
OnClose := @MinedAllOnClose;
Position := poScreenCenter;
BorderStyle := bsSingle;
BorderIcons := [biMinimize,biSystemMenu];
Width := 177;
Height := 223;
Caption := 'Done';
Color := clBtnFace;
Font.Color := clWindowText;
Font.Height := -11;
Font.Name := 'MS Sans Serif';
Font.Style := [];
PixelsPerInch := 96;
end;
Label1 := TLabel.Create(Done);
with Label1 do
begin
Parent := Done;
Left := 0;
Top := 5;
Width := 32;
Height := 13;
Caption := 'We Sucsessfuly Mined All Your Coal';
end;
Label3 := TLabel.Create(Done);
with Label3 do
begin
Parent := Done;
Left := 58;
Top := 30;
Width := 32;
Height := 13;
Caption := 'Coal Mined:';
end;
Label4 := TLabel.Create(Done);
with Label4 do
begin
Parent := Done;
Left := 58;
Top := 44;
Width := 32;
Height := 13;
Caption := inttostr(CoalMined);
end;
Button1 := TButton.Create(Done);
with Button1 do
begin
Parent := Done;
Left := 43;
Top := 62;
Width := 75;
Height := 25;
Caption := 'Ok';
TabOrder := 8;
OnClick := @Kill;
end;
Button2 := TButton.Create(Done);
with Button2 do
begin
Parent := Done;
Left := 44;
Top := 89;
Width := 75;
Height := 25;
Caption := 'Visit Fourm';
TabOrder := 9;
OnClick := @Choose;
end;
end;

procedure SafeMinedAll;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('MinedAll2', V);
end;

procedure ShowMinedAllModal;
begin
Done.ShowModal;
end;

procedure SafeShowMinedAllModal;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('ShowMinedAllModal', V);
end;

procedure MinedAll;
begin
try
SafeMinedAll;
SafeShowMinedAllModal;
finally
FreeForm(Done);
except
WriteLn('An error seems to have occurred in: Mined All');
end;
end;

Begin;
ReportProgress;
Setup;
Setup2;
SetupSRL;
ActivateClient;
ScriptID := '200';
EndScript := True;
MainInitForm;
If(EndScript=False)then
Repeat;
DoItAll;
Until(CoalMined=OreToMine);
MinedAll;
End.

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

YoHoJo

2007-07-24 14:56:27

You dont use any standards.
You have like 3 findrandomprocedures when FindNormalRandoms solve all randoms except for fights.
You mining procedue is just a findcolor and a click.
And you dropping procedure would be a lot nicer if you just looked for a DTM of the coal and then dropped it.
Also,i don think many people even drop coal, thats prety crazy.
And you also dont have any multiplayer capabilities.

You also stole your coal dropping procedure w/o credits!:
http://www.forum-archives.org/sythe/viewtopic.php?p=97295&sid=60276ddc8b4482110768132e1c0740e8#p97295
http://www.rs101.info/scripts/scarscript.php?id=143
http://www.villavu.com/forum/showthread.php?t=7453
http://www.rscheata.net/tp/index.php/topic,7806.msg81264.html
Ect Ect.

Please credit ALL code that isnt yours.


I think you still need to learn some more advanced techniques aside from just findcolors and learn how to use multiplayer properly.

Try learning more things from the intermediate/advanced tutorial section and implement more techniques in this script.

3Garrett3

2007-07-24 14:57:07

There isnt multiplayer, its a no unless you add that.

WhiteShadow

2007-07-24 17:46:47

Learn/fix these. :]
  • Scripting Standards
  • Tolerance, so users don't need to repick the colors everytime.
  • You don't have to have LogOut2 just use LogOut; =]
  • You don't need FindNormalRandoms, and FindNormalRandoms; in your script just call FindNormalRandoms;
  • If(LoggedOut=True)then just use if (LoggedOut)then
  • No need for extra begin's and end's.
  • procedure Setup;
    begin
    if (PickAxe= 1)then
    begin
    Ore:= 24;
    Writeln('Your Weilding A Pick, So I Will Mine 24')
    end;
    end;

    procedure Setup2;
    begin
    if(PickAxe= 2)then
    begin
    Ore:= 23;
    Writeln('Your Not Weilding A Pick, So I Will Mine 23')
    end;
    end;
  • Commented. (You should make it ever more effiecient/advanced)
    procedure Mine_Coal;
  • begin if (Findcolor(x, y, Coal1, 201, 113, 327, 220))or (Findcolor(x, y, Coal3, 201, 113, 327, 220))or (Findcolor(x, y, Coal4, 201, 113, 327, 220))then begin // Have a begin here so it won't movemouse when false. wait(random(50)+500); MMouse(x,y,1,1); wait(random(50)+100); if (IsUpText('ocks'))then // Click only if text up 'ocks' Mouse(x, y, 1, 1, true); end; end;
  • You don't need to ask them if they wielded pick or not. If you just use FindPickHeadColor; (it's located in Mining.Scar) it will return pick head colors, and save whether or not pick is wielded in boolean EquipPick; and then just use FindPick; to fix the pick when the head flies off.

It's a no, but your getting somewhere. Good luck<3

LordGregGreg

2007-07-24 22:10:05

Wow, thoese are some really great responces ! You should be honered to have such directed and skillfull comments :)

Unfortunately, I can't add anything on to them, but I cant wait to see your next app in a month.

Santa_Clause

2007-07-24 23:37:51

Standardised:

{=================================================]
[ Auto Coal Miner ]
[ By: Timer150 ]
[=================================================]
[+++++++++++++++++++++++++++++++++++++++++++++++++]
| Instructions: |
| Start In Dwarf Mines [ Recomended ] |
| Have Pick Axe Equiped Or Not Equiped |
| Fill Out Set-Up Bellow |
| Begin Script Logged-In |
[=================================================]
[+++++++++++++++++++++++++++++++++++++++++++++++++]
[ Updates Working On Now... ]
[+++++++++++++++++++++++++++++++++++++++++++++++++]
[ 1. Fail Safes ]
[ 2. Banking ]
[ 3. Auto Color ]
[ 4. Pick Axe Head Finder / Attacher ]
[ 5. Multi - User ]
[ 6. Better Forum ]
[+++++++++++++++++++++++++++++++++++++++++++++++++]
| Creadits: |
|+++++++++++++++++++++++++++++++++++++++++++++++++|
| Account Creadits For Letting Me Test The Script:|
| |
| Timer150 |
| Warior Man75 |
| Sylux Noxus |
|+++++++++++++++++++++++++++++++++++++++++++++++++|
| Creadits For Anti - Randoms |
|+++++++++++++++++++++++++++++++++++++++++++++++++|
| WT-Fakawi------------ For Fast Function |
| Stupedspam--------|-- For Suppling Procedures |
| |-- and WT-Fakawi's Function |
| Timer150------------- For editing the stuff |
|=================================================|
|+++++++++++++++++++++++++++++++++++++++++++++++++|
| Other Information: |
| |
| NO Auto Log-In ( Yet ) |
|=================================================|
|+++++++++++++++++++++++++++++++++++++++++++++++++|
[=================================================}
program Coal_Miner;
{===++Set-Up++===}
{===++Screen++===}// |--------------|
const Coal1 = 0; {===++ Color Of Coal On Screen ++===} // |about 4-5secs.|---|
const Coal3 = 0; {===++ Color Of Coal On Screen ++===} // |So The Out Come |
const Coal4 = 0; {===++ Color Of Coal On Screen ++===} // |Is About 5-6 secs |
{===++Inventory / Weildings / Random++===}// |Per Coal |
const Coal2 = 0; {===++ Color Of Coal In Inventory ++===} // |------------------|
const OreToMine = 100; {===+++ How Much Coal To Mine / Drop +++===} // ^
const WaitTimeCoal = 1000; {===+++ 1 Seconds Is Recomended... Because Randoms Take | ++===}

{===++Set-Up End++===}
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
var
EndScript, LoggedOut : Boolean;
Auto_Coal_Miner : TForm;
Label1, Label2 : TLabel;
ComboBox1, ComboBox2 : TComboBox;
PickAxe2, Run2, Run : string;
Button1 : TButton;
DidRandomHappen : Boolean; {

{*******************************************************************************
procedure Logout;
By: Stupid3ooo, Flyboy
Description: Logs you out, I modified it for my script. =)
*******************************************************************************}

procedure Logout2;
var
x, y, bmpLogOut, FailSafe : Integer;
begin
bmpLogOut := BitmapFromString(26, 2, 'z78DA8D4F5B0A80300CBB52D321' +
'759F7335F73F92D0FA519982F90825E4416914278325B03710CE4' +
'54FD88689D19B3615FECEA67EF350E0CC1E9B701CABBFEA8FF50F' +
'7F6D4EAE9E956B674DD5EFF27ED90AE705B1A445B8');
try
MarkTime(FailSafe);
if (LogTimeOut) then
begin
Wait(90000);
end
else
if (LoggedIn) then
begin
if GetCurrentTab <> 10 then GameTab(10);

wait(2000);
while ((TimeFromMark(FailSafe) < 90000) and LoggedIn) do
begin
if FindBitmapIn(bmpLogOut, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 20, 10, True);
LoggedOut := true;
wait(10000);
end;
end;
finally
FreeBitmap(bmpLogOut);
end; //end try/finally
end;

{*******************************************************************************
function FindNormalRandoms: Boolean;
by: The SRL Developers Team!... all time sexiness by Mutant
Description: Calls the 'normal' random checks.
*******************************************************************************}

function FindNormalRandoms2 : Boolean;
var
i : Integer;
begin
for i := 1 to 16 do
begin
case I of
1 : CloseWindow;
2 : if FindTalk then
Result := True;
3 : if FindDead then
Result := True;
4 : if FindMod then
Result := True;
5 : if FindMime then
Result := True;
6 : if FindMaze then
Result := True;
7 : if FindQuiz then
Result := True;
8 : if FindDemon then
Result := True;
9 : if FindScapeRune then
Result := True;
10 : if FindTalk then // Call it twice
Result := True;
11 : if FindLamp(LampSkill) then // Maybe we missed it?
Result := True;
12 : if (FindNewBox) then
begin
Result := True;
if (UseBoxSolver) then
SolveBox
else
GambleNewBox;
end;
13 : if FindTrade then
Result := True;
14 :
begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].Rand := 'No GameTab';
//Players[CurrentPlayer].loc := 'No GameTab';
Logout2;
Exit;
end;
end;
15 : if RC then
Result := True;
16 : SaveToChatLog
end;
if Result then
Break;
Wait(1);
end;
end;

function FindNormalRandom : Boolean;
var
i : Integer;
begin
for i := 1 to 16 do
begin
case I of
1 : CloseWindow;
2 : if FindTalk then
Result := True;
3 : if FindDead then
Result := True;
4 : if FindMod then
Result := True;
5 : if FindMime then
Result := True;
6 : if FindMaze then
Result := True;
7 : if FindQuiz then
Result := True;
8 : if FindDemon then
Result := True;
9 : if FindScapeRune then
Result := True;
10 : if FindTalk then // Call it twice
Result := True;
11 : if FindLamp(LampSkill) then // Maybe we missed it?
Result := True;
12 : if (FindNewBox) then
begin
Result := True;
if (UseBoxSolver) then
SolveBox
else
GambleNewBox;
end;
13 : if FindTrade then
Result := True;
14 :
begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout2;
Exit;
end;
end;
15 : SaveToChatLog;
16 : if RC then
Result := True;
end;
Wait(1);
end;
end;

function FindFastRandoms : Boolean; //By WT-Fakawi.
var
i : Integer;
begin
for i := 1 to 8 do
begin
case I of
1 : if FindDead then
Result := True;
2 : if FindMod then
Result := True;
3 : if FindMime then
Result := True;
4 : if FindMaze then
Result := True;
5 : if FindQuiz then
Result := True;
6 : if FindDemon then
Result := True;
7 : begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout2;
Exit;
end;
end;
7 : begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout2;
Exit;
end;
end;
8 : RC;
end;
wait(1);
end;
if (Result = true) then
DidRandomHappen := true;
end;

procedure gasattck;
begin
if (FindGas(x, y)) then
begin
RunAwayDirection('N')
Wait(15000)
RunBack;
end;
end;

procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms2;
end;

procedure antirandom;
begin
FindnormalRandom;
gasattck;
FindFastRandoms;
if (FindNormalRandoms) then
DidRandomhappen := true;
if (findFight = true) then
begin
RunAwayDirection('N');
Wait(12000 + Random(4000));
RunBack;
end;
end;

procedure DoRandoms;
begin
Findrandoms;
antirandom;
if (LoggedOut = True) then
Logout;
Terminatescript;
end;

procedure Choose(sender : tobject);
begin
openwebpage('http://www.villavu.com/forum/showthread.php?t=12930')
end;

procedure Setup;
begin
if (PickAxe = 1) then
begin
Ore := 24;
begin
Writeln('Your Weilding A Pick, So I Will Mine 24')
end;
end;
end;

procedure Setup2;
begin
if (PickAxe = 2) then
begin
Ore := 23;
begin
Writeln('Your Not Weilding A Pick, So I Will Mine 23')
end;
end;
end;

procedure Mine_Coal;
begin
if
findcolor(x, y, Coal1, 201, 113, 327, 220)
or
findcolor(x, y, Coal3, 201, 113, 327, 220)
or
findcolor(x, y, Coal4, 201, 113, 327, 220)
then
wait(random(50) + 500)
MMouse(x, y, 1, 1)
wait(random(50) + 100)
Mouse(x, y, 1, 1, true)
end;

var CoalMined : integer;

procedure ReportProgress;
begin;
ClearDebug;
Writeln('Progress Report - Auto CoalMiner Ver 12.3')
Writeln('By: Timer150')
Writeln('')
Writeln('Ran Script For: ' + TimeRunning)
Writeln('')
Writeln('Averaged Coal/Exp')
Writeln('Mined ' + inttostr(CoalMined) + ' Coal')
Writeln('Exp Gained ' + inttostr(CoalMined * 50))
SrlRandomsReport;
end;

procedure Drop_Coal(Color : Integer);
var
x, y, Drop : Integer;
begin
Drop := DTMFromString('78DA63B4636260E064644006FFFFFF07D3305' +
'1465BA01A5E5435300057E30A542344408D07500D0F01BBF48854' +
'C346408D19A69B31D480FCCE875F0D00B9181450');
while (FindColor(x, y, Color, 548, 168, 761, 496)) do
begin
Mouse(x + 5, y, 1, 1, false);
Wait(900);
if (FindDtm(Drop, x, y, 548, 168, 761, 496)) then
begin
Mouse(x, y, 1, 1, true)
Wait(450);
end;
end;
FreeDtm(Drop);
end;

var Z : integer;

procedure MineOre;
begin;
repeat;
Mine_Coal;
CoalMined := CoalMined + 1;
ReportVars[0] := ReportVars[0] + 1;
ReportProgress;
Z := z + 1;
DoRandoms;
wait(WaitTimeCoal)
until (Z = Ore) or (CoalMined = OreToMine);
end;

procedure DoItAll;
begin;
MineOre;
Drop_Coal(Coal2);
DoRandoms;
end;

procedure Figer;
begin
case (PickAxe2) of
'I'#39'm Weiling A Pick' : PickAxe := 1;
'I'#39'm Not Weiling A Pick' : PickAxe := 2;
end;
end;

procedure Figer2;
begin
case (Run2) of
'N' : Run := 'N';
'S' : Run := 'S';
'W' : Run := 'W';
'E' : Run := 'E';
end;
end;

procedure StartScript(Sender : TObject);
begin
Auto_Coal_Miner.ModalResult := 1;
EndScript := False;
PickAxe2 := ComboBox1.Text;
Run2 := ComboBox2.Text;
Figer;
Figer2;
end;

procedure InitForm;
begin
Auto_Coal_Miner := CreateForm;
with Auto_Coal_Miner do
begin
Position := poScreenCenter;
BorderStyle := bsSingle;
BorderIcons := [biSystemMenu];
FormStyle := fsStayOnTop;
Width := 250;
Height := 210;
Caption := 'Coal Powerminer Ver 12.3';
Color := clBtnFace;
Font.Color := clWindowText;
Font.Height := -11;
Font.Name := 'MS Sans Serif';
Font.Style := [];
PixelsPerInch := 96;
end;
Label1 := TLabel.Create(Auto_Coal_Miner);
with Label1 do
begin
Parent := Auto_Coal_Miner;
Left := 11;
Top := 22;
Width := 32;
Height := 13;
Caption := 'Pickaxe';
end;
Label2 := TLabel.Create(Auto_Coal_Miner);
with Label2 do
begin
Parent := Auto_Coal_Miner;
Left := 11;
Top := 64;
Width := 32;
Height := 13;
Caption := 'Run Direction';
end;
ComboBox1 := TComboBox.Create(Auto_Coal_Miner);
with ComboBox1 do
begin
ComboBox1.Parent := Auto_Coal_Miner;
ComboBox1.Left := 77;
ComboBox1.Top := 18;
ComboBox1.Width := 145;
ComboBox1.Height := 21;
ComboBox1.ItemHeight := 13;
ComboBox1.Hint := 'Are You Weilding A Pick?';
ComboBox1.ParentShowHint := False;
ComboBox1.ShowHint := True;
ComboBox1.TabOrder := 8;
ComboBox1.Text := PickAxe2;
ComboBox1.Items.Add('I'#39'm Weiling A Pick')
ComboBox1.Items.Add('I'#39'm Not Weiling A Pick')
end;
Button1 := TButton.Create(Auto_Coal_Miner);
with Button1 do
begin
Parent := Auto_Coal_Miner;
Left := 76;
Top := 106;
Width := 75;
Height := 25;
Caption := 'Start';
TabOrder := 11;
OnClick := @StartScript;
end;
ComboBox2 := TComboBox.Create(Auto_Coal_Miner);
with ComboBox2 do
begin
ComboBox2.Parent := Auto_Coal_Miner;
ComboBox2.Left := 77;
ComboBox2.Top := 60;
ComboBox2.Width := 145;
ComboBox2.Height := 21;
ComboBox2.ItemHeight := 13;
ComboBox2.Hint := 'Direction To Run From Randoms and / or Attacks...';
ComboBox2.ParentShowHint := False;
ComboBox2.ShowHint := True;
ComboBox2.TabOrder := 8;
ComboBox2.Text := Run2;
ComboBox2.Items.Add('N')
ComboBox2.Items.Add('S')
ComboBox2.Items.Add('W')
ComboBox2.Items.Add('E')
end;
end;

procedure SafeInitForm;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('InitForm', V);
end;

procedure ShowInitFormModal;
begin
Auto_Coal_Miner.ShowModal;
end;

procedure SafeShowInitFormModal;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('ShowInitFormModal', V);
end;

procedure MainInitForm;
begin
try
SafeInitForm;
SafeShowInitFormModal;
finally
FreeForm(Auto_Coal_Miner);
except
WriteLn('An error seems to have occurred in: InitForm');
end;
end;

var
EndMinedAll : Boolean;
Done : TForm;
Label3, Label4 : TLabel;
Button2 : TButton;

procedure MinedAllOnClose(Sender : TObject; var Action : TCloseAction);
begin
if (not (Done.ModalResult = 1)) then
EndMinedAll := True;
end;

procedure Kill(sender : tobject);
begin
Done.ModalResult := 1;
end;

procedure MinedAll2;
begin
Done := CreateForm;
with Done do
begin
OnClose := @MinedAllOnClose;
Position := poScreenCenter;
BorderStyle := bsSingle;
BorderIcons := [biMinimize, biSystemMenu];
Width := 177;
Height := 223;
Caption := 'Done';
Color := clBtnFace;
Font.Color := clWindowText;
Font.Height := -11;
Font.Name := 'MS Sans Serif';
Font.Style := [];
PixelsPerInch := 96;
end;
Label1 := TLabel.Create(Done);
with Label1 do
begin
Parent := Done;
Left := 0;
Top := 5;
Width := 32;
Height := 13;
Caption := 'We Sucsessfuly Mined All Your Coal';
end;
Label3 := TLabel.Create(Done);
with Label3 do
begin
Parent := Done;
Left := 58;
Top := 30;
Width := 32;
Height := 13;
Caption := 'Coal Mined:';
end;
Label4 := TLabel.Create(Done);
with Label4 do
begin
Parent := Done;
Left := 58;
Top := 44;
Width := 32;
Height := 13;
Caption := inttostr(CoalMined);
end;
Button1 := TButton.Create(Done);
with Button1 do
begin
Parent := Done;
Left := 43;
Top := 62;
Width := 75;
Height := 25;
Caption := 'Ok';
TabOrder := 8;
OnClick := @Kill;
end;
Button2 := TButton.Create(Done);
with Button2 do
begin
Parent := Done;
Left := 44;
Top := 89;
Width := 75;
Height := 25;
Caption := 'Visit Fourm';
TabOrder := 9;
OnClick := @Choose;
end;
end;

procedure SafeMinedAll;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('MinedAll2', V);
end;

procedure ShowMinedAllModal;
begin
Done.ShowModal;
end;

procedure SafeShowMinedAllModal;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('ShowMinedAllModal', V);
end;

procedure MinedAll;
begin
try
SafeMinedAll;
SafeShowMinedAllModal;
finally
FreeForm(Done);
except
WriteLn('An error seems to have occurred in: Mined All');
end;
end;

begin;
ReportProgress;
Setup;
Setup2;
SetupSRL;
ActivateClient;
ScriptID := '200';
EndScript := True;
MainInitForm;
if (EndScript = False) then
repeat;
DoItAll;
until (CoalMined = OreToMine);
MinedAll;
end.

As for this:

From: Timer150
Im Veary Good At Scar Scripting, I Can Do Bitmaps, Auto Color, Fail-Safes, and ect.. Allthough, Some Times I Get Board When Writing A Scar Script and Don't Wanna Finish It… I Get Around To It Though! When I First became A Autoer I Always Was Using Scar 2.03 and Never Botherd to Look For Updates. Then I Finnaly Upgraded To Scar Divi 3.06 Cause Alot Of Scripts Started Being Made With SRL, and all the includes Got Out Dated and My Skills and ideas couldn't be used on scar 2.03, and I got some ideas to add to SRL, possibly! =)


What kind of ideas you have?