SRL Archive - OSR Help

Help DISABLING SMART in a script.


tomjerry

2014-07-27 20:08:47

I would like to bot in the browser but when i comment out smart at the begining of the script (i guess thats where most scripters put it) i start getting chain errors. . its the script for fleching called [AL]DroiFletch. its in the fleching section of this website.I have also attached it. The errors would tell me which line of code the error happened and i would go there and comment it out and kept on going but then stuck. Help please… Which lines do i need to comment out or delete?

tomjerry

2014-07-27 22:08:22

Can someone help please..?

Wetish

2014-07-27 22:20:28

Comment out
{$DEFINE SMART}

Then run it and comment out whatever causes an error. Then repeat.

Ian

2014-07-27 22:21:21

I don't have aerolib so I can't compile the script anyway, but I commented out all the smart graphics stuff so give this a try:

program RUNME;
{$DEFINE SPS}
//{$DEFINE SMART}

{$I AeroLib/AeroLib.Simba}
{$I AeroLib/Profiles.Simba}

Const
//------------------------User setup-------------------------//
// Color Setup
bankBoothFrame = 9610935;
bankBoothWindow = 11647686;

// Info Needed
//TODO: other logs but maple handling
LogToCut = 'Maple'; //willow, maple, yew, magic
//TODO: shortbow handling
WhatToCut = 'Long'; //short, long
CuttingLogs = true;
StringingBows = false;

// Player info
P_USERNAME = '';
P_PASSWORD = '';
P_NICKNAME = '';
P_PIN = '';
P_LAMPSKILL = SKILL_SLAYER;

// Break settings
fBREAK_IN = 300; // How long before we take a break? (minutes)
fBREAK_FOR = 60; // How long will we break for? (minutes)
fR_BREAK_IN = 17; // Random minutes to add/subtract from how long until we break
fR_BREAK_FOR = 18; // Random minutes to add/subjtract from break duraction

//----------------------End user setup----------------------//

Type State = (BANKUNSTRUNG, FLETCHLOGS, GETMATERIALS, GETKNIFE, GETLOGS, LOST, GETUNSTRUNG, GETBOWSTRINGS, ATTACHSTRINGS, BANKBOWS);

Var
log, knife,
unstrung,
bowstring,
strung : TItem;
timer_CS,
timer_SP : Timer;
XPMod,
one,two,
cutLoads,
cutLogsCount : Integer;
shortBox,
longBox : TBox;
Obj_Bank : TMSObject;
DTM_MMBank : TIntegerArray;
chatboxArray : Array of TChatOption;
Terminate : Boolean = False;
terminateReason : String = 'Error somewhere';
nameMod : String;
optionList : Array of TOptions;
enterAmountBmp,
fletchMenuBmp,
stringMenuBmp : Integer;
testPt : TPoint;
//iGraphic : TGraphics;
MyProfile : TPlayerProfile;

_UNSTRUNGPT,
_BOWSTRINGPT,
_LOGPT,
_STRUNGPT,
_BANKPT : TPoint;

procedure declarePlayer();
begin
Me.Name := P_USERNAME;
Me.Pass := P_PASSWORD;
Me.Pin := P_PIN;
Me.Nick := P_NICKNAME;
Me.LampSkill := P_LAMPSKILL;
Me.Active := True;
end;

procedure loadVars();
var
A,B : Integer;
begin
MyProfile := CreateProfile('me',18,140,190);
cutLogsCount := 0;
enterAmountBmp := BitmapFromString(97, 20, 'meJytmFFPGzEQhPP/3+kDdaUeT+' +
'1foGlFEHmiqmiRqvBvutzcDcPs2jlRohVy7LXxfje79mW6fZzE2uF' +
'PGBrsUYer42nssNGwji7yBvv4/QF/0fhPu9g/XFzfv1h8nW2qEGHn' +
'EYUR0NGxhQ+mjxGVK6Px6e7UYxL24eaRPbQIR3vUJy/F9ck5pi/rK' +
'KLre9s5/XXb+Io1dWVVUea5RUXxFxPZMGVqUAgZO8T+ERdNI4WP4V' +
'VWEQgZqrMiuvz2MxrYjMZLSro+6enDtXBMGDleQxRLgcxAb0Uu7J/' +
'lEUYyWSRlCCpRa+d0CzhUI9eMTiIqszt6SvHbE89hAoVKBY3oDyt5' +
'ljm4hHA4KSKm2OXNL9Pb2HqINHPJQWns0mdAg8QG2WRkWKZIKXq+H' +
'P9a9mVWmh0LosMpP01LLhXVWUSaRDY39GOINvKHMzY5oKTZpBAILR' +
'ApNMLvCQkOMEO0/Wgjfw2Z9cSMEo3REpHO0kXgbMd3ryZ/PT7lymP' +
'0EDWmID0HGQFQPLxK/WyxsSqoIovaGYrMlJI5l8VZyzJGkVyWfVly' +
'1MkgOkqONfzdEWWRWBVSFPwEMUAzZxDQTiLSTks9mDmgyNvEHIv1A' +
'5S65XZeJ3eW0HCi9UY15KUx56Y5v4wKK0NUnvKcxbbOYid7dFf6v3' +
'pYLIqBz0BFWxDpZjQc6ifiUg69dlmydq8/ioijJaJBW9me9dFaYWe' +
'EHf3qz6Etm8n5QiYarJ1lppwo6e+FSFfWnH0DIlywjQa/mlp6isqe' +
'dilSRPlo4zpEZKk6QNRTSA/RIBd6iNp86D+/jOyLyryTUtCqWwHdj' +
'BI/4GCIQEnlZLM0qIyIdwmdkkuiLjUoF1ZsDVqbD3RUIcgJfzXRnO' +
'd6Q+AQHXoXyFyCVEjGKoam6sJplwcdVTh28WjrJdN82LYrX57OkPn' +
'KnK/fdilCj/50oIgsQxVRj2Hr3DnZoEPmaYha5545uF8Z4dIH8TLR' +
'jIZe79WBb9kQIR4H2hmRUsIQpKIhlKByYe+JswzNKPUQcXoGDgfGF' +
'Sk2eMfXX2ba+rMMEVGKeJf5/OO36QQ9ba57WUXczFX6na3Hrb1+2+' +
'2l1Vk7ixdPf1HR/CNJW09/zUQTj6YbEYEw3AgkGppfOQGn9fptJSL' +
'754JWPvSBYLYb9sOv/wDMpT8X');
fletchMenuBmp := BitmapFromString(34, 20, 'meJyNVctOw0AM5P8PXFAQIqf+RC' +
'UglXoEUaGV+CGczHoYz7ZRqz04Xr/GnnXnU3v9uExLm96/46xyCl2' +
'OK5xNP58aDj6hf3y7xKE7fWcET01xzNOzL+35/Mv49F3lxV30PB2/' +
'ND6ijYnCbLVMILAMjTqyklKbyATlLdKzRdBKzGbUXEXERAbkIX8Rn' +
'AUQBWVedeDpjjFpkwt2jb9hCYEGmsU6oCmUM9BrBKQIoadIeyjVTC' +
'lXOgZ9Eo8AmSUEBC9ZEt0Vet+eBfmgs9Y+IKBiIZC9sMr8ASkpjU8' +
'GNyHMOAtOrZM8bdgKVSptjPCs3xJhQCVOVk68yhmdI1+xMge8YjEK' +
'jRvGsthArc//Q1ka3+k4bs6LFers4EKlXmEoh/NP2Uhb97RjNiake' +
'Dl+avc4Lwh8OxC4lBgTVdmPxvEEVGmVKGrjnr3ZgqLufFuJ1vOR7Y' +
'VgN9Y1cOn7skRjwHuykGO2c6wz07C9tbCxYF6NkHceOxeXttpX5aA' +
'kZ1iz7t6Sbil/EDuVWNIw+wM9tRRD');
stringMenuBmp := BitmapFromString(73, 26, 'meJylmN1rVFcUxSn4ZKTUKAhijY' +
'ogE8GStmIeNMXPl4hiURBaCgoFUdqHGvwWWzXiZHRwIj7E2JgoCZr' +
'UdFQIYqiU4r/gm3+M6941s7Jnn3NuRguLw7n3ngn7d9fe+5ybysx8' +
'ZWb+zrN/KvnEafDpa06GnsxxhMqTL6nrj1/YUbo88dxe2vsU5tfGZ' +
'//486+oLo1On7k/jTGukUmq5Vf3py7ce8z7mJy5O4FRFAw+hLLiGo' +
'smcYHid1AAQVSXx2f5VCHhPmXjxLIkWpNLlyTCKDRdRs1Kia4NTr0' +
'iF/DFiJuk0CRlGdHIyzF0sAjKcDkWATo05GQqLUPjiKDktLySuyxI' +
'1GhOSg0HLVogiyZZLqLdmv0XKgakZVly5kQZ2pO5aNhiZDZmIGN11' +
'RqNw50iv0ans/tNCtSRIwovHVqq0MKio1+cl/O5uFKABGl410w/Vl' +
'82H6vboiuuMsfiSNlAhFarv2kTDSC4dLDlvLhwM2N8+jqVjZ50rJ7' +
'5mLcX9RN513XsxBf9R6AWNGdik1dmgcuhgSuki24EhGqBRa1NvVIZ' +
'Cq2YjnmYtZRYhyz9dnHF0Z/Bterwj5g0fDRoltcmIdFk4qJ9w9Uds' +
'lGyUOotqQ5pOwlxohtc7+9lWvZ53z6O8ki52lKVsa7CBbbQ1EYcl0' +
'1CcYWdczDvk8VoC4zc4wLLgAYccnV0b1m2eklqZ7e9RXP7FFENv3x' +
'7+/l/oKglGuMCFxgDND7lltcOFJ1Sw9QdCCzIxqXfbIMwX9rRkYJa' +
'svpLqGABBCJwgQ5c4dY2XKueHTjt9Mupk4e/PxRq1+5dfdu/lg7s2' +
'wnt7+/H/a3f9liVuktaIGHZhpMDG3vX/HB8+a8DX2ECQMTf2bnMCU' +
'QoQ7wErIGt2kd06GLS0i+3tUGIv3zj2qPxB3/PTGIycreC+fUrF0i' +
'HSZvCD9vU8fPnEDCgHjz8rjq85tiJ5Sg6CK/CvjFo7fYdP9XnR969' +
'79mzbnPPZ9HTGhPSosE+NkwCAgdcipOWpQSLo7J/QeJLs8JKGIHIL' +
'109CECEjfYIis3d60ubuijMs8vu0qkXGRpdsweAaEJibOegtejWYO' +
'uOc30d8NwS3R04BwhykoXGHqKnbithn0G6FpxCq/U3qrVP5ioW93R' +
'9LyjIxmE7H3Uc3VsbVedfsXIlKsv+1p3f5FSUjlwhWnjq+J90iGQw' +
'j1+fD0NNKC27Mz3n9jU46N6JzQF7AAiP2UCr5keR9l37WOTGV15OV' +
'7BMTQzGocp4FIEsmuVyPjrjkJDqkJ+QkPwhvxQK6lRf6O28AU5QcV' +
'TI5fJTc/VJAbo4FSpF8Gjkesr+4/YO64WLfFG0SvCfitCjFKZFQ2C' +
'KUMIl24v6JyKs5juCdYpPK2ZPbPN7Vqo2dxn7W9XgkOkw6rSpszfu' +
'3Jx4Zr0jCzuJnVvvBE4uPpWhbEHEL+aiL7ZUuV4j2oh1zXLJxNR2Y' +
'CuOxpHIcUF4nxbKOquJFqvH1lpT15GqNxYkbViYqbSMbgcOTWLYQg' +
'sT1RFZuzO0vNMqzlrzkOPowgYbvo2Fr/i8qUbpQlLnmixzjGoOugy' +
'53K9q6W+HRaWcdN0m2kyijUWwrDglZJhdNmDnUXxZ8zu9uNzCbHTt' +
'0eZkai+L/oNXUGomHwDBKTja');
shortBox := toBox(80,390,140,460);
longBox := toBox(220,390,290,460);
Obj_Bank := toObj('BankBooth', ['ank B','nk bo','booth'], [createColEx(bankBoothFrame, 8, 0.75, 0.90)], [createColEx(bankBoothWindow, 5, 0.11, 3.38)]);

