PDA

View Full Version : Ivy Chopper Ultra !



Press Play
02-12-2013, 11:59 AM
http://imageshack.com/a/img823/3883/9twy.png
Status: Working!
14th July, 2014 (Post RS3)
Version: 1.10



Desciption
This Ivy Chopper is unique and has special powers!

Targets individual ivys
Looks for Ivys that are unoccupied by other players
And the usual stuff too. Antiban, bird's nests etc.


Locations Tested:

Varrock (near Yews; face south)
Varrock (near farming patch; face east)
Falador (near Gamers' Grotto; face south)


XP/Hour:
http://img28.imageshack.us/img28/3593/ivyxpperhour.png
http://runescape.wikia.com/wiki/Pay-to-play_Woodcutting_training#Chopping_Ivy_Experience_ Per_Hour_by_level

Achieved 99's
-daazndagger- (x2)
stuartroad
Paradox The Divine
WinterDream
count to potato
stayon
Nerrultheretard
Mantasx27
war curser
godzassassin
taylar

Count = 12

Instructions/Setup
Fill in the script variables between the 'START' and 'STOP' signs.
[------------------------------------------------------------------------------]
[ Instructions: | ]
[-------------------. ]
[ 1. Setup variables as required. ]
[ 2. You must be standing in front of an Ivy, duh! ]
[ 3. Press PLAY! ]
[------------------------------------------------------------------------------}
Important: For XP calculations, make sure you put your XP Counter here.
http://puu.sh/62rVH.png

To-do list:

Bank birds' nests with individualised walking/banking functions?
Suggest me some things!

Known Bugs:

None.

Version History:
[------------------------------------------------------------------------------]
[ Features/Log: | ]
[-------------------. ]
[ ## Version 1.00 (12th Feb, 2013): ]
[ - Initial release! ]
[ ## Version 1.01 (Unreleased, 2013): ]
[ - Improved chat finding functions for birds' nests. ]
[ - Takes a screenshot if a player fails. ]
[ - Screenshots hide RSN and stats. ]
[ ## Version 1.10 (14th July, 2014): ]
[ - Updated for RS3! ]
[ - Had to redo birds' nest functions. ]
[------------------------------------------------------------------------------]

Top Progress Reports:

-daazndagger- :
Paused at 25 hours to claim spins (9 Spins - one was a huge lamp)
Paused at 29 hours to bank nests + claim spins (4 spins)
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| vy [C]hopper [U]ltra |
| Version 1.01_Dev |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 41 hr 52 min 32 sec |
| Exp Gained : 2563812 |
| Nests Gotten : 51 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 41 hr 14 min 31 sec |
| Exp Gained : 2563812 |
| Exp / Hour : 62178 |
| Nests Gotten : 51 |
| False Reason : RS Updated |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

[I]stuartroad: internet connection failed
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 41 hr 34 min 40 sec |
| Exp Gained : -212801 |
| Nests Gotten : 11 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 41 hr 11 min 16 sec |
| Exp Gained : -212801 |
| Exp / Hour : -5167 |
| Nests Gotten : 11 |
| False Reason : Could not chop Ivy |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Previous Views:


IvyChopperUltra[ICU]V1.00.simba (28.2 KB, 310 views)

Ian
02-12-2013, 01:24 PM
Congrats on the release! :D

Gucci
02-12-2013, 01:41 PM
Congrats on the release

Sjoe
02-12-2013, 03:07 PM
Gratz!, very nice lay-out

Press Play
02-12-2013, 09:15 PM
Congrats on the release! :D

Congrats on the release

Gratz!, very nice lay-out

Thanks guise! :)

To whoever downloaded the script, you might get a run-time error:
Error: Exception: The bitmap[0] does not exist at line 384

It stopped my script after the following proggy. Please download again :)


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00_Dev |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 6 hr 30 min 26 sec |
| Exp Gained : 399000 |
| Nests Gotten : 16 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 6 hr 29 min 5 sec |
| Exp Gained : 399000 |
| Exp / Hour : 61542 |
| Nests Gotten : 16 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

EDIT: My apologies; please download again!

Press Play
02-14-2013, 09:31 AM
Okay, so don't hate me for double posting, but I have such exciting news to share, that I can't simply 'edit my post'.

Today I got an (almost) 20 hour long progress report, and a full inventory of birds' nests (27 nests and 1 stupid stack of valentines hearts lol)! I raked in over 1.2m xp :)

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 19 hr 57 min 5 sec |
| Exp Gained : 1220275 |
| Nests Gotten : 27 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 19 hr 54 min 40 sec |
| Exp Gained : 1220275 |
| Exp / Hour : 61320 |
| Nests Gotten : 27 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Thus, I have decided (for your benefit), that I will start making customised walking/banking functions for longer proggies! I will start with Falador (north spot near Gamers' Grotto), since there are heaps of Ivy here, close to the bank, hardly anyone talks (unlike the Varrock GE spot). Please suggest the ones you would like done! I will be adding them to upcoming versions, yay! :D

Stayon
02-14-2013, 04:02 PM
Good on you for working on banking the nests! Sounds like it'll be epic afterwards :) will use!

litoris
02-16-2013, 03:53 PM
State of the art script right here, with failsafe nest finding. I only saw it miss a nest once, and that was because it got two nests within 40 seconds, and it didn't understand that there was a new nest message in the chatbox. Perhaps you could check for two lines of chat instead of a single one?

Press Play
02-16-2013, 10:27 PM
State of the art script right here, with failsafe nest finding. I only saw it miss a nest once, and that was because it got two nests within 40 seconds, and it didn't understand that there was a new nest message in the chatbox. Perhaps you could check for two lines of chat instead of a single one?

Thanks! The chat text finding is a little bit buggy, but it should return that a nest is found more often then there are nests found. (Really poor sentence :p). Anywho, it actually checks all the chat lines and does a count on how many of them are red. If you'd like, define:
{$DEFINE SCREENSHOT}at the top of the script and it will screenshot every time it thinks there's a nest :) Then just zip the file and send it through! That'd be an awesome help :)

N01sPerfect
02-17-2013, 04:10 AM
[Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(281:149): Invalid number of parameters at line 280

Help please.

Don't just link me to some bullshit threads because I've already read them. :(

Ian
02-17-2013, 04:29 AM
[Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(281:149): Invalid number of parameters at line 280

Help please.

Don't just link me to some bullshit threads because I've already read them. :(

Scroll down in the SmartParams file until you see something that has a -1 near the end. Delete the -1 and the comma before it, then save the file. Either that or make the script use SMART8. Kinda tempted to link you to a thread though, because you could easily find the same info there.

Specifically, change
Result:= SmartSpawnClient(ReplaceWrap(PluginPath, '\', '/', [rfReplaceAll]), Params[0], ',' + Params[1], 765, 553, 's', '', '', -1);
to
Result:= SmartSpawnClient(ReplaceWrap(PluginPath, '\', '/', [rfReplaceAll]), Params[0], ',' + Params[1], 765, 553, 's', '', '');

Press Play
02-17-2013, 07:46 AM
Either that or make the script use SMART8. Kinda tempted to link you to a thread though, because you could easily find the same info there.
My script does use SMART8 :)


[Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(281:149): Invalid number of parameters at line 280

Help please.

Don't just link me to some bullshit threads because I've already read them. :(
And, I am going to link you. Have you read this thread (http://villavu.com/forum/showthread.php?t=87801)? It is the link to update SMART to v8.0.

Alternatively, if you would rather not click the link. Try changing {$DEFINE SMART8} to {$DEFINE SMART} at the very top of the script.

PS; I like your name N01sPerfect, but not your attitude. You're lucky to even get help.

Alerion
02-19-2013, 07:34 PM
Wonderful script! I used it last night and it's still running without flaws except that it's not picking up nests. Is this intentional? By the way, one improvement that I would suggest is that the script left-click the ivy rather than right click and select. That way it will replicate human behaviour more closely (I imagine humans that are chopping ivy for long periods of time aren't right-clicking it constantly).

Here's today's proggy:

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 2 hr 43 min 40 sec |
| Exp Gained : 186865 |
| Nests Gotten : 0 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 2 hr 41 min 43 sec |
| Exp Gained : 186865 |
| Exp / Hour : 69639 |
| Nests Gotten : 0 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Press Play
02-20-2013, 12:04 AM
Wonderful script! I used it last night and it's still running without flaws except that it's not picking up nests. Is this intentional? By the way, one improvement that I would suggest is that the script left-click the ivy rather than right click and select. That way it will replicate human behaviour more closely (I imagine humans that are chopping ivy for long periods of time aren't right-clicking it constantly).

Here's today's proggy:

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 2 hr 43 min 40 sec |
| Exp Gained : 186865 |
| Nests Gotten : 0 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 2 hr 41 min 43 sec |
| Exp Gained : 186865 |
| Exp / Hour : 69639 |
| Nests Gotten : 0 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Replied to your PM :) Umm, it should be picking up nests. If you want to help me out a bit, you can add:
{$DEFINE SCREENSHOT}to the top of the script, and it will screenshot every time it finds a nest. Then, just zip up the files and PM them to me :)

Le Jingle
02-20-2013, 12:26 AM
Replied to your PM :) Umm, it should be picking up nests. If you want to help me out a bit, you can add:
{$DEFINE SCREENSHOT}to the top of the script, and it will screenshot every time it finds a nest. Then, just zip up the files and PM them to me :)

Just going out on a limb here, I like the custom defines. I found this out the other day and I indeed like using it for onscreen paint (still messing around with paint portion). IMO makes it clearer to do something defined at the top of the script, versus setting a variable to true, and building the code with the unneeded variables.

Also, forget if I said this already, but nice release!

Cheers,
Lj

Press Play
02-20-2013, 12:44 AM
Just going out on a limb here, I like the custom defines. I found this out the other day and I indeed like using it for onscreen paint (still messing around with paint portion). IMO makes it clearer to do something defined at the top of the script, versus setting a variable to true, and building the code with the unneeded variables.

Also, forget if I said this already, but nice release!

Cheers,
Lj

Yes, a while back, I used variables and I didn't like it that much. One day I said to myself, "Hey, compiler directives!" And thanks! :)

Oh, and I almost forgot to post this proggy. In future, it should make a player inactive upon "RS Updated".

Paused at 25 hours to claim spins (9 Spins - one was a huge lamp)
Paused at 29 hours to bank nests + claim spins (4 spins)
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.01_Dev |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 41 hr 52 min 32 sec |
| Exp Gained : 2563812 |
| Nests Gotten : 51 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 41 hr 14 min 31 sec |
| Exp Gained : 2563812 |
| Exp / Hour : 62178 |
| Nests Gotten : 51 |
| False Reason : RS Updated |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

N01sPerfect
02-20-2013, 11:06 AM
Thanks for your help, will post my proggy when I get a good one.

Alerion
02-20-2013, 07:40 PM
It seems to have started collecting nests after your advice -daazndagger-! I'm using this script to 99 so I'll let you know when I achieve my goal. Cheers! :)

Press Play
02-20-2013, 09:16 PM
Thanks for your help, will post my proggy when I get a good one.
Thankyou good sir! :)


It seems to have started collecting nests after your advice -daazndagger-! I'm using this script to 99 so I'll let you know when I achieve my goal. Cheers! :)
Post me some nice long proggies too! :)

Stayon
02-25-2013, 08:14 AM
Bought a dragon hatchet and gonna run this for awhile. Will post proggy when I get a decent one :)

Comp restarted itself overnight lol, didn't grab a proggy. I was watching it for roughly the first hour or so though. It's great how it scans for ivy's not in use, definitely puts this much higher in terms of usability/staying undetected above any other ivy chopper. Another job well done.

Press Play
02-28-2013, 11:47 AM
Bought a dragon hatchet and gonna run this for awhile. Will post proggy when I get a decent one :)

Comp restarted itself overnight lol, didn't grab a proggy. I was watching it for roughly the first hour or so though. It's great how it scans for ivy's not in use, definitely puts this much higher in terms of usability/staying undetected above any other ivy chopper. Another job well done.

I just checked the prices of dragon hatchet... WOW. Must be EoC; making it harder to kill Dagannoths erghh! Lucky I had one before that! And thankyou :) I like to be different and challenge myself. Always good to hear positive feedback. I think this is actually the most stable script I have released so far!


NEWS:

I am the first person to get 99 Woodcutting with this script yay! Unfortunately, I was unable to get a screenshot when I hit it because I was at work. As a result, I also gained a little extra experience, whoops! But more experience never hurt anybody... So, instead, here are some nice pictures. First, of my skill cape, second, of my loot (nests). I used this script from about level 70. I forgot to wear a strung rabbit foot most of the time, but when I did have it, it increased nest drops incredibly!

http://imageshack.us/a/img705/4430/my99wc.png

http://imageshack.us/a/img855/3869/nestloot.png

Here is the progress report:
Paused at 13 hours to deposit a full inventory of nests and to cliam spins (9).
** Warning in SixHourFix: Could not log in player **
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.01_Dev |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 22 hr 50 min 1 sec |
| Exp Gained : 1569400 |
| Nests Gotten : 17 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 22 hr 13 min 47 sec |
| Exp Gained : 1569400 |
| Exp / Hour : 70640 |
| Nests Gotten : 17 |
| False Reason : Session Expired |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Successfully executed.

And also, yes, banking support will still be coming out - it's just a bit harder than I thought to make the walking functions, but I'll get there, because I have a second account to test it one that needs 99 woodcutting...

Stayon
02-28-2013, 02:42 PM
Congrats on 99 man! Well done :)

Stayon
02-28-2013, 10:41 PM
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 7 hr 33 min 22 sec |
| Exp Gained : 459515 |
| Nests Gotten : 1 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 7 hr 23 min 4 sec |
| Exp Gained : 459515 |
| Exp / Hour : 62236 |
| Nests Gotten : 1 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Manually stopped.


Sick work, seriously. Thanks so much for putting in the time for this. I really do love how it goes to a seperate ivy instead of the other scripts/bots who all hug the same ivy and mess it up for each other. Steller job daazn.


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 20 hr 40 min 41 sec |
| Exp Gained : 1473307 |
| Nests Gotten : 5 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 20 hr 30 min 33 sec |
| Exp Gained : 1473307 |
| Exp / Hour : 71868 |
| Nests Gotten : 5 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 9 hr 4 min 12 sec |
| Exp Gained : 689272 |
| Nests Gotten : 1 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 8 hr 59 min 22 sec |
| Exp Gained : 689272 |
| Exp / Hour : 76727 |
| Nests Gotten : 1 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/


More proggies! Only complaint is I noticed it misses quite a few nests :/. Also you IMO you shouldn't bother with banking.. it's so close to a bank + it'll take a LONG LONG run to ever fill up. 20 hours/5 nests for me.. lol :(

Used this script since ~71 woodcutting, currently 92. Halfway to 99 :)

stuartroad
03-15-2013, 11:12 AM
this isnt stopped, still going strong! i have noticed that it doesnt always pick up nests, dont know how often, cause i am not watching it 100% of the time, but i have noticed about 2 in the time it has been running.


|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 22 hr 54 min 43 sec |
| Exp Gained : 1590015 |
| Nests Gotten : 8 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 22 hr 41 min 59 sec |
| Exp Gained : 1590015 |
| Exp / Hour : 70096 |
| Nests Gotten : 8 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|

Press Play
03-15-2013, 11:23 AM
Sick work, seriously. Thanks so much for putting in the time for this. I really do love how it goes to a seperate ivy instead of the other scripts/bots who all hug the same ivy and mess it up for each other. Steller job daazn.

More proggies! Only complaint is I noticed it misses quite a few nests :/. Also you IMO you shouldn't bother with banking.. it's so close to a bank + it'll take a LONG LONG run to ever fill up. 20 hours/5 nests for me.. lol :(

Used this script since ~71 woodcutting, currently 92. Halfway to 99 :)
Those are some nice prggies there! especially the 20 hour one :) Might add it to the first post; and also goodluck for 99 - shouldn't take you too long ;)


this isnt stopped, still going strong! i have noticed that it doesnt always pick up nests, dont know how often, cause i am not watching it 100% of the time, but i have noticed about 2 in the time it has been running.


|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 22 hr 54 min 43 sec |
| Exp Gained : 1590015 |
| Nests Gotten : 8 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 22 hr 41 min 59 sec |
| Exp Gained : 1590015 |
| Exp / Hour : 70096 |
| Nests Gotten : 8 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
Oooooo! I'll be interested to know how long it runs for :) On the note of the bird's nests, I've just been testing it recently, and yes, it does seem to miss some. I'm not too sure why at the moment, but I'll definitely look into it! Thanks for testing :)

Stayon
03-15-2013, 03:06 PM
Those are some nice prggies there! especially the 20 hour one :) Might add it to the first post; and also goodluck for 99 - shouldn't take you too long ;)


