Awesome, going to start using this after Woodcutting. Thank you for this script.
Awesome, going to start using this after Woodcutting. Thank you for this script.
im gonna try this when i get home!
Good work looking forward to running this after i get 90 str :]
Thanks for all the posts... and some of the spam...
I'm still waiting on an account to test this out on and to work out all the bugs.
Update!
Version 2.0 released!
Now I know there are alot of bugs in this (Because my accounts locked out for 10 days, and no one is kind enough to let me use theres for a while), so please tell me any you find out and everything that could be improved.
Thanks
For true statements, if I was looking for a rock, I would do:
if FindDTM(RockDTM, x, y..blah) then
while you do
if (FindDTM(RockDTM, x, y..blah) = True) then
You don't need the = True if you're doing a true statement.
And if you were doing a false statement, do it like this:
if not(FindDTM(RockDTM, x, y..blah)) then
Also, never capitalize bold words in SCAR, and make sure pretty much every line ends with a semicolon ( ; ) unless it is something like an if then statement.
EDIT: Why don't you use a global DTM for ores?
EDIT2: Here you go with basically fixed standards:
SCAR Code:program New;
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
{Must also be in Varrock East Mine and have a clear view of rock.}
const
RockType = 'Iron'; //What ore you want to mine. Can be Iron, Tin, Copper, or Clay.
Level = 50; //What level mining you would like to be.
Place = 'Varrock'; //What mine are you at? Varrock, Falador, Lumbridge, or Rimmington.
procedure DeclarePlayers;
begin
HowManyPlayers := 1; //Number of players
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
end;
var
Clay, Tin, Copper, Iron,
Silver, Coal, Gold, Mithril,
Adamant, Rune: integer;
procedure DTMSetUp;
begin
Clay := DTMFromString('78DA6364616160B8CAC8800C2654053170016' +
'990E87F20606405AA3987AA06220B2381342F50CD15026A18816A' +
'6E1350F39B19C33DE86A000D8A0AC2');
Tin := DTMFromString('78DA6334646160B8CAC8800C7A9A9B18B8803' +
'448F43F1030EA03D5DC47550391859140DA1AA8E6320135464035' +
'C709A891C7740FBA1A006BA50ACE');
Copper := DTMFromString('78DA638C666160B8CAC8800CEED45B3270016' +
'990E87F20604C07AAB980AA06220B2381742450CD03026A3C816A' +
'AE1050130154731CBF1A00C4420B9E');
Iron := DTMFromString('78DA636C616160B8C4C8800C3C759518B8803' +
'448F43F10303601D53C445503918591407A0250CD45026A4A30ED' +
'C25003B2EB047E35007C680B70');
Silver := DTMFromString('78DA6364656160F8CEC8800C66CF5ECEC005A' +
'441A2FF81809119A88695890115302291405A04A8E633237E355F' +
'9931ECC250C30E34E7357E350043290AF4');
Coal := DTMFromString('78DA6334646160F8CEC8800C2C2DD519B8803' +
'448F43F1030DA01D57C46550391859140DA08A8E6350135BA4035' +
'AC4CF8D5C803D5FCC46F0E00D26B0988');
Gold := DTMFromString('78DA638C626160F8C9C8800CAEAD9766E002D' +
'220D1FF40C0980154F319550D44164602E918A09AD704D47862DA' +
'85A12612A8869909AF1A00EF290B62');
Mithril := DTMFromString('78DA636C616160F8CEC8800CBC7DF219B8803' +
'448F43F10304E04AAF982AA06220B2381743D50CD2B026A1A816A' +
'5899F0AB2901AAF986DF1C00C13E0B8E');
Adamant := DTMFromString('78DA63646361609061624006FEC9FE0C5C409' +
'A1188FF0301A300A61A882C8C04D2EC4035FC04D47C65266C0E13' +
'D01C4DFC6A0087FC06D3');
Rune := DTMFromString('78DA6334646160906662400681D9E50C5C409' +
'A1188FF0301A30D508D14AA1A882C8C04D2464035FC04D4E802D5' +
'681250230F5423835F0D00BC5606DA');
end;
procedure ScriptTerminate;
begin
Writeln('Terminating...');
FreeDTM(Clay);
FreeDTM(Tin);
FreeDTM(Copper);
FreeDTM(Iron);
FreeDTM(Silver);
FreeDTM(Coal);
FreeDTM(Gold);
FreeDTM(Mithril);
FreeDTM(Adamant);
FreeDTM(Rune);
end;
var
Drop, TheRock: integer;
XP: Extended;
procedure SetupOre;
begin
LoadRockRecords;
case LowerCase(RockType) of
'clay': begin
case LowerCase(Place) of
'varrock': TheRock := varrock_Clay;
'falador': TheRock := falador_Clay;
'rimmington': TheRock := rimmington_Clay;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 5;
Drop := Clay;
end;
'tin': begin
case LowerCase(Place) of
'varrock': TheRock := varrock_Tin;
'falador': TheRock := falador_Tin;
'lumbridge': TheRock := lumbridge_Tin;
'rimmington': TheRock := rimmington_Tin;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 17.5;
Drop := Tin;
end;
'copper': begin
case LowerCase(Place) of
'varrock': TheRock := varrock_Copper;
'falador': TheRock := falador_Copper;
'lumbridge': TheRock := lumbridge_Copper;
'rimmington': TheRock := rimmington_Copper;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 17.5;
Drop := Copper;
end;
'iron': begin
case LowerCase(Place) of
'varrock': TheRock := varrock_Iron;
'falador': TheRock := falador_Iron;
'rimmington': TheRock := rimmington_Iron;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 35;
Drop := Iron;
end;
'silver': begin
case LowerCase(Place) of
'varrock': TheRock := varrock_Silver;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 40;
Drop := Silver;
end;
'coal': begin
case LowerCase(Place) of
'falador': TheRock := falador_Coal;
'lumbridge': TheRock := lumbridge_Coal;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 50;
Drop := Coal;
end;
'gold': begin
case LowerCase(Place) of
'rimmington': TheRock := rimmington_Gold;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 65;
Drop := Gold;
end;
'mithril': begin
case LowerCase(Place) of
'falador': TheRock := falador_Mithril;
'lumbridge': TheRock := lumbridge_Mithril;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 80;
Drop := Mithril;
end;
'adamant': begin
case LowerCase(Place) of
'falador': TheRock := falador_Adamant;
'lumbridge': TheRock := lumbridge_Adamant;
else Writeln('Error: There is no ' + LowerCase(RockType) + ' in ' + Capitalize(Place));
end;
XP := 95;
Drop := Adamant;
end;
'rune': Writeln('Rune is not surported in this script');
else Writeln('Error: There is no such ore as ' + LowerCase(RockType));
end;
end;
var
NonOres, x, y, OresFit: Integer;
Full: Boolean;
procedure DropOres;
begin
GameTab(4);
if (FindDTM(Drop, x, y, MSX1, MSY1, MSX2, MSY2) = True) then
begin
repeat
Wait(Random(250));
GameTab(4);
FindDTM(Drop, x, y, MSX1, MSY1, MSX2, MSY2);
DropItem(CoordsToItem(x, y));
until (FindDTM(Drop, x, y, MSX1, MSY1, MSX2, MSY2) = False);
end;
if (InvFull) then
begin
Writeln('Not enough space to fit any ores');
TerminateScript;
end;
NonOres:= InvCount;
OresFit:= 28 - NonOres
end;
var
MinedOres, Ores: Integer;
procedure ProggyInfo;
begin
MinedOres := 0;
Ores := 0;
end;
var
x2, y2: integer;
procedure MineOre;
begin
if FindObjRock(x2, y2, TheRock) then
begin
if FindGas(x2, y2) then
begin
repeat
Wait(100);
until not(findgas(x2, y2));
if FindPickHeadColor then FindPick;
case Random(2) of
0: Mouse(x2, y2, 3, 3, True);
1: begin
Mouse(x2, y2, 3, 3, False);
ChooseOption('ine');
end;
end;
end;
end;
FindNormalRandoms;
Wait(3000 + Random(2000));
MinedOres := InvCount - NonOres;
end;
procedure Logo;
begin
Writeln(' _')
Wait(100)
Writeln(' ______ ______ __ _ ( ) _______')
Wait(100)
Writeln(' ( __ \ / ___ \ |\ /|/ \ ( \ |/ ( ____ \')
Wait(100)
Writeln(' | ( \ )\/ \ \| ) ( |\/) ) | ( | ( \/')
Wait(100)
Writeln(' | | ) | ___) /| | | | | | | | | (_____')
Wait(100)
Writeln(' | | | | (___ ( ( ( ) ) | | | | (_____ )')
Wait(100)
Writeln(' | | ) | ) \ \ \_/ / | | | | ) |')
Wait(100)
Writeln(' | (__/ )/\___/ / \ / __) (_| (____/\ /\____) |')
Wait(100)
Writeln(' (______/ \______/ \_/ \____/(_______/ \_______)')
Wait(100)
Writeln(' ')
Wait(100)
Writeln(' _______ _______ _______ _______ _______ _________ _ _______ _______')
Wait(100)
Writeln(' ( ____ )( ___ )|\ /|( ____ \( ____ )( )\__ __/( ( /|( ____ \( ____ )')
Wait(100)
Writeln(' | ( )|| ( ) || ) ( || ( \/| ( )|| () () | ) ( | \ ( || ( \/| ( )|')
Wait(100)
Writeln(' | (____)|| | | || | _ | || (__ | (____)|| || || | | | | \ | || (__ | (____)|')
Wait(100)
Writeln(' | _____)| | | || |( )| || __) | __)| |(_)| | | | | (\ \) || __) | __)')
Wait(100)
Writeln(' | ( | | | || || || || ( | (\ ( | | | | | | | | \ || ( | (\ (')
Wait(100)
Writeln(' | ) | (___) || () () || (____/\| ) \ \__| ) ( |___) (___| ) \ || (____/\| ) \ \__')
Wait(100)
Writeln(' |/ (_______)(_______)(_______/|/ \__/|/ \|\_______/|/ )_)(_______/|/ \__/')
Wait(100)
Writeln('****************************************************************************************************')
Wait(100)
Writeln('')
Wait(100)
end;
var
Loads, XPs, XPe, SLvl, ELvl: integer;
procedure Proggy;
begin
Writeln('Running Time: ' + TimeRunning);
Wait(100);
Writeln('Non-Ores: ' + inttostr(NonOres));
Wait(100);
Writeln('Space for Ores: ' + inttostr(OresFit));
Wait(100);
Writeln('Ores Mined: ' + inttostr(MinedOres + Loads*OresFit));
Wait(100);
Writeln('Loads Done: ' + inttostr(Ores));
Wait(100);
Writeln('EXP Gained: ' + inttostr(XPe - XPs));
Wait(100);
Writeln('Start Level: ' + inttostr(SLvl));
Wait(100);
Writeln('End Level: ' + inttostr(ELvl));
Wait(100);
Writeln('**************************************************************************************************');
Wait(100);
Writeln('');
Wait(100);
end;
var
XPTill, OresTill: integer;
begin
SetUpSRL;
Writeln(TimeRunning);
DTMSetUp;
SetupOre;
DeclarePlayers;
ClearDebug;
Logo;
LoginPlayer;
XPs:= GetXP('Mining');
SLvl:= GetSkillInfo('Mining', False);
if (GetSkillInfo('Mining', False) > Level) or (GetSkillInfo('Mining', False) = Level) then
begin
if (GetSkillInfo('Mining', False) = Level) then Writeln('You are already at the desired mining level');
if (GetSkillInfo('Mining', False) > Level) then Writeln('Your mining level is higher that the deisered level');
TerminateScript;
end;
XPTill:= XPTillNextLevel('Mining')
OresTill:= Ceil(XPTill / XP);
DropOres;
ProggyInfo;
SetupOre;
repeat
repeat
MineOre;
until InvFull or (OresTill < (MinedOres + (Loads * OresFit)));
if InvFull then
begin
DropOres;
Ores := Ores + OresFit;
Loads := Loads + 1;
end;
until (OresTill < (MinedOres + (Loads * OresFit)));
Xpe := GetXP('Mining');
ELvl := GetSkillInfo('Mining', False);
Proggy;
TerminateScript;
end.
does the scripts work now?
Yes.
The one I posted is a little neater though =/
Yes, neater but does preetymuch the same.
Although has anyone found any bugs with it.
I am a little worried about the stopping porcess when you reach the desired level.
Could someone please test that out?
Oh, and Voice, If you mean the DTM's that are in SRL, I tryied them and they don't work. probebly outdated.
And I'm very sorry, I forgot to add the option for SMART.
Don't worry, I was planning on adding a little better version next time to fix bugs and the what not
No, make your own global DTM for ALL of the ores!
Not an individual DTM for clay, copper, tin, etc.
One that controls all of them!
Just make a DTM of the ore with the mainpoint having a Tolerance of 255.
nice script
ima give it a try, but if this one doesnt work, im waiting till im a junior member
---------------------------------------------
Ok im getting Line 234: [Error] (1279:32): Invalid number of parameters in script C:\Documents and Settings\Family\Desktop\SCAR 3.15\includes\SRL/SRL/Core/GameTab.scar
Do i have to redownload SRL?
works great thx
Yes, finaly i found one wich working
Thanks
nice script they are all good
thank u it is awsome!
could u try and add an auto banker or sumthin...
that would work good
but it would be hard cuz u would have to make it bank for every place like fally and varrock and lumby
Ill try... Ill post Prog and bugs if there are any
Update 2.1!
Just fixed some bugs and added SMART if you want to use it.
I would like to thank Wrycu for lending me his/her account until mine is unbanned.
I have not tested this completly, please notify me if there are any more bugs, or if there is anything that could be added.
My next version will be my last, as I can't see anything else to add, all it will do is fix some bugs (if there are any) and make it neater with more failsafes and more details in proggy.
I will start working on my banking in about a month, and will soon release it in the SRL Junoir Meber secion (sorry for all you leechers).
Thanks
Why would you add SMART?
SMART is broken.
Is it?
Since when?
When you download 2.1 just delete include for SMART
Line 7: [Error] (16898:11): Duplicate identifier 'MOVEMOUSE' in script C:\Program Files\SCAR 3.15\includes\SRL/SRL/Misc/SMART.scar
Problem with smart yes
Shibby thanks man
It isn't working for me, stops after it opens the game settings menu.. does nothing for a couple of minutes and then rs logs me out. Probably just my computer >_<
There are currently 1 users browsing this thread. (0 members and 1 guests)