SRL Archive - Jr. Member RS3 Outdated Scripts

SOUPs Neitiznot Flax Spinner [RS3/SRL6]


SOUPalmighty

2014-02-17 07:00:19

XP per Hour : +/- 15k
$ per Hour : +/- 300k



Setup(auto):

Make sure player is on Neitiznot (pref between bank and wheel)
Place flax in first bank slot [top left corner]
Download Script
Fill in setup lines in script
Hit play


Setup(Manuel):

Make sure player is on Neitiznot (pref between bank and wheel)
Place flax in first bank slot [top left corner]
Download SPS image and place in Runescape.other folder
Download Script and FlaxSpinProggy.png and place in "\simba\scripts\SoupFlaxSpinner" folder
Fill in setup lines in script, remember to set "AutoDL" to false
Hit play

Attention!
Script uses DirectX for now [brandons plugin]
other than that follow this guild

To Dos:
Any bug fixes
Player form(?)
Lumbridge support
Re-work look of proggy


Any suggestions, tips, proggies or bug reports are very welcome.

Updates(v1.4):
Implemented fixes suggested by The Mayor
Changed 6Hourfix setup


DOWNLOADS:

[ATTACH=CONFIG]22947[/ATTACH]
[ATTACH=CONFIG]22957[/ATTACH]

Proggies:



Heres the Script, its small so you can take a look before running it
program SOUPalmightysFlaxSpinner;

{$DEFINE SMART}
{$I SRL-6/SRL.simba}
{$I SPS/lib/SPS-RS3.Simba}

var
LoadsDone:integer;
runtimer : TtimeMarker;

{==============================================================================
=================================-SETUP-=======================================
===============================================================================}
Const

TimetoRun = 5.4; //hows many hours you would like to run before client restart/shut down
Restart = True; //do you want client to restart [true] or shut down [false] at end of run
AutoDL = false; // Would you Script to find and setup needed files [true] or will you do it manuelly [false]

procedure declarePlayers();
begin
setLength(players, 1);
with players[0] do
begin
loginName := '';
password := '';
bankPin := '';
world := 72;
isActive := true;
isMember := true;
end
currentPlayer := 0;
end;
{=============================================================================
===============================-END SETUP-====================================
==============================================================================}

Function Antiban: Boolean;
var
I: Integer;
Begin
Case Random(350) of
1:
begin
boredhuman(true);
mainScreen.setAngle(MS_ANGLE_HIGH);
minimap.setAngle(MM_DIRECTION_NORTH);
end;
2..10:
begin
hoverSkill(Skill_Crafting);
wait(GaussRangeInt(1000,2000));
end;
11..20:
begin
pickUpMouse();
wait(GaussRangeInt(200,1200));
end;
21..25:
begin
hoverRandomSkill();
wait(GaussRangeInt(1000,2000));
end;
26..125:
begin
smallrandommouse();
wait(GaussRangeInt(600,1200));
end;
126..350:
begin
mouseOffClient(Off_client_random);
wait(GaussRangeInt(500,00));
end;
end;
end;

procedure OpenBankChest();
var
x, y, i: integer;
begin
if not isLoggedIn() then
exit;

Repeat
mainscreen.findObject(x, y, 1198178, 10, colorsetting(2, 0.08, 0.73), mainscreen.playerpoint, 20, 15, 20,['ank chest'],MOUSE_LEFT);
wait(randomRange(1000, 2000));
inc(i);
if pinscreen.isOpen then
pinscreen.enter(players[currentPlayer].bankPin);
Until BankScreen.isOpen() or (i >= 15);
end;

procedure HandleBanking();
begin
if (bankScreen.isOpen()) then
wait(randomRange(500, 1300))
begin
bankScreen.quickDeposit(QUICK_DEPOSIT_INVENTORY);
wait(randomRange(500, 1500));
end;
repeat
bankScreen.withdraw(1, WITHDRAW_AMOUNT_ALL, ['']);
wait(randomRange(500, 1500));
until bankscreen.ispackfull() = true;
Bankscreen.close
end;

procedure RuntoWheel();
var
pathToWheel: TPointArray;
begin
if not isLoggedIn() then
exit;

pathToWheel := [Point(65, 67), Point(68, 71), Point(67, 83), Point(73, 87), Point(81, 88), Point(89, 87), Point(101, 88), Point(111, 87), Point(120, 88), Point(127, 93), Point(127, 102), Point(130, 109), Point(137, 111), Point(140, 119), Point(137, 122)];

if SPS.walkPath(pathToWheel) then
minimap.waitPlayerMoving()
else
writeLn('failed to travel to wheel');
end;

procedure OpenWheelMenu();
var
x, y, i: integer;
begin
if not isLoggedIn() then
exit;

