SRL Archive - Jr. Member RS3 Outdated Scripts

Astral Crafter [RS3][SRL6][In Progress]


vwxz

2014-02-02 05:43:41

This is still in the pretty early stages of development. The basic functionality works, but there's a lot of room for improvement, and I would appreciate some feedback from the community.

This script crafts astral runes using the Moonclan teleport method.

Current features:
Banks using Moonclan teleport
Support for small through giant pouches
SPS-based walking
Detect and repair broken pouches via NPC contact spell.

To use this, copy the map into your SPS maps (for Runescape surface) folder. Then, follow the instructions in the script and run it.

{
Set up instructions:
1. Standard SRL graphics and interfaces settings
2. Face north, highest camera angle, zoomed fully out
3. Pure essence in top right of bank
4. Pouches in first inventory slots 1 through 4, largest to smallest
5. Wield an earth staff or equivalent
6. Excess supply of laws, astrals, airs, and cosmics in inventory
7. Moonclan teleport in action bar slot 2; NPC contact in slot 2
}

Please review/test and give feedback! Thanks!

Progress report:
-- ----------------------------------
-- ----------------------------------
-- ----- vwxz's Astral Crafter -----
-- Ran for 52 Minutes and 43 Seconds (0.878861944444444 hours)
-- Completed 33 iterations (37.5485594849147 per hour)
-- Crafted (estimated) 1650 ess (1877.42797424573 per hour)
-- Crafted (counted) 1458 ess (1658.96362815168 per hour)
-- Repaired pouches 2 times
-- ----- vwxz's Astral Crafter -----
-- ----------------------------------
-- ----------------------------------

Change log:
r1 - Initial release. Stable core loop.
r2 - Stop using inventory DTMS and switch to using item slots and colors. Overall reliability fixes. Pouch repair.
r3 - Improved reporting.
r4 - Some failsafes for banking etc. Improved reporting.

Clarity

2014-02-02 06:05:07

A good idea, looking forward to the completed script, good luck! :)

white_lycan

2014-02-02 13:51:19

First off i'd like to say i havn't botted in forever (since RS3 came out). So your script is the first for me to try! yay! with that being said i may not have had all the settings correct although i did follow the guide to installing simba. I apologize in advance for any typos in this comment as im in a hurry as i have some errands to run. I was messing around with the script for around 20 minutes.

- when filling up pouches, it should do it while the bank screen is still open (right click on pouch and hit fill) instead of closing the bank screen and then filling them. With my current inv of 21 free slots it should take out pure ess and fill small, med, and large pouches. Take out 21 more pure ess and fill the giant and then fill inventory once more before heading to the obelisk.

- At the obelisk i think it would be cool if the bot would use the action bar to empty the pouches. i have the pouches set up from spot 3-6. I think this would make it more efficient and increase the # of astrals created per hour. It'd be sweet if it would use the action bar to use the two spells as well. By using the action bar i mean pressing the key instead of mouse clicking it.

- having issues after teleporting where the bot doesn't walk to the bank and goes through its normal banking procedures. it looks like the mouse gets attracted to the "small obelisk".

I havn't been able to get more than one run complete and in order for me to get the first run complete my character has to be inside of the bank otherwise once it teleports to moonclan it just stays there and runs back to the alter and repeats. like i said before it may be because of my settings but im pretty sure i have them correct.

I'm really looking forward to seeing your script completed! i'll be testing it out as much as i can for you.

Thanks for your work.

vwxz

2014-02-02 16:13:10

Thanks for your feedback everyone!

I'm currently adding NPC Contact support. After that, I'll get back to optimizing and stabilizing the core loop.

UPDATE: I'm currently stuck trying to get stable DTMs for pouches.

From: Clarity
A good idea, looking forward to the completed script, good luck! :)


Thanks! Yea, I think I'm most of the way to a fully featured first draft.

From: white_lycan
First off i'd like to say i havn't botted in forever (since RS3 came out). So your script is the first for me to try! yay! with that being said i may not have had all the settings correct although i did follow the guide to installing simba. I apologize in advance for any typos in this comment as im in a hurry as i have some errands to run. I was messing around with the script for around 20 minutes.

- when filling up pouches, it should do it while the bank screen is still open (right click on pouch and hit fill) instead of closing the bank screen and then filling them. With my current inv of 21 free slots it should take out pure ess and fill small, med, and large pouches. Take out 21 more pure ess and fill the giant and then fill inventory once more before heading to the obelisk.

- At the obelisk i think it would be cool if the bot would use the action bar to empty the pouches. i have the pouches set up from spot 3-6. I think this would make it more efficient and increase the # of astrals created per hour. It'd be sweet if it would use the action bar to use the two spells as well. By using the action bar i mean pressing the key instead of mouse clicking it.

