SRL Archive - First Scripts

Cut,String & alch


mogwairn

2007-07-20 18:44:57

i didnt want to be a leacher so i made a script, i know there are a couple errors if anyone could help it would be MUCH appreciated. Please don't dl it and complain stuff doesnt work its unhelpful and i already know there are small errors.
  1. When Stringing just 1 bow it will withdraw 1 bow(u) and 1 string (which it should) then will try withdraw all.
  2. Will not autowithdraw knife at start ( have not put in code yet will sort later)
  3. Bank opener is not very good - i dont know which is best to use for this

Anyway hope someone will find useful, have learnt a lot making it so enjoy and post useful critcism please.

{
Put logs in first bank slot, bow strings in second
Have atleast one bow(u) in slot 3 (or just place holder if just alching/cutting)
have nats in slot 4 and in slot 5 have a finished bow(atleast one)
or the item you wish to alch

Have knife in inv slot 1 if you are cutting

have fun:)


author: Moggy
}
program StringAndAlch;
{.include SRL\SRL.scar}
var
NumCut,NumStrung,NumAlched: Integer;
NumToTake,NumToTakeS: Integer;
NumToCut,WhichType: String;
DoingNow: Integer;
Sleepy1,Sleepy2,Sleepy3: Integer;
HighAlch, LowAlch: Integer; //DTM
CanAlch: Boolean;
x3,y3: Integer;
frmDesign : TForm;
Label1 : TLabel;
Label2 : TLabel;
Label3,Label4,Label5,Label6,Label7,Label8,Label9,Label10 : TLabel;
Edit1 : TEdit;
Edit2 : TEdit;
Edit3,Edit4,Edit5,Edit6,Edit7 : TEdit;
Button1 : TButton;
Username,Password,Nick,pin : String;
ComboBox1,ComboBox2,ComboBox3 : TComboBox;
DoAlching,DoStringing,DoCutting : Boolean;
MaxCut,MaxString,MaxAlch : Integer;



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

Players[0].Name := Username;
Players[0].Pass := Password;
Players[0].Nick := Nick;
Players[0].Active :=True;
end;

Procedure Setup;
begin
ActivateClient;
SetUpSRL;
DisguiseScar('RuneScape - the massive online adventure game by Jagex Ltd');
Username := Edit1.Text;
Password := Edit2.Text;
Nick := Edit3.Text;
MaxCut := StrToInt(Edit4.Text);
MaxString := StrToInt(Edit5.Text);
MaxAlch := StrToInt(Edit6.Text);
pin := Edit7.Text;
case ComboBox1.Text of
'Shorts' :
begin
DoCutting := True;
WhichType := 'Shorts';
end;
'SLongs' :
begin
DoCutting := True;
WhichType := 'Longs';
end;
'Stocks' :
begin
DoCutting := True;
WhichType := 'Stocks';
end;
'False' : DoCutting := False;
end;

case ComboBox2.Text of
'True' : DoStringing := True;
'False' : DoStringing := False;
end;

case ComboBox3.Text of
'True' : DoAlching := True;
'False' : DoAlching := False;
end;
DeclarePlayers;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;

Procedure RandomExamine;
var
x2,y2: Integer;

begin
MouseBox(9,10,504,322,2);
Wait(700+Random(350));
ChooseOption(x2,y2, 'xamine');
Wait(100+Random(350));
end;

procedure Spin;
var
SpinArray : Array[0..3] of Char;
begin
SpinArray[0] := 'n';
SpinArray[1] := 'e';
SpinArray[2] := 's';
SpinArray[3] := 'w';
MakeCompass(SpinArray[Random(4)]);
MakeCompass('n');
end;

procedure SpinR;
begin
KeyDown(40);
Sleep(1000 +Random(421)+Random(123));
KeyDown(39);
Sleep(1000 +Random(421)+Random(123));
case Random(2) of
0:
Begin
KeyUp(39);
Wait(10+random(19));
KeyUp(40);
Wait(random(100));
end;
1:
Begin
KeyUp(40);
Wait(10+random(19));
KeyUp(39);
Wait(random(100));
end;
end;
end;

procedure SpinLU;
begin
KeyDown(37);
Sleep(1000 +Random(421)+Random(123));
KeyDown(38);
Sleep(1000 +Random(421)+Random(123));
case Random(2) of
0:
Begin
KeyUp(37);
Wait(10+random(19));
KeyUp(38);
Wait(random(100));
end;
1:
Begin
KeyUp(38);
Wait(10+random(19));
KeyUp(37);
Wait(random(100));
end;
end;
end;

procedure BoredTalk;
begin
case Random(9) of
0: TypeSend('Doooodeeedoooo');
1: TypeSend('why is this so boring *cries*');
2: TypeSend('BawChikaWahwaahh');
3: TypeSend('Come on you stunts let''s have some aphex acid!');
4: TypeSend('What is the world coming too?');
5: TypeSend('Le''mme alone, i dont wanna trade with you');
6: TypeSend('Shut up');
7: TypeSend('come on ailine');
8: TypeSend('Dance!');
end;
end;

function OpenBank6: Boolean; //modded from one in SRL by Stupid3ooo / Mutant Squirrle
var
c: Integer;
begin
MakeCompass('n');
if (FindObj(x, y, 'Use Bank', 539728, 10)) then
begin
Mouse(x, y, 1, 1, False);
if (ChooseOption(x, y, 'quickly')) then
begin
Flag;
repeat
Wait(100);
c := c + 1
until (BankScreen) or (c >= 50) or PinScreen;
end;
end;

if BankScreen then
Begin
Result := True;
end;

if PinScreen then
Begin
Result := True;
Writeln('Pin entered');
InPin(pin);
end;
end;

procedure DepositCuts;
begin
OpenBank6;
Wait(500+random(230));
MouseItem(2,false);
Wait(700+random(230));
ChooseOption(x,y,'Store All');
end;