Oooooo! I'll be interested to know how long it runs for :) On the note of the bird's nests, I've just been testing it recently, and yes, it does seem to miss some. I'm not too sure why at the moment, but I'll definitely look into it! Thanks for testing :)

Good to hear. I've actually had multiple 20 hour runs but don't see the need to post all of them :p. Once the nest issues get sorted it'll be flawless ;)

stuartroad
03-16-2013, 06:30 AM
finally failed, and i think its cause i was downloading :( total xp gained was 3.2m

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 41 hr 34 min 40 sec |
| Exp Gained : -212801 |
| Nests Gotten : 11 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 41 hr 11 min 16 sec |
| Exp Gained : -212801 |
| Exp / Hour : -5167 |
| Nests Gotten : 11 |
| False Reason : Could not chop Ivy |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Press Play
03-16-2013, 07:15 AM
finally failed, and i think its cause i was downloading :( total xp gained was 3.2m

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 41 hr 34 min 40 sec |
| Exp Gained : -212801 |
| Nests Gotten : 11 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 41 hr 11 min 16 sec |
| Exp Gained : -212801 |
| Exp / Hour : -5167 |
| Nests Gotten : 11 |
| False Reason : Could not chop Ivy |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/
That is one monster proggy! It pretty much matches the longest on on the first post! It was probably an internet time-out; mine did that too. Next time, if you post the proggy one before, it will show the real xp and xp/hr, like so:

Ivy not found.
Loging out...
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.01_Dev |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 14 min 36 sec |
| Exp Gained : 14298 |
| Nests Gotten : 0 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 12 min 57 sec |
| Exp Gained : 14298 |
| Exp / Hour : 71490 |
| Nests Gotten : 0 |
| False Reason : Could not chop Ivy |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

All Players Inactive, or timed out. Script is finished!
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.01_Dev |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 14 min 41 sec |
| Exp Gained : -16753656 |
| Nests Gotten : 0 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 13 min 2 sec |
| Exp Gained : -16753656 |
| Exp / Hour : -77324566 |
| Nests Gotten : 0 |
| False Reason : Could not chop Ivy |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Successfully executed.

Here's a real proggy of mine that's recent:
Paused at 26 hours to claim spins (10)
and bank 24 nests + 2 strange rocks

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.01_Dev |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 27 hr 11 min 46 sec |
| Exp Gained : 1798979 |
| Nests Gotten : 17 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 27 hr 7 min 29 sec |
| Exp Gained : 1798979 |
| Exp / Hour : 66342 |
| Nests Gotten : 17 |
| False Reason : Could not chop Ivy |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Kosogevaar
03-17-2013, 01:39 PM
[Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(281:149): Invalid number of parameters at line 280
Compiling failed.

any ideas what the problem is here?

Press Play
03-17-2013, 08:07 PM
[Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(281:149): Invalid number of parameters at line 280
Compiling failed.

any ideas what the problem is here?

Do you have SMARTv8? If not see this thread. (http://villavu.com/forum/showthread.php?t=87801)Or try changing

{$DEFINE SMART8}

to

{$DEFINE SMART}

At the top of the script.

stuartroad
03-18-2013, 04:34 AM
thanks buddy, just got 99, much appreciated, xxo


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 30 hr 14 min 39 sec |
| Exp Gained : 2154267 |
| Nests Gotten : 8 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 30 hr 10 min 56 sec |
| Exp Gained : 2154267 |
| Exp / Hour : 71412 |
| Nests Gotten : 8 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Press Play
03-18-2013, 09:08 AM
thanks buddy, just got 99, much appreciated, xxo


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 30 hr 14 min 39 sec |
| Exp Gained : 2154267 |
| Nests Gotten : 8 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 30 hr 10 min 56 sec |
| Exp Gained : 2154267 |
| Exp / Hour : 71412 |
| Nests Gotten : 8 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/
Congratulations! And beast proggy dude! Second on the list, wewwwt!

PS, I like me new name :p

Scriptimanic
03-20-2013, 03:03 AM
Won't even launch :(

[Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(79:5): Unknown identifier 'ScriptimanicRSReady' at line 78
Compiling failed.

Press Play
03-20-2013, 04:54 AM
Won't even launch :(

[Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(79:5): Unknown identifier 'ScriptimanicRSReady' at line 78
Compiling failed.

Umm, why is your username in the SRL include? :/ Try force update your SRL (SRL > Settings > Override update; then, SRL > Update). And make sure you have SRMATv8 too.

Im New Sry
03-20-2013, 12:42 PM
Won't even launch :(

[Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(79:5): Unknown identifier 'ScriptimanicRSReady' at line 78
Compiling failed.

Delete "Scriptimanic" from the whole identifier 'ScriptimanicRSReady' and just leave 'RSReady' there.

Stayon
03-20-2013, 11:59 PM
:(


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 23 hr 23 min 4 sec |
| Exp Gained : -1 |
| Nests Gotten : 11 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 23 hr 14 min 30 sec |
| Exp Gained : -1 |
| Exp / Hour : 0 |
| Nests Gotten : 11 |
| False Reason : Login Failed |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/


Came back to 921482 windows of runescape.com. Wanted to go for the longest proggy too >.<

Press Play
03-21-2013, 08:41 AM
:(


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 23 hr 23 min 4 sec |
| Exp Gained : -1 |
| Nests Gotten : 11 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 23 hr 14 min 30 sec |
| Exp Gained : -1 |
| Exp / Hour : 0 |
| Nests Gotten : 11 |
| False Reason : Login Failed |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/


Came back to 921482 windows of runescape.com. Wanted to go for the longest proggy too >.<

Still a good long run :) Yeah, I've had that bug too :/ I'm pretty sure it's something in SRL - but the thing is, that it's hard to replicate :(

Stayon
03-21-2013, 02:37 PM
Still a good long run :) Yeah, I've had that bug too :/ I'm pretty sure it's something in SRL - but the thing is, that it's hard to replicate :(

Yeah I believe it is also from what I've read around here. Not complaining though. Still gained 2 levels during it. Up to 94 now :)

Press Play
03-21-2013, 07:16 PM
Yeah I believe it is also from what I've read around here. Not complaining though. Still gained 2 levels during it. Up to 94 now :)

Hehe, I'm beating you on my second account :p 96 wc :) I'm glad you like it !

Stayon
03-21-2013, 07:20 PM
Hehe, I'm beating you on my second account :p 96 wc :) I'm glad you like it !

Well if I knew we were racing I would have finished :p. lol jk. But I like to mix up my skills that I suicide. I'm a nub and not max combat yet so doing that too >.>

Paradox The Divine
03-26-2013, 01:08 PM
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 5 hr 37 min 10 sec |
| Exp Gained : 415958 |
| Nests Gotten : 14 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 5 hr 34 min 15 sec |
| Exp Gained : 415958 |
| Exp / Hour : 74722 |
| Nests Gotten : 14 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Stayon
03-28-2013, 08:27 PM
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 5 hr 37 min 10 sec |
| Exp Gained : 415958 |
| Nests Gotten : 14 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 5 hr 34 min 15 sec |
| Exp Gained : 415958 |
| Exp / Hour : 74722 |
| Nests Gotten : 14 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/


Luckbox! I can't get 14 nests after 20 hour runs lol. 1 or 2 nests for 7 hour runs :/

Press Play
03-29-2013, 01:26 AM
Hi all, got my second account to 99 woodcutting a few days ago :)
This is what I achieved with ease in only one month's worth of membership!

80 to 99 Woodcutting!
1 to 99 Fletching! (see my sig for my Fantastic Fletcher!)
$$$

http://img11.imageshack.us/img11/6638/wcivy99.png

Paradox The Divine
03-29-2013, 01:41 AM
Luckbox! I can't get 14 nests after 20 hour runs lol. 1 or 2 nests for 7 hour runs :/

Rabbit's foot necklace

Just want to say I got 99 WC a couple days ago, but I caught bronchitis so I've been in bed mostly.

Stayon
03-29-2013, 01:52 AM
Rabbit's foot necklace

Just want to say I got 99 WC a couple days ago, but I caught bronchitis so I've been in bed mostly.

I do wear it :(


Hi all, got my second account to 99 woodcutting a few days ago :)
This is what I achieved with ease in only one month's worth of membership!

80 to 99 Woodcutting!
1 to 99 Fletching! (see my sig for my Fantastic Fletcher!)
$$$

http://img11.imageshack.us/img11/6638/wcivy99.png

Major grats bro! Your scripts are definitely stable enough to go for long runs :)

Press Play
03-29-2013, 01:56 AM
Just want to say I got 99 WC a couple days ago, but I caught bronchitis so I've been in bed mostly.
Added to the 99s list! Congratz!


Major grats bro! Your scripts are definitely stable enough to go for long runs :)
Thankyou! :D

Stayon
03-29-2013, 02:01 AM
Added to the 99s list! Congratz!


Thankyou! :D

Currently 97, i'm using the script on and off between superheating/waiting on GE limits etc. That's the only reason why I haven't posted any proggies. Think when I'm 98 I'll just go straight for it :)

WinterDream
03-29-2013, 01:37 PM
Just got 99 WC! from 94 great script.

Press Play
03-29-2013, 02:32 PM
Currently 97, i'm using the script on and off between superheating/waiting on GE limits etc. That's the only reason why I haven't posted any proggies. Think when I'm 98 I'll just go straight for it :)
No worries :)


Just got 99 WC! from 94 great script.
Gratz man! Added you to the first post :)

count to potato
03-29-2013, 05:22 PM
I am attempting 80-99 wc on my main with this. Looks like it should do the trick ;)
I will post any notable proggies I get during the process.

Thanks!

Edit: Got this one last night!

PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 11 hr 34 min 12 sec |
| Exp Gained : 770682 |
| Exp / Hour : 66629 |
| Nests Gotten : 4 |
| False Reason :

count to potato
04-07-2013, 05:10 PM
Still running great! I did notice that it does miss nests often though. Other than that everything is fine.

Here's a pretty big proggy I got:


| TOTALS : |
| Time Running : 22 hr 22 min 10 sec |
| Exp Gained : 1424338 |
| Nests Gotten : 5 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 22 hr 4 min 23 sec |
| Exp Gained : 1424338 |
| Exp / Hour : 64547 |
| Nests Gotten : 5 |
| False Reason : |
| |
| |
|-------------------------------------------------------------

Thanks!

Press Play
04-07-2013, 09:23 PM
Still running great! I did notice that it does miss nests often though. Other than that everything is fine.

Here's a pretty big proggy I got:

| TOTALS : |
| Time Running : 22 hr 22 min 10 sec |
| Exp Gained : 1424338 |
| Nests Gotten : 5 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 22 hr 4 min 23 sec |
| Exp Gained : 1424338 |
| Exp / Hour : 64547 |
| Nests Gotten : 5 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|

Thanks!
That's a monster proggy you got there! You can use the tags to pur your progress report in to make it look better :)

I'm still not too sure what's happening with the nest detection. I'll have to have a look at it again when I have some spare time! If you add {$DEFINE SCREENSHOT} to the top of the script, it will take a screenshot every time it detects that a nest has been dropped (via the red chatbox text). Thanks for the feedback :)

count to potato
04-08-2013, 05:15 AM
That's a monster proggy you got there! You can use the tags to pur your progress report in to make it look better :)

I'm still not too sure what's happening with the nest detection. I'll have to have a look at it again when I have some spare time! If you add {$DEFINE SCREENSHOT} to the top of the script, it will take a screenshot every time it detects that a nest has been dropped (via the red chatbox text). Thanks for the feedback :)

Thanks! That reminds me I need to brush up on my forum etiquette :) I am also posting to say that I just achieved 99 wc with this script :D so unfortunately I don't think I'll be getting a lot of screenshots. This is one of the most stable scripts I've used since I've joined here, I just want to say thanks again.

Press Play
04-08-2013, 11:04 AM
Thanks! That reminds me I need to brush up on my forum etiquette :) I am also posting to say that I just achieved 99 wc with this script :D so unfortunately I don't think I'll be getting a lot of screenshots. This is one of the most stable scripts I've used since I've joined here, I just want to say thanks again.
No worries and congratulations! It's been my pleasure to provide this script :) Thank you !

Stayon
04-09-2013, 03:01 AM
Hit 99 with this script last week. Ill post a picture if I remember :p. thanks again for another one! You da best <3

Press Play
04-09-2013, 09:54 AM
Hit 99 with this script last week. Ill post a picture if I remember :p. thanks again for another one! You da best <3
Congratz! :D Added to the list :)

dzpliu
04-11-2013, 10:41 AM
theres a bug: when the bot somehow accidentally right click, the bot is unable to find ivy, thus leading to logout.
specifically right click on something that does not have any option ( just 'walk here' and 'cancel'option)

Press Play
04-11-2013, 11:32 AM
theres a bug: when the bot somehow accidentally right click, the bot is unable to find ivy, thus leading to logout.
specifically right click on something that does not have any option ( just 'walk here' and 'cancel'option)
Where and at what moment exactly does it click? Does it click above the ivy, causing no ivy to be found? I will have a look into this and will probably add a failsafe for it. Thanks for noting it !

dzpliu
04-11-2013, 11:37 AM
Where and at what moment exactly does it click? Does it click above the ivy, causing no ivy to be found? I will have a look into this and will probably add a failsafe for it. Thanks for noting it !

yes somewhere above the ivy, but it doesnt happens all the time, just happened to see it and logging out together.

overall nice script :D

update: i tweaked the colors, editted a little and disabled "use own Ivy" option, it runs smoothly now.

count to potato
06-29-2013, 07:43 PM
If anyone was wanting to use this to collect Lush Blossoms (for the SoF promo) I'd recommend it.

I've been running it for about 38 hours and received around 700 Lush blossoms. I'll post the proggy and total amount once it's done.

Edit: Proggy.


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| -daazndagger-'s |
| [I]vy [C]hopper [U]ltra |
| Version 1.00 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 39 hr 40 min 57 sec |
| Exp Gained : 2490311 |
| Nests Gotten : 12 |
| |
| PLAYER 0 : [ Chopping Ivy ] |
| Time Running : 38 hr 55 min 24 sec |
| Exp Gained : 2490311 |
| Exp / Hour : 63990 |
| Nests Gotten : 12 |
| False Reason : |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

superduperd
07-02-2013, 11:35 AM
Hmmm cant get it to work, keep getting this error

Found 12 possible Ivys.
Skipped TPA(0) ; Length(=3) too small.
Skipped TPA(1) ; Length(=4) too small.
Skipped TPA(2) ; Length(=4) too small.
Skipped TPA(3) ; Length(=5) too small.
Skipped TPA(4) ; Length(=1) too small.
Skipped TPA(5) ; Length(=4) too small.
Skipped TPA(6) ; Length(=1) too small.
Skipped TPA(7) ; Length(=2) too small.
Skipped TPA(8) ; Length(=4) too small.
Skipped TPA(9) ; Length(=3) too small.
Skipped TPA(10) ; Length(=8) too small.
Skipped TPA(11) ; Length(=3) too small.
Found 12 possible Ivys.
Skipped TPA(0) ; Length(=3) too small.
Skipped TPA(1) ; Length(=4) too small.
Skipped TPA(2) ; Length(=4) too small.
Skipped TPA(3) ; Length(=5) too small.
Skipped TPA(4) ; Length(=1) too small.
Skipped TPA(5) ; Length(=4) too small.
Skipped TPA(6) ; Length(=1) too small.
Skipped TPA(7) ; Length(=2) too small.
Skipped TPA(8) ; Length(=4) too small.
Skipped TPA(9) ; Length(=3) too small.
Skipped TPA(10) ; Length(=8) too small.
Skipped TPA(11) ; Length(=3) too small.

anyone any idea on how to fix it?

EDIT:
This was @ varrock north ivys. Im at the farm patch now and it works fine ;)