- having issues after teleporting where the bot doesn't walk to the bank and goes through its normal banking procedures. it looks like the mouse gets attracted to the "small obelisk".

I havn't been able to get more than one run complete and in order for me to get the first run complete my character has to be inside of the bank otherwise once it teleports to moonclan it just stays there and runs back to the alter and repeats. like i said before it may be because of my settings but im pretty sure i have them correct.

I'm really looking forward to seeing your script completed! i'll be testing it out as much as i can for you.

Thanks for your work.


Thanks for the tip about filling pouches from the bank screen. I didn't know that was possible. Was this a new addition with RS3? I'll put that in later and it should save a lot of time per trip.

The action bar also sounds promising. I'll test it out manually. If it ends up being a significant improvement, I'll put it in.

Walking works fine for me. Can you please post a screenshot of your setup and where specifically the script gets stuck please? Are you sure that your SRL and SPS are up to date and you have the official SRL 6 botting settings? Just a note that I had an earlier issue due to SRL/SPS being out of date. Post more info (specifically the last ~100 lines of the debug log) and I'll try to debug it.

Thanks for your feedback!

white_lycan

2014-02-02 17:56:28

http://imgur.com/jVz0Xgq

This is exactly how i had it when i was running the script, it also only filled up my giant and medium pouch for some odd reason. After teleporting it gets stuck right where it teleported to. Everything is updated. I went in and edited it and made it so it would repeat the walktobank procedure until the bank is open and it worked fine. i also tried only changing your Posbank from tpoint to tpointarray and added one extra point between the bank and the tele location and it worked great (removed the repeat i added early).

