{.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.] ' /\ ' ' P \ ASCii Created by Aki ' ' ### \ * and Starblaster100 ' ' OOAOO \ __ * ' ' ### \##/ / / * ' ' AOA \ _AA ___ * ' ' ### \ / ##/ /| ______ __ ____ _________ _________ ' ' ### \OO##OOO |/ /| / /|___ / /|/ /|/ /| ' ' _/AOA/AA##AAA/ OOAAOO | ##/ /| #### |###aAa### |aAa###aAa | ' ' ## \### OO |__ AAOOAA |_ ###OOO/ #OA# |###OAO### |###OAO### | ' ' OOAOO OO/ /|##/ ##/ /|OOAA #AO# |###AOA### |###AOA### | ' ' ### ##AA# |AAOOAA## |AA | #OA# |#O# | #O# |#O# | #O# | ' ' P ##OO#/ OOAAOO##/ AA/ #### |#A# | #A# |#A# | #A# | ' ' ______ #OA# |#O# | #O# |#O# | #O# | ' ' / /\ #AO# |#A# | #A# |#A# | #A# | ' ' ###O### \ * #### __ | #O# |#O# |_#O# | ' ' OOA#AOOO \ ______ / /| | #A# |#A#/ #A# | ' ' AA |_AAAA/ ___ * / /| _AA |__ ### |######### | ' ' OO/ OOO / /| ______ ##AO##/ / ##/ /|###____####__ / ' ' #######\ ### | / /| AO |___ OO##OOO | / /\ / /____ ' ' ####### \ #A# | OOAAOO | OA/ /|AA##AAA/ /OAAO /| ##/ /|' ' OO |_OOO \ #O# |__ AAOOAA |_ ##OA## | OO |__ O# |#O | ###OOO/ ' ' AA/ AAAA/ #A#/ /|##/ ##/ /| ___AO | OO/ /| O#/ #O/_ OOAA/ ' ' OOA#AOOO #O##O# |OOAAOO## |/ OA | ##AA# | A##A/ /|AA | ' ' ###O### ####O#/ OOAAOO##/ ##AO##/ ##OO#/ ####/ AA/ ' ' ' ' * > [ Productions Presents ] < * ' [.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.] _____ ' ' _____ | \----' ULTIMATE POWERMINER '----| \ | __/ ' ' | o | <====|___ |====' Will Powermine a Rock You '====| _/====> / | ' Specify and then Drop the Ores ' | o \ \_____|----' '----|_____/ [-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.] ' > [ INSTRUCTIONS ] < ' ' ' ' = Have all the Correct Includes ' _____ ' = Start the Script next to a Rock' _____ | \----' = Fill in the Form and Hit Start '----| \ | __/ ' = When the Script Starts, Hover ' | o | <====|___ |====' The Mouse over a Rock you want '====| _/====> / | ' To Mine and Wait. The script ' | o \ \_____|----' Will Get its color '----|_____/ ' = Have Extra Pics in Your Inv. ' ' = No Good items incase of Death ' ' ' _____ [-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.] _____ | \----' > [ CONTACT INFO: ] < '----| \ | __/ ' Starblaster100@gmail.com ' | o | <====|___ |====' '====| _/====> / | ' PM Starblaster100 at: ' | o \ \_____|----' RuneSC,Kaiteniks,Scriptdump,RSCN '----|_____/ [-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.] ' I am not Held Responsible if any ' ' of your Characters get Banned ' [-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.} Program StarMiner; {.include SSi2.txt} {.include Boxbreaker.txt} {.include RedXIIsFordCracker.txt} Var randomlogouttimelabel, Logouttimelabel, Randomlogintimelabel, Logintimelabel, UsernameLabel, Passwordlabel, Reportlabel, Maxwaittimelebel : TLabel; Drop,DropY,RockColor,RockXP,TotalMined,Maxwaittime,Report,Report2,logintime,loginrandom,logouttime,logoutrandom:integer; Randomlogouttimeedit, Logouttimeedit, randomlogintimeedit, Logintimeedit, Usernameedit, Passwordedit : TEdit; Saveuncutcheckbox, AntibanCheckbox, Rotatecheckbox : TCheckBox; KeepUncuts, Gotcolors,RRotates,UseAntiban,StartScript:boolean; AttachCount,PickHandle2,anti,LI,RLoged,GasTotal:longint; Rundirectioncombobox, Rocktypecombobox : TComboBox; Donate, savebutton, Startbutton, antibanbutton : TButton; Reportedit, Maxwaittimeedit : TEdit; Rundirection,Rockname:String; frmMore,frmDesign : TForm; Head,Head2,Head3:longint; Procedure PrintProgressReport; var RHours,Minutes,Seconds,RMinutes,RSeconds:LongInt; Time:String; Begin if(GetSystemTime-report2 > report*60000)then Begin Seconds:=(GetSystemTime-ST) div 1000; Minutes:=Seconds div 60; RHours:=Minutes div 60; Time:=inttostr(Seconds)+' Seconds'; if Minutes<>0 then begin RSeconds:=Seconds Mod (Minutes*60); Time:=inttostr(Minutes)+' Minutes and '+inttostr(RSeconds)+' Seconds'; end; if RHours<>0 then begin RMinutes:=Minutes Mod (RHours*60); RSeconds:=Seconds Mod (Minutes*60); Time:=inttostr(RHours)+' Hours, '+inttostr(RMinutes)+' Minutes and ' +inttostr(RSeconds)+' Seconds'; end; begin status('Progress Report:'); writeln('<------====== Starblaster100s Powerminer ======------>'); writeln('Worked for '+Time); writeln('Mining '+RockName+' Rocks'); writeln('Dropped about '+InttoStr(TotalMined)+' Ore'); writeln('Gained Approx. '+(inttoStr(RockXP*TotalMined))+' Exp'); if(attaches>0)or(gastotal>0)or(fights>0)or(talks>0)or(DrFords>0)or (lamps>0)or(boxes>0)or(Rloged>0)then writeln('AntiRandom Report:'); if(attaches>0)then writeln(' Attached head '+InttoStr(AttachCount)+' Times'); if(fights>0)then writeln(' Fought '+inttostr(fights)+' time[s].'); if(talks>0)then writeln(' Talked to '+inttostr(talks)+' random event[s].'); if(DrFords>0)then writeln(' Talked to Dr Ford '+IntToStr(DrFords)+' Times'); if(lamps>0)then writeln(' Used lamps '+inttostr(lamps)+' time[s].'); if(boxes>0)then writeln(' Solved '+inttostr(boxes)+' box[es].'); if(Rloged>0)then writeln(' Logged in '+inttostr(logs)+' time[s].'); writeln(''); Report2:=GetSystemTime; end; end; End; Procedure MadeBy; Begin Status('Script Made By Starblaster100'); writeln(''); writeln(''); writeln('<===================================>'); writeln('| ~ Ultimate PowerMiner ~ |'); writeln('| Script Created by Starblaster100 |'); writeln('| Contact: Starblaster100@gmail.com |'); writeln('<===================================>'); writeln(''); end; Procedure log(why:string); {Created by Starblaster100} var m,logcounter:integer; begin status('Logging out: '+why); logcounter:=0; wait(300); mouse(646,484,4,4,true); wait(500 + random(500)); repeat logcounter:=logcounter+1; Status('Trying to Log out: '+inttostr(logcounter)+'/5'); mouse(641,376,10,4,true); for M:=0 to 30+random(10) do begin Wait(100); if(IsTextAt2(309,241,'Welcome to RuneScape',100))or (IsTextAt2(293,251,'Username',100))then break; end; until(IsTextAt2(309,241,'Welcome to RuneScape',100))or (IsTextAt2(293,251,'Username',100))or(logcounter>=5); writeln(''); Writeln('Logged out: '+why); end; ////////////// Gas Procedures \\\\\\\\\\\\\\\ function FindGas2:boolean; {*Made by Piv*, edited by Squigglyo} var clientcanvas, gascanvas1, gascanvas2 : tcanvas; x, y, gx, gy, count, tempbitmap : integer; begin gx:= 260; gy:= 155; result:= false; if(findcolorspiraltolerance(x, y, 8296866, gx - 70, gy - 70, gx + 70, gy + 70, 33))then begin TempBitmap:= BitmapFromString(50, 50, ''); GasCanvas1:= GetBitmapCanvas(TempBitmap); GasCanvas2:= GetBitmapCanvas(TempBitmap); clientcanvas:= getclientcanvas; SafeCopyCanvas(GetClientCanvas, gascanvas1, gx - 25, gy - 25, gx + 25, gy + 25, 0, 0, 50, 50); wait(1); SafeCopyCanvas(GetClientCanvas, GasCanvas2, gx - 25, gy - 25, gx + 25, gy + 25, 0, 0, 50, 50); CopyCanvas(clientCanvas, gascanvas1, gx - 25, gy - 25, gx + 25, gy + 25, 0, 0, 50, 50); wait(100); copycanvas(clientcanvas, gascanvas2, gx - 25, gy - 25, gx + 25, gy + 25, 0, 0, 50, 50); count:= 0; for y:= 1 to 50 do for x:= 1 to 50 do if((gascanvas1.pixels[x, y])<>(gascanvas2.pixels[x, y]))then count:= count + 1; if(count > 375)then //if more than 15% change begin SaveScreenshot('Gas Found.bmp'); Writeln('Gas Found - Waiting 30 seconds'); Mouse(647,82,2,2,true); Wait(30000 + random(5000));//Put thing you wanna do after gas here result:= true; end; end; FreeBitmap(TempBitmap); end; Procedure FindGas3(findx,findy:integer); var counter,GasColor,bmap,gasfind:integer; ClientCanvas,BMapCanvas:TCanvas; begin GasColor:=8296866;//8296866 if(FindColorSpiralTolerance(x,y,GasColor,findx-18,findy-18,findx+18,findy+18,25))then begin repeat counter:=counter+1 begin ClientCanvas:= GetClientCanvas; bmap:= BitmapFromString(32,32,''); BMapCanvas:= GetBitmapCanvas(bmap); CopyCanvas(ClientCanvas,BMapCanvas,findx-16,findy-16,findx+16,findy+16,0,0,32,32); wait(100); if(FindBitmap(bmap,x,y))then begin gasfind:=0;end else gasfind:=gasfind+1; FreeBitmap(bmap); end; if(gasfind=3)then begin SaveScreenshot('gas.bmp') Writeln('Gas Found - Waiting 30 seconds'); Mouse(647,82,2,2,true); Wait(30000 + random(5000));//Put thing you wanna do after gas here break; end; until(counter>=10); end; end; Procedure FindGas4(gx,gy:integer); var FailSafe:integer; begin if(FindColorTolerance(x,y,11056825,gx-15,gy-25,gx+15,gy+5,10))or (FindColorTolerance(x,y,9281445,gx-15,gy-25,gx+15,gy+5,10))or (FindColorTolerance(x,y,8492186,gx-15,gy-25,gx+15,gy+5,10))or (FindColorTolerance(x,y,7767947,gx-15,gy-25,gx+15,gy+5,10))then begin Mouse(647,82,2,2,true); flag; repeat FailSafe:=FailSafe+1; wait(300); until(FailSafe>=25)or (not((FindColorTolerance(x,y,11056825,gx-15,gy-25,gx+15,gy+5,10))or (FindColorTolerance(x,y,9281445,gx-15,gy-25,gx+15,gy+5,10))or (FindColorTolerance(x,y,8492186,gx-15,gy-25,gx+15,gy+5,10))or (FindColorTolerance(x,y,7767947,gx-15,gy-25,gx+15,gy+5,10)))) end; end; ////////////// Gas Procedures \\\\\\\\\\\\\\\ Procedure AntiBan2; {Created by CanadaRules} begin if(useantiban=true)then begin if(((GetSystemTime-anti)/60000)>=LI)then begin Log('Antiban is Active'); Status('AntiBan - Currently Logged Out'); wait((logouttime+random(logoutrandom))*60000); Status('AntiBan - Currently Logged In'); RLoged:=RLoged+1; LoginifNeeded; writeln('AntiBan has Finished, Carrying on Powermining'); writeln(''); Setrun(true); anti:=Getsystemtime; end; end; end; procedure AxeColor; begin GameTab(4); wait(100 + random(200)); Mmouse(587,219,0,0); wait(100 + random(100)); If(Option('Wield'))then Begin Head := GetColor(591, 221); Head2 := GetColor(580, 218); Head3 := GetColor(592, 222); writeln('Pick head colors: ' +inttostr(Head)+ ' '+inttostr(Head2)+ ' ' +inttostr(Head3)); end else Begin Writeln('Pick not found'); Terminatescript; end; end; Procedure DropHandle; Var Rx,N:Integer; begin Gametab(4); if not(GetColor(591, 221)=Head)or not(GetColor(580, 218)=Head2)or not(GetColor(592, 222)=Head3)then begin Status('Checking Pick out...'); GameTab(4); Mmouse(580,228,1,1); wait(100 + random(100)); If(Option('Use Pickaxe handle'))then Begin mouse(x,y,1,1,false); wait(200 + random(500)); if(findbitmap(Drop,x,y))or(findbitmap(DropY,x,y))then begin mouse(x,y,1,1,true); wait(700 + random(500)); Status('Finding New Pick'); end else mmouse(10,10,50,50); end; For n:=1 to 4 do begin rx:=544+(n*42) mmouse(rx,225,0,0); wait(100 + random(100)); if(option('Wield'))then begin getmousepos(x,y); holdmouse(x,y,true); wait(200 + random(200)); mmouse(583,223,0,0); wait(200 + random(200)); releasemouse(x,y,true); wait(500 + random(500)); AxeColor; exit; end; if(n>=4)then begin Log('No Picks Found'); terminatescript; end; end; end; end; procedure Attach; {Created by Liquid from Kaitnieks} begin GameTab(4); writeln('Attatching 1/2'); if(FindcolorSpiralTolerance(x,y,Head,550,200,745,465,5))and (FindBitmapSpiralTolerance(PickHandle2,x,y,550,200,745,465,100))then begin writeln('Attaching 2/2'); if(FindcolorSpiralTolerance(x,y,Head,550,200,745,465,5))then Begin Mouse(x, y, 3, 3, True); wait(600+random(400)); end; if(FindBitmapSpiralTolerance(PickHandle2,x,y,550,200,745,465,100))then Begin Mouse(x, y, 3, 3, True); wait(500+random(200)); AttachCount:=AttachCount+1; writeln('Attached Pick Head!'); end; end else Writeln('Not Attached'); end; procedure FindPickHead; {Created by Liquid from Kaitnieks} var tries, x, y:integer; Begin GameTab(4); if not(GetColor(591, 221)=Head)or not(GetColor(580, 218)=Head2)or not(GetColor(592, 222)=Head3)then begin tries:=1; repeat if not(FindObj('Take',Head,5)) or not(FindObj('Take',Head2,5)) or not(FindObj('Take',Head3,5)) then begin writeln('Axe head not found. Taken '+inttostr(tries)+' tries.'); status('Axe head not found moving to red dot'); x := 648; y := 83; tries:= tries + 1; FindColorSpiral(x, y, 241, 570, 5, 725, 155) Mouse(x+3,y+3,2,2,true); Flag; wait(200 + random(100)); end; if(FindObj('Take',Head,5))or (FindObj('Take',Head2,5)) or (FindObj('Take',Head3,5)) then begin status('Found Pick Head'); writeln('Pick head was found. Picking it up'); wait(450 + random(400)); Getmousepos(x,y); Mouse(x,y,0,0,True); flag; wait(500 + random(300)); Savescreenshot('Attached Head.bmp'); end; until(FindObj('Take',Head,5)) or (FindObj('Take',Head2,5)) or (FindObj('Take',Head3,5)) or (tries>9) or (FindcolorSpiralTolerance(x,y,Head,550,200,745,465,5)) if(tries>9)then begin writeln('Pick head was not found. Taking New Pick'); DropHandle; end else Attach; end; end; Procedure FindRandoms; begin LoginIfNeeded; FindPickHead; If((FindGas2)or(FindGas(x,y)))then Begin Status('Gas Found'); Writeln('Gas Found - Waiting'); wait(27000 + random(5000)); end; FindTalk; FindDoctorFord; FindBox; FindMiscRandoms; FindLamp('Mining'); if(RRotates)then RotateEvery(20+random(10)); LeaveScreenEvery(10+random(5)); if(FindFight)then begin RunAwayDirection(RunDirection); Wait(5000+random(1000)); RunBack; end; AntiBan2; end; Procedure GetRockXP; begin Case (RockName) of 'Tin' : RockXP:= (35/2); 'Copper' : RockXP:= (35/2); 'Iron' : RockXP:=35; 'Coal' : RockXP:= 50; 'Silver' : RockXP:=40; 'Gold' : RockXP:= 65; 'Mith' : RockXP:= 80; 'Addy' : RockXP:= 95; 'Rune' : RockXP:= 120; end; end; Procedure GetColorsNeeded; var C,X1,X2,Y1,Y2:integer; begin Status('Getting Colors'); Repeat Writeln(''); Writeln('Finding Rock - Move your Mouse over a Rock and Wait...'); Repeat Wait(100); If(option('Mine'))then Break; Until(false) If(Option('Mine'))then Begin wait(500); GetmousePos(X1,Y1); Writeln('Found rock - Hold Mouse Still...'); Repeat wait(100); C:=c+1; If(not(option('Mine')))then Break; until(C>=13); Getmousepos(X2,Y2); If(X1=X2)and(Y1=Y2)and(option('Mine'))then begin Getmousepos(x,y); RockColor:=Getcolor(x,y); Writeln('Color Picking Successful - "'+IntToStr(RockColor)+'"'); Writeln(''); Gotcolors:=true; end; end; Until(GotColors=true) Axecolor; end; Procedure MineRocks; Var Time,D:Integer; begin Status('Mining '+RockName+' Ore'); If(FindObj('Mine',Rockcolor,3))then Begin Findrandoms; If(Not(FindGas2))and(Not(Findgas(x,y)))then Begin Getmousepos(x,y); FindGas(x,y-20); FindGas4(x,y-20); Mouse(x,y,3,3,true); Findrandoms; flag; For D:=0 to 17 do begin wait(100); if not((Getcolor(77, 421)=0)and(Getcolor(131, 423)=0)and(Getcolor(146, 421)=0))or //'You swing your pick' ((Getcolor(273,423)=0)and(Getcolor(249,424)=0)and(Getcolor(230,424)=0)and(Getcolor(204,424)=0))then //'There is currently no' Break; end; MarkTime(Time); Repeat FindRandoms; FindGas(x,y-20); FindGas4(x,y-20); Until((Getcolor(77, 421)=0)and(Getcolor(131, 423)=0)and(Getcolor(146, 421)=0))or (Timefrommark(time)>=(MaxWaitTime*1000))or //'You managed to mine', Time up ((Getcolor(273,423)=0)and(Getcolor(249,424)=0)and(Getcolor(230,424)=0)and(Getcolor(204,424)=0)) //'There is currently no' end; end; PrintProgressReport; end; Procedure DropRocks; Var Rx,Ry,M,N:integer; begin Status('Dropping Ores'); TotalMined:=TotalMined+28; Gametab(4) begin for M:=1 to 7 do begin For n:=1 to 4 do begin rx:=544+(n*42) ry:=192+(m*36) mmouse(rx,ry,0,0); wait(200+random(100)); If(IsTextAt2(9,9,'Wield',100))or(IsTextAt2(9,9,'Use Broken',100))or(IsTextAt2(9,9,'Use Pick',100))or ((KeepUncuts=true)and(IsTextAt2(9,9,'Use Uncut',100)))then begin TotalMined := TotalMined - 1; end; If not(IsTextAt2(9,9,'Wield',100))and not(IsTextAt2(9,9,'Use Broken',100))and not(IsTextAt2(9,9,'Use Pick',100))and not((IsTextAt2(9,9,'Use Uncut',100))and(KeepUncuts=true))then begin Findrandoms; getmousepos(x,y) mouse(x,y,5,5,false); wait(100 + random(50)); if(Findbitmap(Drop,x,y))or(Findbitmap(DropY,x,y))then begin mouse(x+3,y,3,1,true); wait(285 + random(320) + random(30)); end else mmouse(233,123,50,50); end; end; end; end; PrintProgressReport; end; Procedure CheckBrightness; begin Mouse(676,474,5,7,true); wait(100 + random(200)); If(not(getcolor(726,277)=2303648))then Mouse(726,271,1,1,true); Gametab(4); end; Procedure Bitmaps; begin Drop := BitmapFromString(28, 6, 'z78DA737343000324E04684382' + 'E35A4AA2446BD1BC5EEC46F23B5C4A965E6A83B87AE3B29497B94' + 'E42362DC00008F0FEAE5'); DropY := BitmapFromString(28, 6, 'z78DA737373733330700393C8' + 'C08D08715C6A4855498C7A378ADD89DF466A8953CBCC51770E5D7' + '75292F628C947C4B8010058BBDB99'); PickHandle2 := BitmapFromString(15, 27, '564D41595145564D41544A3C544A3C595145564D41564D41564D41' + '564D41595145000001000001544A3C4F4538544A3C595145564D41' + '544A3C544A3C544A3C5951455951455951455951450000012F2000' + '362400000001544A3C564D41544A3C544A3C564D41564D41564D41' + '5951455951455951450000012F20002F2000362400000001302020' + '564D41544A3C544A3C595145564D41595145564D41595145595145' + '0000012F2000362400362400000001302020564D41564D41564D41' + '564D41564D41544A3C544A3C544A3C0000012F20002F2000362400' + '362400000001302020544A3C544A3C544A3C544A3C544A3C544A3C' + '544A3C544A3C0000012F2000362400362400362400000001302020' + '544A3C564D41564D41564D41544A3C564D41564D410000012F2000' + '2F2000362400362400000001302020302020564D41564D41564D41' + '595145564D41564D41564D410000012F2000362400362400000001' + '302020302020544A3C544A3C544A3C544A3C595145544A3C544A3C' + '0000012F2000362400362400362400000001302020564D41564D41' + '544A3C544A3C544A3C564D41544A3C4F45380000012F2000362400' + '362400000001302020302020564D41564D41544A3C544A3C595145' + '595145564D410000012F2000362400362400362400000001302020' + '564D41564D41544A3C544A3C564D41564D41595145595145000001' + '2F20002F20002F2000000001302020302020564D41564D41544A3C' + '564D41564D41544A3C564D410000012F20002F20002F2000362400' + '000001302020564D41544A3C544A3C544A3C595145544A3C544A3C' + '564D410000012F20002F20002F2000000001302020302020544A3C' + '544A3C564D41564D41595145544A3C544A3C0000012F20002F2000' + '2F2000000001302020302020595145544A3C564D41595145595145' + '595145564D41564D410000012F20002F20002F2000000001302020' + '595145595145564D41564D41595145595145595145595145000001' + '2F20002F20002F2000000001302020302020595145595145595145' + '595145564D41564D41564D41564D410000012F20002F20002F2000' + '000001302020564D41595145595145595145595145564D41564D41' + '544A3C0000012F20002F20002F2000000001302020302020564D41' + '595145595145544A3C544A3C564D41595145564D410000012F2000' + '2F20002F2000000001302020544A3C564D41595145595145544A3C' + '544A3C564D41564D41564D410000012F20002F2000000001302020' + '302020544A3C564D41595145595145564D41544A3C544A3C4F4538' + '000001271B002F20002F2000000001302020595145544A3C564D41' + '595145595145595145544A3C544A3C544A3C0000011D1500271B00' + '000001302020302020595145544A3C564D41595145595145595145' + '564D41564D41564D410000011D15001D1500000001302020595145' + '544A3C544A3C564D41595145595145595145595145595145544A3C' + '0000011D15001D1500000001302020564D41595145595145595145' + '595145564D41595145595145564D41544A3C564D41000001000001' + '302020302020595145595145595145595145544A3C564D41595145' + '544A3C544A3C4F4538564D41595145302020302020564D41595145' + '564D41564D41564D41544A3C544A3C564D41544A3C544A3C544A3C' + ''); end; //---------------- Form Stuff ----------------\\ procedure ShowFormModal; begin frmDesign.ShowModal; end; procedure ShowMoreModal; begin frmMore.ShowModal; end; procedure SafeShowForm; var v: TVariantArray; begin setarraylength(V, 0); ThreadSafeCall('InitForm', v); setarraylength(V, 0); ThreadSafeCall('ShowFormModal', v); end; procedure SafeMore; var v: TVariantArray; begin setarraylength(V, 0); ThreadSafeCall('InitMore', v); end; procedure More(sender: TObject); var v: TVariantArray; begin SafeMore; setarraylength(V, 0); ThreadSafeCall('ShowMoreModal', v); end; Procedure SaveSets1; Begin SaveSetting('StarMiner','Saved','true'); SaveSetting('StarMiner','Username',username); SaveSetting('StarMiner','Password',Password); SaveSetting('StarMiner','Rundirection',Rundirection); SaveSetting('StarMiner','RockName',RockName); If(useantiban)then SaveSetting('StarMiner','UseAntiBan','true') else SaveSetting('StarMiner','UseAntiBan','false'); If(KeepUncuts)then SaveSetting('StarMiner','KeepUncuts','true') else SaveSetting('StarMiner','KeepUncuts','false'); If(RRotates)then SaveSetting('StarMiner','RRotates','true') else SaveSetting('StarMiner','RRotates','false'); SaveSetting('StarMiner','MaxWaittime',inttostr(MaxWaittime)); SaveSetting('StarMiner','Report',inttostr(Report)); End; Procedure LoadSets1; Begin if(LoadSetting('StarMiner','Saved')='true') then begin Username:=LoadSetting('StarMiner','Username'); Password:=LoadSetting('StarMiner','Password'); Rundirection:=LoadSetting('StarMiner','Rundirection'); RockName:=LoadSetting('StarMiner','RockName'); if(LoadSetting('StarMiner','UseAntiBan')='true') then UseAntiBan:=true; if(LoadSetting('StarMiner','KeepUncuts')='true') then KeepUncuts:=true; if(LoadSetting('StarMiner','RRotates')='true') then RRotates:=true; MaxWaittime:=strtointdef(LoadSetting('StarMiner','MaxWaittime'),0); Report:=strtointdef(LoadSetting('StarMiner','Report'),0); end; End; Procedure SaveSets2; Begin SaveSetting('StarMiner','Saved2','true'); SaveSetting('StarMiner','logintime',inttostr(logintime)); SaveSetting('StarMiner','loginrandom',inttostr(loginrandom)); SaveSetting('StarMiner','logouttime',inttostr(logouttime)); SaveSetting('StarMiner','logoutrandom',inttostr(logoutrandom)); End; Procedure LoadSets2; begin if(LoadSetting('StarMiner','Saved2')='true') then begin logintime:=strtoint(LoadSetting('StarMiner','logintime')); loginrandom:=strtoint(LoadSetting('StarMiner','loginrandom')); logouttime:=strtoint(LoadSetting('StarMiner','logouttime')); logoutrandom:=strtoint(LoadSetting('StarMiner','logoutrandom')); end; end; procedure Start(sender: TObject); begin frmDesign.Caption:= frmDesign.Caption + '.'; frmDesign.ModalResult:= mrOk; StartScript:=true; Username := Usernameedit.text; Password := Passwordedit.text; UseAntiban := AntibanCheckbox.State; KeepUncuts := Saveuncutcheckbox.State; RRotates := Rotatecheckbox.State; Rundirection := RunDirectioncombobox.text; MaxWaittime := StrtoInt(Maxwaittimeedit.text); Report := StrtoInt(Reportedit.text); RockName := Rocktypecombobox.text; SaveSets1; end; procedure Save(sender: TObject); begin frmMore.Caption:= frmMore.Caption + '.'; frmMore.ModalResult:= mrOk; If(LoginTimeedit.text='')then begin Logintime := 0; end else Logintime := StrToInt(LogintimeEdit.text) If(randomlogintimeedit.text='')then begin Loginrandom := 0; end else Loginrandom := StrToInt(randomlogintimeedit.text) If(LogoutTimeedit.text='')then begin Logouttime := 0; end else Logouttime := StrToInt(LogouttimeEdit.text) If(randomlogouttimeedit.text='')then begin Logoutrandom := 0; end else Logoutrandom := StrToInt(randomlogouttimeedit.text) SaveSets2; end; procedure DonateLink(sender: TObject); begin OpenWebPage('https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=starblaster100%40gmail%2ecom&item_name=RS2%20Scripts&no_shipping=0&no_note=1&tax=0¤cy_code=GBP&bn=PP%2dDonationsBF&charset=UTF%2d8'); end; procedure InitForm; begin LoadSets1; LoadSets2; frmDesign := CreateForm; frmDesign.Left := 250; frmDesign.Top := 114; frmDesign.Width := 293; frmDesign.Height := 257; frmDesign.Caption := 'Starblaster100'#39's Powerminer'; frmDesign.Color := clBtnFace; frmDesign.Font.Color := clWindowText; frmDesign.Font.Height := -11; frmDesign.Font.Name := 'MS Sans Serif'; frmDesign.Font.Style := []; frmDesign.Visible := false; frmDesign.PixelsPerInch := 96; UsernameLabel := TLabel.Create(frmDesign); UsernameLabel.Parent := frmDesign; UsernameLabel.Left := 34; UsernameLabel.Top := 15; UsernameLabel.Width := 74; UsernameLabel.Height := 20; UsernameLabel.Caption := 'Username'; UsernameLabel.Font.Color := clWindowText; UsernameLabel.Font.Height := -16; UsernameLabel.Font.Name := 'MS Sans Serif'; UsernameLabel.Font.Style := []; UsernameLabel.ParentFont := False; Passwordlabel := TLabel.Create(frmDesign); Passwordlabel.Parent := frmDesign; Passwordlabel.Left := 35; Passwordlabel.Top := 44; Passwordlabel.Width := 69; Passwordlabel.Height := 20; Passwordlabel.Caption := 'Password'; Passwordlabel.Font.Color := clWindowText; Passwordlabel.Font.Height := -16; Passwordlabel.Font.Name := 'MS Sans Serif'; Passwordlabel.Font.Style := []; Passwordlabel.ParentFont := False; Reportlabel := TLabel.Create(frmDesign); Reportlabel.Parent := frmDesign; Reportlabel.Left := 18; Reportlabel.Top := 133; Reportlabel.Width := 99; Reportlabel.Height := 16; Reportlabel.Caption := 'Progress Report'; Reportlabel.Font.Color := clWindowText; Reportlabel.Font.Height := -15; Reportlabel.Font.Name := 'MS Sans Serif'; Reportlabel.Font.Style := []; Reportlabel.ParentFont := False; Maxwaittimelebel := TLabel.Create(frmDesign); Maxwaittimelebel.Parent := frmDesign; Maxwaittimelebel.Left := 18; Maxwaittimelebel.Top := 160; Maxwaittimelebel.Width := 115; Maxwaittimelebel.Height := 16; Maxwaittimelebel.Caption := 'Maximum Wait time'; Maxwaittimelebel.Font.Color := clWindowText; Maxwaittimelebel.Font.Height := -15; Maxwaittimelebel.Font.Name := 'MS Sans Serif'; Maxwaittimelebel.Font.Style := []; Maxwaittimelebel.ParentFont := False; Maxwaittimelebel.ParentShowHint := False; Maxwaittimelebel.ShowHint := False; Usernameedit := TEdit.Create(frmDesign); Usernameedit.Parent := frmDesign; Usernameedit.Left := 116; Usernameedit.Top := 17; Usernameedit.Width := 121; Usernameedit.Height := 21; Usernameedit.Hint := 'Type your Username into this Box'; Usernameedit.ParentShowHint := False; Usernameedit.ShowHint := True; Usernameedit.TabOrder := 8; Usernameedit.Text := Username; Passwordedit := TEdit.Create(frmDesign); Passwordedit.Parent := frmDesign; Passwordedit.Left := 116; Passwordedit.Top := 44; Passwordedit.Width := 121; Passwordedit.Height := 21; Passwordedit.Hint := 'Type your Password into this Box'; Passwordedit.PasswordChar := '*'; Passwordedit.ParentShowHint := False; Passwordedit.ShowHint := True; Passwordedit.TabOrder := 9; Passwordedit.text := Password; AntibanCheckbox := TCheckBox.Create(frmDesign); AntibanCheckbox.Parent := frmDesign; AntibanCheckbox.Left := 8; AntibanCheckbox.Top := 75; AntibanCheckbox.Width := 97; AntibanCheckbox.Height := 17; AntibanCheckbox.Hint := 'Check if you want to you the antiban feature'; AntibanCheckbox.Caption := 'Use Antiban?'; AntibanCheckbox.ParentShowHint := False; AntibanCheckbox.ShowHint := True; AntibanCheckbox.TabOrder := 10; AntibanCheckbox.checked := UseAntiban; Rotatecheckbox := TCheckBox.Create(frmDesign); Rotatecheckbox.Parent := frmDesign; Rotatecheckbox.Left := 98; Rotatecheckbox.Top := 75; Rotatecheckbox.Width := 97; Rotatecheckbox.Height := 17; Rotatecheckbox.Hint := 'Check if you want the script to randomly rotate'; Rotatecheckbox.Caption := 'Rotations?'; Rotatecheckbox.Checked := True; Rotatecheckbox.ParentShowHint := False; Rotatecheckbox.ShowHint := True; Rotatecheckbox.TabOrder := 11; Rotatecheckbox.checked := RRotates; Rundirectioncombobox := TComboBox.Create(frmDesign); Rundirectioncombobox.Parent := frmDesign; Rundirectioncombobox.Left := 142; Rundirectioncombobox.Top := 100; Rundirectioncombobox.Width := 100; Rundirectioncombobox.Height := 21; Rundirectioncombobox.Hint := 'Choose the Run Direction'; Rundirectioncombobox.ItemHeight := 13; Rundirectioncombobox.ParentShowHint := False; Rundirectioncombobox.ShowHint := True; Rundirectioncombobox.TabOrder := 12; Rundirectioncombobox.Text := RunDirection; RunDirectioncombobox.Items.Add('N'); RunDirectioncombobox.Items.Add('S'); RunDirectioncombobox.Items.Add('E'); RunDirectioncombobox.Items.Add('W'); Rocktypecombobox := TComboBox.Create(frmDesign); Rocktypecombobox.Parent := frmDesign; Rocktypecombobox.Left := 16; Rocktypecombobox.Top := 100; Rocktypecombobox.Width := 113; Rocktypecombobox.Height := 21; Rocktypecombobox.Hint := 'Choose the Rock type to Powermine'; Rocktypecombobox.ItemHeight := 13; Rocktypecombobox.ParentShowHint := False; Rocktypecombobox.ShowHint := True; Rocktypecombobox.TabOrder := 13; Rocktypecombobox.Text := RockName; Rocktypecombobox.Items.Add('Tin'); Rocktypecombobox.Items.Add('Copper'); Rocktypecombobox.Items.Add('Iron'); Rocktypecombobox.Items.Add('Coal'); Rocktypecombobox.Items.Add('Silver'); Rocktypecombobox.Items.Add('Gold'); Rocktypecombobox.Items.Add('Mith'); Rocktypecombobox.Items.Add('Addy'); Rocktypecombobox.Items.Add('Rune'); Reportedit := TEdit.Create(frmDesign); Reportedit.Parent := frmDesign; Reportedit.Left := 141; Reportedit.Top := 131; Reportedit.Width := 101; Reportedit.Height := 21; Reportedit.Hint := 'How often to Show the Progress Report in Minutes'; Reportedit.ParentShowHint := False; Reportedit.ShowHint := True; Reportedit.TabOrder := 14; Reportedit.Text := IntToStr(Report); Maxwaittimeedit := TEdit.Create(frmDesign); Maxwaittimeedit.Parent := frmDesign; Maxwaittimeedit.Left := 141; Maxwaittimeedit.Top := 158; Maxwaittimeedit.Width := 101; Maxwaittimeedit.Height := 21; Maxwaittimeedit.Hint := 'Maximum time you are Willing to Wait before moving to a new Rock' + ' (In Seconds)'; Maxwaittimeedit.ParentShowHint := False; Maxwaittimeedit.ShowHint := True; Maxwaittimeedit.TabOrder := 15; Maxwaittimeedit.Text := IntToStr(MaxWaitTime); Saveuncutcheckbox := TCheckBox.Create(frmDesign); Saveuncutcheckbox.Parent := frmDesign; Saveuncutcheckbox.Left := 176; Saveuncutcheckbox.Top := 75; Saveuncutcheckbox.Width := 97; Saveuncutcheckbox.Height := 17; Saveuncutcheckbox.Hint := 'Check if you want the script to keep the Uncut Gems You mine'; Saveuncutcheckbox.Caption := 'Keep Uncuts?'; Saveuncutcheckbox.ParentShowHint := False; Saveuncutcheckbox.ShowHint := True; Saveuncutcheckbox.TabOrder := 18; Saveuncutcheckbox.checked := KeepUncuts; Startbutton := TButton.Create(frmDesign); Startbutton.Parent := frmDesign; Startbutton.Left := 95; Startbutton.Top := 192; Startbutton.Width := 77; Startbutton.Height := 25; Startbutton.Hint := 'Hit to Start the Script !'; Startbutton.Caption := 'Start'; Startbutton.ParentShowHint := False; Startbutton.ShowHint := True; Startbutton.TabOrder := 16; StartButton.OnClick := @Start; antibanbutton := TButton.Create(frmDesign); antibanbutton.Parent := frmDesign; antibanbutton.Left := 178; antibanbutton.Top := 191; antibanbutton.Width := 98; antibanbutton.Height := 26; antibanbutton.Caption := 'Antiban Options'; antibanbutton.TabOrder := 17; antibanbutton.ShowHint := True; antibanbutton.Hint := 'To the Antiban Options'; antibanbutton.Onclick := @More; Donate := TButton.Create(FrmDesign); Donate.Parent := FrmDesign; Donate.Left := 10; Donate.Top := 192; Donate.Width := 77; Donate.Height := 25; Donate.Hint := 'If you like my Scripts, Please Donate'; Donate.Caption := 'Donate'; Donate.ParentShowHint := False; Donate.ShowHint := True; Donate.TabOrder := 16; Donate.OnClick := @DonateLink; end; procedure InitMore; begin LoadSets2; frmMore := CreateForm; frmMore.Left := 250; frmMore.Top := 114; frmMore.Width := 260; frmMore.Height := 224; frmMore.Caption := 'Antiban Options'; frmMore.Color := clBtnFace; frmMore.Font.Color := clWindowText; frmMore.Font.Height := -11; frmMore.Font.Name := 'MS Sans Serif'; frmMore.Font.Style := []; frmMore.Visible := false; frmMore.PixelsPerInch := 96; Logintimelabel := TLabel.Create(frmMore); Logintimelabel.Parent := frmMore; Logintimelabel.Left := 13; Logintimelabel.Top := 31; Logintimelabel.Width := 52; Logintimelabel.Height := 13; Logintimelabel.Caption := 'Login Time'; Randomlogintimelabel := TLabel.Create(frmMore); Randomlogintimelabel.Parent := frmMore; Randomlogintimelabel.Left := 12; Randomlogintimelabel.Top := 60; Randomlogintimelabel.Width := 95; Randomlogintimelabel.Height := 13; Randomlogintimelabel.Hint := 'Random time to Stay Loged in in Minutes'; Randomlogintimelabel.Caption := 'Random Login Time'; Randomlogintimelabel.ParentShowHint := False; Randomlogintimelabel.ShowHint := True; Logouttimelabel := TLabel.Create(frmMore); Logouttimelabel.Parent := frmMore; Logouttimelabel.Left := 12; Logouttimelabel.Top := 88; Logouttimelabel.Width := 59; Logouttimelabel.Height := 13; Logouttimelabel.Caption := 'Logout Time'; randomlogouttimelabel := TLabel.Create(frmMore); randomlogouttimelabel.Parent := frmMore; randomlogouttimelabel.Left := 12; randomlogouttimelabel.Top := 116; randomlogouttimelabel.Width := 102; randomlogouttimelabel.Height := 13; randomlogouttimelabel.Caption := 'Random Logout Time'; Logintimeedit := TEdit.Create(frmMore); Logintimeedit.Parent := frmMore; Logintimeedit.Left := 119; Logintimeedit.Top := 27; Logintimeedit.Width := 108; Logintimeedit.Height := 21; Logintimeedit.Hint := 'Time to Stay Loged in in Minutes'; Logintimeedit.Text := IntToStr(LoginTime); Logintimeedit.ParentShowHint := False; Logintimeedit.ShowHint := True; Logintimeedit.TabOrder := 8; randomlogintimeedit := TEdit.Create(frmMore); randomlogintimeedit.Parent := frmMore; randomlogintimeedit.Left := 119; randomlogintimeedit.Top := 55; randomlogintimeedit.Width := 108; randomlogintimeedit.Height := 21; randomlogintimeedit.Hint := 'Random time to Stay loged in in Minutes'; randomlogintimeedit.Text := IntToStr(loginRandom); randomlogintimeedit.ParentShowHint := False; randomlogintimeedit.ShowHint := True; randomlogintimeedit.TabOrder := 9; Logouttimeedit := TEdit.Create(frmMore); Logouttimeedit.Parent := frmMore; Logouttimeedit.Left := 119; Logouttimeedit.Top := 84; Logouttimeedit.Width := 108; Logouttimeedit.Height := 21; Logouttimeedit.Hint := 'Time to stay Loged out in Minutes'; Logouttimeedit.Text := IntToStr(LogoutTime); Logouttimeedit.ParentShowHint := False; Logouttimeedit.ShowHint := True; Logouttimeedit.TabOrder := 10; Randomlogouttimeedit := TEdit.Create(frmMore); Randomlogouttimeedit.Parent := frmMore; Randomlogouttimeedit.Left := 119; Randomlogouttimeedit.Top := 112; Randomlogouttimeedit.Width := 108; Randomlogouttimeedit.Height := 21; Randomlogouttimeedit.Hint := 'Random time to stay Loged out in Minutes'; Randomlogouttimeedit.Text := IntToStr(LogoutRandom); Randomlogouttimeedit.ParentShowHint := False; Randomlogouttimeedit.ShowHint := True; Randomlogouttimeedit.TabOrder := 11; savebutton := TButton.Create(frmMore); savebutton.Parent := frmMore; savebutton.Left := 88; savebutton.Top := 148; savebutton.Width := 75; savebutton.Height := 25; savebutton.Hint := 'Save'; savebutton.Caption := 'Save Options'; savebutton.ParentShowHint := False; savebutton.ShowHint := True; savebutton.TabOrder := 12; savebutton.ShowHint := True; savebutton.Hint := 'Save Your Options'; SaveButton.OnClick := @Save; end; begin MadeBy; SafeShowForm; if(startscript=false)then TerminateScript; ActivateClient; SetupSSi; GetColorsNeeded; GetRockXP; anti:=GetSystemTime; LI:=LogInTime+random(loginrandom); ST:=GetSystemTime; report2:=GetSystemTime; SetRun(true); Bitmaps; CheckBrightness; Repeat Repeat FindRandoms; MineRocks If(InventoryCount=28)then Break; Until(false); DropRocks; Until(false) end.