2ND EDIT:

Still working great, except the nests. It does see that the chat has changed, but when the chat says a nest has fallen out of the ivy it doesn't do anything ;)Anyway, getting around 69k/hr atm, works great :D

Gr, super

Press Play
07-15-2014, 12:30 AM
Just updated this script for RS3/SRL6! Here's a quick progress report to show it's working. Use and abuse away and help me turn this into a flawless ivy chopper (if for some reason it is not already :p). Don't forget to send me screenshots to improve nest finding!

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 2 hr 4 min 46 sec |
| Exp Gained : 119367 |
| Nests Gotten : 3 |
| |
| PLAYER 0 : |
| Time Running : 2 hr 4 min 38 sec |
| Exp Gained : 119367 |
| Exp / Hour : 57458 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Successfully executed.

dread4
07-15-2014, 10:09 PM
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 4 hr 2 sec |
| Exp Gained : 273333 |
| Nests Gotten : 5 |
| |
| PLAYER 0 : |
| Time Running : 3 hr 59 min 6 sec |
| Exp Gained : 273333 |
| Exp / Hour : 68250 |
| |
| |
|-------------------------------------------------------------|
Just a quick Proggy ^.^

Nerrultheretard
07-16-2014, 05:24 AM
Here's a nice little proggy for ya :)

TOTALS : |
| Time Running : 12 hr 26 min 5 sec |
| Exp Gained : 0 |
| Nests Gotten : 9 |
| |
| PLAYER 0 : |
| Time Running : 11 hr 21 min 40 sec |
| Exp Gained : 0 |
| Exp / Hour : 0 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

dread4
07-17-2014, 02:42 PM
Scripts still going strong been using since 75 wc and I'm now 88 oh and my current log is 17 hours upto now so I'll post it when i stop it ;D

dread4
07-17-2014, 09:07 PM
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 23 hr 56 min 49 sec |
| Exp Gained : 0 |
| Nests Gotten : 25 |
| |
| PLAYER 0 : |
| Time Running : 23 hr 55 min 43 sec |
| Exp Gained : 0 |
| Exp / Hour : 0 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Just a nice short one for ya;D & I guess it's time to take a break from woodcutting can't be making it to obvious now ;)

Press Play
07-18-2014, 10:34 AM
Here's a nice little proggy for ya :)

TOTALS : |
| Time Running : 12 hr 26 min 5 sec |
| Exp Gained : 0 |
| Nests Gotten : 9 |
| |
| PLAYER 0 : |
| Time Running : 11 hr 21 min 40 sec |
| Exp Gained : 0 |
| Exp / Hour : 0 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/Nice solid proggy! Seems to be working up to par ;)


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 23 hr 56 min 49 sec |
| Exp Gained : 0 |
| Nests Gotten : 25 |
| |
| PLAYER 0 : |
| Time Running : 23 hr 55 min 43 sec |
| Exp Gained : 0 |
| Exp / Hour : 0 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Just a nice short one for ya;D & I guess it's time to take a break from woodcutting can't be making it to obvious now ;)Grats on the levels :) Good to see it working well and an almost full inventory of nests!

Nerrultheretard
07-21-2014, 05:43 AM
Started getting this out of the blue today;

Exception in Script: Runtime error: "Access violation" at line 222, column 28 in file "C:\Simba\Includes\SRL-6\lib\utilities\pixelshift.simba"
The following bitmaps were not freed: [Minimap Mask, SMART Debug Image, Gametab Bitmap[0], Gametab Bitmap[1], Gametab Bitmap[2], Gametab Bitmap[3], Gametab Bitmap[4], Gametab Bitmap[5], Gametab Bitmap[6], Gametab Bitmap[7], Gametab Bitmap[8], Gametab Bitmap[9], Gametab Bitmap[10], Gametab Bitmap[11], Gametab Bitmap[12], Gametab Bitmap[13]]

Which is weird, because the script was working perfectly beforehand and I didn't change anything.

Press Play
07-21-2014, 06:54 AM
Started getting this out of the blue today;

Exception in Script: Runtime error: "Access violation" at line 222, column 28 in file "C:\Simba\Includes\SRL-6\lib\utilities\pixelshift.simba"
The following bitmaps were not freed: [Minimap Mask, SMART Debug Image, Gametab Bitmap[0], Gametab Bitmap[1], Gametab Bitmap[2], Gametab Bitmap[3], Gametab Bitmap[4], Gametab Bitmap[5], Gametab Bitmap[6], Gametab Bitmap[7], Gametab Bitmap[8], Gametab Bitmap[9], Gametab Bitmap[10], Gametab Bitmap[11], Gametab Bitmap[12], Gametab Bitmap[13]]

Which is weird, because the script was working perfectly beforehand and I didn't change anything.
Just had a quick look and I think it's a bug in SRL. Does this happen randomly, or every time you run the script?

Nerrultheretard
07-21-2014, 10:47 PM
Just had a quick look and I think it's a bug in SRL. Does this happen randomly, or every time you run the script?

Happens every time I run the script now. I've tried re-downloading the script and re-updating everying in simba but nothing fixes it.

E: Also just got this:

Ivy Chopper Ultra is loading.
Setting up SRL.
Player 0 logged in.
chatBox.getXP(): XP found: 0
Attempting to excecute chopIvy().
Found 8 possible Ivys.
Skipped TPA(0) ; Length(=3) too small.
Skipped TPA(1) ; Length(=1) too small.
Skipped TPA(2) ; Length(=3) too small.
-Horizontal pixel length of Ivy is: 143
-Thus, will split into 5 groups.
-MidIvyPts[0]: (363, 57)
-MidIvyPts[1]: (392, 57)
-MidIvyPts[2]: (420, 57)
-MidIvyPts[3]: (449, 57)
-MidIvyPts[4]: (478, 57)
Exception in Script: Runtime error: "Access violation" at line 222, column 28 in file "C:\Simba\Includes\SRL-6\lib\utilities\pixelshift.simba"
The following bitmaps were not freed: [Minimap Mask, SMART Debug Image, Gametab Bitmap[0], Gametab Bitmap[1], Gametab Bitmap[2], Gametab Bitmap[3], Gametab Bitmap[4], Gametab Bitmap[5], Gametab Bitmap[6], Gametab Bitmap[7], Gametab Bitmap[8], Gametab Bitmap[9], Gametab Bitmap[10], Gametab Bitmap[11], Gametab Bitmap[12], Gametab Bitmap[13]]

Mantasx27
07-21-2014, 11:19 PM
Quite a good script, runs smoothly.
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 8 hr 48 min 29 sec |
| Exp Gained : 670707 |
| Nests Gotten : 7 |
| |
| PLAYER 0 : |
| Time Running : 8 hr 48 min 24 sec |
| Exp Gained : 670707 |
| Exp / Hour : 76157 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Press Play
07-22-2014, 03:18 PM
Happens every time I run the script now. I've tried re-downloading the script and re-updating everying in simba but nothing fixes it.

-snip-Hm, seems pretty strange. Have you tried force updating SRL?

SRL > Settings > Override Update (checked)
SRL > Update



Quite a good script, runs smoothly.
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 8 hr 48 min 29 sec |
| Exp Gained : 670707 |
| Nests Gotten : 7 |
| |
| PLAYER 0 : |
| Time Running : 8 hr 48 min 24 sec |
| Exp Gained : 670707 |
| Exp / Hour : 76157 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/
Nice! Going to go for 99 wc? ;)

Nerrultheretard
07-22-2014, 06:20 PM
Hm, seems pretty strange. Have you tried force updating SRL?

SRL > Settings > Override Update (checked)
SRL > Update




I have now, yet it still doesn't fix it. I even did a clean install of simba.

Mantasx27
07-22-2014, 06:58 PM
Nice! Going to go for 99 wc? ;)

Yes, yes I am.

fyermen8
07-22-2014, 10:23 PM
I've used simba like a year ago and recently trying to use it again with your script.
But i get this error:


Ivy Chopper Ultra is loading.
Setting up SRL.
Player 0 logged in.
Warning! You passed wrong values to a finder function: ys > ye (10,-94). Swapping the values for now.
Warning! You passed a wrong xs to a finder function: -140. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -94. That is below 0, thus out of bounds. Setting the value to 0 for now.
chatBox.getXP(): No XP found
-- FATAL ERROR: No other active players, terminating
Warning! You passed wrong values to a finder function: ys > ye (10,-94). Swapping the values for now.
Warning! You passed a wrong xs to a finder function: -140. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -94. That is below 0, thus out of bounds. Setting the value to 0 for now.
chatBox.getXP(): No XP found
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 1 min 43 sec |
| Exp Gained : 0 |
| Nests Gotten : 0 |
| |
| PLAYER 0 : |
| Time Running : 0 sec |
| Exp Gained : 0 |
| False Reason : One minute as passed... |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Successfully executed.
It logs in, waits for a minute, opens options menu and starts spinning the camera till the script stops.

Press Play
07-23-2014, 02:01 AM
I have now, yet it still doesn't fix it. I even did a clean install of simba.
To be honest, I really don't know. It's especially strange since you had the script working before. It seems we've tried everything. Let me go through the full check-list:

Restart computer
Uninstall and re-install Simba
Run Simba as administrator
Update extensions, then enable SRL.sex
Force update SRL and plugins
Are you having any weird experiences using other scripts?


Yes, yes I am.
Great, let me know when you get it and I can add you to the list!


I've used simba like a year ago and recently trying to use it again with your script.
But i get this error:
-snip-
It logs in, waits for a minute, opens options menu and starts spinning the camera till the script stops.
I have definitely noticed the camera spinning a lot, but that is something to do with SRL - it usually rectifies itself though. Using [CTRL] + [F], find this line:
disableSRLDebug := true;
Comment it out, so it becomes:
//disableSRLDebug := true;
Save, and re-run the script. Post me what it says now.

Nerrultheretard
07-23-2014, 04:09 AM
To be honest, I really don't know. It's especially strange since you had the script working before. It seems we've tried everything. Let me go through the full check-list:

Restart computer
Uninstall and re-install Simba
Run Simba as administrator
Update extensions, then enable SRL.sex
Force update SRL and plugins
Are you having any weird experiences using other scripts?

Turns out that restarting my pc fixed it. Looks like "keep it simple stupid" really applies to my situation haha. Thanks for the help though Press Play!

fyermen8
07-23-2014, 07:02 PM
Ivy Chopper Ultra is loading.
Setting up SRL.
-- setupSRL()
---- Setting up SRL...
---- initSmart():
------ Attempting to pair to a previously spawned client
------ smartPairToExistingClient():
-------- Found no free clients to pair to
------ smartPairToExistingClient(): result = false
------ Attempting to spawn a new client..
------ smartCreateClient():
---------- smartGetParameters(): Succesfully grabbed paramters
-------- getJavaPath():
---------- Attempting to search for your Java path
---------- Found your java path @ C:\Program Files (x86)\Java\jre7\bin\java.exe
-------- getJavaPath()
-------- Using parameters [---- here was the world link but cant post links yet, f204430981235928644]
-------- Using plugins "OpenGL32.dll"
-------- Succesfully spawned a client, attempting to target
---------- smartSetAsTarget(): Succesfully set SMART[2776] as Simba's target
------ smartCreateClient(): result = true
------ Succesfully initialized via spawning a new client
---- initSmart()
---- Waiting up to 5 minutes for RS to load...
------ __setInputBoxes(): Set username and password boxes
---- Client is ready.
---- Setup SRL in 22891ms.
-- setupSRL(): True
---- smartSetupDrawing(): Succesfully setup SMART drawing
-- TPlayer.login()
---- TPlayer.loginToLobby()
------ ---- (my runescape username) ()
------ Entering username...
------ Entering password...
-------- Saving screenshot: IP_address.png
------ Found lobby screen
---- TPlayer.loginToLobby(): True
------ TRSLobby.findPlayButton(): result = True
---- WARNING: Unknown login string: ""
---- HINT: Please report this issue in the SRL bugs section of the forum
------ Saving screenshot: unknown_login_count.png
---- Login response: One minute as passed...
------ All players inactive...
-- TPlayer.login(): False
Player 0 logged in.
---- TRSMinimap.clickCompass(): Clicked compass
---- minimap.setAngle(): Set the angle @ 59.7435628364707 degrees
-- exitTreasure()
-- exitTreasure(): result = False
Warning! You passed wrong values to a finder function: ys > ye (10,-94). Swapping the values for now.
Warning! You passed a wrong xs to a finder function: -140. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -94. That is below 0, thus out of bounds. Setting the value to 0 for now.
chatBox.getXP(): No XP found
-- FATAL ERROR: No other active players, terminating
-- Succesfully freed SMART[2776]
Warning! You passed wrong values to a finder function: ys > ye (10,-94). Swapping the values for now.
Warning! You passed a wrong xs to a finder function: -140. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -94. That is below 0, thus out of bounds. Setting the value to 0 for now.
chatBox.getXP(): No XP found
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 1 min 56 sec |
| Exp Gained : 0 |
| Nests Gotten : 0 |
| |
| PLAYER 0 : |
| Time Running : 0 sec |
| Exp Gained : 0 |
| False Reason : One minute as passed... |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Successfully executed.

jellis
07-28-2014, 01:13 AM
i have no idea how to run this can someone help me please

Press Play
07-28-2014, 01:50 AM
i have no idea how to run this can someone help me please
Firsty, have you setup Simba? If not, click here (https://villavu.com/forum/showthread.php?t=47714). Note that this script does not use the player manager or player form.
Second, are your graphics/interface settings setup properly? To check, click here (https://villavu.com/forum/showthread.php?t=107365).

Once you have that, just fill in the script details/settings from the START to STOP banner:
{================================================= =============================}
{ START START START START START START START START START START }
{ START START START START START | START }
{ START START START START --- START START START START }
{ START START START START START START START }
{ START START START START START START START START }
{================================================= =============================}

{------------------------------------------------------------------------------]
[ VARIBLE SETUP: ]
[ See the thread for details. ]
[------------------------------------------------------------------------------}
procedure LoadGlobals;
begin
WhenBreak := 240; // Minutes until break
FindOwnIvy := True; // Tries to find an unoccupied ivy if set to 'true'
end;

{------------------------------------------------------------------------------]
[ DECLARE PLAYERS: ]
[ Change accordingly. ]
[------------------------------------------------------------------------------}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
setLength(players, HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
loginName :=''; // Username
password :=''; // Password
integers[P_WALL_DIR] := DIR_SOUTH; // The direction your player faces to chop the ivy
isMember := true;
isActive := true;
world := -1;
end;
end;

{================================================= =============================}
{ STOP STOP STOP STOP STOP-STOP STOP STOP }
{ STOP STOP STOP STOP STOP | }
{ ===== STOP STOP STOP STOP STOP STOP STOP ===== }
{ STOP STOP STOP STOP STOP }
{ STOP STOP STOP STOP-STOP STOP }
{================================================= =============================}

prostaker
07-28-2014, 11:52 PM
Does it supposed to work after todays New lobby update? Because that update messed up a lot of scripts for me. I cant seem to be running anything. Trying out your script at farm patch ivys, i get this error:

-- Client is ready.
---- Setup SRL in 94ms.
-- setupSRL(): True
---- smartSetupDrawing(): Succesfully setup SMART drawing
-- TPlayer.login()
---- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
------ TRSActionBar.__find(): result = false
---- Already logged in
---- Logged in:
-- TPlayer.login(): True
Player 0 logged in.
---- TRSMinimap.clickCompass(): Clicked compass
---- minimap.setAngle(): Set the angle @ 270 degrees
Warning! You passed wrong values to a finder function: ys > ye (10,-94). Swapping the values for now.
Warning! You passed a wrong xs to a finder function: -140. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -94. That is below 0, thus out of bounds. Setting the value to 0 for now.
chatBox.getXP(): No XP found
Attempting to excecute chopIvy().
Exception in Script: Runtime error: "The Points you passed to DrawATPA exceed the bitmap's bounds" at line 114, column 19 in file "C:\Simba\Includes\SRL-6\lib\utilities\drawing.simba"
The following bitmaps were not freed: [Minimap Mask, SMART Debug Image]

Press Play
07-29-2014, 07:41 AM
Does it supposed to work after todays New lobby update? Because that update messed up a lot of scripts for me. I cant seem to be running anything. Trying out your script at farm patch ivys, i get this error:

-snip-
Yes, the lobby update has been fixed in the latest version of SRL. As for your other error, running the script again usually removes that exception. However, if it does not, at the top of the script comment out
{$DEFINE PAINT}
So it becomes
//{$DEFINE PAINT}

Mantasx27
07-29-2014, 08:24 AM
Edit: had a similar problem as described above, fixed it by updating plug-ins.

prostaker
07-29-2014, 10:33 AM
Sweet. updated srl, works like a charm. except Farm patch one is broken, as i think ivys there are a bit more light green than others. It keeps confusing them with the "tree" that is growing near there. I will let you know, when I hit 99 or get banned :D

Great Community (Y)

Press Play
07-29-2014, 11:06 AM
Edit: had a similar problem as described above, fixed it by updating plug-ins.
Thanks for posting what fixed it for you! It's bound to help others who read this :)


Sweet. updated srl, works like a charm. except Farm patch one is broken, as i think ivys there are a bit more light green than others. It keeps confusing them with the "tree" that is growing near there. I will let you know, when I hit 99 or get banned :D

Great Community (Y)
If you grab me a screenshot it'll help me help me see the color differences :) either that or try another spot if you're worried ;) Yep, let me know when you reach 99!

prostaker
07-29-2014, 11:37 AM
If you grab me a screenshot it'll help me help me see the color differences :) either that or try another spot if you're worried ;) Yep, let me know when you reach 99!

Might do that, when i reach home. @ Work atm

TeHFeaR
08-01-2014, 05:22 AM
First and foremost thank you for this!

The one issue I've found is when there is no 2-3 ivy missing it'll take the colours from the trees and try to click on them. It just keeps clicking but nothing actually happens.

Another one is when it find the ivy and moves, the colour from the previous find is left on screen. If it happens that you deplete the ivy that you're cutting, it tries to cut the old one's and just keeps clicking.

Hope that can help!

Thank you again :)