setLength(DTM_MMBank, 1);
DTM_MMBank[0] := DTMFromString('m6wAAAHic42ZgYGhiYmCYxQShq4C4BYq7gLgSiGuBuAaIO4A4DKg+Boi9odgAiE2A2BRKg7A+EBsC8cmjRxk+Aum3byH469MnKLilRhFMJ+qzM/wHqlMmEjMCMRORGAkAABAgIUc=');
knife.DTM := DTMFromString('mbQAAAHicY2VgYDjGzMCwG4hPA/ERKP0VKM7KyMDwEUj/A+JXQFxTXAwkGVEwO5BkQcNMGKqgAAD+bAlH');
bowstring.DTM := DTMFromString('mggAAAHicY2NgYPBlYWBwAmIXILYG4gAgtgTiDqBcDxA3AHE1EDdD2U1l4QwigoJAFiOcBmEOIMmKBTPBVaBiCAAAa5YGrg==');

case lowercase(LogToCut) of
'willow':
begin
//TODO
end;
'maple':
begin
log.DTM := DTMFromString('mggAAAHicY2NgYIhlYWAIBGI/IA4G4iggzgTiJ0C5Z0D8BojfAfEnIH4NxHlePAxdqQYMzYl6YJqBgRGMuYAkNswMxExImBGKIQAAJHUMDw==');
case lowercase(WhatToCut) of
'short':
begin
//TODO
end;
'long':
begin
unstrung.DTM := DTMFromString('mWAAAAHicY2FgYEhnYmDIAeIkKL0OKLYbiFcD8VYg3jZrApBkhGMOIImMGdEwCAAAlBMGfg==');
strung.DTM := DTMFromString('mggAAAHicY2NgYGhhYWBoAOIyIK4D4nYg7gXiP0C5/0D8BYrZGRkYuIB435LZQB4jBuYCkmxYMKZKCIYAAIz1CVE=');
end;
end;
end;
'yew':
begin
//TODO
end;
'magic':
begin
//TODO
end;
end;

timer_CS.start();
timer_SP.start();
setupBreak(fBREAK_IN, fBREAK_FOR, fR_BREAK_IN, fR_BREAK_FOR);
end;

procedure freeGlobals();
var
i : Integer;
begin
for i:=0 to high(DTM_MMBank) do
freeDTM(DTM_MMBank[i]);
freeBitmap(enterAmountBmp);
freeBitmap(fletchMenuBmp);
freeBitmap(stringMenuBmp);
freeDTM(log.DTM);
freeDTM(unstrung.DTM);
freeDTM(bowstring.DTM);
freeDTM(strung.DTM);
freeDTM(knife.DTM);
end;

procedure OpenBank();
var
T : Timer;
Pnt : TPoint;
i,c : Integer;
Slots : TIntegerArray;
begin
if not isLoggedIn() then
Exit;

BreakHandler();

if (Me.Pin <> '') then
inPin(Me.Pin);
if isBankOpen() then begin
Exit;
end;

if openBankPoint(_BANKPT, True) then Exit;

for i:=1 to 3 do
begin
if findMSObject(Obj_Bank, 5, point(MSCX,MSCY), Pnt) then begin
break;
end;
if (i=3) then
if not findMSObject(Obj_Bank, 5, point(MSCX,MSCY), Pnt) then
Exit;
end;

if not openBankPoint(Pnt, True) then begin
Exit;
end
else begin
_BANKPT.X := Pnt.x;
_BANKPT.Y := Pnt.y;
Exit;
end;
end;

function HaveKnife() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
knifeFound : Boolean;
begin
itemsChecked := 0;
invCount := GetInvCount();
knifeFound := False;

for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if (knife.FindIn(slotBox, itemPt)) then begin
knifeFound := True;
if not (i = 1) then begin
MoveItemTo(i, 1);
end;
end
else begin
if (knife.FindIn(slotBox, itemPt)) then begin
knifeFound := True;
if not (i = 1) then begin
MoveItemTo(i, 1);
end;
end;
end;
end;
if (itemsChecked = invCount) then break;
if (knifeFound) then break;
end;
if (knifeFound) then Exit(True);
Exit(False);
end;

function HaveLogs() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
logFound : Boolean;
begin
itemsChecked := 0;
invCount := GetInvCount();
logFound := False;

for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if (log.FindIn(slotBox, itemPt)) then begin
logFound := True;
end;
end;
if (itemsChecked = invCount) then break;
if (logFound) then break;
end;

if (logFound) then Exit(True);
Exit(False);
end;

function WithdrawKnife() : Boolean;
var
knifePt,
itemPt : TPoint;
label
WDKnife, Start;
begin
GoTo Start;
WDKnife:
WithdrawPointEx(knifePt, 1, ['nife', 'ife']);
repeat
sleep(50);
if (MyProfile.ActAhead()) then begin
Break;
end;
until(GetInvCount() = 1);
Exit(True);

Start:
if (IsBankOpen()) then begin
if (GetInvCount() > 0) then QuickDeposit('inv');
if (FindDTM(knife.DTM, knifePt.x, knifePt.y, MSX1,MSY1,MSX2,MSY2)) then begin
GoTo WDKnife;
end
else begin
if (ScrollToItemDTM(knife.DTM, knifePt)) then begin
repeat
sleep(150);
if (MyProfile.ActAhead()) then begin
Break;
end;
until(GetInvCount() = 1);
Exit(True);

end
else begin
Terminate := True;
terminateReason := 'No knife found';
Exit(False);
end;
end;
end
else begin
Exit(False);
end;
end;

function WithdrawLogs() : Boolean;
var
logPt,
itemPt : TPoint;
label
WDLog, Start;
begin
GoTo Start;
WDLog:
WithdrawPointEx(logPt, 27, ['log', 'og']);
sleep(200+random(100));
repeat
sleep(250);
if (MyProfile.ActAhead()) then begin
Break;
end;
if not (FindDTM(log.DTM, logPt.x, logPt.y, MSX1,MSY1,MSX2,MSY2)) then break;
until(GetInvCount() = 28);
Exit(True);

Start:
if not (HaveKnife()) then Exit(False);
if (IsBankOpen()) then begin
if (FindDTM(log.DTM, logPt.x, logPt.y, MSX1,MSY1,MSX2,MSY2)) then begin
GoTo WDLog;
end
else begin
if (ScrollToItemDTM(log.DTM, logPt)) then begin
GoTo WDLog;
end
else begin
Terminate := True;
terminateReason := 'No logs found';
Exit(False);
end;
end;
end
else begin
Exit(False);
end;
end;

function AllUnstrung(): Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
begin
itemsChecked := 0;
invCount := GetInvCount();

for i:= 2 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if not (unstrung.FindIn(slotBox, itemPt)) then begin
Exit(False);
end;
end;
if (itemsChecked = invCount - 1) then break;
end;
if (itemsChecked = 0) then Exit(False);
Exit(True);
end;

procedure DepositUnstrung();
var
unstrungCount,
i, randomSlot : Integer;
itemPt,
logPt : TPoint;
unstrungSlots : TIntegerArray;
begin
if (IsBankOpen()) then begin
unstrungSlots := unstrung.GetSlots();
unstrungCount := High(unstrungSlots);
cutLogsCount := cutLogsCount + (unstrungCount + 1);
if not (unstrungCount > 0) then begin
Exit;
end;
DepositAllFrom(2);
end;
end;

procedure CutLogs();
var
logsLeft,
randomSlot : Integer;
itemPt : TPoint;
logSlots : TIntegerArray;
label
FletchMenu;
begin
if (ItemInSlot(1) and knife.FindIn(InvBox(1), itemPt)) then begin
if (InteractSlot(1, MOUSE_LEFT)) then begin
repeat
wait(50+random(50));
if (MyProfile.ActAhead()) then begin
Break;
end;
until (SlotActivated(1));
end;
end
else begin
Exit;
end;

logSlots := log.GetSlots();
logsLeft := High(logSlots);
case random(100) of
0..75: begin
if (ItemInSlot(2) and log.FindIn(InvBox(2), itemPt)) then begin
InteractSlot(2, MOUSE_LEFT);
end
else begin
InteractSlot(logSlots[1], MOUSE_LEFT)
end;
end;
75..97: begin
if (ItemInSlot(5) and log.FindIn(InvBox(5), itemPt)) then begin
InteractSlot(5, MOUSE_LEFT);
end
else begin
InteractSlot(logSlots[1], MOUSE_LEFT)
end;
end;
98..100: begin
randomSlot := random(logsLeft);
if (ItemInSlot(randomSlot) and log.FindIn(InvBox(randomSlot), itemPt)) then begin
InteractSlot(randomSlot, MOUSE_LEFT);
end
else begin
InteractSlot(logSlots[1], MOUSE_LEFT)
end;
end;
end;

if (WaitChatChange()) then begin
MyProfile.React();

FletchMenu:

case lowercase(WhatToCut) of
'short':
begin
MouseBox(shortBox, MOUSE_RIGHT);
if waitOptionMulti(['Make X', 'e X', 'X'], 1000) then begin
if (WaitChatChange()) then begin
sleep(175+random(350));
MyProfile.React();
TypeSend(IntToStr(33));
end
else begin
if (FindBitmapToleranceIn(enterAmountBmp, one, two, MCX1, MCY1, MCX2, MCY2, 8)) then begin
MyProfile.React();
TypeSend(IntToStr(33));
end;
end;
end
else begin
Exit;
end;
end;
'long':
begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make X', 'e X', 'X'], 1000) then begin
if (WaitChatChange()) then begin
MyProfile.React();
TypeSend(IntToStr(33));
end
else begin
if (FindBitmapToleranceIn(enterAmountBmp, one, two, MCX1, MCY1, MCX2, MCY2, 8)) then begin
MyProfile.React();
TypeSend(IntToStr(33));
end;
end;
end
else begin
Exit;
end;
end;
end;
end
else begin
if (FindBitmapToleranceIn(fletchMenuBmp, one, two, MCX1, MCY1, MCX2, MCY2, 8)) then GoTo FletchMenu;
MyProfile.React();
end;

sleep(150+random(150));
if (MyProfile.ActAhead()) then begin
MyProfile.MoveMouseSlow(_BANKPT);
end;

repeat
//iGraphic.DrawBox(MSX1,0,MSX2,50,true,clSilver);
//iGraphic.__Bmp.DrawText(('Time Running: ' + TimeRunning()),'UpChars07',Point(10,10),108750);
//iGraphic.__Bmp.DrawText(('Cut Logs: ' + IntToStrEx(cutLogsCount)),'UpChars07',Point(30,30),108750);
wait(100+random(100));
if (LevelUp() or ClickToContinue()) then break;
until(AllUnstrung());
MyProfile.React();
end;

function HaveUnstrung() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
unstrungFound : Boolean;
begin
itemsChecked := 0;
invCount := GetInvCount();
unstrungFound := False;

for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if (unstrung.FindIn(slotBox, itemPt)) then begin
unstrungFound := True;
end;
end;
if (itemsChecked = invCount) then break;
if (unstrungFound) then break;
end;

if (unstrungFound) then Exit(True);
Exit(False);
end;

function HaveBowstrings() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
bowstringFound : Boolean;
begin
itemsChecked := 0;
invCount := GetInvCount();
bowstringFound := False;

for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if (bowstring.FindIn(slotBox, itemPt)) then begin
bowstringFound := True;
end;
end;
if (itemsChecked = invCount) then break;
if (bowstringFound) then break;
end;

if (bowstringFound) then Exit(True);
Exit(False);
end;

function WithdrawUnstrung() : Boolean;
var
i : Integer;
unstrungPt,
itemPt : TPoint;
unstrungPts : TPointArray;
label
WDUnstrung, Start;
begin
GoTo Start;
WDUnstrung:
if (WithdrawPointEx(_UNSTRUNGPT, 14, ['u', 'u)','(u)', '(', '(u', ')'])) then begin
//sleep(200+random(100));
repeat
sleep(50);
until(HaveUnstrung());
Exit(True);
end
else begin
if (High(unstrungPts) >= 1) then begin
for i:= 0 to High(unstrungPts) do begin
if (WithdrawPointEx(unstrungPts[i], 14, ['u', 'u)','(u)', '(', '(u', ')'])) then begin
result := True;
_UNSTRUNGPT.X := unstrungPts[i].x;
_UNSTRUNGPT.Y := unstrungPts[i].y;
//sleep(200+random(100));
repeat
sleep(50);
until(HaveUnstrung());
Exit;
end;
end;
end;
end;

Start:
if (IsBankOpen()) then begin
if (FindDTMs(unstrung.DTM, unstrungPts, MSX1,MSY1,MSX2,MSY2)) then begin
GoTo WDUnstrung;
end
else begin
if (ScrollToItemDTM(unstrung.DTM, unstrungPt)) then begin
GoTo WDUnstrung;
end
else begin
Terminate := True;
terminateReason := 'No unstrung bows found';
Exit(False);
end;
end;
end
else begin
Exit(False);
end;
end;

function WithdrawBowstrings() : Boolean;
var
bowstringPt,
itemPt : TPoint;
label
WDBowstring, Start;
begin
GoTo Start;
WDBowstring:
WithdrawPointEx(bowstringPt, 14, ['string', 'ow string']);
sleep(200+random(100));
repeat
sleep(50);
if not (FindDTM(bowstring.DTM, bowstringPt.x, bowstringPt.y, MSX1,MSY1,MSX2,MSY2)) then break;
until(GetInvCount() = 28);
Exit(True);

Start:
if (IsBankOpen()) then begin
if (FindDTM(bowstring.DTM, bowstringPt.x, bowstringPt.y, MSX1,MSY1,MSX2,MSY2)) then begin
GoTo WDBowstring;
end
else begin
if (ScrollToItemDTM(bowstring.DTM, bowstringPt)) then begin
GoTo WDBowstring;
end
else begin
Terminate := True;
terminateReason := 'No bow strings found';
Exit(False);
end;
end;
end
else begin
Exit(False);
end;
end;


function AllStrung() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
begin
itemsChecked := 0;
invCount := GetInvCount();
if (invCount = 0) then Exit(False);
for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if not (strung.FindIn(slotBox, itemPt)) then begin
Exit(False);
end;
end;
if (itemsChecked = invCount) then break;
end;
if (itemsChecked = invCount) then Exit(True);
Exit(False);
end;

function ClickPieces(First, Second: Integer) : Boolean;
var
T : Timer;
itemPt : TPoint;
attempts : Integer;
label
Attempt;
begin
attempts := 0;
Attempt:

attempts := attempts + 1;
if (attempts = 5) then Exit(False);
sleep(100+random(150));
if (ItemInSlot(First) and unstrung.FindIn(InvBox(First), itemPt)) then begin
writeln('found unstrung specified');
if (ItemInSlot(Second) and bowstring.FindIn(InvBox(Second), itemPt)) then begin
writeln('found bowstring specified');
InteractSlot(First, MOUSE_LEFT);

T.Start();
repeat
wait(50+random(150));
until (SlotActivated(First) or (T.TimeElapsed() > 2000));
if not (SlotActivated(First)) then GoTo Attempt;

wait(75+random(200));
InteractSlot(Second, MOUSE_LEFT);

T.Start();
repeat
wait(50+random(150));
until(FindBitmapToleranceIn(stringMenuBmp, one, two, MCX1, MCY1, MCX2, MCY2, 11) or (T.TimeElapsed() > 2000));
if (FindBitmapToleranceIn(stringMenuBmp, one, two, MCX1, MCY1, MCX2, MCY2, 11)) then Exit(True);

end
else GoTo Attempt;
end
else GoTo Attempt;
end;

