SCAR Code:
{So here my first script it runs pretty well
only bugs so far is thta sumtimes it clicks sumwhere else and doesnt drop allt he ore
(ong thts not to bad)
ty tickyy i looked on to your miner for proggy help and antibans and more
____________________setup__________________________
1. set up declareplayers
2. set ore type in line 38
3. setup player by rock you want to mine
3. save
4. run
5. post proggies and any bugs
btw it posts proggies all the way though so only post them t the end and takes 5-10 minute breaks every 50 loads
and enjoy :0
______________________________________________________}
program SimplePowerMiner;
{.Include SRL\SRL\Misc\SMART.SCAR}
{.include SRL\SRL.scar}
{agenda
0. fix DTMs
3. anti randoms
4. multi ores???
5. release it}
var
u,l,j,x,y,g,i,y,z,f,switches,oredtm,gemdtm: Integer;
const
NumOfPlayers = 1;
StartPlayer = 0;
minetime = 5000;//time to mine a rock
procedure DeclarePlayers;//add more if needed
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True; // Use this account?
Players[0].Integers[1]:= 1; // How many Loads
Players[0].Booleans[0]:= false//drop gems
Players[CurrentPlayer].strings[0]:='copper';
Players[0].BoxRewards := ['Xp', 'ostume', 'gem', 'mote', 'ithril', 'oal'];
{Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := True; // Use this account?
Players[1].Integers[1] := 40; // How many Loads
Players[0].Booleans[0]:= false//drop gems}
end;
procedure AntiBanz;
begin
If(not LoggedIn)then Exit;
Case Random(12) of
0: MMouse(Random(MSX2),Random(MSY2),0,0);
1: HoverSkill('random',false);
2: PickupMouse;
3: GameTab(1+Random(12));
4: SleepAndMoveMouse(400+Random(1500));
5: if Random(2) = 1 then MMouse(1, 338, 515, 165);
6: if Random(2) = 1 then MMouse(515, 1, 250, 503);
7: RandomMovement;
8..11:
begin
case Random(3) of
0: begin
KeyDown(VK_RIGHT);
Wait(500+Random(2000));
KeyUp(VK_RIGHT);
end;
1: begin
KeyDown(VK_Left);
Wait(500+Random(2000));
KeyUp(VK_Left);
end;
2: begin
case Random(2) of
0: begin
KeyDown(VK_RIGHT);
Wait(500+Random(1400));
KeyUp(VK_RIGHT);
end;
1: begin
KeyDown(VK_Left);
Wait(500+Random(1400));
KeyUp(VK_Left);
z:=z + 1;
end;
end;
end;
end;
end;
end;
end;
procedure loaddtms;
begin
OreDTM := DTMFromString('78DA637463626078C28002FC0C54181E02694' +
'620FE0F048CEE40353718D000231209A403816AEE1350E30D54F3' +
'86801A7BA09A4F04D49800D53C26C29CEBF8D5000045B70DB0');
GemDTM := DTMFromString('78DA8DD2510E82300C06E06E814C144C500E0' +
'3461F603199E869B83127C17F3324F3616BFBB026DB97656BAB46' +
'4D6414C5715E2EB422FBDD0DA15E30EADFFC4EF71579862918F38' +
'6A904C630E603734A9BC2670BD3A54DE9F324307DFE5FC10C304D' +
'DA1CF67B8E02A31933E47B11CC4347D54A182B30BE3E1BE58D13B' +
'C87998D60EE3057C6DC605A410D6BC68CF9BE7782F909E629308E' +
'375FE5310F20');
end;
procedure findrandoms;
begin
LampSkill := 'mining';
FindNormalRandoms;
solvesrlrandoms:=true;
end;
procedure Setup;
begin
disguise('TY for using jps powerminer')
ClearDebug;
SMARTSetupEx(149, False, True, False);
Wait(5000);
SetTargetDC(SmartGetDC);
repeat
wait(100);
until(SmartGetColor(253, 233)<>1118604);
SetupSRL
end;
procedure SkillCheck;
begin
If Not LoggedIn then
begin
NextPlayer(Players[CurrentPlayer].Active);
skillcheck;
end;
disguise('checking stats')
HoverSkill('mining',false);
wait(500+(300));
findrandoms;
end;
Function MineTheOre : Boolean;
var
i, x,y,m,mines,dist,h: integer;
orecolors: array [0..3] of integer;
OreNames: array [0..2] of String;
begin
if Players[CurrentPlayer].strings[0]='tin'then begin
orecolors[0]:= 9737632;
orecolors[1]:= 9737632;
orecolors[2]:= 10263976;
orecolors[3]:= 9737632;
End Else
if Players[CurrentPlayer].strings[0]='gold'then begin
orecolors[0] := 1815517;
orecolors[1] := 939132;
orecolors[2] := 4313339;
orecolors[3] := 1748951;
End Else
if Players[CurrentPlayer].strings[0]='iron'then begin
orecolors[0]:= 1712696;
orecolors[1]:= 1844541;
orecolors[2]:= 937587;
orecolors[3]:= 2239819;
End Else
if Players[CurrentPlayer].strings[0]='copper' then begin
orecolors[0]:= 5344484;
orecolors[1]:= 4948948;
orecolors[2]:= 4025005;
orecolors[3]:= 4420796;
End;
mines := 0;
repeat
if (not LoggedIn) then Exit;
for i := 0 to 3 do
if FindObjTPA(x, y, orecolors[i], 10, 2, 15, 25, 10, ['Mine', 'ine']) then
begin
FindObjTPA(x, y, orecolors[i], 10, 2, 15, 25, 10, ['Mine', 'ine'])
Wait(100 + Random(300));
begin
Mouse(x, y, 4, 4, True);
repeat
h:= (IntToStr(CountItemsDTM('Inv',oreDTM))); <------- error line
wait(300 + random(500));
until ( h > mines)
inc(mines);
end;
end;
AntiBanz;
FindRandoms;
if not (LoggedIn) then
begin
NextPlayer(False);
LoginPlayer;
end;
inc(mines)
AntiBanz;
FindRandoms;
if not (LoggedIn) then
begin
NextPlayer(False);
LoginPlayer;
end;
until invfull or (mines > 35);
End;
procedure OreDropping;
var OreDTM,drops:integer;
begin
drops:=0;
If Not LoggedIn then
begin
NextPlayer(Players[CurrentPlayer].Active);
skillcheck;
end;
repeat
If Not LoggedIn then
begin
NextPlayer(Players[CurrentPlayer].Active);
skillcheck;
end;
Disguise('dropping ores');
If FindDTM(OreDTM,x,y,MIX1,MIY1,MIX2,MIY2) then
Begin
Mouse(x,y,2,2,False);
wait(random(200));
ChooseOption('Drop');
wait(500 + random(100))
findrandoms;
Inc(drops);
end;
Until not FindDTM(OreDTM,x,y,MIX1,MIY1,MIX2,MIY2) or (drops=29);
end;
procedure GemDroping;
var GemDrops,GemDTM:integer;
begin
If Not LoggedIn then
begin
NextPlayer(Players[CurrentPlayer].Active);
skillcheck;
end;
GemDrops:=0;
repeat
Disguise('dropping gems');
if findDTM(GemDTM,x,y,MIX1,MIY1,MIX2,MIY2) then
Begin
Mouse(x,y,2,2,False);
wait(random(200));
ChooseOption('Drop');
wait(500 + random(100))
findrandoms;
GemDrops:= GemDrops + 1;
Inc(f);
end;
Until not FindDTM(GemDTM,x,y,MIX1,MIY1,MIX2,MIY2) or (gemdrops = 5);//dont think your gonna get more than 1 a tie but just incase
end;
procedure Proggy;
begin
WriteLn(' _____ ______')
WriteLn(' | || \')
WriteLn(' | || |')
WriteLn(' | || ___/')
WriteLn(' /_____/ |__| ')
writeLn('____________________________________________')
writeln('Script has been running for ' +TimeRunning);
WriteLn('Player '+ Players[CurrentPlayer].Nick);
WriteLn('loads done '+ IntToStr(g));
WriteLn('ores mined ' +inttostr(g *27)) ;
WriteLn('gems dropped ' + IntToStr(f));
WriteLn('plsyers used ' +inttostr(switches));
writeLn('plz post the proggie here [url]http://www.villavu.com/forum/showthread.php?p=542565#post542565[/url]');
end;
procedure Freeeverything;
var oreDTM,GemDTM,ClayBMP:integer;
begin
FreeDTM(OreDTM);
FreeDTM(GemDTM);
FreeBitmap(ClayBMP);
end;
procedure break;
begin
disguise('breaking now')
logout;
wait(300000+random(300000));
inc(switches)
NextPlayer(Players[CurrentPlayer].Active);
LoginPlayer;
end;
begin
g:= 0;
l:=0;
u:=0;
j:=0;
f:=0;
switches:=1;
Setup;
DeclarePlayers;
GraphicsSet := true;
LoginPlayer;
loaddtms;
repeat
repeat
findrandoms;
GetTimeRunning;
{ClearDebug;}
Proggy;
if g = 25 + random(25) then
break;
SkillCheck;
findrandoms;
MineTheore;
findrandoms;
OreDropping;
findrandoms;
if Players[CurrentPlayer].Booleans[0]=true then
Gemdroping;
findrandoms;
Inc(g);
until (g= (Players[CurrentPlayer].Integers[1])) or (not LoggedIn);
{ if NumOfPlayers = 1 then
begin
break;
end;
if NumOfPlayers > 1 then
begin}
NextPlayer(Players[CurrentPlayer].Active);
//end;
until(AllPlayersInactive);
Freeeverything;
end.