Nerrultheretard
08-04-2014, 12:48 AM
Glad to say that I have achieved 99 using this script. Thanks a lot Press Play!

Press Play
08-04-2014, 10:27 AM
First and foremost thank you for this!

The one issue I've found is when there is no 2-3 ivy missing it'll take the colours from the trees and try to click on them. It just keeps clicking but nothing actually happens.

Another one is when it find the ivy and moves, the colour from the previous find is left on screen. If it happens that you deplete the ivy that you're cutting, it tries to cut the old one's and just keeps clicking.

Hope that can help!

Thank you again :)
No worries :) What location is this at?


Glad to say that I have achieved 99 using this script. Thanks a lot Press Play!
Grats! I'll add you to the first post :)

EvilCabbage
08-09-2014, 10:33 PM
Just a small proggie; thank you for making this script!

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 2 hr 40 min 54 sec |
| Exp Gained : 631632 |
| Nests Gotten : 0 |
| |
| PLAYER 0 : |
| Time Running : 2 hr 39 min 52 sec |
| Exp Gained : 631632 |
| Exp / Hour : 237053 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Mantasx27
08-27-2014, 07:47 AM
Just hit level 99 with it. Great scripts, ran smoothly. Been botting around 7-14 hours a day.

Press Play
08-27-2014, 02:26 PM
Just hit level 99 with it. Great scripts, ran smoothly. Been botting around 7-14 hours a day.
Grats! Added :)

slygain
09-03-2014, 03:35 PM
Hey Press Play, quick question. I've got the bot up and running smooth, the only question I have is, does the proggy only show up with correct data once the script it stopped? or should it be updating as the script it running? Other than that, it seems to be running great!

slygain
09-03-2014, 10:43 PM
EDIT: Disregard post, I am dumb. Thanks so much Press Play, working great.




Important: For XP calculations, make sure you put your XP Counter here.

XrTw
09-07-2014, 06:00 AM
please help, im having this error gyazo.com/7e9a338c5125a18668a8674f6e776a71

blindout
09-09-2014, 11:38 AM
having a problem, character will start to chop ivy and than not finish chopping it and find a new one and keep hopping around never fully cutting down an ivy, very noticeable....lol

JDBORED
09-09-2014, 01:13 PM
I've found a problem with the direction the script faces (at least when doing east/ west) in that when you say DIR_WEST it will face east, and vice versa.
Also, when I got it to face the correct direction (Ran at Varrock farm patch) I got the following in my debug box:
Found 8 possible Ivys.
-Horizontal pixel length of Ivy is: 147
-Thus, will split into 5 groups.
-MidIvyPts[0]: (147, 322)
-MidIvyPts[1]: (176, 322)
-MidIvyPts[2]: (206, 322)
-MidIvyPts[3]: (235, 322)
-MidIvyPts[4]: (264, 322)
AveragePixelShift: 0
Hovering to find UpText.
Could not find UpText, right-clicking.
AveragePixelShift: 0
Hovering to find UpText.
Could not find UpText, right-clicking.
AveragePixelShift: 0
Hovering to find UpText.
Could not find UpText, right-clicking.

Edit: removed a few lines of the same
P.S. noticed it said "Found 8 possible Ivys." despite there only being 5 at the Varrock farm patch

XrTw
09-10-2014, 09:34 AM
Ivy Chopper Ultra is loading.
Setting up SRL.
Player 0 logged in.
Warning! You passed wrong values to a finder function: ys > ye (10,-94). Swapping the values for now.
Warning! You passed a wrong xs to a finder function: -140. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -94. That is below 0, thus out of bounds. Setting the value to 0 for now.
chatBox.getXP(): No XP found
-- FATAL ERROR: No other active players, terminating
Warning! You passed wrong values to a finder function: ys > ye (10,-94). Swapping the values for now.
Warning! You passed a wrong xs to a finder function: -140. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -94. That is below 0, thus out of bounds. Setting the value to 0 for now.
chatBox.getXP(): No XP found
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 1 min 56 sec |
| Exp Gained : 0 |
| Nests Gotten : 0 |
| |
| PLAYER 0 : |
| Time Running : 0 sec |
| Exp Gained : 0 |
| False Reason : One minute as passed... |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Successfully executed.

XrTw
09-10-2014, 01:11 PM
this script sucks it doesnt work how has to wark

bonsai
09-11-2014, 10:05 AM
this script sucks it doesnt work how has to wark

If you want to get help around here you may want to be more polite to people who gave you a free gift.

If you do a little bit of reading you will see a lot of people are having problems with things. People are working on a newer release of the tools so updates are delayed a bit.

I don't know if your problems are due to incorrect setup or broken libraries, but whatever your issues are you aren't going to do well around here with posts like that one.

blindout
09-15-2014, 11:15 PM
no point

xSorrels
09-19-2014, 12:49 AM
Why does this chopper switch the ivys I chop while still chopping the first one? looks super bot like if you ask me.
It redirected me to the next ivy after like 10 seconds....?
HELP?!

EDIT:
Changed line 90
"FindOwnIvy := True; // Tries to find an unoccupied ivy if set to 'true'"
to
"FindOwnIvy := False; // Tries to find an unoccupied ivy if set to 'true'"