repeat
mainscreen.findObject(x, y, 14673137, 10, colorsetting(2,0.47,3.92), mainscreen.playerpoint,10,2,10,['pin'],MOUSE_LEFT);
wait(randomRange(1000, 2000));
inc(i);
until ProductionScreen.isOpen() or (i >= 15);
end;

procedure HandleSpinning();

begin
if (productionScreen.isOpen()) then
wait(randomRange(1000, 2000))
begin
(productionScreen.clickStart());
end;
AntiBan();
end;

procedure Runtobank();
var
pathToBank: TPointArray;
begin
pathToBank := [Point(134, 120), Point(139, 121), Point(137, 112), Point(132, 108), Point(129, 104), Point(126, 97), Point(125, 90), Point(117, 85), Point(110, 86), Point(105, 86), Point(97, 87), Point(87, 87), Point(77, 87), Point(67, 83), Point(65, 74), Point(67, 67)];
wait(randomrange(500, 1000));

if SPS.walkPath(pathToBank) then
minimap.waitPlayerMoving()
end;

Function Checkspinning: boolean;

begin
if not (tabbackpack.waitslotpixelchange(1,5000) then
exit else

if tabbackpack.waitslotpixelchange(28,60000) then
inc(loadsDone)
else
end;

Procedure Banking();

begin
mainScreen.setAngle(MS_ANGLE_HIGH);
minimap.setAngle(MM_DIRECTION_NORTH);
Runtobank();
antiban();
openbankchest();
handlebanking();
end;

procedure Spinning;

begin
mainScreen.setAngle(MS_ANGLE_HIGH);
minimap.setAngle(MM_DIRECTION_NORTH);
runtowheel();
OPenwheelmenu();
Handlespinning();
checkspinning();
end;

procedure clearProggy;
var
b: TBox;
i: integer;
begin
b := [241, 387, 361, 398];
for i := 0 to 3 do
begin
smartImage.drawBox(b, true, 1);
b.edit(0, 17, 0, 17);
end;
end;

procedure progressReport();
var
FlaxSpun, xp, xpPerHour: integer;
begin
FlaxSpun := LoadsDone * 28;
xp := (FlaxSpun * 15);

clearProggy;

smartImage.DrawText(msToTime(GetTimeRunning, TIME_SHORT), Point(241, 386), upchars, false, 15653736);
smartImage.DrawText(inttostr(flaxspun), Point(241, 403), upchars, false, 15653736);
smartImage.DrawText(intToStr(loadsDone), Point(241, 420), upchars, false, 15653736);
smartImage.DrawText(intToStr(xp), Point(241, 438), upchars, false, 15653736);
end;

procedure checkForFiles(filePath, message, link: String); //By kevin and clarity
var
progFile: longInt;
fileName: string;
begin
fileName := AppPath + filePath;
try
if not fileExists(fileName) then
begin
progFile := createFile(fileName);
end;
closeFile(progFile);

progFile := rewriteFile(fileName, false);
writeFileString(progFile, getPage(link));
finally
if (progFile > 0) then
closeFile(progFile);
end;
end;

procedure InstallSoupsFlaxSpinnerFiles; //based on code from Clarity's barrows
begin
if not directoryExists(appPath + 'scripts\SoupsFlaxSpinner') then
begin
try
createDirectory(appPath + 'scripts\SoupsFlaxSpinner');
except end;
end;

checkForFiles('scripts\SoupsFlaxSpinner\FlaxSpinProggy.png', 'FlaxspinnerProggy', 'http://i.imgur.com/7QBRTwx.png');
checkForFiles('Includes\SPS\img\runescape_other\Neiz_map.png', 'SPS Map', 'http://i.imgur.com/p57i9E3.png');
end;

procedure paintproggy;
var
flaxproggy : Integer;
begin
flaxproggy := loadBitmap(appPath + 'Scripts\SoupsFlaxSpinner\FlaxSpinProggy.png');
SMARTimage.DrawBitmap(flaxproggy,Point(0,344));
FreeBitmap(flaxproggy);
end;

Procedure Setup(initial,ForceRestart: boolean);
begin

If Initial then
begin
clearDebug();
smartPlugins := ['d3d9.dll'];
smartEnableDrawing := true;
setupSRL();
declarePlayers();

if AutoDL then
InstallSoupsFlaxSpinnerFiles();

Paintproggy();
SPS.setup('Neiz_Map', RUNESCAPE_OTHER); //to be moved when lumby support is added
end;

If ForceRestart Then
Begin
RunTimer.Start;
End;
end;


procedure Mainloop;
var
runtime : integer;
begin
if not isLoggedIn() then
exit;

banking();
spinning();
progressreport();

RunTime:= Round(TimetoRun * 60 * 60 * 1000 + Random(600000));

If (RunTime < RunTimer.gettime) Then
Begin
Players[CurrentPlayer].Logout;
Writeln('Shutting down/restart');

If Restart Then
SixHourFix Else
TerminateScript;
setup(false,true);
end;
end;

begin
Setup(true,true);
Antiban();
if not isLoggedIn() then
begin
players[currentPlayer].login();
mainScreen.setAngle(MS_ANGLE_HIGH);
minimap.setAngle(MM_DIRECTION_NORTH);
end;

while players.getActive > 0 do mainLoop;
end. ]

