bot not doing the things i want
HI EVERYONE Heres a problem with my mining bot
right i got my bot to work but i have a few problems .
(1) my bot just wakls around and thats it he dosnt mine anything
(2) after a while it just says 12 beau 12 isnt logged in.. which is my name ..
this is my script.. if you find any problems with it please dumb it down if possible.. im not at all high tech :p
--------------------------------------------------------------------------
{.Script Info:
# ScriptName = Pentti's Multi City Miner & Banker
# Author = Pentti [pentti701@msn.com]
# Description = This is an autominer for different mining places.
This works as a powerminer too.
Start at the bank if you are banking.
Start at the mining place if you are powermining.
# Version = 0.31 (for SRL version 3.6)
# Date = 22.04.2007
# Comments = Still more mining places to come in version 0.4!
[http://www.villavu.com/forum/showthread.php?t=6907]
/Script Info}
{If you use this script, please give me a comments/progress reports at
http://www.villavu.com/forum/showthread.php?t=6907}
{Oh yea and fuck you if you upload this to somewhere without my permission!!!
And do not post this anywhere without my permission!}
program New;
{.include srl/srl.scar}
{.include srl/srl/skill/Mining.scar}
{.include SRL/SRL/Misc/Trade.scar}
{.include srl/srl/skill/Fighting.scar}
Const
{
--------SETUP--------
------------------------------------
| MINING PLACES | CODE |
|________________________|___________|
| | |
|Lumbridge Swamp West | LW |
|------------------------|-----------|
|Lumbridge Swamp East | LE |
|------------------------|-----------|
|Varrock West | VW1 VW2 | <-VW2 for shorter way (using my wallfinding walk). VW1 for roadwalking. VW1 piece of shit! Haha! :D
|------------------------|-----------|
|Varrock East | VE |
|------------------------|-----------|
|Rimmington | RI1 | <-RI1 from Draynor bank. (From Falador may come later)
|------------------------|-----------|
[You'll need these codes at player setup]
}
MiningWait=4; //Max time in seconds to wait before looking for next ore.
Startplayer=0; //Player to start with.
HowManyLoads=250; //How many loads to do?
YourSRLID=''; //Dont have? Go to http://stats.srl-forums.com/ and register!
yourSRLPass='';//Dont have? Go to http://stats.srl-forums.com/ and register!
ClayColor=3764366; //Change if it doesnt find the ore
CopperColor=4484245; //Change if it doesnt find the ore
TinColor=9013652; //Change if it doesnt find the o
IronColor=2305869; //Change if it doesnt find the ore
SilverColor=10921650; //Change if it doesnt find the ore
CoalColor=21105316; //Change if it doesnt find the ore
GoldColor=1952504; //Change if it doesnt find the orere
MithrilColor=7556941; //Change if it doesnt find the ore
AdamantiteColor=6717286;//Change if it doesnt find the ore
{-Not so essential things:}
ReportsInToFile=True; //Writes progress reports into text file at "Scar 2.03Pentti_Multi_City_Miner_Banker_Reports.txt"
CheckOresCorrect=True; //Let script check if you set ore names correct? (recommended)
CheckPlacesCorrect=True; //Let script check if you set mining places correct? (recommended)
UseTalk=True; //Talks to other people with their names?
Answer=True; //Check and answers if someone talks to you or asks your mining level. (May lag)
UseBenMouse=True; //Use Benmouse?
MouseSpeeds=12; //MouseSpeed?
RunDir='N'; //Run away direction if fight found.
ReduceLag=False; //Doesnt lag runescape so much (affects to antiban and randoms [not so effective]).
UseTimeOut=True; //Uses feature below:
MaxTime=20; {//Max player time in minutes for each load?} var LumbyDetect:Boolean;procedure LumbySet;begin
LumbyDetect:=True; {//Checks if you are in Lumbridge.} end;
Procedure DeclarePlayers;
begin
Players[0].Name :='12 beau 12';
Players[0].Pass :='foletti';
Players[0].Nick :='beau';
Players[0].Active:=True; //Using this player
Players[0].Integer1:=5; //How many loads to do with this player before switching?
Players[0].String1:='Coal'; //Most to mine ore.
Players[0].String2:='Coal'; //Will mine less than first ore
Players[0].String3:='Coal'; //Will mine less than second ore
Players[0].Ore:='LW'; //Code of mining place. (see the list of mining places and codes of them)
Players[0].Boolean1:=False; //True if you want only to powermine.
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Active:=False; //Using this player
Players[1].Integer1:=5; //How many loads to do with this player before switching?
Players[1].String1:='Iron'; //Most to mine ore.
Players[1].String2:='Iron'; //Will mine less than first ore
Players[1].String3:='Iron'; //Will mine less than second ore
Players[1].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[1].Boolean1:=False; //True if you want only to powermine.
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Active:=False; //Using this player
Players[2].Integer1:=5; //How many loads to do with this player before switching?
Players[2].String1:='Iron'; //Most to mine ore.
Players[2].String2:='Iron'; //Will mine less than first ore
Players[2].String3:='Iron'; //Will mine less than second ore
Players[2].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[2].Boolean1:=False; //True if you want only to powermine.
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Active:=False; //Using this player
Players[3].Integer1:=5; //How many loads to do with this player before switching?
Players[3].String1:='Iron'; //Most to mine ore.
Players[3].String2:='Iron'; //Will mine less than first ore
Players[3].String3:='Iron'; //Will mine less than second ore
Players[3].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[3].Boolean1:=False; //True if you want only to powermine.
Players[4].Name :='';
Players[4].Pass :='';
Players[4].Nick :='';
Players[4].Active:=False; //Using this player
Players[4].Integer1:=5; //How many loads to do with this player before switching?
Players[4].String1:='Iron'; //Most to mine ore.
Players[4].String2:='Iron'; //Will mine less than first ore
Players[4].String3:='Iron'; //Will mine less than second ore
Players[4].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[4].Boolean1:=False; //True if you want only to powermine.
Players[5].Name :='';
Players[5].Pass :='';
Players[5].Nick :='';
Players[5].Active:=False; //Using this player
Players[5].Integer1:=5; //How many loads to do with this player before switching?
Players[5].String1:='Iron'; //Most to mine ore.
Players[5].String2:='Iron'; //Will mine less than first ore
Players[5].String3:='Iron'; //Will mine less than second ore
Players[5].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[5].Boolean1:=False; //True if you want only to powermine.
Players[6].Name :='';
Players[6].Pass :='';
Players[6].Nick :='';
Players[6].Active:=False; //Using this player
Players[6].Integer1:=5; //How many loads to do with this player before switching?
Players[6].String1:='Iron'; //Most to mine ore.
Players[6].String2:='Iron'; //Will mine less than first ore
Players[6].String3:='Iron'; //Will mine less than second ore
Players[6].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[6].Boolean1:=False; //True if you want only to powermine.
Players[7].Name :='';
Players[7].Pass :='';
Players[7].Nick :='';
Players[7].Active:=False; //Using this player
Players[7].Integer1:=5; //How many loads to do with this player before switching?
Players[7].String1:='Iron'; //Most to mine ore.
Players[7].String2:='Iron'; //Will mine less than first ore
Players[7].String3:='Iron'; //Will mine less than second ore
Players[7].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[7].Boolean1:=False; //True if you want only to powermine.
Players[8].Name :='';
Players[8].Pass :='';
Players[8].Nick :='';
Players[8].Active:=False; //Using this player
Players[8].Integer1:=5; //How many loads to do with this player before switching?
Players[8].String1:='Iron'; //Most to mine ore.
Players[8].String2:='Iron'; //Will mine less than first ore
Players[8].String3:='Iron'; //Will mine less than second ore
Players[8].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[8].Boolean1:=False; //True if you want only to powermine.
Players[9].Name :='';
Players[9].Pass :='';
Players[9].Nick :='';
Players[9].Active:=False; //Using this player
Players[9].Integer1:=5; //How many loads to do with this player before switching?
Players[9].String1:='Iron'; //Most to mine ore.
Players[9].String2:='Iron'; //Will mine less than first ore
Players[9].String3:='Iron'; //Will mine less than second ore
Players[9].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[9].Boolean1:=False; //True if you want only to powermine.
Players[10].Name :='';
Players[10].Pass :='';
Players[10].Nick :='';
Players[10].Active:=False; //Using this player
Players[10].Integer1:=5; //How many loads to do with this player before switching?
Players[10].String1:='Iron'; //Most to mine ore.
Players[10].String2:='Iron'; //Will mine less than first ore
Players[10].String3:='Iron'; //Will mine less than second ore
Players[10].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[10].Boolean1:=False; //True if you want only to powermine.
Players[11].Name :='';
Players[11].Pass :='';
Players[11].Nick :='';
Players[11].Active:=False; //Using this player
Players[11].Integer1:=5; //How many loads to do with this player before switching?
Players[11].String1:='Iron'; //Most to mine ore.
Players[11].String2:='Iron'; //Will mine less than first ore
Players[11].String3:='Iron'; //Will mine less than second ore
Players[11].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[11].Boolean1:=False; //True if you want only to powermine.
Players[12].Name :='';
Players[12].Pass :='';
Players[12].Nick :='';
Players[12].Active:=False; //Using this player
Players[12].Integer1:=5; //How many loads to do with this player before switching?
Players[12].String1:='Iron'; //Most to mine ore.
Players[12].String2:='Iron'; //Will mine less than first ore
Players[12].String3:='Iron'; //Will mine less than second ore
Players[12].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[12].Boolean1:=False; //True if you want only to powermine.
Players[13].Name :='';
Players[13].Pass :='';
Players[13].Nick :='';
Players[13].Active:=False; //Using this player
Players[13].Integer1:=5; //How many loads to do with this player before switching?
Players[13].String1:='Iron'; //Most to mine ore.
Players[13].String2:='Iron'; //Will mine less than first ore
Players[13].String3:='Iron'; //Will mine less than second ore
Players[13].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[13].Boolean1:=False; //True if you want only to powermine.
Players[14].Name :='';
Players[14].Pass :='';
Players[14].Nick :='';
Players[14].Active:=False; //Using this player
Players[14].Integer1:=5; //How many loads to do with this player before switching?
Players[14].String1:='Iron'; //Most to mine ore.
Players[14].String2:='Iron'; //Will mine less than first ore
Players[14].String3:='Iron'; //Will mine less than second ore
Players[14].Ore:='VE'; //Code of mining place. (see the list of mining places and codes of them)
Players[14].Boolean1:=False; //True if you want only to powermine.
end;
{--------END-OF-SETUP--------}
var //Mining
CurrentRockColor,OreColorOne,OreColorTwo,OreColorT hree:Integer;
MiningMark:Integer;
Loads:Integer;
var //Colors
RealWallColor:Integer;
DaRoadColor:Integer;
var //FailSafes
BanksFailed:Integer;
PlayerTimeOutMark:Integer;
PlayerStartTime2:Integer;
LumbyCheck:Boolean;
RockNotFound:Integer;
TotalRocksMissed:Integer;
var //Others
CUAM:Integer;
MLvl:Integer;
LowLag:Integer;
TalkMark:Integer;
ItemMark:Integer;
ToTextFile:String;
var //Ore arrays
AvaiableOres:array[0..8]of String;
var //Place arrays
AvaiablePlaces:Array[0..6]of String;
{----------------------------------------------------------------------------}
Function FileReport:String;
var
i:Integer;
Co:Integer;
Mind,Bankd:String;
Active:String;
a,b:String;
Thing:String;
MinLvlTxt:String;
AddText:String;
begin
if(ScriptTime(2)<10)
then
A:='0'+inttostr(ScriptTime(2))
if(ScriptTime(2)>9)
then
A:=inttostr(ScriptTime(2))
if(ScriptTime(3)<10)
then
B:='0'+inttostr(ScriptTime(3))
if(ScriptTime(3)>9)
then
B:=inttostr(ScriptTime(3))
for i:=0 to HowManyPlayers-1 do
begin
if(Players[i].Active)then
Active:='in use, '
else
Active:='not in use, ';
if(Players[i].Loc<>'')then
Active:=Players[i].Loc
Mind:='Mined '+inttostr(Players[i].Integer3)+' ores, ';
Bankd:=inttostr(Players[i].Banked)+' Banks, ';
if(Players[i].Integer3=0)then
Mind:='';
if(Players[i].Banked=0)then
Bankd:=' ';
MLvl:=Players[i].Integer4;
MinLvlTxt:='M-lvl: '+inttostr(MLvl);
if(MLvl=0)then
MinLvlTxt:='';
for Co:=0 to 58-(2+Length(inttostr(i))+Length(Players[I].Name)+4+Length(Active)+Length(Mind)+Length(Bankd) +Length(MinLvlTxt)) do
begin
Thing:=Thing+' ';
end;
Thing:=''
AddText:=AddText+(Inttostr(I)+': '+Players[I].Name+' is '+Active+Mind+Bankd+MinLvlTxt+Thing+'| '+CHR(13))
end;
Result:='[Worked: '+inttostr(ScriptTime(1))+':'+A+':'+B+'] '+AddText+' '+CHR(13);
end;
Procedure GoingOn(What:string);
var
File:Integer;
begin
Writeln(What+' ('+TheTime+')')
status(What+' ('+TheTime+')')
if(not(ReportsInToFile))then
Exit;
File:=ReWriteFile(apppath+'Pentti_Multi_City_Miner _Banker_Reports.txt',False)
ToTextFile:=ToTextFile+' '+What+' ('+TheTime+')'+' '+CHR(13);
if(WritefileString(File,FileReport+ToTextFile))the n
CloseFile(File)
end;
{----------------------------------------------------------------------------}
procedure TheOres;
begin
AvaiableOres[0]:='Clay';
AvaiableOres[1]:='Copper';
AvaiableOres[2]:='Tin';
AvaiableOres[3]:='Iron';
AvaiableOres[4]:='Silver';
AvaiableOres[5]:='Coal';
AvaiableOres[6]:='Gold';
AvaiableOres[7]:='Mithril';
AvaiableOres[8]:='Adamantite';
end;
procedure OresCorrect;
var
i:Integer;
c:Integer;
Correct:Boolean;
begin
if(CheckOresCorrect)then
begin
TheOres;
for i:=0 to HowManyPlayers-1 do
begin
if(Players[i].Active)then
begin
Players[i].String1:=Capitalize(Players[i].String1)
Players[i].String2:=Capitalize(Players[i].String2)
Players[i].String3:=Capitalize(Players[i].String3)
Correct:=False;
for c:=0 to 8 do
begin
if(Players[i].String1=AvaiableOres[c])then
Correct:=True;
end;
if(Correct=False)then
begin
Writeln('Please set right ore name #1 for player '+Players[i].Name)
TerminateScript;
end;
Correct:=False;
for c:=0 to 8 do
begin
if(Players[i].String2=AvaiableOres[c])then
Correct:=True;
end;
if(Correct=False)then
begin
Writeln('Please set right ore name #2 for player '+Players[i].Name)
TerminateScript;
end;
Correct:=False;
for c:=0 to 8 do
begin
if(Players[i].String3=AvaiableOres[c])then
Correct:=True;
end;
if(Correct=False)then
begin
Writeln('Please set right ore name #3 for player '+Players[i].Name)
TerminateScript;
end;
end;
end;
end;
end;
procedure ThePlaces;
begin
AvaiablePlaces[0]:='LW';
AvaiablePlaces[1]:='LE';
AvaiablePlaces[2]:='VE';
AvaiablePlaces[3]:='VW1';
AvaiablePlaces[4]:='VW2';
AvaiablePlaces[5]:='RI1';
AvaiablePlaces[6]:='RI2';
end;
procedure PlacesCorrect;
var
i:Integer;
c:Integer;
Correct:Boolean;
begin
ThePlaces;
if(CheckPlacesCorrect)then
begin
for i:=0 to HowManyPlayers-1 do
begin
if(Players[i].Active)and
not(Players[i].Boolean1)then
begin
Players[i].Ore:=Capitalize(Players[i].Ore)
Correct:=False;
for c:=0 to 6 do
begin
if(UpperCase(Players[i].Ore)=AvaiablePlaces[c])then
Correct:=True;
end;
if(Players[i].Boolean1)then
Correct:=True;
if(Correct=False)then
begin
Writeln('Please set right mining place for player '+Players[i].Name)
TerminateScript;
end;
end;
end;
end;
end;
procedure Brightness;
begin
wait(800)
GameTab(11)
wait(400)
if(getColor(713,230)<>10436881)then
begin
Mouse(710,228,6,6,True)
wait(1000)
end;
end;
procedure FuckYouYouFuckingAutoretailiate;
begin
GameTab(1)
wait(500)
if(FindcolorTolerance(x,y,1908610,617,374,633,388, 8))then
Mouse(x,y,15,5,True)
end;
procedure SayLevel(Skill:string);
var LVLBmp,Lvl:integer;
tmpx, tmpy: Integer;
begin
if(Answer)then
begin
if (FindColor(tmpx, tmpy, 65535,90,60,430,280)) then
begin
LvlBmp:=createbitmapmaskfromtext(skill,upchars)
wait(20+LowLag*100)
If(FindBitmapMaskTolerance(LvlBmp, x, y,90,60,430,280,0, 40))then
begin
Lvl:=GetSkillLevel(Skill)
TypeSend('My '+Skill+' Level is '+inttostr(Lvl)+'. yours?')
end;
FreeBitMap(LvlBmp)
end;
end;
end;
{----------------------------------------------------------------------------}
procedure GI(item: String);
begin
if(TimeFromMark(ItemMark)/1000/60<=2)then
Exit;
MarkTime(ItemMark)
if(UseTalk)then
begin
if(invCount<=8)then
exit;
case (random(10)) of
0: TypeSend('now I have '+inttostr(InvCount)+ ' ' +item);
1: TypeSend('Yeah now '+inttostr(InvCount)+' '+item);
2: TypeSend('Woo! I have '+inttostr(InvCount)+' '+item);
3: TypeSend('I got '+inttostr(InvCount)+' '+item+' '+' now');
4: TypeSend('Must get '+inttostr(28-InvCount)+' more '+Item);
5: TypeSend(inttostr(28-InvCount)+' '+item+' to go.');
6: TypeSend('Still must get '+inttostr(28-InvCount)+' more '+item);
7: TypeSend('Damn, I have '+inttostr(InvCount)+' '+item);
8: TypeSend('Lol I almost got '+inttostr(28-InvCount-random(5))+' '+item);
9: TypeSend('I realy need to get '+inttostr(28-InvCount)+' more '+item);
end;
end;
end;
{----------------------------------------------------------------------------}
procedure Reportplaces;
begin
if(Players[Currentplayer].Boolean1)then
begin
ReportVars[6]:=1;
SrlRandomsReport;
Exit;
end;
case Players[CurrentPlayer].Ore of
'LW': ReportVars[2]:=1
'LE': ReportVars[3]:=1
'VW1':ReportVars[4]:=1
'VW2':ReportVars[4]:=1
'VE': ReportVars[5]:=1
'RI1':ReportVars[7]:=1
'RI2':ReportVars[7]:=1
end;
SRLRandomsReport;
end;
{----------------------------------------------------------------------------}
procedure PlayersReport;
var
i:Integer;
Co:Integer;
Mind,Bankd:String;
Active:String;
a,b:String;
Thing:String;
MinLvlTxt:String;
begin
if(ScriptTime(2)<10)
then
A:='0'+inttostr(ScriptTime(2))
if(ScriptTime(2)>9)
then
A:=inttostr(ScriptTime(2))
if(ScriptTime(3)<10)
then
B:='0'+inttostr(ScriptTime(3))
if(ScriptTime(3)>9)
then
B:=inttostr(ScriptTime(3))
Writeln('------------------------------------------------------------')
Writeln('| Multi City Miner & Banker By: Pentti |')
Writeln('-----------------------------------------------------------|')
for i:=0 to HowManyPlayers-1 do
begin
if(Players[i].Active)then
Active:='in use, '
else
Active:='not in use, ';
if(Players[i].Loc<>'')then
Active:=Players[i].Loc
Mind:='Mined '+inttostr(Players[i].Integer3)+' ores, ';
Bankd:=inttostr(Players[i].Banked)+' Banks, ';
if(Players[i].Integer3=0)then
Mind:='';
if(Players[i].Banked=0)then
Bankd:=' ';
MLvl:=Players[i].Integer4;
MinLvlTxt:='M-lvl: '+inttostr(MLvl);
if(MLvl=0)then
MinLvlTxt:='';
for Co:=0 to 58-(2+Length(inttostr(i))+Length(Players[I].Name)+4+Length(Active)+Length(Mind)+Length(Bankd) +Length(MinLvlTxt)) do
begin
Thing:=Thing+' ';
end;
writeln(Inttostr(I)+': '+Players[I].Name+' is '+Active+Mind+Bankd+MinLvlTxt+Thing+'|')
Thing:=''
end;
Writeln('------------------------------------------------------------')
writeln(' [Worked: '+inttostr(ScriptTime(1))+':'+A+':'+B+']')
end;
{----------------------------------------------------------------------------}
Function WhereMining:String;
begin
case Players[CurrentPlayer].Ore of
'LW': Result:='West Lumbridge';
'LE': Result:='East Lumbridge';
'VW1': Result:='West Varrock';
'VW2': Result:='West Varrock';
'VE': Result:='East Varrock';
'RI1':Result:='Rimmington';
'RI2': Result:='Rimmington';
end;
if(Players[Currentplayer].Boolean1)then
Result:='Powermining';
end;
{----------------------------------------------------------------------------}
procedure LoadneededGameTabs;
begin
GameTab(2)
wait(750+random(250))
GameTab(5)
wait(750+random(250))
GameTab(10)
wait(750+random(250))
GameTab(11)
wait(750+random(250))
end;
{----------------------------------------------------------------------------}
procedure TalkingToMeTXT;
begin
Case Random(10)+1 of
1: TypeSend('Right...'+chr(13))
2: TypeSend('What?'+chr(13))
3: TypeSend('Sorry, i dont understand.'+chr(13))
4: TypeSend('What do yuo want?'+chr(13))
5: TypeSend('I have no time'+chr(13))
6: TypeSend('I dont like you'+chr(13))
7: TypeSend('You are getting my nervous'+chr(13))
8: TypeSend('is it possible to be quit for 2 minutes?'+chr(13))
9: TypeSend('yes? I am.'+chr(13))
10: TypeSend('No, you again.'+chr(13))
End;
wait(5)
end;
{----------------------------------------------------------------------------}
procedure TalkingToMe;
begin
if(Answer)then
begin
if(FindTalk)then
Exit;
wait(5+LowLag*100+random(6))
if(not(Findcolor(x,y,65535,MCX1,MCY1,MCX2,MCY2)))t hen
Exit;
If(FindBitmapMaskTolerance(NickNameBmp, x, y, 100, 59, 500, 300, 0, 40)) then
begin
TalkingToMeTxt;
CUAM:=CUAM+1
GoingOn('Your Name has been spotted on the screen '+
'and you answered.')
if(CUAM>=3)then
begin
ClickToContinue;
GoingOn('Someone was talking too much to you, logging out and coming back soon.')
TypeSend('Nice to talk, but now gtg. See you! :)')
LogOut;
Wait(25000+random(20000))
LogInPlayer;
CUAM:=0
wait(500+random(300))
end;
end;
wait(2)
end;
end;
{----------------------------------------------------------------------------}
procedure GetPickColors;
begin
FindpickHeadColor;
if(hc1=0)or(hc2=0)or(hc3=0)or(hc4=0)then
begin
GoingOn('You need a pickaxe to run with this script.')
GoingOn('If you have a pick, please restart the script')
LogOut;
TerminateScript;
end;
end;
{----------------------------------------------------------------------------}
procedure SolveFight;
begin
if(InFight)then
begin
if(GetHp<GetSkillLevel('hitpoints'))then
begin
MakeCompass('N')
RunTo(RunDir,True)
Fights:=Fights+1
LogInPlayer;
SetRun(True)
end;
end;
end;
{----------------------------------------------------------------------------}
procedure HowAreYouTodayMrX;
var FindAcc:Boolean;
AccName:String;
begin
if(TimeFromMark(TalkMark)/1000/60<=2)then
Exit;
MarkTime(TalkMark)
if(UseTalk)then
begin
FindAcc:=False
if(FindObj(x,y,'evel',2510975,11)) then
FindAcc:=True
else
if(FindObj(x,y,'evel',8474379,11)) then
FindAcc:=True
else
if(FindObj(x,y,'evel',4077094,11)) then
FindAcc:=True
else
if(FindObj(x,y,'evel',4544837,11)) then
FindAcc:=True
else
if(FindObj(x,y,'evel',1085071,11)) then
FindAcc:=True
else
if(FindObj(x,y,'evel',8747097,11)) then
FindAcc:=True;
if(FindAcc=True) then
GoingOn('Found random account to talk with:')
else
exit;
begin
ClickToContinue;
AccName:=GetTextAtEx(77, 7, 100, UpChars, True, True, 0, 2, 14606047, 12, False, tr_AllChars)
if(not(AccName=''))and(not(AccName=' '))then
GoingOn('Account name is: '+AccName)
if(AccName='')then
Exit;
else
Case Random(35) of
0: TypeSend('How are you '+AccName)
1: TypeSend('Whats up '+AccName)
2: TypeSend('You must be rich '+AccName)
3: TypeSend(AccName+' Nice level')
4: TypeSend('You are cool '+AccName)
5: TypeSend('How are you doing '+AccName)
6: TypeSend('Hello '+AccName)
7: TypeSend('Hi '+AccName+' '+':)')
8: TypeSend('How old are you '+AccName)
9: TypeSend('Where are you from '+AccName)
10:TypeSend(AccName+' whats your mining lvl, my is '+inttostr(GetSkillLevel('Mining')))
11:TypeSend('Nice pick '+AccName)
12:TypeSend('Do you like your pick '+AccName)
13:TypeSend(AccName+' how many '+Players[Currentplayer].String1+' ores you have?')
14:TypeSend(AccName+' how many '+Players[Currentplayer].String2+' ores you have?')
15:TypeSend(AccName+' how many '+Players[Currentplayer].String3+' ores you have?')
16:typeSend(Accname+' Do you mine usually in '+WhereMining)
17:typeSend(AccName+' You like to mine in '+Wheremining)
18:typesend('I like to mine in '+WhereMining+', do you '+AccName+'?')
19:TypeSend(AccName+' whats that pick?')
20:TypeSend(AccName+' Can you mine some '+Players[Currentplayer].String1+' ores for me?')
21:typeSend(AccName+' Can you mine some '+Players[Currentplayer].String2+' ores for me?')
22:typeSend(AccName+' Can you mine some '+Players[Currentplayer].String3+' ores for me?')
23:typesend(AccName+' Do you mine '+Players[Currentplayer].String1+' ores too?')
24:TypeSend(AccName+' Do you mine '+Players[Currentplayer].String2+' ores too?')
25:TypeSend(AccName+' Do you mine '+Players[Currentplayer].String1+' ores too?')
26:typesend('I really need to smelt these '+Players[Currentplayer].String1+' ores soon.')
27:TypeSend('I really need to smelt these '+Players[Currentplayer].String2+' ores soon.')
28:TypeSend('I really need to smelt these '+Players[Currentplayer].String1+' ores soon.')
26:typesend('I almost have '+inttostr(InvCount)+' '+Players[Currentplayer].String1+' ores, how many you got '+AccName+'.')
27:TypeSend('I almost have '+inttostr(InvCount)+' '+Players[Currentplayer].String2+' ores, how many you got '+AccName+'.')
28:TypeSend('I almost have '+inttostr(InvCount)+' '+Players[Currentplayer].String3+' ores, how many you got '+AccName+'.')
29:TypeSend('Its nice day '+AccName+', isnt it?')
30:TypeSend(Accname+', How much '+Players[Currentplayer].String1+' ores give xp?')
31:TypeSend(Accname+', How much '+Players[Currentplayer].String2+' ores give xp?')
32:TypeSend(Accname+', How much '+Players[Currentplayer].String3+' ores give xp?')
33:TypeSend(AccName+', can you borrow me that pickaxe?')
34:TypeSend('Let me buy your pickaxe '+AccName)
end;
end;
end;
end;
{----------------------------------------------------------------------------}
Function GetWallColor(Var x, y, WallColor:Integer):Boolean;
var
TheTol:Integer;
begin
TheTol:=5
repeat
wait(10)
TheTol:=TheTol+1
if(TheTol>=70)then
begin
Result:=False;
Exit;
end;
until(FindColorTolerance(x,y,WallColor,MMX1,MMY1,M MX2,MMY2,TheTol))
WallColor:=GetColor(x,y)
if(WallColor<>0)then
Result:=True;
if(Result)then
GoingOn('Wall color= '+inttostr(WallColor))
else
GoingOn('Couldnt get wall color. But we will still carry on!')
end;
{----------------------------------------------------------------------------}
Function FindWall(var xx,yy:Integer; xs,ys,xe,ye:Integer):Boolean;
begin
RealWallColor:=15463657;
if(GetWallColor(x,y,RealWallColor))then
begin
if(FindColor(x,y,RealWallColor,MMCX+(xs),MMCY+(ys) ,MMCX+(xe),MMCY+(ye)))then
begin
MMouse(x,y,0,0)
getmousepos(xx,yy)
Result:=True;
end;
end;
end;
procedure ScreenLoading;
var
LoadingSafeMark:Integer;
begin
if(FindColor(x,y,0,180,115,320,180))and
FindColorTolerance(x,y,16777215,180,115,320,180,3) then
begin
MarkTime(LoadingSafeMark)
GoingOn('Screen loading')
repeat
wait(300)
until(not(FindColor(x,y,0,180,115,320,180)))and
not(FindColorTolerance(x,y,16777215,180,115,320,18 0,3))
or(TimeFromMark(LoadingSafeMark)>=10000)
GoingOn('Screen loaded ['+inttostr(TimeFromMark(LoadingSafeMark))+'ms]')
end;
end;
{----------------------------------------------------------------------------}
{-----------------WALK TO MINE PROCEDURES------------------------------------}
{----------------------------------------------------------------------------}
procedure WalkToLW; {START OF LUMBRIDGE WEST}
var
i:Integer;
begin
//ROAD WALK
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaroadColor,120,100,60,0,-1)))then
begin
Mouse(680,110,4,4,true)
wait(200)
Flag;
end;
wait(20)
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,120,180,66,0,-1)))then
begin
Mouse(MMCX+10,MMCY+65,4,4,true)
wait(200)
Flag;
end;
wait(20)
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,120,200,67,0,-1)))then
begin
Mouse(MMCX+10,MMCY+45,4,4,true)
wait(200)
Flag;
end;
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,120,220,50,0,-1)))then
begin
Mouse(MMCX+10,MMCY+50,4,4,true)
wait(200)
Flag;
end;
Flag;
Wait(500)
ScreenLoading;
//WATER WALK
DaRoadColor:=FindWaterColor
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindWaterColor
if(not(RadialRoadWalk(DaRoadColor,100,150,60,0,-1)))then
begin
Mouse(690,120,4,4,True)
Flag;
end;
for i:=0 to 4 do
begin
ScreenLoading;
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindWaterColor
if(not(RadialRoadWalk(DaRoadColor,130,200,63,0,-1)))then
begin
Mouse(MMCX-2,MMCY+63,4,3,True)
Flag;
end;
end;
wait(1000)
//WALK TO MINING SPOT
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x-8,y,3,3,True)
wait(200)
Flag;
wait(100)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX+11,MMCY+40+random(16),4,4,True)
wait(300)
Flag;
wait(500)
end;
wait(10)
GoingOn('We are at West lumbridge mining spot')
end;
{END OF LUMBRIDGE WEST}
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
procedure WalkToLE; {START OF LUMBRIDGE EAST}
var
i:Integer;
begin
GoingOn('Going to East Lumbridge mining spot')
DaRoadColor:=FindWatercolor;
for i:=0 to 6 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindWatercolor;
if(not(RadialRoadWalk(DaRoadColor,60,160,63,-1,0)))then
begin
Mouse(MMCX+60,MMCY+3,3,3,True)
Flag;
end;
end;
ScreenLoading;
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x,y+8,3,3,True)
wait(200)
Flag;
wait(100)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX+30,MMCY+5,4,4,True)
wait(200)
Flag;
wait(200)
end;
end;
{END OF LUMBRIDGE EAST}
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
procedure WalkToVW1;
var
i:Integer;
begin
//if(not(RadialRoadWalk(FindRoadColor,110,165,60,-1,0)))then
if(FindSymbol(x,y,'Anvil'))then
begin
Mouse(x+25,y-10,8,8,True)
wait(200)
Flag;
Wait(500)
end
else
begin
Mouse(MMCX+60,MMCY+25,4,4,true)
wait(200)
Flag;
end;
wait(10)
if(not(RadialRoadWalk(FindRoadColor,110,60,47,0,0) ))then
begin
Mouse(MMCX+40,MMCY+15,4,4,true)
wait(200)
Flag;
end;
wait(10)
if(not(RadialRoadWalk(FindRoadColor,180,140,55,0,0 )))then
begin
Mouse(MMCX+30,MMCY+30,4,4,true)
wait(200)
Flag;
end;
wait(10)
for i:=0 to 4 do
begin
ScreenLoading;
if(not(RadialRoadWalk(FindRoadColor,160,200,45,0,0 )))then
begin
Mouse(MMCX,MMCY+45,4,4,true)
wait(200)
Flag;
end;
wait(500)
end;
Mouse(MMCX-30,MMCY+10,6,8,True)
wait(200)
Flag;
wait(500)
Mouse(MMCX-30,MMCY-15,4,4,true)
wait(200)
Flag;
Mouse(MMCX-35,MMCY,4,4,true)
wait(200)
Flag;
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x,y,3,3,True)
wait(200)
Flag;
wait(100)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX-50,MMCY-15,4,4,True)
wait(200)
Flag;
wait(200)
end
end;
{----------------------------------------------------------------------------}
procedure WalkToVW2;
var
i:Integer;
begin
if(not(RadialRoadWalk(FindRoadColor,240,265,50,1,0 )))then
begin
Mouse(MMCX-50,MMCY+35,4,4,true)
wait(200)
Flag;
end;
wait(10)
for i:= 0 to 1 do
begin
if(FindWall(x,y,5,40,35,60))then
begin
Mouse(x-20,y+15,5,5,True)
wait(200)
Flag;
end
else
begin
Mouse(MMCX-5,MMCY+55,5,5,True)
wait(200)
Flag;
Wait(500)
end;
end;
if(FindWall(x,y,25,40,65,65))then
begin
Mouse(x-20,y,5,5,True)
wait(200)
Flag;
end
else
begin
Mouse(MMCX+20,MMCY+55,5,5,True)
wait(200)
Flag;
Wait(500)
end;
if(FindWall(x,y,5,40,30,55))then
begin
Mouse(x-20,y+10,5,5,True)
wait(200)
Flag;
end
else
begin
Mouse(MMCX+10,MMCY+55,5,5,True)
wait(200)
Flag;
Wait(500)
end;
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x,y,3,3,True)
wait(200)
Flag;
wait(300)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX,MMCY+35,4,4,True)
wait(200)
Flag;
wait(300)
end
end;
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
procedure WalkToVE;
var
I:Integer;
begin
DaRoadColor:=FindRoadColor;
for i:= 0 to 1 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaroadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,95,20,60,-1,0)))then
begin
Mouse(MMCX+50,MMCY-10,4,4,true)
wait(200)
Flag;
end;
end;
wait(100)
if(not(FindMMColor(x,y,DaroadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,140,85,60,0,-1)))then
begin
Mouse(MMCX+15,MMCY+50,4,4,true)
wait(400)
Flag;
end;
wait(400)
Flag;
for i:= 0 to 3 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaroadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,160,200,60,0,-1)))then
begin
Mouse(MMCX+2,MMCY+55,4,4,true)
wait(200)
Flag;
end;
wait(50+random(100))
end;
wait(800)
Flag;
if(not(FindMMColor(x,y,DaroadColor)))then
DaRoadColor:=FindRoadColor;
ScreenLoading;
if(not(RadialRoadWalk(DaRoadcolor,230,150,35,0,-1)))then
begin
Mouse(MMCX-15,MMCY+20,4,4,true)
wait(200)
Flag;
end;
wait(600)
Flag;
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x,y,3,3,True)
wait(200)
Flag;
wait(100)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX-35,MMCY+30,4,4,True)
wait(200)
Flag;
wait(200)
end;
end;
{----------------------------------------------------------------------------}
{-----------------WALK TO BANK PROCEDURES------------------------------------}
{----------------------------------------------------------------------------}
procedure LWToBank; {START OF LUMBRIDGE WEST}
var
i:Integer;
begin
//WATER WALK
if(Players[CurrentPlayer].Ore='LW')then
begin
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x+13,y-10,3,3,True)
wait(200)
Flag;
wait(100)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX+13,MMCY+10,4,4,True)
wait(200)
Flag;
wait(200)
end;
end;
DaRoadColor:=FindWaterColor
for i:=0 to 3 do
begin
ScreenLoading;
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindWaterColor
if(not(RadialRoadWalk(DaRoadColor,45,-65,56,0,1)))then
begin
Mouse(MMCX-10,MMCY-56,4,4,True)
Flag;
end;
end;
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindWaterColor
if(not(RadialRoadWalk(DaRoadColor,330,275,55,0,1)) )then
begin
Mouse(MMCX-55,MMCY-35,4,4,True)
Flag;
end;
wait(10)
//ROAD WALK
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,-65,60,55,0,1)))then
begin
Mouse(617,28,4,4,true)
Flag;
end;
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor
if(not(RadialRoadWalk(DaRoadColor,-55,50,55,0,1)))then
begin
Mouse(610,50,4,4,true)
Flag;
end;
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor
if(not(RadialRoadWalk(DaRoadColor,-55,50,40,0,1)))then
begin
Mouse(630,45,4,4,true)
Flag;
end;
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor
if(not(RadialRoadWalk(DaRoadColor,210,350,45,0,1)) )then
begin
Mouse(MMCX-40,MMCY-45,4,4,true)
Flag;
end;
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor
if(not(RadialRoadWalk(DaRoadColor,270,350,45,0,1)) )then
begin
Mouse(MMCX-40,MMCY-45,4,4,true)
Flag;
end;
end;
{END OF LUMBRIDGE WEST}
{----------------------------------------------------------------------------}
procedure WalkToRI1; {START OF RIMMINGTON 1 (Draynor)}
var
i:Integer;
begin
if(not(RadialRoadWalk(FindRoadColor,310,235,55,1,0 )))then
begin
Mouse(MMCX-55,MMCY-15,3,3,True)
Flag;
end;
if(FindWall(x,y,-55,-45,-35,-25))then
begin
Mouse(x+15,y-10,5,5,True)
wait(200)
Flag;
Wait(500+random(400))
end
else
begin
Mouse(MMCX-30,MMCY-40,5,5,True)
wait(200)
Flag;
Wait(500)
end;
if(FindWall(x,y,-18,-35,-2,-15))then
begin
Mouse(x+10,y-8,5,5,True)
wait(200)
Flag;
Wait(500+random(400))
end
else
begin
Mouse(MMCX+5,MMCY-35,5,5,True)
wait(200)
Flag;
Wait(500)
end;
if(not(RadialRoadWalk(FindRoadColor,-70,15,55,0,1)))then
begin
Mouse(MMCX-25,MMCY-30,3,3,True)
Flag;
end;
wait(10)
if(FindSymbol(x,y,'rare trees'))then
begin
GoingOn('Found Yew symbol')
Mouse(x,y-12,4,4,True)
wait(200)
Flag;
wait(500)
end
else
begin
GoingOn('Didnt Find Yew symbol')
Mouse(MMCX-30,MMCY,5,5,True)
wait(200)
Flag;
wait(500)
end;
DaRoadColor:=FindRoadColor;
for i:=0 to 5 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,260,285,45,1,0)) )then
begin
Mouse(MMCX-45,MMCY-5,3,3,True)
Flag;
end;
wait(10)
end;
for i:=0 to 2 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,180,260,40,1,0)) )then
begin
Mouse(MMCX-50,MMCY+25,3,3,True)
Flag;
end;
wait(10)
end;
Mouse(MMCX+5,MMCY+30,5,5,True)
wait(200)
Flag;
wait(500)
ScreenLoading;
Mouse(MMCX+5,MMCY+25,5,5,True)
wait(200)
Flag;
wait(500)
ScreenLoading;
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x,y,3,3,True)
wait(200)
Flag;
wait(300)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX,MMCY+30+random(10),4,4,True)
wait(200)
Flag;
wait(200)
end;
end;
{END OF RIMMINGTON 1}
{----------------------------------------------------------------------------}
procedure WalkToRI2; {START OF RIMMINGTON 2 (Falador)}
begin
end;
{END OF RIMMINGTON 2}
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
procedure LEToBank; {START OF LUMBRIDGE EAST}
var
i:Integer;
begin
Mouse(MMCX-30,MMCY-30,3,3,True)
Wait(100)
Flag;
Mouse(MMCX-35,MMCY+40,3,3,True)
Wait(100)
Flag;
DaRoadColor:=FindWatercolor;
for i:=0 to 3 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindWatercolor;
if(not(RadialRoadWalk(DaRoadColor,320,210,65,1,0)) )then
begin
Mouse(MMCX-66,MMCY+8,3,10,True)
Flag;
end;
wait(10)
end;
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x+10,y-5,3,3,True)
wait(200)
Flag;
wait(100)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX-30,MMCY-15+random(16),4,4,True)
wait(200)
Flag;
wait(200)
end;
GoingOn('We are at West Lumbridge mining spot')
end;
{END OF LUMBRIDGE EAST}
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
procedure VW1ToBank; {START OF VARROCK WEST 1}
var
i:Integer;
begin
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x+15,y,3,3,True)
wait(200)
Flag;
wait(300)
end
Mouse(MMCX+40,MMCY-10,8,8,True)
Wait(200)
Flag;
if(not(RadialRoadWalk(FindRoadColor,100,160,35,0,0 )))then
begin
Mouse(MMCX+30,MMCY+15,4,4,true)
wait(200)
Flag;
end;
wait(10)
Mouse(MMCX+47,MMCY,8,8,True)
Wait(200)
Flag
if(not(RadialRoadWalk(FindRoadColor,35,90,60,0,0)) )then
begin
Mouse(MMCX+60,MMCY-15,4,4,true)
wait(200)
Flag;
end;
wait(10)
if(not(RadialRoadWalk(FindRoadColor,-25,15,30,0,0)))then
begin
Mouse(MMCX-10,MMCY-15,4,4,true)
wait(200)
Flag;
end;
wait(10)
for i:=0 to 3 do
begin
ScreenLoading;
if(not(RadialRoadWalk(FindRoadColor,-20,20,48,0,0)))then
begin
Mouse(MMCX-45,MMCY,4,4,true)
wait(200)
Flag;
end;
wait(10)
end;
if(not(RadialRoadWalk(FindRoadColor,290,330,40,0,0 )))then
begin
Mouse(MMCX-35,MMCY-30,4,4,true)
wait(200)
Flag;
end;
wait(10)
if(not(RadialRoadWalk(FindRoadColor,250,290,55,1,0 )))then
begin
Mouse(MMCX-55,MMCY-7,4,4,true)
wait(200)
Flag;
end;
wait(10)
end;
{END OF VARROCK WEST 1}
{----------------------------------------------------------------------------}
procedure VW2ToBank; {START OF VARROCK WEST 2}
var
i:Integer;
begin
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x,y,3,3,True)
wait(200)
Flag;
wait(300)
end;
Mouse(MMCX-30,MMCY-15,8,8,True)
wait(200)
Flag;
Wait(500)
Mouse(MMCX-10,MMCY-55,8,8,True)
wait(200)
Flag;
Wait(500)
Mouse(MMCX-10,MMCY-55,8,8,True)
wait(200)
Flag;
Wait(500)
for i:= 0 to 1 do
begin
if(FindWall(x,y,5,-60,30,-20))then
begin
Mouse(x-30,y-15,5,5,True)
wait(200)
Flag;
Wait(500+random(400))
end
else
begin
Mouse(MMCX-5,MMCY-50,5,5,True)
wait(200)
Flag;
Wait(500)
end;
end;
if(not(RadialRoadWalk(FindRoadColor,50,-10,40,-1,1)))then
begin
Mouse(MMCX+30,MMCY-40,4,4,true)
wait(200)
Flag;
wait(500)
end;
wait(10)
if(not(RadialRoadWalk(FindRoadColor,60,110,30,-1,1)))then
begin
Mouse(MMCX+30,MMCY-9,4,4,true)
wait(200)
Flag;
wait(500)
end;
wait(10)
end;
{END OF VARROCK WEST 2}
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
procedure VEToBank; {START OF VARROCK EAST}
var
i:Integer;
begin
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x+7,y-15,3,3,True)
wait(200)
Flag;
wait(100)
end
else
begin
GoingOn('Mining symbol not found')
Mouse(MMCX+5,MMCY-15+random(16),4,4,True)
wait(200)
Flag;
wait(200)
end;
DaRoadColor:=FindRoadColor
if(not(RadialRoadWalk(DaRoadColor,50,-10,60,0,1)))then
begin
Mouse(MMCX+25,MMCY-60,4,4,true)
wait(200)
Flag;
end;
wait(200)
flag;
for i:=0 to 2 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaroadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,35,-35,57,0,1)))then
begin
Mouse(MMCX+2,MMCY-55,4,4,true)
wait(200)
Flag;
end;
wait(5)
end;
for i:= 0 to 2 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaroadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,240,345,45,1,0)) )then
begin
Mouse(MMCX-55,MMCY-15,4,4,true)
wait(200)
Flag;
end;
wait(10)
end;
if(Not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor
if(not(RadialRoadWalk(DaRoadColor,180,290,45,1,0)) )then
begin
Mouse(MMCX-45,MMCY+8,4,4,true)
wait(200)
Flag;
end;
wait(10)
end;
{END OF VARROCK EAST}
{----------------------------------------------------------------------------}
procedure RI1ToBank; {START OF RIMMINGTON 1}
var
i:Integer;
begin
If(FindSymbol(x,y,'Mining spot'))then
begin
GoingOn('Found mining symbol.')
Mouse(x+7,y-12,3,3,True)
wait(200)
Flag;
wait(100)
end
else
begin
Mouse(MMCX-5,MMCY-15,8,8,True)
wait(200)
Flag;
Wait(500)
end;
ScreenLoading;
if(FindWall(x,y,-20,-55,20,-35))then
begin
Mouse(x+4,y,5,5,True)
wait(200)
Flag;
Wait(500+random(400))
end
else
begin
Mouse(MMCX-7,MMCY-45,5,5,True)
wait(200)
Flag;
Wait(500)
end;
DaRoadColor:=FindRoadColor;
for i:=0 to 2 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,85,-30,52,0,1)))then
begin
Mouse(MMCX+6,MMCY-50,3,3,True)
Flag;
end;
wait(10)
end;
for i:=0 to 5 do
begin
ScreenLoading;
if(not(FindMMColor(x,y,DaRoadColor)))then
DaRoadColor:=FindRoadColor;
if(not(RadialRoadWalk(DaRoadColor,110,60,52,0,1))) then
begin
Mouse(MMCX+50,MMCY-10,4,4,True)
Flag;
end;
wait(10)
end;
ScreenLoading;
if(not(RadialRoadWalk(DaRoadColor,105,85,25,0,1))) then
begin
Mouse(MMCX+25,MMCY-10,3,3,True)
Flag;
end;
if(FindSymbol(x,y,'rare trees'))then
begin
GoingOn('Found Yew symbol')
Mouse(x+8,y-5,4,4,True)
wait(200)
Flag;
wait(500)
end
else
begin
if(FindColortolerance(x,y,1122377,MMX1,MMY1,MMX2,M MY2-25,3))then
if(FindColorTolerance(x,y,353047,x-10,y-10,x+10,y+10,3))then
if(FindColorTolerance(x,y,353047,x-6,y-6,x+6,y+6,3))then
begin
GoingOn('Didnt find Yew symbol, but found similar colors to yew symbol.')
Mouse(x+5,y-8,4,4,True)
wait(200)
flag;
end
else
begin
GoingOn('Didnt find Yew symbol')
Mouse(MMCX+30,MMCY,5,5,True)
wait(200)
Flag;
wait(500)
end;
ScreenLoading;
end;
if(not(RadialRoadWalk(FindRoadColor,75,115,35,0,1) ))then
begin
Mouse(MMCX+30,MMCY+5,3,3,True)
Flag;
end;
wait(10)
ScreenLoading;
if(not(RadialRoadWalk(FindRoadColor,75,115,30,0,1) ))then
begin
Mouse(MMCX+30,MMCY+5,3,3,True)
Flag;
end;
wait(20)
flag;
if(FindWall(x,y,-5,35,40,50))then
begin
Mouse(x+17,y+12,5,5,True)
wait(200)
Flag;
Wait(500+random(400))
end
else
begin
Mouse(MMCX+30,MMCY+45,5,5,True)
wait(200)
Flag;
Wait(500)
end;
if(FindWall(x,y,-5,35,20,50))then
begin
Mouse(x+17,y+12,5,5,True)
wait(200)
Flag;
Wait(500+random(400))
end
else
begin
Mouse(MMCX+5,MMCY+50,5,5,True)
wait(200)
Flag;
Wait(500)
end;
ScreenLoading;
if(not(RadialRoadWalk(FindRoadColor,125,145,40,-1,0)))then
begin
Mouse(MMCX+50,MMCY+35,3,3,True)
Flag;
end;
wait(10)
end;
{END OF RIMMINGTON 1}
{----------------------------------------------------------------------------}
procedure RI2ToBank; {START OF RIMMINGTON 2}
begin
end;
{END OF RIMMINGTON 2}
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
procedure WalkToMine;
begin
case Players[CurrentPlayer].Ore of
'LW': WalkToLW;
'LE': begin WalkToLW; WalkToLE; end;
'VW1': WalkToVW1;
'VW2': WalkToVW2;
'VE': WalkToVE;
'RI1': WalkToRI1;
'RI2': WalkToRI2;
end;
end;
{----------------------------------------------------------------------------}
procedure WalkToBank;
begin
case Players[CurrentPlayer].Ore of
'LW': LWToBank;
'LE': begin LEToBank; LWToBank; end;
'VW1': VW1ToBank;
'VW2': VW2ToBank;
'VE': VEToBank;
'RI1': RI1ToBank;
'RI2': RI2ToBank;
end
end;
{----------------------------------------------------------------------------}
Procedure SetOreColor;
Begin
Case Players[CurrentPlayer].String1 Of
'Clay':OreColorOne:=ClayColor;
'Copper':OreColorOne:=CopperColor;
'Tin':OreColorOne:=TinColor;
'Silver':OreColorOne:=SilverColor;
'Coal':OreColorOne:=CoalColor;
'Iron':OrecolorOne:=IronColor;
'Gold':OrecolorOne:=GoldColor;
'Mithril':OreColorOne:=MithrilColor;
'Adamantite':OreColorOne:=AdamantiteColor;
End;
Case Players[CurrentPlayer].String2 Of
'Clay':OreColorTwo:=ClayColor;
'Copper':OreColorTwo:=CopperColor;
'Tin':OreColorTwo:=TinColor;
'Iron':OrecolorTwo:=IronColor;
'Gold':OrecolorTwo:=GoldColor;
'Silver':OreColorTwo:=SilverColor;
'Coal':OreColorTwo:=CoalColor;
'Mithril':OreColorTwo:=MithrilColor;
'Adamantite':OreColorTwo:=AdamantiteColor;
End;
Case Players[CurrentPlayer].String3 Of
'Clay':OreColorThree:=ClayColor;
'Copper':OreColorThree:=CopperColor;
'Tin':OreColorThree:=TinColor;
'Silver':OreColorThree:=SilverColor;
'Iron':OrecolorThree:=IronColor;
'Gold':OrecolorThree:=GoldColor;
'Coal':OreColorThree:=CoalColor;
'Mithril':OreColorThree:=MithrilColor;
'Adamantite':OreColorThree:=AdamantiteColor;
End;
End;
{----------------------------------------------------------------------------}
Function GetChatMessage:String;
Begin
Result:=GetTextAtEx(20, 415, 0, SmallChars, False,False, 0, 1, 0, 80, False, tr_AllChars);
End;
Function YouSwing:Boolean;
Begin
Result:=(Pos('swing',GetChatMessage)<>0)
End;
Function Youmanage:Boolean;
Begin
Result:=(Pos('manage',GetChatMessage)<>0)
End;
Function NoOre:Boolean;
Begin
Result:=(Pos('no',GetChatMessage)<>0)
End;
{----------------------------------------------------------------------------}
Procedure ChangeOre;
begin
Case Random(3) of
0: CurrentRockColor:=OreColorOne
1: begin if(random(2)=1)then CurrentRockColor:=OreColorTwo
else CurrentRockColor:=OreColorOne end;
2: begin if(random(3)=1)then CurrentRockColor:=OreColorThree
else CurrentRockColor:=OreColorTwo end;
end;
end;
Function InLumby:Boolean;
var Sx,Sy:Integer;
begin
if(LumbyDetect)then
begin
if(FindSymbol(Sx,Sy,'Water'))and
FindSymbol(Sx,Sy,'Cook')and
FindSymbol(Sx,Sy,'Guide')and
FindSymbol(Sx,Sy,'Quest')then
Result:=True
else
if(FindSymbol(Sx,Sy,'Water'))and
FindSymbol(Sx,Sy,'Guide')then
Result:=True
else
if(FindSymbol(Sx,Sy,'Cook'))and
FindSymbol(Sx,Sy,'Water')then
Result:=True
if(Result=True)then
begin
Players[CurrentPlayer].Loc:='In Lumbridge, ';
GoingOn(Players[CurrentPlayer].Name+' Is in Lumbridge; next player.')
NextPlayer(False)
end;
end;
end;
Function PlayerTimeOut:Boolean;
begin
if(not(UseTimeOut))then
Exit;
PlayerTimeOutMark:=(GetSystemTime/1000/60)-PlayerStartTime2/1000/60;
if(PlayerTimeOutMark>=MaxTime)then
begin
Players[CurrentPlayer].Loc:='Time out, ';
if(not(LoggedIn))then
begin
Result:=True;
GoingOn('Player not logged in, next player')
NextPlayer(False)
exit;
end;
Result:=True;
GoingOn('Player time out. ['+inttostr(PlayerTimeOutMark)+' minutes.] ')
NextPlayer(False)
end;
end;
procedure SolveGas;
begin
getmousepos(x,y)
if(GasCheck(x,y-15))then
begin
Mouse(MMCX+5,MMCY+5,2,2,true)
case random(4) of
0:TypeSend('Lol gas, argh')
1:TypeSend('Damn, gas again')
2:TypeSend('Is that gas in the rock?')
3:TypeSend('Hope that gas goes soon away.')
end;
HighestAngle;
FtWait(40)
Exit;
end;
end;
{----------------------------------------------------------------------------}
Function Clicked:Boolean;
begin
getmousepos(x,y)
if(FindColor(x,y,255,x-8,y-8,x+8,y+8))then
Result:=True;
end;
{----------------------------------------------------------------------------}
procedure RotateIt;
begin
wait(50)
case Random(5) of
0: begin
KeyDown(VK_Left)
wait(350+random(500))
KeyUp(VK_Left)
end;
1: begin
KeyDown(VK_Right)
wait(350+random(500))
KeyUp(VK_Right)
end;
2: begin
KeyDown(VK_Down)
wait(50+random(500))
KeyUp(VK_Down)
end;
3: begin
KeyDown(VK_Up)
wait(50+random(500))
KeyUp(VK_Up)
end;
4: Highestangle;
end;
wait(50)
end;
{----------------------------------------------------------------------------}
Procedure MineFullLoad;
begin
FixChat;
ChangeOre;
if(random(2)=1)then
if(not(FindPick))then
Exit;
if(random(5+LowLag*3)=1)then
if(FindNewBox)then
SolveBox;
wait(20)
If(FindObj(x,y,'ine',CurrentRockColor,5))then
begin
RockNotFound:=0
TotalRocksMissed:=0
wait(4)
SolveGas;
if(random(9)=1)then
begin
Mouse(x,y,2,2,False)
ClickOption('ine',1)
wait(6+random(6))
if(not(Clicked))then
Exit;
end
else
Begin
Mouse(x,y,2,2,True)
wait(6+random(6))
if(not(Clicked))then
Exit;
end;
Flag;
wait(1000+random(500))
FindPick;
if(not(YouSwing))or(NoOre)then
begin
Wait(100+random(50))
if(random(15)=1)then
Wait(2000+random(2000))
Exit;
end;
MarkTime(MiningMark)
SolveGas;
Repeat
if(random(3+LowLag*1)=1)then
SolveFight;
wait(10+random(11))
if(random(20)=1)then
GI('ores')
if(random(12+LowLag*3)=1)then
TalkingToMe;
wait(10+random(11))
If(YouManage)then
Break;
if(random(30)=1)then
SRLRandomsReport;
if(Random(15)=1)then
HowAreYouTodayMrX;
HandleTrade;
wait(10+random(11))
if(random(12+LowLag*4)=1)then
SayLevel('Mining')
If(YouManage)then
Break;
if(random(3+LowLag)=1)then
FindNormalRandoms;
wait(10+random(11))
if(random(5)=1)then
if(not(FindPick))then
Exit;
wait(10+random(11))
If(YouManage)then
Break;
until(TimeFromMark(MiningMark)/1000>=MiningWait)
end
else
begin
RockNotFound:=RockNotFound+1
if(random(2+LowLag)=1)then
FindNormalRandoms;
if(random(5)=1)then
FindDemon;
wait(100+random(300))
if(random(2)=1)then
begin
Mouse(MIX1+4,MIY1-60,7,7,True)
RotateIt;
if(RockNotFound>=3)then
begin
if(Players[CurrentPlayer].Ore='RI1')or
(Players[CurrentPlayer].Ore='RI2')then
begin
If(FindSymbol(x,y,'Mining spot'))then
begin
RockNotFound:=0
TotalRocksMissed:=TotalRocksMissed+1
GoingOn('Found mining symbol.')
Mouse(x-random(35)+random(35),y-random(35)+random(35),5,5,True)
wait(200)
Flag;
wait(300)
end;
end
else
begin
If(FindSymbol(x,y,'Mining spot'))then
begin
RockNotFound:=0
TotalRocksMissed:=TotalRocksMissed+1
GoingOn('Found mining symbol.')
Mouse(x-random(8)+random(8),y-random(8)+random(8),3,3,True)
wait(200)
Flag;
wait(300)
end;
end;
end;
end;
Wait(500+random(200))
Exit;
end;
Wait(10+random(20))
if(random(3)=1)then
SetChat('Hide',1)
if(random(30)=1)then
begin
Mouse(MIX1+4,MIY1-60,7,7,True)
wait(20)
MakeCompass('N');
Highestangle;
end;
DwarfItem;
end;
{----------------------------------------------------------------------------}
Function OresMined:Integer;
var
OreBmp:Integer;
HowMany:Integer;
begin
OreBmp := BitmapFromString(11, 11, 'z78DA73730301033070436' +
'2238B60024C35B84CC0A5923C13F0BB937813F0EB22DE04CC 5022' +
'CF04CADD404CC890EA0BFCE2F85D4E4C6A212FF470998FCC0 600F' +
'B599CC1');
HowMany:=CountItemBmpMaskTol(Orebmp, 20, 25)
FreeBitMap(OreBmp)
if(HowMany<15)then
Result:=28
else
Result:=HowMany;
end;
Function TotalOresMined:String;
var
i:Integer;
PMines:Integer;
begin
for i:=0 to howmanyplayers-1 do
begin
PMines:=Players[i].Integer3+PMines;
end;
Result:=Inttostr(PMines);
end;
{----------------------------------------------------------------------------}
Procedure DropTheOres;
var
OreBmp:Integer;
Mspeed:Integer;
begin
DwarfItem;
GoingOn('Now dropping '+inttostr(OresMined)+' ores.')
OreBmp := BitmapFromString(11, 11, 'z78DA73730301033070436' +
'2238B60024C35B84CC0A5923C13F0BB937813F0EB22DE04CC 5022' +
'CF04CADD404CC890EA0BFCE2F85D4E4C6A212FF470998FCC0 600F' +
'B599CC1');
Mspeed:=MouseSpeed;
MouseSpeed:=2
repeat
if(random(3)=1)then
FindNormalRandoms;
if(random(4)=1)then
SolveFight;
If(FindBitMapMaskTolerance(OreBmp,x,y,MIX1,MIY1,MI X2,MIY2,20,25))then
begin
MMouse(x,y,15,15)
getmousepos(x,y)
wait(50+random(50))
if(IsUpText('ore'))then
begin
Mouse(x,y,0,0,False)
ClickOption('Drop',2)
end
else
begin
Mouse(MIX1+4,MIY1-60,7,7,True)
RotateIt;
end;
end;
wait(500+random(500))
until(not(FindBitMapMaskTolerance(OreBmp,x,y,MIX1, MIY1,MIX2,MIY2,20,25)))
MouseSpeed:=MSpeed;
end;
{----------------------------------------------------------------------------}
Function GetBankSymbolColor:LongInt;
var BankBitMap,Color,C:Integer;
acc:Extended;
begin
BankBitMap := BitmapFromString(7, 5, 'z78DA3330000143030363' +
'43635CA401921A08DBD9D8D1D8D40899C4AFC6CDD2C5C4D41 5531' +
'7A61A4CD2C2D4CCD4D014590D4404998D4C0200CC4A2C81') ;
Color:=6417151
FindDeformedBitmapToleranceIn(BankBitmap,x,y,570,5 ,725,160,70,0,True,acc);
if(acc>SymbolAccuracy)then
begin
repeat
c:=c+5;
if (FindColorTolerance(x,y,6417151,x,y,x+15,y+5,c)) then
begin
Result:=GetColor(x,y);
end;
until(Result>0)or(c>70);
end;
FreeBitmap(BankBitMap);
end;
{----------------------------------------------------------------------------}
procedure CheckBankColor;
var c : integer;
begin
BankColor:=0
c:=0
Flag;
repeat
BankColor:=GetBankSymbolColor
c:= c+1;
wait(150+random(100))
GoingOn('Taken '+inttostr(c)+'/20 tries to find bank')
if(BankColor=0)
then begin
KeyDown(VK_Left)
wait(180)
KEyUp(VK_Left)
wait(50)
end;
until(BankColor>0)or(c>19)
if(c>19)then
begin
BanksFailed:=BanksFailed+1;
if(BanksFailed>=5)then //Exits if fails bank 5 times.
Exit;
c:=0
GoingOn('Cant find bank symbol');
GoingOn('Logging out and coming back')
LogOut;
wait(5000+random(2000))
LogInPlayer;
wait(500+random(300))
checkbankcolor;
SetRun(True)
Mouse(x+3,y+6,2,2,true)
getmousepos(x,y)
GoingOn('Bank color: '+inttostr(BankColor))
exit;
end;
C:=0
Mouse(x+1,y+5,0,0,true)
getmousepos(x,y)
GoingOn('Bank color: '+inttostr(BankColor))
wait(50+random(50))
Flag;
wait(50+random(50))
end;
{----------------------------------------------------------------------------}
procedure OpenBankP;
var
x, y, fs, fs2,Find: Integer;
begin
if(BanksFailed>=5)then
Exit;
Players[CurrentPlayer].Loc:='at bank, ';
if(not(loggedin))then
begin
NextPlayer(False)
SetOreColor;
NickNameBmp:=CreateBitMapMaskFromText(Players[CurrentPlayer].Nick,upChars)
GetPickColors;
Exit;
end;
if not BankScreen then
begin
checkBankColor;
repeat
if(Find>5)
then
begin
Find:=0
CheckBankColor;
wait(200)
flag;
OpenBankP;
exit;
end;
Find:=Find+1
if (FindObjMultiText(x, y,'Use','u Ba','ank',7443621,10)) then
Mouse(x,y,0,0,False)
else
if (FindObjMultiText(x,y,'Use','u Ba','ank', 608609,10)) then
Mouse(x,y,0,0,False)
else
if (FindObjMultiText(x,y,'Use','u Ba','ank', 3107204,10)) then
Mouse(x,y,0,0,False);
Wait(250+random(100));
if (ClickOption('quickly', 1)) then
begin
Flag;
repeat
Wait(100+random(150));
fs := fs + 1;
until(BankScreen)or(fs >= 50);
end;
fs2 := fs2 + 1;
if(fs2>2)
then begin
fs2:=0
checkbankcolor;
wait(150+random(100))
getmousepos(x,y)
Mouse(x+3,y+6,2,2,true)
OpenBankP;
exit;
end;
until (BankScreen)or(fs2 > 2);
MakeCompass('N')
HighestAngle;
exit;
end;
end;
{----------------------------------------------------------------------------}
Procedure BankOres;
begin
OpenBankP;
if(BanksFailed>=5)then
Exit;
FixBank;
Deposit(2,28,2);
GoingOn('All ores banked');
CloseBank;
CloseBank;
Banks:=Banks+1
end;
{----------------------------------------------------------------------------}
procedure CountUser;
begin
if(LoadSetting('Pentti','User')='')then
begin
SaveSetting('Pentti','User','1')
ReportVars[8]:=1;
end;
end;
procedure TurnOffLumbyDetect;
begin
if(InLumby)then
begin
GoingOn(' Looks like you are already in Lumbridge,')
GoingOn(' Turning off Lumbridge detector.')
LumbyDetect:=False;
end;
end;
Procedure ThisIsScriptSetUp;
var
MinType:String;
begin
NewLine:='';
SetUpSRL;
SetUpSRLMining;
ClearDebug;
GoingOn('Script starting...')
if(YourSRLID<>'')then
SRLID:=YourSRLID;
if(YourSRLPass<>'')then
SRLPassword:=YourSRLPass;
if(SRLID='')or
(SRLPassword='')then
begin
ClearDebug;
Writeln('Please register at SRL stats at http://Stats.srl-forums.com/')Wait(1000)cleardebug;wait(100)Writeln('Please register at SRL stats at http://Stats.srl-forums.com/')wait(400)cleardebug;wait(100)Writeln('Please register at SRL stats at http://Stats.srl-forums.com/')wait(200)cleardebug;wait(100)Writeln('Please register at SRL stats at http://Stats.srl-forums.com/')wait(100)cleardebug;wait(100)Writeln('Please register at SRL stats at http://Stats.srl-forums.com/')wait(50)cleardebug;wait(100)Writeln('Please register at SRL stats at http://Stats.srl-forums.com/')wait(2500)
end;
if(ReduceLag)then
LowLag:=2;
SetArrayLength(Players,15)
DeclarePlayers;
HowManyplayers:=15;
CurrentPlayer:=StartPlayer;
FileReport;
ScriptID:='91'
CountUser;
OresCorrect;
PlacesCorrect;
SRLRandomsReport;
ChangeReportWidth(350)
PlayersReport;
wait(2000)
SetOreColor;
cleardebug;
if(Players[CurrentPlayer].Boolean1)then
MinType:='powermine'
else
MinType:='mine';
Status('Script by Pentti')
Writeln('Ores to '+MinType+' at '+WhereMining+':')
Writeln(' *'+Players[StartPlayer].String1)
Writeln(' *'+Players[StartPlayer].String2)
Writeln(' *'+Players[StartPlayer].String3)
wait(1500)
writeln('')
Writeln('Script by Pentti')
disguiseScar('By: Pentti')
wait(1000)
ActivateClient;
MouseSpeed:=MouseSpeedS
BenMouse:=UseBenMouse;
LogInPlayer;
wait(1000+random(500))
MakeCompass('N')
HighestAngle;
LumbySet;
LumbyCheck:=LumbyDetect;
LoadneededGameTabs;
end;
{----------------------------------------------------------------------------}
procedure MainLoop;
begin
TurnOffLumbyDetect;
Brightness;
FuckYouYouFuckingAutoretailiate;
Players[CurrentPlayer].Integer4:=GetSkillLevel('Mining')
NickNameBmp:=CreateBitMapMaskFromText(Players[CurrentPlayer].Nick,upChars)
PlayerStartTime2:=GetSystemTime;
RockNotFound:=0
TotalRocksMissed:=0
GetPickColors;
MarkTime(TalkMark)
MarkTime(ItemMark)
FindNormalRandoms;
{MINING AND BANKING LOOP}
if(not(Players[CurrentPlayer].Boolean1))then
begin
SetOreColor;
Writeln('- - - - - - - - - - - - - - - - - - - - - - - - - - ')
writeln('')
GoingOn(' Starting Trip Number: '+inttostr(Loads+1))
Mouse(MIX1+4,MIY1-60,10,10,True)
wait(200)
SetChat('Hide',1)
wait(20)
makecompass('N')
HighestAngle;
wait(20)
MakeCompass('N')
SetRun(True)
GoingOn('Walking to mining place.')
ReportPlaces;
WalkToMine;
Players[CurrentPlayer].Loc:='at '+WhereMining+' mine, ';
PlayersReport;
SRLRandomsReport;
repeat
MineFullLoad;
if(not(loggedin))then
begin
GoingOn(Players[CurrentPlayer].Name+' not logged in. Changing to next player.')
Players[CurrentPlayer].Loc:='Lost, ';
NextPlayer(False)
PlayersReport;
SRLRandomsReport;
Exit;
end;
if(PlayerTimeOut)then
Exit;
if(random(5+LowLag*3)=1)then
if(InLumby)Then
Exit;
FindPick;
if(not(FindPick))then
begin
Players[CurrentPlayer].Loc:='No pick ,';
NextPlayer(False)
Exit;
end;
if(TotalRocksMissed>=15)or(RockNotFound>=45)then
begin
Players[CurrentPlayer].Loc:='No rocks, ';
PlayersReport;
NextPlayer(False)
Exit;
end;
until(InvFull)
Players[CurrentPlayer].Integer4:=GetSkillLevel('Mining')
ReportVars[0]:=OresMined;
Players[CurrentPlayer].Integer3:=Players[CurrentPlayer].Integer3+OresMined;
GoingOn('You just mined '+inttostr(OresMined)+' ores.')
SetRun(False)
GoingOn('Walking to bank')
SRLRandomsReport;
Mouse(MIX1+4,MIY1-60,7,7,True)
wait(200)
MakeCompass('N')
wait(20)
MakeCompass('N')
WalkToBank;
BankOres;
if(BanksFailed>=5)then
begin
GoingOn(Players[CurrentPlayer].Name+' failed bank 5 times; next player')
Players[CurrentPlayer].Loc:='Bank failed, ';
BanksFailed:=0
NextPlayer(False)
exit;
end;
BanksFailed:=0
ReportVars[1]:=1
Players[CurrentPlayer].Banked:=Players[CurrentPlayer].Banked+1
Players[CurrentPlayer].Integer2:=Players[CurrentPlayer].Integer2+1
SRLRandomsReport;
GoingOn(Players[CurrentPlayer].Name+' has mined '+inttostr(Players[CurrentPlayer].Integer3)+' ores.')
GoingOn('And done '+inttostr(Players[CurrentPlayer].Banked)+' bank trips.')
if(Players[CurrentPlayer].Integer2>=Players[Currentplayer].Integer1)then
begin
PlayersReport;
Players[CurrentPlayer].Integer2:=0
LogOut;
wait(10000+random(20000))
NextPlayer(True)
end;
Loads:=Loads+1
PlayersReport;
GoingOn('Total bank runs done: '+inttostr(Loads))
GoingOn('Total ores mined: '+TotalOresMined)
end;
{----------------------------------------------------------------------------}
{POWERMINING LOOP}
if(Players[CurrentPlayer].Boolean1)then
begin
SetOreColor;
Writeln('- - - - - - - - - - - - - - - - - - - - - - - - - - ')
SetChat('Hide',1)
Players[CurrentPlayer].Loc:='Powermining, ';
PlayersReport;
SetRun(True)
SRLRandomsReport;
ReportPlaces;
repeat
MineFullLoad;
if(not(loggedin))then
begin
GoingOn(Players[CurrentPlayer].Name+' not logged in. Changing to next player.')
Players[CurrentPlayer].Loc:='Lost, ';
NextPlayer(False)
PlayersReport;
SRLRandomsReport;
Exit;
end;
if(PlayerTimeOut)then
Exit;
if(random(5+LowLag*3)=1)then
if(InLumby)Then
Exit;
FindPick;
if(not(FindPick))then
begin
Players[CurrentPlayer].Loc:='No pick ,';
NextPlayer(False)
Exit;
end;
if(TotalRocksMissed>=15)or(RockNotFound>=45)then
begin
Players[CurrentPlayer].Loc:='No rocks, ';
PlayersReport;
NextPlayer(False)
Exit;
end;
until(InvFull)
Players[CurrentPlayer].Integer4:=GetSkillLevel('Mining')
ReportVars[0]:=OresMined;
Players[CurrentPlayer].Integer3:=Players[CurrentPlayer].Integer3+OresMined;
GoingOn('You just mined '+inttostr(OresMined)+' ores.')
Players[CurrentPlayer].Integer2:=Players[CurrentPlayer].Integer2+1
SRLRandomsReport;
GoingOn(Players[CurrentPlayer].Name+' has mined '+inttostr(Players[CurrentPlayer].Integer3)+' ores.')
DropTheOres;
if(Players[CurrentPlayer].Integer2>=Players[Currentplayer].Integer1)then
begin
PlayersReport;
Players[CurrentPlayer].Integer2:=0
LogOut;
Writeln('- - - - - - - - - - - - - - - - - - - - - - -')
writeln('')
wait(10000+random(20000))
NextPlayer(True)
end;
Loads:=Loads+1
PlayersReport;
GoingOn('Total loads done: '+inttostr(Loads))
GoingOn('Total ores mined: '+TotalOresMined)
end;
LumbyDetect:=LumbyCheck;
end;
begin
Writeln('Starting...')
ThisIsScriptSetUp;
Repeat
MainLoop;
Until(Loads>=HowManyLoads)
PlayersReport;
SRLRandomsReport;
LogOut;
TerminateScript;
end.
any help is helpful:bart: