Untitled diff

Created Diff never expires
45 removals
292 lines
45 additions
292 lines
program SWFletcher;
program SWFletcher;
{$DEFINE SMART}
{$DEFINE SMART}
{$I SRL-6/SRL.simba}
{$I SRL-6/SRL.simba}
var
var
resetup = true;
resetup = true;
x, y, img: integer;
x, y, img_name, amountCut: integer;
_img: string;
_img_name: string;
procedure declarePlayers();
procedure declarePlayers();
begin
begin
players.setup([''], '');
players.setup([''], '');
currentPlayer := 0;
currentPlayer := 0;
end;
end;
function waitForInterface: Boolean;
function waitForInterface: Boolean;
var
var
p: TPoint;
p: TPoint;
t: Integer;
t: Integer;
begin
begin
t := getSystemTime() + 5000;
t := getSystemTime() + 5000;
repeat
repeat
wait(100);
wait(100);
until ((countColor(2070783, 465, 279, 497, 293) = 54) or (countColor(10987173, 352, 159, 385, 181) = 3) or (getSystemTime() >= t));
until ((countColor(2070783, 465, 279, 497, 293) = 54) or (countColor(10987173, 352, 159, 385, 181) = 3) or (getSystemTime() >= t));
result := (countColor(2070783, 465, 279, 497, 293) = 54) or (countColor(10987173, 352, 159, 385, 181) = 3);
result := (countColor(2070783, 465, 279, 497, 293) = 54) or (countColor(10987173, 352, 159, 385, 181) = 3);
end;
end;
function waitForCraftInterface: Boolean;
function waitForCraftInterface: Boolean;
var
var
p: TPoint;
p: TPoint;
t: Integer;
t: Integer;
begin
begin
t := getSystemTime() + 5000;
t := getSystemTime() + 5000;
repeat
repeat
wait(100);
wait(100);
until ((countColor(10987173, 352, 159, 385, 181) = 3) or (getSystemTime() >= t));
until ((countColor(10987173, 352, 159, 385, 181) = 3) or (getSystemTime() >= t));
result := (countColor(10987173, 352, 159, 385, 181) = 3);
result := (countColor(10987173, 352, 159, 385, 181) = 3);
end;
end;
function waitForUnlock: Boolean;
function waitForUnlock: Boolean;
var
var
p: TPoint;
p: TPoint;
t: Integer;
t: Integer;
begin
begin
t := getSystemTime() + 5000;
t := getSystemTime() + 5000;
repeat
repeat
wait(100);
wait(100);
until ((countColor(13553357, IntToBox(866, 275, 933, 297)) <> 4) or (getSystemTime() >= t));
until ((countColor(13553357, IntToBox(866, 275, 933, 297)) <> 4) or (getSystemTime() >= t));
result := (countColor(13553357, IntToBox(866, 275, 933, 297)) <> 4);
result := (countColor(13553357, IntToBox(866, 275, 933, 297)) <> 4);
sleep(300 + random(300));
sleep(300 + random(300));
end;
end;
function getInterface: string;
function getInterface: string;
begin
begin
if countColor(2070783, 465, 279, 497, 293) = 54 then
if countColor(2070783, 465, 279, 497, 293) = 54 then
result := 'knife';
result := 'knife';
if countColor(10987173, 352, 159, 385, 181) = 3 then
if countColor(10987173, 352, 159, 385, 181) = 3 then
result := 'craft';
result := 'craft';
end;
end;
function findBankChest(hover: boolean): boolean;
function findBankChest(hover: boolean): boolean;
var
var
arP, arAP: TPointArray;
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
P: TPoint;
X, Y, Z: Extended;
X, Y, Z: Extended;
begin
begin
tmpCTS := getToleranceSpeed();
tmpCTS := getToleranceSpeed();
setColorToleranceSpeed(2);
setColorToleranceSpeed(2);
settolerancespeed2modifiers(0.43, 0.36);
settolerancespeed2modifiers(0.43, 0.82);
if not (FindColorsTolerance(arP, 1449251, mainscreen.getBounds(), 5)) then
if not (FindColorsTolerance(arP, 1449508, mainscreen.getBounds(), 5)) then
begin
begin
setColorToleranceSpeed(tmpCTS);
setColorToleranceSpeed(tmpCTS);
settolerancespeed2modifiers(0.2, 0.2);
settolerancespeed2modifiers(0.2, 0.2);
if (bankScreen.isOpen()) then
if (bankScreen.isOpen()) then
bankScreen.close();
bankScreen.close();
sleep(60 + random(140));
sleep(60 + random(140));
players[currentPlayer].logout();
Exit;
Exit;
end;
end;
arC := GetColors(arP);
arC := GetColors(arP);
arUC := arC;
arUC := arC;
ClearSameIntegers(arUC);
ClearSameIntegers(arUC);
arL := High(arUC);
arL := High(arUC);
arL2 := High(arC);
arL2 := High(arC);
for i := 0 to arL do
for i := 0 to arL do
begin
begin
ColorToXYZ(arC[i], X, Y, Z);
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 0.66) and (X <= 2.23) and (Y >= 0.67) and (Y <= 2.26) and (Z >= 0.50) and (Z <= 1.56) then
if (X >= 0.66) and (X <= 2.23) and (Y >= 0.67) and (Y <= 2.26) and (Z >= 0.50) and (Z <= 1.56) then
begin
begin
for j := 0 to arL2 do
for j := 0 to arL2 do
begin
begin
if (arUC[i] = arC[j]) then
if (arUC[i] = arC[j]) then
begin
begin
SetLength(arAP, Length(arAP) + 1);
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
end;
end;
end;
end;
SortTPAFrom(arAP, Point(423, 248));
SortTPAFrom(arAP, Point(479, 340));
ararP := SplitTPAEx(arAP, 10, 10);
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
arL := High(ararP);
for i := 0 to arL do
for i := 0 to arL do
begin
begin
if (Length(ararP[i]) < 10) then
if (Length(ararP[i]) < 10) then
Continue;
Continue;
P := MiddleTPA(ararP[i]);
P := MiddleTPA(ararP[i]);
smartImage.drawBox(IntToBox(P.x, P.y, P.x + 35, P.y + 35), false, clLime);
smartImage.drawBox(IntToBox(P.x, P.y, P.x + 10, P.y + 10), false, clLime);
Mouse(Point(P.x + random(35), P.y + random(35)), mouse_Move, MOUSE_HUMAN);
Mouse(Point(P.x + random(10), P.y + random(10)), mouse_Move, MOUSE_HUMAN);
smartImage.clearArea(IntToBox(P.x, P.y, P.x + 35, P.y + 35));
smartImage.clearArea(IntToBox(P.x, P.y, P.x + 10, P.y + 10));
Wait(100 + Random(100));
Wait(100 + Random(100));
if (isMouseOverText(['Bank'], 1000)) then
if (isMouseOverText(['Bank'], 1000)) then
begin
begin
Result := True;
Result := True;
if not hover then
if not hover then
fastClick(mouse_Left);
fastClick(mouse_Left);
Break;
Break;
end;
end;
end;
end;
setColorToleranceSpeed(tmpCTS);
setColorToleranceSpeed(tmpCTS);
settolerancespeed2modifiers(0.2, 0.2);
settolerancespeed2modifiers(0.2, 0.2);
if (i = arL + 1) then
if (i = arL + 1) then
begin
begin
if (bankScreen.isOpen()) then
if (bankScreen.isOpen()) then
bankScreen.close();
bankScreen.close();
sleep(60 + random(140));
sleep(60 + random(140));
Exit;
Exit;
end;
end;
end;
end;
procedure randomGameTabCommon();
procedure randomGameTabCommon();
var
var
allTabs, commonTabs, t: Integer;
allTabs, commonTabs, t: Integer;
TIA: TIntegerArray;
TIA: TIntegerArray;
begin
begin
if not (isLoggedIn()) then
if not (isLoggedIn()) then
exit();
exit();
t := gameTabs.getActiveTab();
t := gameTabs.getActiveTab();
TIA := [TAB_STATS, TAB_BACKPACK, TAB_EQUIPMENT, TAB_FRIENDS, TAB_MAGIC];
TIA := [TAB_STATS, TAB_BACKPACK, TAB_EQUIPMENT, TAB_FRIENDS, TAB_MAGIC];
repeat
repeat
commonTabs := TIA[random(length(TIA))];
commonTabs := TIA[random(length(TIA))];
until(commonTabs <> t);
until(commonTabs <> t);
gameTabs.openTab(commonTabs);
gameTabs.openTab(commonTabs);
wait(randomRange(300, 600));
wait(randomRange(300, 600));
gameTabs.openTab(t);
gameTabs.openTab(t);
end
end;
procedure ProgressReport; //Thanks slayr288!
var
T1, T2, T3: Integer;
XPPerHour, XPGain, TimeGone, LogsPerHour: Extended
begin
ClearDebug;
TimeGone := (GetTimeRunning/1000);
XPGain := 58.3 * amountCut;
XPPerhour := (3600*(XPGain))/((TimeGone));
LogsPerHour := (3600*(amountCut))/((TimeGone));
ConvertTime(GetTimeRunning, T1, T2, T3);
begin
smartImage.clearArea(IntToBox(739, 484, 954, 554));
smartImage.DrawText('Time Ran: ' + IntToStr(T1) + ':' + IntToStr(T2) + ':' + IntToStr(T3), Point(742, 490), upchars, false, 5730676);
smartImage.DrawText('Logs cut: ' + IntToStr(amountCut), Point(742, 500), upchars, false, 5730676);
smartImage.DrawText('Logs cut p/h: ' + IntToStr(Round(LogsPerHour)), Point(742, 510), upchars, false, 5730676);
smartImage.DrawText('XP Gained: ' + IntToStr(Round(XPGain)), Point(742, 520), upchars, false, 5730676);
smartImage.DrawText('XP p/h: ' + IntToStr(Round(XPPerhour)), Point(742, 530), upchars, false, 5730676);
end;
end;
procedure mainLoop()
procedure mainLoop()
var
var
p: TPointArray;
p: TPointArray;
b: TBox;
b: TBox;
t, a: integer;
t, a: integer;
k: boolean;
k: boolean;
begin
begin
if resetup then
begin
MouseBox(mainscreen.getBounds(), mouse_move);
getMousePos(x, y);
if (countColor(1613523, IntToBox(945, 591, 959, 610)) = 9) then
typeSend('l', false);
mouseScroll(Point(x, y), randomRange(20, 55), false);
typeByteWait(vk_up, 800 + random(200));
resetup := false;
end;
repeat
repeat
if not IsLoggedIn then
if not IsLoggedIn then
begin
begin
players[currentPlayer].login();
players[currentPlayer].login();
sleep(3000 + random(1400));
sleep(3000 + random(1400));
resetup := true;
typeByteWait(vk_up, 800 + random(200));
exit;
end;
end;
if (tabBackpack.count() = 28) then
if (tabBackpack.count() = 28) then
begin
begin
if(bankScreen.isOpen()) then
if(bankScreen.isOpen()) then
bankScreen.close();
bankScreen.close();
smartImage.drawBox(tabBackPack.getSlotBox(1), false, clLime);
smartImage.drawBox(tabBackPack.getSlotBox(1), false, clLime);
tabBackpack.mouseSlot(1, MOUSE_MOVE);
tabBackpack.mouseSlot(1, MOUSE_MOVE);
smartImage.clearArea(tabBackPack.getSlotBox(1));
smartImage.clearArea(tabBackPack.getSlotBox(1));
if (isMouseOverText(['logs'], 1000)) then
if (isMouseOverText(['logs'], 1000)) then
begin
begin
fastClick(mouse_Left);
fastClick(mouse_Left);
if waitForInterface then
if waitForInterface then
if getInterface = 'knife' then
if getInterface = 'knife' then
begin
begin
smartImage.drawBox(IntToBox(460, 309, 503, 354), false, clLime);
smartImage.drawBox(IntToBox(460, 309, 503, 354), false, clLime);
MouseBox(IntToBox(460, 309, 503, 354), mouse_Left);
MouseBox(IntToBox(460, 309, 503, 354), mouse_Left);
smartImage.clearArea(IntToBox(460, 309, 503, 354));
smartImage.clearArea(IntToBox(460, 309, 503, 354));
waitForCraftInterface;
waitForCraftInterface;
end;
end;
if getInterface = 'craft' then
if getInterface = 'craft' then
begin
begin
if (countColor(1356525, IntToBox(343, 229, 383, 269)) <> 154) then
MouseBox(IntToBox(348, 233, 380, 264), MOUSE_LEFT);
smartImage.drawBox(IntToBox(480, 453, 575, 479), false, clLime);
smartImage.drawBox(IntToBox(480, 453, 575, 479), false, clLime);
MouseBox(IntToBox(482, 454, 702, 477), mouse_Left);
MouseBox(IntToBox(482, 454, 702, 477), mouse_Left);
smartImage.clearArea(IntToBox(480, 453, 575, 479));
smartImage.clearArea(IntToBox(480, 453, 575, 479));
t := getSystemTime() + 51000;
t := getSystemTime() + 51000;
k := false;
k := false;
a := randomRange(24, 27);
a := randomRange(24, 27);
repeat
repeat
wait(100 + random(350));
wait(100 + random(350));
case random(1000) of
case random(1000) of
0:
0:
begin
begin
smartImage.drawBox(tabStats.getSkillBox(SKILL_FLETCHING), false, clLime);
smartImage.drawBox(tabStats.getSkillBox(SKILL_FLETCHING), false, clLime);
MouseBox(tabStats.getSkillBox(SKILL_FLETCHING), mouse_Move);
MouseBox(tabStats.getSkillBox(SKILL_FLETCHING), mouse_Move);
smartImage.clearArea(tabStats.getSkillBox(SKILL_FLETCHING));
smartImage.clearArea(tabStats.getSkillBox(SKILL_FLETCHING));
end;
end;
14: tabBackpack.open();
14: tabBackpack.open();
60: randomRClickItem();
60: randomRClickItem();
90: sleepAndMoveMouse(1000 + random(2000));
90: sleepAndMoveMouse(1000 + random(2000));
150: pickUpMouse();
150: pickUpMouse();
180: mouseOffClient(4);
180: mouseOffClient(4);
220: smallRandomMouse();
220: smallRandomMouse();
280: randomCameraAngle(MS_ANGLE_HIGH);
280: randomCameraAngle(MS_ANGLE_HIGH);
350: randomCompass(10, 30, true);
350: randomCompass(10, 30, true);
400: randomGameTabCommon();
400: randomGameTabCommon();
end;
end;
if (countColor(131072, tabBackPack.getSlotBox(a)) = 75) then
if (countColor(131072, tabBackPack.getSlotBox(a)) = 75) then
begin
begin
if not k then
if not k then
findBankChest(true);
findBankChest(true);
k := true;
k := true;
end;
end;
until (countColor(131072, tabBackPack.getSlotBox(28)) = 75) or (getSystemTime() >= t);
until (countColor(131072, tabBackPack.getSlotBox(28)) = 75) or (getSystemTime() >= t);
sleep(600 + random(200));
sleep(600 + random(200));
amountCut := amountCut + 28;
ProgressReport;
end;
end;
end;
end;
end;
end;
if findBankChest(false) then
if findBankChest(false) then
begin
begin
if (BankScreen.isOpen(5000)) then
if (BankScreen.isOpen(5000)) then
begin
begin
smartImage.drawBox(IntToBox(481, 586, 508, 604), false, clLime);
smartImage.drawBox(IntToBox(481, 586, 508, 604), false, clLime);
bankScreen.quickDeposit(QUICK_DEPOSIT_INVENTORY);
bankScreen.quickDeposit(QUICK_DEPOSIT_INVENTORY);
smartImage.clearArea(IntToBox(481, 586, 508, 604));
smartImage.clearArea(IntToBox(481, 586, 508, 604));
smartImage.drawBox(IntToBox(521, 120, 542, 136), false, clLime);
smartImage.drawBox(IntToBox(521, 120, 542, 136), false, clLime);
MouseBox(IntToBox(521, 120, 542, 136), mouse_move);
MouseBox(IntToBox(521, 120, 542, 136), mouse_move);
smartImage.clearArea(IntToBox(521, 120, 542, 136));
smartImage.clearArea(IntToBox(521, 120, 542, 136));
if (isMouseOverText(['logs'], 1000)) then
if (isMouseOverText(['logs'], 1000)) then
begin
begin
fastClick(MOUSE_RIGHT);
fastClick(MOUSE_RIGHT);
chooseOption.select(['All']);
chooseOption.select(['All']);
sleep(60 + random(140));
sleep(60 + random(140));
bankScreen.close();
bankScreen.close();
sleep(60 + random(140));
sleep(60 + random(140));
if bankScreen.isOpen() then
if bankScreen.isOpen() then
bankScreen.close();
bankScreen.close();
smartImage.drawBox(tabBackPack.getSlotBox(1), false, clLime);
smartImage.drawBox(tabBackPack.getSlotBox(1), false, clLime);
tabBackpack.mouseSlot(1, MOUSE_MOVE);
tabBackpack.mouseSlot(1, MOUSE_MOVE);
smartImage.clearArea(tabBackPack.getSlotBox(1));
smartImage.clearArea(tabBackPack.getSlotBox(1));
waitForUnlock;
waitForUnlock;
end else
begin
players[currentPlayer].isActive = false;
bankScreen.close();
sleep(60 + random(140));
players[currentPlayer].logout();
FreeBitMap(0);
TerminateScript();
end;
end;
end else
end else
begin
begin
bankScreen.close();
bankScreen.close();
sleep(60 + random(140));
sleep(60 + random(140));
end;
end;
end;
end;
if resetup then
until (false);
exit;
until not (IsLoggedIn);
mainLoop();
end;
end;
begin
begin
declarePlayers();
declarePlayers();
smartEnableDrawing := true;
smartEnableDrawing := true;
_img := GetPage('http://srljustin.com/sw_image');
_img_name := GetPage('http://srljustin.com/sw_name');
img := BitmapFromString(159, 165, _img);
img_name := BitmapFromString(159, 165, _img_name);
SetupSRL;
SetupSRL;
smartImage.drawBitmap(img, Point(576, 427));
smartImage.drawBitmap(img_name, Point(576, 427));
MouseSpeed := randomRange(20, 28);
MouseSpeed := randomRange(20, 28);
players[currentPlayer].login();
players[currentPlayer].login();
mainLoop();
mainLoop();
end.
end.