NewToAutoing
2007-06-03 04:37:05
<!– BEGIN TEMPLATE: formanswers –>
NewToAutoing - SRL Member Application Form
NewToAutoing
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Nope, not really
Other Communitys
Well i went to moparisthebest to look at a tutorial
How Long have You Played Runescape
Since the rubber chicken (I don't really keep count)
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well i came to autoing because i got extremely bored of RuneScape while going for 99 fletching (I think i came here at 94 or so) and just wanted to make cash and then transfer it to my main in hopes that i could have some more fun if i had excess cash. I found iBot first and then eventually found my way here. I guess i started learning how to script simply because i'd have to become a member to get to the good scripts, but i ended up enjoying it more than i thought and now i don't really care so much about getting access to better scripts. I haven't been on RuneScape (at least, on my main) in about a month now. Technically i'm out of school already because i have to stay at home and take antibiotics, even though there's two weeks of school left, so i have plenty of time to spend scripting and learning.
As for this script, it's a RimmingtonAutoMiner that i started as a powerminer, but i think it works pretty good now and i felt like it was time to apply. It banks at Falador East Bank and can mine tin, copper, iron and gold. I was hoping to get a form implemented before i applied but i got too frustrated with it so decided oh well. I'm planning on going back to it later though. I've tested the iron part more than anything else though, so i dunno how great the rest works. For the sample i'll put this script (which i posted in the mining section of free scripts) but i'll take out some pointless stuff - mainly excessive instructions and things like that.
Oh and..i kinda have a question. How come when i preview it the first part is "What is the meaning to life?" yet i don't see that part here at all? O_o..
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
NewToAutoing - SRL Member Application Form
NewToAutoing
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Nope, not really
Other Communitys
Well i went to moparisthebest to look at a tutorial
How Long have You Played Runescape
Since the rubber chicken (I don't really keep count)
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well i came to autoing because i got extremely bored of RuneScape while going for 99 fletching (I think i came here at 94 or so) and just wanted to make cash and then transfer it to my main in hopes that i could have some more fun if i had excess cash. I found iBot first and then eventually found my way here. I guess i started learning how to script simply because i'd have to become a member to get to the good scripts, but i ended up enjoying it more than i thought and now i don't really care so much about getting access to better scripts. I haven't been on RuneScape (at least, on my main) in about a month now. Technically i'm out of school already because i have to stay at home and take antibiotics, even though there's two weeks of school left, so i have plenty of time to spend scripting and learning.
As for this script, it's a RimmingtonAutoMiner that i started as a powerminer, but i think it works pretty good now and i felt like it was time to apply. It banks at Falador East Bank and can mine tin, copper, iron and gold. I was hoping to get a form implemented before i applied but i got too frustrated with it so decided oh well. I'm planning on going back to it later though. I've tested the iron part more than anything else though, so i dunno how great the rest works. For the sample i'll put this script (which i posted in the mining section of free scripts) but i'll take out some pointless stuff - mainly excessive instructions and things like that.
Oh and..i kinda have a question. How come when i preview it the first part is "What is the meaning to life?" yet i don't see that part here at all? O_o..
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
program RimmingtonAutoMinerV0_94;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/Mining.scar}
{.include SRL/SRL/extended/xAutoTalk.scar}
{.include SRL/SRL/extended/xAntiBan.scar}
{.include SRL/SRL/extended/xInventory.scar}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~Introduction~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{DESCRIPTION:
This script will mine copper, tin, iron, or gold (depending on
which you select) at the Rimmington mine. It will walk to Falador
East Bank, and store all the ores/other random junk you acquire whilst
mining. It will then walk back to the mine and repeat the cycle.}
{INSTRUCTIONS:
You can start the script at either Falador East Bank or the Rimmington
mine. You must have a pickaxe equipped or in your inventory (obviously).
You only need to set up lines 55,85, and 110-156. Explanations
are at each of the sections you must fill out.}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~Variables and Constants~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
var
{~~~~~~~~~~~~~~~~~~~~Regular Script Variables~~~~~~~~~~~~~~~~~~~~~~~~}
OreDTM,GemDTM,TokenDTM,MMBankers,MMIronRocks,MMTinRocks,MMCopperRocks,
MMGoldRocks,RockColor1,RockColor2,RockColor3,MMRockColor,TheOtherColor,
TheColor,TimesBanked,OresMined,GemsMined,TokensObtained,WaitTime,Tries,
Searches,ScrewUps,RoadScrewUps,BankAttempts1,BankAttempts2,OtherBankAttempts1,
OtherBankAttempts2,MMBankersDTM,SplitSearches: Integer;
DidRandomHappen,BankersFound,BankFound: Boolean;
{~~~~~~~~~~~~~~~~~~~~~~~Dynamic DTM Variables~~~~~~~~~~~~~~~~~~~~~~~~}
CopperDTMSubPoints: array[0..4] of TDTMPointDef;
TinDTMSubPoints: array[0..3] of TDTMPointDef;
IronDTMSubPoints: array[0..3] of TDTMPointDef;
GoldDTMSubPoints: array[0..3] of TDTMPointDef;
BankDTMSubPoints: array[0..5] of TDTMPointDef;
RoadDTMSubPoints: array[0..2] of TDTMPointDef;
FallyGateDTMSubPoints: array[0..3] of TDTMPointDef;
CopperCGMainPoint,TinCGMainPoint,IronCGMainPoint,GoldCGMainPoint,
RoadCGMainPoint,FallyGateCGMainPoint,BankCGMainPoint: TDTMPointDef;
CopperRockTDTM,TinRockTDTM,IronRockTDTM,GoldRockTDTM,
RoadTDTM,FallyGateTDTM,BankSplitTDTM: TDTM;
CopperRockDTM,TInRockDTM,IronRockDTM,GoldRockDTM,
RoadSplitDTM,FallyGateDTM,BankSplitDTM: Integer;
WhichAngle: Extended;
const
{~~~~~~~~~~~~~~~~~~~~~Regular Script Constants~~~~~~~~~~~~~~~~~~~~~~~}
AmountOfOres = 0; //Amount of ores the script should end at
RunDirec = 'N'; //North,South,East,West. No need to change.
Version = 'V0.94';
{~~~~~~~~~~~~~~~~~~~~~~Dynamic DTM Constants~~~~~~~~~~~~~~~~~~~~~~~~~}
Tolerance = 1;
AreaSize = 1;
AreaShape = 0;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~Rockcolors, no need to change~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
CopperColor1 = 6724073;
CopperColor2 = 7577834;
CopperColor3 = 5146327;
TinColor1 = 10658478;
TinColor2 = 10921649;
TinColor3 = 8750479;
IronColor1 = 2898528;
IronColor2 = 2240332;
IronColor3 = 1778233;
GoldColor1 = 1952504;
GoldColor2 = 2015209;
GoldColor3 = 1817317;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~Set up players below~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure DeclarePlayers;
begin
HowManyPlayers := 6; //Number of PLAYERS. Active or not.
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; //Player to start on.
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{
Options for .Loc are:
"Rimmington" meaning the Rimmington Mine
and
"Falador" meaning Falador East Bank
Options for .String1 are "tin" "copper" "iron" and "gold"
For .Integer1 put in the amount of ores you want that individual
account to mine before switching to the next account.
The following is an example of how to fill out the form.
Do NOT edit this form, as it will have no effect on the script.
Players[0].Name := 'screenname';
Players[0].Pass := 'password';
Players[0].Nick := 'eenn';
Players[0].Loc := 'rimmington';
Players[0].String1 := 'iron';
Players[0].Integer1 := 100
Players[0].Active := True;
}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
Players[0].Name := 'NewToAutoings'; //Screenname
Players[0].Pass := 'RimmingtonAutoMiner'; //Password
Players[0].Nick := 'V0.94'; //Nickname
Players[0].Loc := '~~~'; //Current Location
Players[0].String1 := '~~~'; //Rock to mine
Players[0].Integer1 := 0; //Amount of loads to mine(for this account)
Players[0].Active := True; //Are you using this account?
Players[1].Name := 'NewToAutoings';
Players[1].Pass := 'RimmingtonAutoMiner';
Players[1].Nick := 'V0.94';
Players[1].Loc := '~~~';
Players[1].String1 := '~~~';
Players[1].Integer1 := 0;
Players[1].Active := False; //Set to True to use this player
Players[2].Name := 'UserName';
Players[2].Pass := 'Password';
Players[2].Nick := '3-4 letters of UserName';
Players[2].Loc := '~~~';
Players[2].String1 := '~~~';
Players[2].Integer1 := 0;
Players[2].Active := False; //Set to True to use this player
Players[3].Name := 'UserName';
Players[3].Pass := 'Password';
Players[3].Nick := '3-4 letters of UserName';
Players[3].Loc := '~~~';
Players[3].String1 := '~~~';
Players[3].Integer1 := 0;
Players[3].Active := False; //Set to True to use this player
Players[4].Name := 'UserName';
Players[4].Pass := 'Password';
Players[4].Nick := '3-4 letters of UserName';
Players[4].Loc := '~~~';
Players[4].String1 := '~~~';
Players[4].Integer1 := 0;
Players[4].Active := False; //Set to True to use this player
Players[5].Name := 'UserName';
Players[5].Pass := 'Password';
Players[5].Nick := '3-4 letters of UserName';
Players[5].Loc := '~~~';
Players[5].String1 := '~~~';
Players[5].Integer1 := 0;
Players[5].Active := False; //Set this to True to use this player
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~Don't touch any of the below unless you know what you're doing~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~DYNAMIC DTMS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure CheckRockColor;
begin
TheColor := FindRoadColor;
if (MMRockColor = 4675162) then
begin
MMRockColor := 6051154
end;
if ((MMRockColor = TheColor) or
(MMRockColor = 6910053) or
(MMRockColor = 5004895) or
(MMRockColor = 4741724) or
(MMRockColor = 6643553) or
(MMRockColor = 6709088) or
(MMRockColor = 4345939) or
(MMRockColor = 4675162))then
begin
repeat
MMRockColor := FindRockColor;
Wait(2000+random(1000));
ScrewUps := ScrewUps + 1;
Status('FindRockColor screwed up ' + IntToStr(ScrewUps) + ' time(s).');
until ((not(MMRockColor = TheColor)) and
(not(MMRockColor = 6910053)) and
(not(MMRockColor = 5004895)) and
(not(MMRockColor = 4741724)) and
(not(MMRockColor = 6643553)) and
(not(MMRockColor = 6709088)) and
(not(MMRockColor = 4345939)) and
(not(MMRockColor = 4675162))) or
(ScrewUps = 5) or
(ScrewUps = 10) or
(ScrewUps = 15) or
(ScrewUps = 20)
if (ScrewUps >= 20) then
begin
Status('FindRockColor is screwed up.');
Writeln('FindRockColor is screwed up. Account is lost.');
LogOut;
NextPlayer(False);
ScrewUps := 0;
end;
if (ScrewUps < 20) and
(not(ScrewUps = 15)) and
(not(ScrewUps = 10)) and
(not(ScrewUps = 5)) then
begin
Status('Corrected rock color');
ScrewUps := 0;
end;
end;
end;
function IsRockColorCorrect: Boolean;
begin
Result := False;
TheColor := FindRoadColor;
if ((MMRockColor = TheColor) or
(MMRockColor = 6910053) or
(MMRockColor = 5004895) or
(MMRockColor = 4741724) or
(MMRockColor = 6643553) or
(MMRockColor = 6709088) or
(MMRockColor = 4938846) or
(MMRockColor = 4345939) or
(MMRockColor = 5135458)) then
begin
repeat
MMRockColor := FindRockColor;
Wait(2000+random(1000));
ScrewUps := ScrewUps + 1;
Status('FindRockColor screwed up ' + IntToStr(ScrewUps) + ' time(s).');
until ((not(MMRockColor = TheColor)) and
(not(MMRockColor = 6910053)) and
(not(MMRockColor = 5004895)) and
(not(MMRockColor = 4741724)) and
(not(MMRockColor = 6643553)) and
(not(MMRockColor = 6709088)) and
(not(MMRockColor = 4938846)) and
(not(MMRockColor = 4345939)) and
(not(MMRockColor = 5135458))) or
(ScrewUps = 5) or
(ScrewUps = 10) or
(ScrewUps = 15) or
(ScrewUps = 20)
if (ScrewUps >= 20) then
begin
Status('FindRockColor is screwed up.');
Writeln('FindRockColor is screwed up. Account is lost.');
LogOut;
NextPlayer(False);
ScrewUps := 0;
Exit;
end;
if (ScrewUps < 20) and
(not(ScrewUps = 15)) and
(not(ScrewUps = 10)) and
(not(ScrewUps = 5)) then
begin
Result := True;
Status('Corrected rock color');
ScrewUps := 0;
end;
end;
end;
procedure SetCopperRockDTM;
begin
CopperCGMainPoint.x:=49;
CopperCGMainPoint.y:=15;
CopperCGMainPoint.areasize:=1;
CopperCGMainPoint.areashape:=0;
CopperCGMainPoint.color:=0;
CopperCGMainPoint.tolerance:=255;
CopperDTMSubPoints[0].x:=37;
CopperDTMSubPoints[0].y:=13;
CopperDTMSubPoints[0].areasize:=AreaSize;
CopperDTMSubPoints[0].areashape:=AreaShape;
CopperDTMSubPoints[0].color:=MMRockColor;
CopperDTMSubPoints[0].tolerance:=Tolerance;
CopperDTMSubPoints[1].x:=11;
CopperDTMSubPoints[1].y:=36;
CopperDTMSubPoints[1].areasize:=AreaSize;
CopperDTMSubPoints[1].areashape:=AreaShape;
CopperDTMSubPoints[1].color:=MMRockColor;
CopperDTMSubPoints[1].tolerance:=Tolerance;
CopperDTMSubPoints[2].x:=22;
CopperDTMSubPoints[2].y:=55;
CopperDTMSubPoints[2].areasize:=AreaSize;
CopperDTMSubPoints[2].areashape:=AreaShape;
CopperDTMSubPoints[2].color:=MMRockColor;
CopperDTMSubPoints[2].tolerance:=Tolerance;
CopperDTMSubPoints[3].x:=12;
CopperDTMSubPoints[3].y:=44;
CopperDTMSubPoints[3].areasize:=AreaSize;
CopperDTMSubPoints[3].areashape:=AreaShape;
CopperDTMSubPoints[3].color:=MMRockColor;
CopperDTMSubPoints[3].tolerance:=Tolerance;
CopperDTMSubPoints[4].x:=7;
CopperDTMSubPoints[4].y:=48;
CopperDTMSubPoints[4].areasize:=AreaSize;
CopperDTMSubPoints[4].areashape:=AreaShape;
CopperDTMSubPoints[4].color:=MMRockColor;
CopperDTMSubPoints[4].tolerance:=Tolerance;
CopperRockTDTM.MainPoint := CopperCGMainPoint;
CopperRockTDTM.SubPoints := CopperDTMSubPoints;
CopperRockDTM := AddDTM(CopperRockTDTM);
end;
procedure SetTinRockDTM;
begin
TinCGMainPoint.x:=24;
TinCGMainPoint.y:=8;
TinCGMainPoint.areasize:=1;
TinCGMainPoint.areashape:=0;
TinCGMainPoint.color:=0;
TinCGMainPoint.tolerance:=255;
TinDTMSubPoints[0].x:=17;
TinDTMSubPoints[0].y:=6;
TinDTMSubPoints[0].areasize:=AreaSize;
TinDTMSubPoints[0].areashape:=AreaShape;
TinDTMSubPoints[0].color:=MMRockColor;
TinDTMSubPoints[0].tolerance:=Tolerance;
TinDTMSubPoints[1].x:=26;
TinDTMSubPoints[1].y:=14;
TinDTMSubPoints[1].areasize:=AreaSize;
TinDTMSubPoints[1].areashape:=AreaShape;
TinDTMSubPoints[1].color:=MMRockColor;
TinDTMSubPoints[1].tolerance:=Tolerance;
TinDTMSubPoints[2].x:=11;
TinDTMSubPoints[2].y:=18;
TinDTMSubPoints[2].areasize:=AreaSize;
TinDTMSubPoints[2].areashape:=AreaShape;
TinDTMSubPoints[2].color:=MMRockColor;
TinDTMSubPoints[2].tolerance:=Tolerance;
TinDTMSubPoints[3].x:=7;
TinDTMSubPoints[3].y:=24;
TinDTMSubPoints[3].areasize:=AreaSize;
TinDTMSubPoints[3].areashape:=AreaShape;
TinDTMSubPoints[3].color:=MMRockColor;
TinDTMSubPoints[3].tolerance:=Tolerance;
TinRockTDTM.MainPoint := TinCGMainPoint;
TinRockTDTM.SubPoints := TinDTMSubPoints;
TinRockDTM := AddDTM(TinRockTDTM);
end;
procedure SetIronRockDTM;
begin
IronCGMainPoint.x:=5;
IronCGMainPoint.y:=11;
IronCGMainPoint.areasize:=1;
IronCGMainPoint.areashape:=0;
IronCGMainPoint.color:=0;
IronCGMainPoint.tolerance:=255;
IronDTMSubPoints[0].x:=7;
IronDTMSubPoints[0].y:=19;
IronDTMSubPoints[0].areasize:=AreaSize;
IronDTMSubPoints[0].areashape:=AreaShape;
IronDTMSubPoints[0].color:=MMRockColor;
IronDTMSubPoints[0].tolerance:=Tolerance;
IronDTMSubPoints[1].x:=12;
IronDTMSubPoints[1].y:=14;
IronDTMSubPoints[1].areasize:=AreaSize;
IronDTMSubPoints[1].areashape:=AreaShape;
IronDTMSubPoints[1].color:=MMRockColor;
IronDTMSubPoints[1].tolerance:=Tolerance;
IronDTMSubPoints[2].x:=12;
IronDTMSubPoints[2].y:=6;
IronDTMSubPoints[2].areasize:=AreaSize;
IronDTMSubPoints[2].areashape:=AreaShape;
IronDTMSubPoints[2].color:=MMRockColor;
IronDTMSubPoints[2].tolerance:=Tolerance;
IronDTMSubPoints[3].x:=20;
IronDTMSubPoints[3].y:=25;
IronDTMSubPoints[3].areasize:=AreaSize;
IronDTMSubPoints[3].areashape:=AreaShape;
IronDTMSubPoints[3].color:=MMRockColor;
IronDTMSubPoints[3].tolerance:=Tolerance;
IronRockTDTM.MainPoint := IronCGMainPoint;
IronRockTDTM.SubPoints := IronDTMSubPoints;
IronRockDTM := AddDTM(IronRockTDTM);
end;
procedure SetGoldRockDTM;
begin
GoldCGMainPoint.x:=15;
GoldCGMainPoint.y:=6;
GoldCGMainPoint.areasize:=1;
GoldCGMainPoint.areashape:=0;
GoldCGMainPoint.color:=0;
GoldCGMainPoint.tolerance:=255;
GoldDTMSubPoints[0].x:=16;
GoldDTMSubPoints[0].y:=12;
GoldDTMSubPoints[0].areasize:=AreaSize;
GoldDTMSubPoints[0].areashape:=AreaShape;
GoldDTMSubPoints[0].color:=MMRockColor;
GoldDTMSubPoints[0].tolerance:=Tolerance;
GoldDTMSubPoints[1].x:=8;
GoldDTMSubPoints[1].y:=6;
GoldDTMSubPoints[1].areasize:=AreaSize;
GoldDTMSubPoints[1].areashape:=AreaShape;
GoldDTMSubPoints[1].color:=MMRockColor;
GoldDTMSubPoints[1].tolerance:=Tolerance;
GoldDTMSubPoints[2].x:=32;
GoldDTMSubPoints[2].y:=13;
GoldDTMSubPoints[2].areasize:=AreaSize;
GoldDTMSubPoints[2].areashape:=AreaShape;
GoldDTMSubPoints[2].color:=MMRockColor;
GoldDTMSubPoints[2].tolerance:=Tolerance;
GoldDTMSubPoints[3].x:=36;
GoldDTMSubPoints[3].y:=8;
GoldDTMSubPoints[3].areasize:=AreaSize;
GoldDTMSubPoints[3].areashape:=AreaShape;
GoldDTMSubPoints[3].color:=MMRockColor;
GoldDTMSubPoints[3].tolerance:=Tolerance;
GoldRockTDTM.MainPoint := GoldCGMainPoint;
GoldRockTDTM.SubPoints := GoldDTMSubPoints;
GoldRockDTM := AddDTM(GoldRockTDTM);
end;
procedure SetRoadSplitDTM;
begin
RoadCGMainPoint.x:=648;
RoadCGMainPoint.y:=83;
RoadCGMainPoint.areasize:=1;
RoadCGMainPoint.areashape:=0;
RoadCGMainPoint.color:=0;
RoadCGMainPoint.tolerance:=255;
RoadDTMSubPoints[0].x:=615;
RoadDTMSubPoints[0].y:=59;
RoadDTMSubPoints[0].areasize:=AreaSize;
RoadDTMSubPoints[0].areashape:=AreaShape;
RoadDTMSubPoints[0].color:=TheColor;
RoadDTMSubPoints[0].tolerance:=Tolerance;
RoadDTMSubPoints[1].x:=672;
RoadDTMSubPoints[1].y:=75;
RoadDTMSubPoints[1].areasize:=AreaSize;
RoadDTMSubPoints[1].areashape:=AreaShape;
RoadDTMSubPoints[1].color:=TheColor;
RoadDTMSubPoints[1].tolerance:=Tolerance;
RoadDTMSubPoints[2].x:=632;
RoadDTMSubPoints[2].y:=105;
RoadDTMSubPoints[2].areasize:=AreaSize;
RoadDTMSubPoints[2].areashape:=AreaShape;
RoadDTMSubPoints[2].color:=TheColor;
RoadDTMSubPoints[2].tolerance:=Tolerance;
RoadTDTM.MainPoint := RoadCGMainPoint;
RoadTDTM.SubPoints := RoadDTMSubPoints;
RoadSplitDTM := AddDTM(RoadTDTM);
end;
procedure SetFallyGateDTM;
begin
FallyGateCGMainPoint.x:=97;
FallyGateCGMainPoint.y:=84;
FallyGateCGMainPoint.areasize:=1;
FallyGateCGMainPoint.areashape:=0;
FallyGateCGMainPoint.color:=0;
FallyGateCGMainPoint.tolerance:=255;
FallyGateDTMSubPoints[0].x:=91;
FallyGateDTMSubPoints[0].y:=52;
FallyGateDTMSubPoints[0].areasize:=AreaSize;
FallyGateDTMSubPoints[0].areashape:=AreaShape;
FallyGateDTMSubPoints[0].color:=TheOtherColor;
FallyGateDTMSubPoints[0].tolerance:=Tolerance;
FallyGateDTMSubPoints[1].x:=63;
FallyGateDTMSubPoints[1].y:=68;
FallyGateDTMSubPoints[1].areasize:=AreaSize;
FallyGateDTMSubPoints[1].areashape:=AreaShape;
FallyGateDTMSubPoints[1].color:=TheOtherColor;
FallyGateDTMSubPoints[1].tolerance:=Tolerance;
FallyGateDTMSubPoints[2].x:=93;
FallyGateDTMSubPoints[2].y:=119;
FallyGateDTMSubPoints[2].areasize:=AreaSize;
FallyGateDTMSubPoints[2].areashape:=AreaShape;
FallyGateDTMSubPoints[2].color:=TheColor;
FallyGateDTMSubPoints[2].tolerance:=Tolerance;
FallyGateDTMSubPoints[3].x:=98;
FallyGateDTMSubPoints[3].y:=114;
FallyGateDTMSubPoints[3].areasize:=AreaSize;
FallyGateDTMSubPoints[3].areashape:=AreaShape;
FallyGateDTMSubPoints[3].color:=TheColor;
FallyGateDTMSubPoints[3].tolerance:=Tolerance;
FallyGateTDTM.MainPoint := FallyGateCGMainPoint;
FallyGateTDTM.SubPoints := FallyGateDTMSubPoints;
FallyGateDTM := AddDTM(FallyGateTDTM);
end;
procedure SetBankSplitDTM;
begin
BankCGMainPoint.x:=106;
BankCGMainPoint.y:=72;
BankCGMainPoint.areasize:=1;
BankCGMainPoint.areashape:=0;
BankCGMainPoint.color:=0;
BankCGMainPoint.tolerance:=255;
BankDTMSubPoints[0].x:=135;
BankDTMSubPoints[0].y:=70;
BankDTMSubPoints[0].areasize:=AreaSize;
BankDTMSubPoints[0].areashape:=AreaShape;
BankDTMSubPoints[0].color:=TheOtherColor;
BankDTMSubPoints[0].tolerance:=Tolerance;
BankDTMSubPoints[1].x:=78;
BankDTMSubPoints[1].y:=70;
BankDTMSubPoints[1].areasize:=AreaSize;
BankDTMSubPoints[1].areashape:=AreaShape;
BankDTMSubPoints[1].color:=TheOtherColor;
BankDTMSubPoints[1].tolerance:=Tolerance;
BankDTMSubPoints[2].x:=100;
BankDTMSubPoints[2].y:=104;
BankDTMSubPoints[2].areasize:=AreaSize;
BankDTMSubPoints[2].areashape:=AreaShape;
BankDTMSubPoints[2].color:=TheOtherColor;
BankDTMSubPoints[2].tolerance:=Tolerance;
BankDTMSubPoints[3].x:=135;
BankDTMSubPoints[3].y:=77;
BankDTMSubPoints[3].areasize:=AreaSize;
BankDTMSubPoints[3].areashape:=AreaShape;
BankDTMSubPoints[3].color:=TheOtherColor;
BankDTMSubPoints[3].tolerance:=Tolerance;
BankDTMSubPoints[4].x:=107;
BankDTMSubPoints[4].y:=90;
BankDTMSubPoints[4].areasize:=AreaSize;
BankDTMSubPoints[4].areashape:=AreaShape;
BankDTMSubPoints[4].color:=TheOtherColor;
BankDTMSubPoints[4].tolerance:=Tolerance;
BankSplitTDTM.MainPoint := BankCGMainPoint;
BankSplitTDTM.SubPoints := BankDTMSubPoints;
BankSplitDTM := AddDTM(BankSplitTDTM);
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~ DTMS + BMPS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure LoadImages;
begin
MMBankers := BitmapFromString(13, 5, 'z78DA9D90390EC' +
'0300804BFB44E64C96E39F6FF4F32C129A899628A015120267B2F' +
'49D3E9E3FD0C9756B700F8BB52F1707202BDAE414C6F4FBB79BB2' +
'7E3BADEEFF5FA87BAD9EB07B50E59D7');
OreDTM := DTMFromString('78DA6394646060106740011EBA0A0CFF81342' +
'310FF0702464E204392010D302291405A0448A81050A30424E408' +
'A89101125C04D4A8030901026A0408AB010092B906EC');
GemDTM := DTMFromString('78DA63146560601066400102A2AD0CFF81342' +
'310FF07024611204396010D302291405A8A0835DC98766155C34B' +
'408D2090E024A0461E4888E35703008B7806D0');
TokenDTM := DTMFromString('78DA6394646060106540017CF98E0C2780342' +
'310FF07024605208385010D302291405A84083572404289087308' +
'A95107122204D47012560300776806CF');
{~~~~~~~~~~~~~~~~~~~Used for aligning to correct rocks~~~~~~~~~~~~~~~~~~~}
MMIronRocks := BitmapFromString(13, 18, 'z78DAADD3410E' +
'80200C04C02F11B0D8B310FEFF240FD5A4A66959D44B0F4026E96' +
'6E15273EA0CCCD24BDB1215CAC4326BAFAD0E3D19D6B4F34E4384' +
'BF347DBE0F1AB3EDE48D4DCC3AB1A6DF6853CBD7ED41FD9EB1E04' +
'D313D0D77EC76AB1AD2345CC31B823B5F34AF0FB6695792921E90' +
'8F3DB7F96B2DDE4537CDEB86CCD5BFE37523D6264EB8A9F713277' +
'D7634FB131FF9C0DA09574E3BBF');
MMTinRocks := BitmapFromString(12, 12, 'z78DAA5914B0A' +
'C0300844AF64EA27EDB29FDCFF4A2D9885614810BA1964302F3AD' +
'6220FB59AD1536EB6A31869F1BA9A96CF774D10F41262424EF713' +
'1CEF8C9CE954E94990E3DA7B7E73BABF4C75CD893DD6E4A226CAF' +
'BC69867F491197376CE2C49CC61B85150FC6BD83A2ABC8D3A9B27' +
'4F881CCC67B8669A8334AFF39C170615BAEE');
MMCopperRocks := BitmapFromString(20, 12, 'z78DAADD14D0E' +
'84200C05E02B81FD4197E3E8FDAFA449593CD3A96960362FA4907' +
'E409B4A2D671BCB0F7F49B7AA45AAADFD19DBC56C13A2EC5CA878' +
'B7D7DDADE675EB8C2EF667A175217FAB7FB92862FFE81F1E3934C' +
'7C88DFE212FF2CE9B1C2A4A8DFDFDA3FE58C7DDBEAE7CDCFD5D92' +
'10B19868999F239EB13AEEDA3A7251F42FF52EE6430FFABF8B19D' +
'7EBBD9E1633EEFBAB33138C526FF9D77C7B06739C11D1451D1377' +
'51B7CA98687901D15836BD');
MMGoldRocks := BitmapFromString(16, 11, 'z78DAB5934B0E' +
'80200C05AF24E947BAD478FF336984454D29790BD9CC02DA29790' +
'DAA5C8BE94B3ED9E45251DA79C0C2F2547ABADE8C24442CCDEC99' +
'4E019C91907981FF733EEDCD5E9225839891AD453F62F65B43F26' +
'CF5912BF2C43795E5F9AF7F603EB86ED6193DFE76CAF8777AAAB0' +
'019F92996F107CE1A2');
MMBankersDTM := DTMFromString('78DA6394616060906740017FFE30816946289' +
'F518108351284D50000636206A6');
end;
procedure FreeImages;
begin
FreeBitmap(MMBankers);
FreeDTM(OreDTM);
FreeDTM(GemDTM);
FreeDTM(TokenDTM);
FreeBitmap(MMIronRocks);
FreeBitmap(MMCopperRocks);
FreeBitmap(MMTinRocks);
FreeBitmap(MMGoldRocks);
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~PROGRESS REPORT~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure ProgressReport;
begin
ClearDebug;
Writeln('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
Writeln('Banked: ' + IntToStr(TimesBanked) + ' times.');
Writeln('Mined: ' + IntToStr(OresMined) + ' ' + Players[CurrentPlayer].String1 + ' ores.');
Writeln('Obtained: ' + IntToStr(GemsMined) + ' gems.');
Writeln('Has been running for: ' + ScriptTime2(2));
Writeln('Thank you for using NewToAutoings RimmingtonAutoMiner' + Version);
Writeln('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
end;
procedure FinalProgressReport;
begin
ClearDebug;
Writeln('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
Writeln('Banked: ' + IntToStr(TimesBanked) + ' times.')
Writeln('Mined: ' + IntToStr(OresMined) + ' ' + Players[CurrentPlayer].String1 + ' ores.');
Writeln('Obtained: ' + IntToStr(GemsMined) + ' gems.');
Writeln('Ran for: ' + ScriptTime2(2));
Writeln('Thank you for using NewToAutoings RimmingtonAutoMiner' + Version);
Writeln('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ANTIRANDOM~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
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;
if (Result = true) then
DidRandomHappen := true;
end;
procedure AntiRandom;
begin
FindPick;
FindTalk;
FindNormalRandoms;
FindFastRandoms;
FindLamp('mining');
if (FindFight = true) then
begin
RunAwayDirection(RunDirec);
Wait(10000 + random(2000));
RunBack;
end;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ANTIBAN~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure AntiBans;
begin
case Random(6) of
0: PickUpMouseEvery(5+random(5));
1: LeaveScreenEvery(5+random(5));
2: HoverEvery(20+random(10),'mining')
3: RandomRClickEvery(5+random(5));
4: begin
RotateEvery(5+random(5));
MakeCompass('N');
end;
5: begin
case random(3) of
0: TypeSend('So bored..');
1: TypeSend('*yawn*');
2: TypeSend('Mining lvls?');
end;
end;
end;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~SETTING ROCK COLOR~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure SelectRock;
begin
Case Lowercase(Players[CurrentPlayer].String1) of
'copper':
begin
RockColor1 := CopperColor1;
RockColor2 := CopperColor2;
RockColor3 := CopperColor3;
end;
'tin':
begin
RockColor1 := TinColor1;
RockColor2 := TinColor2;
RockColor3 := TinColor3;
end;
'iron':
begin
RockColor1 := IronColor1;
RockColor2 := IronColor2;
RockColor3 := IronColor3;
end;
'gold':
begin
RockColor1 := GoldColor1;
RockColor2 := GoldColor2;
RockColor3 := GoldColor3;
end;
end;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~SETTING WAIT TIME~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure AdjustWaitTime;
begin
Case Lowercase(Players[CurrentPlayer].String1) of
'copper': WaitTime := 2000;
'tin' : WaitTime := 2000;
'iron' : WaitTime := 900;
'gold' : WaitTime := 5000;
end;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~MINING THE ROCK~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure MineRock;
begin
SetRun(True);
repeat
Status('Looking for rock..');
if ((FindObj3(x,y,'ine',RockColor1,10)) or
(FindObj3(x,y,'ine',RockColor2,10)) or
(FindObj3(x,y,'ine',RockColor3,10))) then
begin
Status('Found rock!');
MMouse (x,y,2,2);
FindGas(x,y)
Wait(200+random(100));
Mouse(x,y,2,2,true);
FindGas(x,y)
AntiRandom;
Status('Waiting for ore');
Wait(500+random(500));
AntiRandom;
if not FindBlackChatMessage('no ore') or
not FindBlackChatMessage('currently available') then
begin
ClickToContinue;
if not FindBlackChatMessage('ongratulation') or
not FindBlackChatMessage('just advanced') then
begin
if not FindBlackChatMessage('manage') or
not FindBlackChatMessage('mine some') then
begin
Status('Did not get ore (?)');
repeat
AntiRandom;
Wait(WaitTime+random(500));
Tries := Tries + 1;
ClickToContinue;
Status('Searched for confirmation ' + IntToStr(Tries) + ' time(s).');
until FindBlackChatMessage('manage') or
FindBlackChatMessage('mine some') or
(Tries = 5)
if (Tries = 5) then
begin
Status('Did not find confirmation. Did not get ore.');
Tries := 0;
end else
begin
Status('Got the ore!');
Tries := 0;
end;
end else
begin
Status('Got the ore!');
Tries := 0;
end;
end;
end;
end;
until(InvFull = True);
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ALIGNING~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure AlignToCenter;
begin
FFlag(0);
Searches := 0;
Mouse(x,y,2,2,true);
FFlag(0);
Status('Looking for Mining Symbol');
if FindSymbol(x,y,'mining spot') then
begin
Status('Found Mining Symbol.');
Mouse(x,y,2,2,true);
Status('Clicked Mining Symbol.');
FFlag(0);
end else
begin
Status('Did not find mining symbol. Trying again.');
repeat
Wait(1000+random(500));
Searches := Searches + 1;
until (FindSymbol(x,y,'mining spot')) or (Searches = 5)
if (Searches = 5) then
begin
Status('Did not find mining symbol.');
Writeln('Did not find mining symbol. Account is lost.');
LogOut;
NextPlayer(False);
Exit;
end else
begin
Status('Found mining symbol on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end;
end;
end;
procedure AlignToCopperRocks;
begin
Searches := 0;
MMRockColor := FindRockColor;
CheckRockColor;
SetCopperRockDTM;
Status('Looking for copper rocks on minimap..');
if FindDTMRotated(CopperRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle) then
begin
Mouse(x,y,2,2,true);
Status('Found copper rocks on minimap.');
FFlag(0);
end else
begin
Status('Did not find copper rocks on minimap on first try. Trying again.');
repeat
repeat
Wait(1000+random(500));
Searches := Searches + 1;
Status('Searched for copper rocks ' + IntToStr(Searches) + ' time(s).');
until(IsRockColorCorrect = True)
SetCopperRockDTM;
until (FindDTMRotated(CopperRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle)) or
(Searches >= 5)
if (Searches >= 5) then
begin
Status('Tried five times. Attempting FindDeformed. Expect lag..');
if (FindDeformed(x,y,MMCopperRocks,MMX1,MMY1,MMX2,MMY2)) then
begin
Status('Found copper rocks on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end else
begin
Status('Did not find copper rocks on minimap.');
Writeln('Did not find copper rocks on minimap. Account is lost.');
LogOut;
NextPlayer(False);
end;
end else
begin
Status('Found copper rocks on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end;
end;
FreeDTM(CopperRockDTM);
end;
procedure AlignToTinRocks;
begin
Searches := 0;
MMRockColor := FindRockColor;
CheckRockColor;
SetTinRockDTM;
Status('Looking for tin rocks on minimap..');
if (FindDTMRotated(TinRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle)) then
begin
Mouse(x,y,2,2,true);
Status('Found tin rocks on minimap.');
FFlag(0);
end else
begin
Status('Did not find tin rocks on minimap on first try. Trying again.');
repeat
repeat
Wait(1000+random(500));
Searches := Searches + 1;
Status('Searched for tin rocks ' + IntToStr(Searches) + ' time(s).');
until(IsRockColorCorrect = True)
SetTinRockDTM;
until (FindDTMRotated(TinRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle)) or
(Searches >= 5)
if (Searches >= 5) then
begin
Status('Tried five times. Attempting FindDeformed. Expect lag..');
if (FindDeformed(x,y,MMTinRocks,MMX1,MMY1,MMX2,MMY2)) then
begin
Status('Found tin rocks on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end else
begin
Status('Did not find tin rocks on minimap.');
Writeln('Did not find tin rocks on minimap. Account is lost.');
LogOut;
NextPlayer(False);
end;
end else
begin
Status('Found tin rocks on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end;
end;
FreeDTM(TinRockDTM);
end;
procedure AlignToIronRocks;
begin
Searches := 0;
MMRockColor := FindRockColor;
CheckRockColor;
SetIronRockDTM;
Status('Looking for iron rocks on minimap..');
if (FindDTMRotated(IronRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle)) then
begin
Mouse(x,y,2,2,true);
Status('Found iron rocks on minimap.');
FFlag(0);
end else
begin
Status('Did not find iron rocks on minimap on first try. Trying again.');
repeat
repeat
Wait(1000+random(500));
Searches := Searches + 1;
Status('Searched for iron rocks ' + IntToStr(Searches) + ' time(s).');
until (Searches >= 5) or
(IsRockColorCorrect = True)
SetIronRockDTM;
until (Searches >= 5) or
(FindDTMRotated(IronRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle))
if (Searches >= 5) then
begin
Status('Tried five times. Attempting FindDeformed. Expect lag..');
if (FindDeformed(x,y,MMIronRocks,MMX1,MMY1,MMX2,MMY2)) then
begin
Status('Found iron rocks on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end else
begin
Status('Did not find iron rocks on minimap.');
Writeln('Did not find iron rocks on minimap. Account is lost.');
LogOut;
NextPlayer(False);
end;
end else
begin
Status('Found iron rocks on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end;
end;
FreeDTM(IronRockDTM);
end;
procedure AlignToGoldRocks;
begin
Searches := 0;
MMRockColor := FindRockColor;
CheckRockColor;
SetGoldRockDTM;
Status('Looking for gold rocks on minimap..');
if (FindDTMRotated(GoldRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle)) then
begin
Mouse(x,y,2,2,true);
Status('Found gold rocks on minimap.');
FFlag(0);
end else
begin
Status('Did not find gold rocks on minimap on first try. Trying again.');
repeat
repeat
Wait(1000+random(500));
Searches := Searches + 1;
Status('Searched for gold rocks ' + IntToStr(Searches) + ' time(s).');
until(IsRockColorCorrect = True)
SetGoldRockDTM;
until (FindDTMRotated(GoldRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle)) or
(Searches >= 5)
if (Searches >= 5) then
begin
Status('Tried five times. Attempting FindDeformed. Expect lag..');
if (FindDeformed(x,y,MMGoldRocks,MMX1,MMY1,MMX2,MMY2)) then
begin
Status('Found gold rocks on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end else
begin
Status('Did not find gold rocks on minimap.');
Writeln('Did not find gold rocks on minimap. Account is lost.');
LogOut;
NextPlayer(False);
end;
end else
begin
Status('Found gold rocks on minimap!');
Mouse(x,y,2,2,true);
FFlag(0);
end;
end;
FreeDTM(GoldRockDTM);
end;
procedure AlignToRocks;
begin
case Lowercase(Players[CurrentPlayer].String1) of
'copper': AlignToCopperRocks;
'tin' : AlignToTinRocks;
'iron' : AlignToIronRocks;
'gold' : AlignToGoldRocks;
end;
end;
procedure AlignToRock;
begin
TheColor := FindRoadColor;
if (not(Lowercase(Players[CurrentPlayer].String1) = 'iron')) then
begin
AlignToCenter;
AlignToIronRocks;
end;
end;
procedure Alignment;
begin
TheColor := FindRoadColor;
Searches := 0;
if (not(Lowercase(Players[CurrentPlayer].String1) = 'iron')) then
begin
AlignToCenter;
Searches := 0;
AlignToRocks;
end;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~WALKING TO THE BANK~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure CheckColor;
begin
if(Not(FindMMColor(x,y,TheColor)))then
begin
TheColor := FindRoadColor;
end;
end;
procedure CheckFallyColor;
begin
if(Not(FindMMColor(x,y,TheOtherColor)))then
begin
TheOtherColor:=FindFallyRoadColor;
end;
if (TheOtherColor = 6453628) or
(TheOtherColor = 4939360) then
begin
repeat
TheOtherColor := FindFallyRoadColor;
RoadScrewUps := RoadScrewUps + 1;
Status('FindFallyRoadColor screwed up ' + IntToStr(RoadScrewUps) + ' time(s).');
until (not(TheOtherColor = 6453628)) or
(not(TheOtherColor = 4939360)) or
(RoadScrewUps = 3) or
(RoadScrewUps = 6)
if (RoadScrewUps >= 6) then
begin
Status('FindFallyRoadColor is screwed up.');
Writeln('FindFallyRoadColor is screwed up. Account is lost.');
LogOut;
NextPlayer(False);
RoadScrewUps := 0;
end;
if (RoadScrewUps < 6) and
(not(RoadScrewUps = 3)) then
begin
Status('Corrected FallyRoadColor');
RoadScrewUps := 0;
end;
end;
end;
procedure WaitAndCheck;
begin
FFlag(4);
CheckColor;
end;
procedure WaitAndCheckFally;
begin
FFlag(4);
CheckFallyColor;
end;
procedure SearchForBankers;
begin
BankersFound := False;
if (FindDTMRotated(MMBankersDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle)) then
begin
BankersFound := True;
end;
if (BankersFound = False) then
begin
if (FindDeformed(x,y,MMBankers,MMX1,MMY1,MMX2,MMY2)) then
begin
BankersFound := True;
end;
end;
end;
procedure SearchForBank;
begin
ActivateClient;
BankFound := False;
Status('Attempting to find the booth..');
if (OpenBank3) then
begin
if (BankScreen = True) then
begin
Status('Opened bank.');
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
BankFound := True;
end;
end;
if (BankFound = False) then
begin
Status('Attempting FindBank...');
if (FindBank('feb')) then
begin
BankFound := True;
end;
end;
if (BankFound = False) then
begin
Status('Searching for bank symbol..');
if (FindSymbol(x,y,'bank')) then
begin
Mouse(x,y,2,2,true);
FFlag(0);
Mouse(MMCX+5,MMCY+5,2,2,true);
FFlag(0);
if (OpenBank3) then
begin
if (BankScreen = True) then
begin
Status('Opened bank.');
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
BankFound := True;
end;
end;
end;
end;
end;
function FindTheBank: Boolean;
begin
FFlag(0);
Result := False;
Status('Searching for bank..');
SearchForBank;
if (BankFound = False) then
begin
repeat
Wait(2000+random(500));
BankAttempts1 := BankAttempts1 + 1;
Status('Searched for bank symbol ' + IntToStr(BankAttempts1) + ' time(s).');
SearchForBank;
until (BankFound = True) or
(BankAttempts1 >= 3)
if (BankAttempts1 >= 3) then
begin
Status('Did not find bank symbol, searching for bankers..');
BankAttempts2 := BankAttempts2 + 1;
begin
repeat
Wait(2000+random(2000));
OtherBankAttempts1 := OtherBankAttempts1 + 1;
Status('Searched for bankers ' + IntToStr(OtherBankAttempts1) + ' time(s).');
SearchForBankers;
until(BankersFound = True) or
(OtherBankAttempts1 >= 2)
if (OtherBankAttempts1 >= 2) then
begin
OtherBankAttempts2 := OtherBankAttempts2 + 1;
end else
begin
if (BankersFound = True) then
begin
Mouse(x,y-10,2,2,true)
FFlag(0);
Status('Found bank!');
if (OpenBank3) then
begin
Status('Opened bank.');
Result := True;
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
end else
begin
Status('Did not find booth.');
Writeln('Did not find booth. Player is lost.');
LogOut;
NextPlayer(False);
Result := False;
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
Exit;
end;
end;
end;
if (OtherBankAttempts2 = 2) then
begin
Status('Could not find bank.');
Writeln('Could not find bank. Player is lost.');
LogOut;
NextPlayer(False);
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
Result := False;
Exit;
end;
end;
end else
begin
Status('Found bank and opened.');
Result := True;
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
end;
if (BankAttempts2 = 3) then
begin
Status('Could not find bank.');
Writeln('Could not find bank. Player is lost.');
LogOut;
NextPlayer(False);
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
Result := False;
Exit;
end;
end else
begin
if (BankScreen = True) then
begin
Status('Found bank and opened.');
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
Result := True;
end;
end;
end;
procedure LeavingMineToFirstSplit;
begin
Status('Leaving the mine..');
TheColor := FindRoadColor;
RadialRoadWalk(TheColor,380,270,60,2,2);
WaitAndCheck;
SetRoadSplitDTM;
repeat
RadialRoadWalk(TheColor,330,450,45,2,2);
WaitAndCheck;
SetRoadSplitDTM;
until (FindDTMRotated(RoadSplitDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle))
Mouse(x,y,2,2,true);
WaitAndCheck;
Status('Reached first split!');
FreeDTM(RoadSplitDTM);
end;
procedure WalkingFirstSplitToFally;
begin
Status('Walking to Fally..');
repeat
RadialRoadWalk(TheColor,340,460,60,2,2);
WaitAndCheck;
until (FindFallyRoadColor<>0)
TheOtherColor := FindFallyRoadColor;
repeat
RadialRoadWalk(TheColor,340,460,60,2,2);
WaitAndCheck;
SetFallyGateDTM;
until (FindDTMRotated(FallyGateDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle))
Mouse(x,y,2,2,true);
WaitAndCheckFally;
Status('Reached Fally!');
FreeDTM(FallyGateDTM);
end;
procedure WalkToBankAndOpen;
begin
SetBankSplitDTM;
Status('Walking to bank..');
repeat
RadialRoadWalk(TheOtherColor,320,410,40,2,2);
WaitAndCheckFally;
SetBankSplitDTM;
SplitSearches := SplitSearches + 1;
until(FindDTM(BankSplitDTM,x,y,MMX1,MMY1,MMX2,MMY2)) or
(SplitSearches >= 7)
if (SplitSearches < 7) then
begin
Mouse(x,y,2,2,true);
FFlag(0);
Status('Reached split near bank.');
Wait(1000+random(1000));
Mouse(MMCX+(30+random(5)),MMCY+(30+random(5)),0,0,true);
FFlag(0);
SplitSearches := 0;
end;
repeat
Wait(2000+random(500));
until(FindTheBank = True)
Status('Found and opened bank.');
SplitSearches := 0;
FreeDTM(BankSplitDTM);
end;
procedure WalkToTheBank;
begin
SetRun(False);
AlignToRock;
LeavingMineToFirstSplit;
WalkingFirstSplitToFally;
WalkToBankAndOpen;
end;
procedure WalkToBank;
begin
if (InvFull = True) then
begin
PerfectNorth;
WalkToTheBank;
end;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~BANKING~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure BankOres;
begin
if (FindDTM(OreDTM,x,y,MIX1,MIY1,MIX2,MIY2)) then
repeat
FindDTM(OreDTM,x,y,MIX1,MIY1,MIX2,MIY2)
MMouse(x,y,10,10)
Mouse(x,y,5,5,false);
Wait(100+random(100));
ChooseOptionEx('ll')
Wait(600+random(600));
until(not(FindDTM(OreDTM,x,y,MIX1,MIY1,MIX2,MIY2)))
end;
procedure BankGems;
begin
if (FindDTM(GemDTM,x,y,MIX1,MIY1,MIX2,MIY2)) then
repeat
FindDTM(GemDTM,x,y,MIX1,MIY1,MIX2,MIY2)
MMouse(x,y,10,10)
Mouse(x,y,5,5,false);
Wait(100+random(100));
ChooseOptionEx('ll')
Wait(600+random(600));
until(not(FindDTM(GemDTM,x,y,MIX1,MIY1,MIX2,MIY2)))
end;
procedure BankTokens;
begin
if (FindDTM(TokenDTM,x,y,MIX1,MIY1,MIX2,MIY2)) then
repeat
FindDTM(TokenDTM,x,y,MIX1,MIY1,MIX2,MIY2)
MMouse(x,y,10,10)
Mouse(x,y,5,5,false);
Wait(100+random(100));
ChooseOptionEx('ll')
Wait(600+random(600));
until(not(FindDTM(TokenDTM,x,y,MIX1,MIY1,MIX2,MIY2)))
end;
procedure Count;
begin
OresMined := OresMined + CountItemDTM(OreDTM);
GemsMined := GemsMined + CountItemDTM(GemDTM);
TokensObtained := TokensObtained + CountItemDTM(TokenDTM);
end;
procedure BankStuff;
begin
HighestAngle;
if (BankScreen = True) then
begin
Status('Banking..')
BankOres;
BankGems;
BankTokens;
TimesBanked := TimesBanked + 1;
CloseBank;
ProgressReport;
end else
begin
Status('Error. Did not open bank.');
Writeln('Error. Did not open bank. Player is lost.');
LogOut;
NextPlayer(False);
end;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~WALKING TO THE MINE~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure CheckMMRockColor;
begin
if(Not(FindMMColor(x,y,MMRockColor)))then
begin
MMRockColor := FindRockColor;
CheckRockColor;
end;
end;
procedure LeavingFally;
begin
Status('Leaving the bank..');
TheOtherColor:=FindFallyRoadColor;
RadialRoadWalk(TheOtherColor,240,285,45,2,2);
WaitAndCheckFally;
Status('Leaving Fally...');
repeat
RadialRoadWalk(TheOtherColor,200,150,55,2,2);
WaitAndCheckFally;
until (FindRoadColor<>0)
TheColor := FindRoadColor;
repeat
RadialRoadWalk(TheOtherColor,200,150,55,2,2);
WaitAndCheckFally;
SetFallyGateDTM;
until (FindDTMRotated(FallyGateDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle))
Mouse(x,y,2,2,true);
FFlag(0);
Status('Left Fally');
FreeDTM(FallyGateDTM);
end;
procedure GoingToMine;
begin
TheColor := FindRoadColor;
Status('Walking to the mine..');
repeat
RadialRoadWalk(TheColor,150,270,55,2,2);
WaitAndCheck;
until (FindRockColor<>0)
MMRockColor := FindRockColor;
repeat
RadialRoadWalk(TheColor,150,270,55,2,2);
WaitAndCheck;
CheckMMRockColor;
SetIronRockDTM;
until (FindDTMRotated(IronRockDTM,x,y,MMX1,MMY1,MMX2,MMY2,-Pi/2,Pi/2,0.1,WhichAngle))
Mouse(x,y,2,2,true);
FFlag(0);
FreeDTM(IronRockDTM);
end;
procedure WalkToTheMine;
begin
LeavingFally;
GoingToMine;
end;
procedure WalkToMine;
begin
SetRun(True);
PerfectNorth;
WalkToTheMine;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~PLAYER SETUP~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure SetUpPlayer;
begin
ActivateClient;
Status('Setting up compass..');
HighestAngle;
PerfectNorth;
Status('Setting chat and trade..');
SetChat('hide',1);
SetChat('off',2);
SetChat('off',3);
Status('Setting run mode..');
SetRun(True);
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~SCRIPT SETUP~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure Variables;
begin
BankAttempts1 := 0;
BankAttempts2 := 0;
OtherBankAttempts1 := 0;
OtherBankAttempts2 := 0;
TimesBanked := 0;
OresMined := 0;
GemsMined := 0;
TokensObtained := 0;
end;
procedure SetUpScript;
begin
SetUpSRL;
SetupSRLMining;
DeclarePlayers;
Variables;
LoadImages;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MAIN LOOP~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
begin
SetUpScript;
ActivateClient;
repeat
if (not(LoggedIn)) then
begin
NextPlayer(True);
end;
SelectRock;
AdjustWaitTime;
SetUpPlayer;
FindPickHeadColor;
repeat
if(not(LoggedIn))then
Break;
AntiBans;
if ((Lowercase(Players[CurrentPlayer].Loc)) = 'falador') then
begin
WalkToMine;
Players[CurrentPlayer].loc := 'rimmington';
if (LoggedIn = false) then
begin
NextPlayer(false);
end
end;
Alignment;
MineRock;
Count;
WalkToBank;
if (LoggedIn = false) then
begin
NextPlayer(false);
end
BankStuff;
Players[CurrentPlayer].loc := 'falador';
until(TimesBanked = Players[CurrentPlayer].Integer1);
Logout;
until(AmountOfOres = OresMined);
FreeImages;
FinalProgressReport;
end.
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~CREDITS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{By: NewToAutoing
Thanks to: All the great tutorials that helped me learn how to script,
if i named them all the list would be far too long, and i don't really
remember all of them either. And obviously, to WT-Fawaki for the
FindFastRandoms procedure, as stated at it. Also to Pentti and
Smartzkid for helping me out when i got stuck.}
——————————————————
<!– END TEMPLATE: formanswers –>