procedure Boredom;
begin
case Random(9) of
0:
begin
case DoingNow of
1:
begin
SleepAndMoveMouse(7568 + random(1425));
HoverSkill('Fletching', false);
SleepAndMoveMouse(Sleepy3);
end;
2:
begin
SleepAndMoveMouse(7568+random(1425));
HoverSkill('Fletching', false);
Wait(1500+Random(150));
HoverSkill('Random', false);
SleepAndMoveMouse(Sleepy3);
end;
3:
begin
SleepAndMoveMouse(100+random(142));
HoverSkill('Magic', false);
Wait(1500+Random(150));
HoverSkill('Random', false);
SleepAndMoveMouse(Sleepy3);
end;
end;
end;
1:
begin
BoredTalk;
SleepAndMoveMouse(Sleepy1);
end;

2:
begin
Spin;
SleepAndMoveMouse(Sleepy2);
end;
3:
begin
SpinR;
SleepAndMoveMouse(Sleepy2);
end;
4:
begin
SpinLU;
Sleep(Sleepy2);
end;
5:
begin
PickUpMouse;
SleepAndMoveMouse(Sleepy1);
end;

6: SleepAndMoveMouse(Sleepy1);

7: SleepAndMoveMouse(Sleepy1);

8:
begin
RandomExamine;
SleepAndMoveMouse(Sleepy1);
end;

end;
end;




Procedure FindRandoms;
begin
FindNormalRandoms;

end;

procedure chop;
var
x,y: Integer;

begin
FixBank;
Withdraw(1,1,NumToTake);
CloseBank;
UseItem(1);
UseItem(2);
case WhichType of
'shorts':
begin
MouseBox(58,381,145,439,2);
end;
'longs':
begin
MouseBox(213,376,301,429,2);
end;
'stocks':
begin
MouseBox(379,383,448,428,2);
end;
end;
Wait(500+Random(160));
ChooseOption(x, y, 'Make X');
Wait(500+Random(160));
TypeSend(NumToCut);
Wait(100+Random(150));
FindRandoms;
Wait(100+Random(150));
Boredom;
Wait(100+Random(150));
FindRandoms;
Wait(100+Random(150));
DepositCuts;
Wait(15+Random(20));
CloseBank;
end;

procedure LoadDTMs; //made by WhoCares357
begin
HighAlch := DTMFromString('78DA63E4666060E0674001BFBEF130FC02D28' +
'C40FC1F081885800C2E0634C08844026990194C04D4B001091E02' +
'6A9830DD83A106E46661026A448184007E3500757D07B4');

LowAlch := DTMFromString('78DA63E46760601064400106070D187E01694' +
'620FE0F048C0240063B031A60442281B43090E027A04608488810' +
'50C305242408A8610612A204D4B063FA0B430D0761BB00CAA8072' +
'0');
end;

Procedure Cutting;
begin
DoingNow := 1;
Writeln('Now begining to cut ' +IntToStr(MaxCut)+' '+WhichType);
NumCut := 0;
MouseBox(570,215,593,236,0);
Wait(1000+random(500));
repeat
if (LoggedIn) and IsUpTextMulti('Kni','nif','ife') then
if (MaxCut-NumCut)> 27 then
begin
Sleepy1 := 48000+random(8000);
Sleepy2 := 45000+random(3000);
Sleepy3 := 40000+random(3000);
NumToTake := 27;
NumToCut := '27';
Wait(1000+Random(500));
OpenBank6;
Wait(1000+Random(500));
Chop;
NumCut := NumCut+27;
end
else
begin
NumToTake := MaxCut-NumCut;
NumToCut := IntToStr(NumToTake);
Sleepy1 := 2000*NumToTake+random(4000);
Sleepy2 := 2000*NumToTake+random(2000);
Sleepy3 := 2000*NumToTake+Random(2000);
Wait(1000+Random(500));
OpenBank6;
Wait(1000+Random(500));
Chop;
NumCut := NumCut+(MaxCut-NumCut);
end
else LogOut;

Until(NumCut >= MaxCut) or not(LoggedIn) ;
ClearDebug;
Writeln('I have cut ' +IntToStr(NumCut)+ ' '+WhichType);

end;

Procedure StringThem;
begin
Wait(10+random(25));
OpenBank6;
Wait(100+random(250));
FixBank;
Wait(100+random(250));
Withdraw(2,1,1);
Wait(600+random(250));
Withdraw(3,1,1);
Wait(600+random(250));
Withdraw(2,1,NumToTakeS-1);
Wait(500+random(250));
Withdraw(3,1,NumTotakeS-1);
Wait(500+random(250));
CloseBank;
Wait(10+random(25));
UseItem(1);
Wait(10+random(25));
UseItem(2);
Wait(10+random(25));
MouseBox(213,376,301,429,2);
Wait(100+random(250));
ChooseOption(x,y,'Make All');
Wait(100+random(250));
FindRandoms;
Wait(100+random(250));
Boredom;
Wait(100+random(250));
FindRandoms;
Wait(100+random(250));
OpenBank6;
Wait(1000+random(250));
DepositAll;
Wait(1000+random(250));
CloseBank;
Wait(300+random(250));
end;