Works now. (:


ALSO:

Does not loot at all.
HELP?

capnfox
09-25-2014, 11:38 AM
I am getting this error now whenever I try and run the program, "Exception in Script: Duplicate declaration "getXP" at line 787, column 35", I had it running for almost a week then this happens last night! Any help?

Grumble
09-25-2014, 08:29 PM
I am getting this error now whenever I try and run the program, "Exception in Script: Duplicate declaration "getXP" at line 787, column 35", I had it running for almost a week then this happens last night! Any help?

Same.

ashley1
09-25-2014, 10:11 PM
^^^ please help :(

Opeska
09-29-2014, 09:18 PM
Also getting the duplicate declaration error

Moneymake
09-30-2014, 06:08 AM
To all wondering about that duplication error, just delete that part of the script for the time being until it is fixed, all it means is that xp wont be counted if im right. Works perfectly fine without it

godzassassin
10-02-2014, 08:35 PM
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 12 hr 11 min 30 sec |
| Exp Gained : 788690 |
| Nests Gotten : 4 |
| |
| PLAYER 0 : |
| Time Running : 11 hr 21 min 37 sec |
| Exp Gained : 788690 |
| Exp / Hour : 69424 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

war curser
10-03-2014, 04:26 AM
Just got 70 to 99 woodcutting off this script from north fally wall. Works amazing.

godzassassin
10-04-2014, 10:25 AM
/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 2 hr 17 min 20 sec |
| Exp Gained : 175395 |
| Nests Gotten : 2 |
| |
| PLAYER 0 : |
| Time Running : 2 hr 17 min 18 sec |
| Exp Gained : 175395 |
| Exp / Hour : 76639 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

godzassassin
10-06-2014, 02:49 AM
Why does the bot now rotate the angle of the camera to far so it no longer looks at the ivy?

EDIT: Nvm it was my fault I messed up a value

godzassassin
10-18-2014, 08:52 PM
Thanks alot for this script, got 99 WC this morning :D

Trollcrank
10-31-2014, 09:49 PM
Fantastic script, got me from 73-80(40k off 81) and I plan on using it to 99 but I'm not going to suicide it anymore than I already have.

Progress Report Details: I had a little bit of bonus exp at the start but I ran it so long that the average should be accurate. Also, it was double exp when I did this and a rune hatchet.(Gave about 960ish exp with double exp and bonus exp per ivy)

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 9 hr 34 min 18 sec |
| Exp Gained : 1103449 |
| Nests Gotten : 5 |
| |
| PLAYER 0 : |
| Time Running : 9 hr 38 sec |
| Exp Gained : 1103449 |
| Exp / Hour : 122458 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

Edit: Another Progressive Report: 81-85 with a dragon hatchet plus I went about 20 minutes over after leveling up.

/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 7 hr 50 min 18 sec |
| Exp Gained : 1050035 |
| Nests Gotten : 5 |
| |
| PLAYER 0 : |
| Time Running : 7 hr 21 min 33 sec |
| Exp Gained : 1050035 |
| Exp / Hour : 142681 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/

runespeller
11-04-2014, 10:00 PM
Hi,

Was using this script for a while until I encountered the following error which kills off the script:

Error: No default value for parameter 3 found at line 1105
Compiling failed.

Anyone encountered the same issue as me?

TeHFeaR
11-06-2014, 10:22 PM
Hello!

I think I'm doing something wrong...just not sure what :(
I keep getting this error...


Error: No default value for parameter 3 found at line 1105
Compiling failed.


I set up the password and username as instructed. Re installed simba, etc and still same error.

taylar
11-08-2014, 06:39 AM
This script is fantastic however i have never had to babysit so much in my life. If or whenever i have to come back from a break or log in, the camera adjust part just spins around and around for about 15 seconds then ends up not looking at the ivy whatsoever. If i do not fix the camera angle from there, it simply will not work.

Btw Thank you very very much, i got 99 with the script from i think 78.

Merff
12-01-2014, 04:56 AM
I am very new to this stuff, and it can't figure out my loginName on line 105? I put it in correctly, help?

Venomkey36
12-15-2014, 05:31 AM
changed it to smart8 now i get this "Error: Unknown declaration "smartSetupDrawing" at line 860" but if i keep without the 8 it says No default value for parameter 3 found at line 1105.... Haven't been able to get 1 ivy chopper working ):

Trollcrank
12-21-2014, 12:54 AM
I changed a few lines to get it to run, it appears a bit outdated.


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 8 hr 53 min 9 sec |
| Exp Gained : 614552 |
| Nests Gotten : 8 |
| |
| PLAYER 0 : |
| Time Running : 8 hr 21 min 8 sec |
| Exp Gained : 614552 |
| Exp / Hour : 73579 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/


Edit: Here is the script, this should work for any of you that our having the "Error: No default value for parameter 3 found at line 1105
Compiling failed." problem.


program IvyChopperUltra;
{$DEFINE SMART}
{$I SRL-6/SRL.Simba}

{$DEFINE DEBUG}
{$DEFINE PAINT}
{$DEFINE SCREENSHOT}
{$DEFINE SCREENSHOT_NEST}

{



8888888b.
888 Y88b
888 888
888 d88P 888d888 .d88b. .d8888b .d8888b
8888888P" 888P" d8P Y8b 88K 88K
888 888 88888888 "Y8888b. "Y8888b.
888 888 Y8b. X88 X88
888 888 "Y8888 88888P' 88888P'



8888888b. 888
888 Y88b 888
888 888 888
888 d88P 888 8888b. 888 888
8888888P" 888 "88b 888 888
888 888 .d888888 888 888
888 888 888 888 Y88b 888
888 888 "Y888888 "Y88888
888
Y8b d88P
"Y88P"



+------------------------------------------------------------------------------+


_ _ _ __ _ ___ ___ ___ ____ ___
| | \ \ / \ \_/ / /` | |_| / / \ | |_) | |_) | |_ | |_)
|_| \_\/ |_| \_\_, |_| | \_\_/ |_| |_| |_|__ |_| \
_ _ _____ ___ __
| | | | | | | | |_) / /\
\_\_/ |_|__ |_| |_| \ /_/--\



+------------------------------------------------------------------------------+
}

{ ~~ Global Variables ~~ }
var
x, y: Integer;
WhenBreak, HowManyPlayers: Integer;
FindOwnIvy: Boolean;

const
{ *** For Players}
P_WALL_DIR = 0;
{ *** For Report}
P_XP = 1;
P_NESTS = 2;
P_START_XP = 3;
P_FIRST_LOGIN = 4;

{ *** For Directions}
DIR_NORTH = 0;
DIR_EAST = 90;
DIR_SOUTH = 180;
DIR_WEST = 270;

{================================================= =============================}
{ START START START START START START START START START START }
{ START START START START START | START }
{ START START START START --- START START START START }
{ START START START START START START START }
{ START START START START START START START START }
{================================================= =============================}

{------------------------------------------------------------------------------]
[ VARIBLE SETUP: ]
[ See the thread for details. ]
[------------------------------------------------------------------------------}
procedure LoadGlobals;
begin
WhenBreak := 240; // Minutes until break
FindOwnIvy := True; // Tries to find an unoccupied ivy if set to 'true'
end;

{------------------------------------------------------------------------------]
[ DECLARE PLAYERS: ]
[ Change accordingly. ]
[------------------------------------------------------------------------------}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
setLength(players, HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
loginName :=''; // Username
password :=''; // Password
integers[P_WALL_DIR] := DIR_SOUTH; // The direction your player faces to chop the ivy
isMember := true;
isActive := true;
world := -1;
end;
end;

{================================================= =============================}
{ STOP STOP STOP STOP STOP-STOP STOP STOP }
{ STOP STOP STOP STOP STOP | }
{ ===== STOP STOP STOP STOP STOP STOP STOP ===== }
{ STOP STOP STOP STOP STOP }
{ STOP STOP STOP STOP-STOP STOP }
{================================================= =============================}

const
ScriptVersion = '1.10';
ScriptName = 'Ivy Chopper Ultra';

{ ~~ The following options are not recommended to change
unless you have a well rounded scripting ability ~~ }

LaggFactor = 3; // [1 = no lagg, 3 = default, 10 = HOLY S**T]
logoutDelay = 0; // Wait before logging out; for debugging
type
TotalStatistics = record
XP, Nests: Integer;
end;

TBooleanFunction = function(): boolean;

var
TotalTimeInactive: Integer; // Time
RoundTime: TTimeMarker;
Total: TotalStatistics;
PlayerStartXP: Integer;
reportString: TStringArray;

{$IFNDEF CODEINSIGHT}
//================================================== ==========================//
// Utility functions:
//----------------------------------------------------------------------------//
//================================================== ==========================//
// procedure debug(w: string);
// -Prints debug if DEBUG is defined.
//================================================== ==========================//
procedure debug(w: string; lvl: Integer);
var
i: Integer;
begin
{$IFDEF DEBUG}
if lvl > 1 then
begin
w := '-' + w;
for i := 1 to lvl-1 do
w := ' ' + w;
end;
writeln(w);
{$ELSE}
status(w);
{$ENDIF}
end;

//================================================== ==========================//
// procedure DebugScreen(reason: String);
// -Saves a screenshot to 'reason' if SCREENSHOT is defined.
//================================================== ==========================//
procedure DebugScreen(reason: String);
var
bmpF, i: Integer;
TPAName, TPAStats: TPointArray;
begin
{$IFDEF SCREENSHOT}
if not DirectoryExists(ScriptPath + 'Screenshots/') then
if not CreateDirectory(ScriptPath + 'Screenshots/') then
Exit;

bmpF := BitmapFromClient(0, 0, minimap.getBounds().x2+1, chatbox.getBounds().y2+1);
TPAName := TPAFromBox(IntToBox(chatbox.getChatArea().X1, chatbox.getChatArea().Y2, chatbox.getChatArea().X2, chatbox.getBounds().Y2));
TPAStats := TPAFromBox(actionbar.getBounds());
for i := 0 to High(TPAName) do
FastSetPixel(bmpF, TPAName[i].x, TPAName[i].y, clWhite);
for i := 0 to High(TPAStats) do
FastSetPixel(bmpF, TPAStats[i].x, TPAStats[i].y, clWhite);

SaveBitmap(bmpF, ScriptPath + 'Screenshots/' +reason+ '.png');
//SaveScreenshot(ScriptPath + 'Screenshots/' +reason+ '.png');
Debug('Screenshot saved.', 0);
{$ENDIF}
end;

//================================================== ==========================//
// procedure paintClear(area: TBox);
// -Clears the 'area' on SMART.
//================================================== ==========================//
procedure paintClear(area: TBox);
begin
{$IFDEF PAINT}
{$IFDEF SMART}
{$IFDEF DEBUG}
smartImage.clearArea(area);
{$ENDIF}
{$ENDIF}
{$ENDIF}
end;

//================================================== ==========================//
// procedure paintClear(); overload;
// -Clears everything on SMART.
//================================================== ==========================//
procedure paintClear(); overload;
begin
{$IFDEF PAINT}
{$IFDEF SMART}
{$IFDEF DEBUG}
smartImage.drawClear(0);
{$ENDIF}
{$ENDIF}
{$ENDIF}
end;

//================================================== ==========================//
// procedure paintTPA(pts: TPointArray; col: Integer);
// -Paints TPA to SMART with colour 'col'
//================================================== ==========================//
procedure paintTPA(pts: TPointArray; col: Integer);
begin
{$IFDEF PAINT}
{$IFDEF SMART}
{$IFDEF DEBUG}
smartImage.DrawTPA(pts, col);
{$ENDIF}
{$ENDIF}
{$ENDIF}
end;

//================================================== ==========================//
// procedure paintBox(pts: TBox; col: Integer);
// -Paints box to SMART with colour 'col'
//================================================== ==========================//
procedure paintBox(pts: TBox; col: Integer);
begin
{$IFDEF PAINT}
{$IFDEF SMART}
{$IFDEF DEBUG}
smartImage.DrawBox(pts, col);
{$ENDIF}
{$ENDIF}
{$ENDIF}
end;

//================================================== ==========================//
// function PointToStr(P: TPoint): String;
// -Turns a TPoint variable into a String variable in the format: (x, y).
//================================================== ==========================//
function PointToStr(P: TPoint): String;
begin
Result := ('('+IntToStr(P.x)+', '+IntToStr(P.y)+')');
end;

//================================================== ==========================//
// function overTime(theTime: TTimeMarker; theLimit: LongInt): boolean;
// -'theTime' is the TTimeMarker with the stored time.
// -'theLimit' is the amount of time which 'theTime'(ms) must exceed to
// return true.
//================================================== ==========================//
function overTime(theTime: TTimeMarker; theLimit: LongInt): boolean;
begin
result := (theTime.getTime() > theLimit);
end;

function IsIvyAhead_Mouse: Boolean; forward;
//================================================== ==========================//
// procedure doAntiBan();
// -Performs generic antiban procedure.
//================================================== ==========================//
procedure doAntiBan();
var
r: Integer;
begin;
if not isLoggedIn() then exit();

r := Random(65);
case r of
0..17: hoverSkill(SKILL_WOODCUTTING);
18..30: randomCompass(10, 30, true);
36..39: begin
if IsIvyAhead_Mouse then
begin
GetMousePos(x, y);
FastClick(mouse_left);
end;
end;
31..35: randomRClickItem();
40..50: boredHuman();
51..55: mouseMovingObject();
56..60: randomCameraAngle(MS_ANGLE_HIGH);
61: pickUpMouse();
62: smallRandomMouse();
63: sleepAndMoveMouse(randomRange(1000,2000));
64: mouseOffClient(OFF_CLIENT_RANDOM);
end;

wait(randomRange(250, 1000));
gameTabs.openTab(TAB_BACKPACK);
debug('Antiban procedure performed.', 1);
end;
{$ENDIF}

function IsIvyAhead_Mouse: Boolean;
begin
MouseBox(IntToBox(247, 155, 271, 172), mouse_move);
Result := isMouseOverText(['Chop Ivy', 'Ivy', 'hop I']);
end;

function IsIvyAhead_Colour: Boolean;
var
IvyTPA: TPointArray;
CMod: TColorSettings;
Bounds: TBox;
begin
Bounds := IntToBox(mainscreen.playerBox.x1+5, mainscreen.playerBox.y1-5, mainscreen.playerBox.x2-5, mainscreen.playerBox.y2-15);
CMod := ColorSetting(2, 0.31, 1.41);
FindColorsSpiralTolerance(x, y, IvyTPA, 2049333, Bounds, 8, CMod);
paintTPA(IvyTPA, clRed);

Result := (Length(IvyTPA) > 20);
end;

function MSCenter: TPoint;
begin
result := mainscreen.getCenterPoint();
end;

//================================================== ==========================//
// My own fuction for sorting an ATPA from Runescape's centre of main screen
// -Uses bubble sort.
//================================================== ==========================//
type
TDistanceIndex = record
TPA: TPointArray;
Point: TPoint;
Distance: LongInt;
end;

procedure SortATPAFromMSCentre(var ATPA: T2DPointArray);
var
Temp: Array of TDistanceIndex;
h, i: Integer;
f: Boolean;

begin
SetLength(Temp, Length(ATPA));
h := High(ATPA);

// Set array
for i := 0 to h do
begin
Temp[i].TPA := ATPA[i];
Temp[i].Point := ATPA[i][0];
Temp[i].Distance := Distance(Temp[i].Point.x, Temp[i].Point.y, MSCenter.x, MSCenter.y);
end;

// Arrange Array
repeat
f:= True;
for i := 1 to h-1 do
begin
if Temp[i-1].Distance > Temp[i].Distance then
begin
Swap(Temp[i-1], Temp[i]);
f:= False;
end;
end;
until(f)

// Reset array
for i := 0 to h do
ATPA[i] := Temp[i].TPA;

end;

function FindIvy(var x, y: Integer): Boolean;
label insideLoop;
var
i, h, hl, G, a, f: Integer;
bmpD: LongInt;
P: TPoint;
B: TBox;
IvyTPA, MidIvyPts: TPointArray;
IvyATPA: T2DPointArray;
CMod: TColorSettings;
begin
if not isLoggedIn then Exit;

CMod := ColorSetting(2, 0.31, 1.41);
FindColorsSpiralTolerance(x, y, IvyTPA, 2049333, mainscreen.getBounds(), 8, CMod);
IvyATPA := SplitTPA(IvyTPA, 8);
SortATPAFromMSCentre(IvyATPA);

if ( Length(IvyATPA) = 0 ) then
begin
Debug('Ivy not found.', 1);
Result:= false;
end else
Debug('Found ' +IntToStr(Length(IvyATPA))+ ' possible Ivys.', 1);

h:= High(IvyATPA);
for i := 0 to h do
begin
if Length(IvyATPA[i]) > 10 then
begin
{$IFDEF PAINT}
paintTPA(IvyATPA[i], clRed);
{$ENDIF}

B := GetTPABounds(IvyATPA[i]);
P := MiddleBox(B);
hl := B.X2 - B.X1;
Debug('Horizontal pixel length of Ivy is: '+IntToStr(hl), 2);
G := Floor(hl / 25);
Debug('Thus, will split into '+IntToStr(G)+' groups.', 2);
SetLength(MidIvyPts, G);

{$IFDEF PAINT}
paintBox(B, clBlue);
{$ENDIF}
for a := 0 to High(MidIvyPts) do
begin
MidIvyPts[a] := Point(Round((B.X1 + ((hl / (G * 2)) * ((a * 2) + 1)))), P.y);
Debug('MidIvyPts['+IntToStr(a)+']: '+PointToStr(MidIvyPts[a]), 2);
end;
SortTPAFrom(MidIvyPts, MSCenter());
//DebugWait(2000+Random(500));


for a := 0 to High(MidIvyPts) do
begin
if FindOwnIvy then
begin
B := IntToBox(MidIvyPts[a].x - 12, MidIvyPts[a].y + 3, MidIvyPts[a].x + 12, MidIvyPts[a].y + 40);
{$IFDEF PAINT}
paintBox(B, clWhite);
{$ENDIF}

Debug('AveragePixelShift: '+IntToStr(getPixelShiftAverage(B, 250, 500)), 1);
if getPixelShiftAverage(B, 250, 500) > 300 then
continue;
end;

Mouse(MidIvyPts[a].x, MidIvyPts[a].y, 3, 3, MOUSE_MOVE);
Debug('Hovering to find UpText.', 1);
if (isMouseOverText(['Chop Ivy', 'Ivy', 'hop I'], 200)) then
begin
Result:= True;
GetMousePos(x, y);
Exit;
end else
begin
f := f + 1;
Debug('Could not find UpText, right-clicking.', 1);
fastClick(MOUSE_RIGHT);
Wait(200 + Random(100));
if chooseOption.optionsExist(['Chop Ivy', 'Ivy', 'hop I']) then
begin
Result := True;
Exit;
end;
Result := false;
if chooseOption.isOpen() then
chooseOption.close();
if f < 3 then
a := a - 1
else
f := 0;
end;
end;
end else
Debug('Skipped TPA(' +IntToStr(i)+ ') ; Length(=' +IntToStr(Length(IvyATPA[i]))+ ') too small.', 1);
end;
end;

function ClickIvy: Boolean;
begin
Result := True;
if FindIvy(x, y) then
begin
if not chooseOption.optionsExist(['Chop Ivy', 'Ivy', 'hop I']) then
Mouse(x, y, 0, 0, mouse_right);

if not chooseOption.select(['Chop Ivy', 'Ivy', 'hop I']) then
Result := False;
end else
Result := False;
end;

function ChopIvy: Boolean;
var
i: Integer;
b: Boolean;
t: TTimeMarker;
ivyInfront: TBox;
begin
b := False;
ivyInfront := IntToBox(mainscreen.playerBox.x1+5, mainscreen.playerBox.y1-5, mainscreen.playerBox.x2-5, mainscreen.playerBox.y2-15);
paintBox(ivyInfront, clWhite);
t.reset();
t.start();
claimTicket();
ExitTreasure();
repeat
if IsIvyAhead_Colour then
begin
MouseBox(ivyInfront, MOUSE_MOVE);
if (isMouseOverText(['Chop Ivy', 'p Ivy', 'hop I'], 200)) then
begin
FastClick(MOUSE_LEFT);
Result := True;
Break;
end;
end;

if ClickIvy then
begin
Result := True;
Break;
end else
if FindOwnIvy then
begin
b := True;
FindOwnIvy := False;
end else
if b then
FindOwnIvy := True;
until(t.getTime() > 60*1000)
if Result then
Debug('Clicked Ivy.', 1);
if (b) and (not FindOwnIvy) then
FindOwnIvy := True;
end;

(*
TRSChatbox._getTextColorArray
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: pascal

function TRSChatbox._getTextColorArray(): TStringArray;

Returns an array of the text color of each line.

.. note::

- by Press Play
- Last Updated: 14 July 2014 by Press Play

Example:

.. code-block:: pascal

c := chatbox._getTextColorArray();
for i:=high(c) downto 0 do
writeln('Line '+toStr(i)+': '+toStr(c[i]));
*)
function TRSChatbox._getTextColorArray(): TIntegerArray;
var
i, j: Integer;
tmpTPA: TPointArray;
cols: TIntegerArray;
b: TBox;
begin
setLength(result, length(self.lineBoxes));
// clRed : Unlocking new music, bird nest drop, news
// clYellow : (OLD) Used when a demon appears somewhere
// 16776960 : Cyan - GE buy/sell process completed
// 30446 : Orange - Daily Challenge (assignment + completion)
// 33023 : Orange - Treasure Hunter Key
cols := [clRed, clYellow, 16776960, 30446, 33023];
for i:=0 to High(self.lineBoxes) do
begin
b := self.lineBoxes[i];
b.edit(0, +3, 0, -3);
result[i] := -1;

if FindColors(tmpTPA, clWhite, b) then
if FindColorsTolerance(tmpTPA, 15966584, b, 3) then
Result[i] := 15441012 // Player chat (needs tolerance)
else
Result[i] := clWhite; // Examine, player names etc.

if result[i] <> -1 then
continue();

for j:=0 to high(cols) do
if FindColors(tmpTPA, cols[j], b) then
begin
Result[i] := cols[j];
break();
end;

end;
end;

var
AChatCol: TIntegerArray;
RedCount: Integer;

function GetNestNotification: Boolean;
var
i, j, rch: Integer;
a: TIntegerArray;
begin
a := chatbox._getTextColorArray();
for i := high(a) downto 0 do
if a[i] <> AChatCol[i] then
begin
Debug('GetNestNotification: Chat changed.', 1);
AChatCol := chatbox._getTextColorArray();
rch := 0;
for j := 0 to 7 do
if AChatCol[j] = clRed then
Inc(rch);

if rch = 0 then
Exit;

if (rch > RedCount)
or ((rch = RedCount) and (AChatCol[0] = clRed)) then
begin
Debug('A nest just dropped onto the ground.', 1);
{$IFDEF SCREENSHOT_NEST}
DebugScreen('Bird''s_Nest_'+TheDate(date_day)+'_'+ MsToTime(GetTimeRunning, Time_Abbrev));
{$ENDIF}
RedCount := rch;
Result := True;
end;

if rch <> RedCount then
RedCount := rch;
end;
end;

function FindNest(var x, y: Integer): Boolean;
var
CTS, i, h,bmpD: Integer;
P: TPoint;
NestTPA: TPointArray;
NestATPA: T2DPointArray;
CMod: TColorSettings;
Bounds: TBox;
begin
Cmod := ColorSetting(2, 0.15, 1.65);
Bounds := IntToBox(mainscreen.playerPoint.x-50, mainscreen.playerPoint.y-50, mainscreen.playerPoint.x+50, mainscreen.playerPoint.y+50);
paintBox(bounds, clPurple);
FindColorsSpiralTolerance(x, y, NestTPA, 3558742, Bounds, 6, CMod);

NestATPA := SplitTPA(NestTPA, 5);
SortATPAFromMSCentre(NestATPA);

if ( Length(NestATPA) = 0 ) then
Result:= false
else
Debug('Found ' +IntToStr(Length(NestATPA))+ ' possible nests.', 1);

h:= High(NestATPA);

for i := 0 to h do
begin
if Length(NestATPA[i]) > 5 then
begin
{$IFDEF PAINT}
paintTPA(nestATPA[i], clRed);
paintBox(Bounds, clWhite);
{$ENDIF}

P := MiddleBox(GetTPABounds(NestATPA[i]));
Mouse(P.x-1, P.y-1, 2, 2, Mouse_Move);
if isMouseOverText(['Take Bir', 'e Bird'], 200) then
begin
Result:= True;
GetMousePos(x, y);
Break;
end else
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, mouse_right);
Wait(200 + Random(100));
if chooseOption.optionsExist(['Take Bir', 'e Bird']) then
begin
Result := True;
Break;
end;
Result:= false;
if chooseOption.isOpen() then
chooseOption.close();
end;
end else
Debug('Skipped TPA(' +IntToStr(i)+ ') ; Length(=' +IntToStr(Length(NestATPA[i]))+ ') too small.', 1);
end;
end;

function GetNest: Boolean;
var
i: Integer;
t: TTimeMarker;
begin
Debug('Attepting to find nest.', 1);
t.reset();
t.start();
i := tabBackpack.count();
repeat
if FindNest(x, y) then
begin
if chooseOption.optionsExist(['Take Bir', 'e Bird']) then
chooseOption.select(['Take Bir', 'e Bird'])
else
Mouse(x, y, 0, 0, mouse_left);
while minimap.isPlayerMoving() do
Wait(500+Random(100));
end;
if tabBackpack.count() > i then
begin
Debug('Picked up nest.', 2);
Result := True;
Exit;
end;
until(t.getTime() > 35*1000);
Debug('Failed to pick up nest.', 1);
{$IFDEF SCREENSHOT_NEST}
DebugScreen('Bird''s_Nest_'+TheDate(date_day)+'_'+ MsToTime(GetTimeRunning, Time_Abbrev)+'_FAILED');
{$ENDIF}
end;

procedure SetupPlayer; forward;
function WaitWhileChop: Boolean;
var
ivyTime: TTimeMarker;
begin
minimap.waitFlag();
ivyTime.reset();
ivyTime.start();
repeat
Wait(1000 + Random(500));
Status('Waiting: '+MsToTime(ivyTime.getTime(), Time_Abbrev)+', AveragePixelShift: '+IntToStr(getPixelShiftAverage(mainscreen.playerB ox, 500, 1000)));

minimap.setAngle(players[currentPlayer].integers[P_WALL_DIR]);

if GetNestNotification then
if GetNest then
begin
Inc(Players[CurrentPlayer].Integers[P_NESTS]);
ChopIvy;
end;

if Random(120) = 0 then
DoAntiBan;

{$IFDEF SMART}
if ivyTime.getTime() > 5000 then
paintClear();
{$ENDIF}

if ivyTime.getTime() > 4*60*1000 then
begin
DoAntiBan;
ivyTime.reset();
ivyTime.start();
end;

if not isLoggedIn then
begin
SetupPlayer;
ChopIvy;
end;
//Debug(, 1);
until((not IsIvyAhead_Colour) or (getPixelShiftAverage(mainscreen.playerBox, 500, 1000) < 300));
Result := True;
end;

// Credits to Ashaman
function TRSChatBox.getXP: Integer;
var
b: TBox;
s: String;
tpa : TPointArray;
atpa : T2DPointArray;
i,cts,p: Integer;
begin
b := self.getBounds();
b.edit(+(b.x2-b.x1)-140, +10, -5, -94);

findColorsTolerance(tpa, 14013909, b, 4,colorSetting(2, 0.00, 0.00));

if length(tpa) < 2 then
begin
writeln('chatBox.getXP(): No XP found');
Exit;
end;

atpa := tpa.cluster(5);

b:= atpa.getbounds;
b.edit(-2,-2,+2,+3);

s:=Replace(tesseractgettext(b.x1,b.y1,b.x2,b.y2, FILTER_SMALL_CHARS), ' ', '', [rfReplaceAll]);

P := Pos('x', S);
if P > 0 then
Result := StrToIntDef(ExtractFromStr(Copy(s, P, Length(S)), Numbers), 0)
else
Result := StrToIntDef(ExtractFromStr(S, Numbers), 0);

debug('chatBox.getXP(): XP found: ' + tostr(result), 0);
end;











//================================================== ==========================//
// procedure setupScript();
// -Everything initialised; all systems go.
//================================================== ==========================//
procedure setupScript();
var
i: Integer;
begin
clearDebug();
disguise(ScriptName+ ' has been started!');
writeln(ScriptName+' is loading.');

loadGlobals();
declarePlayers();
disableSRLDebug := true;
disableSRLLog := true;
debug('Setting up SRL.', 0);
setupSRL();
for i := 0 to howManyPlayers - 1 do
begin
players[i].findMod := true;
players[i].worked.name := 'Player '+toStr(i);
players[i].worked.start();
players[i].worked.pause();
players[i].booleans[P_FIRST_LOGIN] := false;
end;

{$IFDEF PAINT}
smartSetupDrawing();
{$ENDIF}

whenBreak:= ((1000*60)*Whenbreak);
addOnTerminate('ProgressReport');
end;

//================================================== ==========================//
// Report functions:
//----------------------------------------------------------------------------//
procedure CalculateTotals;
var
i: Integer;
begin
Total.XP := 0;
Players[CurrentPlayer].Integers[P_XP] := chatBox.getXP() - Players[CurrentPlayer].Integers[P_START_XP];
for i:=0 to HowManyPlayers-1 do
Total.XP := Total.XP + Players[i].Integers[P_XP];

Total.Nests := 0;
for i:=0 to HowManyPlayers-1 do
Total.Nests := Total.Nests + Players[i].Integers[P_NESTS];
end;

procedure clearReportString;
begin
setLength(reportString, 1);
reportString[0] := '';
end;

procedure addToReportString(s: String);
begin
reportString[high(reportString)] := s;
setLength(reportString, length(reportString) + 1);
end;

procedure progressReport();
var
i: Integer;
begin
calculateTotals();

{$IFNDEF DEBUG}
clearDebug();
{$ENDIF}

ClearReportString;
AddToReportString('/-------------------------------------------------------------\');
AddToReportString('|-------------------------------------------------------------|');
AddToReportString(PadR('| Press Play''s', 62) + '|');
AddToReportString(PadR('| ' +ScriptName, 62) + '|');
AddToReportString(PadR('| Version ' + ScriptVersion, 62) + '|');
AddToReportString('|-------------------------------------------------------------|');
AddToReportString(PadR('| TOTALS : ', 62) + '|');
AddToReportString(PadR('| Time Running : ' +MsToTime(getTimeRunning(), TIME_ABBREV), 62) + '|');
AddToReportString(PadR('| Exp Gained : ' +IntToStr(Round(total.XP)), 62) + '|');
AddToReportString(PadR('| Nests Gotten : ' +IntToStr(Total.Nests), 62) + '|');
AddToReportString(PadR('| ', 62) + '|');
for i:=0 to HowManyPlayers-1 do
begin
AddToReportString(PadR('| PLAYER ' +IntToStr(i)+ ' : ', 62) + '|');
AddToReportString(PadR('| Time Running : ' +MsToTime(players[i].worked.getTime(), TIME_ABBREV), 62) + '|');
AddToReportString(PadR('| Exp Gained : ' +IntToStr(Round(Players[i].Integers[P_XP])), 62) + '|');
if not ((players[i].worked.getTime()/60000) = 0) then
AddToReportString(PadR('| Exp / Hour : ' +IntToStr(Round(Players[i].Integers[P_XP]*60/(players[i].worked.getTime()/60000))), 62) + '|');

if not (players[i].location = '') then
AddToReportString(PadR('| False Reason : ' +players[i].location, 62) + '|');
AddToReportString(PadR('| ', 62) + '|');
end;
AddToReportString(PadR('| ', 62) + '|');
AddToReportString('|-------------------------------------------------------------|');
AddToReportString('\-------------------------------------------------------------/');
for i := 0 to High(ReportString) do
Writeln(ReportString[i]);
end;

//================================================== ==========================//
// procedure setupPlayer();
// -Logs in the players and sets it up - ready to go!
//================================================== ==========================//
procedure setupPlayer();
var
i: Integer;
a: TIntegerArray;
begin
players[currentPlayer].login();
writeln('Player ' +IntToStr(CurrentPlayer)+ ' logged in.');
paintClear();
wait(randomRange(100, 150));
minimap.clickCompass();
wait(randomRange(200, 500));
minimap.setAngle(players[currentPlayer].integers[P_WALL_DIR]);
wait(randomRange(200, 500));
mainscreen.setAngle(MS_ANGLE_HIGH);
exitTreasure();
wait(randomRange(500, 1000));

a := chatbox._getTextColorArray();
setLength(AChatCol, length(a));
for i := high(a) downto 0 do
AChatCol[i] := a[i];
if not Players[CurrentPlayer].Booleans[P_FIRST_LOGIN] then
Players[CurrentPlayer].Integers[P_START_XP] := chatBox.getXP();
Players[CurrentPlayer].Booleans[P_FIRST_LOGIN] := True;
RedCount := 0;

roundTime.reset();
roundTime.start();
end;

{$IFNDEF CODEINSIGHT}
//================================================== ==========================//
// procedure takeBreak();
// -Takes a break based on the amount of time played by the current player.
//================================================== ==========================//
procedure takeBreak();
var
Breaktime, Timeleft, i, e: Integer;
begin
if isLoggedIn() then
players[currentPlayer].logout;

if players[currentPlayer].worked.getTime() > (2*60*60*1000) then
begin
Breaktime:= randomRange(20*60*1000, 35*60*1000);
end else
Breaktime:= randomRange(Round(Players[CurrentPlayer].worked.getTime() / 8), Round(Players[CurrentPlayer].worked.getTime() / 4));

Writeln('Taking a break for ' + mstotime(breaktime, Time_Abbrev) );
Writeln('');

i := getSystemTime();
repeat
wait(10000);
e:= GetSystemTime;
timeleft:= breaktime - (e - i);
Disguise('We have ' + mstotime(timeleft, Time_Abbrev) + ' to go');
until( (e - i) >= breaktime );

Disguise('Finished break.');
end;

//================================================== ==========================//
// procedure logoutProcess();
// -Performs logout on current player, sets activeness and takes break.
//================================================== ==========================//
procedure logoutProcess();
begin
Debug('Loging out.', 1);

if bankScreen.isOpen() then
bankScreen.close();

if (not (lowercase(players[currentPlayer].location) = '')) or (not isLoggedIn()) then
begin
debugScreen(capitalize(players[currentPlayer].location)+'_'+msToTime(getTimeRunning(), TIME_ABBREV));
players[currentPlayer].isActive := false;
end;

wait(logoutDelay + random(1000));
players[currentPlayer].logout();

progressReport();

if not( lowercase(players[currentPlayer].location) = '') then
players[currentPlayer].isActive := false;

if not (players.getActive() = 0) then
begin
takeBreak();
end else
exit();

players.next(players[currentPlayer].isActive);
end;

//================================================== ==========================//
// function tryStep(f: TBooleanFunction, errorMsg: String): boolean;
// -Trys a routine 5 times before exiting and return false.
// -Sets 'errorMsg' as player.location.
//================================================== ==========================//
function tryStep(name: String; f: TBooleanFunction; errorMsg: String): boolean;
var
i: Integer;
begin
debug('Attempting to excecute ' +name+ '.', 1);
for i := 1 to 5 do
begin
if f() then
begin
result := true;
break();
end;
if not isLoggedIn() then
if not players[currentPlayer].login() then break();
debug('Failed to excecute ' +name+ ' ' +intToStr(i)+ ' time(s).', 2);
end;

if not result then
players[currentPlayer].location := errorMsg;
end;

//================================================== ==========================//
// procedure takeAFKBreak();
// -Waits a random amount of time, pretending to be AFK.
//================================================== ==========================//
procedure takeAFKBreak();
begin
case random(25) of
10: begin
debug('Taking AFK break.', 1);
wait(randomRange(10000, 45000));
end;
end;
end;

//================================================== ==========================//
// function mainLoopSucessful(): boolean;
// -Performs one iteration of the main loop for a single player.
//================================================== ==========================//
function mainLoopSucessful(): boolean;
begin
if not tryStep('chopIvy()', @chopIvy, 'Could not chop Ivy') then
exit();

if not tryStep('waitWhileChop()', @waitWhileChop, 'Timed out while chopping') then
exit();

takeAFKBreak();

progressReport();

result:= True;
end;

//================================================== ==========================//
// function playerActive(): boolean;
// -Overwrites player.location if SRL has overwritten it; returns true
// if the current player is deemed to be active.
//================================================== ==========================//
function playerActive(): boolean;
var
arr: TVariantArray;
begin
{arr := __getLoginResponse(players[currentPlayer].location, 0);

if length(arr) > 0 then
if (arr[__RES_ACTION] = 'true')
or (arr[__RES_ACTION] = 'update') then
players[currentPlayer].location := '';

if (players[currentPlayer].location = '') then
result := true;}
if not isLoggedIn() then
begin
result := false;
exit;
end;

result := true;
end;
{$ENDIF}




{------------------------------------------------------------------------------]
[ MAIN LOOP: ]
[ Where all the routines are combined into a working script! ]
[------------------------------------------------------------------------------}
BEGIN
setupScript();

repeat
setupPlayer();

repeat

if not playerActive() then
break();

if not mainLoopSucessful() then
break();

until( roundTime.getTime() >= (whenBreak + randomRange(-(1000*60*3), (1000*60*3)) ) );

logoutProcess();

until( players.getActive() = 0 );
debug('All players are inactive.', 1);
debug('Script is finished.', 1);

if isLoggedIn() then
players[currentPlayer].logout();

terminateScript();
END.

PheteyGee
03-12-2015, 07:42 AM
I changed a few lines to get it to run, it appears a bit outdated.


/-------------------------------------------------------------\
|-------------------------------------------------------------|
| Press Play's |
| Ivy Chopper Ultra |
| Version 1.10 |
|-------------------------------------------------------------|
| TOTALS : |
| Time Running : 8 hr 53 min 9 sec |
| Exp Gained : 614552 |
| Nests Gotten : 8 |
| |
| PLAYER 0 : |
| Time Running : 8 hr 21 min 8 sec |
| Exp Gained : 614552 |
| Exp / Hour : 73579 |
| |
| |
|-------------------------------------------------------------|
\-------------------------------------------------------------/


Edit: Here is the script, this should work for any of you that our having the "Error: No default value for parameter 3 found at line 1105
Compiling failed." problem.


program IvyChopperUltra;
{$DEFINE SMART}
{$I SRL-6/SRL.Simba}

{$DEFINE DEBUG}
{$DEFINE PAINT}
{$DEFINE SCREENSHOT}
{$DEFINE SCREENSHOT_NEST}

{



8888888b.
888 Y88b
888 888
888 d88P 888d888 .d88b. .d8888b .d8888b
8888888P" 888P" d8P Y8b 88K 88K
888 888 88888888 "Y8888b. "Y8888b.
888 888 Y8b. X88 X88
888 888 "Y8888 88888P' 88888P'



8888888b. 888
888 Y88b 888
888 888 888
888 d88P 888 8888b. 888 888
8888888P" 888 "88b 888 888
888 888 .d888888 888 888
888 888 888 888 Y88b 888
888 888 "Y888888 "Y88888
888
Y8b d88P
"Y88P"



+------------------------------------------------------------------------------+


_ _ _ __ _ ___ ___ ___ ____ ___
| | \ \ / \ \_/ / /` | |_| / / \ | |_) | |_) | |_ | |_)
|_| \_\/ |_| \_\_, |_| | \_\_/ |_| |_| |_|__ |_| \
_ _ _____ ___ __
| | | | | | | | |_) / /\
\_\_/ |_|__ |_| |_| \ /_/--\



