Rich
2009-05-11 20:14:40
How Long have You Played Runescape?
3 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
I have no other knowledge of programming other than SCAR.
Are you a member of any other communities?
GamerzPlanet (http://www.gamerzplanet.net/)
Freddy1990 (http://freddy1990.com/)
Tell us about yourself…
Please show us one (or multiple) of your scripts.
3 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
I have no other knowledge of programming other than SCAR.
Are you a member of any other communities?
GamerzPlanet (http://www.gamerzplanet.net/)
Freddy1990 (http://freddy1990.com/)
Tell us about yourself…
From: R1ch
My name is Richard, and I am 13 years old. I come from Essex, in England. I am currently in Year 9, and have some very good levels/grades. I have a level 7+ in Maths, 7- in Science, 6+ in English, and 7 in History. I recently chose my option subjects for Year 10, and I chose: History, Geography and Hospitality. My hobbies are coming here on SRL, cooking, and in general, just relaxing.
Please show us one (or multiple) of your scripts.
program SteelPlateHighAlcher;
{.include SRL/SRL.scar}
{.include SRL/srl/skill/magic.scar}
{ To use: - Fill in DeclarePlayers
- Places your player(s) in the chosen bank(s)
- Have everything visible in your bank ~ NOT INVENTORY
- Press play}
var
X, Y, Staff, FRune, NRune, Plate, PlateNote, NoteOn, LevelUps, T, R, M, A : Integer;
DonePerAcc, DonePerLoad : TIntegerArray;
Act : Boolean;
const
Rest = 7; // Minutes rest between characters
RRest = 4; // Randomness of ^
Amount = 200; // Amount of plates to alch before swiching (will stay active)
UseResponder = True; // Use the auto responder?
{Valid arguments for the bank are: - 'feb' - Falador East Bank
'fwb' - Falador West Bank
'veb' - Varrock East Bank
'vwb' - Varrock West Bank
'akb' - Al Kharid Bank
'db' - Draynor Bank
'eb' - Edgeville Bank}
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // How many players to use
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; //Player to start with
Players[0].Name := 'Username'; // Username of account
Players[0].Pass := 'Password'; // Password of account
Players[0].Nick := 'sern'; // 3-4 lowercase letters of username
Players[0].Active := True; // Use this account?
Players[0].Integers[0] := 1000; // Total amount to make
Players[0].Integers[1] := 0000; // Bank PIN if any
Players[0].Strings[0] := 'vwb'; // The bank to alch at
Players[0].Strings[1] := 'staff'; // Use Fire Staff or Runes (staff, runes)
{Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := True;
Players[1].Integers[0] := ;
Players[1].Integers[1] := ;
Players[1].Strings[0] := '';
Players[1].Strings[1] := ;
Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := '';
Players[2].Active := True;
Players[2].Integers[0] := ;
Players[2].Integers[1] := ;
Players[2].Strings[0] := '';
Players[2].Strings[1] := ;
Players[3].Name := '';
Players[3].Pass := '';
Players[3].Nick := '';
Players[3].Active := True;
Players[3].Integers[0] := ;
Players[3].Integers[1] := ;
Players[3].Strings[0] := '';
Players[3].Strings[1] := ;
Players[4].Name := '';
Players[4].Pass := '';
Players[4].Nick := '';
Players[4].Active := True;
Players[4].Integers[0] := ;
Players[4].Integers[1] := ;
Players[4].Strings[0] := '';
Players[4].Strings[1] := ;}
end;
procedure LoadDTMs;
begin
Staff := DTMFromString('78DA63E4636060106640012BEB45C1342394C' +
'F0892E76240038CA86A4480040B013592408295801A3120C14D40' +
'0DC8CD2204D470020929026A406E9127A0861948C812619738013' +
'5BC98E18CAE0600076E02BC');
FRune := DTMFromString('78DA6314626060106640012B5544190481342' +
'310FF0702463920838F010D302291405A1648481250230E24E409' +
'A8E107120A04D4B0126117339010C0AF0600F62F0621');
NRune := DTMFromString('78DA631462606010614001423D620C82409A1' +
'188FF0301A30C9021C38006189148202D0E24E409A8E104127204' +
'D43063BA07430D0B90E021A006E41641026A6481042F7E35009F5' +
'30615');
Plate := DTMFromString('78DA6314626060E06340010DE5E5609A11CA6' +
'75400125C0C688011558D3C901022A0461C48481050C30F242409' +
'A8E10612E204D4B011610E2B90E027A086194870E3570300B2700' +
'2BE');
PlateNote := DTMFromString('78DA631466606010614001F919E90CFC409A1' +
'188FF0301A31C9021C98006189148202D03241408A8110012F204' +
'D470000939026A9881840401352C40828F801A905BB8F1AB01003' +
'C7A06A7');
NoteOn := DTMFromString('78DA6314666060E06100032E08C510166207A' +
'61981F83F10308A0019CC0C6880118904D2A240829B801A212021' +
'44400DC82DC204D43013610E480D3B01359C408285801A01C27E0' +
'7005ED005E1');
end;
procedure FreeDTMs;
begin
FreeDTM(Staff);
FreeDTM(FRune);
FreeDTM(NRune);
FreeDTM(Plate);
FreeDTM(PlateNote);
FreeDTM(NoteOn);
end;
function LevelUp : Boolean; //Thanks Wizzup?
var
Lev : Integer;
begin
Result := FindNPCChatText('gratu', Nothing) or
FindNPCChatText('atio', Nothing);
if Result then
begin
while ClickContinue(True, True) do
Wait(500 + Random(250));
WriteLn(Players[CurrentPlayer].Name + ' leveled up');
Lev:= GetSkillInfo('magic', False);
WriteLn(Players[CurrentPlayer].Name + '''s Magic level is now ' + IntToStr(Lev));
LevelUps:= LevelUps + 1;
end;
end;
procedure Responder;
var
HiChats, NoobChats, AutoChats, HiChatR, NoobChatR, AutoChatR, UpChats,
UpChatR, AlchChats, AlchChatR, LevelChats, YesChats : TStringArray;
I, RL : Integer;
begin
if not (LoggedIn) then
begin
Players[CurrentPlayer].Active:= False;
Exit;
end;
HiChats:= ['hi', 'yo', 'sup', 'ello', 'wassup', 'll right', 'hey', 'hai'];
HiChatR:= ['hi', 'hello there', 'sup', 'yo', 'hello', 'hey', 'howdy', 'hai'];
NoobChats:= ['noob', 'froob', 'neeb', 'choob', 'loser', 'you are a'];
NoobChatR:= ['u are', 'you r', 'u r', 'i aint', 'how am i??', 'looked in the mirror lately?'];
AutoChats:= ['autoer', 'bot', 'auto', 'cheater', 'autoing', 'cheat'];
AutoChatR:= ['no im not', 'im not a bot', 'i dont cheat!', 'me?!', 'r u serious?!', 'bots can talk??'];
UpChats:= ['gratz', 'well done', 'congratulations', 'grats', 'congratz'];
UpChatR:= ['thanks', 'ty', 'thank you', 'thx', 'thanx'];
AlchChats:= ['alchin?', 'wot u alc', 'what are you alc', 'lching?', 'lchemy on'];
AlchChatR:= ['steel pl8s', 'steel plates', 'steel bodies', 'steel pl8bodies', 'steel platebodies'];
LevelChats:= ['age lv', 'agic lv', 'age lev', 'agic lev'];
YesChats:= ['Yes', 'Ye', 'Yeah', 'Yea', 'Yup', 'Uh huh', 'Yep'];
for I:= 0 to High(HiChats) do
begin
if InChat(HiChats[i]) then
TypeSend(HiChatR[i]);
R:= R + 1;
end;
for I:= 0 to High(NoobChats) do
begin
if InChat(NoobChats[i]) then
TypeSend(NoobChatR[i]);
R:= R + 1;
end;
for I:= 0 to High(AutoChats) do
begin
if InChat(AutoChats[i]) then
TypeSend(AutoChatR[i]);
R:= R + 1;
end;
if LevelUp then
begin
for I:= 0 to High(UpChats) do
begin
if InChat(UpChats[i]) then
TypeSend(UpChatR[i]);
R:= R + 1;
end;
end;
for I:= 0 to High(AlchChats) do
begin
if InChat(AlchChats[i]) then
TypeSend(AlchChatR[i]);
R:= R + 1;
end;
for I:= 0 to High(LevelChats) do
begin
if InChat(LevelChats[i]) then
begin
R:= R + 1;
RL:= GetSkillInfo('magic', False);
case Random(10) of
0: TypeSend(IntToStr(RL));
1: TypeSend('lvl '+IntToStr(RL));
2: TypeSend(IntToStr(RL) + ' over here');
3: TypeSend('level '+IntToStr(RL));
4: TypeSend('I''m ' + IntToStr(RL) + ' smithin');
5: TypeSend('only ' + IntToStr(RL));
6: TypeSend('meh, only ' + IntToStr(RL));
7: begin
case Random(5) of
0: TypeSend('onky ' + IntToStr(RL));
1: TypeSend('omly ' + IntToStr(RL));
2: TypeSend('inly ' + IntToStr(RL));
3: TypeSend('onlu ' + IntToStr(RL));
4: TypeSend('om;y ' + IntToStr(RL));
end;
case Random(5) of
0: TypeSend('only*');
1: TypeSend('*only');
2: TypeSend('Sorry, *only');
3: TypeSend('I meant "only"');
4: TypeSend('*only ' + IntToStr(RL));
end;
end;
8: case Random(3) of
0: TypeSend('My magic is ' + IntToStr(RL));
1: TypeSend('My mage is ' + IntToStr(RL) + '...8-)');
2: TypeSend('It''s ' + IntToStr(RL));
end;
9: begin
TypeSend('Me?');
Wait(2500 + Random(1500));
for I:= 0 to High(YesChats) do
if InChat(YesChats[i]) then
TypeSend(IntToStr(RL));
end;
end;
end;
end;
end;
function SwitchNote(on_or_off : string) : Boolean;
var
X, Y : Integer;
begin
Result:= False;
if BankScreen then
begin
if (on_or_off = 'on') then
begin
if FindDTM(NoteOn, X, Y, MSX1, MSY1, MSX2, MSY2) then
Result:= True;
end else
begin
if FindDTM(NoteOn, X, Y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(X, Y, 5, 5, True);
Result:= True;
end;
end;
end;
end;
procedure AntiBan;
var
X, Y : Integer;
begin
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
case Random(125) of
0: RandomRClick;
1: BoredHuman;
2: HoverSkill('Magic', False);
3: PickUpMouse;
4: begin
case Random(5) of
0: MakeCompass('E');
1: MakeCompass('S');
2: MakeCompass('W');
3: SetAngle(False);
4: begin
case Random(3) of
0: begin
MakeCompass('E');
SetAngle(False);
end;
1: begin
MakeCompass('S');
SetAngle(False);
end;
2: begin
MakeCompass('W');
SetAngle(False);
end;
end;
Wait(1500 + Random(1000));
MakeCompass('N');
SetAngle(True);
end;
end;
end;
5: begin
GameTab(1 + Random(13));
Wait(1500 + Random(1000));
GameTab(4);
end;
6: begin
case Random(4) of
0: MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
1: MouseBox(MMX1, MMY1, MMX2, MMY2, 3);
2: MouseBox(MIX1, MIY1, MIX2, MIY2, 3);
3: MouseBox(MCX1, MCY1, MCX2, MCY2, 3);
end;
end;
7: RandomMovement;
8: begin
Mouse(Random(X), Random(Y), 150, 150, False);
Wait(1337 + Random(1000));
if (not(ChooseOption('xamine'))) then
ChooseOption('ancel');
end;
9: HoverSkill('Random', False);
end;
end;
procedure AntiRandoms;
begin
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
if UseResponder then
Responder;
FindNormalRandoms;
if FindFight then
begin
SetRun(True);
RunAway('N', True, 1, 5000 + Random(2500));
end;
if UseResponder then
Responder;
end;
procedure Report;
var
I : Integer;
begin
WriteLn('///////////////|\\\\\\\\\\\\\\\');
WriteLn(' ~ R1ch''s Steel Pl8 Alcher ~');
WriteLn('\\\\\\\\\\\\\\\|///////////////');
for I:= 0 to High(Players) do
WriteLn(Players[i].Name + ' ~ Alched ' + IntToStr(DonePerAcc[i]) + ' Steel Plates ~ Made ' + IntToStr(DonePerAcc[i] * 1200) + 'GP');
WriteLn('Worked for a total of ' + TimeRunning);
WriteLn('Alched a total of ' + IntToStr(A) + ' Steel Plates');
WriteLn('Made a total of ' + IntToStr(M) + 'GP');
WriteLn('Leveled up a total of ' + IntToStr(LevelUps) + ' times');
WriteLn('///////// Please Post Proggies \\\\\\\\\');
end;
procedure ScriptTerminate;
begin
Report;
end;
procedure DepositStuff;
begin
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
AntiRandoms;
AntiBan;
OpenBankQuiet(Players[CurrentPlayer].Strings[0]);
if PINScreen then
begin
InPIN(IntToStr(Players[CurrentPlayer].Integers[1]));
Wait(1000 + Random(500));
if FindNPCChatText('ncorrect', Nothing) then
begin
WriteLn('Wrong PIN for ' + Players[CurrentPlayer].Name);
Wait(5000 + Random(2500));
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end else
begin
if BankScreen then
begin
DepositAll
Mouse(433, 308, 12, 7, True);
end else
begin
WriteLn(Players[CurrentPlayer].Name + ' couldn''t open the bank');
if LoggedIn then Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
if (T > 0) then
Exit else
CloseBank;
end;
end;
end;
procedure WithdrawStuff;
begin
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
AntiRandoms;
AntiBan;
OpenBankQuiet(Players[CurrentPlayer].Strings[0]);
if PINScreen then
begin
InPIN(IntToStr(Players[CurrentPlayer].Integers[1]));
Wait(1000 + Random(500));
if FindNPCChatText('ncorrect', Nothing) then
begin
WriteLn('Wrong PIN for ' + Players[CurrentPlayer].Name);
Wait(5000 + Random(2500));
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end else
begin
if BankScreen then
begin
if FindDTM(Plate, X, Y, MSX1, MSY1, MSX2, MSY2) then
begin
SwitchNote('on');
MMouse(X, Y, 7, 7);
Wait(500 + Random(250));
if IsUpText('latebod') then
begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, False);
Wait(500 + Random(250));
ChooseOption('ithdraw-X');
Wait(500 + Random(250));
TypeSend(IntToStr(Players[CurrentPlayer].Integers[0] - DonePerAcc[CurrentPlayer]));
end else
begin
WriteLn('Couldn''t find Steel Platebodies');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end else
begin
WriteLn('Couldn''t find Steel Platebodies');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
if FindDTM(NRune, X, Y, MSX1, MSY1, MSX2, MSY2) then
begin
SwitchNote('off');
MMouse(X, Y, 7, 7);
Wait(500 + Random(250));
if IsUpText('ature') then
begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, False);
Wait(500 + Random(250));
ChooseOption('ithdraw-X');
Wait(500 + Random(250));
TypeSend(IntToStr(Players[CurrentPlayer].Integers[0] - DonePerAcc[CurrentPlayer]));
end else
begin
WriteLn('Couldn''t find Nature Runes');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end else
begin
WriteLn('Couldn''t find Nature Runes');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
if (Players[CurrentPlayer].strings[1] = 'staff') then
begin
if FindDTM(Staff, X, Y, MSX1, MSY1, MSX2, MSY2) then
begin
SwitchNote('off');
MMouse(X, Y, 7, 7);
Wait(500 + Random(250));
if IsUpText('taff') then
begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
end else
begin
WriteLn('Couldn''t find Fire Staff');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end else
begin
WriteLn('Couldn''t find FireStaff');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end else
if FindDTM(FRune, X, Y, MSX1, MSY1, MSX2, MSY2) then
begin
SwitchNote('off');
MMouse(X, Y, 7, 7);
Wait(500 + Random(250));
if IsUpText('une') then
begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
end else
begin
WriteLn('Couldn''t find Fire Runes');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end else
begin
WriteLn('Couldn''t find FireRunes');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end else
begin
WriteLn(Players[CurrentPlayer].Name + ' couldn''t open the bank');
if LoggedIn then Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
end;
CloseBank;
AntiRandoms;
AntiBan;
end;
procedure AlchDaPl8s;
var
X, Y : Integer;
begin
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
AntiRandoms;
AntiBan;
if (Players[CurrentPlayer].Strings[1] = 'staff') and
not (FindDTM(Staff, X, Y, MIX1, MIY1, MIX2, MIY2)) then
begin
WriteLn('Something went wrong with getting the staff out');
T:= T + 1;
if (T = 2) then
begin
if LoggedIn then Logout;
Players[CurrentPlayer].Active := False;
Exit;
end else
begin
WriteLn('Trying to withdraw again');
DepositStuff;
end;
end;
if (Players[CurrentPlayer].Strings[1] = 'runes') and
not (FindDTM(FRune, X, Y, MIX1, MIY1, MIX2, MIY2)) then
begin
WriteLn('Something went wrong with getting the fire runes out');
T:= T + 1;
if (T = 2) then
begin
if LoggedIn then Logout;
Players[CurrentPlayer].Active := False;
Exit;
end else
begin
WriteLn('Trying to withdraw again');
DepositStuff;
end;
end;
if not (FindDTM(NRune, X, Y, MIX1, MIY1, MIX2, MIY2)) or
not (FindDTM(PlateNote, X, Y, MIX1, MIY1, MIX2, MIY2)) then
begin
WriteLn('Something went wrong with getting the Plates/Nature Runes out');
T:= T + 1;
if (T = 2) then
begin
if LoggedIn then Logout;
Players[CurrentPlayer].Active := False;
Exit;
end else
begin
WriteLn('Trying to withdraw again');
DepositStuff;
end;
end;
AntiRandoms;
AntiBan;
if FindDTM(Staff, X, Y, MIX1, MIY1, MIX2, MIY2) then
Mouse(X, Y, 5, 5, True);
Wait(1000 + Random(500));
if FindDTM(PlateNote, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
MMouse(X, Y, 0, 0);
GetMousePos(X, Y);
end;
DonePerLoad[CurrentPlayer]:= 0;
repeat
Cast('high level alchemy');
Wait(500 + Random(250));
Mouse(X, Y, 5, 5, True);
AntiRandoms;
AntiBan;
Inc(DonePerLoad[CurrentPlayer]);
Inc(DonePerAcc[CurrentPlayer]);
M:= M + 1200;
if (DonePerAcc[CurrentPlayer] = Players[CurrentPlayer].Integers[0]) or
not (FindDTM(PlateNote, X, Y, MIX1, MIY1, MIX2, MIY2)) or
not(FindDTM(NRune, X, Y, MIX1, MIY1, MIX2, MIY2)) or
(Players[CurrentPlayer].Strings[1] = 'runes') and
not(FindDTM(FRune, X, Y, MIX1, MIY1, MIX2, MIY2)) then
begin
AntiRandoms;
Act:= False;
DepositStuff;
Logout;
Break;
end;
if (DonePerLoad[CurrentPlayer] = Amount + Random(25)) then
begin
AntiRandoms;
Act:= True;
DepositStuff;
Logout;
Break
end;
until(False);
end;
begin
SetupSRL;
SetupMagic;
ActivateClient;
LoadDTMs;
if (not LoggedIn) then LoginPlayer;
repeat
begin
WithdrawStuff;
AlchDaPl8s;
Wait(Rest * 60000 + Random(RRest * 60000));
if Act then
NextPlayer(True) else
NextPlayer(False);
end;
until(AllPlayersInactive);
end.