Procedure Stringing;
Begin
DoingNow := 2;
Writeln('Now begining to string ' +IntToStr(MaxString)+' '+WhichType);
Wait(1000+random(500));
if not InvEmpty then
begin
OpenBank6;
Wait(10+random(25));
FixBank;
Wait(100+random(250));
DepositAll;
Wait(10+random(25));
CloseBank;
end;
repeat
if (LoggedIn) then
if (MaxString-NumStrung)> 14 then
begin
Sleepy1 := 18000+Random(3500);
Sleepy2 := 16000+Random(3500);
Sleepy3 := 10000+Random(2500);
NumToTakeS := 14;
Wait(1000+Random(500));
StringThem;
NumStrung := NumStrung+14;
end
else
if (MaxString-NumStrung)< 14 then
begin
Sleepy1 := ((MaxString-NumStrung)*1500)+Random(3500);
Sleepy2 := ((MaxString-NumStrung)*1500)+Random(3500);
Sleepy3 := ((MaxString-NumStrung)*1300)+Random(500);
NumToTakeS := MaxString-NumStrung;
Wait(1000+Random(500));
StringThem;
NumStrung := NumStrung+(MaxString-NumStrung);
end
else TerminateScript;
Until(NumStrung = MaxString) or not(LoggedIn) ;
end;


Procedure Alching;
Begin
Sleepy1 := 3000+random(500);
Sleepy2 := 2500+random(500);
Sleepy3 := 2000+random(500);
LoadDTMs;
NumAlched := 0;
DoingNow := 3;
Writeln('Now begining to Alch ' +IntToStr(MaxAlch)+' '+WhichType);
OpenBank6;
Wait(1000+random(500));
DepositAll;
Wait(1000+random(500));
CloseBank;
if InvEmpty then
begin
Wait(1000+random(500));
OpenBank6;
FixBank;
Wait(1000+random(500));
MouseBox(371,305,448,318,1);
Withdraw(4,1,MaxAlch);
Wait(1000+random(500));
Withdraw(5,1,MaxAlch);
Wait(1000+random(500));
CloseBank;
Wait(400+random(150));
if GetSkillLevel('Magic')<21 then
begin
CanAlch := False;
end
else
begin
CanAlch := True;
end;
if CanAlch = True then
GameTab(7);
repeat
begin
GameTab(7);
if FindDTM(HighAlch, x3, y3, 558, 210, 738, 446) then
begin
Mouse(x3,y3,2,2,True);
Wait(1000+random(100));
MouseBox(616,217,634,236,1);
Wait(2500+random(100));
NumAlched := NumAlched+1;
end
else if FindDTM(LowAlch, x3, y3, 710, 249, 733, 276) then
begin
Mouse(x3,y3,2,2,True);
Wait(1000+random(100));
MouseBox(616,217,634,236,1);
Wait(2500+random(100));
NumAlched := NumAlched+1;
end
else
begin
writeln('Logging out');
LogOut;
end;
FindRandoms;
end;
until not (LoggedIn) or (NumAlched >= MaxAlch);
end;
end;

procedure Setupmain(sender: TObject);
begin
Setup;
case DoCutting of
True:
begin
case DoStringing of
True:
begin
case DoAlching of
True:
begin
Cutting;
Stringing;
Alching;
end;
False:
begin
Cutting;
Stringing;
end;
end;
end;
False:
begin
case DoAlching of
True:
begin
Cutting;
Alching;
end;
True:
begin
Cutting;
end;
end;
end;
end;
end;
False:
begin
case DoStringing of
True:
begin
case DoAlching of
True:
begin
Stringing;
Alching;
end;
False:
begin
Stringing;
end;
end;
end;
False:
begin
case DoAlching of
True:
begin
Alching;
end;
False:
begin
TerminateScript;
end;
end;
end;
end;
end;
end;
end;