+------------------------------------------------------------------------------+
}

{ ~~ Global Variables ~~ }
var
x, y: Integer;
WhenBreak, HowManyPlayers: Integer;
FindOwnIvy: Boolean;

const
{ *** For Players}
P_WALL_DIR = 0;
{ *** For Report}
P_XP = 1;
P_NESTS = 2;
P_START_XP = 3;
P_FIRST_LOGIN = 4;

{ *** For Directions}
DIR_NORTH = 0;
DIR_EAST = 90;
DIR_SOUTH = 180;
DIR_WEST = 270;

{================================================= =============================}
{ START START START START START START START START START START }
{ START START START START START | START }
{ START START START START --- START START START START }
{ START START START START START START START }
{ START START START START START START START START }
{================================================= =============================}

{------------------------------------------------------------------------------]
[ VARIBLE SETUP: ]
[ See the thread for details. ]
[------------------------------------------------------------------------------}
procedure LoadGlobals;
begin
WhenBreak := 240; // Minutes until break
FindOwnIvy := True; // Tries to find an unoccupied ivy if set to 'true'
end;

{------------------------------------------------------------------------------]
[ DECLARE PLAYERS: ]
[ Change accordingly. ]
[------------------------------------------------------------------------------}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
setLength(players, HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
loginName :=''; // Username
password :=''; // Password
integers[P_WALL_DIR] := DIR_SOUTH; // The direction your player faces to chop the ivy
isMember := true;
isActive := true;
world := -1;
end;
end;

{================================================= =============================}
{ STOP STOP STOP STOP STOP-STOP STOP STOP }
{ STOP STOP STOP STOP STOP | }
{ ===== STOP STOP STOP STOP STOP STOP STOP ===== }
{ STOP STOP STOP STOP STOP }
{ STOP STOP STOP STOP-STOP STOP }
{================================================= =============================}

const
ScriptVersion = '1.10';
ScriptName = 'Ivy Chopper Ultra';

{ ~~ The following options are not recommended to change
unless you have a well rounded scripting ability ~~ }

LaggFactor = 3; // [1 = no lagg, 3 = default, 10 = HOLY S**T]
logoutDelay = 0; // Wait before logging out; for debugging
type
TotalStatistics = record
XP, Nests: Integer;
end;

TBooleanFunction = function(): boolean;

var
TotalTimeInactive: Integer; // Time
RoundTime: TTimeMarker;
Total: TotalStatistics;
PlayerStartXP: Integer;
reportString: TStringArray;

{$IFNDEF CODEINSIGHT}
//================================================== ==========================//
// Utility functions:
//----------------------------------------------------------------------------//
//================================================== ==========================//
// procedure debug(w: string);
// -Prints debug if DEBUG is defined.
//================================================== ==========================//
procedure debug(w: string; lvl: Integer);
var
i: Integer;
begin
{$IFDEF DEBUG}
if lvl > 1 then
begin
w := '-' + w;
for i := 1 to lvl-1 do
w := ' ' + w;
end;
writeln(w);
{$ELSE}
status(w);
{$ENDIF}
end;

//================================================== ==========================//
// procedure DebugScreen(reason: String);
// -Saves a screenshot to 'reason' if SCREENSHOT is defined.
//================================================== ==========================//
procedure DebugScreen(reason: String);
var
bmpF, i: Integer;
TPAName, TPAStats: TPointArray;
begin
{$IFDEF SCREENSHOT}
if not DirectoryExists(ScriptPath + 'Screenshots/') then
if not CreateDirectory(ScriptPath + 'Screenshots/') then
Exit;

bmpF := BitmapFromClient(0, 0, minimap.getBounds().x2+1, chatbox.getBounds().y2+1);
TPAName := TPAFromBox(IntToBox(chatbox.getChatArea().X1, chatbox.getChatArea().Y2, chatbox.getChatArea().X2, chatbox.getBounds().Y2));
TPAStats := TPAFromBox(actionbar.getBounds());
for i := 0 to High(TPAName) do
FastSetPixel(bmpF, TPAName[i].x, TPAName[i].y, clWhite);
for i := 0 to High(TPAStats) do
FastSetPixel(bmpF, TPAStats[i].x, TPAStats[i].y, clWhite);

SaveBitmap(bmpF, ScriptPath + 'Screenshots/' +reason+ '.png');
//SaveScreenshot(ScriptPath + 'Screenshots/' +reason+ '.png');
Debug('Screenshot saved.', 0);
{$ENDIF}
end;

//================================================== ==========================//
// procedure paintClear(area: TBox);
// -Clears the 'area' on SMART.
//================================================== ==========================//
procedure paintClear(area: TBox);
begin
{$IFDEF PAINT}
{$IFDEF SMART}
{$IFDEF DEBUG}
smartImage.clearArea(area);
{$ENDIF}
{$ENDIF}
{$ENDIF}
end;

//================================================== ==========================//
// procedure paintClear(); overload;
// -Clears everything on SMART.
//================================================== ==========================//
procedure paintClear(); overload;
begin
{$IFDEF PAINT}
{$IFDEF SMART}
{$IFDEF DEBUG}
smartImage.drawClear(0);
{$ENDIF}
{$ENDIF}
{$ENDIF}
end;

//================================================== ==========================//
// procedure paintTPA(pts: TPointArray; col: Integer);
// -Paints TPA to SMART with colour 'col'
//================================================== ==========================//
procedure paintTPA(pts: TPointArray; col: Integer);
begin
{$IFDEF PAINT}
{$IFDEF SMART}
{$IFDEF DEBUG}
smartImage.DrawTPA(pts, col);
{$ENDIF}
{$ENDIF}
{$ENDIF}
end;

//================================================== ==========================//
// procedure paintBox(pts: TBox; col: Integer);
// -Paints box to SMART with colour 'col'
//================================================== ==========================//
procedure paintBox(pts: TBox; col: Integer);
begin
{$IFDEF PAINT}
{$IFDEF SMART}
{$IFDEF DEBUG}
smartImage.DrawBox(pts, col);
{$ENDIF}
{$ENDIF}
{$ENDIF}
end;

//================================================== ==========================//
// function PointToStr(P: TPoint): String;
// -Turns a TPoint variable into a String variable in the format: (x, y).
//================================================== ==========================//
function PointToStr(P: TPoint): String;
begin
Result := ('('+IntToStr(P.x)+', '+IntToStr(P.y)+')');
end;

//================================================== ==========================//
// function overTime(theTime: TTimeMarker; theLimit: LongInt): boolean;
// -'theTime' is the TTimeMarker with the stored time.
// -'theLimit' is the amount of time which 'theTime'(ms) must exceed to
// return true.
//================================================== ==========================//
function overTime(theTime: TTimeMarker; theLimit: LongInt): boolean;
begin
result := (theTime.getTime() > theLimit);
end;

function IsIvyAhead_Mouse: Boolean; forward;
//================================================== ==========================//
// procedure doAntiBan();
// -Performs generic antiban procedure.
//================================================== ==========================//
procedure doAntiBan();
var
r: Integer;
begin;
if not isLoggedIn() then exit();

r := Random(65);
case r of
0..17: hoverSkill(SKILL_WOODCUTTING);
18..30: randomCompass(10, 30, true);
36..39: begin
if IsIvyAhead_Mouse then
begin
GetMousePos(x, y);
FastClick(mouse_left);
end;
end;
31..35: randomRClickItem();
40..50: boredHuman();
51..55: mouseMovingObject();
56..60: randomCameraAngle(MS_ANGLE_HIGH);
61: pickUpMouse();
62: smallRandomMouse();
63: sleepAndMoveMouse(randomRange(1000,2000));
64: mouseOffClient(OFF_CLIENT_RANDOM);
end;

wait(randomRange(250, 1000));
gameTabs.openTab(TAB_BACKPACK);
debug('Antiban procedure performed.', 1);
end;
{$ENDIF}

function IsIvyAhead_Mouse: Boolean;
begin
MouseBox(IntToBox(247, 155, 271, 172), mouse_move);
Result := isMouseOverText(['Chop Ivy', 'Ivy', 'hop I']);
end;

function IsIvyAhead_Colour: Boolean;
var
IvyTPA: TPointArray;
CMod: TColorSettings;
Bounds: TBox;
begin
Bounds := IntToBox(mainscreen.playerBox.x1+5, mainscreen.playerBox.y1-5, mainscreen.playerBox.x2-5, mainscreen.playerBox.y2-15);
CMod := ColorSetting(2, 0.31, 1.41);
FindColorsSpiralTolerance(x, y, IvyTPA, 2049333, Bounds, 8, CMod);
paintTPA(IvyTPA, clRed);

Result := (Length(IvyTPA) > 20);
end;

function MSCenter: TPoint;
begin
result := mainscreen.getCenterPoint();
end;

//================================================== ==========================//
// My own fuction for sorting an ATPA from Runescape's centre of main screen
// -Uses bubble sort.
//================================================== ==========================//
type
TDistanceIndex = record
TPA: TPointArray;
Point: TPoint;
Distance: LongInt;
end;

procedure SortATPAFromMSCentre(var ATPA: T2DPointArray);
var
Temp: Array of TDistanceIndex;
h, i: Integer;
f: Boolean;

begin
SetLength(Temp, Length(ATPA));
h := High(ATPA);

// Set array
for i := 0 to h do
begin
Temp[i].TPA := ATPA[i];
Temp[i].Point := ATPA[i][0];
Temp[i].Distance := Distance(Temp[i].Point.x, Temp[i].Point.y, MSCenter.x, MSCenter.y);
end;

// Arrange Array
repeat
f:= True;
for i := 1 to h-1 do
begin
if Temp[i-1].Distance > Temp[i].Distance then
begin
Swap(Temp[i-1], Temp[i]);
f:= False;
end;
end;
until(f)

// Reset array
for i := 0 to h do
ATPA[i] := Temp[i].TPA;

end;

function FindIvy(var x, y: Integer): Boolean;
label insideLoop;
var
i, h, hl, G, a, f: Integer;
bmpD: LongInt;
P: TPoint;
B: TBox;
IvyTPA, MidIvyPts: TPointArray;
IvyATPA: T2DPointArray;
CMod: TColorSettings;
begin
if not isLoggedIn then Exit;

CMod := ColorSetting(2, 0.31, 1.41);
FindColorsSpiralTolerance(x, y, IvyTPA, 2049333, mainscreen.getBounds(), 8, CMod);
IvyATPA := SplitTPA(IvyTPA, 8);
SortATPAFromMSCentre(IvyATPA);

if ( Length(IvyATPA) = 0 ) then
begin
Debug('Ivy not found.', 1);
Result:= false;
end else
Debug('Found ' +IntToStr(Length(IvyATPA))+ ' possible Ivys.', 1);

h:= High(IvyATPA);
for i := 0 to h do
begin
if Length(IvyATPA[i]) > 10 then
begin
{$IFDEF PAINT}
paintTPA(IvyATPA[i], clRed);
{$ENDIF}

B := GetTPABounds(IvyATPA[i]);
P := MiddleBox(B);
hl := B.X2 - B.X1;
Debug('Horizontal pixel length of Ivy is: '+IntToStr(hl), 2);
G := Floor(hl / 25);
Debug('Thus, will split into '+IntToStr(G)+' groups.', 2);
SetLength(MidIvyPts, G);

{$IFDEF PAINT}
paintBox(B, clBlue);
{$ENDIF}
for a := 0 to High(MidIvyPts) do
begin
MidIvyPts[a] := Point(Round((B.X1 + ((hl / (G * 2)) * ((a * 2) + 1)))), P.y);
Debug('MidIvyPts['+IntToStr(a)+']: '+PointToStr(MidIvyPts[a]), 2);
end;
SortTPAFrom(MidIvyPts, MSCenter());
//DebugWait(2000+Random(500));


for a := 0 to High(MidIvyPts) do
begin
if FindOwnIvy then
begin
B := IntToBox(MidIvyPts[a].x - 12, MidIvyPts[a].y + 3, MidIvyPts[a].x + 12, MidIvyPts[a].y + 40);
{$IFDEF PAINT}
paintBox(B, clWhite);
{$ENDIF}

Debug('AveragePixelShift: '+IntToStr(getPixelShiftAverage(B, 250, 500)), 1);
if getPixelShiftAverage(B, 250, 500) > 300 then
continue;
end;

Mouse(MidIvyPts[a].x, MidIvyPts[a].y, 3, 3, MOUSE_MOVE);
Debug('Hovering to find UpText.', 1);
if (isMouseOverText(['Chop Ivy', 'Ivy', 'hop I'], 200)) then
begin
Result:= True;
GetMousePos(x, y);
Exit;
end else
begin
f := f + 1;
Debug('Could not find UpText, right-clicking.', 1);
fastClick(MOUSE_RIGHT);
Wait(200 + Random(100));
if chooseOption.optionsExist(['Chop Ivy', 'Ivy', 'hop I']) then
begin
Result := True;
Exit;
end;
Result := false;
if chooseOption.isOpen() then
chooseOption.close();
if f < 3 then
a := a - 1
else
f := 0;
end;
end;
end else
Debug('Skipped TPA(' +IntToStr(i)+ ') ; Length(=' +IntToStr(Length(IvyATPA[i]))+ ') too small.', 1);
end;
end;

function ClickIvy: Boolean;
begin
Result := True;
if FindIvy(x, y) then
begin
if not chooseOption.optionsExist(['Chop Ivy', 'Ivy', 'hop I']) then
Mouse(x, y, 0, 0, mouse_right);

if not chooseOption.select(['Chop Ivy', 'Ivy', 'hop I']) then
Result := False;
end else
Result := False;
end;

function ChopIvy: Boolean;
var
i: Integer;
b: Boolean;
t: TTimeMarker;
ivyInfront: TBox;
begin
b := False;
ivyInfront := IntToBox(mainscreen.playerBox.x1+5, mainscreen.playerBox.y1-5, mainscreen.playerBox.x2-5, mainscreen.playerBox.y2-15);
paintBox(ivyInfront, clWhite);
t.reset();
t.start();
claimTicket();
ExitTreasure();
repeat
if IsIvyAhead_Colour then
begin
MouseBox(ivyInfront, MOUSE_MOVE);
if (isMouseOverText(['Chop Ivy', 'p Ivy', 'hop I'], 200)) then
begin
FastClick(MOUSE_LEFT);
Result := True;
Break;
end;
end;

if ClickIvy then
begin
Result := True;
Break;
end else
if FindOwnIvy then
begin
b := True;
FindOwnIvy := False;
end else
if b then
FindOwnIvy := True;
until(t.getTime() > 60*1000)
if Result then
Debug('Clicked Ivy.', 1);
if (b) and (not FindOwnIvy) then
FindOwnIvy := True;
end;

(*
TRSChatbox._getTextColorArray
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: pascal

function TRSChatbox._getTextColorArray(): TStringArray;

Returns an array of the text color of each line.

.. note::

- by Press Play
- Last Updated: 14 July 2014 by Press Play

Example:

.. code-block:: pascal

c := chatbox._getTextColorArray();
for i:=high(c) downto 0 do
writeln('Line '+toStr(i)+': '+toStr(c[i]));
*)
function TRSChatbox._getTextColorArray(): TIntegerArray;
var
i, j: Integer;
tmpTPA: TPointArray;
cols: TIntegerArray;
b: TBox;
begin
setLength(result, length(self.lineBoxes));
// clRed : Unlocking new music, bird nest drop, news
// clYellow : (OLD) Used when a demon appears somewhere
// 16776960 : Cyan - GE buy/sell process completed
// 30446 : Orange - Daily Challenge (assignment + completion)
// 33023 : Orange - Treasure Hunter Key
cols := [clRed, clYellow, 16776960, 30446, 33023];
for i:=0 to High(self.lineBoxes) do
begin
b := self.lineBoxes[i];
b.edit(0, +3, 0, -3);
result[i] := -1;

if FindColors(tmpTPA, clWhite, b) then
if FindColorsTolerance(tmpTPA, 15966584, b, 3) then
Result[i] := 15441012 // Player chat (needs tolerance)
else
Result[i] := clWhite; // Examine, player names etc.

if result[i] <> -1 then
continue();

for j:=0 to high(cols) do
if FindColors(tmpTPA, cols[j], b) then
begin
Result[i] := cols[j];
break();
end;

end;
end;

var
AChatCol: TIntegerArray;
RedCount: Integer;

function GetNestNotification: Boolean;
var
i, j, rch: Integer;
a: TIntegerArray;
begin
a := chatbox._getTextColorArray();
for i := high(a) downto 0 do
if a[i] <> AChatCol[i] then
begin
Debug('GetNestNotification: Chat changed.', 1);
AChatCol := chatbox._getTextColorArray();
rch := 0;
for j := 0 to 7 do
if AChatCol[j] = clRed then
Inc(rch);

if rch = 0 then
Exit;

if (rch > RedCount)
or ((rch = RedCount) and (AChatCol[0] = clRed)) then
begin
Debug('A nest just dropped onto the ground.', 1);
{$IFDEF SCREENSHOT_NEST}
DebugScreen('Bird''s_Nest_'+TheDate(date_day)+'_'+ MsToTime(GetTimeRunning, Time_Abbrev));
{$ENDIF}
RedCount := rch;
Result := True;
end;

if rch <> RedCount then
RedCount := rch;
end;
end;

function FindNest(var x, y: Integer): Boolean;
var
CTS, i, h,bmpD: Integer;
P: TPoint;
NestTPA: TPointArray;
NestATPA: T2DPointArray;
CMod: TColorSettings;
Bounds: TBox;
begin
Cmod := ColorSetting(2, 0.15, 1.65);
Bounds := IntToBox(mainscreen.playerPoint.x-50, mainscreen.playerPoint.y-50, mainscreen.playerPoint.x+50, mainscreen.playerPoint.y+50);
paintBox(bounds, clPurple);
FindColorsSpiralTolerance(x, y, NestTPA, 3558742, Bounds, 6, CMod);

NestATPA := SplitTPA(NestTPA, 5);
SortATPAFromMSCentre(NestATPA);

if ( Length(NestATPA) = 0 ) then
Result:= false
else
Debug('Found ' +IntToStr(Length(NestATPA))+ ' possible nests.', 1);

h:= High(NestATPA);

for i := 0 to h do
begin
if Length(NestATPA[i]) > 5 then
begin
{$IFDEF PAINT}
paintTPA(nestATPA[i], clRed);
paintBox(Bounds, clWhite);
{$ENDIF}

P := MiddleBox(GetTPABounds(NestATPA[i]));
Mouse(P.x-1, P.y-1, 2, 2, Mouse_Move);
if isMouseOverText(['Take Bir', 'e Bird'], 200) then
begin
Result:= True;
GetMousePos(x, y);
Break;
end else
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, mouse_right);
Wait(200 + Random(100));
if chooseOption.optionsExist(['Take Bir', 'e Bird']) then
begin
Result := True;
Break;
end;
Result:= false;
if chooseOption.isOpen() then
chooseOption.close();
end;
end else
Debug('Skipped TPA(' +IntToStr(i)+ ') ; Length(=' +IntToStr(Length(NestATPA[i]))+ ') too small.', 1);
end;
end;