—- Options found: [Withdraw-1 Pure essence, Withdraw-5 Pure essence, Withdraw-10 Pure essence, Withdraw-25 Pure essence, Withdraw-X Pure essence, Withdraw-All Pure essence, Withdraw-All but one Pure essence, Examine Pure essence, Cancel]
—- Found option "Withdraw-All" in "Withdraw-All Pure essence"
– chooseOption.select() result = true
—- bankscreen.withdraw(): result = True
—- tabBackpack.clickDTM(): Found no dtm matches
– chooseOption._select():
—- chooseOption.isOpen(): result = true
—- Options found: [Fill Medium pouch, Empty Medium pouch, Check Medium pouch, Use Medium pouch, Drop Medium pouch, Examine Medium pouch, Set quick-inventory A, Set quick-inventory B, Cancel]
—- Found option "Fill" in "Fill Medium pouch"
– chooseOption.select() result = true
– clickItemsDTM: clicked 1 items.
—- tabBackpack.clickDTM(): Found no dtm matches
– TRSBankscreen.__openBankBooth()
—- isMouseOverText()
—— Current mouse-over text: ""
—— Current mouse-over text: ""
—— Current mouse-over text: ""
—— Current mouse-over text: "Bank Bank booth"
—— Found "Bank Bank booth" in mouse-over string: "Bank Bank booth"
—- isMouseOverText(): True
—- Found correct mouse-over text
—- chooseOption._select():
—— chooseOption.isOpen(): result = true
—— Options found: [Bank Bank booth, Collect Bank booth, Walk here Hefffalump (level: 167, Follow Hefffalump (level: 167, Trade with Hefffalump (level: 167, RepoM Hefffalump (level: 167, Examine Bank booth, Cancel]
—— Found option "Bank Bank booth" in "Bank Bank booth"
—- chooseOption.select() result = true
—- Bankscreen or pinscreen is open
– TRSBankscreen.__openBankBooth() result = True
– isMouseOverText()
—- Current mouse-over text: "Withdraw-1 Fire ru!1e"
—- Current mouse-over text: "Withdraw-1 P'ure esse!1ce"
—- Found "ess" in mouse-over string: "Withdraw-1 P'ure esse!1ce"
– isMouseOverText(): True
– chooseOption._select():
—- chooseOption.isOpen(): result = true
—- Options found: [Withdraw-1 Pure essence, Withdraw-5 Pure essence, Withdraw-10 Pure essence, Withdraw-25 Pure essence, Withdraw-X Pure essence, Withdraw-All Pure essence, Withdraw-All but one Pure essence, Examine Pure essence, Cancel]
—- Found option "Withdraw-All" in "Withdraw-All Pure essence"
– chooseOption.select() result = true
—- bankscreen.withdraw(): result = True
– sps.getPlayerPos(): result = {X = 138, Y = 190}, took 1061 ms
– sps.getPlayerPos(): result = {X = 186, Y = 242}, took 1155 ms
– sps.getPlayerPos(): result = {X = 194, Y = 298}, took 1108 ms
– sps.getPlayerPos(): result = {X = 230, Y = 362}, took 1108 ms
– sps.getPlayerPos(): result = {X = 282, Y = 422}, took 1201 ms
—- Waiting while the player is moving…
– sps.walkPath(): result = True
– chooseOption._select():
—- chooseOption.isOpen(): result = true
—- Options found: [Empty Giant pouch, Fill Giant pouch, Check Giant pouch, Use Giant pouch, Drop Giant pouch, Examine Giant pouch, Set quick-inventory A, Set quick-inventory B, Cancel]
—- Found option "Empty" in "Empty Giant pouch"
– chooseOption.select() result = true
– clickItemsDTM: clicked 1 items.
– chooseOption._select():
—- chooseOption.isOpen(): result = true
—- Options found: [Fill Large pouch, Empty Large pouch, Check Large pouch, Use Large pouch, Drop Large pouch, Examine Large pouch, Set quick-inventory A, Set quick-inventory B, Cancel]
—- Found option "Empty" in "Empty Large pouch"
– chooseOption.select() result = true
– clickItemsDTM: clicked 1 items.
– chooseOption._select():
—- chooseOption.isOpen(): result = true
—- Options found: [Empty Medium pouch, Fill Medium pouch, Check Medium pouch, Use Medium pouch, Drop Medium pouch, Examine Medium pouch, Set quick-inventory A, Set quick-inventory B, Cancel]
—- Found option "Empty" in "Empty Medium pouch"
– chooseOption.select() result = true
– clickItemsDTM: clicked 1 items.
—- tabBackpack.clickDTM(): Found no dtm matches
– sps.getPlayerPos(): result = {X = 354, Y = 414}, took 1045 ms
– sps.walkToPos(): result = False
– TRSBankscreen.__openBankBooth()
—- isMouseOverText()
—— Current mouse-over text: "Renew-points Small obelisk"
—— Current mouse-over text: "Renew-points Small obelisk"
—— Current mouse-over text: "Renew-points Small obelisk"
—— Current mouse-over text: "Renew-points Small obelisk"
—- isMouseOverText(): False
—- Found wrong mouse-over text
—- isMouseOverText()
—— Current mouse-over text: ""
—— Current mouse-over text: "Talk-to Rimae Sirsalis"
—— Current mouse-over text: "Talk-to Rimae Sirsalis"
—— Current mouse-over text: "Talk-to Rimae Sirsalis"
—— Current mouse-over text: "Talk-to Rimae Sirsalis"
—- isMouseOverText(): False
—- Found wrong mouse-over text
– TRSBankscreen.__openBankBooth() result = False
– WARNING: bankscreen.withdraw(): No item in slot 10
– chooseOption._select():
—- chooseOption.isOpen(): result = true
—- Options found: [Fill Giant pouch, Empty Giant pouch, Check Giant pouch, Use Giant pouch, Drop Giant pouch, Examine Giant pouch, Set quick-inventory A, Set quick-inventory B, Cancel]
—- Found option "Fill" in "Fill Giant pouch"
– chooseOption.select() result = true
– clickItemsDTM: clicked 1 items.
– TRSBankscreen.__openBankBooth()
—- isMouseOverText()
—— Current mouse-over text: ""
—— Current mouse-over text: "Renew-points Small obelisk"
—— Current mouse-over text: "Renew-points Small obelisk"
—— Current mouse-over text: "Renew-points Small obelisk"
—- isMouseOverText(): False
—- Found wrong mouse-over text
—- isMouseOverText()
—— Current mouse-over text: ""
—— Current mouse-over text: ""
—— Current mouse-over text: ""
—— Current mouse-over text: ""
—— Current mouse-over text: ""
—— Current mouse-over text: ""
—- isMouseOverText(): False
—- Found wrong mouse-over text
– TRSBankscreen.__openBankBooth() result = False
– WARNING: bankscreen.withdraw(): No item in slot 10
– chooseOption._select():
—- chooseOption.isOpen(): result = true
—- Options found: [Fill Large pouch, Empty Large pouch, Check Large pouch, Use Large pouch, Drop Large pouch, Examine Large pouch, Set quick-inventory A, Set quick-inventory B, Cancel]
—- Found option "Fill" in "Fill Large pouch"
– chooseOption.select() result = true
– clickItemsDTM: clicked 1 items.


edit: eh i just realized its probably cause im lagging. When i go to my dorm i'll re test it. Super fast internet there.

vwxz

2014-02-02 19:18:15

The pouches thing is a known issue and I'm currently working on an alternate method that avoids it.

I have no idea how you're having walking issues, though.

vwxz

2014-02-03 06:06:10

New release r2 edited into original post. Many fixes and improvements. Now with progress report. 36 iterations in 56 minutes (~1600 ess crafted/hour).

vwxz

2014-02-03 07:44:17

New release r3 with improved reporting.

Known issues:

Sometimes, withdrawing fails while banking.
If anyone knows how to fix this, please let me know.

Pure ess DTM is finicky. This potentially under-counts the number of ess crafted.

Clarity

2014-02-03 09:21:54

From: vwxz

Sometimes, withdrawing fails while banking.
If anyone knows how to fix this, please let me know.

How exactly does it fail?

vwxz

2014-02-03 16:03:36

From: Clarity
How exactly does it fail?


Previously, I was supplying the mouseover text param to the withdraw call and it was failing to find the mouseover text. So I replaced it with an empty string. Somehow still the same failure.

I can't encounter this error frequently enough to reliably investigate it. So I'm a bit lost at the moment.

EDIT: Wait, I think it's a different failure now. I'm failing to open the bank.

vwxz

2014-02-04 02:52:06

New version r4 is out. Has some failsafes to avoid the banking issue and improved reporting.

New progress report. If anyone has the time to run this for more hours, please post your proggie.

Still having weird issue where TabBackpack.CountBitmap will under-count sometimes.

The Mayor

2014-02-04 04:33:58

Nice, good job with t3h script :) Isn't this about 2m/h? There are many places where this could potentially fail (1 lag spike could screw it up as it only does things once). I have added some comments:


program AstralCrafter;
{$DEFINE SMART}
{$I SRL-6/SRL.simba}
{$I sps/lib/sps-rs3.simba}

{
vwxz's Astral Crafter
Development Pre-release
Use at your own risk!
}

{
Set up instructions:
1. Standard SRL graphics and interfaces settings
2. Face north, highest camera angle, zoomed fully out
3. Pure essence in top right of bank
4. Pouches in first inventory slots 1 through 4, largest to smallest
5. Wield an earth staff or equivalent
6. Excess supply of laws, astrals, airs, and cosmics in inventory
7. Moonclan teleport in action bar slot 2; NPC contact in slot 2
}

const
ColorAltar = 8550528; // good practive to keep constants CAPITAL
ColorTolAltar = 10; // so they are easily recognisable
ColorDecayedPouch = 3751490;
ColorTolDecayedPouch = 5;
ColorCountDecayedPouch = 20;
ColorAbyssMage = 1381655;
ColorTolAbyssMage = 10;
BitmapTolPureEss = 10;

var
PosBank: TPoint;
PathBankToAltar: TPointArray;
StatsScriptStart: TTimeMarker;
BitmapPureEss: Integer;
StatsNumIterations, StatsNumRepairs, StatsEssCrafted: Integer;

procedure WaitRandom(MsecToWait: Integer) // declare players?
begin
Wait(MsecToWait + Random(Round(MsecToWait / 4.0)));
end;

procedure LoadResources
begin
PosBank := Point(138, 190);
PathBankToAltar := [Point(146, 206), Point(188, 206), Point(198, 267), Point(194, 318), Point(229, 351), Point(253, 367), Point(269, 386), Point(275, 424), Point(325, 415), Point(358, 412)];
BitmapPureEss := BitmapFromString(18, 8, 'meJx10X0LgjAYBPAPaJiZjDGmtczX1EyziL58B0djOIT798fdw6NTk53ysymQS15diwYpy1td9217R7ruMQwzMo7LNL3n52d5fZXKdGr03wLSAvqWEEpKDUgL6FtCKAtRJ4RCtqy/liqORZJIQtrV4NVa1EFF0ZHQty6kpcJdYXgAtHYLIqzDSKhgt0doXeieyb+gzqofNxenLw==');
end;

procedure SetUp
begin
SmartEnableDrawing := True;
SetUpSrl;
LoadResources;
Sps.Setup('0_0MOONCLAN', RUNESCAPE_SURFACE);
StatsScriptStart.Start;
StatsNumIterations := 0;
StatsNumRepairs := 0;
StatsEssCrafted := 0;
end;

procedure TeleToMoonclan
begin
ActionBar.ClickSlot(1); // put this in a loop incase of fail
WaitRandom(3500); // maybe until find bank symbol? (and add a timer too)
end;

procedure WalkToBank
begin
Sps.WalkToPos(PosBank);
WaitRandom(500);
end;

procedure WithdrawEss
begin
BankScreen.Withdraw(10, WITHDRAW_AMOUNT_ALL, ['']); //All of this withdrawl stuff should be put in a loop
WaitRandom(800); // until bankscreen.isPackFull
end;

procedure FillPouches1
begin
Mouse(BankScreen.GetPackSlotBox(1).GetMiddle, MOUSE_RIGHT);
WaitRandom(500);
ChooseOption.Select(['Fill Giant pouch'], 0.70); // until bankscreen.getPackCount = xx
WaitRandom(500);
end;

procedure FillPouches2
begin
Mouse(BankScreen.GetPackSlotBox(2).GetMiddle, MOUSE_RIGHT);
WaitRandom(500);
ChooseOption.Select(['Fill Large pouch'], 0.80); // same again
WaitRandom(500);
Mouse(BankScreen.GetPackSlotBox(3).GetMiddle, MOUSE_RIGHT);
WaitRandom(500);
ChooseOption.Select(['Fill Medium pouch'], 0.80);
WaitRandom(500);
Mouse(BankScreen.GetPackSlotBox(4).GetMiddle, MOUSE_RIGHT);
WaitRandom(500);
ChooseOption.Select(['Fill Small pouch'], 0.80);
WaitRandom(800);
end;

procedure OpenBank
var
I: Integer;
begin
for I := 1 to 5 do begin
if BankScreen.IsOpen then begin
Break; // no need for begin and end here
end else begin
BankScreen.Open(BANK_BOOTH);
WaitRandom(1000);
end; // maybe if > 5 tries then walkToBank again?
end;
end;

procedure BankStep
begin
OpenBank;
WaitRandom(1000);
WithdrawEss;
FillPouches1;
WithdrawEss;
FillPouches2;
WithdrawEss;
WaitRandom(1000);
BankScreen.Close;
WaitRandom(1000);
end;

procedure EmptyPouches1
begin
TabBackpack.MouseSlot(1, MOUSE_LEFT); // again, good to put a check you actually clicked
WaitRandom(1000);
end;

procedure EmptyPouches2
begin
TabBackpack.MouseSlot(2, MOUSE_LEFT);
WaitRandom(1000);
TabBackpack.MouseSlot(3, MOUSE_LEFT);
WaitRandom(1000);
TabBackpack.MouseSlot(4, MOUSE_LEFT);
WaitRandom(1000);
end;

procedure WalkToAltar
begin
Sps.WalkPath(PathBankToAltar);
WaitRandom(500);
end;

procedure RecordEssCrafted
begin
StatsEssCrafted := StatsEssCrafted + TabBackpack.CountBitmap(BitmapPureEss, BitmapTolPureEss);
end;

procedure CraftRunes(WaitLonger: Boolean);
var
ColorsFound: TPointArray;
MidPoint: TPoint;
begin
RecordEssCrafted;
if FindColorsTolerance(ColorsFound, ColorAltar, MainScreen.GetBounds, ColorTolAltar) then begin
MidPoint := MedianTpa(ColorsFound);
Mouse(MidPoint, MOUSE_LEFT);
end else begin
// whats this for?
end;
MiniMap.WaitFlag;
if (WaitLonger) then begin // no need for begin/end here
WaitRandom(2000);
end;
WaitRandom(2000);
end;

procedure CraftStep
begin
CraftRunes(True);
EmptyPouches1;
CraftRunes(False);
EmptyPouches2;
CraftRunes(False);
ClaimSpinTicket;
end;

function HavePouchesDecayed: Boolean
var
SlotNum: Integer;
begin
Result := False;
for SlotNum := 1 to 4 do begin
if CountColorTolerance(ColorDecayedPouch, TabBackpack.GetSlotBox(SlotNum), ColorTolDecayedPouch) > ColorCountDecayedPouch then begin
Result := True;
Break;
end;
end;
end;

procedure CastNpcContact
begin
ActionBar.ClickSlot(2); // until conversationbox.isOpen?
WaitRandom(1000);
end;

procedure SelectAbyssMage
var
TpaAbyssMage: TPointArray;
AtpaAbyssMage: T2DPointArray;
begin
MouseScroll(MainScreen.GetBounds.GetMiddle, 4);
WaitRandom(500);
if FindColorsTolerance(TpaAbyssMage, ColorAbyssMage, MainScreen.GetBounds, ColorTolAbyssMage) then begin // begins go on next line
AtpaAbyssMage := TpaAbyssMage.ToAtpa(20);
SortAtpaSize(AtpaAbyssMage, True);
TpaAbyssMage := AtpaAbyssMage[Low(AtpaAbyssMage)];
Mouse(MedianTpa(TpaAbyssMage), MOUSE_LEFT);
WaitRandom(6000);
end else begin
// why this?
end;
end;

procedure ChatWithAbyssMage
var
IX: Integer;
begin
for IX := 1 to 6 do begin
ConversationBox.Continue(True, True);
WaitRandom(1000);
end;
ConversationBox.SelectOption(2);
WaitRandom(1000);
for IX := 1 to 2 do begin
ConversationBox.Continue(True, True);
WaitRandom(1000);
end;
end;

procedure RepairPouches
begin
CastNpcContact;
SelectAbyssMage;
ChatWithAbyssMage;
StatsNumRepairs := StatsNumRepairs + 1; // cound just inc(StatsNumRepairs)
end;

procedure RepairPouchesIfNeeded
begin
if HavePouchesDecayed then begin
RepairPouches; // couldnt you just put this into above?
end;
end;

procedure PrintStatsReport
var
StatsHours: Extended;
begin
StatsHours := StatsScriptStart.GetTime / (1000.0 * 60.0 * 60.0);
Print('----------------------------------');
Print('----------------------------------');
Print('----- vwxz''s Astral Crafter -----');
Print('Ran for ' + MsToTime(StatsScriptStart.GetTime, TIME_FORMAL) + ' (' + FloatToStr(StatsHours) + ' hours)');
Print('Completed ' + IntToStr(StatsNumIterations) + ' iterations (' + FloatToStr(StatsNumIterations/StatsHours) + ' per hour)');
Print('Crafted (estimated) ' + IntToStr(StatsNumIterations*50) + ' ess (' + FloatToStr(StatsNumIterations*50.0/StatsHours) + ' per hour)');
Print('Crafted (counted) ' + IntToStr(StatsEssCrafted) + ' ess (' + FloatToStr(StatsEssCrafted/StatsHours) + ' per hour)');
Print('Repaired pouches ' + IntToStr(StatsNumRepairs) + ' times');
Print('----- vwxz''s Astral Crafter -----');
Print('----------------------------------');
Print('----------------------------------');
end;

procedure MainLoopIteration
begin
WaitRandom(1000); // maybe in mainloop put:
TeleToMoonclan; // if not isLoggedIn then
WalkToBank; // players[currentPlayer].login()
BankStep;
RepairPouchesIfNeeded; // and in each of your func/procs put if not isLoggedIn then exit
WalkToAltar; // so if it logs out it will exit everything and until it hits the login bit above.
CraftStep;
StatsNumIterations := StatsNumIterations + 1;
PrintStatsReport;
end;

begin
SetUp;
repeat
MainLoopIteration;
until False;
end.

vwxz

2014-02-04 07:57:43

From: The Mayor
Nice, good job with t3h script :) Isn't this about 2m/h? There are many places where this could potentially fail (1 lag spike could screw it up as it only does things once). I have added some comments:


Thanks for the feedback!

RSWiki claims this is 2.1 m/h ideally. I have not been able to get anywhere near that, not manually and not with the script. I suspect they are expecting that you play nearly perfectly to the game tick (the same sort of thing as low alch fishing etc). I am currently at 1 m/h or so. More realistically, if I can get 1.3-1.5 m/h while simulating a casual human (account for delays and slower pouch repairs due to using Contact NPC rather than Repair Rune Pouch), then I am happy with this script.

You're right in that lag spikes can cause an individual iteration to fail. However, there's a big built-in fail-safe in that the script resets its state at the start of every iteration when it teleports to Moonclan. I'm in the process of putting in additional fail-safes.

Thanks for the comments. I'm in the process of fixing up the corner cases and adding in comments for the individual functions. I know I have some "begin … end"s that are strictly speaking unnecessary, but I put them in for ease of readability to know where block statements are. Some functions have gotten a lot bigger/smaller as this script has evolved, and I am going to refactor them after I'm done putting in the other improvements.

Clarity

2014-02-04 08:16:10

Yeah, a lot of RSWiki's figures assume you play perfectly and efficiently, which would just be unrealistic to do for hours straight (unless you're a top rank high scorer I guess).

vwxz

2014-02-04 08:37:15

From: Clarity
Yeah, a lot of RSWiki's figures assume you play perfectly and efficiently, which would just be unrealistic to do for hours straight (unless you're a top rank high scorer I guess).