procedure InitForm;
begin
frmDesign := CreateForm;
frmDesign.Left := 250;
frmDesign.Top := 114;
frmDesign.Width := 300;
frmDesign.Height := 350;
frmDesign.Caption := 'frmDesign';
frmDesign.Color := clBtnFace;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.Visible := False;
frmDesign.PixelsPerInch := 96;
Label1 := TLabel.Create(frmDesign);
Label1.Parent := frmDesign;
Label1.Left := 22;
Label1.Top := 24;
Label1.Width := 46;
Label1.Height := 22;
Label1.Caption := 'UserName';
Label2 := TLabel.Create(frmDesign);
Label2.Parent := frmDesign;
Label2.Left := 22;
Label2.Top := 45;
Label2.Width := 46;
Label2.Height := 13;
Label2.Caption := 'Password';
Label3 := TLabel.Create(frmDesign);
Label3.Parent := frmDesign;
Label3.Left := 22;
Label3.Top := 66;
Label3.Width := 46;
Label3.Height := 13;
Label3.Caption := 'NickName';
Label4 := TLabel.Create(frmDesign);
Label4.Parent := frmDesign;
Label4.Left := 22;
Label4.Top := 196;
Label4.Width := 46;
Label4.Height := 13;
Label4.Caption := 'How many to cut?';
Label5 := TLabel.Create(frmDesign);
Label5.Parent := frmDesign;
Label5.Left := 22;
Label5.Top := 217;
Label5.Width := 46;
Label5.Height := 13;
Label5.Caption := 'How many to string?';
Label6 := TLabel.Create(frmDesign);
Label6.Parent := frmDesign;
Label6.Left := 22;
Label6.Top := 238;
Label6.Width := 46;
Label6.Height := 13;
Label6.Caption := 'How many to alch?';
Label7 := TLabel.Create(frmDesign);
Label7.Parent := frmDesign;
Label7.Left := 22;
Label7.Top := 119;
Label7.Width := 46;
Label7.Height := 13;
Label7.Caption := 'Cut Bows?';
Label8 := TLabel.Create(frmDesign);
Label8.Parent := frmDesign;
Label8.Left := 22;
Label8.Top := 142;
Label8.Width := 46;
Label8.Height := 13;
Label8.Caption := 'String Bows?';
Label9 := TLabel.Create(frmDesign);
Label9.Parent := frmDesign;
Label9.Left := 22;
Label9.Top := 163;
Label9.Width := 46;
Label9.Height := 13;
Label9.Caption := 'Alch?';
Label10 := TLabel.Create(frmDesign);
Label10.Parent := frmDesign;
Label10.Left := 22;
Label10.Top := 87;
Label10.Width := 46;
Label10.Height := 13;
Label10.Caption := 'Pin';
Edit1 := TEdit.Create(frmDesign);
Edit1.Parent := frmDesign;
Edit1.Left := 120;
Edit1.Top := 20;
Edit1.Width := 121;
Edit1.Height := 21;
Edit1.TabOrder := 8;
Edit1.Text := 'Username';
Edit1.Text := LoadSetting('UserPassSaver', 'Username');
Edit2 := TEdit.Create(frmDesign);
Edit2.Parent := frmDesign;
Edit2.Left := 120;
Edit2.Top := 41;
Edit2.Width := 121;
Edit2.Height := 21;
Edit2.TabOrder := 9;
Edit2.Text := 'Password';
Edit2.PasswordChar:= '*';
Edit2.Text := LoadSetting('UserPassSaver', 'Password');
Edit3 := TEdit.Create(frmDesign);
Edit3.Parent := frmDesign;
Edit3.Left := 120;
Edit3.Top := 62;
Edit3.Width := 121;
Edit3.Height := 21;
Edit3.TabOrder := 9;
Edit3.Text := 'Nickname';
Edit3.Text := LoadSetting('UserPassSaver', 'Nick');
Edit4 := TEdit.Create(frmDesign);
Edit4.Parent := frmDesign;
Edit4.Left := 120;
Edit4.Top := 194;
Edit4.Width := 121;
Edit4.Height := 21;
Edit4.TabOrder := 9;
Edit5 := TEdit.Create(frmDesign);
Edit5.Parent := frmDesign;
Edit5.Left := 120;
Edit5.Top := 215;
Edit5.Width := 121;
Edit5.Height := 21;
Edit5.TabOrder := 9;
Edit6 := TEdit.Create(frmDesign);
Edit6.Parent := frmDesign;
Edit6.Left := 120;
Edit6.Top := 236;
Edit6.Width := 121;
Edit6.Height := 21;
Edit6.TabOrder := 9;
Edit7 := TEdit.Create(frmDesign);
Edit7.Parent := frmDesign;
Edit7.Left := 120;
Edit7.Top := 83;
Edit7.Width := 121;
Edit7.Height := 21;
Edit7.TabOrder := 9;
Edit7.Text := '0000';
ComboBox1 := TComboBox.Create(frmDesign);
ComboBox1.Parent := frmDesign;
ComboBox1.Left := 120;
ComboBox1.Top := 116;
ComboBox1.Width := 121;
ComboBox1.Height := 21;
ComboBox1.ItemHeight := 13;
ComboBox1.TabOrder := 11;
ComboBox1.Text := 'Cut Logs?';
ComboBox1.Items.Add('Shorts');
ComboBox1.Items.Add('Longs');
ComboBox1.Items.Add('Stocks');
ComboBox1.Items.Add('False');
ComboBox2 := TComboBox.Create(frmDesign);
ComboBox2.Parent := frmDesign;
ComboBox2.Left := 120;
ComboBox2.Top := 138;
ComboBox2.Width := 121;
ComboBox2.Height := 21;
ComboBox2.ItemHeight := 13;
ComboBox2.TabOrder := 11;
ComboBox2.Text := 'String Bows?';
ComboBox2.Items.Add('True');
ComboBox2.Items.Add('False');
ComboBox3 := TComboBox.Create(frmDesign);
ComboBox3.Parent := frmDesign;
ComboBox3.Left := 120;
ComboBox3.Top := 160;
ComboBox3.Width := 121;
ComboBox3.Height := 21;
ComboBox3.ItemHeight := 13;
ComboBox3.TabOrder := 11;
ComboBox3.Text := 'Alch?';
ComboBox3.Items.Add('True');
ComboBox3.Items.Add('False');
Button1 := TButton.Create(frmDesign);
Button1.Parent := frmDesign;
Button1.OnClick := @Setupmain;
Button1.Left := 94;
Button1.Top := 261;
Button1.Width := 75;
Button1.Height := 25;
Button1.Caption := 'Start!!';
Button1.TabOrder := 10;
end;

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

procedure ShowFormModal;
begin
frmDesign.ShowModal;
end;

procedure SafeShowFormModal;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;

begin
SafeInitForm;
SafeShowFormModal;
FreeForm(frmDesign);
LogOut;
Writeln('I have cut ' +IntToStr(NumCut)+ ' '+WhichType+',');
Writeln('I have strung' +IntToStr(NumStrung)+ ' '+WhichType+);
Writeln('and I have Alched' +IntToStr(NumAlched)+ ' items.');
end.

Here

2007-07-20 19:06:37

Is this really your script? I think I have cause enough to be skeptical, seeing from your join date and post-count.

Mods, please copy-check this guy, he has been joined on these forums for only 7 days. To be fair, he has looked(?) through JAD's tut, but I do believe that this script is very well made and complex enough for me to be skeptical about.

Sorry OP, this isn't standard procedure, but I have outlined my suspicions above. If I am wrong on all counts, I apologize and congratulate you on a well made script.

Harry

2007-07-20 19:35:25

Too big for him, its copied prolly :p

Santa_Clause

2007-07-20 19:37:57

 
begin
SafeInitForm;
SafeShowFormModal;
FreeForm(frmDesign);
LogOut;
Writeln('I have cut ' +NumCut+ ' '+WhichType+',');
Writeln('I have strung' +NumStrung+ ' '+WhichType+);
Writeln('and I have Alched' +NumAclhed+ ' items.');
end.

The mainloop doesn't have SetupMain in it…

I don't think standards are correct either.

Oh wait, you've done it using OnClick…weird style but I understand what you did.

Here you go…standardised:

{
Put logs in first bank slot, bow strings in second
Have atleast one bow(u) in slot 3 (or just place holder if just alching/cutting)
have nats in slot 4 and in slot 5 have a finished bow(atleast one)
or the item you wish to alch

Have knife in inv slot 1 if you are cutting

have fun:)