Hoodz

2014-02-17 12:00:39

Gz on release!

SOUPalmighty

2014-02-17 18:08:12

From: hoodz
Gz on release!


Thanks!

Clarity

2014-02-18 13:53:07

Massive 2k+ bitmap from string, would be easier to just do:
scriptPaintBMP := loadBitmap(appPath + '/Scripts/extra_folder_if_you_want/image_name.png');
and
smartImage.drawBitmap(scriptPaintBMP, Point(x, y));


Grats on release :)

SOUPalmighty

2014-02-18 14:32:14

From: Clarity
Massive 2k+ bitmap from string, would be easier to just do:
scriptPaintBMP := loadBitmap(appPath + '/Scripts/extra_folder_if_you_want/image_name.png');
and
smartImage.drawBitmap(scriptPaintBMP, Point(x, y));


Grats on release :)


Ahhh see this is what i was trying to figure out, posted on Mayors AIO tut looking for an answer haha.

Thx!

Edit: Implemented changes to On Screen Proggy

Clarity

2014-02-18 14:38:58

From: SOUPalmighty
Ahhh see this is what i was trying to figure out, posted on Mayors AIO tut looking for an answer haha.

Thx!

Combine that with a function that auto-downloads and installs the image as well as your SPS map, and you've got a very user-friendly script!
From my Barrows script:
{Procedure checkForFiles;
By: Kevin
Edited By: Clarity
Purpose: Checks/downloads files.}
procedure checkForFiles(filePath, message, link: string);
var
progFile: longInt;
fileName: string;
begin
fileName := AppPath + filePath;
try
if not fileExists(fileName) then
begin
ClarityDebug('-- INSTALLATION STATUS: ' + message + ' does not exist - Downloading now.');
progFile := createFile(fileName);
end
else
begin
ClarityDebug('-- INSTALLATION STATUS: ' + message + ' exists.');
exit;
end;
closeFile(progFile);
progFile := rewriteFile(fileName, false);
writeFileString(progFile, getPage(link));
ClarityDebug('-- INSTALLATION STATUS: ' + message + ' has been downloaded.');
finally
if (progFile > 0) then
closeFile(progFile);
end;
end;

{PROCEDURE -- InstallClarityBarrowsAssets
Purpose: Determines whether files exist and dictates their installation.
Comments: None.}
procedure InstallClarityBarrowsAssets;
begin
ClarityDebug('Please wait...now installing ClarityBarrows image assets to your computer...');
if not directoryExists(appPath + 'scripts/ClarityBarrowsImages/') then
begin
try
createDirectory(appPath + 'scripts/ClarityBarrowsImages/');
ClarityDebug('Created a new folder in Simba/Scripts/');
except
end;
end;
checkForFiles('scripts/ClarityBarrowsImages/barrowspaint5.png', 'Script Paint', 'http://i.imgur.com/5vGrtvz.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapBMroom.png', 'Minimap Room BM', 'http://i.imgur.com/5MHOwD5.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapMEroom.png', 'Minimap Room ME', 'http://i.imgur.com/WxlmOAD.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapMMroom.png', 'Minimap Room MM', 'http://i.imgur.com/SHwtgj0.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapMWroom.png', 'Minimap Room MW', 'http://i.imgur.com/FzgYovB.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapNEcorner.png', 'Minimap Room NECorner', 'http://i.imgur.com/fDE4OXl.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapNWcorner.png', 'Minimap Room NWCorner', 'http://i.imgur.com/fOOcs2j.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapSEcorner.png', 'Minimap Room SECorner', 'http://i.imgur.com/8KFQBym.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapSWcorner.png', 'Minimap Room SWCorner', 'http://i.imgur.com/GHT0aH7.png');
checkForFiles('scripts/ClarityBarrowsImages/minimapTMroom.png', 'Minimap Room TM', 'http://i.imgur.com/FhduPNb.png');
checkForFiles('Includes/SPS/img/runescape_other/SPS_CLARITY_BARROWS_2.png', 'SPS Map', 'http://i.imgur.com/sAVzsFq.png');
end;

@Kevin wrote the original check file procedure, so credit to him. What this does is check if the image already exists, and if it doesn't, it downloads an image that I uploaded to imgur, creates a folder and creates the image inside the folder.

SOUPalmighty