I used to know a few guys who did stuff like that. I would bet they ran into a *LOT* of bot detection heuristics.

Kyle

2014-02-04 08:54:23

Hey man, just checked through this. One thing that needs to be added is you don't free your Pure ess bitmap, it's a small bitmap and won't make a huge difference, but you need to make sure you always do :)
@vwxz

vwxz

2014-02-04 09:45:46

From: elfyyy
Hey man, just checked through this. One thing that needs to be added is you don't free your Pure ess bitmap, it's a small bitmap and won't make a huge difference, but you need to make sure you always do :)
@vwxz


There's a way to register something to be run when the script is stopped, right? Where can I find the docs/syntax for that? I think I remember seeing it existed, but I don't remember a name to do a search for.

Kyle

2014-02-04 09:50:39

From: vwxz
There's a way to register something to be run when the script is stopped, right? Where can I find the docs/syntax for that? I think I remember seeing it existed, but I don't remember a name to do a search for.


Well make a seperate function that free's the bitmaps/dtms. Then at the beginning of your main loop you call AddonTerminate('NameOfProcedure'); Then, when the script terminates, it will run the procedure :)

vwxz

2014-02-04 10:04:14

From: elfyyy
Well make a seperate function that free's the bitmaps/dtms. Then at the beginning of your main loop you call AddonTerminate('NameOfProcedure'); Then, when the script terminates, it will run the procedure :)