author: Moggy
}
program StringAndAlch;
{.include SRL\SRL.scar}
var
NumCut, NumStrung, NumAlched : Integer;
NumToTake, NumToTakeS : Integer;
NumToCut, WhichType : string;
DoingNow : Integer;
Sleepy1, Sleepy2, Sleepy3 : Integer;
HighAlch, LowAlch : Integer; //DTM
CanAlch : Boolean;
x3, y3 : Integer;
frmDesign : TForm;
Label1 : TLabel;
Label2 : TLabel;
Label3, Label4, Label5, Label6, Label7, Label8, Label9, Label10 : TLabel;
Edit1 : TEdit;
Edit2 : TEdit;
Edit3, Edit4, Edit5, Edit6, Edit7 : TEdit;
Button1 : TButton;
Username, Password, Nick, pin : string;
ComboBox1, ComboBox2, ComboBox3 : TComboBox;
DoAlching, DoStringing, DoCutting : Boolean;
MaxCut, MaxString, MaxAlch : Integer;

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

Players[0].Name := Username;
Players[0].Pass := Password;
Players[0].Nick := Nick;
Players[0].Active := True;
end;

procedure Setup;
begin
ActivateClient;
SetUpSRL;
DisguiseScar('RuneScape - the massive online adventure game by Jagex Ltd');
Username := Edit1.Text;
Password := Edit2.Text;
Nick := Edit3.Text;
MaxCut := StrToInt(Edit4.Text);
MaxString := StrToInt(Edit5.Text);
MaxAlch := StrToInt(Edit6.Text);
pin := Edit7.Text;
case ComboBox1.Text of
'Shorts' :
begin
DoCutting := True;
WhichType := 'Shorts';
end;
'SLongs' :
begin
DoCutting := True;
WhichType := 'Longs';
end;
'Stocks' :
begin
DoCutting := True;
WhichType := 'Stocks';
end;
'False' : DoCutting := False;
end;

case ComboBox2.Text of
'True' : DoStringing := True;
'False' : DoStringing := False;
end;

case ComboBox3.Text of
'True' : DoAlching := True;
'False' : DoAlching := False;
end;
DeclarePlayers;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;

procedure RandomExamine;
var
x2, y2 : Integer;

begin
MouseBox(9, 10, 504, 322, 2);
Wait(700 + Random(350));
ChooseOption(x2, y2, 'xamine');
Wait(100 + Random(350));
end;

procedure Spin;
var
SpinArray : array[0..3] of Char;
begin
SpinArray[0] := 'n';
SpinArray[1] := 'e';
SpinArray[2] := 's';
SpinArray[3] := 'w';
MakeCompass(SpinArray[Random(4)]);
MakeCompass('n');
end;

procedure SpinR;
begin
KeyDown(40);
Sleep(1000 + Random(421) + Random(123));
KeyDown(39);
Sleep(1000 + Random(421) + Random(123));
case Random(2) of
0 :
begin
KeyUp(39);
Wait(10 + random(19));
KeyUp(40);
Wait(random(100));
end;
1 :
begin
KeyUp(40);
Wait(10 + random(19));
KeyUp(39);
Wait(random(100));
end;
end;
end;

procedure SpinLU;
begin
KeyDown(37);
Sleep(1000 + Random(421) + Random(123));
KeyDown(38);
Sleep(1000 + Random(421) + Random(123));
case Random(2) of
0 :
begin
KeyUp(37);
Wait(10 + random(19));
KeyUp(38);
Wait(random(100));
end;
1 :
begin
KeyUp(38);
Wait(10 + random(19));
KeyUp(37);
Wait(random(100));
end;
end;
end;

procedure BoredTalk;
begin
case Random(9) of
0 : TypeSend('Doooodeeedoooo');
1 : TypeSend('why is this so boring *cries*');
2 : TypeSend('BawChikaWahwaahh');
3 : TypeSend('Come on you stunts let''s have some aphex acid!');
4 : TypeSend('What is the world coming too?');
5 : TypeSend('Le''mme alone, i dont wanna trade with you');
6 : TypeSend('Shut up');
7 : TypeSend('come on ailine');
8 : TypeSend('Dance!');
end;
end;

function OpenBank6 : Boolean;
var
c : Integer;
begin
MakeCompass('n');
if (FindObj(x, y, 'Use Bank', 539728, 10)) then
begin
Mouse(x, y, 1, 1, False);
if (ChooseOption(x, y, 'quickly')) then
begin
Flag;
repeat
Wait(100);
c := c + 1
until (BankScreen) or (c >= 50) or PinScreen;
end;
end;

if BankScreen then
begin
Result := True;
end;

if PinScreen then
begin
Result := True;
Writeln('Pin entered');
InPin(pin);
end;
end;

procedure DepositCuts;
begin
OpenBank6;
Wait(500 + random(230));
MouseItem(2, false);
Wait(700 + random(230));
ChooseOption(x, y, 'Store All');
end;

procedure Boredom;
begin
case Random(9) of
0 :
begin
case DoingNow of
1 :
begin
SleepAndMoveMouse(7568 + random(1425));
HoverSkill('Fletching', false);
SleepAndMoveMouse(Sleepy3);
end;
2 :
begin
SleepAndMoveMouse(7568 + random(1425));
HoverSkill('Fletching', false);
Wait(1500 + Random(150));
HoverSkill('Random', false);
SleepAndMoveMouse(Sleepy3);
end;
3 :
begin
SleepAndMoveMouse(100 + random(142));
HoverSkill('Magic', false);
Wait(1500 + Random(150));
HoverSkill('Random', false);
SleepAndMoveMouse(Sleepy3);
end;
end;
end;
1 :
begin
BoredTalk;
SleepAndMoveMouse(Sleepy1);
end;

