Code:
program MixMashPowerMinerNoCredit;
{$DEFINE SMART}
{$i AeroLib/AeroLib.Simba}
{$i Reflection/Reflection.Simba}
var RockIDs, MineAnimationIDs, PickAxeIDs: TIntegerArray;
ReflectPlayer : TReflectLocalPlayer;
procedure setupScriptVars;
begin
RockIDs := [13711, 13710, 7487, 7488, 7455, 7489, 7486, 7484, 7483, 7481, 9669, 9670, 9671, 14886, 14885, 14884, 7486, 7484];
MineAnimationIDs := [624, 625, 626, 627, 628, 629];
PickAxeIDs := [1265, 1273, 11920, 1275, 1271, 1269, 1267];
Me.Active := true;
Me.Name := 'USERNAME'; // Enter the account email here
Me.Pass := 'PASSWORD'; // Enter the account password here
end;
procedure randomMouseInput(pnt:Tpoint; ranx, rany:integer);
begin
case random(3) of
0:humanMMouse(pnt, ranx, rany);
1:missMouse(pnt, ranx, rany);
2:mouse(pnt, ranx, rany, mouse_move);
end;
end;
function R_TileOnMS(Tile : TPoint; var OutputPoint : TPoint; x : integer = 0; y : integer = 0; z : integer = 0):boolean;
var tempB : TBox;
begin
OutputPoint := TReflectionTiles.TileToMS(Tile, x, y, z);
tempB := intToBox(MSX1, MSY1, MSX2, MSY2);
result := PointInBox(OutputPoint, tempB);
end;
procedure doDrop;
var RSTile : TPoint;
_objects : TReflectObjectArray;
_items : TReflectInvItemArray;
i, h : integer;
begin
begin
sleep(100+random(50));
_items.GetAll;
for h:=0 to high(_items) do begin
if not inIntArray(PickAxeIDs, _items[h].getId) and itemInSlot(_items[h].getinvslot) then begin
interactSlot(_items[h].getinvSlot, 'Drop');
end;
i:=high(_objects);
end;
end;
end;
procedure Mineore;
var RSTile : TPoint;
tempObject : TReflectObject;
_objects : TReflectObjectArray;
i : integer;
begin
_objects.GetAll(ObjGame, 30);
if inIntArray(RockIDs, _objects[i].getId) then begin
RSTile := TReflectionTiles.TileToMS(_objects[i].GetTile);
if not PointInBox(RStile, AREA_MS) then begin
if TReflectionTiles.NearTile(_objects[i].GetTile, 150) then
ReflectPlayer.BlindWalkMM(_objects[i].GetTile, 5);
RSTile := TReflectionTiles.TileToMS(_objects[i].GetTile);
end;
if PointInBox(RStile, AREA_MS) then begin
Mouse(RSTile, -5, 5, mouse_left);
wait(70+random(50));
while didClick(true, 120) or (ReflectPlayer.GetAnimation <> -1) do wait(randomrange(5,20));
FFlag(0);
RSTile := _objects[i].getTile;
tempObject.GetAt(ObjGame, RSTile);
while inIntArray(RockIDs, tempObject.getID) and inIntArray(MineAnimationIDs, ReflectPlayer.GetAnimation) and isLoggedIn do begin
tempObject.GetAt(ObjGame, RSTile);
end;
end;
i := high(_objects);
end;
end;
begin
initAL;
Reflect.Setup;
setupScriptVars;
if isLoggedIn then begin
setCompass('N');
setAngle(ANGLE_HIGH);
ReflectPlayer.Create;
end;
repeat
if isLoggedIn then begin
if(getRunEnergy >= 50) and not isUsingRun then
toggleRunning(true);
if isInvFull then begin
doDrop;
end else begin
Mineore;
end;
end else begin
if loginPlayer(false) then begin
setCompass('N');
setAngle(ANGLE_HIGH);
ReflectPlayer.Create;
end;
end;
until(false);
end.