View Full Version : P1nky's PestController
JuKKa
02-20-2012, 02:23 PM
I looked thorught the script, i found alot of bad standards ALOT of infinite loops, bad coding practice ALOTof unnessecary stuff.
Procedure FightPests; //2305818 green pest
var //2701962 = red pest
Z, R, CTS: Integer; //5051472 = PURPLE PEST POP UP
begin
Status('Fighting Pests');
If not (EFindObjCustom(x,y,['hifter','Shifte','Shifter','hift'], [2108184,5051472,3228504,4942983], 3)) Then
begin
if (counter>1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end else
Mmouse(x,y,0,0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x,y,0,0,False);
ChooseOption('ttack');
end else
begin
Mouse(x,y,0,0,true);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end else
wait(2000);
Report;
end;
end;
and what is this? Has to be the ugliest procedure i've seen in a long time, nothing personal but i wont be using this script, it screams bannage.
1200 lines for a pestcontroll script, it enters the boat and fights middle? I could do this in 300 lines...
brentrobbins
02-20-2012, 03:00 PM
thank you for your invested time :) , i will test the E version on the highest level lander and see how it runs and hopefully post a progress report
brentrobbins
02-20-2012, 03:14 PM
it seems to be working fine so far :)
boobies
02-20-2012, 07:12 PM
awesome script, works perfectly and hours on end for me :D
P1nky
02-20-2012, 07:40 PM
I looked thorught the script, i found alot of bad standards ALOT of infinite loops, bad coding practice ALOTof unnessecary stuff.
1200 lines for a pestcontroll script, it enters the boat and fights middle? I could do this in 300 lines...
Thank you for your feedback JuKKa, tbh reading this post made me feel embarrass and ashamed of myself. I will try to improve myself so I won't have to see a comment like this in the future.
Also, I just made this script to 600 lines, by taking out the unnecessary DDTMs for portals.
-Cheers.
kunzy
02-21-2012, 06:38 AM
works great pinky keep up the great work! hows the sw bot going? will it only be for members??
K1ller
02-21-2012, 06:40 AM
every1 seems to like this script :S im having problems on veteran boat, it plays 1-2 game then runs to the intermediate boat and goes in there and sometimes logs out some help pl0x
,
Kajutsky
02-21-2012, 06:49 AM
is there an attack portal option?
JuKKa
02-21-2012, 09:56 AM
you have alot of "missing" begins for example
procedure LeftSpot;
begin
MakeCompass('S');
LeftGate := Left;
if DTMRotated(LeftGate, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
end;
for example this would click 0, 0 (upper left corner) if it didnt find the DTM, Alot of other functions do this aswell.
and
Function Range : Boolean;
begin
If (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end else
Result := False;
Writeln('False');
end;
this would print both true and false in the debug box, if it found the color.
the infinite loops this one is killer, i would not wish my main to be caught in this.
Procedure AttackWhite;
begin
repeat
if FindObj(x, y, 'ortal', 13217188, 15) then
MMouse(x,y,0,0);
wait(Random(100) + 20);
Mouse(x,y,0,0,false);
ChooseOption('ttack');
until(false);
end;
alot of improvement but you will get there.
sorrry if i sounded a bit harsh in my earlier post.
xtrapsp
02-21-2012, 10:01 AM
guys it does work, if it doesn't attack anything it will kick you out and start over. I have 2 sets of void now cause of this.
as for what jukka said, your a good guy for pointing these out. As harsh as it is it will allow p1nky to improve.
p1nky i'm not a great scripter but like I said in the pm need help with anything? Hit me up :)
K1ller
02-21-2012, 12:26 PM
I dont get that changes u told me i shud delete them from the script?
MattL191
02-21-2012, 01:13 PM
Great script. Got my set of voids from this. One of the most used scripts ive seen to. i was playing last night late and saw this script running could tell by where they stoped. atleast 10people using it. good job man.
Nemesis3X
02-21-2012, 01:24 PM
Great script. Got my set of voids from this. One of the most used scripts ive seen to. i was playing last night late and saw this script running could tell by where they stoped. atleast 10people using it. good job man.
Ya, You're Right. Continu like this.
P1nky
02-21-2012, 01:29 PM
you have alot of "missing" begins for example
procedure LeftSpot;
begin
MakeCompass('S');
LeftGate := Left;
if DTMRotated(LeftGate, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
end;
for example this would click 0, 0 (upper left corner) if it didnt find the DTM, Alot of other functions do this aswell.
and
Function Range : Boolean;
begin
If (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end else
Result := False;
Writeln('False');
end;
this would print both true and false in the debug box, if it found the color.
the infinite loops this one is killer, i would not wish my main to be caught in this.
Procedure AttackWhite;
begin
repeat
if FindObj(x, y, 'ortal', 13217188, 15) then
MMouse(x,y,0,0);
wait(Random(100) + 20);
Mouse(x,y,0,0,false);
ChooseOption('ttack');
until(false);
end;
alot of improvement but you will get there.
sorrry if i sounded a bit harsh in my earlier post.
To be honest, not trying to cover anything up, check the code out now. I deleted whatever is not being used; Also, the code you have posted up was being tested (such as just to see if the DDTMs were working, and if it can find the portal) and it was not being used anywhere in the script.
But, I do understand the 'FightPests' procedure is quite messy and I shall work on it and a lot of other procedures. Also, add more 'begins'.
Thank You Mate & No problem Mate, I actually appreciate you being straight-forward. :)
emopenguin91
02-21-2012, 04:54 PM
[E] works great, been running it non stop since it came out (: my longest one with it so far is 7 hours which i did last night... thanks so much for making a free pc bot
akash22
02-21-2012, 11:14 PM
is this a legit 1 ? not trolling i srsly need 1 but some dumbass posted this bot is hacked it so pls respond.
weequ
02-21-2012, 11:20 PM
is this a legit 1 ? not trolling i srsly need 1 but some dumbass posted this bot is hacked it so pls respond.If you download it from the first post it is safe. If you download anywhere else it might not be safe.
stevieisback
02-21-2012, 11:26 PM
Thanks bro got helm and gloves almost top then bottom full void:D melle void
siyao
02-22-2012, 01:34 PM
I started first game with this script, it goes flawless for now, I will give some comments later
K1ller
02-22-2012, 01:53 PM
Im still having problems trying to pc in veteran boat and it sometimes goes to the intermediate boat some1 help plz
Based God
02-22-2012, 03:55 PM
Can you make it so that if it gets off the middle, it doesnt just stand there. Maybe add something where the player can go back to the middle if he/she is outside of it
P1nky
02-22-2012, 04:22 PM
Can you make it so that if it gets off the middle, it doesnt just stand there. Maybe add something where the player can go back to the middle if he/she is outside of it
I'll work on that in version [F]
siyao
02-22-2012, 04:35 PM
It works perfect for me, nice job. running 6 hours without error....
boozer
02-22-2012, 07:54 PM
lmao 4+ hours and 4 commendations?! plz fix it up some?
fatal_one
02-22-2012, 09:50 PM
Works fine for me. Ive been botting it straight for 5 days with hour or so breaks
vade700
02-22-2012, 11:15 PM
Works great, have gotten about 300 PC points so far. Thanks for the time and hard work you have put into this. Means a lot.
stevieisback
02-22-2012, 11:50 PM
I got full void melle And so many people in middle I dont wanna be rude but can you make it attack other monsters too I dont care for portals and 1 tiny bug in E when Im In vetran it sometimes put me in inti boat Just helping out so you can fix but got full void in 2 days cause this many thanks!!
kuiper
02-23-2012, 01:29 AM
Doesn't join a pest control world.
alypta
02-23-2012, 03:22 AM
You should make it go to the portals and kill monsters, i've played many hours of this, but it rarely gets 500 damage, if you could make it go to the portals and kill it'd be much better, thanks. also theres lots of HIGH levels in the middle that always kill the monsters in one hit which decreases our chances of getting the 500 damage needed. thanks great script!
monkeyninjo
02-23-2012, 11:59 AM
Would be great if this script attacked the portals or just random NPCs that spawn out of the portals because atm the script is losing a lot of possible commendations just because it hasn't reached the 500 damage mark, because the shifters die before the script realises they're there.
CreaShun
02-23-2012, 02:07 PM
Yep, Everything mentioned above, Just needs to do a little bit more walking around and killing and it will be an insane script, losing alot of potential points just because it stands there instead of walking 10 ft and killing monsters for 500HP
anth_
02-23-2012, 04:40 PM
Very nice script, going to try and get the 6300 points I need for 99 strength :D As said, it sometimes goes to the experienced lander even when you go to the veteran. Also, it would be better to spam click the plank onto the larder as you often have to wait a small bit for a game to start otherwise.
Thank you for your hard work :)
fatal_one
02-23-2012, 05:30 PM
p1nky, scripts working better than ever, much faster in getting points, runs longer, i cant even begin to tell you how much HP exp im getting. Keep up the good work we all love the script!
Don Tonberry
02-23-2012, 07:29 PM
i find if i leave it in the vet boat it does a few rounds then runs to the intermediate and cus of this it doesnt get any commendations, is there anything i can do about this? and is anyone else having this problem?
anth_
02-23-2012, 07:43 PM
i find if i leave it in the vet boat it does a few rounds then runs to the intermediate and cus of this it doesnt get any commendations, is there anything i can do about this? and is anyone else having this problem?
I have this too, sure P1inky will fix it
P1nky
02-23-2012, 10:07 PM
I have this too, sure P1inky will fix it
I made this for novice, although Is intermediate/advance same as novice boat?
anth_
02-23-2012, 11:02 PM
I made this for novice, although Is intermediate/advance same as novice boat?
It's just a misunderstanding in the script where the compass goes south and the camera goes down - It just misses the gangplank (veteran) and clicks near the other boat (intermediate), so it walks there instead. Would be much appreciated if you could fix it - you get 4 points per game @ veteran :)
monkeyninjo
02-23-2012, 11:03 PM
I made this for novice, although Is intermediate/advance same as novice boat?
Yes, the script treats the Veteran and Intermediate boats the same as novice. I just find that it doesn't reach 500 damage a lot of the time.
joker123
02-24-2012, 05:41 AM
how i let it login automatic with my pass and user? anyone help
P1nky
02-24-2012, 07:48 AM
how i let it login automatic with my pass and user? anyone help
I don't understand what you mean?
If it is not logging in, than fill in the 'declareplayerz'.
brentrobbins
02-25-2012, 12:06 AM
great script, runs very smooth, only sometimes does it click elsewhere by mistake or finds another gangplank isntead of the lander.....i use this for the high level lander. I know the colors of all the planks are the same, but maybe some kind of fail safe to keep you outside of the correct lander would allow a person to select which lander they would like to constantly use, just a suggestion, i dont think that would be a very simple feat, but could be a future idea. Otherwise works very long very well. 9.2 outta 10
Fwd Motion
02-25-2012, 06:15 AM
I was having trouble with it trying to click the gangplank.. I noticed in the script that you are using "isuptext" for the gangplank, when you should use "waituptext", because if you do isuptext, then it will click as soon as isuptext is there, but if the mouse is moving around really fast, sometimes it will think that it is over the gangplank, but in reality, it just moved the mouse over it, so it just clicks some random area. But Waituptext will move the mouse to the area, wait for the uptext. I used WaitUpText with a 1 second wait time and it boards the lander almost flawlessly now... I also made it to where it wouldn't make the camera angle low, that way it won't even see the other gangplanks.
'Toxin
02-25-2012, 06:37 AM
how i let it login automatic with my pass and user? anyone help
I just died laughing.
Fwd Motion
02-25-2012, 09:47 AM
i just died laughing.
rofl!
P1nky
02-25-2012, 05:35 PM
not working well for me :'(
What is wrong?
bayeasy
02-25-2012, 05:35 PM
Working pretty flawless will post a proddy soon, only thing you should change is the spam clicking and the world, it doesnt join a PC world.
P1nky
02-25-2012, 05:38 PM
Working pretty flawless will post a proddy soon, only thing you should change is the spam clicking and the world, it doesnt join a PC world.
For the SpamClicking, declare 'false' instead of 'true' for Fast500 (located under the const), it will slow it down, although you may not get all your 500 exp.
And I made a join quick world feature for next update :D
bayeasy
02-25-2012, 05:42 PM
For the SpamClicking, declare 'false' instead of 'true' for Fast500 (located under the const), it will slow it down, although you may not get all your 500 exp.
And I made a join quick world feature for next update :D
sounds good, im getting around 3000 exp per round
P1nky
02-26-2012, 12:47 AM
sounds good, im getting around 3000 exp per round
That's crazy good Mate, a lot of people using this script, trouble getting their 500.
kunzy
02-26-2012, 02:13 AM
great still working never let me down =D
brentrobbins
02-26-2012, 03:58 AM
Id like to report a problem with the camera angle. When you change the camera angle to as low to the ground as possible, it makes the script more likely to click the wrong area and run off far away from the lander. The bot is set to lower the camera angle and then search for the plank and sometimes it will lower the angle and this will block the plank or the bot will click far in the distance on something similar brown and run far away from the boat. I feel like this could be completely avoided if the camera angle was set not to rotate all the way down when searching for the gangplank. I tried removing the code that did this part of the procedure myself but i could not quite get it to avoid doing that. The older versions kept the camera angle way over the player looking down and this was optimal for continuously entering the same boat and not running anywhere. I hope this will help you with your future versions.
Edit: I edited the code to where it would not change the camera angle when searching for the plank and now i think it will work just fine, but i have also been having an issue where the bot will run my character to the far SW corner of the void area and sit there since there are no shifters to attack. This has only started happening today, and occurred before i began messing with the code, so it must be a change to the game, and also i downloaded the script new to see if it still occurred and it does it every time, and i cannot get points while it does this, i hope you can find a solution.
Edit: I believe it would have something to do with the DTM you have set up for Spot2
Edit: sorry for all the edits, but i solved the problem by replacing the DTM for step 2 with a DTM of step 2 of one of your older versions (D to be specific) and this made (E) work just fine. I guess that may mean there is something a bit wrong with the Step two of version E im not completely sure. I really hope this can help you out some. Just ask if you have any questions about what i am trying to say if it wasnt written very understandably.
lkymn
02-26-2012, 05:58 AM
I've been watching it for a few minutes, done a whole match so far and it's doing very well.
Only problem is there's too many people in the middle killing shifters, but that's not really the bot's fault.
It had trouble crossing the plank because of the angle of the camera getting the people's name in the way of the plank, might want to fix that :x
Snooze
02-26-2012, 10:43 AM
Doesn't click the boots :o
rebeltjeh
02-26-2012, 04:12 PM
Howmuch pc points u guys get/hr (in 100+ boat) ?
average
brentrobbins
02-26-2012, 04:21 PM
Howmuch pc points u guys get/hr (in 100+ boat) ?
average
I generally get 400 commendations per 6 hour run, sometimes less sometimes more, depending on how the players that youre playing with do as far as winning. So about 100 wins overall, which would estimate maybe 170 or 200 games overall played. Again, this is with the highest level lander
rebeltjeh
02-26-2012, 04:26 PM
so basicly it's not viable to run this script for experience?
brentrobbins
02-26-2012, 04:27 PM
I've been watching it for a few minutes, done a whole match so far and it's doing very well.
Only problem is there's too many people in the middle killing shifters, but that's not really the bot's fault.
It had trouble crossing the plank because of the angle of the camera getting the people's name in the way of the plank, might want to fix that :x
lkymn you can stop the script from lowering that camera angle all the way down and avoid the problem completely by removing line KeyDown(VK_Down); from procedure Plank. This will stop the lowering of the camera without effecting anything else. If you have any questions about this simply PM me. This applies to anyone that would like to stop the script from lowering the camera angle.
brentrobbins
02-26-2012, 04:37 PM
so basicly it's not viable to run this script for experience?
well it would depend on the level your skill is at, but generally speaking its best used for getting voidknight and prayer xp. I personally use it for prayer experience and go up a level every day, which is kind of slow, but considering prayer is 200m for lvl 99. I think its probably the best prayer training that is free. As for other combat skills, its still viable training because it doesnt require food or worry of dying, you can wear full voidknight get bonus combat damage and use prayers and specials during the games, so you can train your combat during the games, and also get 400 commendations per 6 hours.
At lvl 83 strength, you can spend commendations to get 385xp per, if you buy the xp in sets of 100 you get a 10% bonus. This would then be equivalent to spending 440 commendations on strength. 440 X 385 = 169,400 . for 6 hours, 169,400 / 6 = 28,233 xp per hour, not including the combat xp you get from actually doing damage within the game.
Also, this is helpful for people who wish to level their skills, and not level their hitpoints too much to remain at a lower level, such as pures. (note, your hitpoints will still be leveled some, just not nearly as much)
Triblouge
02-26-2012, 04:43 PM
sometimes it will hover the mouse over a tree stump as if it were one of the pests.
brentrobbins
02-26-2012, 04:52 PM
sometimes it will hover the mouse over a tree stump as if it were one of the pests.
This is a common problem with color bots, searching for something that has a specific color with tolerances to that color will sometimes result in the bot finding a different item with a very similar color within it. Just make sure that the brightness is all the way up and youre on fixed screen low detail in the graphics. I would say that the bot is finding the tree stump because of the height of them being similar to a shifter and possibly there is some yellow in the tree stump that resembles the yellow shifters. And since at times the bot is searching for colors that arent there because there are no shifters nearby, then it will find colors in other items that are the same. All in all, this shouldnt cause too much problem with the whole script as long as it doesnt constantly stand at the stump attempting to attack it and ignore everything else. Though this problem could be helpful in pinky's development of his newer version of the script.
helpbuyjtag
02-27-2012, 12:58 AM
Which one do I download ? a b c d e ?? :o
brentrobbins
02-27-2012, 01:16 AM
Which one do I download ? a b c d e ?? :o
E is the most recent version
helpbuyjtag
02-27-2012, 04:41 AM
Oh thanks haha
qeeked
02-27-2012, 04:44 PM
Anyone know why alot of times my guy will run off the middle platform to the front gate and just stand there?
P1nky
02-27-2012, 08:56 PM
Anyone know why alot of times my guy will run off the middle platform to the front gate and just stand there?
and weren't you the one saying my script keylogged you?
bobowns
02-27-2012, 09:22 PM
Thanks dude i ran it for 2 hours w/o problems
raptorstewie
02-27-2012, 10:36 PM
:/ um, it says "SRL Compiled in 0 msec
SMART Initialized.
Loaded: Server 17, Members: False, Signed: True, Super Detail: False. help anyone?
Im trying to get it to do veteran but keeps going to intermediate, do I need to change something in script? Or is it just made for intermediate?
brentrobbins
02-28-2012, 12:35 AM
Im trying to get it to do veteran but keeps going to intermediate, do I need to change something in script? Or is it just made for intermediate?
well its not made for any boat specifically, its just that the planks are all the same color and the bot finds the other planks of other boats. I believe a solution to your problem would be to make it not change the angle of the camera so low, so it wont be able to see other planks and only the plank at the lander you stand at. If you go into the code and delete the line that says
keydown (vk_down) ; in the procedure named plank, and then move your camera angle looking straight down at the plank of your lander, then the script should work just fine and never have a problem of finding another landers plank instead of the one you start standing at. Any questions, ask me
well its not made for any boat specifically, its just that the planks are all the same color and the bot finds the other planks of other boats. I believe a solution to your problem would be to make it not change the angle of the camera so low, so it wont be able to see other planks and only the plank at the lander you stand at. If you go into the code and delete the line that says
keydown (vk_down) ; in the procedure named plank, and then move your camera angle looking straight down at the plank of your lander, then the script should work just fine and never have a problem of finding another landers plank instead of the one you start standing at. Any questions, ask me
Didn't need to tell me, but thanks. Was just seeing if it was for a certain one.
GOt it working now
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 27th, 2012 ||
||===========================||
Worked For 6 Minutes and 6 Seconds
Games Played 3
||===========================||
Now it sometimes gets stuck on how many points I have after game. =/
P1nky
02-28-2012, 07:00 AM
:/ um, it says "SRL Compiled in 0 msec
SMART Initialized.
Loaded: Server 17, Members: False, Signed: True, Super Detail: False. help anyone?
Wait couple mins.
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 27th, 2012 ||
||===========================||
Worked For 6 Minutes and 6 Seconds
Games Played 3
||===========================||
Now it sometimes gets stuck on how many points I have after game. =/
Elaborate please.
one1988
02-28-2012, 07:04 AM
hey p1nky using this to get me full Void now :)
Wait couple mins.
Elaborate please.
when I have enough for a void piece that msg pops up and it gets stuck.
P1nky
02-28-2012, 09:20 PM
when I have enough for a void piece that msg pops up and it gets stuck.
What message
bobowns
02-28-2012, 09:49 PM
Dunno what happened to the script but it stopped working after an hour now it just saved a screenshot to my desktop that says it died but its just stuck in the boat..i think jagex changed the colors or something cuz i tried 2 different scripts and none of em works for more than an hour
What message
erm like saying you have 900 points or w/e u got.
@other nah make sure u use like 70% cpu usage from bar on right
tomdingo95
02-28-2012, 10:03 PM
i start it, it runs off the boat but goes and stands somewhere random not on the platform, it stands north north east, please fix it really annoying running for 6 hours and 3 games won..
i start it, it runs off the boat but goes and stands somewhere random not on the platform, it stands north north east, please fix it really annoying running for 6 hours and 3 games won..
Yeah, its not clicking on planks anymore, its clicking on water or running out on the island.
Firec4pe
02-29-2012, 12:01 AM
Needs Faster Clicking since pests are dead before bot reacts
Firec4pe
02-29-2012, 03:02 AM
Running 'Almost' Fine after 3 Hours, 40 points[3hr], Reason because of Picture below, constantly just sits there spam clicking this tree stump.
http://i44.tinypic.com/2h6a8vd.png
Last Legend
02-29-2012, 04:05 AM
This script seems very attached to water and blue colors in general now, possibly off because of the game update, but I'm unsure.
Anubis
P1nky
02-29-2012, 05:16 AM
Just did a fast fix (fixed colors, better chance getting 500 now :) ), please test let me know:
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
FindNormalRandoms;
wait(Random(100) + 20);
FindLamp('Woodcutting');
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 901;
dtmMainPoint.y := 138;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 65535;
dtmMainPoint.Tolerance := 25;
dtmSubPoints[0].x := 901;
dtmSubPoints[0].y := 138;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 65535;
dtmSubPoints[0].Tolerance := 25;
dtmSubPoints[1].x := 902;
dtmSubPoints[1].y := 133;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2714760;
dtmSubPoints[1].Tolerance := 25;
dtmSubPoints[2].x := 907;
dtmSubPoints[2].y := 139;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2714760;
dtmSubPoints[2].Tolerance := 25;
dtmSubPoints[3].x := 901;
dtmSubPoints[3].y := 145;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2714760;
dtmSubPoints[3].Tolerance := 25;
dtmSubPoints[4].x := 896;
dtmSubPoints[4].y := 137;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2714760;
dtmSubPoints[4].Tolerance := 25;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
MakeCompass('S');
FindRandoms;
begin
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
procedure FreeDTMS;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeDTMS;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
Will make official release tomorrow after few more tweaks!
new one works good but spam clicks void(Not void guy anymore just full void armour)
CreaShun
02-29-2012, 01:43 PM
The script terminates when the player dies. Any fixes for that?
Awesome script btw:)
rebeltjeh
02-29-2012, 05:48 PM
The script terminates when the player dies. Any fixes for that?
Awesome script btw:)
Yes, dont die :D
Ashihtaka
02-29-2012, 07:44 PM
I will test the new script when I get home, but does that mean that jagex DID change the colours?
Amg... just what I wanted to come home too..
Status: \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 29th, 2012 ||
||===========================||
Worked For 6 Hours, 3 Minutes and 55 Seconds
Games Played 5
||===========================||
With your beta update. BTW.
(Oh nvm, i forgot to change some of the code, it went in the wrong lander thing)
bnorman93
03-01-2012, 11:45 AM
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]
bnorman93
03-01-2012, 11:46 AM
said something about fkey function highlighted when i tried to run the script
werder
03-01-2012, 02:55 PM
Proggies:
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 14th, 2012 ||
||===========================||
Worked For 11 Hours, 57 Minutes and 43 Seconds
Games Played 250
||===========================||
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 9th, 2012 ||
||===========================||
Worked For 9 Hours, 18 Minutes and 43 Seconds
Games Played 159
||===========================||
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 1st, 2012 ||
||===========================||
Worked For 6 Hours, 8 Minutes and 37 Seconds
Games Played 112
Won 71 Games
Lose 6 Games
||===========================||
||===========================||
||===========================||
Got 194 points
NextPlayer(False)
[simba]
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 4th, 2012 ||
||===========================||
Worked For 6 Hours, 12 Seconds
Games Played 107
Won 90 Games
Lose 8 Games
||===========================||
||===========================||
||===========================||
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 4th, 2012 ||
||===========================||
Worked For 6 Hours, 31 Seconds
Games Played 124
Won 159 Games
Lose 10 Games
Reward 44
||===========================||
||===========================||
||===========================||[/QUOTE]
nice, does everybody has same as me? "client token error" after like 3-6hrs?
it seems like you can run for 11 hrs a row
[simba]
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 4th, 2012 ||
||===========================||
Worked For 6 Hours, 12 Seconds
Games Played 107
Won 90 Games
Lose 8 Games
||===========================||
||===========================||
||===========================||
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 4th, 2012 ||
||===========================||
Worked For 6 Hours, 31 Seconds
Games Played 124
Won 159 Games
Lose 10 Games
Reward 44
||===========================||
||===========================||
||===========================||[/PHP]
nice, does everybody has same as me? "client token error" after like 3-6hrs?
it seems like you can run for 11 hrs a row[/QUOTE]
they added/had breaks taken.. If you have your account logout and sit in lobby for a while it kind've bypasses this I believe.
Holako
03-01-2012, 10:51 PM
I am 100 cb and it doesnt want to get in vetern boat
it goes to intermediate when i am standing next to the vetern one
any help?
I am 100 cb and it doesnt want to get in vetern boat
it goes to intermediate when i am standing next to the vetern one
any help?
Remove VK_Down in the "Plank" part of the script.
Just removed it quick, hope you don't mind P1nky.
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
FindNormalRandoms;
wait(Random(100) + 20);
FindLamp('Woodcutting');
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 901;
dtmMainPoint.y := 138;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 65535;
dtmMainPoint.Tolerance := 25;
dtmSubPoints[0].x := 901;
dtmSubPoints[0].y := 138;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 65535;
dtmSubPoints[0].Tolerance := 25;
dtmSubPoints[1].x := 902;
dtmSubPoints[1].y := 133;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2714760;
dtmSubPoints[1].Tolerance := 25;
dtmSubPoints[2].x := 907;
dtmSubPoints[2].y := 139;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2714760;
dtmSubPoints[2].Tolerance := 25;
dtmSubPoints[3].x := 901;
dtmSubPoints[3].y := 145;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2714760;
dtmSubPoints[3].Tolerance := 25;
dtmSubPoints[4].x := 896;
dtmSubPoints[4].y := 137;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2714760;
dtmSubPoints[4].Tolerance := 25;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
MakeCompass('S');
FindRandoms;
begin
wait(Random(650) + 500);
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
procedure FreeDTMS;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeDTMS;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
P1nky
03-01-2012, 11:18 PM
Remove VK_Down in the "Plank" part of the script.
Just removed it quick, hope you don't mind P1nky.
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
FindNormalRandoms;
wait(Random(100) + 20);
FindLamp('Woodcutting');
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 901;
dtmMainPoint.y := 138;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 65535;
dtmMainPoint.Tolerance := 25;
dtmSubPoints[0].x := 901;
dtmSubPoints[0].y := 138;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 65535;
dtmSubPoints[0].Tolerance := 25;
dtmSubPoints[1].x := 902;
dtmSubPoints[1].y := 133;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2714760;
dtmSubPoints[1].Tolerance := 25;
dtmSubPoints[2].x := 907;
dtmSubPoints[2].y := 139;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2714760;
dtmSubPoints[2].Tolerance := 25;
dtmSubPoints[3].x := 901;
dtmSubPoints[3].y := 145;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2714760;
dtmSubPoints[3].Tolerance := 25;
dtmSubPoints[4].x := 896;
dtmSubPoints[4].y := 137;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2714760;
dtmSubPoints[4].Tolerance := 25;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
MakeCompass('S');
FindRandoms;
begin
wait(Random(650) + 500);
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
procedure FreeDTMS;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeDTMS;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
Totally find, so y'all want a option for novice/intermediate/veteran?
I'll get that updated on next update!
Holako
03-01-2012, 11:24 PM
Remove VK_Down in the "Plank" part of the script.
Just removed it quick, hope you don't mind P1nky.
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
FindNormalRandoms;
wait(Random(100) + 20);
FindLamp('Woodcutting');
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 901;
dtmMainPoint.y := 138;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 65535;
dtmMainPoint.Tolerance := 25;
dtmSubPoints[0].x := 901;
dtmSubPoints[0].y := 138;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 65535;
dtmSubPoints[0].Tolerance := 25;
dtmSubPoints[1].x := 902;
dtmSubPoints[1].y := 133;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2714760;
dtmSubPoints[1].Tolerance := 25;
dtmSubPoints[2].x := 907;
dtmSubPoints[2].y := 139;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2714760;
dtmSubPoints[2].Tolerance := 25;
dtmSubPoints[3].x := 901;
dtmSubPoints[3].y := 145;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2714760;
dtmSubPoints[3].Tolerance := 25;
dtmSubPoints[4].x := 896;
dtmSubPoints[4].y := 137;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2714760;
dtmSubPoints[4].Tolerance := 25;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
MakeCompass('S');
FindRandoms;
begin
wait(Random(650) + 500);
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
procedure FreeDTMS;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeDTMS;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
thanks you very much
worked! :)
Holako
03-01-2012, 11:28 PM
Totally find, so y'all want a option for novice/intermediate/veteran?
I'll get that updated on next update!
yes plz :)
P1nky
03-02-2012, 08:35 AM
Uploaded [F].
-Fixed finding pest/plank.
-A lot of tweaks.
Cheers.
Kajutsky
03-02-2012, 08:41 AM
Uploaded [F].
-Fixed finding pest/plank.
-A lot of tweaks.
Cheers.
By any chance is the bot able to attack all pests and/or portals?
P1nky
03-02-2012, 08:45 AM
By any chance is the bot able to attack all pests and/or portals?
I'll work on that after I finish up my SoulWar bot.
Holako
03-02-2012, 03:10 PM
not finding the vetern boat in version f
superbuster4
03-02-2012, 03:13 PM
so does this run well now?
Ashihtaka
03-02-2012, 10:22 PM
so does this run well now?
Run it and see. It works well for me, except sometimes gets stuck
Ashihtaka
03-02-2012, 10:26 PM
P1nky, is there any way you can stop the pointer from clicking the tree stump near the centre of the field?
Some colour must be too similar to it.
Also, I keep getting this message:
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
P1nky, is there any way you can stop the pointer from clicking the tree stump near the centre of the field?
Some colour must be too similar to it.
Also, I keep getting this message:
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Ignore that message, and for the tree stump.. Use the new one he posted with updated colors.
Meh, went to that middle one again(not with new update this was like 1-2 days ago)
||===========================||
|| P1nkys PestController ||
||===========================||
|| March 2nd, 2012 ||
||===========================||
Worked For 9 Hours, 53 Minutes and 29 Seconds
Games Played 74
||===========================||
bnorman93
03-03-2012, 12:11 AM
function IsFKeyDown(FKey : integer) : boolean;
begin
if not InRange(FKey,1,12) then
raiseexception(erCustomError,'FKey not in range 1..12');
result := IsKeyDown(VK_F1 + FKey - 1);
end;
function GetColors(Coords : TPointArray) : TIntegerArray;
begin
GetColorsWrap(Coords,Result);
end;
procedure ColorToRGB(Color : TColor; var R,G,B : integer);
begin
R := Color and $ff;
G := Color shr 8 and $ff;
B := Color shr 16 and $ff;
end;
function Degrees(Radians: Extended): Extended;
Ashihtaka
03-03-2012, 02:11 AM
@InH, I always use the most updated version, but sometimes it still happens.
This is an excellent script if you babysit every hour or so though, good proggy so far:
||===========================||
|| P1nkys PestController ||
||===========================||
|| March 2nd, 2012 ||
||===========================||
Worked For 3 Hours, 20 Minutes and 6 Seconds
Games Played 64
||===========================||
Ashihtaka
03-03-2012, 04:07 AM
Updated proggy, worked very well today, so long that I manually closed it after 100 games
||===========================||
|| P1nkys PestController ||
||===========================||
|| March 2nd, 2012 ||
||===========================||
Worked For 5 Hours, 15 Minutes and 2 Seconds
Games Played 100
||===========================||
Shawn1993
03-03-2012, 07:09 AM
Hello, i see there are multiple kinds of these script like [F] [D] and beta, which one is best to use? Also does it work 100%, and do i need to update anything for it to function?
superbuster4
03-03-2012, 02:39 PM
big issue goes to the other fence.
samj123
03-03-2012, 03:15 PM
This keeps running to the middle and thats it
Ashihtaka
03-03-2012, 03:34 PM
Hello, i see there are multiple kinds of these script like [F] [D] and beta, which one is best to use? Also does it work 100%, and do i need to update anything for it to function?
download the latest version (f), and just run it
Ashihtaka
03-03-2012, 03:35 PM
This keeps running to the middle and thats it
that's the point of the script, go to middle, attack shifters, earn points.
superbuster4
03-03-2012, 06:03 PM
ok horrible today seems like all pest ppl are bots and it crashed cause it keeps running outside of the fence. version F
P1nky
03-04-2012, 01:04 AM
ok horrible today seems like all pest ppl are bots and it crashed cause it keeps running outside of the fence. version F
Once I release my sw bot, this will change and also Don't worry I'll check it out!
Ashihtaka
03-04-2012, 02:15 AM
Once I release my sw bot, this will change and also Don't worry I'll check it out!
I'm looking forward to that release.
After getting everything set up properly, and removing the vk_down camera angle line of code, everything ran very smoothly for me,
and got me max (500) points while I slept for longer than 8 hours.
This is now the best public script I've successfully ran on SRL forums, thanks P1nky.
tomdingo95
03-04-2012, 02:12 PM
i run the bot from the boat and i just walks into a random empty space it doesnt go near the void knight or attacks things i gotta put it there myself
miniman1928
03-04-2012, 06:39 PM
what file do i download?
also, what is libsmart32. it says that the plugin cannot be found?
whatev
03-04-2012, 07:26 PM
Script runs great. I'm using it with the new smart manager and I'm wondering how to get it to pick a pest control world on script start, because its just choosing a random world right now.
edit: now that i've picked w53 once (at script start) it seems to rejoin that world if it gets logged out
Epicbotter
03-04-2012, 10:12 PM
This doesn't work for me It just loads SMART.. Nothing in the debug
Ashihtaka
03-05-2012, 02:02 AM
This doesn't work for me It just loads SMART.. Nothing in the debug
make sure to enter all your info before you start, and wait infront of a boat.
dragonbotz
03-06-2012, 04:23 AM
The script was perfect but recently I've had this error that I can't seem to figure out:
[Error] (39:3): Unknown identifier 'FindLamp' at line 38
Compiling failed.
MatchRev
03-06-2012, 04:43 AM
The script was perfect but recently I've had this error that I can't seem to figure out:
[Error] (39:3): Unknown identifier 'FindLamp' at line 38
Compiling failed.
Exact same problem is happening with me. I even tried loading a fresh version F off this site and an earlier version of this script but the problem is still there.
P1nky
03-06-2012, 05:01 AM
The script was perfect but recently I've had this error that I can't seem to figure out:
[Error] (39:3): Unknown identifier 'FindLamp' at line 38
Compiling failed.
Exact same problem is happening with me. I even tried loading a fresh version F off this site and an earlier version of this script but the problem is still there.
Did y'all update SRL?
makezi
03-06-2012, 05:16 AM
No SRL update available.
And still same problem for me
dangermanz
03-06-2012, 05:23 AM
[Error] (39:1): Unknown identifier 'FindLamp' at line 38
Compiling failed. :S
P1nky
03-06-2012, 05:25 AM
I think the new update that fixed the randoms caused this, wait till tomorrow I'll find out.
dangermanz
03-06-2012, 05:26 AM
Full Update :/
dangermanz
03-06-2012, 05:28 AM
thank you very much :)
Snozzberries
03-06-2012, 11:05 AM
It keeps sneaking into the intermediate boat (which at night hours has no one ) :(
Sirenia
03-06-2012, 11:12 AM
Is it possible for me to try to pick new colors for stuff so it will work for the hardest boat? =D
halloweener
03-06-2012, 03:52 PM
[Hint] C:\Simba\Includes\SRL/SRL/core/text.simba(684:3): Variable 'I' never used at line 683
[Hint] C:\Simba\Includes\SRL/SRL/core/text.simba(684:3): Variable 'J' never used at line 683
[Hint] C:\Simba\Includes\SRL/SRL/core/antirandoms\beekeeper.simba(194:3): Variable 'T' never used at line 193
[Error] (39:3): Unknown identifier 'FindLamp' at line 38
Compiling failed.
please anybody help?
this script worked fine at night :/
Gestapo
03-06-2012, 05:21 PM
same problem here ^^
halloweener
03-06-2012, 05:27 PM
someone help us please or P&kiny please update because this script was awesome ^^
Please
03-06-2012, 08:32 PM
Please help p1nky I love the script man. It is one of the nicest running scripts.
I started getting this same error this morning.
[Error] (39:3): Unknown identifier 'FindLamp' at line 38
Compiling failed.
Gestapo
03-06-2012, 08:32 PM
can this be fixed soon please p1nky:D
P1nky
03-07-2012, 12:03 AM
FIX:
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
FindNormalRandoms;
wait(Random(100) + 20);
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 901;
dtmMainPoint.y := 138;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 65535;
dtmMainPoint.Tolerance := 25;
dtmSubPoints[0].x := 901;
dtmSubPoints[0].y := 138;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 65535;
dtmSubPoints[0].Tolerance := 25;
dtmSubPoints[1].x := 902;
dtmSubPoints[1].y := 133;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2714760;
dtmSubPoints[1].Tolerance := 25;
dtmSubPoints[2].x := 907;
dtmSubPoints[2].y := 139;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2714760;
dtmSubPoints[2].Tolerance := 25;
dtmSubPoints[3].x := 901;
dtmSubPoints[3].y := 145;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2714760;
dtmSubPoints[3].Tolerance := 25;
dtmSubPoints[4].x := 896;
dtmSubPoints[4].y := 137;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2714760;
dtmSubPoints[4].Tolerance := 25;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
MakeCompass('S');
FindRandoms;
begin
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
procedure FreeDTMS;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeDTMS;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
jonjon4012
03-07-2012, 02:06 AM
the fix had errors compiling for me, anyone else?
stray247
03-07-2012, 04:36 AM
after fix
[Error] (611:11): Duplicate identifier 'FREEDTMS' at line 610
Compiling failed.
prostaker
03-07-2012, 06:50 AM
Having same problem
uujee4
03-07-2012, 03:12 PM
me too
thenewbie
03-07-2012, 08:42 PM
Hey love this script!!!
but i have 2 things i want to ask/report
1) when i stand outside the plank (to get into the boat after a game) it always moves the camera angle so the void flag is in the screen and blocking the plank and the bot seems to get stuck alot (vet boat)
2) when the same just started and its about to run in the middle it always clicks on the same spot (near some bush) then goes in the middle :/
but appart from that your doing an amazing job!
P1nky
03-07-2012, 08:46 PM
FIX 2:
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
FindNormalRandoms;
wait(Random(100) + 20);
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 901;
dtmMainPoint.y := 138;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 65535;
dtmMainPoint.Tolerance := 25;
dtmSubPoints[0].x := 901;
dtmSubPoints[0].y := 138;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 65535;
dtmSubPoints[0].Tolerance := 25;
dtmSubPoints[1].x := 902;
dtmSubPoints[1].y := 133;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2714760;
dtmSubPoints[1].Tolerance := 25;
dtmSubPoints[2].x := 907;
dtmSubPoints[2].y := 139;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2714760;
dtmSubPoints[2].Tolerance := 25;
dtmSubPoints[3].x := 901;
dtmSubPoints[3].y := 145;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2714760;
dtmSubPoints[3].Tolerance := 25;
dtmSubPoints[4].x := 896;
dtmSubPoints[4].y := 137;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2714760;
dtmSubPoints[4].Tolerance := 25;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
MakeCompass('S');
FindRandoms;
begin
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
Tedious
03-07-2012, 09:21 PM
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
And so it runs on random areas at Pest Control.
thenewbie
03-07-2012, 09:56 PM
To stop it from sneaking off to the intermediate boat search for: KeyDown(VK_Down);
and delete that line, this stops the camera from moving down when infront of the plank and getting stuck because the banner is blocking it which causes the bot to move your character to a different boat
makezi
03-07-2012, 10:02 PM
[Error] (359:13): Unknown identifier '' at line 358
Compiling failed.
how do i fix this?
and when do you release new downloadable fix?
P1nky
03-07-2012, 10:18 PM
Can someone please pm me a member account with a weapon.
The account I was using to update this script with has just ran out of members.
Holako
03-07-2012, 10:53 PM
pinky log in msn and i will give u
P1nky
03-07-2012, 10:54 PM
pinky log in msn and i will give u
Please pm if so, I am on my sisters laptop and she wouldn't like me to download MSN.
Thanks.
Holako
03-07-2012, 11:00 PM
i would pm it buy i just want to say that i wont be able to give u it for alot of time
i mean i will need it like 12 hours or something... if that will help
P1nky
03-07-2012, 11:06 PM
i would pm it buy i just want to say that i wont be able to give u it for alot of time
i mean i will need it like 12 hours or something... if that will help
That's fine. If you want I can run the bot for you, but if you can lend it for just today, well than that be just perfect.
Holako
03-07-2012, 11:07 PM
okay will pm it in a second
P1nky
03-07-2012, 11:10 PM
okay will pm it in a second
Thank You, and I got a account now to update this script, so please do not PM Me unless it's important. Expect a update by tonight or so.
-Cheers
P1nky
03-08-2012, 05:53 AM
*UPDATED TO [G]
Added a Novice/Intermediate/Advance.
Fixed colors.
Should work flawless.
Thank You, and please guys I need p2p accounts...Donations will be perfect.
Ashihtaka
03-08-2012, 07:36 AM
Hey P1nky, just realized your sw script is 85% done.
I love your pc script, so was wondering will this be public?
Holako
03-08-2012, 01:15 PM
p1nky script is not doing well .. it doesnt protect knight and it doesnt even attack it just click west of the east tower and stay there
Holako
03-08-2012, 01:26 PM
nvm i closed simba then opened again and it works fine now :P soz
ttanker1
03-08-2012, 01:56 PM
wow thanks man !!!! :D finaly a pest control bot what i looking for thanks
l3thaltank
03-09-2012, 05:26 AM
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
these are appearing when i try and run your latest release and when it does get into game it doesnt click the chat message or move at all it just stands on boat
phrenism
03-09-2012, 05:34 AM
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
these are appearing when i try and run your latest release and when it does get into game it doesnt click the chat message or move at all it just stands on boat
Same here.
P1nky
03-09-2012, 05:53 AM
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
these are appearing when i try and run your latest release and when it does get into game it doesnt click the chat message or move at all it just stands on boat
ignore this:
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Cap'n n Arnav is a random, a problem probably occurred?
l3thaltank
03-09-2012, 07:29 AM
well the problem with the cap'n arnav is that it does it over and over and over again and never does anything else after that and script stops after first boat (it just sits on boat and never gets out of the initial chat window)
P1nky
03-09-2012, 08:11 AM
well the problem with the cap'n arnav is that it does it over and over and over again and never does anything else after that and script stops after first boat (it just sits on boat and never gets out of the initial chat window)
Can you do me a favor and post a screenshot?
Wow this script is awsome! i totally love it!
phrenism
03-09-2012, 08:59 AM
The cap. arnav thing is frustrating, i'll try and play around with the script and see if i can fix it.
Edit: Coh3n and a few others may be able to make a quick fix to the capnarnav script. or.. Maybe captain arnav is the new pest control boat captain :p. I personally just removed it from antirandoms, it's not likely you'll get that random anyways. Maybe i can make myself a capnarnav version for this script if i have time
BTW, very nice work p1nky, can't wait for your sw script.
prostaker
03-09-2012, 09:04 AM
allright, i am having exactly the same problem. I run the script. Character goes to boat, and this thing starts:
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
...
I have tryed updating simba, srl, sps, but nothing seems to help.
Also i tought that it might have been a one time only problem, so i restarted simba - no effect, still same problem. Then i restarted my computer - problem was still there. Then I re-installed simba and JRE. Problem was still there.
Hope that it helped for you to figure out what is the problem, because i have no clue :S. Also i noticed that one time, when that msg appeared the mouse pointer was "shaking" over one "voids of destruction" clann player, who was wearing a clanncape. But i noticed it only once, so i dont think that is the problem.
klit rs
03-09-2012, 10:30 AM
I dont think the Arnav problem is a problem with this script, but actually it is with the Arnav script itself.... I hope this gets fixed soon :)
phrenism
03-09-2012, 06:37 PM
Yeah klit, the output:
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
is from caparnav.simba in antirandoms includes. No idea why it's being triggered on the PC starting area and boat, though. Whoever figures it out deserves a cookie :)
P1nky
03-09-2012, 06:40 PM
allright, i am having exactly the same problem. I run the script. Character goes to boat, and this thing starts:
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
...
I have tryed updating simba, srl, sps, but nothing seems to help.
Also i tought that it might have been a one time only problem, so i restarted simba - no effect, still same problem. Then i restarted my computer - problem was still there. Then I re-installed simba and JRE. Problem was still there.
Hope that it helped for you to figure out what is the problem, because i have no clue :S. Also i noticed that one time, when that msg appeared the mouse pointer was "shaking" over one "voids of destruction" clann player, who was wearing a clanncape. But i noticed it only once, so i dont think that is the problem.
The cap. arnav thing is frustrating, i'll try and play around with the script and see if i can fix it.
Edit: Coh3n and a few others may be able to make a quick fix to the capnarnav script. or.. Maybe captain arnav is the new pest control boat captain :p. I personally just removed it from antirandoms, it's not likely you'll get that random anyways. Maybe i can make myself a capnarnav version for this script if i have time
BTW, very nice work p1nky, can't wait for your sw script.
well the problem with the cap'n arnav is that it does it over and over and over again and never does anything else after that and script stops after first boat (it just sits on boat and never gets out of the initial chat window)
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
CA_TalkToArnav: Didn't click Arnav DTM
CA_TalkToArnav: Talking to Cap'n Arnav
these are appearing when i try and run your latest release and when it does get into game it doesnt click the chat message or move at all it just stands on boat
Yeah klit, the out:
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
is from caparnav.simba in antirandoms includes. No idea why it's being triggered on the PC starting area and boat, though. Whoever figures it out deserves a cookie :)
I dont think the Arnav problem is a problem with this script, but actually it is with the Arnav script itself.... I hope this gets fixed soon :)
I posted on the thread, hope to see a answer.
FIX (but using this fix will NOT solve any randoms.)
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
WhatBoat = 'N';{
Intermediate
Advance
Novice }
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
// FindNormalRandoms;
wait(Random(100) + 20);
exit;
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 629;
dtmMainPoint.y := 164;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 125670;
dtmMainPoint.Tolerance := 18;
dtmSubPoints[0].x := 629;
dtmSubPoints[0].y := 164;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 125670;
dtmSubPoints[0].Tolerance := 18;
dtmSubPoints[1].x := 627;
dtmSubPoints[1].y := 156;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 3042439;
dtmSubPoints[1].Tolerance := 18;
dtmSubPoints[2].x := 635;
dtmSubPoints[2].y := 165;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 3042439;
dtmSubPoints[2].Tolerance := 18;
dtmSubPoints[3].x := 630;
dtmSubPoints[3].y := 171;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 3042439;
dtmSubPoints[3].Tolerance := 18;
dtmSubPoints[4].x := 622;
dtmSubPoints[4].y := 165;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 3042439;
dtmSubPoints[4].Tolerance := 18;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
FindRandoms;
case WhatBoat of
'N','n','novice','Novice','I','inter','i','Interme diate','intermediate' :
begin
MakeCompass('S');
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
'A','a','adv','advance','Advance' :
begin
MakeCompass('N');
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983,3162776], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
procedure FreeMem;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeMem;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
vcheckv
03-10-2012, 04:09 AM
sxc , thanks brah.
Kajutsky
03-10-2012, 11:16 AM
I posted on the thread, hope to see a answer.
FIX (but using this fix will NOT solve any randoms.)
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
WhatBoat = 'N';{
Intermediate
Advance
Novice }
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
// FindNormalRandoms;
wait(Random(100) + 20);
exit;
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 629;
dtmMainPoint.y := 164;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 125670;
dtmMainPoint.Tolerance := 18;
dtmSubPoints[0].x := 629;
dtmSubPoints[0].y := 164;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 125670;
dtmSubPoints[0].Tolerance := 18;
dtmSubPoints[1].x := 627;
dtmSubPoints[1].y := 156;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 3042439;
dtmSubPoints[1].Tolerance := 18;
dtmSubPoints[2].x := 635;
dtmSubPoints[2].y := 165;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 3042439;
dtmSubPoints[2].Tolerance := 18;
dtmSubPoints[3].x := 630;
dtmSubPoints[3].y := 171;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 3042439;
dtmSubPoints[3].Tolerance := 18;
dtmSubPoints[4].x := 622;
dtmSubPoints[4].y := 165;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 3042439;
dtmSubPoints[4].Tolerance := 18;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
FindRandoms;
case WhatBoat of
'N','n','novice','Novice','I','inter','i','Interme diate','intermediate' :
begin
MakeCompass('S');
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
'A','a','adv','advance','Advance' :
begin
MakeCompass('N');
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983,3162776], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
procedure FreeMem;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeMem;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
somehow i can't copy and paste that :(
RuneR4p3d
03-10-2012, 05:28 PM
It keeps going north east by the center and twitches camera
US Marine
03-10-2012, 11:07 PM
I posted on the thread, hope to see a answer.
FIX (but using this fix will NOT solve any randoms.)
program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
//Make sure to have Auto Retiable off.
//Set Character Outside the Boat.
const
SpecialAttacks = False;
QuickPrayer = False; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: http://stats.villavu.com/
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: http://stats.villavu.com/
WhatBoat = 'N';{
Intermediate
Advance
Novice }
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate, DTMSPOT2, DTMSPOT3, DTMSPOT, x, y, counter: integer;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
// FindNormalRandoms;
wait(Random(100) + 20);
exit;
end;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 629;
dtmMainPoint.y := 164;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 125670;
dtmMainPoint.Tolerance := 18;
dtmSubPoints[0].x := 629;
dtmSubPoints[0].y := 164;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 125670;
dtmSubPoints[0].Tolerance := 18;
dtmSubPoints[1].x := 627;
dtmSubPoints[1].y := 156;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 3042439;
dtmSubPoints[1].Tolerance := 18;
dtmSubPoints[2].x := 635;
dtmSubPoints[2].y := 165;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 3042439;
dtmSubPoints[2].Tolerance := 18;
dtmSubPoints[3].x := 630;
dtmSubPoints[3].y := 171;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 3042439;
dtmSubPoints[3].Tolerance := 18;
dtmSubPoints[4].x := 622;
dtmSubPoints[4].y := 165;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 3042439;
dtmSubPoints[4].Tolerance := 18;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
procedure SPOT1;
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2;
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid: boolean;
var
C: Integer;
begin
C := 42342;
if not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end
else
result := true;
Spot1;
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
function RewardBox: Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x, y, 986895, 134, 96, 435, 334, 1) then
begin
Result := True;
Mouse(392, 60, 0, 0, true);
Reward := Reward + 1;
end
else
Result := False;
end;
procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!', True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned', 2);
exit;
end
else if FindNPCChatText('noticed', True) or FindNPCChatText('lost.', True) then
begin
lost := lost + 1;
exit;
end
else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual', True) or FindNPCChatText('Congratulations!', True) or FindNPCChatText('knights', True) or FindNPCChatText('lost.', True) or FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := True;
Writeln('NPC Message Detected!');
if (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
Status('NPC Message');
MMouse(x, y, 0, 0);
wait(Random(200) + 20);
Mouse(x, y, 0, 0, true);
WinOrLose;
end
else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean;
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
procedure BoatWait;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until (NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4942983, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
if (IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
FindRandoms;
case WhatBoat of
'N','n','novice','Novice','I','inter','i','Interme diate','intermediate' :
begin
MakeCompass('S');
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
'A','a','adv','advance','Advance' :
begin
MakeCompass('N');
KeyDown(VK_Down);
wait(Random(650) + 500);
KeyUp(VK_Down);
end;
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x, y) then
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
until (FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat)) Setangle(0);
FindRandoms;
Report;
NPC;
exit;
end;
function Range: Boolean;
begin
if (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end
else
Result := False;
Writeln('False');
end;
var
qp: integer;
procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4k uBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8= ');
if FindDTM(QP, x, y, 701, 52, 733, 79) then
begin
MMouse(x, y, 0, 0);
Mouse(x, y, 0, 0, true);
end
else
exit;
end;
procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528, 179, 545, 195, 1);
begin
if (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, true);
end;
end;
end;
function EFindObjCustom(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tol: Integer): Boolean;
begin
Result := FindObjEx(cx, cy, Text, Color, Tol, 50, 33, 134, 542, 465);
end;
procedure FightPests;
var
Z, R, CTS: Integer;
begin
Status('Fighting Pests');
if not (EFindObjCustom(x, y, ['hifter', 'Shifte', 'Shifter', 'hift'], [2108184, 5051472, 3228504, 4942983,3162776], 3)) then
begin
if (counter > 1000) then
begin
Report;
counter := 0;
end;
R := Random(4);
case R of
0: RandomButton;
1: wait(Random(25) + 20);
2: wait(Random(25) + 20);
3: wait(Random(25) + 20);
end;
Exit;
end
else
Mmouse(x, y, 0, 0);
wait(Random(100) + 20);
if isuptext('ttac') then
begin
if not Faster500 then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ttack');
end
else
begin
Mouse(x, y, 0, 0, true);
wait(random(500) + 100);
end;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end
else
wait(2000);
Report;
end;
end;
function Portal(Name: string): Boolean;
begin
case Name of
'red':
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end
else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end
else
Result := False;
end;
end;
procedure FreeMem;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter := 0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeMem;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
until not (Ingame);
end;
end;
until (false);
end;
end.
THANK YOU! Works amazing now. Been watching it for a good 25minutes, no failures yet.
<3
lotery33
03-10-2012, 11:09 PM
ran for 1 hour good and is still running, but when i watched it for a while i noticed that it clicks random things and moves mouse around a little too much
edit:
got stuck here
http://img18.imageshack.us/img18/3686/88059476.png
also has a lot of trouble on getting on the boat
weequ
03-11-2012, 01:28 AM
P1nky you only need to check for randoms outside of the boat. You could make it to check for randoms only if it fails to enter the boat.
lotery33
03-11-2012, 02:06 AM
another bug: inside the game, it starts to hover over a tree stump and not do anything
Shavonda
03-11-2012, 02:46 AM
How do you fix the [Error] (35:5): Unknown identifier 'FindLamp' at line 34
Compiling failed.
stuff?
bluephx2
03-11-2012, 06:25 AM
"[Error] (35:5): Unknown identifier 'FindLamp' at line 34
Compiling failed." Help, im new to all of this and i just dont understand that well
P1nky
03-11-2012, 06:35 AM
ran for 1 hour good and is still running, but when i watched it for a while i noticed that it clicks random things and moves mouse around a little too much
edit:
got stuck here
http://img18.imageshack.us/img18/3686/88059476.png
also has a lot of trouble on getting on the boat
what boat?
P1nky you only need to check for randoms outside of the boat. You could make it to check for randoms only if it fails to enter the boat.
But the captain arrv random was giving people problems, so I took out findnormalrandom.
tisin
03-11-2012, 06:36 AM
[Error] (38:5): Unknown identifier 'FindLamp' at line 37
Compiling failed.
Running the P1nky Pestcontroll [D]
[Hint] (778:3): Variable 'ANSWER' never used at line 777
[Hint] (778:3): Variable 'WC' never used at line 777
[Hint] (977:3): Variable 'CTS' never used at line 976
[Error] (1060:12): Duplicate identifier 'FREEDTMS' at line 1059
Compiling failed.
still running P1nky Pestcontroller [D]
US Marine
03-11-2012, 10:00 AM
I have no idea why all these people are having such large amounts of trouble using this script!
I copy and pasted it into my Simba and its running completely fine.
Ran it for 6hours and 34minutes, found it had logged out at 6hours.
Just stopped it to reboot computer at 4hours 48minutes.
---
Not the script.
Skywalk
03-11-2012, 10:27 AM
i love this script got me full void in 3-4 days :P
works flawless with me
xjazza
03-11-2012, 12:37 PM
How do you fix the [Error] (35:5): Unknown identifier 'FindLamp' at line 34
Compiling failed.
stuff?
Delete part of the script.
Worked for me
Also, @Pinky, if it is attacking shifters next to the void night and the shifter teleports away, the character chases it and doesnt run back onto the platform. ^^
timrocks
03-11-2012, 02:09 PM
The latest version of the script doesnt work at all! It goes into the boat and it is waiting all the time and doing nothing even when it reached the island. Does the older version work better?
Thanks.
Edit: I get this error.
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
Specter
03-11-2012, 03:15 PM
can someone tell me how to take out: findnormalrandom?
i want to disable the capn arav thing...
siyao
03-11-2012, 07:19 PM
where is version F, that works flawless
prostaker
03-11-2012, 08:51 PM
I just want to say to P1nky that never mind those "i-will-never-learn-to-script-so-i-complain" nubs. You sir have done an amazing job creating this script and for that i give you KUDOS!
Your friend,
Cuck
:norris:
Propel
03-11-2012, 10:44 PM
I just want to say to P1nky that never mind those "i-will-never-learn-to-script-so-i-complain" nubs. You sir have done an amazing job creating this script and for that i give you KUDOS!
Your friend,
Cuck
:norris:
Complaining? More like telling him problems with his script so he can possibly fix them. :norris:
lotery33
03-12-2012, 01:27 AM
what boat?
But the captain arrv random was giving people problems, so I took out findnormalrandom.
novice
Specter
03-12-2012, 02:57 PM
P1nky,
it isnt attacking any portals...
it only defends the void knight?
can i change that or is it just defending?
Specter
archerpk1994
03-12-2012, 05:14 PM
For me it doesn't do anything, I'm having the problem with Cap'n Arnav. :C
P1nky
03-12-2012, 07:38 PM
For me it doesn't do anything, I'm having the problem with Cap'n Arnav. :C
Re-download [G]
P1nky,
it isnt attacking any portals...
it only defends the void knight?
can i change that or is it just defending?
Specter
Defends atm only.
I just want to say to P1nky that never mind those "i-will-never-learn-to-script-so-i-complain" nubs. You sir have done an amazing job creating this script and for that i give you KUDOS!
Your friend,
Cuck
:norris:
Appreciate it Mate.
The latest version of the script doesnt work at all! It goes into the boat and it is waiting all the time and doing nothing even when it reached the island. Does the older version work better?
Thanks.
Edit: I get this error.
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
Re-download [G]
kcbme
03-12-2012, 08:43 PM
CA_TalkToArnav: Talking to Cap'n Arnav
CA_TalkToArnav: Didn't click Arnav DTM
Re-download [G]
Still did not fix :/
phrenism
03-13-2012, 03:26 AM
I just want to say to P1nky that never mind those "i-will-never-learn-to-script-so-i-complain" nubs. You sir have done an amazing job creating this script and for that i give you KUDOS!
Agreed. It takes around 15 seconds to fix the problem, it takes more time than that to make a post.
prostaker
03-13-2012, 10:02 AM
Agreed. It takes around 15 seconds to fix the problem, it takes more time than that to make a post.
Exactly my point :) :garfield:
Kajutsky
03-13-2012, 10:10 AM
hehe would any1 recommend me to use this script? as im not sure
Kristoffer
03-13-2012, 10:37 AM
Mine is to defensive it doesnt attack the monster just staying at a place, and i dont get points.
P1nky
03-13-2012, 08:11 PM
Mine is to defensive it doesnt attack the monster just staying at a place, and i dont get points.
What boat are you using? and it does not attack at all, or does it at least attempt to?
boobies
03-13-2012, 10:05 PM
Great script, running flawless never miss a game
Zockuito
03-14-2012, 12:20 AM
Awesome awesome script! :D Maybe I can finally get my hyrbid junk... Or 99 prayer. :D 250 games in 12 hours is 1000 commendation points... I think it is 13k for 99 prayer... :O Not bad! :D The only problem is sometimes it goes into the wrong boat, so I kinda have to babysit. No big deal though. :D Great script, thanks so much!
tisin
03-14-2012, 04:59 AM
Miss clicks. doesn't change to the plank just keeps clicking.
http://s1240.photobucket.com/albums/gg497/tisin20/?action=view¤t=P1nkyPestControllerMissClicking.jpg
P1nky
03-14-2012, 05:55 AM
Miss clicks. doesn't change to the plank just keeps clicking.
http://s1240.photobucket.com/albums/gg497/tisin20/?action=view¤t=P1nkyPestControllerMissClicking.jpg
Go to the Graphic option, go to the lowest;
Mine is to defensive it doesnt attack the monster just staying at a place, and i dont get points.
Any way to make the defense a bit more aggressive? I'd have more winning games if I would contribute more ;-)
Excellent script otherwise (does have some issues finding the plank, lol)
umadm8?
03-14-2012, 11:32 PM
Little thing i noticed, due to the new armor update, the color of Red D'Hide is almost the same as the Red Shifter. The bot misclicked on a person in such shit armor like 3 times before going to a green shifter. Overall tho this bot is great, runs perfectly, it does act a little slow sometimes tho, i recommend running with auto retaliate on, so that if you get dragged behind a gate, the occasional monster will attack you, and keep you in the game. So it looks more like you are afking rather than botting.
Sweet Action
03-15-2012, 04:37 PM
When I try to run the bot everything seems to be working fine but the bot doesn't do anything. No clicks or log-outs or any typing, it just sits. What's going on here?
Sweet Action
03-15-2012, 04:39 PM
I set up my simba just fine, I read a in-depth guide on how to do so.
jake 007 9
03-15-2012, 11:25 PM
I am getting some bugs when using version [G]
-camera moves allot
-does not walk to the void to protect him
i am using version [D] now and its working great ill post proggy in the morning.
US Marine
03-16-2012, 02:01 AM
Weird... Its starting to do the randomly clicking in the middle of the ocean bullcrap like it used to do when I first used the script.
I'v been using it without problems for about a week now.
This is what im getting, again:
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Problem:
Plays one complete game perfectly fine. Wins, gets right by plank and goes into the ocean and spam clicks the wave effects in the middle of the water.
I have used this bots for months and it have been great, cant be my graphics or anything of that sort.
--
Anyone else having the same problem?
nitroxx0025
03-16-2012, 11:31 AM
this might be a noob question but what does it when it has max points does it buy somthing or just auto log off ?
P1nky
03-17-2012, 07:56 AM
Weird... Its starting to do the randomly clicking in the middle of the ocean bullcrap like it used to do when I first used the script.
I'v been using it without problems for about a week now.
This is what im getting, again:
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Problem:
Plays one complete game perfectly fine. Wins, gets right by plank and goes into the ocean and spam clicks the wave effects in the middle of the water.
I have used this bots for months and it have been great, cant be my graphics or anything of that sort.
--
Anyone else having the same problem?
What Boat are you using Mate?
this might be a noob question but what does it when it has max points does it buy somthing or just auto log off ?
Keep spending your points.
Bobby Booshay
03-17-2012, 09:42 PM
Epic script! Flawless victory!
FifthDimension
03-18-2012, 03:28 PM
Broken as expected :), had to manually go to w53, manually walk the plank (no pun intended) then it just moved the camera around a lot, and didn't attack anything. Derp.
Convex
03-19-2012, 12:19 AM
Pest Control is dead for me. There is nobody in the Pest Control worlds? Are there like worlds where they actually play Pest Control?
P1nky
03-19-2012, 01:41 AM
Will update this script soon hopefully by Wenesday.
prostatus
03-19-2012, 04:08 AM
37 FindLamp('Woodcutting'); has a error and wont compile
nitroxx0025
03-19-2012, 08:47 AM
pest control is dead for me. There is nobody in the pest control worlds? Are there like worlds where they actually play pest control?
world 53
lol_monkyy
03-19-2012, 06:42 PM
Wow, very complex scripting. Good job.
dragonbotz
03-19-2012, 07:04 PM
This script is working perfect for me. One thing I noticed is if you're using smart manager to make the enable fail safe turned off. Also, this script chooses trickster boots for a reward anytime. Anyway I can change the code to choose different boots or just wait until then and choose them myself?
US Marine
03-19-2012, 11:09 PM
What Boat are you using Mate?
Im using the novice boat, sorry for the long long looonnnggg time in replying to your message. Im using a different version of the script to get it to work. Having no problems with it. ;)
shstiger2009
03-19-2012, 11:12 PM
Broken as expected :), had to manually go to w53, manually walk the plank (no pun intended) then it just moved the camera around a lot, and didn't attack anything. Derp.
Well that's kind of a douchebag thing to say.
From what I've seen, it works fine for others. Don't put down a scripter.
Muzzi
03-19-2012, 11:55 PM
Why does it not go to portals and stuff? Just stands in the middle near the knight
kunzy
03-20-2012, 07:53 AM
cuz it isnt made to attak portals muzzi.. duh lol
tommo1
03-20-2012, 02:43 PM
It enters the boat fine for me. The only problems i encounter are:
- it goes south-west of the void knight's hill, this causes it not to see the shifters appearing near the void knight. This way it will just stand soutwest near the outpost waiting the whole game to be over and not receive any accomodations.
- when i manually click it to the void knight's hill. There are 3-4 people most of the time which respond faster to appearing shifters. This way the shifter will be dead before i've clicked the bot, so again it will receive no accomodations. (I sometimers barely get 500 hits so i will receive some sometimes)
those are the only problems i encounter. Otherwise i think it looks very good and runs smooth beside those two problems.
BottinHeaven
03-20-2012, 03:54 PM
It enters the boat fine for me. The only problems i encounter are:
- it goes south-west of the void knight's hill, this causes it not to see the shifters appearing near the void knight. This way it will just stand soutwest near the outpost waiting the whole game to be over and not receive any accomodations.
- when i manually click it to the void knight's hill. There are 3-4 people most of the time which respond faster to appearing shifters. This way the shifter will be dead before i've clicked the bot, so again it will receive no accomodations. (I sometimers barely get 500 hits so i will receive some sometimes)
those are the only problems i encounter. Otherwise i think it looks very good and runs smooth beside those two problems.
^This, other than that I love this script. Got me 330 commendations through overnight and a couple hours in the day. Love it! Will carry on using it until I get my full void, and possibly all void sets. Thanks for this P1nky!
FifthDimension
03-20-2012, 04:07 PM
Well that's kind of a douchebag thing to say.
From what I've seen, it works fine for others. Don't put down a scripter.
Naw, unless they are babysitting it and doing 90% of the procedures for it.
swagtothemax
03-20-2012, 05:31 PM
It sound ssuper great but whenever i run it says Exception in Script: Plugin(libsmart32) has not been found please help??
brentrobbins
03-20-2012, 08:23 PM
Naw, unless they are babysitting it and doing 90% of the procedures for it.
im sorry, but obviously you are not doing something correct. I have been monitoring this thread for months now and i am very aware that it has been and still is working. You should have all your graphics set to low and fixed and start next to the plank you want to be at. It cant run to the planks seeing as all the planks are the same color. You should start the script in the world you want next to the boat you want to play in. It should do the rest for you.
Chainlord
03-21-2012, 03:55 AM
it sits at start after you die to monsters :(
tisin
03-21-2012, 03:37 PM
it sits at start after you die to monsters :(
maybe then you should get higher defence
marko1
03-21-2012, 03:41 PM
Please help, im new to the rs2 community and simba bot,
I am getting this message when trying to run the script,
"formWriteln: [error] (35:5): Unknown identifier ,Findlamp, at line 34
formWriteln: compiling failed.
marko1
03-21-2012, 04:08 PM
I think i am doing everything as i should, but nothing happens, it loads the script but when i login, then nothing happens, it does not start to auto, can anyone help me please?
tommo1
03-21-2012, 04:12 PM
it also walks off to the rune store quite some times and just stands there (using advance boat)
Please help, im new to the rs2 community and simba bot,
I am getting this message when trying to run the script,
"formWriteln: [error] (35:5): Unknown identifier ,Findlamp, at line 34
formWriteln: compiling failed.
Same here
P1nky
03-22-2012, 06:09 AM
I need a p2p account with a weapon; PM me, so I can update this script. Other account is in Soul Wars(*hint* soon to be release), and quite lazy to move him outta' there!
-Cheers
i am andy
03-22-2012, 08:24 PM
formWrittenIn: Exeception in Script: Unable to find files 'srl\srl.simba' used from ' '
WTF?? im new to this kinda of scripting how do i fix this??
P1nky
03-22-2012, 09:38 PM
formWrittenIn: Exeception in Script: Unable to find files 'srl\srl.simba' used from ' '
WTF?? im new to this kinda of scripting how do i fix this??
Download SRL and the Includes.
Btw, still need a P2P account so I can update this script.
-Cheers
Omega Supreme
03-22-2012, 10:48 PM
This worked absolutely fine for me, switched boats randomly once or twice but I kept an eye on it.
For the guy above, Im not too sure how to fix that but try updating all the SLS, SPS and MSI things. It could help!
Edit: I would let you use mine but its a range tank with very particular stats!
CrysisMK2
03-23-2012, 03:17 PM
It's not running up the pyramid for me anymore, it runs off to the side and stays there. Used to work fine.
prostaker
03-23-2012, 07:41 PM
It's not running up the pyramid for me anymore, it runs off to the side and stays there. Used to work fine.
Im expiriencing same thing:garfield:
Edit:
version [D] seems to be working perfectly, it runs on top of the pyramid. Altho there are not any options to choose witch boat to use in version [D], then it seems to be still working. Good old things are built solid :D
jbryers
03-23-2012, 09:18 PM
how do i download it?
weequ
03-23-2012, 09:25 PM
how do i download it?There is a download link in the first post of this thread. You should download the G version as I think it's the newest.
lightstabo
03-24-2012, 11:03 AM
Is there some way to make it log into world 53 by itself? I have smart server set to 53 but it doesn't do anything, it just chooses a random server regardless.
Cheers
I always select the world manually, you should too.
SailorJerry
03-24-2012, 03:02 PM
Does anyone have a points per hour estimate?
Gucci
03-24-2012, 04:11 PM
Nice script P1NKY it's amazing and I love it, just something I noticed though is when crossing the plank onto the ship it will move the mouse like crazy along the plank and then click the area behind the shops so it walks there and can't get back to the docks.
RSbotter1
03-24-2012, 09:03 PM
Proggy for you <3
|====================================|
||===========================||
|| P1nkys PestController ||
||===========================||
|| (DATE) ||
||===========================||
Worked For 4 Hours, 44 Minutes and 58 Seconds
Games Played 90
Zeal earned: 160
MatchRev
03-25-2012, 09:40 AM
The advanced boat script need some serious fixing.
The bot will fail to get on boat and always end up at the top left of pest control island for some reason. This happen after 2 or 3 games, I did not count.
Novice boat script seems to be working well so far though.
feyaerts
03-25-2012, 10:52 AM
BOt can't get in boat seems like the color from the plank to get in has changed or something??
feyaerts
03-25-2012, 11:01 AM
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
Warning! You passed wrong values to a finder function: ys > ye (30,29). Swapping the values for now.
hunters
03-25-2012, 03:55 PM
my guy gets into the place then it doesnt go up were the guy is with the monsters and just sits there looking for them
Gucci
03-25-2012, 03:59 PM
The advanced boat script need some serious fixing.
The bot will fail to get on boat and always end up at the top left of pest control island for some reason. This happen after 2 or 3 games, I did not count.
Novice boat script seems to be working well so far though.
That's the problem I was having but you can fix it by changing the VK_DOWN to VK_Up in the section where you enter the boat this way it won't lower the camera preventing it from misclicking
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.