2 :
begin
Spin;
SleepAndMoveMouse(Sleepy2);
end;
3 :
begin
SpinR;
SleepAndMoveMouse(Sleepy2);
end;
4 :
begin
SpinLU;
Sleep(Sleepy2);
end;
5 :
begin
PickUpMouse;
SleepAndMoveMouse(Sleepy1);
end;

6 : SleepAndMoveMouse(Sleepy1);

7 : SleepAndMoveMouse(Sleepy1);

8 :
begin
RandomExamine;
SleepAndMoveMouse(Sleepy1);
end;

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';
Logout;
Exit;
end;
end;
7 : begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8 : RC;
end;
wait(1);
end;
end;

procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms;
end;

procedure chop;
var
x, y : Integer;

begin
FixBank;
Withdraw(1, 1, NumToTake);
CloseBank;
UseItem(1);
UseItem(2);
case WhichType of
'shorts' :
begin
MouseBox(58, 381, 145, 439, 2);
end;
'longs' :
begin
MouseBox(213, 376, 301, 429, 2);
end;
'stocks' :
begin
MouseBox(379, 383, 448, 428, 2);
end;
end;
Wait(500 + Random(160));
ChooseOption(x, y, 'Make X');
Wait(500 + Random(160));
TypeSend(NumToCut);
Wait(100 + Random(150));
FindRandoms;
Wait(100 + Random(150));
Boredom;
Wait(100 + Random(150));
FindRandoms;
Wait(100 + Random(150));
DepositCuts;
Wait(15 + Random(20));
CloseBank;
end;

procedure LoadDTMs; //made by WhoCares357
begin
HighAlch := DTMFromString('78DA63E4666060E0674001BFBEF130FC02D28' +
'C40FC1F081885800C2E0634C08844026990194C04D4B001091E02' +
'6A9830DD83A106E46661026A448184007E3500757D07B4');

LowAlch := DTMFromString('78DA63E46760601064400106070D187E01694' +
'620FE0F048C0240063B031A60442281B43090E027A04608488810' +
'50C305242408A8610612A204D4B063FA0B430D0761BB00CAA8072' +
'0');
end;

procedure Cutting;
begin
DoingNow := 1;
Writeln('Now begining to cut ' + IntToStr(MaxCut) + ' ' + WhichType);
NumCut := 0;
MouseBox(570, 215, 593, 236, 0);
Wait(1000 + random(500));
repeat
if (LoggedIn) and IsUpTextMulti('Kni', 'nif', 'ife') then
if (MaxCut - NumCut) > 27 then
begin
Sleepy1 := 48000 + random(8000);
Sleepy2 := 45000 + random(3000);
Sleepy3 := 40000 + random(3000);
NumToTake := 27;
NumToCut := '27';
Wait(1000 + Random(500));
OpenBank6;
Wait(1000 + Random(500));
Chop;
NumCut := NumCut + 27;
end
else
begin
NumToTake := MaxCut - NumCut;
NumToCut := IntToStr(NumToTake);
Sleepy1 := 2000 * NumToTake + random(4000);
Sleepy2 := 2000 * NumToTake + random(2000);
Sleepy3 := 2000 * NumToTake + Random(2000);
Wait(1000 + Random(500));
OpenBank6;
Wait(1000 + Random(500));
Chop;
NumCut := NumCut + (MaxCut - NumCut);
end
else LogOut;

until (NumCut >= MaxCut) or not (LoggedIn);
ClearDebug;
Writeln('I have cut ' + IntToStr(NumCut) + ' ' + WhichType);

end;

procedure StringThem;
begin
Wait(10 + random(25));
OpenBank6;
Wait(100 + random(250));
FixBank;
Wait(100 + random(250));
Withdraw(2, 1, 1);
Wait(600 + random(250));
Withdraw(3, 1, 1);
Wait(600 + random(250));
Withdraw(2, 1, NumToTakeS - 1);
Wait(500 + random(250));
Withdraw(3, 1, NumTotakeS - 1);
Wait(500 + random(250));
CloseBank;
Wait(10 + random(25));
UseItem(1);
Wait(10 + random(25));
UseItem(2);
Wait(10 + random(25));
MouseBox(213, 376, 301, 429, 2);
Wait(100 + random(250));
ChooseOption(x, y, 'Make All');
Wait(100 + random(250));
FindRandoms;
Wait(100 + random(250));
Boredom;
Wait(100 + random(250));
FindRandoms;
Wait(100 + random(250));
OpenBank6;
Wait(1000 + random(250));
DepositAll;
Wait(1000 + random(250));
CloseBank;
Wait(300 + random(250));
end;

procedure Stringing;
begin
DoingNow := 2;
Writeln('Now begining to string ' + IntToStr(MaxString) + ' ' + WhichType);
Wait(1000 + random(500));
if not InvEmpty then
begin
OpenBank6;
Wait(10 + random(25));
FixBank;
Wait(100 + random(250));
DepositAll;
Wait(10 + random(25));
CloseBank;
end;
repeat
if (LoggedIn) then
if (MaxString - NumStrung) > 14 then
begin
Sleepy1 := 18000 + Random(3500);
Sleepy2 := 16000 + Random(3500);
Sleepy3 := 10000 + Random(2500);
NumToTakeS := 14;
Wait(1000 + Random(500));
StringThem;
NumStrung := NumStrung + 14;
end
else
if (MaxString - NumStrung) < 14 then
begin
Sleepy1 := ((MaxString - NumStrung) * 1500) + Random(3500);
Sleepy2 := ((MaxString - NumStrung) * 1500) + Random(3500);
Sleepy3 := ((MaxString - NumStrung) * 1300) + Random(500);
NumToTakeS := MaxString - NumStrung;
Wait(1000 + Random(500));
StringThem;
NumStrung := NumStrung + (MaxString - NumStrung);
end
else TerminateScript;
until (NumStrung = MaxString) or not (LoggedIn);
end;