//14-15, 14-18, 13-17, 1-14, rand-rand
procedure StringBows();
var
unstrungLeft,
bowstringLeft,
randomUnstrungSlot,
randomBowstringSlot, i: Integer;
itemPt : TPoint;
unstrungSlots,
bowstringSlots : TIntegerArray;
label
StringMenu;
begin
unstrungSlots := unstrung.GetSlots();
unstrungLeft := High(unstrungSlots);
bowstringSlots := bowstring.GetSlots();
bowstringLeft := High(bowstringSlots);
if not (unstrungLeft >= 0) then Exit;
if not (bowstringLeft >= 0) then Exit;

case random(100) of
0..69: begin
writeln('0-69 wrong');
if (ItemInSlot(14) and unstrung.FindIn(InvBox(14), itemPt)) then begin
if (ItemInSlot(15) and bowstring.FindIn(InvBox(15), itemPt)) then begin
if(ClickPieces(14, 15)) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end
else begin
if (ClickPieces(14, bowstringSlots[0])) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end;
end
else begin
if (ClickPieces(unstrungSlots[0], bowstringSlots[0])) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end;
end;
70..100: begin
writeln('70-84 wrong');
if (ItemInSlot(14) and unstrung.FindIn(InvBox(14), itemPt)) then begin
if (ItemInSlot(18) and bowstring.FindIn(InvBox(18), itemPt)) then begin
if (ClickPieces(14, 18)) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end
else begin
if (ClickPieces(14, bowstringSlots[0])) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end;
end
else begin
if (ClickPieces(unstrungSlots[0], bowstringSlots[0])) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end;
end;
end;

repeat
wait(100+random(100));
if (LevelUp() or ClickToContinue()) then break;
for i:=1 to 28 do begin
if (SlotActivated(i)) then InteractSlot(i, MOUSE_LEFT);
end;
until(AllStrung());
end;

function GetCutState(): State;
begin
result := LOST;
if not isLoggedIn() then
Exit;

if (HaveKnife()) then begin
write('have knife');
if (HaveLogs()) then begin
write(', have logs');
writeln(', fletching logs');
if (IsInterfaceOpen()) then CloseInterface();
MyProfile.React();
Exit(FLETCHLOGS);
end
else begin
if (AllUnstrung()) then begin
writeln(', depositing unstrung');
MyProfile.React();
Exit(BANKUNSTRUNG);
end
else begin
writeln(', getting logs');
Exit(GETLOGS);
end;
end;
end
else Exit(GETKNIFE);

end;

procedure CutScriptLoop();
var
curState : State;
begin
if not isLoggedIn() then Exit;

curState := GetCutState();
case curState of
BANKUNSTRUNG :
begin
OpenBank();
DepositUnstrung();
end;
FLETCHLOGS : CutLogs();
GETKNIFE :
begin
OpenBank();
WithdrawKnife();
end;
GETLOGS :
begin
OpenBank();
WithdrawLogs();
end;
LOST :
begin
Terminate := True;
end;
end;
end;

function GetStringState(): State;
begin
result := LOST;
if not isLoggedIn() then
Exit;


if (AllStrung()) then begin
MyProfile.React();
Exit(BANKBOWS);
end
else begin
if (HaveUnstrung()) then begin
if (HaveBowstrings()) then begin
write(', have bowstrings');
if (IsInterfaceOpen()) then CloseInterface();
writeln(', attaching bowstrings');
MyProfile.React();
Exit(ATTACHSTRINGS);
end
else begin
Exit(GETBOWSTRINGS);
end;
end
else begin
Exit(GETUNSTRUNG);
end;
end;

{
if (HaveUnstrung()) then begin
write('have unstrung bows');
if (HaveBowstrings()) then begin
write(', have bowstrings');
if (IsInterfaceOpen()) then CloseInterface();
writeln(', attaching bowstrings');
Exit(ATTACHSTRINGS);
end
else begin
if (AllStrung()) then begin
writeln(', all strung');
Exit(BANKBOWS);
end
else begin
writeln(', getting bowstrings');
Exit(GETBOWSTRINGS);
end;
end
end
else begin
writeln('getting unstrung bows');
Exit(GETUNSTRUNG);
end;
}
end;

procedure StringScriptLoop();
var
curState : State;
begin
if not isLoggedIn() then Exit;

curState := GetStringState();
case curState of
BANKBOWS :
begin
writeln('stuck bank');
OpenBank();
QuickDeposit('inv');
repeat
sleep(50+random(100));
until(GetInvCount() = 0);
end;
ATTACHSTRINGS :
begin
writeln('stuck attach');
StringBows();
end;
GETUNSTRUNG :
begin
writeln('stuck get unstrung');
OpenBank();
WithdrawUnstrung();
end;
GETBOWSTRINGS :
begin
OpenBank();
WithdrawBowstrings();
end;
LOST :
begin
writeln('lost');
Terminate := True;
end;
end;
end;

begin
declarePlayer();
initAL();

//OS_Smart.Graphics.Clear;
loadVars();
addOnTerminate('freeGlobals');
//iGraphic := OS_Smart.Graphics();



mouseSpeed := 20;
loginPlayer(true);
//setCompass('N');
setAngle(ANGLE_HIGH);

if not (GetInvCount() = 0) then QuickDeposit('inv');
if (CuttingLogs) then begin
repeat
CutScriptLoop();
//iGraphic.Clear();
until (Terminate);
end;

if not (GetInvCount() = 0) then QuickDeposit('inv');
if (StringingBows) then begin
Terminate := False;
repeat
StringScriptLoop();
until(Terminate);
end
else writeln(terminateReason);

end.

tomjerry

2014-07-28 03:13:08

From: BMWxi
I don't have aerolib so I can't compile the script anyway, but I commented out all the smart graphics stuff so give this a try:

program RUNME;
{$DEFINE SPS}
//{$DEFINE SMART}

{$I AeroLib/AeroLib.Simba}
{$I AeroLib/Profiles.Simba}

Const
//------------------------User setup-------------------------//
// Color Setup
bankBoothFrame = 9610935;
bankBoothWindow = 11647686;

// Info Needed
//TODO: other logs but maple handling
LogToCut = 'Maple'; //willow, maple, yew, magic
//TODO: shortbow handling
WhatToCut = 'Long'; //short, long
CuttingLogs = true;
StringingBows = false;

// Player info
P_USERNAME = '';
P_PASSWORD = '';
P_NICKNAME = '';
P_PIN = '';
P_LAMPSKILL = SKILL_SLAYER;

// Break settings
fBREAK_IN = 300; // How long before we take a break? (minutes)
fBREAK_FOR = 60; // How long will we break for? (minutes)
fR_BREAK_IN = 17; // Random minutes to add/subtract from how long until we break
fR_BREAK_FOR = 18; // Random minutes to add/subjtract from break duraction

//----------------------End user setup----------------------//

Type State = (BANKUNSTRUNG, FLETCHLOGS, GETMATERIALS, GETKNIFE, GETLOGS, LOST, GETUNSTRUNG, GETBOWSTRINGS, ATTACHSTRINGS, BANKBOWS);

Var
log, knife,
unstrung,
bowstring,
strung : TItem;
timer_CS,
timer_SP : Timer;
XPMod,
one,two,
cutLoads,
cutLogsCount : Integer;
shortBox,
longBox : TBox;
Obj_Bank : TMSObject;
DTM_MMBank : TIntegerArray;
chatboxArray : Array of TChatOption;
Terminate : Boolean = False;
terminateReason : String = 'Error somewhere';
nameMod : String;
optionList : Array of TOptions;
enterAmountBmp,
fletchMenuBmp,
stringMenuBmp : Integer;
testPt : TPoint;
//iGraphic : TGraphics;
MyProfile : TPlayerProfile;

_UNSTRUNGPT,
_BOWSTRINGPT,
_LOGPT,
_STRUNGPT,
_BANKPT : TPoint;

procedure declarePlayer();
begin
Me.Name := P_USERNAME;
Me.Pass := P_PASSWORD;
Me.Pin := P_PIN;
Me.Nick := P_NICKNAME;
Me.LampSkill := P_LAMPSKILL;
Me.Active := True;
end;