function GetNest: Boolean;
var
i: Integer;
t: TTimeMarker;
begin
Debug('Attepting to find nest.', 1);
t.reset();
t.start();
i := tabBackpack.count();
repeat
if FindNest(x, y) then
begin
if chooseOption.optionsExist(['Take Bir', 'e Bird']) then
chooseOption.select(['Take Bir', 'e Bird'])
else
Mouse(x, y, 0, 0, mouse_left);
while minimap.isPlayerMoving() do
Wait(500+Random(100));
end;
if tabBackpack.count() > i then
begin
Debug('Picked up nest.', 2);
Result := True;
Exit;
end;
until(t.getTime() > 35*1000);
Debug('Failed to pick up nest.', 1);
{$IFDEF SCREENSHOT_NEST}
DebugScreen('Bird''s_Nest_'+TheDate(date_day)+'_'+ MsToTime(GetTimeRunning, Time_Abbrev)+'_FAILED');
{$ENDIF}
end;

procedure SetupPlayer; forward;
function WaitWhileChop: Boolean;
var
ivyTime: TTimeMarker;
begin
minimap.waitFlag();
ivyTime.reset();
ivyTime.start();
repeat
Wait(1000 + Random(500));
Status('Waiting: '+MsToTime(ivyTime.getTime(), Time_Abbrev)+', AveragePixelShift: '+IntToStr(getPixelShiftAverage(mainscreen.playerB ox, 500, 1000)));