Thanks! Putting that into the next revision.

nigerson

2014-02-04 17:55:14

So, I ran this for about an hour until I began running into issues. When my pouches begin to degrade it does not fix them. It clicks on the dark mage on npc contact, then goes through the chat, and during the choice of whether to "fix the pouches" or "nevermind" it chooses nevermind. Also, would it be possible to add pouch repair spell, since it is much faster and makes the pouches last slightly longer.

vwxz

2014-02-04 19:47:39

From: nigerson
So, I ran this for about an hour until I began running into issues. When my pouches begin to degrade it does not fix them. It clicks on the dark mage on npc contact, then goes through the chat, and during the choice of whether to "fix the pouches" or "nevermind" it chooses nevermind. Also, would it be possible to add pouch repair spell, since it is much faster and makes the pouches last slightly longer.


Can you please post a screenshot of where it fails? It should be the same for everyone, but I just want to double check. It works so me, so I'm trying to narrow down what is different for you.

Pouch repair spell is the preferred method (results in slightly better average time per iteration), but I do not have an account with access to it, and so I can't develop/test against it currently.

nigerson

2014-02-04 21:16:57

From: vwxz
Can you please post a screenshot of where it fails? It should be the same for everyone, but I just want to double check. It works so me, so I'm trying to narrow down what is different for you.