procedure loadVars();
var
A,B : Integer;
begin
MyProfile := CreateProfile('me',18,140,190);
cutLogsCount := 0;
enterAmountBmp := BitmapFromString(97, 20, 'meJytmFFPGzEQhPP/3+kDdaUeT+' +
'1foGlFEHmiqmiRqvBvutzcDcPs2jlRohVy7LXxfje79mW6fZzE2uF' +
'PGBrsUYer42nssNGwji7yBvv4/QF/0fhPu9g/XFzfv1h8nW2qEGHn' +
'EYUR0NGxhQ+mjxGVK6Px6e7UYxL24eaRPbQIR3vUJy/F9ck5pi/rK' +
'KLre9s5/XXb+Io1dWVVUea5RUXxFxPZMGVqUAgZO8T+ERdNI4WP4V' +
'VWEQgZqrMiuvz2MxrYjMZLSro+6enDtXBMGDleQxRLgcxAb0Uu7J/' +
'lEUYyWSRlCCpRa+d0CzhUI9eMTiIqszt6SvHbE89hAoVKBY3oDyt5' +
'ljm4hHA4KSKm2OXNL9Pb2HqINHPJQWns0mdAg8QG2WRkWKZIKXq+H' +
'P9a9mVWmh0LosMpP01LLhXVWUSaRDY39GOINvKHMzY5oKTZpBAILR' +
'ApNMLvCQkOMEO0/Wgjfw2Z9cSMEo3REpHO0kXgbMd3ryZ/PT7lymP' +
'0EDWmID0HGQFQPLxK/WyxsSqoIovaGYrMlJI5l8VZyzJGkVyWfVly' +
'1MkgOkqONfzdEWWRWBVSFPwEMUAzZxDQTiLSTks9mDmgyNvEHIv1A' +
'5S65XZeJ3eW0HCi9UY15KUx56Y5v4wKK0NUnvKcxbbOYid7dFf6v3' +
'pYLIqBz0BFWxDpZjQc6ifiUg69dlmydq8/ioijJaJBW9me9dFaYWe' +
'EHf3qz6Etm8n5QiYarJ1lppwo6e+FSFfWnH0DIlywjQa/mlp6isqe' +
'dilSRPlo4zpEZKk6QNRTSA/RIBd6iNp86D+/jOyLyryTUtCqWwHdj' +
'BI/4GCIQEnlZLM0qIyIdwmdkkuiLjUoF1ZsDVqbD3RUIcgJfzXRnO' +
'd6Q+AQHXoXyFyCVEjGKoam6sJplwcdVTh28WjrJdN82LYrX57OkPn' +
'KnK/fdilCj/50oIgsQxVRj2Hr3DnZoEPmaYha5545uF8Z4dIH8TLR' +
'jIZe79WBb9kQIR4H2hmRUsIQpKIhlKByYe+JswzNKPUQcXoGDgfGF' +
'Sk2eMfXX2ba+rMMEVGKeJf5/OO36QQ9ba57WUXczFX6na3Hrb1+2+' +
'2l1Vk7ixdPf1HR/CNJW09/zUQTj6YbEYEw3AgkGppfOQGn9fptJSL' +
'754JWPvSBYLYb9sOv/wDMpT8X');
fletchMenuBmp := BitmapFromString(34, 20, 'meJyNVctOw0AM5P8PXFAQIqf+RC' +
'UglXoEUaGV+CGczHoYz7ZRqz04Xr/GnnXnU3v9uExLm96/46xyCl2' +
'OK5xNP58aDj6hf3y7xKE7fWcET01xzNOzL+35/Mv49F3lxV30PB2/' +
'ND6ijYnCbLVMILAMjTqyklKbyATlLdKzRdBKzGbUXEXERAbkIX8Rn' +
'AUQBWVedeDpjjFpkwt2jb9hCYEGmsU6oCmUM9BrBKQIoadIeyjVTC' +
'lXOgZ9Eo8AmSUEBC9ZEt0Vet+eBfmgs9Y+IKBiIZC9sMr8ASkpjU8' +
'GNyHMOAtOrZM8bdgKVSptjPCs3xJhQCVOVk68yhmdI1+xMge8YjEK' +
'jRvGsthArc//Q1ka3+k4bs6LFers4EKlXmEoh/NP2Uhb97RjNiake' +
'Dl+avc4Lwh8OxC4lBgTVdmPxvEEVGmVKGrjnr3ZgqLufFuJ1vOR7Y' +
'VgN9Y1cOn7skRjwHuykGO2c6wz07C9tbCxYF6NkHceOxeXttpX5aA' +
'kZ1iz7t6Sbil/EDuVWNIw+wM9tRRD');
stringMenuBmp := BitmapFromString(73, 26, 'meJylmN1rVFcUxSn4ZKTUKAhijY' +
'ogE8GStmIeNMXPl4hiURBaCgoFUdqHGvwWWzXiZHRwIj7E2JgoCZr' +
'UdFQIYqiU4r/gm3+M6941s7Jnn3NuRguLw7n3ngn7d9fe+5ybysx8' +
'ZWb+zrN/KvnEafDpa06GnsxxhMqTL6nrj1/YUbo88dxe2vsU5tfGZ' +
'//486+oLo1On7k/jTGukUmq5Vf3py7ce8z7mJy5O4FRFAw+hLLiGo' +
'smcYHid1AAQVSXx2f5VCHhPmXjxLIkWpNLlyTCKDRdRs1Kia4NTr0' +
'iF/DFiJuk0CRlGdHIyzF0sAjKcDkWATo05GQqLUPjiKDktLySuyxI' +
'1GhOSg0HLVogiyZZLqLdmv0XKgakZVly5kQZ2pO5aNhiZDZmIGN11' +
'RqNw50iv0ans/tNCtSRIwovHVqq0MKio1+cl/O5uFKABGl410w/Vl' +
'82H6vboiuuMsfiSNlAhFarv2kTDSC4dLDlvLhwM2N8+jqVjZ50rJ7' +
'5mLcX9RN513XsxBf9R6AWNGdik1dmgcuhgSuki24EhGqBRa1NvVIZ' +
'Cq2YjnmYtZRYhyz9dnHF0Z/Bterwj5g0fDRoltcmIdFk4qJ9w9Uds' +
'lGyUOotqQ5pOwlxohtc7+9lWvZ53z6O8ki52lKVsa7CBbbQ1EYcl0' +
'1CcYWdczDvk8VoC4zc4wLLgAYccnV0b1m2eklqZ7e9RXP7FFENv3x' +
'7+/l/oKglGuMCFxgDND7lltcOFJ1Sw9QdCCzIxqXfbIMwX9rRkYJa' +
'svpLqGABBCJwgQ5c4dY2XKueHTjt9Mupk4e/PxRq1+5dfdu/lg7s2' +
'wnt7+/H/a3f9liVuktaIGHZhpMDG3vX/HB8+a8DX2ECQMTf2bnMCU' +
'QoQ7wErIGt2kd06GLS0i+3tUGIv3zj2qPxB3/PTGIycreC+fUrF0i' +
'HSZvCD9vU8fPnEDCgHjz8rjq85tiJ5Sg6CK/CvjFo7fYdP9XnR969' +
'79mzbnPPZ9HTGhPSosE+NkwCAgdcipOWpQSLo7J/QeJLs8JKGIHIL' +
'109CECEjfYIis3d60ubuijMs8vu0qkXGRpdsweAaEJibOegtejWYO' +
'uOc30d8NwS3R04BwhykoXGHqKnbithn0G6FpxCq/U3qrVP5ioW93R' +
'9LyjIxmE7H3Uc3VsbVedfsXIlKsv+1p3f5FSUjlwhWnjq+J90iGQw' +
'j1+fD0NNKC27Mz3n9jU46N6JzQF7AAiP2UCr5keR9l37WOTGV15OV' +
'7BMTQzGocp4FIEsmuVyPjrjkJDqkJ+QkPwhvxQK6lRf6O28AU5QcV' +
'TI5fJTc/VJAbo4FSpF8Gjkesr+4/YO64WLfFG0SvCfitCjFKZFQ2C' +
'KUMIl24v6JyKs5juCdYpPK2ZPbPN7Vqo2dxn7W9XgkOkw6rSpszfu' +
'3Jx4Zr0jCzuJnVvvBE4uPpWhbEHEL+aiL7ZUuV4j2oh1zXLJxNR2Y' +
'CuOxpHIcUF4nxbKOquJFqvH1lpT15GqNxYkbViYqbSMbgcOTWLYQg' +
'sT1RFZuzO0vNMqzlrzkOPowgYbvo2Fr/i8qUbpQlLnmixzjGoOugy' +
'53K9q6W+HRaWcdN0m2kyijUWwrDglZJhdNmDnUXxZ8zu9uNzCbHTt' +
'0eZkai+L/oNXUGomHwDBKTja');
shortBox := toBox(80,390,140,460);
longBox := toBox(220,390,290,460);
Obj_Bank := toObj('BankBooth', ['ank B','nk bo','booth'], [createColEx(bankBoothFrame, 8, 0.75, 0.90)], [createColEx(bankBoothWindow, 5, 0.11, 3.38)]);

setLength(DTM_MMBank, 1);
DTM_MMBank[0] := DTMFromString('m6wAAAHic42ZgYGhiYmCYxQShq4C4BYq7gLgSiGuBuAaIO4A4DKg+Boi9odgAiE2A2BRKg7A+EBsC8cmjRxk+Aum3byH469MnKLilRhFMJ+qzM/wHqlMmEjMCMRORGAkAABAgIUc=');
knife.DTM := DTMFromString('mbQAAAHicY2VgYDjGzMCwG4hPA/ERKP0VKM7KyMDwEUj/A+JXQFxTXAwkGVEwO5BkQcNMGKqgAAD+bAlH');
bowstring.DTM := DTMFromString('mggAAAHicY2NgYPBlYWBwAmIXILYG4gAgtgTiDqBcDxA3AHE1EDdD2U1l4QwigoJAFiOcBmEOIMmKBTPBVaBiCAAAa5YGrg==');

case lowercase(LogToCut) of
'willow':
begin
//TODO
end;
'maple':
begin
log.DTM := DTMFromString('mggAAAHicY2NgYIhlYWAIBGI/IA4G4iggzgTiJ0C5Z0D8BojfAfEnIH4NxHlePAxdqQYMzYl6YJqBgRGMuYAkNswMxExImBGKIQAAJHUMDw==');
case lowercase(WhatToCut) of
'short':
begin
//TODO
end;
'long':
begin
unstrung.DTM := DTMFromString('mWAAAAHicY2FgYEhnYmDIAeIkKL0OKLYbiFcD8VYg3jZrApBkhGMOIImMGdEwCAAAlBMGfg==');
strung.DTM := DTMFromString('mggAAAHicY2NgYGhhYWBoAOIyIK4D4nYg7gXiP0C5/0D8BYrZGRkYuIB435LZQB4jBuYCkmxYMKZKCIYAAIz1CVE=');
end;
end;
end;
'yew':
begin
//TODO
end;
'magic':
begin
//TODO
end;
end;