minimap.setAngle(players[currentPlayer].integers[P_WALL_DIR]);

if GetNestNotification then
if GetNest then
begin
Inc(Players[CurrentPlayer].Integers[P_NESTS]);
ChopIvy;
end;

if Random(120) = 0 then
DoAntiBan;

{$IFDEF SMART}
if ivyTime.getTime() > 5000 then
paintClear();
{$ENDIF}

if ivyTime.getTime() > 4*60*1000 then
begin
DoAntiBan;
ivyTime.reset();
ivyTime.start();
end;

if not isLoggedIn then
begin
SetupPlayer;
ChopIvy;
end;
//Debug(, 1);
until((not IsIvyAhead_Colour) or (getPixelShiftAverage(mainscreen.playerBox, 500, 1000) < 300));
Result := True;
end;

// Credits to Ashaman
function TRSChatBox.getXP: Integer;
var
b: TBox;
s: String;
tpa : TPointArray;
atpa : T2DPointArray;
i,cts,p: Integer;
begin
b := self.getBounds();
b.edit(+(b.x2-b.x1)-140, +10, -5, -94);

findColorsTolerance(tpa, 14013909, b, 4,colorSetting(2, 0.00, 0.00));

if length(tpa) < 2 then
begin
writeln('chatBox.getXP(): No XP found');
Exit;
end;

atpa := tpa.cluster(5);

b:= atpa.getbounds;
b.edit(-2,-2,+2,+3);

s:=Replace(tesseractgettext(b.x1,b.y1,b.x2,b.y2, FILTER_SMALL_CHARS), ' ', '', [rfReplaceAll]);

P := Pos('x', S);
if P > 0 then
Result := StrToIntDef(ExtractFromStr(Copy(s, P, Length(S)), Numbers), 0)
else
Result := StrToIntDef(ExtractFromStr(S, Numbers), 0);

debug('chatBox.getXP(): XP found: ' + tostr(result), 0);
end;











//================================================== ==========================//
// procedure setupScript();
// -Everything initialised; all systems go.
//================================================== ==========================//
procedure setupScript();
var
i: Integer;
begin
clearDebug();
disguise(ScriptName+ ' has been started!');
writeln(ScriptName+' is loading.');

loadGlobals();
declarePlayers();
disableSRLDebug := true;
disableSRLLog := true;
debug('Setting up SRL.', 0);
setupSRL();
for i := 0 to howManyPlayers - 1 do
begin
players[i].findMod := true;
players[i].worked.name := 'Player '+toStr(i);
players[i].worked.start();
players[i].worked.pause();
players[i].booleans[P_FIRST_LOGIN] := false;
end;

{$IFDEF PAINT}
smartSetupDrawing();
{$ENDIF}

whenBreak:= ((1000*60)*Whenbreak);
addOnTerminate('ProgressReport');
end;

//================================================== ==========================//
// Report functions:
//----------------------------------------------------------------------------//
procedure CalculateTotals;
var
i: Integer;
begin
Total.XP := 0;
Players[CurrentPlayer].Integers[P_XP] := chatBox.getXP() - Players[CurrentPlayer].Integers[P_START_XP];
for i:=0 to HowManyPlayers-1 do
Total.XP := Total.XP + Players[i].Integers[P_XP];

Total.Nests := 0;
for i:=0 to HowManyPlayers-1 do
Total.Nests := Total.Nests + Players[i].Integers[P_NESTS];
end;

procedure clearReportString;
begin
setLength(reportString, 1);
reportString[0] := '';
end;

procedure addToReportString(s: String);
begin
reportString[high(reportString)] := s;
setLength(reportString, length(reportString) + 1);
end;

procedure progressReport();
var
i: Integer;
begin
calculateTotals();

{$IFNDEF DEBUG}
clearDebug();
{$ENDIF}

ClearReportString;
AddToReportString('/-------------------------------------------------------------\');
AddToReportString('|-------------------------------------------------------------|');
AddToReportString(PadR('| Press Play''s', 62) + '|');
AddToReportString(PadR('| ' +ScriptName, 62) + '|');
AddToReportString(PadR('| Version ' + ScriptVersion, 62) + '|');
AddToReportString('|-------------------------------------------------------------|');
AddToReportString(PadR('| TOTALS : ', 62) + '|');
AddToReportString(PadR('| Time Running : ' +MsToTime(getTimeRunning(), TIME_ABBREV), 62) + '|');
AddToReportString(PadR('| Exp Gained : ' +IntToStr(Round(total.XP)), 62) + '|');
AddToReportString(PadR('| Nests Gotten : ' +IntToStr(Total.Nests), 62) + '|');
AddToReportString(PadR('| ', 62) + '|');
for i:=0 to HowManyPlayers-1 do
begin
AddToReportString(PadR('| PLAYER ' +IntToStr(i)+ ' : ', 62) + '|');
AddToReportString(PadR('| Time Running : ' +MsToTime(players[i].worked.getTime(), TIME_ABBREV), 62) + '|');
AddToReportString(PadR('| Exp Gained : ' +IntToStr(Round(Players[i].Integers[P_XP])), 62) + '|');
if not ((players[i].worked.getTime()/60000) = 0) then
AddToReportString(PadR('| Exp / Hour : ' +IntToStr(Round(Players[i].Integers[P_XP]*60/(players[i].worked.getTime()/60000))), 62) + '|');

if not (players[i].location = '') then
AddToReportString(PadR('| False Reason : ' +players[i].location, 62) + '|');
AddToReportString(PadR('| ', 62) + '|');
end;
AddToReportString(PadR('| ', 62) + '|');
AddToReportString('|-------------------------------------------------------------|');
AddToReportString('\-------------------------------------------------------------/');
for i := 0 to High(ReportString) do
Writeln(ReportString[i]);
end;

//================================================== ==========================//
// procedure setupPlayer();
// -Logs in the players and sets it up - ready to go!
//================================================== ==========================//
procedure setupPlayer();
var
i: Integer;
a: TIntegerArray;
begin
players[currentPlayer].login();
writeln('Player ' +IntToStr(CurrentPlayer)+ ' logged in.');
paintClear();
wait(randomRange(100, 150));
minimap.clickCompass();
wait(randomRange(200, 500));
minimap.setAngle(players[currentPlayer].integers[P_WALL_DIR]);
wait(randomRange(200, 500));
mainscreen.setAngle(MS_ANGLE_HIGH);
exitTreasure();
wait(randomRange(500, 1000));

a := chatbox._getTextColorArray();
setLength(AChatCol, length(a));
for i := high(a) downto 0 do
AChatCol[i] := a[i];
if not Players[CurrentPlayer].Booleans[P_FIRST_LOGIN] then
Players[CurrentPlayer].Integers[P_START_XP] := chatBox.getXP();
Players[CurrentPlayer].Booleans[P_FIRST_LOGIN] := True;
RedCount := 0;

roundTime.reset();
roundTime.start();
end;

{$IFNDEF CODEINSIGHT}
//================================================== ==========================//
// procedure takeBreak();
// -Takes a break based on the amount of time played by the current player.
//================================================== ==========================//
procedure takeBreak();
var
Breaktime, Timeleft, i, e: Integer;
begin
if isLoggedIn() then
players[currentPlayer].logout;

if players[currentPlayer].worked.getTime() > (2*60*60*1000) then
begin
Breaktime:= randomRange(20*60*1000, 35*60*1000);
end else
Breaktime:= randomRange(Round(Players[CurrentPlayer].worked.getTime() / 8), Round(Players[CurrentPlayer].worked.getTime() / 4));

Writeln('Taking a break for ' + mstotime(breaktime, Time_Abbrev) );
Writeln('');

i := getSystemTime();
repeat
wait(10000);
e:= GetSystemTime;
timeleft:= breaktime - (e - i);
Disguise('We have ' + mstotime(timeleft, Time_Abbrev) + ' to go');
until( (e - i) >= breaktime );

Disguise('Finished break.');
end;

//================================================== ==========================//
// procedure logoutProcess();
// -Performs logout on current player, sets activeness and takes break.
//================================================== ==========================//
procedure logoutProcess();
begin
Debug('Loging out.', 1);

if bankScreen.isOpen() then
bankScreen.close();

if (not (lowercase(players[currentPlayer].location) = '')) or (not isLoggedIn()) then
begin
debugScreen(capitalize(players[currentPlayer].location)+'_'+msToTime(getTimeRunning(), TIME_ABBREV));
players[currentPlayer].isActive := false;
end;

wait(logoutDelay + random(1000));
players[currentPlayer].logout();

progressReport();

if not( lowercase(players[currentPlayer].location) = '') then
players[currentPlayer].isActive := false;

if not (players.getActive() = 0) then
begin
takeBreak();
end else
exit();

players.next(players[currentPlayer].isActive);
end;

//================================================== ==========================//
// function tryStep(f: TBooleanFunction, errorMsg: String): boolean;
// -Trys a routine 5 times before exiting and return false.
// -Sets 'errorMsg' as player.location.
//================================================== ==========================//
function tryStep(name: String; f: TBooleanFunction; errorMsg: String): boolean;
var
i: Integer;
begin
debug('Attempting to excecute ' +name+ '.', 1);
for i := 1 to 5 do
begin
if f() then
begin
result := true;
break();
end;
if not isLoggedIn() then
if not players[currentPlayer].login() then break();
debug('Failed to excecute ' +name+ ' ' +intToStr(i)+ ' time(s).', 2);
end;

if not result then
players[currentPlayer].location := errorMsg;
end;

//================================================== ==========================//
// procedure takeAFKBreak();
// -Waits a random amount of time, pretending to be AFK.
//================================================== ==========================//
procedure takeAFKBreak();
begin
case random(25) of
10: begin
debug('Taking AFK break.', 1);
wait(randomRange(10000, 45000));
end;
end;
end;

//================================================== ==========================//
// function mainLoopSucessful(): boolean;
// -Performs one iteration of the main loop for a single player.
//================================================== ==========================//
function mainLoopSucessful(): boolean;
begin
if not tryStep('chopIvy()', @chopIvy, 'Could not chop Ivy') then
exit();

if not tryStep('waitWhileChop()', @waitWhileChop, 'Timed out while chopping') then
exit();

takeAFKBreak();

progressReport();

result:= True;
end;

//================================================== ==========================//
// function playerActive(): boolean;
// -Overwrites player.location if SRL has overwritten it; returns true
// if the current player is deemed to be active.
//================================================== ==========================//
function playerActive(): boolean;
var
arr: TVariantArray;
begin
{arr := __getLoginResponse(players[currentPlayer].location, 0);

if length(arr) > 0 then
if (arr[__RES_ACTION] = 'true')
or (arr[__RES_ACTION] = 'update') then
players[currentPlayer].location := '';

if (players[currentPlayer].location = '') then
result := true;}
if not isLoggedIn() then
begin
result := false;
exit;
end;

result := true;
end;
{$ENDIF}




{------------------------------------------------------------------------------]
[ MAIN LOOP: ]
[ Where all the routines are combined into a working script! ]
[------------------------------------------------------------------------------}
BEGIN
setupScript();

repeat
setupPlayer();

repeat

if not playerActive() then
break();

if not mainLoopSucessful() then
break();

until( roundTime.getTime() >= (whenBreak + randomRange(-(1000*60*3), (1000*60*3)) ) );

logoutProcess();

until( players.getActive() = 0 );
debug('All players are inactive.', 1);
debug('Script is finished.', 1);

if isLoggedIn() then
players[currentPlayer].logout();

terminateScript();
END.


Commenting out works too I spose, (does it have any problems with your commented out code? i.e. Doesn't run past a certain time? or something - I haven't bothered to look at it enough to work out what the call actually does.

All I did was an an extra parameter in at the end.


arr := __getLoginResponse(players[currentPlayer].location, 0);

becomes


arr := __getLoginResponse(players[currentPlayer].location, 0, 0);

darkfire23
04-16-2015, 02:01 AM
Commenting out works too I spose, (does it have any problems with your commented out code? i.e. Doesn't run past a certain time? or something - I haven't bothered to look at it enough to work out what the call actually does.

All I did was an an extra parameter in at the end.


arr := __getLoginResponse(players[currentPlayer].location, 0);

becomes


arr := __getLoginResponse(players[currentPlayer].location, 0, 0);


Adding an extra parameter didn't solve the issue at line 1105. Commenting out will allow you to run it, I will post again later with the results of my test run.

hipoo90
05-05-2015, 07:11 PM
Error: Unknown declaration "__getLoginResponse" at line 1105
Compiling failed.
:o

asianfishy
05-07-2015, 07:56 PM
Adding an extra parameter didn't solve the issue at line 1105. Commenting out will allow you to run it, I will post again later with the results of my test run.

i commented it out along with 1108 and 1009, seems like its working well.

asianfishy
05-09-2015, 02:27 AM
got it to run for 3 hours varrock south-looking near years.

madmaxman3
10-04-2015, 01:20 PM
Error: Unknown declaration "__getLoginResponse" at line 1105
Compiling failed.

having a little trouble. Please help

IROC-Z
10-04-2015, 05:00 PM
Error: Unknown declaration "__getLoginResponse" at line 1105
Compiling failed.

having a little trouble. Please help

Check out two posts above yours. Asianfishy had a fix.