Simba Code:
program POH_Tabs;
{$DEFINE SMART}
{$i AeroLib/AeroLib.Simba}
{$i Reflection/Reflection.Simba}
var
loginName, password, Where, HouseName : string;
ReflectPlayer: TReflectLocalPlayer;
softId: TIntegerArray;
Study: Tpoint;
procedure declarePlayer;
begin
Me.Active := true;
Me.Name := 'username';
Me.Pass := 'password';
where:='Friend'; //or home
HouseName:= ''; // if its your friends house it needs a name.
Study:= Point(11866, 10069); // would be nice to use gobal get current position instead of having to enter it manually
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;
function R_InteractTile(tile: Tpoint; action: string; x: integer = 0; y: integer = 0; z: integer = 0): boolean;
var
RSTile: TPoint;
begin
if R_TileOnMS(Tile, RSTile, x, y, z) then
begin
randomMouseInput(rsTile, 5, 5);
if (Reflect.Text.IsUpText(action)) then
begin
FastClick(mouse_left);
result := didClick(true, 1000);
end
else
begin
if TReflectionText.OptionExists(action) then
begin
FastClick(mouse_right);
result := Reflect.Text.ChooseOption(action);
end;
if not result then
randomMouseInput(Point(MSCX, MSCY), 500, 500);
end;
end;
end;
procedure dismissAllRandoms;
var
i, j, me_indice: integer;
_npcs: TReflectNPCArray;
randoms: tstringarray;
begin
randoms := ['molly', 'niles', 'miles', 'giles', 'sandwich lady', 'drunken dwarf', 'genie', 'highwayman', 'dr jekyll', 'cap' 'n hand', 'security guard', 'rick turpentine', 'mysterious old man', 'frog', 'null', 'mime', 'sergeant damien', 'freaky forester', 'postie pete', 'tilt', 'flippa', 'leo', 'pillory guard', 'evil bob'];
_npcs.GetAll;
me_indice := TReflectLocalPlayer.GetPlayerIndex;
for i := 0 to high(_npcs) do
begin
if (_npcs[i].getInteractingIndex = me_indice) then
begin
for j := 0 to high(randoms) do
begin
if (pos(randoms[j], lowercase(_npcs[i].getName)) > 0) then
begin
if R_InteractTile(_npcs[i].getTile, 'Dismiss', 0, 0, 50) then
begin
sleep(2500 + random(1000));
writeln('Dismissed random: ' + _npcs[i].getname + ' Time Running: ' + TimeRunning);
end;
end;
end;
end;
end;
end;
procedure walktobank;
var
tobank: TTileArray;
endpnt: TPoint;
begin
setCompass('N');
tobank := [Point(2558,3091), Point(2569, 3089), Point(2581, 3096), Point(2591, 3097), Point(2604, 3095), Point(2611, 3092)];
endpnt := tobank[5];
if PointInBox(TReflectionTiles.TileToMS(endpnt), intToBox(MSX1, MSY1, MSX2, MSY2)) then
exit;
if (getRunEnergy >= 20) and not isUsingRun then
toggleRunning(true);
repeat
if not PointInBox(TReflectionTiles.TileToMS(endpnt), intToBox(MSX1, MSY1, MSX2, MSY2)) then
Reflectplayer.WalkPathMM(Tobank, 1);
while Reflectplayer.isMoving do
wait(50);
until (PointInBox(TReflectionTiles.TileToMS(endpnt), intToBox(MSX1, MSY1, MSX2, MSY2)));
end;
procedure walktoPortal;
var
toPortal: TTileArray;
endpnt: TPoint;
begin
setCompass('N');
toPortal:= [Point(2604, 3095), Point(2591, 3097), Point(2581, 3096), Point(2569, 3089), Point(2558,3091), Point(2544, 3094)];
endpnt := toPortal[5];
if PointInBox(TReflectionTiles.TileToMS(endpnt), intToBox(MSX1, MSY1, MSX2, MSY2)) then
exit;
if (getRunEnergy >= 20) and not isUsingRun then
toggleRunning(true);
repeat
if not PointInBox(TReflectionTiles.TileToMS(endpnt), intToBox(MSX1, MSY1, MSX2, MSY2)) then
Reflectplayer.WalkPathMM(ToPortal, 1);
while Reflectplayer.isMoving do
wait(50);
until (PointInBox(TReflectionTiles.TileToMS(endpnt), intToBox(MSX1, MSY1, MSX2, MSY2)))
end;
procedure dobank;
var
Bankpoint : TPoint;
_items : TReflectInvItemArray;
h, i :integer;
_objects : TReflectObjectArray;
Softclay: Integer;
begin
Softclay:= 1761;
case Random(2) of
0: Bankpoint := Point(2614, 3091);
1: Bankpoint := Point(2614, 3092);
2: Bankpoint := Point(2614, 3093);
end;
repeat
setCompass('E');
if (TReflectionTiles.NearTile(Point(2611, 3092), 10)) then
begin
if R_InteractTile(bankpoint, 'Bank') then
begin
Mouse(Point(262, 433), 10, 10, Mouse_Left);
wait(200);
end;
end;
until (TReflectionBank.IsOpen);
TReflectionBank.Withdraw(SoftClay, 28);
wait(200);
CloseInterface;
end;
Procedure EnterPortal;
var
PortalPoint: Tpoint;
Begin
Case Random(3) of
1: PortalPoint:= Point(2543, 3097);
2: PortalPoint:= Point(2544, 3097);
3: PortalPoint:= Point(2545, 3097);
end;
if (TReflectionTiles.NearTile(Point(2544, 3094), 10)) then
begin
if R_InteractTile(Portalpoint, 'Portal') then
begin
Mouse(Point(262, 433), 10, 10, Mouse_Left);
While ReflectPlayer.IsMoving do
wait(200);
end;
end;
wait(RandomRange(200,300));
Case LowerCase(Where) of
'home': findNPCChatText('Your House', Mouse_left);
'friend':
Begin
if not TReflectionText.ChooseOption('Friend')then begin
wait(500);
end else
wait(RandomRange(2000, 3000));
TypeSend(HouseName);
end;
end;
end;
Procedure Inhouse;
var
_Objects: TReflectObjectArray;
Rstile: Tpoint;
begin
if not (TReflectionTiles.NearTile(Study, 3)) then begin
Reflectplayer.BlindWalkMM(Study);
while ReflectPlayer.IsMoving do
wait(50);
end else
if R_InteractTile(study, 'Lectern') then
begin
Mouse(Point(262, 433), 10, 10, Mouse_Left);
wait(50);
While ReflectPlayer.IsMoving do
wait(200);
end;
end;
procedure Findtabs;
var
clay: TReflectInvItem;
Begin
wait(200);
Mouse(Point(250, 250), 5, 5, Mouse_Right);
wait(1000);
mouse(Point(250, 310), 5, 5, Mouse_left);
while clay.find('SoftClay') do
wait(50);
End;
Procedure exithouse;
begin
initAL;
Reflect.Setup;
declarePlayer;
begin
setCompass('N');
setAngle(ANGLE_HIGH);
ReflectPlayer.Create;
repeat
//dobank;
//walktoportal;
//enterPortal;
//InHouse;
// FindTabs;
//walktobank;
until(false);
end;
end.