timer_CS.start();
timer_SP.start();
setupBreak(fBREAK_IN, fBREAK_FOR, fR_BREAK_IN, fR_BREAK_FOR);
end;

procedure freeGlobals();
var
i : Integer;
begin
for i:=0 to high(DTM_MMBank) do
freeDTM(DTM_MMBank[i]);
freeBitmap(enterAmountBmp);
freeBitmap(fletchMenuBmp);
freeBitmap(stringMenuBmp);
freeDTM(log.DTM);
freeDTM(unstrung.DTM);
freeDTM(bowstring.DTM);
freeDTM(strung.DTM);
freeDTM(knife.DTM);
end;

procedure OpenBank();
var
T : Timer;
Pnt : TPoint;
i,c : Integer;
Slots : TIntegerArray;
begin
if not isLoggedIn() then
Exit;

BreakHandler();

if (Me.Pin <> '') then
inPin(Me.Pin);
if isBankOpen() then begin
Exit;
end;

if openBankPoint(_BANKPT, True) then Exit;

for i:=1 to 3 do
begin
if findMSObject(Obj_Bank, 5, point(MSCX,MSCY), Pnt) then begin
break;
end;
if (i=3) then
if not findMSObject(Obj_Bank, 5, point(MSCX,MSCY), Pnt) then
Exit;
end;

if not openBankPoint(Pnt, True) then begin
Exit;
end
else begin
_BANKPT.X := Pnt.x;
_BANKPT.Y := Pnt.y;
Exit;
end;
end;

function HaveKnife() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
knifeFound : Boolean;
begin
itemsChecked := 0;
invCount := GetInvCount();
knifeFound := False;

for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if (knife.FindIn(slotBox, itemPt)) then begin
knifeFound := True;
if not (i = 1) then begin
MoveItemTo(i, 1);
end;
end
else begin
if (knife.FindIn(slotBox, itemPt)) then begin
knifeFound := True;
if not (i = 1) then begin
MoveItemTo(i, 1);
end;
end;
end;
end;
if (itemsChecked = invCount) then break;
if (knifeFound) then break;
end;
if (knifeFound) then Exit(True);
Exit(False);
end;

function HaveLogs() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
logFound : Boolean;
begin
itemsChecked := 0;
invCount := GetInvCount();
logFound := False;

for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if (log.FindIn(slotBox, itemPt)) then begin
logFound := True;
end;
end;
if (itemsChecked = invCount) then break;
if (logFound) then break;
end;

if (logFound) then Exit(True);
Exit(False);
end;

function WithdrawKnife() : Boolean;
var
knifePt,
itemPt : TPoint;
label
WDKnife, Start;
begin
GoTo Start;
WDKnife:
WithdrawPointEx(knifePt, 1, ['nife', 'ife']);
repeat
sleep(50);
if (MyProfile.ActAhead()) then begin
Break;
end;
until(GetInvCount() = 1);
Exit(True);

Start:
if (IsBankOpen()) then begin
if (GetInvCount() > 0) then QuickDeposit('inv');
if (FindDTM(knife.DTM, knifePt.x, knifePt.y, MSX1,MSY1,MSX2,MSY2)) then begin
GoTo WDKnife;
end
else begin
if (ScrollToItemDTM(knife.DTM, knifePt)) then begin
repeat
sleep(150);
if (MyProfile.ActAhead()) then begin
Break;
end;
until(GetInvCount() = 1);
Exit(True);

end
else begin
Terminate := True;
terminateReason := 'No knife found';
Exit(False);
end;
end;
end
else begin
Exit(False);
end;
end;

function WithdrawLogs() : Boolean;
var
logPt,
itemPt : TPoint;
label
WDLog, Start;
begin
GoTo Start;
WDLog:
WithdrawPointEx(logPt, 27, ['log', 'og']);
sleep(200+random(100));
repeat
sleep(250);
if (MyProfile.ActAhead()) then begin
Break;
end;
if not (FindDTM(log.DTM, logPt.x, logPt.y, MSX1,MSY1,MSX2,MSY2)) then break;
until(GetInvCount() = 28);
Exit(True);

Start:
if not (HaveKnife()) then Exit(False);
if (IsBankOpen()) then begin
if (FindDTM(log.DTM, logPt.x, logPt.y, MSX1,MSY1,MSX2,MSY2)) then begin
GoTo WDLog;
end
else begin
if (ScrollToItemDTM(log.DTM, logPt)) then begin
GoTo WDLog;
end
else begin
Terminate := True;
terminateReason := 'No logs found';
Exit(False);
end;
end;
end
else begin
Exit(False);
end;
end;

function AllUnstrung(): Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
begin
itemsChecked := 0;
invCount := GetInvCount();

for i:= 2 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if not (unstrung.FindIn(slotBox, itemPt)) then begin
Exit(False);
end;
end;
if (itemsChecked = invCount - 1) then break;
end;
if (itemsChecked = 0) then Exit(False);
Exit(True);
end;

procedure DepositUnstrung();
var
unstrungCount,
i, randomSlot : Integer;
itemPt,
logPt : TPoint;
unstrungSlots : TIntegerArray;
begin
if (IsBankOpen()) then begin
unstrungSlots := unstrung.GetSlots();
unstrungCount := High(unstrungSlots);
cutLogsCount := cutLogsCount + (unstrungCount + 1);
if not (unstrungCount > 0) then begin
Exit;
end;
DepositAllFrom(2);
end;
end;

procedure CutLogs();
var
logsLeft,
randomSlot : Integer;
itemPt : TPoint;
logSlots : TIntegerArray;
label
FletchMenu;
begin
if (ItemInSlot(1) and knife.FindIn(InvBox(1), itemPt)) then begin
if (InteractSlot(1, MOUSE_LEFT)) then begin
repeat
wait(50+random(50));
if (MyProfile.ActAhead()) then begin
Break;
end;
until (SlotActivated(1));
end;
end
else begin
Exit;
end;

logSlots := log.GetSlots();
logsLeft := High(logSlots);
case random(100) of
0..75: begin
if (ItemInSlot(2) and log.FindIn(InvBox(2), itemPt)) then begin
InteractSlot(2, MOUSE_LEFT);
end
else begin
InteractSlot(logSlots[1], MOUSE_LEFT)
end;
end;
75..97: begin
if (ItemInSlot(5) and log.FindIn(InvBox(5), itemPt)) then begin
InteractSlot(5, MOUSE_LEFT);
end
else begin
InteractSlot(logSlots[1], MOUSE_LEFT)
end;
end;
98..100: begin
randomSlot := random(logsLeft);
if (ItemInSlot(randomSlot) and log.FindIn(InvBox(randomSlot), itemPt)) then begin
InteractSlot(randomSlot, MOUSE_LEFT);
end
else begin
InteractSlot(logSlots[1], MOUSE_LEFT)
end;
end;
end;

if (WaitChatChange()) then begin
MyProfile.React();

FletchMenu:

case lowercase(WhatToCut) of
'short':
begin
MouseBox(shortBox, MOUSE_RIGHT);
if waitOptionMulti(['Make X', 'e X', 'X'], 1000) then begin
if (WaitChatChange()) then begin
sleep(175+random(350));
MyProfile.React();
TypeSend(IntToStr(33));
end
else begin
if (FindBitmapToleranceIn(enterAmountBmp, one, two, MCX1, MCY1, MCX2, MCY2, 8)) then begin
MyProfile.React();
TypeSend(IntToStr(33));
end;
end;
end
else begin
Exit;
end;
end;
'long':
begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make X', 'e X', 'X'], 1000) then begin
if (WaitChatChange()) then begin
MyProfile.React();
TypeSend(IntToStr(33));
end
else begin
if (FindBitmapToleranceIn(enterAmountBmp, one, two, MCX1, MCY1, MCX2, MCY2, 8)) then begin
MyProfile.React();
TypeSend(IntToStr(33));
end;
end;
end
else begin
Exit;
end;
end;
end;
end
else begin
if (FindBitmapToleranceIn(fletchMenuBmp, one, two, MCX1, MCY1, MCX2, MCY2, 8)) then GoTo FletchMenu;
MyProfile.React();
end;

sleep(150+random(150));
if (MyProfile.ActAhead()) then begin
MyProfile.MoveMouseSlow(_BANKPT);
end;

repeat
//iGraphic.DrawBox(MSX1,0,MSX2,50,true,clSilver);
//iGraphic.__Bmp.DrawText(('Time Running: ' + TimeRunning()),'UpChars07',Point(10,10),108750);
//iGraphic.__Bmp.DrawText(('Cut Logs: ' + IntToStrEx(cutLogsCount)),'UpChars07',Point(30,30),108750);
wait(100+random(100));
if (LevelUp() or ClickToContinue()) then break;
until(AllUnstrung());
MyProfile.React();
end;

function HaveUnstrung() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
unstrungFound : Boolean;
begin
itemsChecked := 0;
invCount := GetInvCount();
unstrungFound := False;

for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if (unstrung.FindIn(slotBox, itemPt)) then begin
unstrungFound := True;
end;
end;
if (itemsChecked = invCount) then break;
if (unstrungFound) then break;
end;

if (unstrungFound) then Exit(True);
Exit(False);
end;