procedure Alching;
begin
Sleepy1 := 3000 + random(500);
Sleepy2 := 2500 + random(500);
Sleepy3 := 2000 + random(500);
LoadDTMs;
NumAlched := 0;
DoingNow := 3;
Writeln('Now begining to Alch ' + IntToStr(MaxAlch) + ' ' + WhichType);
OpenBank6;
Wait(1000 + random(500));
DepositAll;
Wait(1000 + random(500));
CloseBank;
if InvEmpty then
begin
Wait(1000 + random(500));
OpenBank6;
FixBank;
Wait(1000 + random(500));
MouseBox(371, 305, 448, 318, 1);
Withdraw(4, 1, MaxAlch);
Wait(1000 + random(500));
Withdraw(5, 1, MaxAlch);
Wait(1000 + random(500));
CloseBank;
Wait(400 + random(150));
if GetSkillLevel('Magic') < 21 then
begin
CanAlch := False;
end
else
begin
CanAlch := True;
end;
if CanAlch = True then
GameTab(7);
repeat
begin
GameTab(7);
if FindDTM(HighAlch, x3, y3, 558, 210, 738, 446) then
begin
Mouse(x3, y3, 2, 2, True);
Wait(1000 + random(100));
MouseBox(616, 217, 634, 236, 1);
Wait(2500 + random(100));
NumAlched := NumAlched + 1;
end
else if FindDTM(LowAlch, x3, y3, 710, 249, 733, 276) then
begin
Mouse(x3, y3, 2, 2, True);
Wait(1000 + random(100));
MouseBox(616, 217, 634, 236, 1);
Wait(2500 + random(100));
NumAlched := NumAlched + 1;
end
else
begin
writeln('Logging out');
LogOut;
end;
FindRandoms;
end;
until not (LoggedIn) or (NumAlched >= MaxAlch);
end;
end;

procedure Setupmain(sender : TObject);
begin
Setup;
case DoCutting of
True :
begin
case DoStringing of
True :
begin
case DoAlching of
True :
begin
Cutting;
Stringing;
Alching;
end;
False :
begin
Cutting;
Stringing;
end;
end;
end;
False :
begin
case DoAlching of
True :
begin
Cutting;
Alching;
end;
True :
begin
Cutting;
end;
end;
end;
end;
end;
False :
begin
case DoStringing of
True :
begin
case DoAlching of
True :
begin
Stringing;
Alching;
end;
False :
begin
Stringing;
end;
end;
end;
False :
begin
case DoAlching of
True :
begin
Alching;
end;
False :
begin
TerminateScript;
end;
end;
end;
end;
end;
end;
end;