Pouch repair spell is the preferred method (results in slightly better average time per iteration), but I do not have an account with access to it, and so I can't develop/test against it currently.

I need to study for a history test right now, but I might have a snow day tomorrow, if that's the case I'll post a screenshot first thing 2moro morning. Btw, Ashaman released a livid farms script if you needed some help gaining that spell.

vwxz

2014-02-04 21:36:46

From: nigerson
I need to study for a history test right now, but I might have a snow day tomorrow, if that's the case I'll post a screenshot first thing 2moro morning. Btw, Ashaman released a livid farms script if you needed some help gaining that spell.


RS as a whole (and therefore SMART in particular) is failing to load/login for me since most recent update anyway, so I will need to wait for that to get fixed before I can test/modify the script anyway.

EDIT:

Looks like other people are also having client crashes. http://villavu.com/forum/showthread.php?t=107960

newb cheater

2014-02-05 08:35:10

Hey, just tried running this, and so far it is yielding rather good results (I sped up the mouse and also reduced the wait times). Only thing is that after some time when I checked back, the pouches were all degraded. Good thing is wasnt to the extent whereby it disintegrated.

The repair pouch spell would be a great addition if it could be added. Also, it would also be better if you were to withdraw the runes as and when you need them for pouch repair or npc contact. This would greatly improve the runes made per trip. It is not a whole lot, approx 6 runes per trip, but when you add it up over a long period it does add up.