function HaveBowstrings() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
bowstringFound : Boolean;
begin
itemsChecked := 0;
invCount := GetInvCount();
bowstringFound := False;

for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if (bowstring.FindIn(slotBox, itemPt)) then begin
bowstringFound := True;
end;
end;
if (itemsChecked = invCount) then break;
if (bowstringFound) then break;
end;

if (bowstringFound) then Exit(True);
Exit(False);
end;

function WithdrawUnstrung() : Boolean;
var
i : Integer;
unstrungPt,
itemPt : TPoint;
unstrungPts : TPointArray;
label
WDUnstrung, Start;
begin
GoTo Start;
WDUnstrung:
if (WithdrawPointEx(_UNSTRUNGPT, 14, ['u', 'u)','(u)', '(', '(u', ')'])) then begin
//sleep(200+random(100));
repeat
sleep(50);
until(HaveUnstrung());
Exit(True);
end
else begin
if (High(unstrungPts) >= 1) then begin
for i:= 0 to High(unstrungPts) do begin
if (WithdrawPointEx(unstrungPts[i], 14, ['u', 'u)','(u)', '(', '(u', ')'])) then begin
result := True;
_UNSTRUNGPT.X := unstrungPts[i].x;
_UNSTRUNGPT.Y := unstrungPts[i].y;
//sleep(200+random(100));
repeat
sleep(50);
until(HaveUnstrung());
Exit;
end;
end;
end;
end;

Start:
if (IsBankOpen()) then begin
if (FindDTMs(unstrung.DTM, unstrungPts, MSX1,MSY1,MSX2,MSY2)) then begin
GoTo WDUnstrung;
end
else begin
if (ScrollToItemDTM(unstrung.DTM, unstrungPt)) then begin
GoTo WDUnstrung;
end
else begin
Terminate := True;
terminateReason := 'No unstrung bows found';
Exit(False);
end;
end;
end
else begin
Exit(False);
end;
end;

function WithdrawBowstrings() : Boolean;
var
bowstringPt,
itemPt : TPoint;
label
WDBowstring, Start;
begin
GoTo Start;
WDBowstring:
WithdrawPointEx(bowstringPt, 14, ['string', 'ow string']);
sleep(200+random(100));
repeat
sleep(50);
if not (FindDTM(bowstring.DTM, bowstringPt.x, bowstringPt.y, MSX1,MSY1,MSX2,MSY2)) then break;
until(GetInvCount() = 28);
Exit(True);

Start:
if (IsBankOpen()) then begin
if (FindDTM(bowstring.DTM, bowstringPt.x, bowstringPt.y, MSX1,MSY1,MSX2,MSY2)) then begin
GoTo WDBowstring;
end
else begin
if (ScrollToItemDTM(bowstring.DTM, bowstringPt)) then begin
GoTo WDBowstring;
end
else begin
Terminate := True;
terminateReason := 'No bow strings found';
Exit(False);
end;
end;
end
else begin
Exit(False);
end;
end;


function AllStrung() : Boolean;
var
i,
invCount,
itemsChecked : Integer;
slotBox : TBox;
itemPt : TPoint;
begin
itemsChecked := 0;
invCount := GetInvCount();
if (invCount = 0) then Exit(False);
for i:= 1 to 28 do begin
if (ItemInSlot(i)) then begin
itemsChecked := itemsChecked + 1;
slotBox := InvBox(i);
if not (strung.FindIn(slotBox, itemPt)) then begin
Exit(False);
end;
end;
if (itemsChecked = invCount) then break;
end;
if (itemsChecked = invCount) then Exit(True);
Exit(False);
end;

function ClickPieces(First, Second: Integer) : Boolean;
var
T : Timer;
itemPt : TPoint;
attempts : Integer;
label
Attempt;
begin
attempts := 0;
Attempt:

attempts := attempts + 1;
if (attempts = 5) then Exit(False);
sleep(100+random(150));
if (ItemInSlot(First) and unstrung.FindIn(InvBox(First), itemPt)) then begin
writeln('found unstrung specified');
if (ItemInSlot(Second) and bowstring.FindIn(InvBox(Second), itemPt)) then begin
writeln('found bowstring specified');
InteractSlot(First, MOUSE_LEFT);

T.Start();
repeat
wait(50+random(150));
until (SlotActivated(First) or (T.TimeElapsed() > 2000));
if not (SlotActivated(First)) then GoTo Attempt;

wait(75+random(200));
InteractSlot(Second, MOUSE_LEFT);

T.Start();
repeat
wait(50+random(150));
until(FindBitmapToleranceIn(stringMenuBmp, one, two, MCX1, MCY1, MCX2, MCY2, 11) or (T.TimeElapsed() > 2000));
if (FindBitmapToleranceIn(stringMenuBmp, one, two, MCX1, MCY1, MCX2, MCY2, 11)) then Exit(True);

end
else GoTo Attempt;
end
else GoTo Attempt;
end;

//14-15, 14-18, 13-17, 1-14, rand-rand
procedure StringBows();
var
unstrungLeft,
bowstringLeft,
randomUnstrungSlot,
randomBowstringSlot, i: Integer;
itemPt : TPoint;
unstrungSlots,
bowstringSlots : TIntegerArray;
label
StringMenu;
begin
unstrungSlots := unstrung.GetSlots();
unstrungLeft := High(unstrungSlots);
bowstringSlots := bowstring.GetSlots();
bowstringLeft := High(bowstringSlots);
if not (unstrungLeft >= 0) then Exit;
if not (bowstringLeft >= 0) then Exit;

case random(100) of
0..69: begin
writeln('0-69 wrong');
if (ItemInSlot(14) and unstrung.FindIn(InvBox(14), itemPt)) then begin
if (ItemInSlot(15) and bowstring.FindIn(InvBox(15), itemPt)) then begin
if(ClickPieces(14, 15)) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end
else begin
if (ClickPieces(14, bowstringSlots[0])) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end;
end
else begin
if (ClickPieces(unstrungSlots[0], bowstringSlots[0])) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end;
end;
70..100: begin
writeln('70-84 wrong');
if (ItemInSlot(14) and unstrung.FindIn(InvBox(14), itemPt)) then begin
if (ItemInSlot(18) and bowstring.FindIn(InvBox(18), itemPt)) then begin
if (ClickPieces(14, 18)) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end
else begin
if (ClickPieces(14, bowstringSlots[0])) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end;
end
else begin
if (ClickPieces(unstrungSlots[0], bowstringSlots[0])) then begin
MouseBox(longBox, MOUSE_RIGHT);
if waitOptionMulti(['Make All', 'e All', 'All'], 1000) then begin

end
else begin
Exit;
end;
end
else begin

end;
end;
end;
end;

repeat
wait(100+random(100));
if (LevelUp() or ClickToContinue()) then break;
for i:=1 to 28 do begin
if (SlotActivated(i)) then InteractSlot(i, MOUSE_LEFT);
end;
until(AllStrung());
end;

function GetCutState(): State;
begin
result := LOST;
if not isLoggedIn() then
Exit;

if (HaveKnife()) then begin
write('have knife');
if (HaveLogs()) then begin
write(', have logs');
writeln(', fletching logs');
if (IsInterfaceOpen()) then CloseInterface();
MyProfile.React();
Exit(FLETCHLOGS);
end
else begin
if (AllUnstrung()) then begin
writeln(', depositing unstrung');
MyProfile.React();
Exit(BANKUNSTRUNG);
end
else begin
writeln(', getting logs');
Exit(GETLOGS);
end;
end;
end
else Exit(GETKNIFE);

end;

procedure CutScriptLoop();
var
curState : State;
begin
if not isLoggedIn() then Exit;

curState := GetCutState();
case curState of
BANKUNSTRUNG :
begin
OpenBank();
DepositUnstrung();
end;
FLETCHLOGS : CutLogs();
GETKNIFE :
begin
OpenBank();
WithdrawKnife();
end;
GETLOGS :
begin
OpenBank();
WithdrawLogs();
end;
LOST :
begin
Terminate := True;
end;
end;
end;

function GetStringState(): State;
begin
result := LOST;
if not isLoggedIn() then
Exit;


if (AllStrung()) then begin
MyProfile.React();
Exit(BANKBOWS);
end
else begin
if (HaveUnstrung()) then begin
if (HaveBowstrings()) then begin
write(', have bowstrings');
if (IsInterfaceOpen()) then CloseInterface();
writeln(', attaching bowstrings');
MyProfile.React();
Exit(ATTACHSTRINGS);
end
else begin
Exit(GETBOWSTRINGS);
end;
end
else begin
Exit(GETUNSTRUNG);
end;
end;

{
if (HaveUnstrung()) then begin
write('have unstrung bows');
if (HaveBowstrings()) then begin
write(', have bowstrings');
if (IsInterfaceOpen()) then CloseInterface();
writeln(', attaching bowstrings');
Exit(ATTACHSTRINGS);
end
else begin
if (AllStrung()) then begin
writeln(', all strung');
Exit(BANKBOWS);
end
else begin
writeln(', getting bowstrings');
Exit(GETBOWSTRINGS);
end;
end
end
else begin
writeln('getting unstrung bows');
Exit(GETUNSTRUNG);
end;
}
end;

procedure StringScriptLoop();
var
curState : State;
begin
if not isLoggedIn() then Exit;

