View Full Version : [C][SRL5]ZMI-Extreme
Pages :
1
2
3
4
5
[
6]
7
8
9
Flight
03-12-2012, 09:53 AM
Who wants to test V1.7 with me? Particularly people who are having trouble with above-ground walking.
New painting by the way... \/
http://i.imgur.com/x0qYi.png
lorenzo
03-12-2012, 03:14 PM
my bot get stuck at the ladder he wont go down he is just clicking near the ladder i got my settings right i just dont know what it is cause when i stop the script and start it the first trip goes alright he goes down the ladder etc but when he tele and try to go down he get stuck
abma2
03-12-2012, 03:50 PM
---
dangerousgoods
03-12-2012, 04:07 PM
I would be more than willing to test it for you on an account. Least I can do for the 99 you gave me last month :)
Planning to do some runecrafting tomorrow so if you want you can send it to me.
Grtz,
J.
Flight
03-12-2012, 04:43 PM
The paint is nice, too bad it blocks the chat... :(
You can simply click the 'Disable Debug' button (furthest right) on SMART.
Also yay to me, 98 RC. :) That's 97 levels down, 1 to go...
http://i.imgur.com/cNe0D.png
akielies
03-12-2012, 04:57 PM
Hey Flight any ideas on this:
It was running good for a few trips, then I went to watch a movie came back and all my laws were missing....so I guess it just kept teleporting or something cause I didn't gain much exp.
Possible bug?
matt486
03-12-2012, 05:21 PM
You forgot to put in the part that asks what runes you want to make, or am i missing something?
Smithsservice
03-12-2012, 05:40 PM
Mine still isnt working.... idk why, help please flight:)
akielies
03-12-2012, 05:40 PM
You forgot to put in the part that asks what runes you want to make, or am i missing something?
Then runes you make are random. I put in the runes I want to use for banking.
After watching it for 10 mins or so, I noticed that it will start teleporting non-stop because it won't click on the ladder.
Sassakill
03-12-2012, 06:04 PM
Akielies, have you changed any settings? Because ladder clicking is working fine for me.
By the way: 5 hour proggie:
[=======================================]
[ ZMI-Extreme 1.65 ]
[ by Flight ]
[=======================================]
[ Run Time : 4 Hr 49 Min 45 Sec ]
[ Exp Gained : 187613 ]
[ Loads Completed : 199 ]
[ Shark Ate : 39 ]
[ Pouches Repaired : 0 ]
[ Breaks : 1 ]
[=======================================]
[ ZMI-Extreme 1.65 ]
[=======================================]
akielies
03-12-2012, 06:07 PM
Akielies, have you changed any settings? Because ladder clicking is working fine for me.
By the way: 6 hour proggie:
Changed the tolerance. I'm pretty sure I have it set up right.
Imanoobbot
03-12-2012, 06:41 PM
---
Imanoobbot
03-12-2012, 06:45 PM
Who wants to test V1.7 with me? Particularly people who are having trouble with above-ground walking.
New painting by the way... \/
http://i.imgur.com/x0qYi.png
I really would love to test v 1.7!
akielies
03-12-2012, 06:50 PM
Tried again, same thing happened. After 13 loads it just keeps teleporting.
Horatio
03-12-2012, 07:35 PM
Flight,
If you need any testers for 1.7, I'm willing to test it for you. I've used your script from 77-87 RC so far and it works very well. The least I can do is help with testing if you need it :) Also when I used a faster computer I didn't experience any issues with above ground walking, which I had before on a slower computer.
rsdanny
03-12-2012, 07:42 PM
Heey Flight,
I've been using your script for over 60 hours now. Dude awesome. It always runs flawless. Never fails when I'm AFK :)
Would love to test the 1.7 version :thumbsup:
Smithsservice
03-12-2012, 08:28 PM
Flight can you like help me using teamviewer or something please?
Sassakill
03-12-2012, 08:41 PM
Flight can you like help me using teamviewer or something please?
Typing your issue out here with a log file is gonna get you help too ;)
Smithsservice
03-12-2012, 08:45 PM
I have already done that dude..
itz_Adren
03-12-2012, 09:08 PM
6hr proggie
[================================]
[ ZMI-Extreme 1.65 ]
[ by Flight ]
[================================]
[ Run Time : 6 Hr 48 Sec ]
[ Exp Gained : 199545 ]
[ Loads Completed : 215 ]
[ Monkfish Ate : 139 ]
[ Pouches Repaired : 0 ]
[ Breaks : 0 ]
[================================]
[ ZMI-Extreme 1.65 ]
Littellj
03-12-2012, 11:35 PM
You can simply click the 'Disable Debug' button (furthest right) on SMART.
Also yay to me, 98 RC. :) That's 97 levels down, 1 to go...
http://i.imgur.com/cNe0D.png
Congratz :)
Found where an error could occur. Not to familiar with how static walking occurs, but i had just tellied and then got put in a random, naturally it didn't find the ladder symbols so it started to static walk. But just kept clicking where it should on the map. Maybe add a FindRandoms before/ after static walking? Didn't check your code it might be in there but i think it had started the static walking b/c when i did the random it was half way to the ladder.
PS: maybe you could add F key uasge more realistic for switching tabs and slightly faster?
And i would love to test your 1.7 50k+ ess in bank :)
Flight
03-12-2012, 11:35 PM
Updated to V 1.7
Modified location-detection system (hopefully no more stuck at ladders)
Above-ground walking improved to use Color TPA path-finding
New path for bank-to-altar with a faster, custom SPS walker
Automatic download of the SPS map file
Automatically checks your SPS map tolerance and adjusts it accordingly
More speed increases
New on-screen painting
...I think that's everything. I did a lot of adjustments to this version.
akielies
03-12-2012, 11:37 PM
Thanks Flight...hopefully this version doesn't have that teleport bug.
fmylifehard
03-13-2012, 12:15 AM
Lol im getting owned with above ground walking, it stops about 5-9 spaces away from ladder/altar and it just clicks at my feet over and over.
[==================================]
[ ZMI-Extreme 1.7 ]
[ by Flight ]
[==================================]
[ Run Time : 57 Min 13 Sec ]
[ Exp Gained : 40841 ]
[ Loads Completed : 41 ]
[ Monkfish Ate : 7 ]
[ Pouches Repaired : 0 ]
[ Breaks : 0 ]
[==================================]
[ ZMI-Extreme 1.7 ]
[==================================]
Working better than the previous, nice update :D
Almost 91 rcing woo :D
illuminatiswag
03-13-2012, 12:51 AM
Thanks for the script Flight 99 RC !!!
Andres
03-13-2012, 01:17 AM
Awesome script, I've decided I'm going to grind 99 rc with this. I'm 90 now so it will be a while, especially since I just started a new job.
Thanks for your work, Flight.
wister1
03-13-2012, 01:52 AM
OMG im so gonna test 1.7, so few time this days to bot...
sckwarrior
03-13-2012, 02:59 AM
im at 97 rc atm not sure if i should go for 99 or get 97 fishing from 92
Imanoobbot
03-13-2012, 03:11 AM
Is there a way to let it run without smart? So just via normal Client. Maybe if i delete the first command?
* I am getting this error if i try to start the script
[Hint] SPS/sps.simba(115:3): Variable 'I' never used at line 114
[Error] (291:5): Unknown identifier 'SPS_Setup' at line 290
Compiling failed.
sckwarrior
03-13-2012, 03:34 AM
Who wants to test V1.7 with me? Particularly people who are having trouble with above-ground walking.
New painting by the way... \/
http://i.imgur.com/x0qYi.png
Just curious... Why do you set up your pouched like that? wouldnt you want to minimalise mouse movement(like setting them up in the top row liek I usually do) or does the script just run best in that particular setup?
Littellj
03-13-2012, 03:47 AM
[=======================================]
[ ZMI-Extreme 1.7 ]
[ by Flight ]
[=======================================]
[ Run Time : 2 Hr 43 Min 59 Sec ]
[ Exp Gained : 102516 ]
[ Loads Completed : 106 ]
[ Monkfish Ate : 37 ]
[ Pouches Repaired : 2 ]
[ Breaks : 0 ]
[=======================================]
pro-sir. :)
Ashihtaka
03-13-2012, 04:31 AM
So is the 500x500 picture no longer needed?
And if not, is it only with version 1.7?
Andres
03-13-2012, 05:15 AM
The new paint is lovely!
Ashihtaka
03-13-2012, 05:20 AM
So is the 500x500 picture no longer needed?
And if not, is it only with version 1.7?
^ Nevermind
VillaVuFTW
03-13-2012, 05:54 AM
Knowing that the people using this script, will either make their astrals, or most likely buy their astrals for teleporting.. I thank you, since this helps my script make profit ;)
illester
03-13-2012, 05:55 AM
Nice update but its stills has the same bugs for me... except the wandering one. Also it no longer clicks on altar, not a problem for me because im 80+ def but still a waste of monkfish. It still sometimes just right clicks and stands there, not often though.
Ashihtaka
03-13-2012, 06:13 AM
*First time using this script*
I had trouble setting up at first, but v1.7 is very simplified.
Running EXCELLENTLY, I can't imagine how any human could do this faster.
10 mins so far, going great - I'll post proggy tomorrow.
Ashihtaka
03-13-2012, 06:18 AM
One error from v1.7 so far:
If you select Pray = True, and it runs out, you don't click the altar to recharge (So you can't use pray with this script basically)
Kajutsky
03-13-2012, 06:50 AM
where do u start the script up at?
Houseyy
03-13-2012, 06:56 AM
where do u start the script up at?
google it noob.
Kajutsky
03-13-2012, 06:58 AM
google it noob.
when the small pouch dies it logs out and says out of pure ess? this is v1.7 btw
Houseyy
03-13-2012, 07:03 AM
stfu and i figured it out
I'm very proud of you.:garfield:
Ashihtaka
03-13-2012, 07:03 AM
Anyone keeping track of how many essence/hour this takes with 4 pouches?
It seems to be around 1k-1.3k, but If anyone who's been using this for a long time can give a more accurate average, that'd be great.
Ashihtaka
03-13-2012, 07:09 AM
And two more things before I sleep:
-It sometimes randomly clicks into the safe route, but corrects itself back to the banker quickly
-It sometimes get stuck above ground when the zamorak mage is in front of you, and keeps hovering over him/that area, but fixes itself after 2 minutes or so
Kajutsky
03-13-2012, 07:16 AM
too bad cant use giant pouch or i'd be beasting, ima save this script until i get more money
newy1
03-13-2012, 07:17 AM
It couldn't repair my pouch, it only withdrawed 2 air runes, then clicked the spell book, then banked, and repeated the process a few times until it gave up and ran to altar.
Jerith
03-13-2012, 07:25 AM
The only thing I can suggest is work out the kinks after the tele. Sometimes I end up against a Castle wall in the corner. Sometimes it missclicks the dungeon. Other then that, its near perfect. I would love to have it so you don't need to have a full bank and a time till next level type of thingy. I see you have a time till next break.
Smithsservice
03-13-2012, 07:50 AM
[Shutdown] Failed to find spell DTM
Although I have all the right runes in my inventory and I have unlocked both repair pouch spell and contct and ourinia teleport, as i have 99 magic.
Please help Flight....
Sassakill
03-13-2012, 08:19 AM
[Shutdown] Failed to find spell DTM
Although I have all the right runes in my inventory and I have unlocked both repair pouch spell and contct and ourinia teleport, as i have 99 magic.
Please help Flight....
Do you have the spell hidden in the spells menu? Just enable the teleport and misc spells, that's how I got it set up. Also sort by level order.
rsdanny
03-13-2012, 09:39 AM
The only thing I can suggest is work out the kinks after the tele. Sometimes I end up against a Castle wall in the corner. Sometimes it missclicks the dungeon. Other then that, its near perfect. I would love to have it so you don't need to have a full bank and a time till next level type of thingy. I see you have a time till next break.
Jerith, this is probably a memory problem. I've seen the same problem with a friend of mine. On my own pc, a lot better than his, it's running flawless
NZ John
03-13-2012, 09:59 AM
Months since I've botted, decided to test out some scripts on here since I have never really trusted color, but this script has made my day. So far so good, no issues except for the paint, it didnt get my xp to level correctly when the script initially started.
Will post a progress report shortly.
Kajutsky
03-13-2012, 10:04 AM
[Shutdown] Failed to find spell DTM
Although I have all the right runes in my inventory and I have unlocked both repair pouch spell and contct and ourinia teleport, as i have 99 magic.
Please help Flight....
go to yaga baba ( i think thats what she's called) and ask her about the ourinia teleport spell and she will help you unlock it after some dialogue
newy1
03-13-2012, 10:55 AM
It couldn't repair my pouch, it only withdrawed 2 air runes, then clicked the spell book, then banked, and repeated the process a few times until it gave up and ran to altar.
Any fixes for this please. I went for a nap and came back with 3 broken pouches.
Havent tried it yet, just looked at your code first and it looks solid.
Will defo use this to get 99 runecraft.
grumpy ruby
03-13-2012, 11:33 AM
hmmm using 1.7 and bot just stands there stationary used 1.65 its flawless yet 1.7 doesn't do anything what am i missing
Flight
03-13-2012, 12:30 PM
Thanks for the script Flight 99 RC !!!
Wowzerz, congratulations man! I'll add you to the list. :)
Just curious... Why do you set up your pouched like that? wouldnt you want to minimalise mouse movement(like setting them up in the top row liek I usually do) or does the script just run best in that particular setup?
It runs more stable. The thing is when you repair a decayed rune pouch it will automatically be moved again to the first available inventory slot rather than the slot it was in when you repaired it.
So is the 500x500 picture no longer needed?
And if not, is it only with version 1.7?
Yes, the SPS map is still needed, but you, the user, no longer need to manually download & install it; the script will do this automatically. It will also automatically set your SPS Runecrafting_Altars tolerance to 0.5.
One error from v1.7 so far:
If you select Pray = True, and it runs out, you don't click the altar to recharge (So you can't use pray with this script basically)
Ok, this is the one feature I didn't test. I had a feeling that more dynamic ladder-finding routines would conflict with Prayer renewal but it only crossed my mind once. I'll work on this tomorrow, it's been a looooong day for me so far...
It couldn't repair my pouch, it only withdrawed 2 air runes, then clicked the spell book, then banked, and repeated the process a few times until it gave up and ran to altar.
I assume your 'RepairMethod' is set to 'Contact'? If so, did it not withdraw a cosmic rune?
hmmm using 1.7 and bot just stands there stationary used 1.65 its flawless yet 1.7 doesn't do anything what am i missing
That doesn't exactly add up. Where are you starting the script?
grumpy ruby
03-13-2012, 12:33 PM
tried at ourania teleport spot also tried near the bank and the altar
newy1
03-13-2012, 01:40 PM
I assume your 'RepairMethod' is set to 'Contact'? If so, did it not withdraw a cosmic rune?
Yeah its set to contact and it's not withdrawing cosmic rune. I had 25k+ mind runes a few hours ago now I only got 8k left. It wasted a lot of them repeatedly accessing the bank. I will try to move the runes a little to see if it works.
It also mass teleports sometimes and I have to shut down then restart.
Smithsservice
03-13-2012, 03:11 PM
Do you have the spell hidden in the spells menu? Just enable the teleport and misc spells, that's how I got it set up. Also sort by level order.
Yes I have thats the thing, it's so annoying everything is how it should be!
Smithsservice
03-13-2012, 03:25 PM
Okay...now it withdraws all the ess, fills the puches and closes down and says:The following DTMs were not freed: [2]
greencheese
03-13-2012, 03:45 PM
After it deposits all it doesnt withdraw my pouches or any tele runes/repair runes. It just takes pure essence out of my bank and right clicks the essence in inventory where the pouches should be then crafts.
Also do i have to have my runes and everything in main tab with full bank ? or can i use a new tab which im doing atm
EDIT : ahha nevermind guys i just realized i needed a full bank so it doesn deposit DOH!
Flight
03-13-2012, 04:13 PM
Okay...now it withdraws all the ess, fills the puches and closes down and says:The following DTMs were not freed: [2]
Ok, that message is not an error message, it doesn't mean anything. If it was an error in my script that shut down you should get a popup box (assuming you're using V.1.7+).
After it deposits all it doesnt withdraw my pouches or any tele runes/repair runes. It just takes pure essence out of my bank and right clicks the essence in inventory where the pouches should be then crafts.
Also do i have to have my runes and everything in main tab with full bank ? or can i use a new tab which im doing atm
The script does not withdraw your pouches for you, I never said it did. I suggest you re-read the instructions & requirements for this script.
mutikainen
03-13-2012, 04:57 PM
1.7 works fine otherwise except after 7 - 13 loads it just starts casting ourania teleport one after another
this is what it says: Failed to find symbols, attempting to TPA-walk
anyone got a solution for this?
I've been using ZMI since i got 52 rc and got 78 now with the script and had no problems before.
Imanoobbot
03-13-2012, 05:06 PM
http://i39.tinypic.com/35it2s1.png
http://i44.tinypic.com/357n8y8.png
When i try to run the scripts i am getting these errors. What am i doing wrong?
Houseyy
03-13-2012, 05:17 PM
it kept teleing me over and over. thanks for that. wasted 30k astrals.
it kept teleing me over and over. thanks for that. wasted 30k astrals.
What u get for not watching it and making sure it was working perfectly :L Least u got the mage exp!
But mine is doing the same thing, does about 13 runs then just turns into a mage training bot.. Not keen on that seeing as im 99
Ashihtaka
03-13-2012, 06:22 PM
After accidentally running 1.65, I noticed 1.7 is a BIG improvement.
Haven't looked into the code to see what you've really changed but I'm glad I started at 1.7.
If you have time, try to look into why it often clicks inside the safe route, but once the player runs there, it clicks back to the bank area then continues on the dangerous route (Not that important, just saves an extra 30 sec each time).
rol prodigy
03-13-2012, 06:22 PM
225k xp till I level to 99!! w00t w00t.
what do I need to do to get on that list? just a picture of the 99?
Also flight, How much till you get 99?
Smithsservice
03-13-2012, 06:45 PM
{{{==Script shutdown==}}}
----Reason: Failed to find spell DTM----
A pop-up window says [Shutdown] Reason:Failed to find spell DTM
Seriously,h ow do i overcome this? Please..
Houseyy
03-13-2012, 06:54 PM
1.65 is 10x better than 1.7
tutkubakay
03-13-2012, 06:56 PM
http://i39.tinypic.com/35it2s1.png
http://i44.tinypic.com/357n8y8.png
When i try to run the scripts i am getting these errors. What am i doing wrong?
Just search that .dll file on internet and download it. Move the .dll file in the same place of script. Thats all.
tonsand
03-13-2012, 07:15 PM
some changes i've noticed: altar path is altered to be more.. human. pathing in 1.65 is a little bit too botlike.
cheers for the script!
Nice work, but the problem I have with 1.7 is it keeps teleporting after doing about 16 loads. The logs says it failed to find symbol
Imanoobbot
03-13-2012, 07:51 PM
Just search that .dll file on internet and download it. Move the .dll file in the same place of script. Thats all.
I love you! I just can say imanoobbot.
RichyB
03-13-2012, 08:00 PM
I honestly cnat work out what im doing wrong.. it seems to bank everything in my invo and only take out p ess goes to alter teles back and cant get into bank.. confused face**
irockesp
03-13-2012, 08:06 PM
I honestly cnat work out what im doing wrong.. it seems to bank everything in my invo and only take out p ess goes to alter teles back and cant get into bank.. confused face**
you need a maxed bank with astrals, laws, payment runes, and pouches in your inventory.
rol prodigy
03-13-2012, 08:14 PM
The only problem I'm encountering now is that it just telees over and over and sometimes sits north of the altar clicking the ground? no idea what would be a fix for this.
Smithsservice
03-13-2012, 08:27 PM
{{{==Script shutdown==}}}
----Reason: Failed to find spell DTM----
A pop-up window says [Shutdown] Reason:Failed to find spell DTM
Seriously,h ow do i overcome this? Please..
Imanoobbot
03-13-2012, 08:35 PM
Okey the Script is running the first time for me on my mac. Running now for 30minutes and it looks like a true masterpiece so far. THANK YOU FLIGHT!
Will post a "mac-proggy" soon ;)
Imanoobbot
03-13-2012, 08:44 PM
Sometimes it get stucked in teleporting and repeats teleporting untill i disable and enable smart again. Maybe its because of debugging. I think it could be avoided if after 2-3 teleports the bot would rotate the camera a bit. Normaly it gets the position of ledder then.
rol prodigy
03-13-2012, 08:48 PM
same here iman, but I only have 160k till 99 so no problems
Imanoobbot
03-13-2012, 08:58 PM
same here iman, but I only have 160k till 99 so no problems
Oh thats good. Dont get me wrong. I thought it was cause of mac and simba :S
phamxboa
03-13-2012, 09:22 PM
I always get the issue where it just keeps teleing over and over?
wister1
03-13-2012, 09:30 PM
ive got that same issue sometimes, teleporting over and over until we manually stop
Ashihtaka
03-13-2012, 09:42 PM
To most problem described on this page, you just haven't set everything up properly.
The banking problem: you need to set everything up in your inventory (including runes) and THEN have full bank - 468 items
Shut down problem: make sure you have lunars, and the spell is visible
Tele problem: happened to me too, should be looked at
Now MY Report:
The only true problem I've found after 12 hours of botting, was that the colours on the mage of zamorak in front of the altar above ground is being caught by the mouse, and then the script keeps looping over to the spot on the ground/feet where your character stopped even if the mage leaves. This stops you from going down the stairs to the banker.
(This also happens if you're wearing full black D'hide - try it out when testing)
Here is a picture of the problem location:
http://i1098.photobucket.com/albums/g372/ashihtaka/rc.png
IMPORTANT NOTE: My Prayer is set to TRUE
Alrighty Flight, it's running perfectly RC wise, but it isn't recharging my Prayer.
I've looked through the code and I can't seem to nail the issue down.
And yes, UsePrayer is True.
Andres
03-13-2012, 11:10 PM
I just had it get in a tele loop. It tele'd outside, clicked the inventory, clicked back to the spell book, and repeated. I took over and clicked near the ladder, and everything was fine.
NZ John
03-13-2012, 11:24 PM
[=======================================]
[ ZMI-Extreme 1.7 ]
[ by Flight ]
[=======================================]
[ Run Time : 2 Hr 16 Min 37 Sec ]
[ Exp Gained : 81983 ]
[ Loads Completed : 83 ]
[ Monkfish Ate : 16 ]
[ Pouches Repaired : 2 ]
[ Breaks : 0 ]
[=======================================]
[ ZMI-Extreme 1.7 ]
[=======================================]
Brilliant, just got 92 RC. Might attempt 99 with this, works like a charm.
Andres
03-13-2012, 11:44 PM
The script just did a tele loop again. It looks like what is happening is that if it lags a bit when clicking towards the ladder it will teleport. Then it thinks that the teleport animation is lag and teles again.
TheAttack
03-13-2012, 11:49 PM
I'm getting this teleloop as well.
Flight
03-14-2012, 01:34 AM
Yep, today I'll fix the teleporting bug, I know it's quite annoying. Before I went to sleep last night I made some adjustments to the ladder walking & finding in terms of Prayer renewal; I'll thoroughly test it today to make sure it works 100%. Hang in there guys, it shouldn't take more than 30 minutes to fix both but I'll be testing for a few hours, just to make sure.
Andres
03-14-2012, 01:35 AM
Yep, today I'll fix the teleporting bug, I know it's quite annoying. Before I went to sleep last night I made some adjustments to the ladder walking & finding in terms of Prayer renewal; I'll thoroughly test it today to make sure it works 100%. Hang in there guys, it shouldn't take more than 30 minutes to fix both but I'll be testing for a few hours, just to make sure.
I'm going to switch back to 1.65 for now. Everything else in 1.70 is working great.
I'm guessing the solution is to just extend the time before the script teleports again after getting stuck or lagging (whatever the failsafe is exactly).
rol prodigy
03-14-2012, 01:43 AM
all I know is someone here in my world, has been teleeing for a good 1 1/2, hope they dont get banned.
P.s Flight, 46k till 99.
Flight
03-14-2012, 02:00 AM
all I know is someone here in my world, has been teleeing for a good 1 1/2, hope they dont get banned.
P.s Flight, 46k till 99.
Nice nice, be sure to lemme know when you hit 99 and I'll add you to the list. :)
Prayer appears to be working correctly once again, I'm now running the script for the sake of making sure the teleport-bug has stopped.
rol prodigy
03-14-2012, 02:04 AM
you want a picture or just let you know?
Ashihtaka
03-14-2012, 03:31 AM
all I know is someone here in my world, has been teleeing for a good 1 1/2, hope they dont get banned.
P.s Flight, 46k till 99.
Did you happen to be in w87?
Just noticed I'm down 4k law runes lol..
rol prodigy
03-14-2012, 03:35 AM
ash what is your rsn pm me it.
Dairiun
03-14-2012, 03:46 AM
How are you even supposed to max your bank? D: I bought every set of armor from bronze through adamant, tried to have every dose of all my potion and I'm still only at 368/468... Can anyone help? What junk do you guys fill your bank with?
newy1
03-14-2012, 03:56 AM
How are you even supposed to max your bank? D: I bought every set of armor from bronze through adamant, tried to have every dose of all my potion and I'm still only at 368/468... Can anyone help? What junk do you guys fill your bank with?
Basket of orange, strawberry, banana, apple etc.
Ashihtaka
03-14-2012, 04:07 AM
lol, it's too bad about the teleporting loop, I was happy I was making back some of the money spent on the pure essence from the gain in astrals/laws ='(
Flight
03-14-2012, 05:02 AM
Agh the map colors are changing SO much now. Seems like every time we change surfaces the road color shifts, I don't remember the map changing this often, it's really aggravating...
For now, use this version: it has fixed Prayers and uses a static coordinate walking for above-ground. Until I can find a solution to this TPA map-walking, we'll just have to use this.
{/////////////////////////////////////////
// ~ZMI-Extreme by Flight~ //
// //
// Version: 1.71 //
/////////////////////////////////////////}
program ZMIExtreme;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i SPS/sps.simba}
{$i SRL/SRL/misc/reports.simba}
{$i SRL/SRL/misc/paintsmart.simba}
Const
//SRL Stats
SRLStats_Username = '';
SRLStats_Password = '';
//General settings
HPLevel = 99; //Your (max) Constitution/Hitpoints level
Food = 'monkfish'; //Trout, Tuna, Lobster, Swordfish, Monkfish, Shark
EatAt = 70; //Eat at this health percent or less
UsePrayer = True; //Use ranged protection prayers?
RuneType = 'mind'; //Type of rune to use for bank payment (20 runes per session)
RestAt = 60; //Run energy % to rest at (after banking)
SwitchWorlds = True; //Switch worlds after a break?
//Pouch settings
SS = 7; //Which slot # has your small pouch (0 for not using)
MS = 6; //Which slot # has your medium pouch (0 for not using)
LS = 5; //Which slot # has your large pouch (0 for not using)
GS = 4; //Which slot # has your giant pouch (0 for not using)
RepairMethod = 'spell'; //Spell or Contact
//Break settings
BreakIn = 180; //How long before we take a break? (minutes)
BreakFor = 25; //How long will we break for? (minutes)
Bir = 13; //Random minutes to add/subtract from how long until we break
Bfr = 7; //Random minutes to add/subjtract from break duration
Fill = 0; //Ignore
Empty = 1; //Ignore
Var
MPoint: TPoint;
Version: String;
Exp,Exp_C,ReportTime,Runs,
CommitTime,FoodC,RepairC,
XPToLvl,OldXP,AC: Integer;
PP1,PP2,OptionsSet,AddRun: Boolean;
Path_ToAltar: TPointArray;
LCols: TIntegerArray;
//Import painting
Prog: Integer;
PaintArray: TStringArray;
//Break variables
w,x,y,z,RealBTime,CurrentBTime,
BreakRounds,TotalBreaks: Integer;
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
Level[SKILL_HITPOINTS] := HPLevel;
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Runecrafting;
Active := True;
end;
end;
//By Dgby714
function DownloadToFile(const URL, Filename: string): boolean;
var
FileI: LongInt;
FileC, FileH: string;
begin
Result := False;
FileI := InitializeHTTPClient(False,False);
try
FileC := GetHTTPPage(FileI, URL);
FileH := GetRawHeaders(FileI);
if ((FileC = '') or (FileH = '')) then
begin
WriteLn('Error downloading "' + URL + '".');
Exit;
end;
FileH := Copy(GetRawHeaders(FileI), 10, Pos(#13, FileH) - 10);
if (FileH <> '200 OK') then
begin
WriteLn('Couldn''t download "' + URL + '", Error Code: ' + FileH + '.');
Exit;
end;
finally
FreeHTTPClient(FileI);
end;
try
if not FileExists(Filename) then
FileI := CreateFile(Filename)
else
FileI := OpenFile(Filename, False);
CloseFile(FileI);
FileI := RewriteFile(Filename, False);
Result := WriteFileString(FileI, FileC);
finally
CloseFile(FileI);
end;
end;
Procedure LoadVars;
begin
Version := '1.71';
//http://flight.clawz.com/imgs/ZMIImg.png
DownloadToFile('http://i.imgur.com/6RN9F.png', AppPath + '/Scripts/ZMIImg.png');
w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-Bir * 60000, Bir * 60000);
z := RandomRange(-Bfr * 60000, Bfr * 60000);
Path_ToAltar := [Point(160, 550), Point(160, 580), Point(160, 605), Point(160, 645),
Point(165, 675), Point(175, 710), Point(205, 725), Point(240, 715),
Point(275, 715), Point(305, 720), Point(330, 720)];
LCols := [789517, 921102, 1052689]; //Ladder colors
Case Lowercase(RuneType) of
'fire': MPoint := Point(340, 125);
'body': MPoint := Point(105, 170);
'mind': MPoint := Point(200, 80);
'air': MPoint := Point(300, 85);
'water': MPoint := Point(152, 128);
end;
PP1 := (not (GS = 0));
PP2 := (not (LS = 0));
AddRun := False;
end;
Procedure Report;
begin
ClearDebug;
SRLRandomsReport;
SRLProgressReport(ResultDebugBox, 'ZMI-Extreme', 'Flight', Version,
['Run time', 'Exp gained', 'Loads completed', Capitalize(Food)+' ate',
'Pouches repaired', 'Breaks'],
[MsToTime(GetTimeRunning, Time_Abbrev), Exp, Runs, FoodC, RepairC, TotalBreaks]);
MarkTime(ReportTime);
end;
Procedure Commit;
begin
stats_IncVariable('Runecrafting EXP (Gained)', Exp_C);
Stats_Commit;
Exp_C := 0;
MarkTime(CommitTime);
end;
Procedure Shutdown(Reason: String);
begin
ClearDebug;
Writeln('');
WriteLn('{{{==Script shutdown==}}}');
Writeln('----Reason: '+Reason+'----');
Writeln('');
Wait(RandomRange(1000,1300));
CloseBank;
Report;
Logout;
ShowMessage('[Shutdown] Reason: '+Reason);
TerminateScript;
end;
procedure OnScreen(Force: boolean);
var
XPH,TTB,Portion,I: Integer;
TP: TPoint;
V: string;
begin
if (Exp < 1) then
Exp := 1;
XPH := Round((Exp * 3600) / (GetTimeRunning / 1000));
TTB := (((w) + (y) + BreakRounds)-GetTimeRunning);
for I := 0 to 6 do
begin
case I of
0:
begin
V := 'V.'+Version;
TP := Point(397, 25);
end;
1:
begin
V := MsToTime(GetTimeRunning, Time_Abbrev);
TP := Point(130, 50);
end;
2:
begin
V := IntToStr(Exp);
TP := Point(130, 70);
end;
3:
begin
V := IntToStr(XPH);
TP := Point(131, 92);
end;
4:
begin
V := IntToStr(Runs);
TP := Point(342, 67);
end;
5:
begin
V := IntToStr(XPToLvl-Exp);
TP := Point(342, 88);
end;
6:
begin
V := 'TTB: '+MsToTime(TTB,Time_Bare);
TP := Point(204, 107);
end;
end;
if V = PaintArray[I] then
Continue;
Portion := GetMufasaBitmap(Prog).Copy(TP.x, TP.y, TP.x + 76, TP.y + 17).Index;
SMART_DrawBitmap(False, Portion, Point(MCX1 + TP.x, MCY1 + TP.y));
FreeBitmap(Portion);
SMART_DrawTextEx(False, MCX1 + TP.x, MCY1 + TP.y, SmallCharsNS, V, clWhite);
end;
PaintArray := ['V.'+Version, MsToTime(GetTimeRunning, Time_Abbrev), IntToStr(Exp), IntToStr(XPH),
IntToStr(Runs), IntToStr(XPToLvl-Exp), 'TTB: '+MsToTime(TTB,Time_Bare)];
end;
procedure LoadImg;
begin
Prog := LoadBitmap(AppPath + '/Scripts/ZMIImg.png');
SMART_DrawBitmap(True, Prog, Point(MCX1, MCY1));
SetLength(PaintArray, 7);
end;
Procedure DestroyImg;
begin
FreeBitmap(Prog);
end;
Procedure UpdateSPSMap;
begin
Writeln('Checking SPS map & tolerance...');
if not FileExists(AppPath + '/Includes/SPS/img/runecrafting_altars/0_1.png') then
DownloadToFile('http://i.imgur.com/ktZ1K.png', AppPath + '/Includes/SPS/img/runecrafting_altars/0_1.png');
SPS_Setup(Runecrafting_Altars, ['0_1']);
if (not (SPS_Surface.Tolerance = 0.5)) then
begin
Writeln('Adjust SPS map tolerance...');
SPS_Surface.Tolerance := 0.5
end;
SPS_Continue := True;
end;
Function IsMoving_F: Boolean;
begin
Result := PixelShift(IntToBox(MMCX-30, MMCY-30, MMCX+30, MMCY+30), 200) > 200;
end;
Function RunesMenu: Boolean;
var
X,Y: Integer;
begin
Result := FindText(x, y, 'light', UpCharsEx, 145, 275, 360, 315);
end;
Function UsingQuickPrayers: Boolean;
Var
X,Y: Integer;
begin
Result := FindColorTolerance(X, Y, 9154193, 710, 75, 730, 85, 20);
end;
//By Bandland100, modified to shift mouse speeds after every step
procedure SuperWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,randomDist,la stDist,step: extended;
lastX,lastY,MSP,W: integer;
sqrt2,sqrt3,sqrt5: extended;
begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
case Random(50) of
1..25: W := (MSP + (Random((MSP/4))));
26..50: W := (MSP - (RandomRange((MSP/2), MSP-1)));
end;
if (W < 1) then
W := 1;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
//W := round((maxWait - minWait) * (step / maxStep) + minWait);
wait(W);
lastdist:= dist;
end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));
MouseSpeed := MSP;
end;
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
SuperWindMouse(X, Y, X2, Y2, 9, 5, 10.0 / randSpeed, 15.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;
Procedure ActivateQuickPrayer;
begin
if UsingQuickPrayers then Exit;
HumanMMouse(723, 70, 10, 10);
ClickMouse2(True);
end;
Function LowPrayer: Boolean;
begin
Result := FindColorTolerance(X, Y, 255, 740, 70, 760, 80, 10)
end;
Procedure SetNorth;
begin
Mouse(542, 24, 15, 15, mouse_left);
KeyDown(38);
Wait(850 + Random(100));
KeyUp(38);
end;
Function FoundSymbol(Ident: Integer; var X, Y, Dist: Integer): Boolean;
var
B: TBox;
TPA: TPointArray;
L,i,CTS: Integer;
ATPA,ATPA2: T2DPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
if ((Ident = 1) or (Ident = 2) or (Ident = 5) or (Ident = 6)) then
FindColorsTolerance(TPA, 12632256, MMX1, MMY1, MMCX+10, MMY2, 10)
else
FindColorsTolerance(TPA, 12632256, MMX1, MMY1, MMX2, MMY2, 10);
if Length(TPA) < 1 then
begin
ColorToleranceSpeed(CTS);
Exit;
end;
ATPA := TPAtoATPAEx(TPA, 10, 10);
L := High(ATPA);
SetArrayLength(ATPA2, L+1);
for i := 0 to L do
begin
B := GetTPABounds(ATPA[i]);
with B do
begin
if (Ident = 1) then
FindColorsTolerance(ATPA2[i], 16514299, B.X1, B.Y1, B.X2, B.Y2, 5) //Altar (white)
else if (Ident = 2) then
FindColorsTolerance(ATPA2[i], 1244922, B.X1, B.Y1, B.X2, B.Y2, 5) //Altar (yellow)
else if (Ident = 3) then
FindColorsTolerance(ATPA2[i], 2413294, B.X1, B.Y1, B.X2, B.Y2, 5) //Bank
else if (Ident = 4) then
FindColorsTolerance(ATPA2[i], 2370858, B.X1, B.Y1, B.X2, B.Y2, 5) //Hunter
else if (Ident = 5) then
FindColorsTolerance(ATPA2[i], 200951, B.X1, B.Y1, B.X2, B.Y2, 5) //RC symbol
else if (Ident = 6) then
FindColorsTolerance(ATPA2[i], 2763504, B.X1, B.Y1, B.X2, B.Y2, 5) //Dungeon
else if (Ident = 7) then
FindColorsTolerance(ATPA2[i], 254, B.X1, B.Y1, B.X2, B.Y2, 5); //Big arrow
Result := (Length(ATPA2[i]) > 0);
if Result then
begin
ColorToleranceSpeed(CTS);
MiddleTPAEx(ATPA2[i], X, Y);
Dist := Distance(MMCX, MMCY, X, Y);
Exit;
end;
end;
end;
end;
Function NearSymbol(Which: Integer): Boolean;
var
X,Y,D: Integer;
begin
Result := FoundSymbol(Which, X, Y, D);
end;
Function AboveGround: Boolean;
begin
Result := (PercentBlackMM < 20);
end;
Function NearLadder: Boolean;
var
X,Y,D: Integer;
begin
Result := False;
if (FoundSymbol(5, X, Y, D) or FoundSymbol(6, X, Y, D)) then
Result := (D < 20);
end;
Procedure ReturnValues(colors: TIntegerArray; var HueMods, SatMods: Extended; var color, Tolerance: Integer);
Var
h, s, t: Extended;
I,II : integer;
HSLColor : Array[1..3] of Extended;
HSL : Array[0..1] of Array[1..3] of Extended;
begin;
For I:= 1 to 3 do
begin;
HSL[0][i] := 255;
end;
For I:= 0 to High(Colors) do
begin;
ColortoHSL(Colors[i],HSLColor[1],HSLColor[2],HSLColor[3]);
For II:= 1 to 3 do
begin;
HSL[0][II] := MinE(HSLColor[II],HSL[0][II]);
HSL[1][II] := MaxE(HSLColor[II],HSL[1][II]);
end;
end;
H := (HSL[1][1] - HSL[0][1]);
S := (HSL[1][2] - HSL[0][2]);
T := (HSL[1][3] - HSL[0][3]);
try
HueMods := (H/T);
SatMods := (S/T);
Tolerance := Round(t);
except
HueMods := 0;
SatMods := 0;
Tolerance := Round(0.0);
end;
Color := HSLToColor((HSL[1][1] + HSL[0][1]) div 2,(HSL[1][2] + HSL[0][2]) div 2,(HSL[1][3] + HSL[0][3]) div 2);
end;
Procedure SetPrayers;
var
X,Y,X2,Y2,T,T2: Integer;
PPoint: TPoint;
label
MoveM;
begin
{Right-click prayer icon}
HumanMMouse(724, 70, 8, 8);
ClickMouse2(False);
WaitOption('elect', 400);
{Wait for the quick-prayer selection menu}
MarkTime(T);
repeat
if TimeFromMark(T) > 5000 then
Exit;
if FindColorTolerance(X, Y, 8499692, 610, 445, 630, 465, 10) then
break;
until(false);
{Determine the player's prayer type & choose the right protection prayer}
if (FindText(X, Y, 'urses', StatChars, 630, 200, 690, 230) or FindText(x, y, 'rayers', StatChars, 630, 200, 690, 230)) then
begin
if FindText(X, Y, 'urses', StatChars, 630, 200, 690, 230) then
PPoint := Point(671, 274)
else if FindText(X, Y, 'rayers', StatChars, 630, 200, 690, 230) then
PPoint := Point(670, 343);
{Check if prayers are already set}
if not FindColorTolerance(X2, Y2, 461806, PPoint.X-10, PPoint.Y-10, PPoint.X+10, PPoint.Y+10, 10) then
begin
MoveM:
if not LoggedIn then Exit;
HumanMMouse(671, 274, 4, 4);
if WaitUpText('elect', 400) then
begin
ClickMouse2(True);
Wait(RandomRange(175, 350));
end else
goto MoveM;
end else
Writeln('Prayers already selected');
{Hit confirm}
HumanMMouse(645, 456, 15, 5);
ClickMouse2(True);
end;
{Wait for the prayer selection to be confirmed}
MarkTime(T2);
repeat
if TimeFromMark(T2) > 5000 then
Exit;
if (not FindText(x, y, 'urses', StatChars, 630, 200, 690, 230) and (not FindText(x, y, 'rayers', StatChars, 630, 200, 690, 230))) then
break;
until(false);
OptionsSet := True;
Gametab(Tab_Inv);
Writeln('Quick-prayers set');
end;
Function TeleportOut: Boolean;
var
X,Y,I,DTM: Integer;
label
Start;
begin
Result := False;
Start:
if NearSymbol(4) then Exit;
if not LoggedIn then Exit;
DTM := DTMFromString('mWAAAAHicY2FgYNjGxMCwhQlCbwZiRkYGhj 9AcQ4g/R9IW1tbMRjqnmS4eMiT4fXrVwz8QDFkzISGQQAAddcLnQ==');
Gametab(tab_Magic);
Wait(RandomRange(365, 410));
if FindDTM(DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
I := 0;
HumanMMouse(X, Y, 7, 7);
ClickMouse2(True);
Gametab(tab_Inv);
HumanMMouse(580, 115, 15, 15);
Wait(RandomRange(2000, 2250));
FindNormalRandoms;
if not WaitFunc(@AboveGround, 100, 4000) then
goto Start;
end else
begin
Inc(I);
if (I > 3) then
Shutdown('Failed to find spell DTM')
else
begin
Writeln('Failed to find spell '+IntToStr(I)+' time');
FindNormalRandoms;
Gametab(tab_Magic);
Wait(RandomRange(125, 275));
goto Start;
end;
end;
Result := AboveGround;
SetRun(True);
FreeDTM(DTM);
end;
Function FindLadder(Var X, Y: Integer): Boolean;
var
B: TBox;
Loop: Boolean;
TPA,TPA2,PBox: TPointArray;
i,CTS: Integer;
ATPA: T2DPointArray;
label
Start;
begin
Result := False;
Loop := False;
PBox := TPAFromBox(IntToBox(240, 130, 275, 185));
Start:
FindNormalRandoms;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(130, 170, TPA, 3029573, MSX1, MSY1, MSCX, MSY2, 15)
TPA := ClearTPAFromTPA(TPA, PBox);
if Length(TPA) < 1 then
begin
ColorToleranceSpeed(CTS);
Exit;
end;
ATPA := TPAtoATPAEx(TPA, 20, 20);
for i := 0 to High(ATPA) do
begin
B := GetTPABounds(ATPA[i]);
with B do
begin
FindColorsSpiralTolerance(130, 170, TPA2, 921102, B.X1, B.Y1, B.X2, B.Y2, 15);
TPA2 := ClearTPAFromTPA(TPA2, PBox);
if Length(TPA2) > 0 then
begin
ColorToleranceSpeed(CTS);
MiddleTPAEx(TPA2, X, Y);
HumanMMouse(X, Y, 5, 5);
Result := True;
Exit;
end;
end;
end;
ColorToleranceSpeed(CTS);
if Loop then
goto Start;
end;
Function FindChaosAltar(Var X, Y: Integer): Boolean;
var
B: TBox;
TPA: TPointArray;
L,i,CTS: Integer;
ATPA,ATPA2: T2DPointArray;
begin
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3685505, MSX1, MSY1, MSX2, MSY2, 20)
if Length(TPA) < 1 then
begin
ColorToleranceSpeed(CTS);
Exit;
end;
ATPA := TPAtoATPAEx(TPA, 30, 30);
L := High(ATPA);
SetArrayLength(ATPA2, L+1);
for i := 0 to L do
begin
B := GetTPABounds(ATPA[i]);
with B do
begin
FindColorsSpiralTolerance(MSCX, MSCY, ATPA2[i], 11908541, B.X1, B.Y1, B.X2, B.Y2, 20)
if Length(ATPA2[i]) > 0 then
begin
ColorToleranceSpeed(CTS);
MiddleTPAEx(ATPA2[i], X, Y);
HumanMMouse(X, Y, 5, 5);
Result := True;
Exit;
end;
end;
end;
end;
Function FindRoad: boolean;
Var
i,x,y,CTS: integer;
TPA: TPointArray;
Cols: TIntegerArray;
HMods,SMods: Array of Extended;
begin
result := false;
if not LoggedIn then Exit;
FindNormalRandoms;
CTS := GetColorToleranceSpeed;
Cols := [4083800, 3623510, 4148053, 4018779, 4215390, 3886425];
HMods := [0.08, 0.08, 0.16, 0.08, 0.12, 0.09];
SMods := [0.15, 0.11, 0.20, 0.09, 0.12, 0.09];
for i := 0 to High(Cols) do
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMods[i], SMods[i]);
FindColorsSpiralTolerance(575, 130, TPA, Cols[i], MMX1, MMY1, MMX2, MMY2, 8);
ColorToleranceSpeed(CTS);
if (Length(TPA) > 0) then break;
end;
if (Length(TPA) > 0) then
begin
ColorToleranceSpeed(CTS);
sortTPAFrom(TPA, Point(575, 135));
for i := 0 to high(TPA) do
begin
x := TPA[i].x;
y := TPA[i].y;
if (not rs_OnMinimap(x, y)) then
continue;
mouse(x, y, 3, 3, mouse_left);
if (waitFunc(@flag, 50, 3000)) then
begin
result := true;
exit;
end;
end;
end;
ColorToleranceSpeed(CTS);
end;
Function WalkToLadder: Boolean;
var
X,Y,B,T,Dist: Integer;
SH: Boolean;
label
Start;
begin
Result := False;
SH := False;
if AddRun then
begin
B := Round(GetXPBarTotal);
Inc(Runs);
IncEx(Exp, (B-OldXP));
IncEx(Exp_C, (B-OldXP));
OnScreen(False);
AddRun := False;
AC := 0;
end;
Start:
if not LoggedIn then Exit;
if not AboveGround then Exit;
FindNormalRandoms;
MakeCompass('N');
if (NearLadder and (not LowPrayer)) then
begin
if FindLadder(X, Y) then
begin
Result := True;
Exit;
end;
end;
if (FoundSymbol(6, X, Y, Dist) or FoundSymbol(7, X, Y, Dist)) then //Dungeon
begin
HumanMMouse(X, Y, 2, 2);
ClickMouse2(True);
if not WaitFunc(@IsMoving_F, 10, 3000) then
goto Start;
HumanMMouse(127, 319, 15, 15);
While IsMoving_F do
begin
if not LowPrayer then
begin
if IsUpTextMultiCustom(['limb', 'mb L', 'adder']) then
begin
GetMousePos(X, Y);
MMouse(X, Y-(RandomRange(15, 25)), 0, 0);
ClickMouse2(True);
if DidRedClick then
SH := True;
Break;
end;
end else
Wait(1);
end;
While IsMoving_F do
Wait(1);
if SH then
begin
MarkTime(T);
repeat
FindNormalRandoms;
if NearSymbol(3) then
Exit;
until(TimeFromMark(T) > 5000)
end;
if NearLadder then
begin
Result := True;
Exit;
end else
goto Start;
end else if (FoundSymbol(1, X, Y, Dist) or FoundSymbol(2, X, Y, Dist)) then //Altar
begin
HumanMMouse(X, Y, 2, 2);
ClickMouse2(True);
if not WaitFunc(@IsMoving_F, 10, 3000) then
goto Start;
HumanMMouse(127, 319, 15, 15);
While IsMoving_F do
begin
if not LowPrayer then
begin
if IsUpTextMultiCustom(['limb', 'mb L', 'adder']) then
begin
GetMousePos(X, Y);
MMouse(X, Y-(RandomRange(15, 25)), 0, 0);
ClickMouse2(True);
if DidRedClick then
SH := True;
Break;
end;
end else
Wait(1);
end;
While IsMoving_F do
Wait(1);
if SH then
begin
MarkTime(T);
repeat
FindNormalRandoms;
if NearSymbol(3) then
Exit;
until(TimeFromMark(T) > 5000)
end;
if NearLadder then
begin
Result := True;
Exit;
end else
goto Start;
end else if ((not NearSymbol(6)) and (not NearSymbol(1))) then
begin
Writeln('Failed to find symbols, attempting to TPA-walk');
//if FindRoad then
//begin
Mouse(567, 120, 3, 3, Mouse_Left);
HumanMMouse(127, 319, 15, 15);
While IsMoving_F do
begin
if not LowPrayer then
begin
if IsUpTextMultiCustom(['limb', 'mb L', 'adder']) then
begin
GetMousePos(X, Y);
MMouse(X, Y-(RandomRange(15, 25)), 0, 0);
ClickMouse2(True);
if DidRedClick then
SH := True;
Break;
end;
end else
Wait(1);
end;
While IsMoving_F do
Wait(1);
if SH then
begin
MarkTime(T);
repeat
FindNormalRandoms;
if NearSymbol(3) then
Exit;
until(TimeFromMark(T) > 5000)
end;
if NearLadder then
begin
Result := True;
Exit;
end else
goto Start;
//end else
//begin
//TeleportOut;
//goto Start;
//end;
end;
end;
Function HandleAltar: Boolean;
var
A,B: Boolean;
X,Y,T,I: Integer;
label
Start;
begin
Result := False;
if not LowPrayer then
begin
Result := True;
Exit;
end;
A := False;
B := False;
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
Start:
MarkTime(T);
repeat
if not LoggedIn then Exit;
FindNormalRandoms;
if FindChaosAltar(X, Y) then
begin
if WaitUpTextMulti(['ay-at', 'aos alt'], 400) then
begin
ClickMouse2(True);
if DidRedClick then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
B := True;
break;
end;
end else
begin
ClickMouse2(False);
if WaitOption('ray-at', 500) then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
B := True;
break;
end;
end;
end;
if (TimeFromMark(T) > 7000) then
begin
A := True;
break;
end;
until(false)
if A then
begin
Inc(I);
Mouse(MMCX, MMCY+10, 2, 2, mouse_left);
FFlag(0);
While IsMoving_F do
Wait(1);
if (I > 3) then
begin
if not FindChaosAltar(X, Y) then
begin
if TeleportOut then
begin
Wait(RandomRange(2100, 2600));
I := 0;
Exit;
end;
end;
end;
Wait((RandomRange(600, 775)));
goto Start;
end;
if B then
begin
While IsMoving_F do
Wait(1);
ActivateQuickPrayer;
Result := True;
Exit;
end;
end;
Function HandleLadder: Boolean;
var
A,B,C: Boolean;
X,Y,T,T2,I: Integer;
label
Start;
begin
Result := False;
A := False;
B := False;
C := False;
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
Start:
MarkTime(T);
repeat
FindNormalRandoms;
if NearSymbol(3) then
begin
Result := True;
Exit;
end;
if FindLadder(X, Y) then
begin
if WaitUpTextMulti(['limb', 'mb L', 'adder'], 400) then
begin
ClickMouse2(True);
if DidRedClick then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
B := True;
break;
end else
begin
C := True;
break;
end;
end else
begin
ClickMouse2(False);
if WaitOptionMulti(['Clim','limb','imb','b L'], 500) then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
B := True;
break;
end else
begin
C := True;
break;
end;
end;
end;
if (TimeFromMark(T) > 7000) then
begin
A := True;
break;
end;
until(false)
if A then
begin
if NearSymbol(3) then
begin
Result := True;
Exit;
end;
Inc(I);
Mouse(MMCX, MMCY+10, 2, 2, mouse_left);
FFlag(0);
While IsMoving_F do
Wait(1);
if (I > 3) then
begin
if not FindLadder(X, Y) then
begin
if TeleportOut then
begin
Wait(RandomRange(2100, 2600));
I := 0;
Exit;
end;
end;
end;
Wait((RandomRange(600, 775)));
goto Start;
end;
if B then
begin
MarkTime(T2);
repeat
FindNormalRandoms;
if (TimeFromMark(T2) > 5000) then
Exit;
if ((not AboveGround) or NearSymbol(3)) then
break;
until(false)
Result := ((not AboveGround) or NearSymbol(3));
end;
if C then
goto Start;
end;
Function SPS_WalkPath_F(Path: TPointArray): boolean;
var
I, H, T, D: integer;
P, MM: TPoint;
begin
H := High(Path);
T := GetSystemTime + 20000 + Random(5000);
while (not Result) and (GetSystemTime < T) do
begin
RunEnergy(20);
P := SPS_GetMyPos;
for I := H downto 0 do
begin
MM.X := MMCX + Path[I].X - P.X;
MM.Y := MMCY + Path[I].Y - P.Y;
D := Distance(MM.X, MM.Y, MMCX, MMCY);
if (D < 10) then
break
else begin
if (D < 70) then
begin
//Integer(I<>H)*15;
HumanMMouse(MM.X, MM.Y, 0, 0);
ClickMouse2(True);
WaitFunc(@IsMoving_F, 10, 2500);
if (I = H) then
FFlag(25)
else
FFlag(15);
T := getSystemTime + 20000 + Random(1000);
Break;
end;
end;
end;
Result := (I = H);
end;
end;
Function BankToAltar: Boolean;
begin
Result := False;
//No more walking east!
if not InvFull then Exit;
if NearSymbol(4) then Exit;
SetRun(True);
SPS_WalkPath_F(Path_ToAltar);
HumanMMouse(435, 140, 15, 15);
While IsMoving_F do
begin
if IsUpTextMultiCustom(['-rune', 'unec', 'rafting']) then
break;
end;
Result := True;
end;
Function FindBanker(Var X,Y: Integer): Boolean;
var
TPA,PBox: TPointArray;
i,a,CTS,F: Integer;
ATPA: T2DPointArray;
Cols,Tols: TIntegerArray;
HMods,SMods: Array of Extended;
begin
Result := False;
if not LoggedIn then Exit;
for F := 0 to 3 do
begin
PBox := TPAFromBox(IntToBox(240, 130, 275, 185));
CTS := GetColorToleranceSpeed;
if BankScreen then
begin
Result := True;
Exit;
end;
Cols := [5929086, 5992822, 5995648, 6585989, 6453887, 5273721];
Tols := [9, 7, 10, 7, 7, 6];
HMods := [0.15, 0.06, 0.19, 0.09, 0.10, 0.7];
SMods := [0.46, 0.11, 0.39, 0.17, 0.11, 0.11];
for i := 0 to High(Cols) do
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMods[i], SMods[i]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Cols[i], MSX1, MSY1, MSX2, MSY2, Tols[i]);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
if (Length(TPA) > 0) then break;
end;
if (Length(TPA) < 1) then Continue;
ATPA := TPAToATPAEx(TPA, 40, 40);
SortATPAFrom(ATPA, Point(MSCX,MSCY));
for a := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[a], X, Y);
HumanMMouse(X, Y, 15, 15);
if WaitUpTextMulti(['niola'], 400) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end;
end;
end;
end;
Function FindBanker2(Var X,Y: Integer): Boolean;
var
TPA,PBox: TPointArray;
HMod,SMod: Extended;
L,i,CTS,MSP,Col,
CType,Tol: Integer;
ATPA: T2DPointArray;
label
Start;
begin
Result := False;
if not LoggedIn then Exit;
PBox := TPAFromBox(IntToBox(240, 130, 275, 185));
CTS := GetColorToleranceSpeed;
Start:
if BankScreen then
begin
Result := True;
Exit;
end;
if (CType = 2) then
begin
Col := 6453887;
Tol := 7;
HMod := 0.10;
SMod := 0.11;
end else if (CType = 3) then
begin
Col := 5273721;
Tol := 6;
HMod := 0.07;
SMod := 0.11;
end;
if (CType = 0) then
begin
ColorToleranceSpeed(3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 6848905, MSX1, MSY1, 510, 330, 4);
ColorToleranceSpeed(CTS);
end else if (CType = 1) then
begin
ColorToleranceSpeed(3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5800071, MSX1, MSY1, 510, 330, 4);
ColorToleranceSpeed(CTS);
end else if ((CType = 2) or (CType = 3)) then
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Hmod, SMod);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Col, MSX1, MSY1, MSX2, MSY2, Tol);
ColorToleranceSpeed(CTS);
end;
TPA := ClearTPAFromTPA(TPA, PBox);
if (Length(TPA) < 1) then
begin
Inc(CType);
if (CType > 3) then
Exit;
goto Start;
end;
ATPA := TPAToATPAEx(TPA, 40, 40);
SortATPAFrom(ATPA, Point(MSCX,MSCY));
L := High(ATPA);
SetArrayLength(ATPA, L+1);
for i := 0 to L do
begin
MiddleTPAEx(ATPA[i], X, Y);
MSP := MouseSpeed;
MouseSpeed := (RandomRange(26, 33));
HumanMMouse(X, Y, 15, 15);
MouseSpeed := MSP;
if WaitUpTextMulti(['niola'], 400) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end;
end;
end;
Function OpenBankEniola: Boolean;
var
X,Y,T,T2,F,B: Integer;
GoOn,AC: Boolean;
label
Start;
begin
Result := False;
GoOn := False;
AC := False;
Start:
if BankScreen then
begin
Result := True;
Exit;
end;
FindNormalRandoms;
if not LoggedIn then Exit;
if (FindBanker(X, Y) or FindBanker2(X, Y)) then
begin
GoOn := True
end else
begin
if (F < 1) then
begin
MakeCompass('W');
AC := True;
end;
if (F > 4) then
TeleportOut;
if (F > 1) then
begin
if SPS_PosOnMM(Point(160, 535)) then
SPS_WalkToPos(Point(160, 535));
While IsMoving_F do
Wait(1);
end;
Inc(F);
goto Start;
end;
if GoOn then
begin
ClickMouse2(False);
if not WaitOptionMulti(['Bank','ank','nk E'], 500) then
begin
Inc(B);
if (B > 5) then
begin
Writeln('Error finding Banker text, teleporting...');
TeleportOut;
Exit;
end;
goto Start;
end;
if AC then
begin
SetNorth;
HumanMMouse(MPoint.X, MPoint.Y, 25, 25);
end;
While IsMoving_F do
Wait(1);
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 3000) then
Exit;
if RunesMenu then
break;
until(false);
if RunesMenu then
begin
HumanMMouse(MPoint.X, MPoint.Y, 7, 7);
ClickMouse2(True);
MarkTime(T2);
repeat
FindNormalRandoms;
if (TimeFromMark(T2) > 5000) then
Exit;
if (BankScreen) or (PinScreen) then
break;
Wait(100);
until(false)
if PinScreen then
if (Players[CurrentPlayer].Pin <> '') then
InPin(Players[CurrentPlayer].Pin)
else
Shutdown('No PIN # given');
Wait(RandomRange(175, 350));
end;
end;
Result := BankScreen;
end;
Procedure Eat;
var
DTM,X,Y,X2,
Y2,T: Integer;
begin
if not LoggedIn then Exit;
if not BankScreen then Exit;
Case lowercase(Food) of
'trout' : DTM := DTMFromString('mlwAAAHicY2dgYCgD4kIgzgbiAiCuAOJaIG 4EYhUgVgRiTSDWBWJtqJg8EGfERAJJJqxYDkjiwox4MBQAALdh Bks=');
'tuna' : DTM := DTMFromString('mlwAAAHicY2dgYFAAYikgFgFiCShfHYh1gF gFiOWBWA2I9YBYFyonC8QpEWFAkgkrFoGahw0z4sFQAABkyQOa ');
'lobster' : DTM := DTMFromString('mbQAAAHicY2VgYOgB4g4g7gPiyUA8FYjPA/F1IL4CxHeA+DQQrw+TAJJMKJiLARMwYsFgAACaUQgl');
'swordfish' : DTM := DTMFromString('mlwAAAHicY2dgYGhmZGDoBuKJQNwHxJ2MEL FyIJZhgGAFIFYCYmUglofSzTFdQJIJK+YCknI4MCMeDAUA/+8G2A==');
'monkfish': DTM := DTMFromString('mggAAAHicY2NgYJjEyMAwEYgXQPE8IJ4GxB +Bct+A+A0DhP0diH8AsbejJcP8miogiwkFcwFJEEYHjDgwBAAA Z90L0w==');
'shark' : DTM := DTMFromString('mggAAAHicY2NgYLBjZGAwB2JHIHYHYg8g1g fiEqBcAxBXA3EzEJcCcQsQd+RHAUkmDMzFgB0w4sAQAAAltwXX ');
end;
if FindDTM(DTM, X, Y, MSX1, MSY1, MSX2, MSY2) then
begin
HumanMMouse(X, Y, 5, 5);
ClickMouse2(False);
WaitOption('Withdraw-5', 300);
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 5000) then
Exit;
if (HPPercent >= 90) then
break;
if FindDTM(DTM, X2, Y2, MIX1, MIY1, MIX2, MIY2) then
begin
HumanMMouse(X2, Y2, 5, 5);
ClickMouse2(False);
if WaitOption('Eat', 300) then
begin
Wait(RandomRange(705, 815));
MarkTime(T);
Inc(FoodC);
end;
end;
until(false)
end;
if FindDTM(DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
HumanMMouse(X, Y, 5, 5);
ClickMouse2(False);
WaitOption('Deposit-All', 400);
Wait(RandomRange(425, 675));
end;
FreeDTM(DTM);
end;
Function WithdrawEss: Boolean;
var
X,Y,Ess,ItemFail: Integer;
label
Start;
begin
Start:
if not BankScreen then
Exit;
ColorToleranceSpeed(1);
FixBank;
Ess := BitmapFromString(9, 11, 'meJx1zNEKgCAQRNGfDBMRERHbysq' +
'I/r+BIQmWYN7O3RXZRLZlObBaz32/sNZurJQVkzeAMgDlPGM6gMaY' +
'U5owBt/nISQog64MvI9Ufetc+FPQV/tnkLVeK8kYp5U/h2GkMoDyJ' +
'+gB5qx01w==');
if BankScreen then
begin
if FindBitmapToleranceIn(Ess, X, Y, 35, 85, 480, 295, 20) then
begin
HumanMMouse(X, Y, 5, 5);
ClickMouse2(False);
Result := WaitOptionMulti(['Withdraw-All', 'w-A'], 300)
end else
begin
if (ItemFail > 3) then
Shutdown('Out of essence');
Inc(ItemFail);
if (ItemFail = 0) then
Writeln('Failed finding essence '+IntToStr(ItemFail)+' time')
else if (ItemFail > 0) then
Writeln('Failed finding essence '+IntToStr(ItemFail)+' times');
Wait(RandomRange(1750, 2205));
goto Start;
end;
end;
FreeBitmap(Ess);
end;
Function DepositEss: Boolean;
var
T,Slot: Integer;
begin
if not BankScreen then exit;
Slot := RandomRange(9, 20);
MouseItem(Slot, mouse_right);
Wait(RandomRange(50, 115));
WaitOption('Deposit-5', 300);
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 3000) then
Result := False;
if not InvFull then
break;
until(False)
Result := (not InvFull);
end;
Function WithdrawRunes(Method: String): Boolean;
var
ABMP,CBMP,X,Y: Integer;
begin
Result := False;
if not LoggedIn then Exit;
if InvFull then
begin
if not BankScreen then
OpenBankEniola
else if BankScreen then
DepositEss;
Wait(RandomRange(350, 625));
end;
ColorToleranceSpeed(1);
ABMP := BitmapFromString(7, 7, 'meJy7efPxzZuPCwvLiosrSkurboK5' +
'EJSfXwIRh4tk5xTk5hUhq8nIyMnKykMWAaK0tCw0EWRDIAhoD tBwN' +
'HMgggArDGec');
CBMP := BitmapFromString(7, 5, 'meJyTvXBJFoaKiytKS6sg7Ny8IiDK' +
'zy8pLCyDiGRk5GRl5WXnFEDEIYJpaVlwcbg5KSkZEHEgggsCA OmnNDQ=');
if FindBitmapToleranceIn(CBMP, X, Y, MSX1, MSY1, MSX2, MSY2, 20) then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(25, 75));
ClickMouse2(True);
Wait(RandomRange(350, 675));
end;
if (Lowercase(Method) = 'contact') then
begin
if FindBitmapToleranceIn(ABMP, X, Y, MSX1, MSY1, MSX2, MSY2, 20) then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(25, 75));
ClickMouse2(True);
Wait(RandomRange(275, 475));
ClickMouse2(True);
Wait(RandomRange(275, 475));
end;
end;
CloseBank;
Result := True;
FreeBitmap(ABMP);
FreeBitmap(CBMP);
end;
Function HandlePouches(Method, Seq: Integer): Boolean;
begin
Result := False;
if (Method = 1) then
begin
//Small pouch
if not (SS = 0) then
begin
MouseItem(SS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Medium pouch
if not (MS = 0) then
begin
MouseItem(MS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Large pouch
if not (LS = 0) then
begin
MouseItem(LS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Giant pouch
if not (GS = 0) then
begin
MouseItem(GS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end else if (Method = 2) then
begin
//Small pouch
if not (SS = 0) then
begin
MouseItem(SS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Medium pouch
if not (MS = 0) then
begin
MouseItem(MS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Large pouch
if not (LS = 0) then
begin
MouseItem(LS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end else if (Method = 3) then
begin
//Small pouch
if not (SS = 0) then
begin
MouseItem(SS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Medium pouch
if not (MS = 0) then
begin
MouseItem(MS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end else if (Method = 4) then
begin
//Large pouch
if not (LS = 0) then
begin
MouseItem(LS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end else if (Method = 5) then
begin
//Giant pouch
if not (GS = 0) then
begin
MouseItem(GS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end;
Result := True;
end;
Function FindDecayedPouch(Var Slot: Integer): Boolean;
var
B: TBox;
TPA: TPointArray;
Hmod,Smod: Extended;
L,i,Tol,CTS,Col,X,Y: Integer;
ATPA: T2DPointArray;
begin
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
ReturnValues([3422525, 3619647, 3751234], Hmod, Smod, Col, Tol);
SetColorSpeed2Modifiers(Hmod, SMod);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Col, MIX1, MIY1, MIX2, MIY2, Tol);
ColorToleranceSpeed(CTS);
if (Length(TPA) < 1) then
Exit;
ATPA := TPAToATPAEx(TPA, 18, 18);
SortATPAFrom(ATPA, Point(650, 330));
L := High(ATPA);
SetArrayLength(ATPA, L+1);
for i := 0 to L do
begin
B := GetTPABounds(ATPA[i]);
if (GetArrayLength(ATPA[i])>10) then
begin
MiddleTPAEx(ATPA[i], X, Y);
Slot := CoordsToItem(X, Y);
Result := True;
end;
end;
end;
Function CheckPouches: Boolean;
var
S: Integer;
begin
Result := FindDecayedPouch(S);
end;
Function ContactScreen: Boolean;
var
X, Y: Integer;
begin
Result := FindText(x, y, 'onest', StatChars, 30, 50, 110, 80);
end;
Function ContactRepair: Boolean;
var
T,T2,T3: Integer;
begin
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 4000) then
Exit;
if ContactScreen then
break;
until(false)
if ContactScreen then
begin
MouseBox(483, 240, 491, 290, 1);
Wait(RandomRange(275, 480));
MouseBox(410, 110, 450, 150, 1);
end;
MarkTime(T2);
repeat
FindNormalRandoms;
if (TimeFromMark(T2) > 6000) then
Exit;
if ClickToContinue then
MarkTime(T2);
Wait(RandomRange(125, 275));
if FindNPCChatTextMulti(['Repa', 'epai'], ClickLeft) then
break;
until(false)
MarkTime(T3);
repeat
FindNormalRandoms;
if (TimeFromMark(T3) > 2000) then
Exit;
if ClickToContinue then
MarkTime(T3);
Wait(RandomRange(125, 275));
until(false)
Result := True;
end;
Function RepairPouches(Method: String): Boolean;
var
X,Y,Slot,Spell: Integer;
label
Start;
begin
ColorToleranceSpeed(1);
Start:
FindNormalRandoms;
if not LoggedIn then Exit;
Case Lowercase(Method) of
'spell':
Spell := BitmapFromString(6, 6, 'meJybsPnUqr2nmQVNHMtXAMni7mUT' +
'Np8CIiAbLgjh6vgXQRgQQSC3Yf46IEIWhIgADQEiZDMjihc6J bYBA' +
'DJlKvQ=');
'contact':
Spell := BitmapFromString(7, 5, 'meJx79fr1K3LRr6cHMUU+HarHFGFk' +
'YAAA0ZFcCA==');
end;
if FindDecayedPouch(Slot) then
begin
Writeln('Decayed pouch detected in slot '+IntToStr(Slot));
GameTab(tab_Magic);
Wait(Random(100));
if FindBitmapIn(Spell, X, Y, 550, 200, 720, 435) then
begin
MMouse(X, Y, 5, 5);
Wait(Random(100));
if (Lowercase(Method) = 'spell') then
begin
if WaitUpText('epair',RandomRange(250,350)) then
begin
ClickMouse2(True);
Wait(RandomRange(20, 75));
MouseItem(Slot, mouse_left);
Wait(RandomRange(1575, 2150));
Inc(RepairC);
Writeln('Pouch repaied');
end;
end else if (Lowercase(Method) = 'contact') then
begin
if WaitUpText('Contact',RandomRange(250,350)) then
begin
ClickMouse2(True);
if ContactRepair then
begin
Inc(RepairC);
Writeln('Pouches repaied');
end;
end;
end;
end;
end;
if not FindDecayedPouch(Slot) then
Result := True
else
goto Start;
FreeBitmap(Spell);
end;
Procedure HandleBank;
var
S: String;
T: Integer;
label
Bank_End;
begin
if BankScreen then
begin
Mouse(370, 305, 6, 6, True);
if (HPPercent <= EatAt) then
Eat;
WithdrawEss;
if (InvCount = 23) then
GoTo Bank_End;
if PP1 then
begin
if HandlePouches(5, Fill) then
WithdrawEss;
if HandlePouches(2, Fill) then
WithdrawEss;
end else
if HandlePouches(2, Fill) then
WithdrawEss;
Bank_End:
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 5000) then
Exit;
if InvFull then
break;
until(false)
if InvFull then
begin
if CheckPouches then
if WithdrawRunes(Lowercase(RepairMethod)) then
if RepairPouches(Lowercase(RepairMethod)) then
if OpenBankEniola then
if WithdrawEss then
if CloseBank then
Exit;
if (GetMMLevels('run',S) <= RestAt) then
RestUntil(RandomRange(90, 100));
end;
end;
end;
Function FindAltar(Var X,Y: Integer): Boolean;
var
TPA,PBox: TPointArray;
i,a,CTS: Integer;
ATPA: T2DPointArray;
Cols,Tols: TIntegerArray;
HMods,SMods: Array of Extended;
begin
Result := False;
if not LoggedIn then Exit;
if IsUpTextMultiCustom(['-rune', 'unec', 'rafting']) then
begin
Result := True;
Exit;
end;
PBox := TPAFromBox(IntToBox(240, 130, 275, 185));
CTS := GetColorToleranceSpeed;
if BankScreen then
begin
Result := True;
Exit;
end;
Cols := [6514550];
Tols := [9];
HMods := [0.23];
SMods := [0.20];
for i := 0 to High(Cols) do
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMods[i], SMods[i]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Cols[i], MSX1, MSY1, MSX2, MSY2, Tols[i]);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
if (Length(TPA) > 0) then break;
end;
if (Length(TPA) < 1) then Exit;
ATPA := TPAToATPAEx(TPA, 30, 30);
SortATPAFrom(ATPA, Point(MSCX,MSCY));
for a := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[a], X, Y);
HumanMMouse(X, Y, 15, 15);
if WaitUpTextMulti(['-rune', 'unec', 'rafting'], 500) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end;
end;
end;
Function CraftRunes: Boolean;
var
X,Y,F,Seq: Integer;
label
ClickAltar;
begin
Seq := 0;
OldXP := Round(GetXPBarTotal);
ClickAltar:
if not LoggedIn then Exit;
if (AC > 4) then
Seq := 4;
if (Seq < 4) then
begin
if FindAltar(X, Y) then
begin
ClickMouse2(True);
Inc(AC);
if not DidRedClick then
goto ClickAltar;
While IsMoving_F do
Wait(1);
if (Seq < 3) then
begin
HumanMMouse(640, 220, 15, 15);
Wait(RandomRange(875, 1125));
While IsMoving_F do
Wait(1);
Wait(RandomRange(105, 165));
end else if (Seq = 3) then
GameTab(tab_Magic);
end else
begin
if (F > 4) then
begin
TeleportOut;
Exit;
end;
Inc(F);
SetRun(True);
BankToAltar;
FindNormalRandoms;
SetRun(True);
goto ClickAltar;
end;
end;
{Handle first set of pouches}
if (Seq = 0) then
begin
if PP1 then //Giant pouch
begin
if HandlePouches(5, Empty) then
Seq := 1;
goto ClickAltar;
end;
if PP2 then //Large pouch only
begin
if HandlePouches(4, Empty) then
Seq := 2;
goto ClickAltar;
end;
if ((not PP1) and (not PP2)) then //No Giant/Large pouches
begin
if HandlePouches(3, Empty) then
Seq := 3;
goto ClickAltar;
end;
end;
{Handle second set of pouches}
if (Seq = 1) then
begin
if PP2 then //Large pouch
begin
if HandlePouches(4, Empty) then
Seq := 2
end;
if not PP2 then //No large pouch
begin
if HandlePouches(3, Empty) then
Seq := 3;
end;
goto ClickAltar;
end;
{Handle third set of pouches}
if (Seq = 2) then
begin
if HandlePouches(3, Empty) then
Seq := 3;
goto ClickAltar;
end;
{Exit pouch-handling}
if ((Seq = 3) or (Seq = 4)) then
begin
AddRun := True;
Result := True;
end;
end;
Function BreakHandler(BreakIn, BreakFor, randBreakIn, randBreakFor: Integer): Boolean;
Var
h,m,s: integer;
begin
if not LoggedIn then Exit;
if (HowManyPlayers = 1) then
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
if NearSymbol(3) then
begin
RealBTime := ((x+z)/60000);
Writeln('Taking a break for about ' + IntToStr(RealBTime) + ' minutes.');
CloseBank;
Logout;
MarkTime(CurrentBTime);
repeat
Wait(21000);
ConvertTime((x+z)-TimeFromMark(CurrentBTime), h, m, s);
ClearDebug;
Writeln('Breaktime left: '+IntToStr(h)+':'+IntToStr(m)+':'+IntToStr(s));
until(TimeFromMark(CurrentBTime)>(x+z));
Writeln('Logging in.');
if SwitchWorlds then
if LoginPlayerToLob then
ChangeWorld(RandomWorld(True, False))
else
LoginPlayer;
Wait(4000);
Result := LoggedIn;
ClickNorth(SRL_ANGLE_HIGH);
OnScreen(False);
IncEx(BreakRounds, (w) + (x));
Inc(TotalBreaks);
Writeln('The next break will occur in about ' + IntToStr(BreakIn) + ' minutes.');
w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-Bir * 60000, Bir * 60000);
z := RandomRange(-Bfr * 60000, Bfr * 60000);
end;
end;
end;
end;
Procedure SuperDuperLooper;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
MouseSpeed := (RandomRange(15, 21));
if AboveGround then
begin
{At ladder}
if NearLadder then
begin
if UsePrayer then
begin
if HandleAltar then
HandleLadder;
end else
HandleLadder;
end else if (NearSymbol(4) and (not NearLadder)) then
begin
if WalkToLadder then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
if UsePrayer then
begin
if HandleAltar then
HandleLadder;
end else
HandleLadder;
end;
end;
end else
begin
{Bank}
if NearSymbol(3) then
begin
if not InvFull then
begin
if OpenBankEniola then
HandleBank
else
Exit;
end else if InvFull then
begin
if BankToAltar then
if CraftRunes then
TeleportOut
else
While IsMoving_F do
Wait(1)
else
While IsMoving_F do
Wait(1);
end;
end else
begin
CraftRunes;
TeleportOut;
end;
end;
end;
procedure FoundARandom;
begin
Writeln('Found a random!');
PlaySound(ScriptPath+'evilaugh.wav');
Wait(RandomRange(10000, 20000));
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
Writeln('Loading script...');
setupSRL();
DeclarePlayers;
LoginPlayer;
SetNorth;
Smart_ClearCanvas;
UpdateSPSMap;
LoadVars;
LoadImg;
//SRL_Procs[SRL_OnFindRandom] := @FoundARandom;
SetupSRLStats(157, SRLStats_Username, SRLStats_Password);
Writeln('Script loaded!');
ToggleXPBar(True);
XPToLvl := XPTillNextLevel(Skill_Runecrafting);
if UsePrayer then
begin
SetPrayers;
ActivateQuickPrayer;
end;
OnScreen(False);
AddOnTerminate('DestroyImg');
Repeat
if not LoggedIn then
begin
LoginPlayer;
ClickNorth(SRL_ANGLE_HIGH);
end;
BreakHandler(BreakIn,BreakFor,Bir,Bfr);
if (TimeFromMark(CommitTime)>=30000) then
Commit;
if (TimeFromMark(ReportTime)>=5000) then
Report;
SuperDuperLooper;
Until(AllPlayersInactive)
end.
Ashihtaka
03-14-2012, 05:07 AM
Has 1.71 also fixed the teleporting loop, Flight?
Flight
03-14-2012, 05:10 AM
Has 1.71 also fixed the teleporting loop, Flight?
Yes it should.
Ashihtaka
03-14-2012, 05:45 AM
Something goes wrong with 1.71, it gets stuck RIGHT at the stairs, just hovers over a couple times but never clicks in.
Flight
03-14-2012, 06:21 AM
Something goes wrong with 1.71, it gets stuck RIGHT at the stairs, just hovers over a couple times but never clicks in.
Yep, I noticed that as well. I removed that and I'll upload V1.71 now.
Jerith
03-14-2012, 07:54 AM
93 Runecrafting. :D Estimated number of hours till 99?
Smithsservice
03-14-2012, 08:31 AM
Please flight still fails to find spell DTM!
Sassakill
03-14-2012, 11:18 AM
Basket of orange, strawberry, banana, apple etc.
Also get all books from your POH bookcase. That should get you like 60 additional bank spots filled.
newy1
03-14-2012, 12:10 PM
Flawless now, thanks very much Fight.
rol prodigy
03-14-2012, 12:19 PM
got 99 runecrafting flight:)))
Thanks once again flight.
Ashihtaka
03-14-2012, 12:58 PM
lol, it kept me logged in all night, just standing at the stairs - i think SIMBA update caused script to stop, but keep me in game (lots of reports) - 1.71 works fine so far though
mutikainen
03-14-2012, 01:21 PM
Sometimes the script clicks on the nearby mining spot in 1.71, but it's a small problem tho :)
lvbot
03-14-2012, 01:49 PM
Yea mine was standing at one place all night as well, hopefully it wasn't a problem since I was just at the banker...
And I'm not sure if anyone told you this or you noticed, but in the older versions my character would run off exploring towards observatory/castle wars and get stuck until the script was restarted. Not sure if thats still an issue.
1.71 is working fine so far for me though, thanks flight :)
Flight
03-14-2012, 03:05 PM
got 99 runecrafting flight:)))
Thanks once again flight.
Wonderful, I'll add you to the list. :)
Sometimes the script clicks on the nearby mining spot in 1.71, but it's a small problem tho :)
Yes, I've seen this happen once before, very rarely, but I watched it as well. I think I might know why it happens, but just a theory. Like you said, it's a small problem. Either way the script will detect it's lost, should it get lost, and teleport back to start over.
Yea mine was standing at one place all night as well, hopefully it wasn't a problem since I was just at the banker...
And I'm not sure if anyone told you this or you noticed, but in the older versions my character would run off exploring towards observatory/castle wars and get stuck until the script was restarted. Not sure if thats still an issue.
1.71 is working fine so far for me though, thanks flight :)
The running off-course was due to the previous static coordinate-walking (which I've unfortunately had to re-apply in V1.71). I chose a more realistic coordinate for your player to walk to get to the ladder; it should hold steady, atleast until I can work out and accurate road color-finding walking system.
Imanoobbot
03-14-2012, 03:39 PM
How are you even supposed to max your bank? D: I bought every set of armor from bronze through adamant, tried to have every dose of all my potion and I'm still only at 368/468... Can anyone help? What junk do you guys fill your bank with?
A good way to fill you bank are "team capes" there are 50 different capes and they just cost like 2k ea. Then you got 50 more things in bank. make sure you got every single rune in bank. Then if its not filled up yet buy raw and cooked food. If its not filled yet you can buy all types of arrows (g, g+ , g++)
After that your bank should definietly filled up =)
Flight, why not SPS walking..?
I'll add that in my version and tell you how it goes
Imanoobbot
03-14-2012, 03:45 PM
93 Runecrafting. :D Estimated number of hours till 99?
Are you serious? ;) Check you average of xp/h. Then check how much exp till 99 left. Exp till 99 : xp/h and you got your hours till 99.
Ashihtaka
03-14-2012, 04:22 PM
Hm, still has the problem after a while of getting to the ladder, but not going down.
It's fine for a couple runs in the beginning, but in the end, gets stuck above ground at the ladder.
irockesp
03-14-2012, 05:09 PM
Hm, still has the problem after a while of getting to the ladder, but not going down.
It's fine for a couple runs in the beginning, but in the end, gets stuck above ground at the ladder.
having the same exact problem
wister1
03-14-2012, 09:20 PM
yep it is getting stuck when he goes south of ladder instead of north, meaning it is impossible to use script for more than a couple runs, the v1.71
Imanoobbot
03-14-2012, 09:24 PM
yep it is getting stuck when he goes south of ladder instead of north, meaning it is impossible to use script for more than a couple runs, the v1.71
That should be really easy to fix for you flight. It seems that the reason for the bug is that if it goes south of ladder instead of north of the ledder it cant find the color anymore. If i rotate the camera for just a millisecond it works flawless for another couple of runs again untill it goes south of ladder instead of north again. ;)
* Something like
If not finding ledder
rotate camera
First proggy of v 1.71 so far
http://i40.tinypic.com/9r5edj.png
tonsand
03-14-2012, 10:49 PM
171 is almost flawless except the occasional ladder problem, but with supervision its not a big issue.
one problem i have since 165 is that the xp gain stays at 1 if the player has Lots! on the first xp counter. Nothing serious, just pointing it out. doesnt really affect the script other than not showing xp gains
mafia miles
03-14-2012, 11:26 PM
cant find the image I need to get this script started. can someone give me the link?
Andres
03-15-2012, 12:35 AM
How are you even supposed to max your bank? D: I bought every set of armor from bronze through adamant, tried to have every dose of all my potion and I'm still only at 368/468... Can anyone help? What junk do you guys fill your bank with?
Go to every shop and buy things until it's full. General store, armor shops, fletchers, hunting shops, pet stores, herblore stores, etc.
wister1
03-15-2012, 12:39 AM
cant find the image I need to get this script started. can someone give me the link?
for crying out loud, its on the 1st page, on the op post!
mafia miles
03-15-2012, 01:06 AM
looked a thousand times... still dont see it...is there a button i have to press or something?
Andres
03-15-2012, 01:09 AM
I am running 1.71 now. The teleport loop has been fixed, but there are a few issues. Some have been mentioned, but I'll post anyway.
It has gotten stuck a few of times going to the ladder. The first problem is that if an NPC is on the mining symbol north of the teleport location, it will mistake it for the prayer symbol. Next, it will occasionally end up one square south of the ladder and won't actually go down. Finally, each time that I've run it, the XP to level has been wrong. It is only registering the first 4 digits. For example, it put 320,843 xp as 3208 to level.
It's doing great overall. Just need to keep an eye on it!
Dairiun
03-15-2012, 01:22 AM
Go to every shop and buy things until it's full. General store, armor shops, fletchers, hunting shops, pet stores, herblore stores, etc.
Thanks! That was a great advice lol, didn't think of that. Just went through a couple shop and bought everything I could, my bank is now full of crap! Mission accomplished.
Andres
03-15-2012, 01:38 AM
Thanks! That was a great advice lol, didn't think of that. Just went through a couple shop and bought everything I could, my bank is now full of crap! Mission accomplished.
Yeah, it's a pain in the butt! It's still a good idea to have armor sets and potions so that you can quickly make some space when necessary.
looked a thousand times... still dont see it...is there a button i have to press or something?
According to the OP, the SPS image isn't required anymore. Are you sure you followed everything in the OP exactly? Is your SPS completely up to date? Did you do everything in the post that Flight linked to regarding the SPS update?
No offense, but chances are you screwed something up.
Flight
03-15-2012, 01:43 AM
cant find the image I need to get this script started. can someone give me the link?
The SPS map image? In V1.7+ it should automatically be downloaded to your SPS folder.
Also, for the ladder-finding issues, to fix that simply go down to line 695 (is that right?), in the 'FindLadder' function, it should look like this:
TPA2 := ClearTPAFromTPA(TPA2, PBox);
Simply comment out that line by putting // in front of it.
//TPA2 := ClearTPAFromTPA(TPA2, PBox);
The story behind this is someone was having trouble with the script picking up Black D'hide as the ladder and couldn't find the ladder as a result. So what I did was find all the ladder colors and use the 'ClearTPAFromTPA' to, basically, skip over the box region around the player. So as a result, if the player was south of the ladder when it started searching for it, it would never find it, because at that position the ladder is located, literally, in the player's box region.
irockesp
03-15-2012, 02:08 AM
Thank you Flight for the ladder fix. I have noticed that sometimes it accidentally clicks the mining node above the teleport.
I have all latest includes/Simba.
tonsand
03-15-2012, 02:22 AM
171 is almost flawless except the occasional ladder problem, but with supervision its not a big issue.
one problem i have since 165 is that the xp gain stays at 1 if the player has Lots! on the first xp counter. Nothing serious, just pointing it out. doesnt really affect the script other than not showing xp gains
here's a progress report showing what's up.
[=======================================]
[ ZMI-Extreme 1.71 ]
[ by Flight ]
[=======================================]
[ Run Time : 3 Hr 22 Min 49 Sec ]
[ Exp Gained : 1 ]
[ Loads Completed : 126 ]
[ Shark Ate : 9 ]
[ Pouches Repaired : 2 ]
[ Breaks : 1 ]
[=======================================]
[ ZMI-Extreme 1.71 ]
[=======================================]
mafia miles
03-15-2012, 02:28 AM
thanks guys. got it to work
illester
03-15-2012, 02:47 AM
Back to flawless with ladder fix, thank you very much.
Andres
03-15-2012, 03:48 AM
Just did the ladder fix. I'm running again now.
As a friendly reminder, everyone keep an eye your scripts, especially if there is a potential issue. There is a guy stuck at the ladder right now on my world, and he has been there for at least 10 minutes (when I started my script). It's apparent to me that he is botting and is probably obvious to legiters, as well (aka people who will report).
This script is great and mostly flawless, but when you do run into issues you want to be there to catch it!
Flight
03-15-2012, 04:16 AM
Would anyone be willing to help me test V1.75? Slightly faster bank-finding as well as the option to run the script without a maxed bank account. Even if you have a maxed bank you can still run the script, it'll just be slower, so if anyone would like to help me test it PM me.
Imanoobbot
03-15-2012, 07:01 AM
looked a thousand times... still dont see it...is there a button i have to press or something?
Its not on the first page anymore. For version v. 1.7+ you dont need to download it anymore. The script will download the map on his own and set you tolerance to 0.5 =)
Finaly got the chance to test your script. It is near perfection. As good as injection. Awesome.
Making around 46k XP/hour, very very good if you ask me.
Bug I have noticed:
Messed up after 8 load, started teleporting like crazy for about 1 minute, then the problem fixed itself.
Does not recharge prayer. Not a big deal I can tank those noob arrow.
It's very late, gonna go sleep. I'll test it some more tomorrow.
Flight
03-15-2012, 09:49 AM
Finaly got the chance to test your script. It is near perfection. As good as injection. Awesome.
Making around 46k XP/hour, very very good if you ask me.
Bug I have noticed:
Messed up after 8 load, started teleporting like crazy for about 1 minute, then the problem fixed itself.
Does not recharge prayer. Not a big deal I can tank those noob arrow.
It's very late, gonna go sleep. I'll test it some more tomorrow.
Good feedback. :) About the teleporting and prayer issue; both of these were fixed in V1.7+, are you sure that's the version you're using?
wister1
03-15-2012, 11:51 AM
so that was the problem with the ladder? lol :p im testing now, lets see if i can get 97 before bxp starts
newy1
03-15-2012, 01:27 PM
Another bug, player was recharging prayer repeatedly. I found out soon enough and fixed it, but there's another guy stuck there for a while lol.
Imanoobbot
03-15-2012, 02:35 PM
V 1.75 is running perfect. Bugs I saw so far:
1. I started the bot like 8 hours ago. As I came back Simba was closed. Then i logged in again and I was here. I have no idea how the script brought me there ;)
http://i43.tinypic.com/258ndrr.png
http://i40.tinypic.com/307xd7r.png
2. Sometimes it clickes on the safe way to altar but runs then again back on the normal way.
3. Sometimes it clicks on the mining simbol instead of the Prayer simbol.
4. I think the script is broken now cause of color changing. Always get stucked after teleporting. It just repeats clicking the same point.
http://i42.tinypic.com/347iumr.png
* In v1.71 (with ledder fix) i dont got that bug wtf?
Hope it will help you a bit. ;)
-Imanoobbot
Masterstroke
03-15-2012, 05:44 PM
Still gets stuck at the ladder often :p
nice script apart from that!
Good feedback. :) About the teleporting and prayer issue; both of these were fixed in V1.7+, are you sure that's the version you're using?
I was using version 1.7. Updated to 1.71 we'll see how it goes.
Working nearly perfectly so far at about 47k XP/hour.
(insignificant) Bug noticed so far:
Started praying at the prayer altar non stop. Restarted the script after it looped there for a minute or so.
Sometime it missclick on the wizard(?) next to the prayer altar when we try to pray.
When using the pouch repair spell, it doesn't fill the pouch after it has repaired it. (Harmless, maybe this was inteneded?)
Andres
03-16-2012, 12:56 AM
I'm running it now, it's doing great.
Flight
03-16-2012, 01:22 AM
Ok thanks for the feedback fellas. I think today I'll work on something new for the above-ground walking. Should it work as I hope it'll fix pretty much all the issues everyone is having.
Andres
03-16-2012, 01:35 AM
Ok thanks for the feedback fellas. I think today I'll work on something new for the above-ground walking. Should it work as I hope it'll fix pretty much all the issues everyone is having.
Are you planning on doing SPS walking above ground like Sin suggested?
Flight
03-16-2012, 02:08 AM
Are you planning on doing SPS walking above ground like Sin suggested?
With another custom SPS map for correct location detection.
illester
03-16-2012, 05:19 AM
Has been running flawless for me since 1.71 with ladder fix (above ground does still work pretty slow at times but atleast doesnt get lost), got my rc from 50-77 so far. Thank you very much for your hard work.
Flight
03-16-2012, 11:40 AM
Here's a beta version of V.1.75 for those of you who would like to test it over the BXW. Various changes here and there, but mainly the above-ground walking is the biggest change. A new SPS map is required for the script, but not to worry, the script will automatically download it and adjust the tolerance needed to run it. Also, this version has the option for standard banking, that means you don't have to have a maxed bank account. You can change this in the settings near the top (Line 22), True for maxed banks, False for standard banking.
The new walking system should cease any and all previous problems you might have been having with the script. Should the new system turn out to be successful for everyone then I'll upload it to the OP.
{/////////////////////////////////////////
// ~ZMI-Extreme by Flight~ //
// //
// Version: 1.75 //
/////////////////////////////////////////}
program ZMIExtreme;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i SPS/sps.simba}
{$i SRL/SRL/misc/reports.simba}
{$i SRL/SRL/misc/paintsmart.simba}
Const
//SRL Stats
SRLStats_Username = '';
SRLStats_Password = '';
//General settings
MaxBank = True; //Using the Max-bank method?
HPLevel = 99; //Your (max) Constitution/Hitpoints level
Food = 'monkfish'; //Trout, Tuna, Lobster, Swordfish, Monkfish, Shark
EatAt = 70; //Eat at this health percent or less
UsePrayer = False; //Use ranged protection prayers?
RuneType = 'mind'; //Type of rune to use for bank payment (20 runes per session)
RestAt = 60; //Run energy % to rest at (after banking)
SwitchWorlds = True; //Switch worlds after a break?
//Pouch settings
SS = 7; //Which slot # has your small pouch (0 for not using)
MS = 6; //Which slot # has your medium pouch (0 for not using)
LS = 5; //Which slot # has your large pouch (0 for not using)
GS = 4; //Which slot # has your giant pouch (0 for not using)
RepairMethod = 'spell'; //Spell or Contact
//Break settings
BreakIn = 180; //How long before we take a break? (minutes)
BreakFor = 25; //How long will we break for? (minutes)
Bir = 13; //Random minutes to add/subtract from how long until we break
Bfr = 7; //Random minutes to add/subjtract from break duration
Fill = 0; //Ignore
Empty = 1; //Ignore
Var
MPoint: TPoint;
Version: String;
Exp,Exp_C,ReportTime,Runs,
CommitTime,FoodC,RepairC,
XPToLvl,OldXP,AC: Integer;
PP1,PP2,OptionsSet,AddRun: Boolean;
Path_ToAltar1,Path_ToAltar2,
Path_ToLadder: TPointArray;
//Import painting
Prog: Integer;
PaintArray: TStringArray;
//Break variables
w,x,y,z,RealBTime,CurrentBTime,
BreakRounds,TotalBreaks: Integer;
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
Level[SKILL_HITPOINTS] := HPLevel;
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Runecrafting;
Active := True;
end;
end;
//By Dgby714
function DownloadToFile(const URL, Filename: string): boolean;
var
FileI: LongInt;
FileC, FileH: string;
begin
Result := False;
FileI := InitializeHTTPClient(False,False);
try
FileC := GetHTTPPage(FileI, URL);
FileH := GetRawHeaders(FileI);
if ((FileC = '') or (FileH = '')) then
begin
WriteLn('Error downloading "' + URL + '".');
Exit;
end;
FileH := Copy(GetRawHeaders(FileI), 10, Pos(#13, FileH) - 10);
if (FileH <> '200 OK') then
begin
WriteLn('Couldn''t download "' + URL + '", Error Code: ' + FileH + '.');
Exit;
end;
finally
FreeHTTPClient(FileI);
end;
try
if not FileExists(Filename) then
FileI := CreateFile(Filename)
else
FileI := OpenFile(Filename, False);
CloseFile(FileI);
FileI := RewriteFile(Filename, False);
Result := WriteFileString(FileI, FileC);
finally
CloseFile(FileI);
end;
end;
Procedure LoadVars;
begin
Version := '1.75';
//http://flight.clawz.com/imgs/ZMIImg.png
DownloadToFile('http://i.imgur.com/6RN9F.png', AppPath + '/Scripts/ZMIImg.png');
w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-Bir * 60000, Bir * 60000);
z := RandomRange(-Bfr * 60000, Bfr * 60000);
Path_ToAltar1 := [Point(80, 1265), Point(80, 1270), Point(80, 1310), Point(75, 1355), Point(75, 1395),
Point(80, 1440), Point(110, 1460), Point(145, 1455), Point(180, 1450),
Point(210, 1460), Point(255, 1455)];
Path_ToAltar2 := [Point(160, 550), Point(160, 580), Point(160, 605), Point(160, 645),
Point(165, 675), Point(175, 710), Point(205, 725), Point(240, 715),
Point(275, 715), Point(305, 720), Point(330, 720)];
Path_ToLadder := [Point(395, 1545), Point(375, 1560), Point(375, 1585), Point(365, 1615)];
Case Lowercase(RuneType) of
'fire': MPoint := Point(340, 125);
'body': MPoint := Point(105, 170);
'mind': MPoint := Point(200, 80);
'air': MPoint := Point(300, 85);
'water': MPoint := Point(152, 128);
end;
PP1 := (not (GS = 0));
PP2 := (not (LS = 0));
AddRun := False;
end;
Procedure Report;
begin
ClearDebug;
SRLRandomsReport;
SRLProgressReport(ResultDebugBox, 'ZMI-Extreme', 'Flight', Version,
['Run time', 'Exp gained', 'Loads completed', Capitalize(Food)+' ate',
'Pouches repaired', 'Breaks'],
[MsToTime(GetTimeRunning, Time_Abbrev), Exp, Runs, FoodC, RepairC, TotalBreaks]);
MarkTime(ReportTime);
end;
Procedure Commit;
begin
stats_IncVariable('Runecrafting EXP (Gained)', Exp_C);
Stats_Commit;
Exp_C := 0;
MarkTime(CommitTime);
end;
Procedure Shutdown(Reason: String);
begin
ClearDebug;
Writeln('');
WriteLn('{{{==Script shutdown==}}}');
Writeln('----Reason: '+Reason+'----');
Writeln('');
Wait(RandomRange(1000,1300));
CloseBank;
Report;
Logout;
ShowMessage('[Shutdown] Reason: '+Reason);
TerminateScript;
end;
procedure OnScreen(Force: boolean);
var
XPH,TTB,Portion,I: Integer;
TP: TPoint;
V: string;
begin
if (Exp < 1) then
Exp := 1;
XPH := Round((Exp * 3600) / (GetTimeRunning / 1000));
TTB := (((w) + (y) + BreakRounds)-GetTimeRunning);
for I := 0 to 6 do
begin
case I of
0:
begin
V := 'V.'+Version;
TP := Point(397, 25);
end;
1:
begin
V := MsToTime(GetTimeRunning, Time_Abbrev);
TP := Point(130, 50);
end;
2:
begin
V := IntToStr(Exp);
TP := Point(130, 70);
end;
3:
begin
V := IntToStr(XPH);
TP := Point(131, 92);
end;
4:
begin
V := IntToStr(Runs);
TP := Point(342, 67);
end;
5:
begin
V := IntToStr(XPToLvl-Exp);
TP := Point(342, 88);
end;
6:
begin
V := 'TTB: '+MsToTime(TTB,Time_Bare);
TP := Point(204, 107);
end;
end;
if V = PaintArray[I] then
Continue;
Portion := GetMufasaBitmap(Prog).Copy(TP.x, TP.y, TP.x + 76, TP.y + 17).Index;
SMART_DrawBitmap(False, Portion, Point(MCX1 + TP.x, MCY1 + TP.y));
FreeBitmap(Portion);
SMART_DrawTextEx(False, MCX1 + TP.x, MCY1 + TP.y, SmallCharsNS, V, clWhite);
end;
PaintArray := ['V.'+Version, MsToTime(GetTimeRunning, Time_Abbrev), IntToStr(Exp), IntToStr(XPH),
IntToStr(Runs), IntToStr(XPToLvl-Exp), 'TTB: '+MsToTime(TTB,Time_Bare)];
end;
procedure LoadImg;
begin
Prog := LoadBitmap(AppPath + '/Scripts/ZMIImg.png');
SMART_DrawBitmap(True, Prog, Point(MCX1, MCY1));
SetLength(PaintArray, 7);
end;
Procedure DestroyImg;
begin
FreeBitmap(Prog);
end;
Procedure UpdateSPSMap;
begin
Writeln('Checking SPS map & tolerance...');
if not FileExists(AppPath + '/Includes/SPS/img/runecrafting_altars/0_2.png') then
DownloadToFile('http://i.imgur.com/DEWz5.png', AppPath + '/Includes/SPS/img/runecrafting_altars/0_2.png');
SPS_Setup(Runecrafting_Altars, ['0_3']);
if (not (SPS_Surface.Tolerance = 0.5)) then
begin
Writeln('Adjust SPS map tolerance...');
SPS_Surface.Tolerance := 0.5
end;
SPS_Continue := True;
end;
Function IsMoving_F: Boolean;
begin
Result := PixelShift(IntToBox(MMCX-30, MMCY-30, MMCX+30, MMCY+30), 200) > 200;
end;
Function RunesMenu: Boolean;
var
X,Y: Integer;
begin
Result := FindText(x, y, 'light', UpCharsEx, 145, 275, 360, 315);
end;
Function UsingQuickPrayers: Boolean;
Var
X,Y: Integer;
begin
Result := FindColorTolerance(X, Y, 9154193, 710, 75, 730, 85, 20);
end;
//By Bandland100, modified to shift mouse speeds after every step
procedure SuperWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,randomDist,la stDist,step: extended;
lastX,lastY,MSP,W: integer;
sqrt2,sqrt3,sqrt5: extended;
begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
case Random(50) of
1..25: W := (MSP + (Random((MSP/4))));
26..50: W := (MSP - (RandomRange((MSP/2), MSP-1)));
end;
if (W < 1) then
W := 1;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
wait(W);
lastdist:= dist;
end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));
MouseSpeed := MSP;
end;
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
SuperWindMouse(X, Y, X2, Y2, 9, 5, 10.0 / randSpeed, 15.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;
Procedure ActivateQuickPrayer;
begin
if UsingQuickPrayers then Exit;
HumanMMouse(723, 70, 10, 10);
ClickMouse2(True);
end;
Function LowPrayer: Boolean;
begin
Result := FindColorTolerance(X, Y, 255, 740, 70, 760, 80, 10)
end;
Procedure SetNorth;
begin
Mouse(542, 24, 15, 15, mouse_left);
KeyDown(38);
Wait(850 + Random(100));
KeyUp(38);
end;
Function NearBank: Boolean;
var
B: TBox;
TPA,TPA2: TPointArray;
i,CTS: Integer;
ATPA: T2DPointArray;
begin
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MMCX, MMCY, TPA, 12632256, MMX1, MMY1, MMX2, MMY2, 10);
if (Length(TPA) < 1) then
begin
ColorToleranceSpeed(CTS);
Exit;
end;
ATPA := SplitTPAEx(TPA, 10, 10);
for i := 0 to High(ATPA) do
begin
B := GetTPABounds(ATPA[i]);
with B do
begin
FindColorsSpiralTolerance(MMCX, MMCY, TPA2, 2413294, B.X1, B.Y1, B.X2, B.Y2, 5);
Result := (Length(TPA2) > 0);
ColorToleranceSpeed(CTS);
end;
end;
end;
Procedure ReturnValues(colors: TIntegerArray; var HueMods, SatMods: Extended; var color, Tolerance: Integer);
Var
h, s, t: Extended;
I,II : integer;
HSLColor : Array[1..3] of Extended;
HSL : Array[0..1] of Array[1..3] of Extended;
begin;
For I:= 1 to 3 do
begin;
HSL[0][i] := 255;
end;
For I:= 0 to High(Colors) do
begin;
ColortoHSL(Colors[i],HSLColor[1],HSLColor[2],HSLColor[3]);
For II:= 1 to 3 do
begin;
HSL[0][II] := MinE(HSLColor[II],HSL[0][II]);
HSL[1][II] := MaxE(HSLColor[II],HSL[1][II]);
end;
end;
H := (HSL[1][1] - HSL[0][1]);
S := (HSL[1][2] - HSL[0][2]);
T := (HSL[1][3] - HSL[0][3]);
try
HueMods := (H/T);
SatMods := (S/T);
Tolerance := Round(t);
except
HueMods := 0;
SatMods := 0;
Tolerance := Round(0.0);
end;
Color := HSLToColor((HSL[1][1] + HSL[0][1]) div 2,(HSL[1][2] + HSL[0][2]) div 2,(HSL[1][3] + HSL[0][3]) div 2);
end;
Procedure SetPrayers;
var
X,Y,X2,Y2,T,T2: Integer;
PPoint: TPoint;
label
MoveM;
begin
{Right-click prayer icon}
HumanMMouse(724, 70, 8, 8);
ClickMouse2(False);
WaitOption('elect', 400);
{Wait for the quick-prayer selection menu}
MarkTime(T);
repeat
if TimeFromMark(T) > 5000 then
Exit;
if FindColorTolerance(X, Y, 8499692, 610, 445, 630, 465, 10) then
break;
until(false);
{Determine the player's prayer type & choose the right protection prayer}
if (FindText(X, Y, 'urses', StatChars, 630, 200, 690, 230) or FindText(x, y, 'rayers', StatChars, 630, 200, 690, 230)) then
begin
if FindText(X, Y, 'urses', StatChars, 630, 200, 690, 230) then
PPoint := Point(671, 274)
else if FindText(X, Y, 'rayers', StatChars, 630, 200, 690, 230) then
PPoint := Point(670, 343);
{Check if prayers are already set}
if not FindColorTolerance(X2, Y2, 461806, PPoint.X-10, PPoint.Y-10, PPoint.X+10, PPoint.Y+10, 10) then
begin
MoveM:
if not LoggedIn then Exit;
HumanMMouse(671, 274, 4, 4);
if WaitUpText('elect', 400) then
begin
ClickMouse2(True);
Wait(RandomRange(175, 350));
end else
goto MoveM;
end else
Writeln('Prayers already selected');
{Hit confirm}
HumanMMouse(645, 456, 15, 5);
ClickMouse2(True);
end;
{Wait for the prayer selection to be confirmed}
MarkTime(T2);
repeat
if TimeFromMark(T2) > 5000 then
Exit;
if (not FindText(x, y, 'urses', StatChars, 630, 200, 690, 230) and (not FindText(x, y, 'rayers', StatChars, 630, 200, 690, 230))) then
break;
until(false);
OptionsSet := True;
Gametab(Tab_Inv);
Writeln('Quick-prayers set');
end;
Function SPS_WalkPath_F(Path: TPointArray): boolean;
var
I, H, T, D: integer;
P, MM: TPoint;
begin
ColorToleranceSpeed(1);
H := High(Path);
T := GetSystemTime + 20000 + Random(5000);
while (not Result) and (GetSystemTime < T) do
begin
RunEnergy(20);
P := SPS_GetMyPos;
for I := H downto 0 do
begin
MM.X := MMCX + Path[I].X - P.X;
MM.Y := MMCY + Path[I].Y - P.Y;
D := Distance(MM.X, MM.Y, MMCX, MMCY);
if (D < 10) then
break
else begin
if (D < 70) then
begin
HumanMMouse(MM.X, MM.Y, 0, 0);
ClickMouse2(True);
WaitFunc(@IsMoving_F, 10, 2500);
if (I = H) then
FFlag(25)
else
FFlag(15);
T := getSystemTime + 20000 + Random(1000);
Break;
end;
end;
end;
Result := (I = H);
end;
end;
Function AboveGround: Boolean;
begin
Result := (PercentBlackMM < 20);
end;
Function TeleportOut: Boolean;
var
X,Y,I,DTM: Integer;
label
Start;
begin
Result := False;
Start:
if SPS_PosOnMM(Point(430, 1550)) then Exit;
if IsMoving_F then Exit;
if NearBank then
begin
Wait(RandomRange(475, 610));
Exit;
end;
if not LoggedIn then Exit;
DTM := DTMFromString('mWAAAAHicY2FgYNjGxMCwhQlCbwZiRkYGhj 9AcQ4g/R9IW1tbMRjqnmS4eMiT4fXrVwz8QDFkzISGQQAAddcLnQ==');
Gametab(tab_Magic);
Wait(RandomRange(365, 410));
if FindDTM(DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
I := 0;
HumanMMouse(X, Y, 7, 7);
ClickMouse2(True);
Gametab(tab_Inv);
HumanMMouse(580, 115, 15, 15);
Wait(RandomRange(2000, 2250));
FindNormalRandoms;
if not WaitFunc(@AboveGround, 100, 4000) then
goto Start;
end else
begin
Inc(I);
if (I > 3) then
Shutdown('Failed to find spell DTM')
else
begin
Writeln('Failed to find spell '+IntToStr(I)+' time');
FindNormalRandoms;
Gametab(tab_Magic);
Wait(RandomRange(125, 275));
goto Start;
end;
end;
Result := AboveGround;
SetRun(True);
FreeDTM(DTM);
end;
Function FindLadder(Var X, Y: Integer): Boolean;
var
B: TBox;
Loop: Boolean;
TPA,TPA2: TPointArray;
i,CTS: Integer;
ATPA: T2DPointArray;
label
Start;
begin
Result := False;
Loop := False;
Start:
FindNormalRandoms;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(130, 310, TPA, 3029573, MSX1, MSY1, MSCX, MSY2, 15)
if Length(TPA) < 1 then
begin
ColorToleranceSpeed(CTS);
Exit;
end;
ATPA := TPAtoATPAEx(TPA, 20, 20);
for i := 0 to High(ATPA) do
begin
B := GetTPABounds(ATPA[i]);
with B do
begin
FindColorsSpiralTolerance(130, 170, TPA2, 921102, B.X1, B.Y1, B.X2, B.Y2, 15);
if Length(TPA2) > 0 then
begin
ColorToleranceSpeed(CTS);
MiddleTPAEx(TPA2, X, Y);
HumanMMouse(X, Y, 5, 5);
Result := True;
Exit;
end;
end;
end;
ColorToleranceSpeed(CTS);
if Loop then
goto Start;
end;
Function FindChaosAltar(Var X, Y: Integer): Boolean;
var
B: TBox;
TPA: TPointArray;
L,i,CTS: Integer;
ATPA,ATPA2: T2DPointArray;
begin
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3685505, MSX1, MSY1, MSX2, MSY2, 20)
if Length(TPA) < 1 then
begin
ColorToleranceSpeed(CTS);
Exit;
end;
ATPA := TPAtoATPAEx(TPA, 30, 30);
L := High(ATPA);
SetArrayLength(ATPA2, L+1);
for i := 0 to L do
begin
B := GetTPABounds(ATPA[i]);
with B do
begin
FindColorsSpiralTolerance(MSCX, MSCY, ATPA2[i], 11908541, B.X1, B.Y1, B.X2, B.Y2, 20)
if Length(ATPA2[i]) > 0 then
begin
ColorToleranceSpeed(CTS);
MiddleTPAEx(ATPA2[i], X, Y);
HumanMMouse(X, Y, 5, 5);
Result := True;
Exit;
end;
end;
end;
end;
Function WalkToLadder: Boolean;
var
X,Y,B,T: Integer;
SH: Boolean;
label
Start;
begin
Result := False;
SH := False;
if AddRun then
begin
B := Round(GetXPBarTotal);
Inc(Runs);
IncEx(Exp, (B-OldXP));
IncEx(Exp_C, (B-OldXP));
OnScreen(False);
AddRun := False;
AC := 0;
end;
Start:
if not LoggedIn then Exit;
FindNormalRandoms;
MakeCompass('N');
if not AboveGround then Exit;
if (FindLadder(X, Y) and (not SPS_PosOnMM(Point(430, 1550))))then
begin
Result := True;
Exit;
end;
SPS_WalkPath_F(Path_ToLadder);
HumanMMouse(127, 319, 15, 15);
While IsMoving_F do
begin
if not LowPrayer then
begin
if IsUpTextMultiCustom(['limb', 'mb L', 'adder']) then
begin
GetMousePos(X, Y);
MMouse(X, Y-(RandomRange(15, 25)), 0, 0);
ClickMouse2(True);
if DidRedClick then
SH := True;
Break;
end;
if FindLadder(X, Y) then
begin
Result := True;
Exit;
end;
end else
Wait(1);
end;
While IsMoving_F do
Wait(1);
if SH then
begin
MarkTime(T);
repeat
FindNormalRandoms;
if NearBank then
Exit;
until(TimeFromMark(T) > 5000)
end;
Result := True;
end;
Function HandleAltar: Boolean;
var
A,B: Boolean;
X,Y,T,I: Integer;
label
Start;
begin
Result := False;
if not LowPrayer then
begin
Result := True;
Exit;
end;
A := False;
B := False;
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
Start:
MarkTime(T);
repeat
if not LoggedIn then Exit;
FindNormalRandoms;
if not LowPrayer then
begin
Result := True;
Exit;
end;
if FindChaosAltar(X, Y) then
begin
if WaitUpTextMulti(['ay-at', 'aos alt'], 400) then
begin
ClickMouse2(True);
if DidRedClick then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
B := True;
break;
end;
end else
begin
ClickMouse2(False);
if WaitOption('ray-at', 500) then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
B := True;
break;
end;
end;
end;
if (TimeFromMark(T) > 7000) then
begin
A := True;
break;
end;
until(false)
if A then
begin
Inc(I);
Mouse(MMCX, MMCY+10, 2, 2, mouse_left);
FFlag(0);
While IsMoving_F do
Wait(1);
if (I > 3) then
begin
if not FindChaosAltar(X, Y) then
begin
While IsMoving_F do
Wait(1);
if TeleportOut then
begin
Wait(RandomRange(2100, 2600));
I := 0;
Exit;
end;
end;
end;
Wait((RandomRange(600, 775)));
goto Start;
end;
if B then
begin
While IsMoving_F do
Wait(1);
ActivateQuickPrayer;
Result := True;
Exit;
end;
end;
Function HandleLadder: Boolean;
var
A,B,C: Boolean;
X,Y,T,T2,I: Integer;
label
Start;
begin
Result := False;
A := False;
B := False;
C := False;
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
Start:
MarkTime(T);
repeat
FindNormalRandoms;
if NearBank then
begin
Result := True;
Exit;
end;
if FindLadder(X, Y) then
begin
if WaitUpTextMulti(['limb', 'mb L', 'adder'], 400) then
begin
ClickMouse2(True);
if DidRedClick then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
B := True;
break;
end else
begin
C := True;
break;
end;
end else
begin
ClickMouse2(False);
if WaitOptionMulti(['Clim','limb','imb','b L'], 500) then
begin
if FlagPresent then
FFlag(1)
else
While IsMoving_F do
Wait(1);
B := True;
break;
end else
begin
C := True;
break;
end;
end;
end;
if (TimeFromMark(T) > 7000) then
begin
A := True;
break;
end;
until(false)
if A then
begin
if NearBank then
begin
Result := True;
Exit;
end;
Inc(I);
Mouse(MMCX, MMCY+10, 2, 2, mouse_left);
FFlag(0);
While IsMoving_F do
Wait(1);
if (I > 3) then
begin
if not FindLadder(X, Y) then
begin
if TeleportOut then
begin
Wait(RandomRange(2100, 2600));
I := 0;
Exit;
end;
end;
end;
Wait((RandomRange(600, 775)));
goto Start;
end;
if B then
begin
MarkTime(T2);
repeat
FindNormalRandoms;
if (TimeFromMark(T2) > 5000) then
Exit;
if NearBank then
break;
until(false)
Result := NearBank;
end;
if C then
goto Start;
end;
Function BankToAltar: Boolean;
begin
Result := False;
//No more walking east!
if not InvFull then Exit;
if AboveGround then Exit;
SetRun(True);
if not SPS_PosOnMM(Point(80, 1265)) then
begin
HumanMMouse(630, 110, 5, 5);
ClickMouse2(True);
FFlag(5);
end;
SPS_WalkPath_F(Path_ToAltar1);
HumanMMouse(495, 155, 8, 20);
While IsMoving_F do
begin
if IsUpTextMultiCustom(['-rune', 'unec', 'rafting']) then
break;
end;
Result := True;
end;
Function FindBanker(Var X,Y: Integer): Boolean;
var
TPA,PBox: TPointArray;
i,a,CTS,F: Integer;
ATPA: T2DPointArray;
Cols,Tols: TIntegerArray;
HMods,SMods: Array of Extended;
begin
Result := False;
if not LoggedIn then Exit;
for F := 0 to 3 do
begin
PBox := TPAFromBox(IntToBox(240, 130, 275, 185));
CTS := GetColorToleranceSpeed;
if BankScreen then
begin
Result := True;
Exit;
end;
Cols := [5929086, 5992822, 5995648, 6585989, 6453887, 5273721];
Tols := [9, 7, 10, 7, 7, 6];
HMods := [0.15, 0.06, 0.19, 0.09, 0.10, 0.7];
SMods := [0.46, 0.11, 0.39, 0.17, 0.11, 0.11];
for i := 0 to High(Cols) do
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMods[i], SMods[i]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Cols[i], MSX1, MSY1, MSX2, MSY2, Tols[i]);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
if (Length(TPA) > 0) then break;
end;
if (Length(TPA) < 1) then Continue;
ATPA := TPAToATPAEx(TPA, 40, 40);
SortATPAFrom(ATPA, Point(MSCX,MSCY));
for a := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[a], X, Y);
HumanMMouse(X, Y, 15, 15);
if WaitUpTextMulti(['niola'], 400) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end;
end;
end;
end;
Function FindBanker2(Var X,Y: Integer): Boolean;
var
TPA,PBox: TPointArray;
HMod,SMod: Extended;
L,i,CTS,MSP,Col,
CType,Tol: Integer;
ATPA: T2DPointArray;
label
Start;
begin
Result := False;
if not LoggedIn then Exit;
PBox := TPAFromBox(IntToBox(240, 130, 275, 185));
CTS := GetColorToleranceSpeed;
Start:
if BankScreen then
begin
Result := True;
Exit;
end;
if (CType = 2) then
begin
Col := 6453887;
Tol := 7;
HMod := 0.10;
SMod := 0.11;
end else if (CType = 3) then
begin
Col := 5273721;
Tol := 6;
HMod := 0.07;
SMod := 0.11;
end;
if (CType = 0) then
begin
ColorToleranceSpeed(3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 6848905, MSX1, MSY1, 510, 330, 4);
ColorToleranceSpeed(CTS);
end else if (CType = 1) then
begin
ColorToleranceSpeed(3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5800071, MSX1, MSY1, 510, 330, 4);
ColorToleranceSpeed(CTS);
end else if ((CType = 2) or (CType = 3)) then
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Hmod, SMod);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Col, MSX1, MSY1, MSX2, MSY2, Tol);
ColorToleranceSpeed(CTS);
end;
TPA := ClearTPAFromTPA(TPA, PBox);
if (Length(TPA) < 1) then
begin
Inc(CType);
if (CType > 3) then
Exit;
goto Start;
end;
ATPA := TPAToATPAEx(TPA, 40, 40);
SortATPAFrom(ATPA, Point(MSCX,MSCY));
L := High(ATPA);
SetArrayLength(ATPA, L+1);
for i := 0 to L do
begin
MiddleTPAEx(ATPA[i], X, Y);
MSP := MouseSpeed;
MouseSpeed := (RandomRange(26, 33));
HumanMMouse(X, Y, 15, 15);
MouseSpeed := MSP;
if WaitUpTextMulti(['niola'], 400) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end;
end;
end;
Function OpenBankEniola: Boolean;
var
X,Y,T,T2,F,B: Integer;
GoOn: Boolean;
label
Start;
begin
Result := False;
GoOn := False;
Start:
if BankScreen then
begin
Result := True;
Exit;
end;
FindNormalRandoms;
if not LoggedIn then Exit;
if (FindBanker(X, Y) or FindBanker2(X, Y)) then
begin
GoOn := True
end else
begin
if (F > 4) then
TeleportOut;
HumanMMouse(255, 325, 20, 10);
if not WaitUpTextMulti(['Walk', 'alk h', 'here'], 300) then
begin
ClickMouse2(False);
WaitOptionMulti(['Walk', 'alk h', 'here'], 300);
end else
ClickMouse2(True);
FFlag(5);
Inc(F);
goto Start;
end;
if GoOn then
begin
ClickMouse2(False);
if not WaitOptionMulti(['Bank','ank','nk E'], 500) then
begin
Inc(B);
if (B > 5) then
begin
Writeln('Error finding Banker text, teleporting...');
TeleportOut;
Exit;
end;
goto Start;
end else
HumanMMouse(MPoint.X, MPoint.Y, 25, 25);
While IsMoving_F do
Wait(1);
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 3000) then
Exit;
if RunesMenu then
break;
until(false);
if RunesMenu then
begin
HumanMMouse(MPoint.X, MPoint.Y, 7, 7);
ClickMouse2(True);
MarkTime(T2);
repeat
FindNormalRandoms;
if (TimeFromMark(T2) > 5000) then
Exit;
if (BankScreen) or (PinScreen) then
break;
Wait(100);
until(false)
if PinScreen then
if (Players[CurrentPlayer].Pin <> '') then
InPin(Players[CurrentPlayer].Pin)
else
Shutdown('No PIN # given');
Wait(RandomRange(175, 350));
end;
end;
Result := BankScreen;
end;
Procedure Eat;
var
DTM,X,Y,X2,
Y2,T: Integer;
begin
if not LoggedIn then Exit;
if not BankScreen then Exit;
Case lowercase(Food) of
'trout' : DTM := DTMFromString('mlwAAAHicY2dgYCgD4kIgzgbiAiCuAOJaIG 4EYhUgVgRiTSDWBWJtqJg8EGfERAJJJqxYDkjiwox4MBQAALdh Bks=');
'tuna' : DTM := DTMFromString('mlwAAAHicY2dgYFAAYikgFgFiCShfHYh1gF gFiOWBWA2I9YBYFyonC8QpEWFAkgkrFoGahw0z4sFQAABkyQOa ');
'lobster' : DTM := DTMFromString('mbQAAAHicY2VgYOgB4g4g7gPiyUA8FYjPA/F1IL4CxHeA+DQQrw+TAJJMKJiLARMwYsFgAACaUQgl');
'swordfish' : DTM := DTMFromString('mlwAAAHicY2dgYGhmZGDoBuKJQNwHxJ2MEL FyIJZhgGAFIFYCYmUglofSzTFdQJIJK+YCknI4MCMeDAUA/+8G2A==');
'monkfish': DTM := DTMFromString('mggAAAHicY2NgYJjEyMAwEYgXQPE8IJ4GxB +Bct+A+A0DhP0diH8AsbejJcP8miogiwkFcwFJEEYHjDgwBAAA Z90L0w==');
'shark' : DTM := DTMFromString('mggAAAHicY2NgYLBjZGAwB2JHIHYHYg8g1g fiEqBcAxBXA3EzEJcCcQsQd+RHAUkmDMzFgB0w4sAQAAAltwXX ');
end;
if FindDTM(DTM, X, Y, MSX1, MSY1, MSX2, MSY2) then
begin
HumanMMouse(X, Y, 5, 5);
ClickMouse2(False);
WaitOption('Withdraw-5', 300);
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 5000) then
Exit;
if (HPPercent >= 90) then
break;
if FindDTM(DTM, X2, Y2, MIX1, MIY1, MIX2, MIY2) then
begin
HumanMMouse(X2, Y2, 5, 5);
ClickMouse2(False);
if WaitOption('Eat', 300) then
begin
Wait(RandomRange(705, 815));
MarkTime(T);
Inc(FoodC);
end;
end;
until(false)
end;
if FindDTM(DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
HumanMMouse(X, Y, 5, 5);
ClickMouse2(False);
WaitOption('Deposit-All', 400);
Wait(RandomRange(425, 675));
end;
FreeDTM(DTM);
end;
Function WithdrawEss: Boolean;
var
X,Y,Ess,ItemFail: Integer;
label
Start;
begin
Start:
if not BankScreen then
Exit;
ColorToleranceSpeed(1);
FixBank;
Ess := BitmapFromString(9, 11, 'meJx1zNEKgCAQRNGfDBMRERHbysq' +
'I/r+BIQmWYN7O3RXZRLZlObBaz32/sNZurJQVkzeAMgDlPGM6gMaY' +
'U5owBt/nISQog64MvI9Ufetc+FPQV/tnkLVeK8kYp5U/h2GkMoDyJ' +
'+gB5qx01w==');
if BankScreen then
begin
if FindBitmapToleranceIn(Ess, X, Y, 35, 85, 480, 295, 20) then
begin
HumanMMouse(X, Y, 5, 5);
ClickMouse2(False);
Result := WaitOptionMulti(['Withdraw-All', 'w-A'], 300)
end else
begin
if (ItemFail > 3) then
Shutdown('Out of essence');
Inc(ItemFail);
if (ItemFail = 0) then
Writeln('Failed finding essence '+IntToStr(ItemFail)+' time')
else if (ItemFail > 0) then
Writeln('Failed finding essence '+IntToStr(ItemFail)+' times');
Wait(RandomRange(1750, 2205));
goto Start;
end;
end;
FreeBitmap(Ess);
end;
Function DepositEss: Boolean;
var
T,Slot: Integer;
begin
if not BankScreen then exit;
Slot := RandomRange(9, 20);
MouseItem(Slot, mouse_right);
Wait(RandomRange(50, 115));
WaitOption('Deposit-5', 300);
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 3000) then
Result := False;
if not InvFull then
break;
until(False)
Result := (not InvFull);
end;
Function WithdrawRunes(Method: String): Boolean;
var
ABMP,CBMP,X,Y: Integer;
begin
Result := False;
if not LoggedIn then Exit;
if InvFull then
begin
if not BankScreen then
OpenBankEniola
else if BankScreen then
DepositEss;
Wait(RandomRange(350, 625));
end;
ColorToleranceSpeed(1);
ABMP := BitmapFromString(7, 7, 'meJy7efPxzZuPCwvLiosrSkurboK5' +
'EJSfXwIRh4tk5xTk5hUhq8nIyMnKykMWAaK0tCw0EWRDIAhoD tBwN' +
'HMgggArDGec');
CBMP := BitmapFromString(7, 5, 'meJyTvXBJFoaKiytKS6sg7Ny8IiDK' +
'zy8pLCyDiGRk5GRl5WXnFEDEIYJpaVlwcbg5KSkZEHEgggsCA OmnNDQ=');
if FindBitmapToleranceIn(CBMP, X, Y, MSX1, MSY1, MSX2, MSY2, 20) then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(25, 75));
ClickMouse2(True);
Wait(RandomRange(350, 675));
end;
if (Lowercase(Method) = 'contact') then
begin
if FindBitmapToleranceIn(ABMP, X, Y, MSX1, MSY1, MSX2, MSY2, 20) then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(25, 75));
ClickMouse2(True);
Wait(RandomRange(275, 475));
ClickMouse2(True);
Wait(RandomRange(275, 475));
end;
end;
CloseBank;
Result := True;
FreeBitmap(ABMP);
FreeBitmap(CBMP);
end;
Function HandlePouches(Method, Seq: Integer): Boolean;
begin
Result := False;
if (Method = 1) then
begin
//Small pouch
if not (SS = 0) then
begin
MouseItem(SS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Medium pouch
if not (MS = 0) then
begin
MouseItem(MS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Large pouch
if not (LS = 0) then
begin
MouseItem(LS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Giant pouch
if not (GS = 0) then
begin
MouseItem(GS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end else if (Method = 2) then
begin
//Small pouch
if not (SS = 0) then
begin
MouseItem(SS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Medium pouch
if not (MS = 0) then
begin
MouseItem(MS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Large pouch
if not (LS = 0) then
begin
MouseItem(LS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end else if (Method = 3) then
begin
//Small pouch
if not (SS = 0) then
begin
MouseItem(SS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
//Medium pouch
if not (MS = 0) then
begin
MouseItem(MS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end else if (Method = 4) then
begin
//Large pouch
if not (LS = 0) then
begin
MouseItem(LS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end else if (Method = 5) then
begin
//Giant pouch
if not (GS = 0) then
begin
MouseItem(GS, mouse_move);
Wait(RandomRange(20, 75));
if (Seq = Fill) then
begin
ClickMouse2(False);
WaitOptionMulti(['ill', 'Fill'], 400)
end else
ClickMouse2(True);
end;
end;
Result := True;
end;
Function FindDecayedPouch(Var Slot: Integer): Boolean;
var
B: TBox;
TPA: TPointArray;
Hmod,Smod: Extended;
L,i,Tol,CTS,Col,X,Y: Integer;
ATPA: T2DPointArray;
begin
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
ReturnValues([3422525, 3619647, 3751234], Hmod, Smod, Col, Tol);
SetColorSpeed2Modifiers(Hmod, SMod);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Col, MIX1, MIY1, MIX2, MIY2, Tol);
ColorToleranceSpeed(CTS);
if (Length(TPA) < 1) then
Exit;
ATPA := TPAToATPAEx(TPA, 18, 18);
SortATPAFrom(ATPA, Point(650, 330));
L := High(ATPA);
SetArrayLength(ATPA, L+1);
for i := 0 to L do
begin
B := GetTPABounds(ATPA[i]);
if (GetArrayLength(ATPA[i])>10) then
begin
MiddleTPAEx(ATPA[i], X, Y);
Slot := CoordsToItem(X, Y);
Result := True;
end;
end;
end;
Function CheckPouches: Boolean;
var
S: Integer;
begin
Result := FindDecayedPouch(S);
end;
Function ContactScreen: Boolean;
var
X, Y: Integer;
begin
Result := FindText(x, y, 'onest', StatChars, 30, 50, 110, 80);
end;
Function ContactRepair: Boolean;
var
T,T2,T3: Integer;
begin
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 4000) then
Exit;
if ContactScreen then
break;
until(false)
if ContactScreen then
begin
MouseBox(483, 240, 491, 290, 1);
Wait(RandomRange(275, 480));
MouseBox(410, 110, 450, 150, 1);
end;
MarkTime(T2);
repeat
FindNormalRandoms;
if (TimeFromMark(T2) > 6000) then
Exit;
if ClickToContinue then
MarkTime(T2);
Wait(RandomRange(125, 275));
if FindNPCChatTextMulti(['Repa', 'epai'], ClickLeft) then
break;
until(false)
MarkTime(T3);
repeat
FindNormalRandoms;
if (TimeFromMark(T3) > 2000) then
Exit;
if ClickToContinue then
MarkTime(T3);
Wait(RandomRange(125, 275));
until(false)
Result := True;
end;
Function RepairPouches(Method: String): Boolean;
var
X,Y,Slot,Spell: Integer;
label
Start;
begin
ColorToleranceSpeed(1);
Start:
FindNormalRandoms;
if not LoggedIn then Exit;
Case Lowercase(Method) of
'spell':
Spell := BitmapFromString(6, 6, 'meJybsPnUqr2nmQVNHMtXAMni7mUT' +
'Np8CIiAbLgjh6vgXQRgQQSC3Yf46IEIWhIgADQEiZDMjihc6J bYBA' +
'DJlKvQ=');
'contact':
Spell := BitmapFromString(7, 5, 'meJx79fr1K3LRr6cHMUU+HarHFGFk' +
'YAAA0ZFcCA==');
end;
if FindDecayedPouch(Slot) then
begin
Writeln('Decayed pouch detected in slot '+IntToStr(Slot));
GameTab(tab_Magic);
Wait(Random(100));
if FindBitmapIn(Spell, X, Y, 550, 200, 720, 435) then
begin
MMouse(X, Y, 5, 5);
Wait(Random(100));
if (Lowercase(Method) = 'spell') then
begin
if WaitUpText('epair',RandomRange(250,350)) then
begin
ClickMouse2(True);
Wait(RandomRange(20, 75));
MouseItem(Slot, mouse_left);
Wait(RandomRange(1575, 2150));
Inc(RepairC);
Writeln('Pouch repaied');
end;
end else if (Lowercase(Method) = 'contact') then
begin
if WaitUpText('Contact',RandomRange(250,350)) then
begin
ClickMouse2(True);
if ContactRepair then
begin
Inc(RepairC);
Writeln('Pouches repaied');
end;
end;
end;
end;
end;
if not FindDecayedPouch(Slot) then
Result := True
else
goto Start;
FreeBitmap(Spell);
end;
Procedure DepositAllExcept(IgnoreSlots: TIntegerArray; FastDeposit: Boolean);
Var
i,T: Integer;
begin
For i := 1 to 28 do
begin
if not BankScreen then Exit;
if ExistsItem(i) then
begin
if not InIntArray(IgnoreSlots, i) then
begin
MouseItem(i, mouse_right);
WaitOptionMulti(['Deposit-All', 'All', 'osit'], 400);
if not FastDeposit then
begin
MarkTime(T);
repeat
if (not(ExistsItem(I))) then Break;
until(TimeFromMark(T) > 3000)
end;
end;
end;
end;
end;
Function GetIgnoreSlots: TIntegerArray;
Var
X,Y,SDTM,MDTM,LDTM,
GDTM,PayBMP,AsBMP,LaBMP,
Slot: Integer;
IgnoreArr: TIntegerArray;
begin
ColorToleranceSpeed(1);
{Detect pouch slots}
SDTM := DTMFromString('mAAEAAHicbczBCoJAFIXhMwNF2MiQ+ghuXb d2F0RlD+ZWRRJ61H5lCNG58N0Dh8t1kjor9fjgG7ILOWLCgDY4 G+mAIxwy5BBSnGBxQYJbfdXreefA7rybx5JVWfw7z57Fxm9Sq2 8mItav5wer+wsg');
MDTM := DTMFromString('mlwAAAHicY2dgYMhjYmAoBeJkIE4B4hIgzg HifCDmYYRgLiAWgmJRIP4D1OdqbwokmbBifgbcAKSCEQeGAgBs wQVI');
LDTM := DTMFromString('mrAAAAHic42BgYHBhYmBwBWJPKO0HxF5AbA HETkDMx8jA8A+ojgFIswAxLxCLQLEYEDvbGgMlmXBifgb8gAli NE4MAwBfsAR9');
GDTM := DTMFromString('m6wAAAHic42ZgYDjExMBwgAlCnwLiE0B8FM o+D8THgXgfEG8C4ldA9Q+A+CYQvwTiG0B8D4gfAfFrIP4ExF+A +AMQB3rZMaQmJzCoyAowxMVGAUWYcGJ+IImM8QF03Yx4MBIAAG 3KFjI=');
{Detect rune slots}
Case Lowercase(RuneType) of
'fire': PayBMP := BitmapFromString(9, 5, 'meJzLySkUlZ8GR8UllXB2VlY+slRh' +
'UTkyl7oIAEltJaE=');
'body': PayBMP := BitmapFromString(8, 9, 'meJxNjVsKgCAURFfQDvpocSJlVvYQ' +
'EVMkopW1sIaGJLk/nnPnjnPR+1R9L6Uz5+tu6nXz1obC93gAYubF4' +
'Qvl3mAIGQoprjFVFLkxFqm/QgRc63kc12KhyJWaqNgIjlNS9m07UJ' +
'FzhOiKIkELKh5t21Bn');
'mind': PayBMP := BitmapFromString(10, 8, 'meJxdjlsKgzAQRX/dRbcRtyNi1Wr' +
'qK4QQE0IprrHL6YGBEIT7keGcuZNK1cb4StXEuSiPGL8pXY/wWzdL' +
'9sPhWBuEnuEDIlrvy2KyINT7hEDDNK2lkE8gQMfxXQpCOYHAu ow5u' +
'QShpFIinyFQypvm2bZD1736fr4J5A8PcVuP');
'air': PayBMP := BitmapFromString(10, 9, 'meJxljl0KgDAMg+8pY4z5N6dO5xx' +
'DxEv21ctYLJSikIc2CXwBuENIADcp7UfOZykXO9MU+Y5boQI7 zs18' +
'r2umAr1NM3AEL4UK0iR5v0iKVNeNEiFlbf9B0AaljNa1Me0nQ gSmV' +
'aWx8EfgBlz4AJtntwY=');
'water': PayBMP := BitmapFromString(11, 6, 'meJwrLCovLqmcLyWGjGpqm+rqWho' +
'a2pqaOgoKStFk0dTk5RVjVVBd3QBRk5NTiFUBRA0Q4ZIFovLy 2srK' +
'OjwKSkurgWoA05lCoQ==');
end;
AsBMP := BitmapFromString(8, 7, 'meJw7ue7kSRgqLqksLa0uL6+trKw7' +
'iSSOLIUmDpdKS8vOyMjNyspHlgKKp6RkwqVycgrz8oohUklJ6 WhSB' +
'QWlQKMSElLRpIBaCovKAUzMXGQ=');
LaBMP := BitmapFromString(8, 6, 'meJzLyyu+qiwHRMUllaWl1eXltRBu' +
'Tk4hhFFYVA6UAiIINysrH8LIyysuKCgFykK4aWnZGRm5EI0QK Yh4S' +
'komXCOaFBwhSwEAjXs5+g==');
GameTab(Tab_Inv);
Wait(300+Random(200));
if FindDTM(SDTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
Slot := CoordsToItem(X, Y);
SetArrayLength(IgnoreArr, Length(IgnoreArr)+1);
IgnoreArr[High(IgnoreArr)] := Slot;
end;
if FindDTM(MDTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
Slot := CoordsToItem(X, Y);
SetArrayLength(IgnoreArr, Length(IgnoreArr)+1);
IgnoreArr[High(IgnoreArr)] := Slot;
end;
if FindDTM(LDTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
Slot := CoordsToItem(X, Y);
SetArrayLength(IgnoreArr, Length(IgnoreArr)+1);
IgnoreArr[High(IgnoreArr)] := Slot;
end;
if FindDTM(GDTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
Slot := CoordsToItem(X, Y);
SetArrayLength(IgnoreArr, Length(IgnoreArr)+1);
IgnoreArr[High(IgnoreArr)] := Slot;
end;
if FindBitmapToleranceIn(AsBMP, X, Y, MIX1, MIY1, MIX2, MIY2, 20) then
begin
Slot := CoordsToItem(X, Y);
SetArrayLength(IgnoreArr, Length(IgnoreArr)+1);
IgnoreArr[High(IgnoreArr)] := Slot;
end;
if FindBitmapToleranceIn(LaBMP, X, Y, MIX1, MIY1, MIX2, MIY2, 20) then
begin
Slot := CoordsToItem(X, Y);
SetArrayLength(IgnoreArr, Length(IgnoreArr)+1);
IgnoreArr[High(IgnoreArr)] := Slot;
end;
if FindBitmapToleranceIn(PayBMP, X, Y, MIX1, MIY1, MIX2, MIY2, 20) then
begin
Slot := CoordsToItem(X, Y);
SetArrayLength(IgnoreArr, Length(IgnoreArr)+1);
IgnoreArr[High(IgnoreArr)] := Slot;
end;
Result := IgnoreArr;
FreeDTM(SDTM);
FreeDTM(MDTM);
FreeDTM(LDTM);
FreeDTM(GDTM);
FreeBitmap(AsBMP);
FreeBitmap(LaBMP);
FreeBitmap(PayBMP);
end;
Procedure HandleBank;
var
S: String;
T: Integer;
label
Bank_End;
begin
if BankScreen then
begin
if MaxBank then
Mouse(370, 305, 6, 6, True)
else
DepositAllExcept(GetIgnoreSlots, True);
FixBank;
if (HPPercent <= EatAt) then
Eat;
WithdrawEss;
if (InvCount = 23) then
GoTo Bank_End;
if PP1 then
begin
if HandlePouches(5, Fill) then
WithdrawEss;
if HandlePouches(2, Fill) then
WithdrawEss;
end else
if HandlePouches(2, Fill) then
WithdrawEss;
Bank_End:
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 5000) then
Exit;
if InvFull then
break;
until(false)
if InvFull then
begin
if CheckPouches then
if WithdrawRunes(Lowercase(RepairMethod)) then
if RepairPouches(Lowercase(RepairMethod)) then
if OpenBankEniola then
if WithdrawEss then
if CloseBank then
Exit;
if (GetMMLevels('run',S) <= RestAt) then
RestUntil(RandomRange(90, 100));
end;
end;
end;
Function FindAltar(Var X,Y: Integer): Boolean;
var
TPA,PBox: TPointArray;
i,a,CTS: Integer;
ATPA: T2DPointArray;
Cols,Tols: TIntegerArray;
HMods,SMods: Array of Extended;
begin
Result := False;
if not LoggedIn then Exit;
if IsUpTextMultiCustom(['-rune', 'unec', 'rafting']) then
begin
Result := True;
Exit;
end;
PBox := TPAFromBox(IntToBox(240, 130, 275, 185));
CTS := GetColorToleranceSpeed;
if BankScreen then
begin
Result := True;
Exit;
end;
Cols := [6514550];
Tols := [9];
HMods := [0.23];
SMods := [0.20];
for i := 0 to High(Cols) do
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMods[i], SMods[i]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Cols[i], MSX1, MSY1, MSX2, MSY2, Tols[i]);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
if (Length(TPA) > 0) then break;
end;
if (Length(TPA) < 1) then Exit;
ATPA := TPAToATPAEx(TPA, 30, 30);
SortATPAFrom(ATPA, Point(MSCX,MSCY));
for a := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[a], X, Y);
HumanMMouse(X, Y, 15, 15);
if WaitUpTextMulti(['-rune', 'unec', 'rafting'], 500) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end;
end;
end;
Function CraftRunes: Boolean;
var
X,Y,F,Seq: Integer;
label
ClickAltar;
begin
Seq := 0;
OldXP := Round(GetXPBarTotal);
ClickAltar:
if not LoggedIn then Exit;
if (AC > 4) then
Seq := 4;
if (Seq < 4) then
begin
if FindAltar(X, Y) then
begin
ClickMouse2(True);
Inc(AC);
if not DidRedClick then
goto ClickAltar;
While IsMoving_F do
Wait(1);
if (Seq < 3) then
begin
HumanMMouse(640, 220, 15, 15);
Wait(RandomRange(675, 950));
While IsMoving_F do
Wait(1);
Wait(RandomRange(105, 165));
end else if (Seq = 3) then
GameTab(tab_Magic);
end else
begin
if (F > 4) then
begin
TeleportOut;
Exit;
end;
Inc(F);
SetRun(True);
BankToAltar;
FindNormalRandoms;
SetRun(True);
goto ClickAltar;
end;
end;
{Handle first set of pouches}
if (Seq = 0) then
begin
if PP1 then //Giant pouch
begin
if HandlePouches(5, Empty) then
Seq := 1;
goto ClickAltar;
end;
if PP2 then //Large pouch only
begin
if HandlePouches(4, Empty) then
Seq := 2;
goto ClickAltar;
end;
if ((not PP1) and (not PP2)) then //No Giant/Large pouches
begin
if HandlePouches(3, Empty) then
Seq := 3;
goto ClickAltar;
end;
end;
{Handle second set of pouches}
if (Seq = 1) then
begin
if PP2 then //Large pouch
begin
if HandlePouches(4, Empty) then
Seq := 2
end;
if not PP2 then //No large pouch
begin
if HandlePouches(3, Empty) then
Seq := 3;
end;
goto ClickAltar;
end;
{Handle third set of pouches}
if (Seq = 2) then
begin
if HandlePouches(3, Empty) then
Seq := 3;
goto ClickAltar;
end;
{Exit pouch-handling}
if ((Seq = 3) or (Seq = 4)) then
begin
AddRun := True;
Result := True;
end;
end;
Function BreakHandler(BreakIn, BreakFor, randBreakIn, randBreakFor: Integer): Boolean;
Var
h,m,s: integer;
begin
if not LoggedIn then Exit;
if (HowManyPlayers = 1) then
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
if NearBank then
begin
RealBTime := ((x+z)/60000);
Writeln('Taking a break for about ' + IntToStr(RealBTime) + ' minutes.');
CloseBank;
Logout;
MarkTime(CurrentBTime);
repeat
Wait(21000);
ConvertTime((x+z)-TimeFromMark(CurrentBTime), h, m, s);
ClearDebug;
Writeln('Breaktime left: '+IntToStr(h)+':'+IntToStr(m)+':'+IntToStr(s));
until(TimeFromMark(CurrentBTime)>(x+z));
Writeln('Logging in.');
if SwitchWorlds then
if LoginPlayerToLob then
ChangeWorld(RandomWorld(True, False))
else
LoginPlayer;
Wait(4000);
Result := LoggedIn;
ClickNorth(SRL_ANGLE_HIGH);
OnScreen(False);
IncEx(BreakRounds, (w) + (x));
Inc(TotalBreaks);
Writeln('The next break will occur in about ' + IntToStr(BreakIn) + ' minutes.');
w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-Bir * 60000, Bir * 60000);
z := RandomRange(-Bfr * 60000, Bfr * 60000);
end;
end;
end;
end;
Procedure SuperDuperLooper;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
MouseSpeed := (RandomRange(15, 21));
if AboveGround then
begin
{At ladder}
if WalkToLadder then
begin
if UsePrayer then
begin
if HandleAltar then
HandleLadder;
end else
HandleLadder;
end;
end else if not AboveGround then
begin
{Bank}
if NearBank then
begin
if not InvFull then
begin
if OpenBankEniola then
HandleBank
else
Exit;
end else if InvFull then
begin
if BankToAltar then
if CraftRunes then
TeleportOut
else
While IsMoving_F do
Wait(1)
else
While IsMoving_F do
Wait(1);
end;
end else
begin
CraftRunes;
TeleportOut;
end;
end;
end;
procedure FoundARandom;
begin
Writeln('Found a random!');
PlaySound(ScriptPath+'evilaugh.wav');
Wait(RandomRange(10000, 20000));
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
Writeln('Loading script...');
setupSRL();
DeclarePlayers;
LoginPlayer;
SetNorth;
Smart_ClearCanvas;
UpdateSPSMap;
LoadVars;
LoadImg;
//SRL_Procs[SRL_OnFindRandom] := @FoundARandom;
SetupSRLStats(157, SRLStats_Username, SRLStats_Password);
Writeln('Script loaded!');
ToggleXPBar(True);
XPToLvl := XPTillNextLevel(Skill_Runecrafting);
if UsePrayer then
begin
SetPrayers;
ActivateQuickPrayer;
end;
OnScreen(False);
AddOnTerminate('DestroyImg');
Repeat
if not LoggedIn then
begin
LoginPlayer;
ClickNorth(SRL_ANGLE_HIGH);
end;
BreakHandler(BreakIn,BreakFor,Bir,Bfr);
if (TimeFromMark(CommitTime)>=30000) then
Commit;
if (TimeFromMark(ReportTime)>=5000) then
Report;
SuperDuperLooper;
Until(AllPlayersInactive)
end.
Thanks for your hard work. The 1.75 script seems to crash Simba when it's about to leave the bank to the altar. It's probably my mac-wine emulation playing up, but the previous scripts didn't have this problem.
lorenzo
03-16-2012, 01:36 PM
when its done whit the bank it wont walk do i need a new map download or someting? i did copy and paste it but it seems he wont walk :S
Zockuito
03-16-2012, 01:47 PM
Grrrr... Scripts like this make me want to bot 24/7! >:( Great script! :D Thanks so much! :)
sckwarrior
03-16-2012, 03:13 PM
for me 1.75 seems to get stuck right after exiting bank. clicks one spot and stays there. right next to where the wall between long and short path connect
edit: also when it teleports, clicks the hunter sign.(1.71)
Neither versions are working :(
one1988
03-16-2012, 03:54 PM
250k xp gained in 5 hours :)
Still rising :) smart manager on 750k xp til 77 going all weekend with this going for 80+ looks like it will easily be achieved
Flight
03-16-2012, 04:06 PM
for me 1.75 seems to get stuck right after exiting bank. clicks one spot and stays there. right next to where the wall between long and short path connect
edit: also when it teleports, clicks the hunter sign.(1.71)
Neither versions are working :(
Oh ops, I believe I see the mistake I made... Let me try it out quick and I'll edit this post with the fix, sound good?
Ok here it is. I simply called upon the wrong SPS image file. Ok, go down to line 285 where the "UpdateSPSMap" procedure begins. Replace that whole procedure with this:
Procedure UpdateSPSMap;
begin
Writeln('Checking SPS map & tolerance...');
if not FileExists(AppPath + '/Includes/SPS/img/runecrafting_altars/0_2.png') then
DownloadToFile('http://i.imgur.com/fzfCl.png', AppPath + '/Includes/SPS/img/runecrafting_altars/0_2.png');
SPS_Setup(Runecrafting_Altars, ['0_2']);
if (not (SPS_Surface.Tolerance = 0.5)) then
begin
Writeln('Adjust SPS map tolerance...');
SPS_Surface.Tolerance := 0.5
end;
SPS_Continue := True;
end;
Also, if you already have the "0_2" img in your 'runecrafting_altars' folder (C:\Simba\Includes\SPS\img\runecrafting_altars) then delete it so the script can download the new one. You MUST do this first.
The new 0_2 image should look like this: (notice part of it is incomplete)
http://i.imgur.com/fzfCl.png
iGunXZ
03-16-2012, 04:46 PM
Still not working ;(
Craimforce
03-16-2012, 04:56 PM
so bad this doesnt work :(.
it always get stuck after teleing ourani altar.
Horatio
03-16-2012, 04:58 PM
I've experiencing the same problem with 1.75. It doesn't go well after it has banked. It will walk however, but extremely slow, like 15-30 seconds between each click. Maybe a variable is wrong?
I have done everything as you explained, with the new UpdateSPSMap procedure but it doesn't work. I'll stick with 1.71 for now. Using windows xp btw.
iGunXZ
03-16-2012, 05:01 PM
I've experiencing the same problem with 1.75. It doesn't go well after it has banked. It will walk however, but extremely slow, like 15-30 seconds between each click. Maybe a variable is wrong?
I have done everything as you explained, with the new UpdateSPSMap procedure but it doesn't work. I'll stick with 1.71 for now. Using windows xp btw.
Can you upload the 1.71 for me? To pastebin.
I seem to have lost it, gonna use that till 1.75 is stable.
Horatio
03-16-2012, 05:05 PM
Can you upload the 1.71 for me? To pastebin.
I seem to have lost it, gonna use that till 1.75 is stable.
You can download 1.71 from the first post of this thread :)
iGunXZ
03-16-2012, 05:06 PM
You can download 1.71 from the first post of this thread :)
He took it off :( lol
Craimforce
03-16-2012, 05:14 PM
please post 1.71 :((( i need it pleaseee
immaboss69
03-16-2012, 06:36 PM
noob question but where do i find this image its nowhere
hey whats the easiest and fastest way to fill up bank
Go round loads of stalls in rs and buy items :P and buy pots like 1's 2's 3's 4's sets of each:) cost me about 1m ish.
Mat
immaboss69
03-16-2012, 07:09 PM
when i start script right at ourina tele location, it just stands there and does nothing, except mess with prayers
Craimforce
03-16-2012, 09:00 PM
please someone give me v1.71
Flight
03-16-2012, 11:38 PM
I just don't get it. It was working so great yesterday. :( I'll go ahead and upload V1.72 which is 1.71 with the ladder fix and both banking methods.
Edit:
Uploaded V.1.72. I'm terribly sorry about that everyone, I don't know what went so wrong with the map to have both paths completely unrecognizable... Looks like I'll be busy with it again this weekend.
wister1
03-17-2012, 12:38 AM
im using the 1.71 and its running great :D
Austintheman
03-17-2012, 01:26 AM
Hey Flight, is it possible for you or someone else to please reupload V1.71? Want to get some uber RC XP this weekend :D.
Flight
03-17-2012, 01:44 AM
Hey Flight, is it possible for you or someone else to please reupload V1.71? Want to get some uber RC XP this weekend :D.
As far as I know V1.72 should be working just fine. Have you given that a try yet? I only just recently uploaded it.
siuman101
03-17-2012, 02:22 AM
When my pouch breaks, and i did not have the pouch repair spell unlocked, what will the bot do?? bank the broken pouch and just using the remaining healthy pouch?
Ashihtaka
03-17-2012, 02:33 AM
When my pouch breaks, and i did not have the pouch repair spell unlocked, what will the bot do?? bank the broken pouch and just using the remaining healthy pouch?
change 'spell' to 'contact', and have air+cosmic runes visible on your opening bank screen.
Austintheman
03-17-2012, 03:36 AM
As far as I know V1.72 should be working just fine. Have you given that a try yet? I only just recently uploaded it.
Sorry, I did not. I downloaded the 1.75 and didn't even realize you uploaded a new one!
My apologies. Thanks Flight!
Harry
03-17-2012, 07:55 AM
I got a fun infinite loop, I think.
I came back to http://i.imgur.com/8Oqha.jpg .. the mouse flipping around the screen for quite a bit, I assume was going on for a while. Was trying to find banker when it failed to find him the first time, when it actually clicked him properly, I think?
Flight
03-17-2012, 08:39 AM
I got a fun infinite loop, I think.
I came back to http://i.imgur.com/8Oqha.jpg .. the mouse flipping around the screen for quite a bit, I assume was going on for a while. Was trying to find banker when it failed to find him the first time, when it actually clicked him properly, I think?
I believe this has something to do with withdrawing essence after having just previously repaired a rune pouch. I'm not entirely sure why it happens, but a simple solution would be to modify this part of code in the 'OpenBankEniola' function:
if (BankScreen or RunesMenu) then
begin
Result := True;
Exit;
end;
So it should never try finding the banker again if the RunesMenu is visible.
Edit:
Nevermind, the RunesMenu is handled within that function, we can't exit out. :p "This" should work:
Function OpenBankEniola: Boolean;
var
X,Y,T,T2,F,B: Integer;
GoOn: Boolean;
label
Start,MenuStage;
begin
Result := False;
GoOn := False;
Start:
if BankScreen then
begin
Result := True;
Exit;
end;
if RunesMenu then
goto MenuStage;
FindNormalRandoms;
if not LoggedIn then Exit;
if (FindBanker(X, Y) or FindBanker2(X, Y)) then
begin
GoOn := True
end else
begin
if (F > 4) then
TeleportOut;
HumanMMouse(255, 325, 20, 10);
if not WaitUpTextMulti(['Walk', 'alk h', 'here'], 300) then
begin
ClickMouse2(False);
WaitOptionMulti(['Walk', 'alk h', 'here'], 300);
end else
ClickMouse2(True);
FFlag(5);
Inc(F);
goto Start;
end;
if GoOn then
begin
ClickMouse2(False);
if not WaitOptionMulti(['Bank','ank','nk E'], 500) then
begin
Inc(B);
if (B > 5) then
begin
Writeln('Error finding Banker text, teleporting...');
TeleportOut;
Exit;
end;
goto Start;
end else
HumanMMouse(MPoint.X, MPoint.Y, 25, 25);
While IsMoving_F do
Wait(1);
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 3000) then
Exit;
if RunesMenu then
break;
until(false);
MenuStage:
if RunesMenu then
begin
HumanMMouse(MPoint.X, MPoint.Y, 7, 7);
ClickMouse2(True);
MarkTime(T2);
repeat
FindNormalRandoms;
if (TimeFromMark(T2) > 5000) then
Exit;
if (BankScreen) or (PinScreen) then
break;
Wait(100);
until(false)
if PinScreen then
if (Players[CurrentPlayer].Pin <> '') then
InPin(Players[CurrentPlayer].Pin)
else
Shutdown('No PIN # given');
Wait(RandomRange(175, 350));
end;
end;
Result := BankScreen;
end;
Imanoobbot
03-17-2012, 04:46 PM
Thanks for your hard work. The 1.75 script seems to crash Simba when it's about to leave the bank to the altar. It's probably my mac-wine emulation playing up, but the previous scripts didn't have this problem.
You got other versions running on Mac?
Andres
03-17-2012, 04:48 PM
Does anyone have any proggies for the script without using max banking? I'm sure it's slower, but I am still curious.
Craimforce
03-17-2012, 04:50 PM
yes i agree with u.this is slower.
Well the bad thing is its slower at bonus xp weekend and faster before bonus xp :(.
the flea
03-17-2012, 05:29 PM
this script is hot! Thanks Flight,
[=======================================]
[ ZMI-Extreme 1.72 ]
[ by Flight ]
[=======================================]
[ Run Time : 4 Hr 17 Min 17 Sec ]
[ Exp Gained : 258042 ]
[ Loads Completed : 191 ]
[ Monkfish Ate : 30 ]
[ Pouches Repaired : 1 ]
[ Breaks : 1 ]
[=======================================]
[ ZMI-Extreme 1.72 ]
[=======================================]
m34tcode
03-17-2012, 05:37 PM
There are many people at the altar this weekend, so a tolerance of .3 seems to work much better than .5;
Also, Ring of life support would be great. Im attempting to implement it right now. Script shoiuld teleport to the altar if it gets lost, then retry to find the altar;
Imanoobbot
03-17-2012, 05:55 PM
There are many people at the altar this weekend, so a tolerance of .3 seems to work much better than .5;
Also, Ring of life support would be great. Im attempting to implement it right now. Script shoiuld teleport to the altar if it gets lost, then retry to find the altar;
I totally agree that Deathwalking would be nice. I am tanking those arrows but the script would be better with.
Ashihtaka
03-17-2012, 07:02 PM
Script ran for 5 hours without fail last night,
but when I run it now, it often clicks the 'mining' symbol North-East of the Ourania teleport, from there it just gets stuck and doesn't go back.
---------------------------------------------------------------------------------------
Proggy with babysitting:
[======================================]
[ ZMI-Extreme 1.71 ]
[ by Flight ]
[======================================]
[ Run Time : 4 Hr 6 Min 14 Sec ]
[ Exp Gained : 166767 ]
[ Loads Completed : 160 ]
[ Lobster Ate : 65 ]
[ Pouches Repaired : 0 ]
[ Breaks : 1 ]
[======================================]
[ ZMI-Extreme 1.71 ]
[======================================]
Andres
03-17-2012, 07:28 PM
Script ran for 5 hours without fail last night,
but when I run it now, it often clicks the 'mining' symbol North-East of the Ourania teleport, from there it just gets stuck and doesn't go back.
---------------------------------------------------------------------------------------
Proggy with babysitting:
[======================================]
[ ZMI-Extreme 1.71 ]
[ by Flight ]
[======================================]
[ Run Time : 4 Hr 6 Min 14 Sec ]
[ Exp Gained : 166767 ]
[ Loads Completed : 160 ]
[ Lobster Ate : 65 ]
[ Pouches Repaired : 0 ]
[ Breaks : 1 ]
[======================================]
[ ZMI-Extreme 1.71 ]
[======================================]
Switch to 1.72, I haven't gotten the mining symbol error yet in this version.
Ashihtaka
03-17-2012, 08:05 PM
forgot about 1.72, hopefully it will run as long as well, i'll give it a go now.
Imanoobbot
03-17-2012, 08:27 PM
forgot about 1.72, hopefully it will run as long as well, i'll give it a go now.
Sometimes it clickes the Mining simbol instead of the Prayer Simbol. And Sometimes it runes not to the ledder, then it runs over the hunter spots and just keeps standing over there.
wister1
03-17-2012, 08:42 PM
97 now, yay!
Flight
03-18-2012, 12:36 AM
Yeah that Mining symbol, I'm not sure if anything was changed about it in V1.72. Today I'll be back to working on custom SPS maps to, once and for all, correct V1.75, so keep your fingers crossed.
Also just as a reminder, should any of you hit 99 Runecrafting using the script please do post here! You don't have to post a picture or anything, just make a post if you'd like. :) (I'm personally under 400k until 99) :thumbsup:
Ashihtaka
03-18-2012, 06:49 AM
Early grats on your 99, and I just realized you make the most useful scripts for public users! (Heavy-rodder, zmi rcer, granite miner, and probably others I have yet to discover). Just wanted to thank you for that. got me from 70-80 fishing, 75-85 runecraft, and now going to start your miner.
lorenzo
03-18-2012, 10:11 AM
flight when i run the scripts it work for a few minutes but later it wont go down the ladder u know how i can fix this thanks
Imanoobbot
03-18-2012, 10:21 AM
flight when i run the scripts it work for a few minutes but later it wont go down the ladder u know how i can fix this thanks
You have to use v. 1.72 . It is running flawless.
newy1
03-18-2012, 11:41 AM
It goes to the hunter spot quite often. I'm running 1.72.
Imanoobbot
03-18-2012, 11:53 AM
It goes to the hunter spot quite often. I'm running 1.72.
http://i44.tinypic.com/rlkepw.png
You see this arrow on the right site of my simba. Normally if I start Simba up its in the middle. I put it a litle bit higher and now it´s running since 2 hours without any bug or missklick. Btw. I did not helped the bot to solve any problem. I just let it run and watch every 30minutes if its running anymore. I dont got the problem with the mining simbol too. Running on v. 1.72 atm
FlyingMonkey
03-18-2012, 01:28 PM
Hi guys
First off - My script isn't telling me exp's - Just stays on '-1' with no error..
And all of a sudden it's stopped praying? It was working perfectly before but now it won't pray at all or even go to the altar.I've tried everything to get it praying, but it won't work. I can't script at all, so I have no idea what to do.
Your help would be greatly appreciated. <3
Yes, I'm on 1.72
PS. I'm on Curses.
Ashihtaka
03-18-2012, 01:39 PM
Hi guys
First off - My script isn't telling me exp's - Just stays on '-1' with no error..
And all of a sudden it's stopped praying? It was working perfectly before but now it won't pray at all or even go to the altar.I've tried everything to get it praying, but it won't work. I can't script at all, so I have no idea what to do.
Your help would be greatly appreciated. <3
Yes, I'm on 1.72
PS. I'm on Curses.
make sure prayer is set to 'True' and try setting the priority bar to max, as mentioned above.
FlyingMonkey
03-18-2012, 01:58 PM
Wow i feel quite embarrassed. Didn't realise it was on false.
Thank you for that.
By the way, I know I'm new, but if anyone could donate their time, or wants to have an 'apprentice' scripter, I would love to learn. I know there are tutorials and things, but it's nice also to have interaction.
Only if you feel like it'd be nice for you :)
Imanoobbot
03-18-2012, 02:00 PM
make sure prayer is set to 'True' and try setting the priority bar to max, as mentioned above.
I have set Prayer to ´False`and its running now since 4hours and 30minutes ( 1 20minutes break) without any help from me.
Zyzolol
03-18-2012, 03:04 PM
since 1.72, I am getting some odd behavior such as; error: "Failed to find symbols, attempting to TPA-Walk"
and
After banking, it sometimes chooses to try to run the 'Longer' of the two path's, after having ran some distans in the Longer path, it runs back and run the shorter path.
...anyone?
Apart from that it's running quite decent @ about 53k/h
Flight
03-18-2012, 04:34 PM
since 1.72, I am getting some odd behavior such as; error: "Failed to find symbols, attempting to TPA-Walk"
and
After banking, it sometimes chooses to try to run the 'Longer' of the two path's, after having ran some distans in the Longer path, it runs back and run the shorter path.
...anyone?
Apart from that it's running quite decent @ about 53k/h
The first message you're getting "Failed to find symbols ect..." that's normal. The above ground walking to the ladder is done through locating the Runecrafting or Prayer Altar symbols on the MM. If they're found, the script clicks there (basically where the ladder is), if not you'll get that message telling you that the symbols were not found on the map, so instead the script will TPA walk to that area, or atleast as close as it can get.
The second problem you're having is just a slip-up with SPS (color walking system). The script always corrects itself, it's nothing to worry about, it only makes you look dumb for a few seconds. :p
Not to worry though, both issues are dealt with in V1.75.
Austintheman
03-18-2012, 04:37 PM
To add on to that, sometimes it gets the 'ran out of essence' message, but I still have essence and all other supplies.
Nevertheless, it ran smoothly all throughout BXPW, so thank you Flight! 92-94 RC :D
Zyzolol
03-18-2012, 04:44 PM
Not to worry though, both issues are dealt with in V1.75.:wub:
Andres
03-18-2012, 07:36 PM
To add on to that, sometimes it gets the 'ran out of essence' message, but I still have essence and all other supplies.
Nevertheless, it ran smoothly all throughout BXPW, so thank you Flight! 92-94 RC :D
92-94 in three days? That's awesome!
Jubbington
03-18-2012, 07:48 PM
It runs fine for a couple of minutes but then after those minutes pass by it goes to hunter spot and it stays there forever
running 1.72
Austintheman
03-18-2012, 08:19 PM
92-94 in three days? That's awesome!
I was about half way into the level, so yes :D
benjamin779
03-19-2012, 04:08 AM
Running 1.72. Wow! Completely blown away with how good this is! Thank you so much Flight! Hopefully one day I will be able to make something like this.
newb cheater
03-19-2012, 04:11 AM
Version 1.75 is running smoothly
Only thing that is when walking from bank, the first few steps are a little slow. Aside from that, no bugs found so far. No more stuck at mining area and does not really mess up by going into the long path.
Great work!
|====================================|
| ~ SRL ~ |
| Randoms Report |
|------------------------------------|
| |
| |
|------------------------------------|
|====================================|
[=======================================]
[ ZMI-Extreme 1.75 ]
[ by Flight ]
[=======================================]
[ Run Time : 1 Hr 23 Min 57 Sec ]
[ Exp Gained : 68403 ]
[ Loads Completed : 63 ]
[ Monkfish Ate : 7 ]
[ Pouches Repaired : 2 ]
[ Breaks : 0 ]
[=======================================]
[ ZMI-Extreme 1.75 ]
[=======================================]
NZ John
03-19-2012, 04:21 AM
Version 1.75 is running smoothly
How did you get 1.75?
Flight
03-19-2012, 04:47 AM
Version 1.75 is running smoothly
Only thing that is when walking from bank, the first few steps are a little slow. Aside from that, no bugs found so far. No more stuck at mining area and does not really mess up by going into the long path.
Great work!
|====================================|
| ~ SRL ~ |
| Randoms Report |
|------------------------------------|
| |
| |
|------------------------------------|
|====================================|
[=======================================]
[ ZMI-Extreme 1.75 ]
[ by Flight ]
[=======================================]
[ Run Time : 1 Hr 23 Min 57 Sec ]
[ Exp Gained : 68403 ]
[ Loads Completed : 63 ]
[ Monkfish Ate : 7 ]
[ Pouches Repaired : 2 ]
[ Breaks : 0 ]
[=======================================]
[ ZMI-Extreme 1.75 ]
[=======================================]
That's what I like to hear. I could throw in some more points near the beginning of the path to speed that up.
How did you get 1.75?
I asked him to test it with me.
benjamin779
03-19-2012, 04:57 AM
Flight, do you mind if you let me use 1.75 to run tonight? I got 150k pure essence to use. Thanks.
Flight
03-19-2012, 05:12 AM
V1.75 seems to be functioning correctly now. Let me do a quick modification to the altar path and I'll upload it to the OP.
http://i.imgur.com/D4sfB.png
benjamin779
03-19-2012, 05:15 AM
Alright, Thanks for all the hard work and time you put into these free scripts Flight!
benjamin779
03-19-2012, 05:48 AM
Flight, This is a suggestion and I'm not sure if you are able to do it but if you can great. When your character is resting get it to turn off prayer to save prayer points? Not sure if it will change much but then again... just a suggestion! :)
bayeasy
03-19-2012, 05:51 AM
i don't get how to set it up
bayeasy
03-19-2012, 06:36 AM
script fails at taking out the runes it needs for teles and opening bank
Flight
03-19-2012, 06:54 AM
Flight, This is a suggestion and I'm not sure if you are able to do it but if you can great. When your character is resting get it to turn off prayer to save prayer points? Not sure if it will change much but then again... just a suggestion! :)
Alrighty, I think I could do that. I'm sure Daniel couldn't. (+1 for Flight) :spot:
script fails at taking out the runes it needs for teles and opening bank
These runes should already be in your inventory. Take another look at the OP and read the instructions carefully.
Daniel
03-19-2012, 07:01 AM
I just realized you make the most useful scripts
Yeah, but they aren't that great! :p
The first message you're getting "Failed to find symbols ect..." that's normal. The above ground walking to the ladder is done through locating the Runecrafting or Prayer Altar symbols on the MM. If they're found, the script clicks there (basically where the ladder is), if not you'll get that message telling you that the symbols were not found on the map, so instead the script will TPA walk to that area, or atleast as close as it can get.
Horrible scripter.
The second problem you're having is just a slip-up with SPS (color walking system). The script always corrects itself, it's nothing to worry about, it only makes you look dumb for a few seconds. :p
Don't lie, it's your fault! You know it!
Not to worry though, both issues are dealt with in V1.75.
Highly doubt that ;P
Running 1.72. Wow! Completely blown away with how good this is! Thank you so much Flight! Hopefully one day I will be able to make something like this.
It isn't that hard.. That's why Flight did it! :p
V1.75 seems to be functioning correctly now.
Lies.
Flight, This is a suggestion and I'm not sure if you are able to do it but if you can great. When your character is resting get it to turn off prayer to save prayer points? Not sure if it will change much but then again... just a suggestion! :)
Doubt he'd be able to.
Alright, Thanks for all the hard work and time you put into these free scripts Flight!
He doesn't put in much time. I guarantee it ;)
script fails at taking out the runes it needs for teles and opening bank
Of course it does. It's Flight!
Alrighty, I think I could do that. I'm sure Daniel couldn't. (+1 for Flight)
Oh you know I could baby!
(I believe that's +8 for Daniel? :D)
bayeasy
03-19-2012, 07:02 AM
Alrighty, I think I could do that. I'm sure Daniel couldn't. (+1 for Flight) :spot:
These runes should already be in your inventory. Take another look at the OP and read the instructions carefully.
i have many times, its making me mad, when it banks it clicks the bank inv button thus banking my runes for teles and the bank
Flight
03-19-2012, 07:20 AM
i have many times, its making me mad, when it banks it clicks the bank inv button thus banking my runes for teles and the bank
Yeah, take a look near the top of the screen, you should see one of the settings named "MaxBank". This is where you tell the script if you're using the MaxBank method or standard banking. By default it's set to true (use MaxBank), so if you don't have a maxed bank account set this to False and run the script.
Look how helpful I am Daniel. (+1/2 Flight)
bayeasy
03-19-2012, 07:22 AM
Yeah, take a look near the top of the screen, you should see one of the settings named "MaxBank". This is where you tell the script if you're using the MaxBank method or standard banking. By default it's set to true (use MaxBank), so if you don't have a maxed bank account set this to False and run the script.
Look how helpful I am Daniel. (+1/2 Flight)
found it, ill test now, how long will 90 rc take?
and how safe is this
Flight
03-19-2012, 07:25 AM
i dont see it
Screen, agh why did I write 'screen'? Top of the Script.
MaxBank = True; //Using the Max-bank method?
Change True to False.
bayeasy
03-19-2012, 07:28 AM
Screen, agh why did I write 'screen'? Top of the Script.
MaxBank = True; //Using the Max-bank method?
Change True to False.
done, how long will 90 take? and is it safe? also do you make profit, and can i trust this in full gano, and whats a popular world for ZMI
rsdanny
03-19-2012, 09:11 AM
done, how long will 90 take? and is it safe? also do you make profit, and can i trust this in full gano, and whats a popular world for ZMI
Getting 90 depends on the lvl you are now, for me at 85 it is 40k/hour with 3 pouches. If you don't have a high HP lvl or a reasonable def lvl set the "EatAt" at about 70-80% to be safe, as another safe you can use a ring of life but the script stops when it uses the ring. It's a minor profit if you gain one. Risking full gano is your choice, but i advice black d'hide + prayer. And at last... Don't use popular worlds as people might try to speak to you.
Danny
shanicey0911
03-19-2012, 09:48 AM
Will be testing this shortly :) also at 97 rc is it sure fire I'll be getting over 50k xp an hour without lag and such?
Craimforce
03-19-2012, 12:44 PM
im getting 17k/h without lagg. and im 74 rc.
v1.75 just ran 5 hours got 92k Xp.
This isnt normal isnt it?
Imanoobbot
03-19-2012, 01:04 PM
Yeah, but they aren't that great! :p
Horrible scripter.
Don't lie, it's your fault! You know it!
Highly doubt that ;P
It isn't that hard.. That's why Flight did it! :p
Lies.
Doubt he'd be able to.
He doesn't put in much time. I guarantee it ;)
Of course it does. It's Flight!
Oh you know I could baby!
(I believe that's +8 for Daniel? :D)
Are you serious? ;) Why are you hating on Flight. He´s a good scripter and doing this all for free. He gets lots of respect for it. Maybe you can script better then him, thats nice for you but wont give us the option to train RC with 40k/h for free. So dont hate on him.
newb cheater
03-19-2012, 01:19 PM
Another progress report for version 1.75.
http://i1186.photobucket.com/albums/z375/poolermas/proggy1.jpg
Flight
03-19-2012, 01:21 PM
Are you serious? ;) Why are you hating on Flight. He´s a good scripter and doing this all for free. He gets lots of respect for it. Maybe you can script better then him, thats nice for you but wont give us the option to train RC with 40k/h for free. So dont hate on him.
Lol it's fine mate, Daniel and I are having a... friendly war. He can only hope to live up to my standard. :garfield: Gonna take that, Daniel?
Have you tried out V1.75 yet? I'm hoping it'll be the last version, because I'm just about to hit 99 Runecraft and I'll probably lose interest in this script.
benjamin779
03-19-2012, 02:24 PM
Did 10k pure ess last night, stopped due to random. (officially in love)
Imanoobbot
03-19-2012, 03:15 PM
Lol it's fine mate, Daniel and I are having a... friendly war. He can only hope to live up to my standard. :garfield: Gonna take that, Daniel?
Have you tried out V1.75 yet? I'm hoping it'll be the last version, because I'm just about to hit 99 Runecraft and I'll probably lose interest in this script.
Im thinking lots about a FrostDragon Script in the last time. Maybe that would be a good next project? Just bought some books about Java. Hopefully i´ll get my first mining script running in the next days ^^
But should be quite hard cause of walking, Bob, intelligent fighting and others.
Haha ;) but you would win your friendly war with Daniel (except his making a better script)
Prophecyy
03-19-2012, 09:49 PM
Can someone link me the 0_1 file? I'm failing to find it anywhere haha :(
Also i'm getting the error;
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]
Anyone can help plawx?
polska94
03-19-2012, 10:09 PM
getting around 30k xp/hour at lv 56 rc, is that a normal rate?
Hazzah
03-19-2012, 10:49 PM
I'm having a problem, might just be a problem with body runes or something. I have updated SRL and have set up the script according to the guide by big man 1. But after it finishes the first trip, it will just open the "pay with runes" thing and it will hover over the edges instead of choosing body runes.
Is anyone else having this problem or am I just messing something up somewhere?
EDIT: Noticed it is from lagg, my internet must be being a POS right now because it is happening quite a bit in other areas of the script.
illester
03-19-2012, 11:20 PM
v1.75 working horrible for me, doesnt withdraw airs when repairing and doesnt deposit crafted runes. v1.71 worked pretty much flawless but for some reason had a really hard time repairing pouches (after 5-10 runs and waits 5-10mins in bank).
snowfire
03-20-2012, 01:56 AM
im blind or dumb possible both but wheres the alter picture?
NZ John
03-20-2012, 02:11 AM
im blind or dumb possible both but wheres the alter picture?
You don't need it in 1.7+
Flight
03-20-2012, 02:15 AM
I almost forgot to upload my 99. :p I'll add myself to the list now. :)
http://i.imgur.com/t8jWZ.png
snowfire
03-20-2012, 02:19 AM
You don't need it in 1.7+
ooh good to know thanks
sickle
03-20-2012, 02:20 AM
Is this only for p2p?
Hazzah
03-20-2012, 02:46 AM
I'm st having the same issue and now im fairly certain it isnt because of lagg, when the script goes to open the bank and it is supposed to select the rune to pay with it will hover over the edge of the pay screen and continually bounce around. is there some failsafe that is not working? because this cuts the xp/hr down a good 10k+
Also, gratz flight on 99 runecrafting, im hoping to use this script for 99 myself (legited 88 and was the worst thing ever!)
Flight
03-20-2012, 03:00 AM
I'm st having the same issue and now im fairly certain it isnt because of lagg, when the script goes to open the bank and it is supposed to select the rune to pay with it will hover over the edge of the pay screen and continually bounce around. is there some failsafe that is not working? because this cuts the xp/hr down a good 10k+
Also, gratz flight on 99 runecrafting, im hoping to use this script for 99 myself (legited 88 and was the worst thing ever!)
I wish I knew what caused it. I've seen it happen before and I thought it was something to do with repairing a rune pouch and withdrawing more essence afterwards, but apparently not. For me it was rare to happen, does it happen often for you?
SantaClawZ
03-20-2012, 06:31 AM
Getting this every time I start the script
Error: Exception: Access violation at line 89
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, 3]
Defanic
03-20-2012, 09:36 AM
I find that occasionally the bot decides to stand still for about a minute after banking for no apparent reason. Tempted to paste the old walk code into 1.75 see if that'll fix it.
madred360
03-20-2012, 10:54 AM
Great bot will post a proggie at 4 hrs im sitting at 35-40k exp/h
benjamin779
03-20-2012, 01:53 PM
Just woke up today, had 113 loads done, and i was dead standing in varrock square. ?
benjamin779
03-20-2012, 01:55 PM
Lost all pouches, 28k law runes, 17k astrals, mostly pissed off about pouches
Flight
03-20-2012, 02:03 PM
Lost all pouches, 28k law runes, 17k astrals, mostly pissed off about pouches
What are your eating settings at? (Food & EatAt) I believe this is because of SPS only finding part of the walking path and walking part of the way only. It looks like I'll have to put a critical HP level checker within the walking function to be checked constantly. Should your player drop below a certain health you'll be teleported out and logged out.
I'm sure sorry it happened Benjamin. The pouches are very easy to re-obtain, they cost very little from the Runecrafting guild. That's quite a handful of runes down the drain though. :(
Horatio
03-20-2012, 02:26 PM
I almost forgot to upload my 99. :p I'll add myself to the list now. :)
http://i.imgur.com/t8jWZ.png
Congratulations Flight :)
I'm almost on 92, from 77 with this script. Hoping to achieve 99 also :)
snowfire
03-20-2012, 04:38 PM
working perfectly aside the paint :P
Where is the IMG file? i cant find it anywhere and im really confused..
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.