2014-02-18 15:16:55

From: Clarity
Combine that with a function that auto-downloads and installs the image as well as your SPS map, and you've got a very user-friendly script!
From my Barrows script:
@Kevin wrote the original check file procedure, so credit to him. What this does is check if the image already exists, and if it doesn't, it downloads an image that I uploaded to imgur, creates a folder and creates the image inside the folder.


Ahh very cool, very cool. Def going to try and get something like this implemented with next update, thanks!

nigerson

2014-02-18 20:59:42

Can you add more accessible locations like lumbridge bank/wheel that way we can use noobs to bot this :)

SOUPalmighty

2014-02-18 22:06:18

From: nigerson
Can you add more accessible locations like lumbridge bank/wheel that way we can use noobs to bot this :)

This is a definite plan for the future once i work out kinks, will let you know! In the mean time, i dont think it would be very hard if you wanted to convert this one yourself.

I think i got is pretty solid so far, just testing for now then ill get on expansions.

The Mayor

2014-02-22 05:26:27

Ahh yes, I see you fixed your bitmap issue (never got round to writing that tutorial). Your script looks real tidy, well done :). Here is some feedback anyway:



Function Antiban: Boolean;
var
I: Integer;
Begin
I := Random(350);
Case I Of
1:
begin
boredhuman(true);
end;

You don't really need to add the variable I here. Case random(350) of. Also don't need the begin for case 1.



procedure HandleBanking();
begin
if (bankScreen.isOpen()) then
wait(randomRange(500, 1300));
bankScreen.quickDeposit(QUICK_DEPOSIT_INVENTORY);
wait(randomRange(500, 1500));

repeat
bankScreen.withdraw(1, WITHDRAW_AMOUNT_ALL, ['']);
wait(randomRange(500, 1500));
until bankscreen.ispackfull() := true;
Bankscreen.close
end;

This will click the deposit button even if the bank isn't open (might want to add a begin). There is no need for the = true (as it already does this). Also a potential infinite loop here too, what if it gets stuck/lags out while withdrawing?

Also, notice how your function list stops at this peocedure:


That means there is an error in this procedure (which is you using the assignment operator ( := ) instead of equals ( = ) ).



procedure RuntoWheel();
var
pathToWheel: TPointArray;
begin
if not isLoggedIn() then
exit;

pathToWheel := [Point(65, 67), Point(68, 71), Point(67, 83), Point(73, 87), Point(81, 88), Point(89, 87), Point(101, 88), Point(111, 87), Point(120, 88), Point(127, 93), Point(127, 102), Point(130, 109), Point(137, 111), Point(140, 119), Point(137, 122)];

if SPS.walkPath(pathToWheel) then
minimap.waitPlayerMoving()
else
writeLn('failed to travel to wheel');
end;

You could probably assign your TPA to the path in the setup procedure (as there is no need to fill the array each time you walk). Same with pathToBank (but you would have to declare globally).



procedure HandleSpinning();

begin
if (productionScreen.isOpen()) then
wait(randomRange(1000, 2000));
(productionScreen.clickStart());

AntiBan();
end;

Might want to add a begin here too, as it will attempt to click start even if it isn't open.


Function Checkspinning: boolean;

begin
if (tabbackpack.waitslotpixelchange(1,5000) := false) then
exit else

if tabbackpack.waitslotpixelchange(28,60000) then
inc(loadsDone)
else
end;

Up to you, but I prefer: if not tabbackpack.waitslotpixelchange(1,5000) then. Else..

By the looks of things, it wont login after the 6h fix. You should tell it to login in your main loop if it isn't logged in. Instead of:


procedure Mainloop;
var
runtime : integer;
begin
if not isLoggedIn() then
exit;

Maybe something like:


procedure Mainloop;
var
runtime : integer;
begin
if not isLoggedIn() then
players[currentPlayer].login();

Anyways, looking good :D

SOUPalmighty

2014-02-23 21:32:16

From: The Mayor
Ahh yes, I see you fixed your bitmap issue (never got round to writing that tutorial). Your script looks real tidy, well done :). Here is some feedback anyway….


Ahh thank you very much Mayor, this is exactly what i need haha. Will be looking at those issues tomorrow, and hopefully will have update by end of day. I have already reworked the sixhourfix (based the handling it on ashamans sally script) and have squeaked out a 17 hour proggy but forgot to ScrnCap lol

jayman19981

2014-04-20 21:15:15

when is lumby support going to be added?

The Mayor

2014-04-20 22:34:26

From: jayman19981
when is lumby support going to be added?


Don't think SOUP is active atm. There is a spinning wheel in burthorpe, just up from the flax patch. AIO?

bobingtonbob

2015-02-28 03:06:58

Thanks for all your hard work! Any insight on when the update will happen to the antiban?