procedure InitForm;
begin
frmDesign := CreateForm;
frmDesign.Left := 250;
frmDesign.Top := 114;
frmDesign.Width := 300;
frmDesign.Height := 350;
frmDesign.Caption := 'frmDesign';
frmDesign.Color := clBtnFace;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.Visible := False;
frmDesign.PixelsPerInch := 96;
Label1 := TLabel.Create(frmDesign);
Label1.Parent := frmDesign;
Label1.Left := 22;
Label1.Top := 24;
Label1.Width := 46;
Label1.Height := 22;
Label1.Caption := 'UserName';
Label2 := TLabel.Create(frmDesign);
Label2.Parent := frmDesign;
Label2.Left := 22;
Label2.Top := 45;
Label2.Width := 46;
Label2.Height := 13;
Label2.Caption := 'Password';
Label3 := TLabel.Create(frmDesign);
Label3.Parent := frmDesign;
Label3.Left := 22;
Label3.Top := 66;
Label3.Width := 46;
Label3.Height := 13;
Label3.Caption := 'NickName';
Label4 := TLabel.Create(frmDesign);
Label4.Parent := frmDesign;
Label4.Left := 22;
Label4.Top := 196;
Label4.Width := 46;
Label4.Height := 13;
Label4.Caption := 'How many to cut?';
Label5 := TLabel.Create(frmDesign);
Label5.Parent := frmDesign;
Label5.Left := 22;
Label5.Top := 217;
Label5.Width := 46;
Label5.Height := 13;
Label5.Caption := 'How many to string?';
Label6 := TLabel.Create(frmDesign);
Label6.Parent := frmDesign;
Label6.Left := 22;
Label6.Top := 238;
Label6.Width := 46;
Label6.Height := 13;
Label6.Caption := 'How many to alch?';
Label7 := TLabel.Create(frmDesign);
Label7.Parent := frmDesign;
Label7.Left := 22;
Label7.Top := 119;
Label7.Width := 46;
Label7.Height := 13;
Label7.Caption := 'Cut Bows?';
Label8 := TLabel.Create(frmDesign);
Label8.Parent := frmDesign;
Label8.Left := 22;
Label8.Top := 142;
Label8.Width := 46;
Label8.Height := 13;
Label8.Caption := 'String Bows?';
Label9 := TLabel.Create(frmDesign);
Label9.Parent := frmDesign;
Label9.Left := 22;
Label9.Top := 163;
Label9.Width := 46;
Label9.Height := 13;
Label9.Caption := 'Alch?';
Label10 := TLabel.Create(frmDesign);
Label10.Parent := frmDesign;
Label10.Left := 22;
Label10.Top := 87;
Label10.Width := 46;
Label10.Height := 13;
Label10.Caption := 'Pin';
Edit1 := TEdit.Create(frmDesign);
Edit1.Parent := frmDesign;
Edit1.Left := 120;
Edit1.Top := 20;
Edit1.Width := 121;
Edit1.Height := 21;
Edit1.TabOrder := 8;
Edit1.Text := 'Username';
Edit1.Text := LoadSetting('UserPassSaver', 'Username');
Edit2 := TEdit.Create(frmDesign);
Edit2.Parent := frmDesign;
Edit2.Left := 120;
Edit2.Top := 41;
Edit2.Width := 121;
Edit2.Height := 21;
Edit2.TabOrder := 9;
Edit2.Text := 'Password';
Edit2.PasswordChar := '*';
Edit2.Text := LoadSetting('UserPassSaver', 'Password');
Edit3 := TEdit.Create(frmDesign);
Edit3.Parent := frmDesign;
Edit3.Left := 120;
Edit3.Top := 62;
Edit3.Width := 121;
Edit3.Height := 21;
Edit3.TabOrder := 9;
Edit3.Text := 'Nickname';
Edit3.Text := LoadSetting('UserPassSaver', 'Nick');
Edit4 := TEdit.Create(frmDesign);
Edit4.Parent := frmDesign;
Edit4.Left := 120;
Edit4.Top := 194;
Edit4.Width := 121;
Edit4.Height := 21;
Edit4.TabOrder := 9;
Edit5 := TEdit.Create(frmDesign);
Edit5.Parent := frmDesign;
Edit5.Left := 120;
Edit5.Top := 215;
Edit5.Width := 121;
Edit5.Height := 21;
Edit5.TabOrder := 9;
Edit6 := TEdit.Create(frmDesign);
Edit6.Parent := frmDesign;
Edit6.Left := 120;
Edit6.Top := 236;
Edit6.Width := 121;
Edit6.Height := 21;
Edit6.TabOrder := 9;
Edit7 := TEdit.Create(frmDesign);
Edit7.Parent := frmDesign;
Edit7.Left := 120;
Edit7.Top := 83;
Edit7.Width := 121;
Edit7.Height := 21;
Edit7.TabOrder := 9;
Edit7.Text := '0000';
ComboBox1 := TComboBox.Create(frmDesign);
ComboBox1.Parent := frmDesign;
ComboBox1.Left := 120;
ComboBox1.Top := 116;
ComboBox1.Width := 121;
ComboBox1.Height := 21;
ComboBox1.ItemHeight := 13;
ComboBox1.TabOrder := 11;
ComboBox1.Text := 'Cut Logs?';
ComboBox1.Items.Add('Shorts');
ComboBox1.Items.Add('Longs');
ComboBox1.Items.Add('Stocks');
ComboBox1.Items.Add('False');
ComboBox2 := TComboBox.Create(frmDesign);
ComboBox2.Parent := frmDesign;
ComboBox2.Left := 120;
ComboBox2.Top := 138;
ComboBox2.Width := 121;
ComboBox2.Height := 21;
ComboBox2.ItemHeight := 13;
ComboBox2.TabOrder := 11;
ComboBox2.Text := 'String Bows?';
ComboBox2.Items.Add('True');
ComboBox2.Items.Add('False');
ComboBox3 := TComboBox.Create(frmDesign);
ComboBox3.Parent := frmDesign;
ComboBox3.Left := 120;
ComboBox3.Top := 160;
ComboBox3.Width := 121;
ComboBox3.Height := 21;
ComboBox3.ItemHeight := 13;
ComboBox3.TabOrder := 11;
ComboBox3.Text := 'Alch?';
ComboBox3.Items.Add('True');
ComboBox3.Items.Add('False');
Button1 := TButton.Create(frmDesign);
Button1.Parent := frmDesign;
Button1.OnClick := @Setupmain;
Button1.Left := 94;
Button1.Top := 261;
Button1.Width := 75;
Button1.Height := 25;
Button1.Caption := 'Start!!';
Button1.TabOrder := 10;
end;

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

procedure ShowFormModal;
begin
frmDesign.ShowModal;
end;

procedure SafeShowFormModal;
var
v : TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;

begin
SafeInitForm;
SafeShowFormModal;
FreeForm(frmDesign);
LogOut;
Writeln('I have cut ' + NumCut + ' ' + WhichType + ',');
Writeln('I have strung' + NumStrung + ' ' + WhichType + );
Writeln('and I have Alched' + NumAclhed + ' items.');
end.

mogwairn

2007-07-21 04:21:11

To all you really useful people who claim i have copied, i do computing as a subject (learning programming) and am pretty profficient in java, so can pick up a language pretty quickly especially an easy one like SCAR, why would i ask for help developing a script if i hadnt made it? surely i'd use my brain and steal a good script that works

To santa thanks for looking at the script, and cheers for tips.

P.S please do copy check this, i realise because this isnt an autotalking powerchopper, so its OBVIOUSLY not a first script by me, because im incapable of reading tutorials………or you could just do it to prove me to be the author,

Killerdou

2007-07-21 04:30:55

Procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms;
end;
dont do that, its useless and ive seen that mistake before…(findnormal randoms does everything that findfastrandoms does + some extra stuff)

mogwairn

2007-07-21 04:36:43

ahh ok i just found that in a tutorial so assumed the did different things, thanks
so im guessing the whole of FindFastRandoms is now redundant?

Santa_Clause

2007-07-21 04:42:24

iloveit…I said the same thing to some other people and they kept bugging me about it.

mogwairn

2007-07-21 04:54:36

the contents of FindNormalRandom looks like it has more than findfast, maybe they just recently updated it? i havent been here long so wouldn't know.. but am now slightly confused

Santa_Clause

2007-07-21 05:05:41

Basically…FindNormalRandoms covers you against all randoms.

FindFastRandoms only covers you for some, but is faster than FindNormalRandoms.

There's no point in using both…

Also, there's an error in the last couple of lines in your script:

Writeln('and I have Alched' + NumAclhed + ' items.');

Should be Alched not Aclhed…

mogwairn

2007-07-21 05:27:00

ok cheers, since im doing 3 different proccesses its worth just using findnormal you think?

and typo has been changed thanks