Google used to have a function for spell contact and pouch repair. Not sure if the script is still available in the outdated section. But it can be used as a source of reference. Would be great if repair pouch could be implemented!

As for the walking ,so far so good. Only thing is it occasionally runs along the wall inside Lunar city. However, nothing to worry about as it rectifies on its own.

white_lycan

2014-02-06 00:05:44

for anyone having issues with the repair you could change the option it chooses. its easy since there are only two options so just change it. :o haha you're making an impact vwxy,the day after you put made this post astrals have been dropping in price. you're doing something right lol keep it up.

newb cheater

2014-02-06 06:06:14

From: white_lycan
for anyone having issues with the repair you could change the option it chooses. its easy since there are only two options so just change it. :o haha you're making an impact vwxy,the day after you put made this post astrals have been dropping in price. you're doing something right lol keep it up.


Good point, however, pouch detection is still a little buggy. However a cool addition would be the withdrawal of runes for spell only when needed. Btw to all who are using this, please sell at market rate +5gp or at the very least market rate. Please be patient, it would be a bummer if this crashed :(

white_lycan

2014-02-06 14:47:57

it decreased like 13 today lol. Anyways heres a repair spell i made. It works perfect for me. If you don't know how to add it you're going to have to find out for yourself. Once again its real simple, and i just started learning.

procedure CastRepairSpell
begin
Repeat
ActionBar.ClickSlot(9);
Mouse(tabBackpack.getSlotBox(SlotNum).GetMiddle, MOUSE_LEFT);
wait(900);
until (HavePouchesDecayed = False);
end;

ogustuce

2014-02-20 01:18:25

hey I made 2 flawless astral rc script a while ago. 1 for use with repeair pouch speel other for npc contact to repair. if you wanna check em up (for ideas maybe), pm me.

they are outdated now tho, they were for rs2 =p

nigerson

2014-02-20 13:36:42

From: white_lycan
it decreased like 13 today lol. Anyways heres a repair spell i made. It works perfect for me. If you don't know how to add it you're going to have to find out for yourself. Once again its real simple, and i just started learning.

procedure CastRepairSpell
begin
Repeat
ActionBar.ClickSlot(9);
Mouse(tabBackpack.getSlotBox(SlotNum).GetMiddle, MOUSE_LEFT);
wait(900);
until (HavePouchesDecayed = False);
end;


Just one question, how do I add it? Also, how do I turn off his npc contact spell then?

jayman19981

2014-04-22 01:47:14

Couple of things to add/fix:

when using npc contact to repair pouch the conversation goes to when youo have to tell him to repair but instead of saying repair it says never mind and doesn't repair.


Destroy or deposit strange rocks

The Mayor

2014-04-22 01:51:38

From: jayman19981
Couple of things to add/fix:

when using npc contact to repair pouch the conversation goes to when youo have to tell him to repair but instead of saying repair it says never mind and doesn't repair.


Destroy or deposit strange rocks



Script writer is inactive, you'll have to update these thing yourself :)

jayman19981

2014-04-30 16:19:19

I know the writer is not active but i just wanted to report this:

while running the bot at one point it destroyed or dropped everything i was wearing and droped all the runes in my invy and all my pouches. i lost 2k laws 1 k cosmic 2 k airs and 50k+ astral runes.

im just wonder why this would happen.

Ian

2014-04-30 16:21:14

From: jayman19981
I know the writer is not active but i just wanted to report this:

while running the bot at one point it destroyed or dropped everything i was wearing and droped all the runes in my invy and all my pouches. i lost 2k laws 1 k cosmic 2 k airs and 50k+ astral runes.

im just wonder why this would happen.

Are you sure you didn't die?

jayman19981

2014-04-30 16:46:05

From: BMWxi
Are you sure you didn't die?


i just thought of that.. i think that is why. but wouldn't i keep all my astrals?

riwu

2014-04-30 17:50:24

From: jayman19981
i just thought of that.. i think that is why. but wouldn't i keep all my astrals?

No, astrals are dropped on death. Just check your death interface.

The Mayor

2014-04-30 17:57:41

It's not every day a script drops 15m+ :p

jayman19981

2014-04-30 18:03:26

From: The Mayor
It's not every day a script drops 15m+ :p


ikr.. whatever i guess it was my fault for keeping auto retaliate on.

The Mayor

2014-04-30 18:05:16

From: jayman19981
ikr.. whatever i guess it was my fault for keeping auto retaliate on.


Reminds me of the time I dropped like 100k nats/astrals at Livid farm when Flights script got me killed haha. Remember that @Sjoe

Sjoe

2014-04-30 18:50:27

From: The Mayor
Reminds me of the time I dropped like 100k nats/astrals at Livid farm when Flights script got me killed haha. Remember that @Sjoe


Damn that must have been like last year, don't really recall it :p

Eejit

2014-05-02 07:57:56

This guide seems to suggest you can craft 3600 essence per hour. I guess there is a lot of room for improvement in your script.
http://runescape.wikia.com/wiki/Money_making_guide/Crafting_astral_runes

Edit: I reduced some of the waits and now its 50% more efficient.

b12hitman

2014-05-22 12:36:02

I think the map is now outdated? because of the icon updates it cant seem to find the bank

iBlank

2014-05-26 17:08:02

It's working fine for me. I tweaked a few of the wait times and I have gotten multiple 5 hour runs out of it. I was curious though, is there a way to make it just print out the progress report instead of constant debug information? Thanks!

keff

2014-06-09 18:44:59

Only problem I've had with this script is walking to bank from teleport. If I manually walk about 2 steps west from tele location it does the rest of the run flawlessly, until it teleports again and can't find the bank. Trying a few things to fix, but no success so far.

EDIT: Got everything working, made a whole new map and changed a few lines in the script, 1900/hr more or less now, will check if I can tweak it higher tomorrow! Thanks for a great script :)

The Mayor

2014-06-12 21:22:12

From: keff
Only problem I've had with this script is walking to bank from teleport. If I manually walk about 2 steps west from tele location it does the rest of the run flawlessly, until it teleports again and can't find the bank. Trying a few things to fix, but no success so far.

EDIT: Got everything working, made a whole new map and changed a few lines in the script, 1900/hr more or less now, will check if I can tweak it higher tomorrow! Thanks for a great script :)


You should rewrite this and release it :D since the script writer hasn't been around in 5 months.

keff

2014-06-13 03:50:27

From: The Mayor
You should rewrite this and release it :D since the script writer hasn't been around in 5 months.


I'll look into releasing a rewrite for sure if there's a demand for it!

jayman19981

2014-06-20 19:25:59

From: keff
I'll look into releasing a rewrite for sure if there's a demand for it!


I would Like to see a rewrite