curState := GetStringState();
case curState of
BANKBOWS :
begin
writeln('stuck bank');
OpenBank();
QuickDeposit('inv');
repeat
sleep(50+random(100));
until(GetInvCount() = 0);
end;
ATTACHSTRINGS :
begin
writeln('stuck attach');
StringBows();
end;
GETUNSTRUNG :
begin
writeln('stuck get unstrung');
OpenBank();
WithdrawUnstrung();
end;
GETBOWSTRINGS :
begin
OpenBank();
WithdrawBowstrings();
end;
LOST :
begin
writeln('lost');
Terminate := True;
end;
end;
end;

begin
declarePlayer();
initAL();

//OS_Smart.Graphics.Clear;
loadVars();
addOnTerminate('freeGlobals');
//iGraphic := OS_Smart.Graphics();



mouseSpeed := 20;
loginPlayer(true);
//setCompass('N');
setAngle(ANGLE_HIGH);

if not (GetInvCount() = 0) then QuickDeposit('inv');
if (CuttingLogs) then begin
repeat
CutScriptLoop();
//iGraphic.Clear();
until (Terminate);
end;

if not (GetInvCount() = 0) then QuickDeposit('inv');
if (StringingBows) then begin
Terminate := False;
repeat
StringScriptLoop();
until(Terminate);
end
else writeln(terminateReason);

end.


This works but it causes the script not to click enter. For example when withdrawing logs, the scripts enters withdraw x and types 33 but then it gets stuck there. it does not hit enter. Can someone help please.

tomjerry

2014-07-28 17:08:36

help please?

Ian

2014-07-28 17:21:35

From: tomjerry
This works but it causes the script not to click enter. For example when withdrawing logs, the scripts enters withdraw x and types 33 but then it gets stuck there. it does not hit enter. Can someone help please.


I'm not sure why that would happen, sorry. It's possible that Simba cannot type the enter key the same way it can type the other characters but I don't know. I don't usually use Simba without SMART

tomjerry

2014-07-28 19:22:05

can somebody else? Its able to run in the browser now but the script is unable to hit enter ? please someone help?

tomjerry

2014-07-29 13:25:20

helppppppp somebody please

Flight

2014-07-29 21:00:32

This may be a problem with how SMART runs in AL itself as I've never tried running any scripts on anything other than SMART. If I'm ever able to even load the OSRS client in the browser I might give it a whirl and run one of my scripts, testing your 'hit enter' problem.

May I ask why it is you've decided to run a script in the normal browser as opposed to SMART?

tomjerry

2014-07-30 00:43:07

SMART is detectable. I botted tons using the browser and didnt get banned. I bot using SMART and i get banned. tried this with 5 accounts. and flight can you run the flecher script i mentioned in this thread. instead of your own script thanks very much

Flight

2014-07-30 01:52:32

You might have simply been running a script in a targeted area, such as Pest Control. That place is a very dangerous place to bot, manual bans occur frequently there.

tomjerry

2014-07-30 09:37:43

From: Flight
You might have simply been running a script in a targeted area, such as Pest Control. That place is a very dangerous place to bot, manual bans occur frequently there.


So will you help me get this script to run in the browser? Since you made aerolib, you are the best person who could figure it out maybe?

Flight

2014-07-30 10:01:28

From: tomjerry
So will you help me get this script to run in the browser? Since you made aerolib, you are the best person who could figure it out maybe?


Ok so I've been trying multiple times today to load OSRS via the browser and I'm still unable to (I believe it's just terrible internet, I'm not sure) but I'm nearly ready to release the next revision of AeroLib and I remember making some changes to the withdrawing in Bank.simba. It may change nothing or it may fix the issue you're having…. or it may just be the script itself.

Have you ever tried running the script via SMART? If so did it perform correctly then?

Edit:
Just tried it with SMART disabled but still acting as the client, I see for myself it's a problem in the include rather than the script. Let me look over this for a while.

Edit2:
Fixed. Thanks very much for bringing this to my attention. I think I'll release this revision of AL as it has many bug fixes and couple new powerful tools for scripters. I'll try to tonight because I've plans tomorrow and I won't be at home.

Turpinator

2014-07-30 11:38:44

From: tomjerry
SMART is detectable. I botted tons using the browser and didnt get banned. I bot using SMART and i get banned. tried this with 5 accounts. and flight can you run the flecher script i mentioned in this thread. instead of your own script thanks very much


Please tell this to the hundreds of users that have botted thousands of hours successfully without bans on SMART. (im not saying smart isnt detectable or that jagex isnt detecting it, but they arent banning because of it) Tell this to the people who have gotten countless 99s (as well as a few recorded max/comp capes) with simba. whats your record so far, @Ashaman88;? what makes you think that jagex cant just add a current process checker to their jaclib.dll/so? bam, they can see you running simba but youre in a browser. what do you do now? run RS in a vm and then run simba on the host computer? not a bad idea actually.
Maybe you got banned because the script was poorly coded? maybe jagex bans by IP? maybe you transferred millions of GP to the accounts and linked them together? maybe you used the same registration email for them? maybe you paid for membership with the same credit card?

If you want to put on your tinfoil hat, do it properly. VPN each account. Use a different credit card (with different name) for each one's membership. no account interaction. use VMs for simba, then another VM for the RS client. And dont forget to fill that second level VM with obscure programs and browsing data. give the computer realistic hardware. and i3 with 1 core and 1gb ram? they dont make those, sir. That VM's network adapter? emulated. Guess that VM idea is out of here. Oh, heres one. Build a computer, then connect to it remotely, run runescape on it and have the local computer running simba, doing the botting. Remote desktop? oh look theres a TSCLIENT computer on the network. Remote desktop specific display driver/adapter? Yup. Lets try VNC? (i dont know much about vnc's workings, so this may work, but im sure it would still be identifiable)

Moral? If jagex wanted to determine you were botting (even without smart) and you took every single precaution you could take… they could still probably find out if you are.
rant somewhat over.

tomjerry

2014-07-30 17:17:38

turp, you need to calm down mate. I got flight to fix a bug in his AeroLib and he is thankful for it and i am thankful to him. Your rant does nothing constructive in this thread. I get your point but you could have said what you meant to say in 1 line. Relax please.

To Flight: I am glad you found the problem. Looking forward to new version of AL tonight :). Thank you

Flight

2014-07-30 19:36:22

From: tomjerry
To Flight: I am glad you found the problem. Looking forward to new version of AL tonight :). Thank you


V1.0 Rev0.3 is already release here.

Hoodz

2014-07-30 19:49:10

From: Turpinator
whats your record so far, @Ashaman88;


:')

Ian

2014-07-30 19:58:00

From: Turpinator
what do you do now? run RS in a vm and then run simba on the host computer? not a bad idea actually


Isn't it possible to detect that you're in a VM though? I guess it may not be against the rules, but it might make Jagex suspicious enough to ban. Not that I think they'd have any intention of doing this though.

tomjerry

2014-07-30 20:44:34

the script puts out this error with new aero lib now.
Exception in Script: Unknown declaration "ScrollToItemDTM" at line 347, column 11

Anyone know how to fix this?

Turpinator

2014-07-30 20:54:38

From: tomjerry
turp, you need to calm down mate. I got flight to fix a bug in his AeroLib and he is thankful for it and i am thankful to him. Your rant does nothing constructive in this thread. I get your point but you could have said what you meant to say in 1 line. Relax please.


but you speak that SMART is the reason you have been banned. All im saying is that you have no idea that it actually was the reason, there are plenty of other ways that jagex could have determined you could have been botting/flagged you.


From: BMWxi
Isn't it possible to detect that you're in a VM though? I guess it may not be against the rules, but it might make Jagex suspicious enough to ban. Not that I think they'd have any intention of doing this though.

oh yes im sure they could detect is just as easily as they could your OS. see
use VMs for simba, then another VM for the RS client. And dont forget to fill that second level VM with obscure programs and browsing data. give the computer realistic hardware. and i3 with 1 core and 1gb ram? they dont make those, sir. That VM's network adapter? emulated. Guess that VM idea is out of here. Oh, heres one.

Flight

2014-07-30 22:10:58

From: tomjerry
the script puts out this error with new aero lib now.
Exception in Script: Unknown declaration "ScrollToItemDTM" at line 347, column 11

Anyone know how to fix this?


I just replied to your PM with the edited working version of this script. The problem is I changed the function 'ScrollToItemDTM' into 'ScrollToItem' and it now accepts a TItem rather than a DTM like before. You'll see the difference in the example script I sent to you. This update will also cause compile errors for my previous AL scripts so tonight when I return I'll quickly update those to compile and run with the new version.

From: Turpinator
but you speak that SMART is the reason you have been banned. All im saying is that you have no idea that it actually was the reason, there are plenty of other ways that jagex could have determined you could have been botting/flagged you.


While I wouldn't have worded it quite the same I agree with Turpinator, SMART surely is not the reason you were banned. There really are numerous ways you were banned, my guess is it was a manual ban because, I assume, you were running this script at the Pest Control bank which is notorious for random-dodging bots. It's not only obvious to normal players but also to Jagex mods. I'd never recommend running scripts there, take your chance with the random events and keep your account safe.

Ian

2014-07-30 22:38:38

From: Turpinator

oh yes im sure they could detect is just as easily as they could your OS. see


Whoops, forgot to read the 2nd paragraph :redface:

tomjerry

2014-07-31 20:09:17

The script works fine on my computer but i tried the same exact setup on a older computer and the mouse moves to left top corner of the client and sticks there continuously. Any ideas? help?