SRL Archive - RS3 Outdated / Broken Scripts

Cow Killa


skilld u

2008-04-26 21:34:23

Cow Killa

by: skilld u

Cow Killa kills cows in the cow pen North of Lumbridge and banks the cow hides. Has a dead walk feature and will reset your characters after all of them have gone false. Has calibration by clicking a very unique DTM of a tree, so it will never get lost in the pen. DDTM to get to the bank and to get back to the cows.
—————————————————————————————————————————————–
1. Place your character (s) in the cow pen North of Lumbridge just South of the bank. Here is pic:

2. Fill out the declare players, food color, RC master nick, SRL stats Id and pass.

3. Press play.

4. Post proggies.

5. Sell Hides at highest price so that they don't lose their value!
—————————————————————————————————————————————–

Features:
—————————————————————————————————————————————–

  • Should Never Get Lost, Uses A DTM for calibration!
  • Kills Cows!
  • Banks Hides!
  • Death Walk!
  • AutoEat if Health gets low!


—————————————————————————————————————————————–


Upcoming Features:
—————————————————————————————————————————————–

  • Range and Mage option.
  • Which Skill To Train Option.


—————————————————————————————————————————————–

Progress Reports
—————————————————————————————————————————————–

By: Me!
/\/\/\/\/\/\ cow killa /\/\/\/\/\/\
[ Killed: 31 cows ]
[ Completed: 0 loads ]
[ Collected: 5 hides ]
[ Ate: 0 times ]
[ Failed DDTMs: ]
[ Ran For: 5 Minutes and 48 Seconds]
/\/\/\/\/\/\/ cow killa \/\/\/\/\/\/


Get yours posted up here!



rep ++ =]

Iron Man

2008-04-26 21:44:24

Looks good from a 5 second view :p

Since when is there a cow pen with a bank beside it?:confused:

skilld u

2008-04-26 21:45:28

thanks. ya there is a cow pen. its really good for making money.

HayHay89

2008-04-26 22:07:29

Omg awesome how close is the bank

just a couple of questions

would it be smart to use on a lvl 64

and the walking is flaw just about?

and make sure u sell at high prices people in g.e or the price will go down and the script will only be good for combat not really and $$$

skilld u

2008-04-26 22:13:02

i guess it is smart, just don't over use. cows are pretty good xp at any level imo.
and i edited the main post to say to sell at highest price.

your question about walking i don't understand. it isn't flawed that i'm aware of…

sex°

2008-04-26 22:15:12

Thanks again skilld u for taking my request :) I didn't expect you to complete a full script on this but you certainly outdid yourself. If your wondering how close the bank is, look at the map screenshot he put in his post. I'll be running this soon(hopefully) and posting my proggie of course :)

-Thanks

skilld u

2008-04-26 22:16:43

i didn't think i would either :rolleyes: i just had alot of time today, like 7 hrs, so i decided to work on the script. :D it probly still has a few bugs, but ill hopefully fix them as soon as they come up. and if you need any help just ask me. and get on msn.

sex°

2008-04-26 22:17:45

BTW remove your srl id and pass from the script quick :) Unless thats just a fake one, just looking out for you :p

skilld u

2008-04-26 22:21:03

nah. i get free stats if the people are too lazy to get their own. :D

Haxor

2008-04-27 05:04:48

Could you give a option of banking or no banking for xp whores like m:)

Or i could just edit it:P

~haxor

ShowerThoughts

2008-04-27 06:29:43

Since where there is a bank outta there :S and where the f*ck is that place never saw it b4

Rubenos

2008-04-27 07:24:25

It came with the Gnome Copters, the cow's where always there.

Nice script, I'll try it out sometime!

the scar noob

2008-04-27 08:21:20

Oh noez!

I just saw that thread at script requests and decided to maybe make one, but I'm to late I see:p

Good luck with your script;)

-Tsn.

EDIT:

Note: your deathwalk needs an update and you don't free your dtm's properly, have a nice look:)

ShowerThoughts

2008-04-27 08:41:15

Skill'd, there are almost no cows out there like 3 you should make a get all player and then look if there are more then 3 players then change world, the only bad thing is that there are noobs flying with those gnome copters :S

skilld u

2008-04-27 08:50:01

hermpie, there are actually like 7 or 8 :p also there aren't usually very many people there.

skilld u

2008-04-27 09:16:49

just upped a new version.

sex°

2008-04-27 10:19:42

You weren't kidding the color selection is very hard to get right o.O

Still getting the:
Couldnt find Sand Color!
Couldnt find Color!

:p

skilld u

2008-04-27 10:29:24

ya, lol. i think i finally got it fixed. redownload!

nobody u kno

2008-04-27 11:03:33

Every time i run this script it logs me in, and then it just lags really bad. Theres no movement at all until i stop the script.

skilld u

2008-04-27 11:04:46

i think it is because of the calibration, does anyone have any better way for me to do it?

M_Back

2008-04-27 11:58:01

From: sex°

Still getting the:
Couldnt find Sand Color!
Couldnt find Color!

Can't find the color for me either. I hope it can be fixed, then I'll definitely use this script for my army. ;)

Maby you have thought about this already. If the char have a thinderbox and an axe in its inventory then it could pick up raw beef, go to the tree in the field, chop it down, make a fire, then cook the meat and eat it at low hp.
That would be a cool feature.

skilld u

2008-04-27 11:59:29

im working on it, still trying to find a better way to calibrate. does it lag like crazy when you first start also. I'm planning on adding lots of different options for training methods once i get this version to work right :p

M_Back

2008-04-27 12:26:21

From: skilld u
im working on it, still trying to find a better way to calibrate. does it lag like crazy when you first start also. I'm planning on adding lots of different options for training methods once i get this version to work right :p
Nope, it dosn't lagg anything for me. But I bought a new comp for maby 2 weeks ago. :)
Can't wait to see the finished script with all the options. :stirthepot: That field will get crowded lol.

skilld u

2008-04-27 12:27:21

:( im gonna have to re-do the autocolor functions than.

skilld u

2008-04-27 13:15:51

just upped new version

nobody u kno

2008-04-27 14:13:55

dont know if you tried to fix it but new version still lags 4 me

sex°

2008-04-27 17:07:54

Yeah it's back to lagging people out :p but by the looks of my char you get it to work fine :o

the scar noob

2008-04-27 17:46:39

This may sound a little meany, but do I have a chance of making one by myself afterall? A better one?:stirthepot: :p

-Tsn.

sex°

2008-04-27 18:47:50

From: the scar noob
This may sound a little meany, but do I have a chance of making one by myself afterall? A better one?:stirthepot: :p

-Tsn.


skilld u is a really busy guy, but the idea was free for anyone to use in a script. If you wish to do so thats fine, I'm sure skilld u wont argue against it because it'll probably be less of a hassle for him. This script was never supposed to be a script just a general outline that developed into a script which developed into bugs :duh:

P1nky

2008-04-27 23:59:35

sex i dont line ur name first of all… doesnt look appropiate for this community.
and second of all skilld u is trying so hush. and try to learn to script by urself.

Tsn. you have every right to make a script same as anyone else. so go ahead if you wish doesnt really matter

M_Back

2008-04-29 10:38:53

The new update solved the color issue but now it doesn't fight the cows. First it walks south to the fence, then it just ends up in a loop, searching the grass/ground. I have no clue on what it's doing… :p
Maby you could add some info in the debug, or somewhere, about what the script is doing, what procedure it's on. Hope you understand what I mean. :)

[Off-topic]Has srl crached recently? I couldn't get in here two days ago nor yesteday.[/off-topic]

the scar noob

2008-04-29 11:55:42

From: P1NKY
sex i dont line ur name first of all… doesnt look appropiate for this community.
and second of all skilld u is trying so hush. and try to learn to script by urself.

Tsn. you have every right to make a script same as anyone else. so go ahead if you wish doesnt really matter


Meh, too late. Someone else and me are on something else:p

-Tsn.

sex°

2008-04-29 14:51:46

From: P1NKY
sex i dont line ur name first of all… doesnt look appropiate for this community.
and second of all skilld u is trying so hush. and try to learn to script by urself.

Tsn. you have every right to make a script same as anyone else. so go ahead if you wish doesnt really matter


One my name has a meaning, it's not just sex. I've used it for years it used to be the gfx team name that I was in. Two I know skilld u is trying I mean hello I talk to him everyday on MSN and hes using one of my chars to script with, but when he agreed to it he just said he was going to provide a general outline so that it could help me learn scripting. But he gained time to script it, I'm in no rush I mean really I don't have much of a use for it. I provided the idea to help the community mainly since no one had done it yet, I was simply stating TSN was more than welcome to make the script since it was a free to use idea.

I'm trying to learn how to script, and guess what I've been a member then less than 2 weeks so sorry I'm not a pro a scripting like some people on here. You don't have to jump down a new users throat for posting, it wasn't like I said "oh skilld u sucks so bad please god someone else make this script," because one hes trying to help me, two I don't feel that way at all, and three the scripting hes done so far is a lot better than most.

If it's killing the community to have my name since you run this forum, then I'll request a name change. And I guess before I post anymore ideas I'll approve it by the almighty P1nky because god knows it was a bad sin for me to come in and do it, how dare me…

Edit: Oh and P1nky I don't like your name, it's definitely not appropriate for this community either. It's in all capital letters which provokes anger and it's written in 1337 speak which presents a bad image to the views of this forum that no one here can speak proper english.

ShowerThoughts

2008-04-29 15:24:45

From: sex°
One my name has a meaning, it's not just sex. I've used it for years it used to be the gfx team name that I was in. Two I know skilld u is trying I mean hello I talk to him everyday on MSN and hes using one of my chars to script with, but when he agreed to it he just said he was going to provide a general outline so that it could help me learn scripting. But he gained time to script it, I'm in no rush I mean really I don't have much of a use for it. I provided the idea to help the community mainly since no one had done it yet, I was simply stating TSN was more than welcome to make the script since it was a free to use idea.

I'm trying to learn how to script, and guess what I've been a member then less than 2 weeks so sorry I'm not a pro a scripting like some people on here. You don't have to jump down a new users throat for posting, it wasn't like I said "oh skilld u sucks so bad please god someone else make this script," because one hes trying to help me, two I don't feel that way at all, and three the scripting hes done so far is a lot better than most.

If it's killing the community to have my name since you run this forum, then I'll request a name change. And I guess before I post anymore ideas I'll approve it by the almighty P1nky because god knows it was a bad sin for me to come in and do it, how dare me…

Edit: Oh and P1nky I don't like your name, it's definitely not appropriate for this community either. It's in all capital letters which provokes anger and it's written in 1337 speak which presents a bad image to the views of this forum that no one here can speak proper english.


Change Name Or Get Infraction.

skilld u

2008-04-29 16:16:38

please leave him alone, he is the one that gave me the idea to make this script, i think i got it working so expect new version later today. I still haven't gotten the calibration working correctly; so for now it has been disabled. :( but here is a short proggy from new version:

/\/\/\/\/\/\ cow killa /\/\/\/\/\/\
[ Killed: 9 cows ]
[ Completed: 0 loads ]
[ Collected: 7 hides ]
[ Calibrated: 8 times ]
[ Ate: 0 times ]
[ Failed DDTMs: ]
[ Ran For: 7 Minutes and 2 Seconds]
/\/\/\/\/\/\/ cow killa \/\/\/\/\/\/

skilld u

2008-04-29 16:51:03

just upped a new version. No TPA's this time :(, couldn't get them to work right, so i just use findobjcustom. post them proggies, should run long time. :D

M_Back

2008-04-30 02:50:35

When I started the script I got a whole bunch of variable hints, but it worked good anyway. :) It finds the cows now and everything is working as it should be, apart from the cows killed and the hides collected in the proggy.
Seems like if it missklick on a cow it thinks that the char has killed it, then it klicks on it again and now the cow gets killed for "real". In the proggy it is 2 cows killed.
And about the hides i think the script adds a hide to the proggy everytime it see a raw beef and right klick on it.
Btw, maby you could make it use run after the login. ;)

Edit: It got in to a loop, trying to kill the dairy cow…

\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
/\/\/\/\/\/\ cow killa /\/\/\/\/\/\
[ Killed: 70 cows ]
[ Completed: 0 loads ]
[ Collected: 38 hides ]
[ Ate: 0 times ]
[ Failed DDTMs: ]
[ Ran For: 20 Minutes and 19 Seconds]
/\/\/\/\/\/\/ cow killa \/\/\/\/\/\/


I think it killed about 8-10 cows and picked up just as many hides. :p

squnky

2008-04-30 04:30:25

yeah im running it , whateva
sometimes i get stuck on the dairy cow
some hints in the beginning of the script that dont mean anything

…anti-ban talking goes too fast for me. does 6-10 phrases in like a minute.
not every minute but every 5-10 or so-

ericjzhang

2008-04-30 17:20:19

heres an edited one, it doesnt talk that much, and wont get stuck at dairy cow


// -------------------------------------------------------------------------- //
// pwnt! //
// -------------------------------------------------------------------------- //
// -- -- //
// -- Cow Killa v0.4 -- //
// -- by -- //
// -- skilld u -- //
// -- edited by ericjzhang/chaosdestany -- //
// -------------------------------------------------------------------------- //
// -- -- //
// -- Kills Cows and Banks Hides. -- //
// -- -- //
// -------------------------------------------------------------------------- //
// -- Instructions -- //
// -------------------------------------------------------------------------- //
// -- -- //
// -- Equip yourself with Three Pieces of armor -- //
// -- Place your Players In the Cow pen north of Lumbridge, by the Bank -- //
// -- Don't have anything too expensive with you. -- //
// -- Pick the color of the tree! -- //
// -- -- //
// -------------------------------------------------------------------------- //
// -- Features -- //
// -------------------------------------------------------------------------- //
// -- -- //
// -- Should Never Get Lost, Uses A DTM for calibration! -- //
// -- Kills Cows! -- //
// -- Banks Hides! -- //
// -- Death Walk! -- //
// -- AutoEat if Health gets low! -- //
// -------------------------------------------------------------------------- //
// -- Upcoming Features -- //
// -------------------------------------------------------------------------- //
// -- Range and Mage option -- //
// -- Which Skill To Train Option -- //
// -- stole this thing from-- //
// -- Wizzup? and Fakawi mager-- //
// -------------------------------------------------------------------------- //

program cowkilla;

{.include SRL\SRL\misc/SMART.scar}
{.include SRL\SRL.scar}
{.include SRL\SRL\skill\magic.scar}
{.include SRL\SRL\skill\fighting.scar}

var
x, y, i, Eaten, Loads, Calibrated, CalibrateDTM, CowsKilled, LoadsDone, Hides, Hide, Exxey: integer;
Loop: string;
DDTMfailed : array[1..12] of Integer;

//----------------------------------------------------------------------------//

const ShouldWeEat = False; //<- Should we eat or not?
const FoodColor = 123456;//<- fill in the color of the food.
const RemoteMaster = ''; //<- fill in the Nickname of the RC master.
const MySRLID = '';//<- your SRL ID (for stats) in here.
const MySRLPassword = '';//<- your SRL PW (for stats) in here.
const NumLoads = 10000; //<- Loads before Switching players
//----------------------------------------------------------------------------//

procedure DeclarePlayers;
begin
CurrentPlayer := 0;
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active :=True;

{Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Active :=False;

Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Active :=False;}

end;

procedure TakeMyScreen(Reason: string); //from hy71194 =]
begin
WriteLn('Attempting to take a screenie of something.. Please wait.');
try
SaveScreenshot(ScriptPath + reason + TimeRunning + '.bmp');
WriteLn('Screenshot of: ' + reason + TimeRunning);
WriteLn('Send to skilld u on SRL Forums');
except
Writeln('Failed to save screenshot of: ' + reason);
end
end;

procedure DeadWalk; forward;
function FindGrassColor: integer; forward;
function DDTMMaster(Number: integer; Recursive: boolean): boolean; forward;

procedure ResetMe;
begin
for i := 0 to HowManyPlayers - 1 do
Players[i].Active := True;
Cast('Home Teleport');
Wait(7000 + random(2000));
DeadWalk;
end;

procedure DeadWalk;
begin
if not DDTMMaster(1, True) then
if not RadialWalk(FindRoadColor, 80, 99, 60, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(5, true) then
if not RadialWalk(FindRoadColor, 322, 332, 55, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(6, true) then
if not RadialWalk(FindRoadColor, 309, 315, 57, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(2, true) then
if not RadialWalk(FindRoadColor, 0, 1, 60, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(7, true) then
if not RadialWalk(FindRoadColor, 347, 353, 63, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(8, true) then
if not RadialWalk(FindRoadColor, 265, 270, 71, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(9, true) then
if not RadialWalk(FindRoadColor, 283, 290, 63, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(10, true) then
if not RadialWalk(FindRoadColor, 251, 265, 54, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(11, true) then
if not RadialWalk(FindRoadColor, 334, 340, 57, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(12, true) then
if not RadialWalk(FindRoadColor, 23, 38, 67, 5, 5) then Exit; NextPlayer(false);

if not RadialWalk(FindGrassColor, 315, 325, 49, 5, 5) then Exit; NextPlayer(false);

if not DDTMMaster(3, true) then Exit; NextPlayer(false);
end;

procedure TehRespond;
begin
if InChat('hey') or InChat('hi') or InChat('whats up?') or InChat('ello')
or InChat('wassup') or InChat('sup') or InChat('h ey') or InChat('h ello')
or InChat('hows it going') or InChat('was up') or InChat('w hats up') then
begin
case Random(10) of
0 : TypeSend('hi');
1 : TypeSend('hello');
2 : TypeSend('hey');
3 : TypeSend('sup');
4 : TypeSend('hola');
5 : TypeSend('yo');
6 : TypeSend('dont feel like talking now, sorry');
7 : TypeSend('sup');
8 : TypeSend('not now');
9 : TypeSend('please leave me alone');
end;
end;
if InChat('lol') or InChat('funny') or InChat('ha')or
InChat('wow') or InChat('rofl') or InChat('omg')then
begin
case Random(10) of
0 : TypeSend('lol');
1 : TypeSend('lmao');
2 : TypeSend('');
3 : TypeSend('');
4 : TypeSend('');
5 : TypeSend('');
6 : TypeSend('');
7 : TypeSend('');

end;
end;
if InChat(Players[CurrentPlayer].Nick) then
begin
case Random(10) of
0 : TypeSend('leave me alone');
1 : TypeSend('get away from me please');
2 : TypeSend('');
3 : TypeSend('');
4 : TypeSend('');
5 : TypeSend('');
6 : TypeSend('');
7 : TypeSend('');
8 : TypeSend('');
9 : TypeSend('');
10 : TypeSend('');
11 : TypeSend('');
12 : TypeSend('');

end;
end;
if InChat('noob') or InChat('newb') or InChat('nub') or InChat('choob')
or InChat('ch00b') or InChat('n00b') or InChat('nooby') or InChat('nublet')
or InChat('newby') or InChat('nubby') then
begin
case Random(11) of
0 : TypeSend('thanks');
1 : TypeSend('w/e');
2 : TypeSend('thnx');
3 : TypeSend('thank you');
4 : TypeSend('thanks :p');
5 : TypeSend('your a noob');
6 : TypeSend('im not nub');
7 : TypeSend('i pwn you.');
8 : TypeSend('go away');
9 : TypeSend('you nub');
10 : TypeSend(';p');
end;
end;
if InChat('bye') or InChat('cya') or InChat('gtg') or InChat('im leaving')
or InChat('im going') or InChat('see you later') or InChat('l8r mate')
or InChat('l8r') or InChat('ttyl') or InChat('ttfn') or InChat('b ye')
or InChat('by') then
begin
case Random(11) of
0 : TypeSend('c ya');
1 : TypeSend('bye');
2 : TypeSend('ttyl');
3 : TypeSend('b ye');
4 : TypeSend('by');
5 : TypeSend('ttfn');
6 : TypeSend('b y');
7 : TypeSend('l8r');
8 : TypeSend('cya');
9 : TypeSend('l8r mate');
10 : TypeSend('bye');
end;
end;
end;


procedure AntiBan;
begin
case random(200) of
0, 16, 17, 18, 19: begin
MakeCompass('S');
Wait(50 + random(100));
MakeCompass('W');
Wait(50 + random(100));
MakeCompass('N');
Wait(50 + random(100));
SetAngle(false);
Wait(50 + random(100));
SetAngle(true);
end;
1, 20, 21, 22, 23: begin
MakeCompass('W');
Wait(50 + random(100));
MakeCompass('E');
Wait(50 + random(100));
MakeCompass('S');
Wait(50 + random(100));
MakeCompass('N');
end;
2, 24, 25, 26, 27: begin
KeyDown(VK_Left);
Wait(1000 + random(500));
KeyUp(VK_Left);
Wait(50 + random(100));
KeyDown(VK_Right);
Wait(1000 + random(500));
KeyUp(VK_Right);
Wait(50 + random(100));
MakeCompass('N');
end;
3, 28, 29, 30: begin
KeyDown(VK_Down);
Wait(1000 + random(500));
KeyUp(VK_Down);
Wait(50 + random(100));
KeyDown(VK_Up);
Wait(1000 + random(500));
KeyUp(VK_Up);
end;
4, 31, 32, 33: AlmostLogout;
5, 6, 7: RandomMovement;
8, 9, 10: MMouse(5 + random(250), 5 + random(250), 5, 5);
11, 12, 13, 14, 15: begin
Mouse(5 + random(100), 5 + random(100), 5, 5, false);
Wait(50 + random(25));
MMouse(5 + random(50), 5 + random(50), 5, 5);
end;
34, 35, 36, 37: HoverSkill('random', false);
38, 39, 40: RandomMovement;
41, 42, 43: BoredHuman;
44, 45, 46: PickUpMouse;
end
end;

//starblaster <3
function FindObjCustomEx(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tolerance: Integer): Boolean;
var
a, b, c, i, x1, y1, x2, y2: Integer;
Start: Boolean;
begin
for b := 0 to (GetArrayLength(Color)-1) do
begin
if (FindColorSpiralTolerance(cx, cy, color[b], MSX1, MSY1, MSX2, MSY2, Tolerance)) then
begin
Start := True;
Break;
end;
end;
if(Start)then
begin
x1 := 245;
y1 := 165;
x2 := 277;
y2 := 185;
repeat
if not(LoggedIn)then break;
a := a + 1;
if (a = 1) then
c := c + 1
else if (a = 3) then
c := c + 1;
for i := 1 to c do
begin
if (a = 1) then
begin
x1 := x1 + 30;
x2 := x2 + 30;
end else
if (a = 2) then
begin
y1 := y1 - 20;
y2 := y2 - 20;
end else
if (a = 3) then
begin
x1 := x1 - 30;
x2 := x2 - 30;
end else
if (a = 4) then
begin
y1 := y1 + 20;
y2 := y2 + 20;
end;
if (x1 = 485) and (x2 = 517) then
x2 := x2 - 2;
if (y1 = 325) and (y2 = 345) then
y2 := y2 - 7;
if (x2 > 515) then
Break;
for b := 0 to (GetArrayLength(Color)-1) do
begin
if (FindColorTolerance(cx, cy, Color[b], x1, y1, x2, y2, tolerance)) then
begin
MMouse(cx, cy, 0, 0)
if (IsUpTextMultiCustom(Text)) then
begin
Result := True;
Exit;
end;
end;
end;
end;
if (a = 4) then
a := 0;
until (x2 > 515) or (Result = True);
end;
end;

function Kill(colors: TIntegerArray): boolean;
var
CowTPA: TPointArray;
Mid: TPoint;
k: integer;
begin
if not LoggedIn or FindDead then Exit;
for k := 0 to High(colors) do
if FindColorsTolerance(CowTPA, colors[k], MSX1, MSY1, MSX2, MSY2, 10) then
begin
Mid := MiddleTPA(CowTPA);
repeat
MMouse(Mid.x, Mid.y, 5, 5);
Wait(1000 + random(500));
until IsUpText('tta');
if IsUpText('tta') then
begin
GetMousePos(x, y);
case random(2) of
0, 1: begin
Mouse(x, y, 5, 5, true);
Flag;
end;
2: begin
Mouse(x, y, 5, 5, false);
ChooseOption('ttack');
Flag;
end;
end;
Result := True;
Break;
end;
end;
end;

function Kill2: boolean;
begin
if FindObjCustomEx(x, y, ['lf', 'alf', 'ttack'], [4411236, 11712444, 12107201], 10) then
begin
Mouse(x, y, 5, 5, true);
FFlag(5);
Result := True;
end;
end;

function FindGrassColor: Integer; //-20 + 20
var
H,S,L,X,Y,Z : Extended;
R,G,B,P,A,TestColor,xx,xy : Integer;
TPA : TPointArray;
begin
if Not(LoggedIn) then Exit;
xx:= MMCX;
xy := MMCY;
FindColorsSpiralTolerance(xx, xy, TPA, 5611431, MMX1, MMY1, MMX2, MMY2, 60)
P := High(TPA);
for A := 0 to P do
begin
if RS_OnMinimap(TPA[A].X, TPA[A].Y) then
begin
TestColor := GetColor(TPA[A].X, TPA[A].Y);
if SimilarColors(TestColor, 5611431, 50) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, -12, 28) then //-20 + 20
if InRange(R - B, 62, 102) then
if InRange(G - B, 54, 94) then
if InRange(Round(S) - Round(H), 3, 49) then//-15 + 15
if InRange(Round(L) - Round(H), 19, 0) then
if InRange(Round(S) - Round(L), -31, -1) then
if InRange(Round(X) - Round(Y), -11, 3) then //-7 + 7
if InRange(Round(Y) - Round(Z), 13, 27) then
if GetColor(TPA[A].X + 2, TPA[A].Y + 2) = TestColor then
if GetColor(TPA[A].X + 1, TPA[A].Y + 1) = TestColor then
begin
Result := TestColor;
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Color!');
Result := 0;
end;

function FindTreeRootColor: Integer; //-20 + 20
var
H,S,L,X,Y,Z : Extended;
R,G,B,P,A,TestColor,xx,xy : Integer;
TPA : TPointArray;
begin
if Not(LoggedIn) then Exit;
xx:= MMCX;
xy := MMCY;
FindColorsSpiralTolerance(xx, xy, TPA, 206396, MMX1, MMY1, MMX2, MMY2, 60)
P := High(TPA);
for A := 0 to P do
begin
if RS_OnMinimap(TPA[A].X, TPA[A].Y) then
begin
TestColor := GetColor(TPA[A].X, TPA[A].Y);
if SimilarColors(TestColor, 206396, 50) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, 2, 42) then //-20 + 20
if InRange(R - B, 37, 77) then
if InRange(G - B, 15, 55) then
if InRange(Round(S) - Round(H), 65, 17) then//-15 + 15
if InRange(Round(L) - Round(H), -13, 0) then
if InRange(Round(S) - Round(L), 63, 93) then
if InRange(Round(X) - Round(Y), -6, 8) then //-7 + 7
if InRange(Round(Y) - Round(Z), -5, 9) then
if GetColor(TPA[A].X + 2, TPA[A].Y + 2) = TestColor then
if GetColor(TPA[A].X + 1, TPA[A].Y + 1) = TestColor then
begin
Result := TestColor;
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Color!');
Result := 0;
end;

function FindTreeTopColor: Integer; //-20 + 20
var
H,S,L,X,Y,Z : Extended;
R,G,B,P,A,TestColor,xx,xy : Integer;
TPA : TPointArray;
begin
if Not(LoggedIn) then Exit;
xx:= MMCX;
xy := MMCY;
FindColorsSpiralTolerance(xx, xy, TPA, 539678, MMX1, MMY1, MMX2, MMY2, 60)
P := High(TPA);
for A := 0 to P do
begin
if RS_OnMinimap(TPA[A].X, TPA[A].Y) then
begin
TestColor := GetColor(TPA[A].X, TPA[A].Y);
if SimilarColors(TestColor, 539678, 50) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, -50, -10) then //-20 + 20
if InRange(R - B, 2, 42) then
if InRange(G - B, 32, 72) then
if InRange(Round(S) - Round(H), 35, 2) then//-15 + 15
if InRange(Round(L) - Round(H), -28, 0) then
if InRange(Round(S) - Round(L), 48, 78) then
if InRange(Round(X) - Round(Y), -9, 5) then //-7 + 7
if InRange(Round(Y) - Round(Z), -4, 10) then
if GetColor(TPA[A].X + 2, TPA[A].Y + 2) = TestColor then
if GetColor(TPA[A].X + 1, TPA[A].Y + 1) = TestColor then
begin
Result := TestColor;
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Color!');
Result := 0;
end;

function FindBlackRootColor: Integer; //-20 + 20
var
H,S,L,X,Y,Z : Extended;
R,G,B,P,A,TestColor,xx,xy : Integer;
TPA : TPointArray;
begin
if Not(LoggedIn) then Exit;
xx:= MMCX;
xy := MMCY;
FindColorsSpiralTolerance(xx, xy, TPA, 1549, MMX1, MMY1, MMX2, MMY2, 60)
P := High(TPA);
for A := 0 to P do
begin
if RS_OnMinimap(TPA[A].X, TPA[A].Y) then
begin
TestColor := GetColor(TPA[A].X, TPA[A].Y);
if SimilarColors(TestColor, 1549, 50) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, -13, 27) then //-20 + 20
if InRange(R - B, -7, 33) then
if InRange(G - B, -14, 26) then
if InRange(Round(S) - Round(H), 77, 10) then//-15 + 15
if InRange(Round(L) - Round(H), -20, 0) then
if InRange(Round(S) - Round(L), 82, 112) then
if InRange(Round(X) - Round(Y), -7, 7) then //-7 + 7
if InRange(Round(Y) - Round(Z), -7, 7) then
if GetColor(TPA[A].X + 2, TPA[A].Y + 2) = TestColor then
if GetColor(TPA[A].X + 1, TPA[A].Y + 1) = TestColor then
begin
Result := TestColor;
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Color!');
Result := 0;
end;

function FindDarkRootColor: Integer; //-20 + 20
var
H,S,L,X,Y,Z : Extended;
R,G,B,P,A,TestColor,xx,xy : Integer;
TPA : TPointArray;
begin
if Not(LoggedIn) then Exit;
xx:= MMCX;
xy := MMCY;
FindColorsSpiralTolerance(xx, xy, TPA, 6445, MMX1, MMY1, MMX2, MMY2, 60)
P := High(TPA);
for A := 0 to P do
begin
if RS_OnMinimap(TPA[A].X, TPA[A].Y) then
begin
TestColor := GetColor(TPA[A].X, TPA[A].Y);
if SimilarColors(TestColor, 6445, 50) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, 0, 40) then //-20 + 20
if InRange(R - B, 25, 65) then
if InRange(G - B, 5, 45) then
if InRange(Round(S) - Round(H), 76, 15) then//-15 + 15
if InRange(Round(L) - Round(H), -15, 0) then
if InRange(Round(S) - Round(L), 76, 106) then
if InRange(Round(X) - Round(Y), -7, 7) then //-7 + 7
if InRange(Round(Y) - Round(Z), -6, 8) then
if GetColor(TPA[A].X + 2, TPA[A].Y + 2) = TestColor then
if GetColor(TPA[A].X + 1, TPA[A].Y + 1) = TestColor then
begin
Result := TestColor;
Exit;
end;
end;
end;
end;
Writeln('Couldnt find Color!');
Result := 0;
end;

function Calibrate: boolean;
begin
{CalibrateDTM := DTMFromString('78DA637CCAC0C0F08A0105D8A8F1306800694' +
'620FE0F048CB240D65B5435DEBA7C703520C0781F48EC27A06631' +
'90F880AA46474A0455CD632021C088570D00610B0DFC'); }
CalibrateDTM := DTMFromString('78DA63E4666060E06340017FFE3031B002694' +
'620FE0F048CBC986ACE9C6180AB0101461E20C183AAE6DF3F3E54' +
'355CF8ED02AB01B9871F55CDDDBB6876F162AA01C9629823805F0' +
'D00B3750E35');
if DTMRotated(CalibrateDTM, x, y, MMX1, MMy1, mmx2, mmy2) then
begin
Mouse(x, y, 5, 5, true);
FFlag(0);
Result := True;
Calibrated := Calibrated + 1;
ReportVars[5] := ReportVars[5] + 1;
end else
Result := False;
end;

function EatTime: boolean; //stolen from haxor :D
begin
Result := not FindColor(x, y, 65280, 730, 30, 740, 40);
end;

procedure EatSome;
begin
if FindColorTolerance(x, y, FoodColor, mix1, miy1, mix2, miy2, 10) then
begin
Mouse(x, y, 5, 5, true);
Wait(500 + random(500));
end;
end;

procedure PickupHide(colors: TIntegerArray);
var
HideTPA: TPointArray;
Mid: TPoint;
k: integer;
begin
if not LoggedIn or FindDead then Exit;
for k := 0 to High(colors) do
if FindColorsTolerance(HideTPA, colors[k], MSX1, MSY1, MSX2, MSY2, 10) then
begin
Mid := MiddleTPA(HideTPA);
repeat
MMouse(Mid.x, Mid.y, 5, 5);
Wait(500);
until IsUpText('ake');
if IsUpText('ake') then
begin
GetMousePos(x, y);
Mouse(x, y, 5, 5, false);
ChooseOption('ake Cowhi');
Flag;
Hides := Hides + 1;
ReportVars[1] := ReportVars[1] + 1;
end;
end;
end;

function PickUpHide2: boolean;
begin
if FindObjCustomEx(x, y, ['eef', 'ake', 'ide'], [1319583, 11579578, 12829642, 5864095], 10) then
begin
Mouse(x, y, 5, 5, false);
ChooseOption('owhi');
Hides := Hides + 1;
ReportVars[1] := ReportVars[1] + 1;
FFlag(5);
Result := True;
end;
end;

procedure OpenDepositer;
var
Colors: TIntegerArray;
BankTPA: TPointArray;
i, k: integer;
begin
if FindObjCustomEx(x, y, ['pen'], [5987413, 4934727, 5855827, 3436859], 10) then
begin
Mouse(x, y, 5, 5, true);
FFlag(0);
end;
{Colors := [5987413, 4934727, 5855827, 3436859];
if not LoggedIn or FindDead then Exit;
for k := 0 to High(colors) do
if FindColorsTolerance(BankTPA, colors[k], MSX1, MSY1, MSX2, MSY2, 10) then
begin
repeat
for i := 0 to High(BankTPA) do
begin
MMouse(BankTPA[i].x, BankTPA[i].y, 5, 5);
Wait(500);
end;
until IsUpText('pen');
if IsUpText('pen') then
begin
GetMousePos(x, y);
Mouse(x, y, 5, 5, true);
Flag;
end;
end;}
end;

procedure OpenGate;
var
Colors: TIntegerArray;
GateTPA: TPointArray;
i, k: integer;
begin
Colors := [3892097, 3694203, 4222092];
if not LoggedIn or FindDead then Exit;
for k := 0 to High(colors) do
if FindColorsTolerance(GateTPA, colors[k], MSX1, MSY1, MSX2, MSY2, 10) then
begin
repeat
for i := 0 to High(GateTPA) do
begin
MMouse(GateTPA[i].x, GateTPA[i].y, 5, 5);
Wait(500);
end;
until IsUpText('pen');
if IsUpText('pen') then
begin
GetMousePos(x, y);
Mouse(x, y, 5, 5, true);
Flag;
end;
end;
end;

function LoadDDTMs(CaseNumber: integer): integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
dtSubPoints: Array [0..4] of TDTMPointDef;
WalkOneDDTM, TaCowsDDTM, TaBankDDTM: TDTM;
begin
case CaseNumber of
1: begin //FirstDeadWalkPoint
dtmMainPoint.x := 688;
dtmMainPoint.y := 84;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 685;
dtmSubPoints[0].y := 105;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 687;
dtmSubPoints[1].y := 74;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 686;
dtmSubPoints[2].y := 54;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 688;
dtmSubPoints[3].y := 75;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
2: begin //walk 4 death walk
dtmMainPoint.x := 602;
dtmMainPoint.y := 45;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 601;
dtmSubPoints[0].y := 22;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 606;
dtmSubPoints[1].y := 60;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 610;
dtmSubPoints[2].y := 47;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 600;
dtmSubPoints[3].y := 20;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
3: begin //to cows from bank
dtmMainPoint.x := 650;
dtmMainPoint.y := 112;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindTreeTopColor;
dtmMainPoint.Tolerance := 1;

dtSubPoints[0].x := 651; //main point root
dtSubPoints[0].y := 116;
dtSubPoints[0].AreaSize := 1;
dtSubPoints[0].AreaShape := 0;
dtSubPoints[0].Color := FindTreeRootColor;
dtSubPoints[0].Tolerance := 1;

dtSubPoints[1].x := 661; //lower tree root
dtSubPoints[1].y := 107;
dtSubPoints[1].AreaSize := 1;
dtSubPoints[1].AreaShape := 0;
dtSubPoints[1].Color := FindTreeRootColor;
dtSubPoints[1].Tolerance := 10;

dtSubPoints[2].x := 657; //top tree root
dtSubPoints[2].y := 99;
dtSubPoints[2].AreaSize := 1;
dtSubPoints[2].AreaShape := 0;
dtSubPoints[2].Color := FindTreeRootColor;
dtSubPoints[2].Tolerance := 10;

dtSubPoints[3].x := 659; //tree next to main
dtSubPoints[3].y := 114;
dtSubPoints[3].AreaSize := 1;
dtSubPoints[3].AreaShape := 0;
dtSubPoints[3].Color := FindTreeRootColor;
dtSubPoints[3].Tolerance := 10;

dtSubPoints[4].x := 659; //tree next to main top
dtSubPoints[4].y := 110;
dtSubPoints[4].AreaSize := 1;
dtSubPoints[4].AreaShape := 0;
dtSubPoints[4].Color := FindTreeTopColor;
dtSubPoints[4].Tolerance := 1;

TaCowsDDTM.MainPoint := dtmMainPoint;
TaCowsDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TaCowsDDTM);
end;
4: begin //to bank
dtmMainPoint.x := 820;
dtmMainPoint.y := 277;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindGrassColor;
dtmMainPoint.Tolerance := 1;

dtSubPoints[0].x := 827; //tree top point
dtSubPoints[0].y := 287;
dtSubPoints[0].AreaSize := 1;
dtSubPoints[0].AreaShape := 0;
dtSubPoints[0].Color := FindTreeTopColor;
dtSubPoints[0].Tolerance := 1;

dtSubPoints[1].x := 844; //npc color
dtSubPoints[1].y := 266;
dtSubPoints[1].AreaSize := 1;
dtSubPoints[1].AreaShape := 0;
dtSubPoints[1].Color := 60909;
dtSubPoints[1].Tolerance := 10;

dtSubPoints[2].x := 817; //bank symbol
dtSubPoints[2].y := 263;
dtSubPoints[2].AreaSize := 1;
dtSubPoints[2].AreaShape := 0;
dtSubPoints[2].Color := 1103344;
dtSubPoints[2].Tolerance := 10;

dtSubPoints[3].x := 861; //general store
dtSubPoints[3].y := 291;
dtSubPoints[3].AreaSize := 1;
dtSubPoints[3].AreaShape := 0;
dtSubPoints[3].Color := 66139;
dtSubPoints[3].Tolerance := 10;

dtSubPoints[4].x := 845; //tree root
dtSubPoints[4].y := 260;
dtSubPoints[4].AreaSize := 1;
dtSubPoints[4].AreaShape := 0;
dtSubPoints[4].Color := FindTreeRootColor;
dtSubPoints[4].Tolerance := 1;

TaBankDDTM.MainPoint := dtmMainPoint;
TaBankDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TaBankDDTM);
end;
5: begin //Second DeadWalkPoint
dtmMainPoint.x := 614;
dtmMainPoint.y := 45;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 629;
dtmSubPoints[0].y := 58;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 593;
dtmSubPoints[1].y := 29;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 615;
dtmSubPoints[2].y := 49;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 614;
dtmSubPoints[3].y := 51;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
6: begin //third dead walk
dtmMainPoint.x := 590;
dtmMainPoint.y := 58;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 600;
dtmSubPoints[0].y := 70;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 580;
dtmSubPoints[1].y := 39;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 598;
dtmSubPoints[2].y := 67;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 579;
dtmSubPoints[3].y := 32;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
7: begin //fifth walk point
dtmMainPoint.x := 624;
dtmMainPoint.y := 30;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 612;
dtmSubPoints[0].y := 12;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 621;
dtmSubPoints[1].y := 41;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 621;
dtmSubPoints[2].y := 26;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 626;
dtmSubPoints[3].y := 31;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
8: begin //sixth walk point
dtmMainPoint.x := 615;
dtmMainPoint.y := 35;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 577;
dtmSubPoints[0].y := 33;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 627;
dtmSubPoints[1].y := 46;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 602;
dtmSubPoints[2].y := 32;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 604;
dtmSubPoints[3].y := 29;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
9: begin //walk 7 point
dtmMainPoint.x := 573;
dtmMainPoint.y := 72;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 558;
dtmSubPoints[0].y := 68;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 609;
dtmSubPoints[1].y := 75;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 595;
dtmSubPoints[2].y := 76;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 572;
dtmSubPoints[3].y := 73;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
10: begin // walk 8 point
dtmMainPoint.x := 572;
dtmMainPoint.y := 72;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 559;
dtmSubPoints[0].y := 59;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 595;
dtmSubPoints[1].y := 77;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 580;
dtmSubPoints[2].y := 66;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 569;
dtmSubPoints[3].y := 76;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
11: begin // walk 9 point
dtmMainPoint.x := 568;
dtmMainPoint.y := 64;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 557;
dtmSubPoints[0].y := 67;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 599;
dtmSubPoints[1].y := 62;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 568;
dtmSubPoints[2].y := 68;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 607;
dtmSubPoints[3].y := 65;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
12: begin // walk 10 point
dtmMainPoint.x := 598;
dtmMainPoint.y := 42;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindRoadColor;
dtmMainPoint.Tolerance := 1;

dtmSubPoints[0].x := 586;
dtmSubPoints[0].y := 25;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindRoadColor;
dtmSubPoints[0].Tolerance := 1;

dtmSubPoints[1].x := 589;
dtmSubPoints[1].y := 65;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindRoadColor;
dtmSubPoints[1].Tolerance := 1;

dtmSubPoints[2].x := 592;
dtmSubPoints[2].y := 33;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindRoadColor;
dtmSubPoints[2].Tolerance := 1;

dtmSubPoints[3].x := 591;
dtmSubPoints[3].y := 76;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindRoadColor;
dtmSubPoints[3].Tolerance := 1;

WalkOneDDTM.MainPoint := dtmMainPoint;
WalkOneDDTM.SubPoints := dtmSubPoints;
Result := AddDTM(WalkOneDDTM);
end;
end;
end;

function DDTMmaster(Number:integer; Recursive:boolean):boolean; //stole this idea from king vash <3
var
MouseRan,ddtm,flagger:integer;
begin
if not LoggedIn then Exit;
Writeln('DDTMMaster(' + inttostr(number) + ')');
MakeCompass('n');
Result := False;
Flagger := 5;
MouseRan := 5;
case Number of
1: ddtm := LoadDDTMs(1);// 1 is first dead walk point
2: ddtm := LoadDDTMs(2);// 2 is fourth dead walk point
3: ddtm := LoadDDTMs(3);// 3 is to cows from bank
4: ddtm := LoadDDTMs(4);// 4 is to bank from cows
5: ddtm := LoadDDTMs(5);// 5 is second dead walk point
6: ddtm := LoadDDTMs(6);// 6 is third dead walk point
7: ddtm := LoadDDTMs(7);// 7 is fifth dead walk point
8: ddtm := LoadDDTMs(8);// 8 is sixth dead walk point
9: ddtm := LoadDDTMs(9);// 9 is seventh dead walk point
10: ddtm := LoadDDTMs(10);// 10 is eighth dead walk point
11: ddtm := LoadDDTMs(11);// 11 is ninth dead walk point
12: ddtm := LoadDDTMs(12);// 12 is tenth dead walk point
end;
if not LoggedIn then Exit;
if (DTMRotated(ddtm, x, y, mmx1 , mmy1, mmx2, mmy2)) then
begin
Status(Loop + 'Found DDTM(' + inttostr(number) + ')');
if rs_onminimap(x, y) and rs_onminimap(x, y) then
Mouse(x, y, MouseRan, MouseRan, true) // Yes: Click there
else
begin // No : DDTM plus offset is not onscreen
Writeln('DDTMMaster(' + inttostr(number) + ') OffMiniMap helper was just called from ' + loop) // Debug this fact
if rs_onminimap(x, y) and rs_onminimap(x, y) then
Mouse(x, y, 6, 6, True) // Yes : Click somewhere to DDTM
else Mouse(x, y, 3, 3, True); // No : Click close to DDTM // Wait till your Close
if (DTMRotated(ddtm, x, y, mmx1 , mmy1, mmx2, mmy2)) // Find The DDTM again
then Mouse(x, y, 5, 5, true) // Found and Clicked properly
end;
Result:=True; // Result is True!
Ftwait(4); // Look for Bad Stuff
FFlag(flagger); // Wait Till player is appropiate distance away
end;
FreeDTM(ddtm);
if not Result then
begin
if Recursive then Result := DDTMMaster(number, False)
else
begin
Players[CurrentPlayer].Loc := ('F in DDTMMaster(' + inttostr(number) + ')');
Writeln(Players[CurrentPlayer].Loc);
Inc(DDTMFailed[number]);
end;
end;
end;

procedure WalkToBank;
begin
if not DDTMMaster(4, true) then
if not RadialWalk(FindGrassColor, 0, 13, 51, 5, 5) then
if not RadialWalk(FindGrassColor, 322, 337, 53, 5, 5) then
begin
WriteLn('walking to Bank failed =[');
TakeMyScreen('WalkToBankFail');
NextPlayer(false);
end;
end;

procedure CloseIt;
begin
Exxey := BitmapFromString(6, 1, 'beNpLdCtIREUAPdcGiw==');
if FindBitmap(Exxey, x, y) then
begin
Mouse(x, y, 5, 5, true);
Wait(500 + random(500));
end;
end;

procedure DepositStuff;
begin
Hide := DTMFromString('78DA637461626078C2800276AE5FC7C005A41' +
'981F83F10300602D5DC6340038C4824907606AAB94E408D0550CD' +
'5D026AAC806ADE1150E30954F389801A7FA09AA7F8D50000C9150' +
'E5C');
if FindDTM(Hide, x, y, msx1, msy1, msx2, msy2) then
begin
Mouse(x, y, 5, 5, false);
ChooseOption('ll');
Wait(500 + random(500));
CloseIt;
Loads := Loads + 1;
LoadsDone := LoadsDone + 1;
ReportVars[3] := ReportVars[3] + 1;
end;
end;

procedure WalkToCows;
begin
if not DDTMMaster(3, true) then
if not RadialWalk(FindGrassColor, 152, 136, 43, 5, 5) then
if not RadialWalk(FindGrassColor, 118, 143, 43, 5, 5) then
begin
WriteLn('walking to Cows failed =[');
TakeMyScreen('WalkToCowsFail');
NextPlayer(false);
end;
end;

procedure FreeDTMs;
begin
FreeBitmap(Exxey);
FreeDTM(Hide);
end;

procedure Report;
begin
ClearReport;
SRLRandomsReport;
AddToReport('/\/\/\/\/\/\ cow killa /\/\/\/\/\/\');
AddToReport(Padr('[ Killed: ' + IntToStr(CowsKilled) + ' cows', 34) + ']');
AddToReport(Padr('[ Completed: ' + IntToStr(LoadsDone) + ' loads', 34) + ']');
AddToReport(Padr('[ Collected: ' + IntToStr(Hides) + ' hides', 34) + ']');
{AddToReport(Padr('[ Calibrated: ' + IntToStr(Calibrated) + ' times', 34) + ']');}
AddToReport(Padr('[ Ate: ' + IntToStr(Eaten) + ' times', 34) + ']');
AddToReport(Padr('[ Failed DDTMs: ', 34) + ']');
for i := 1 to 10 do
if (DDTMfailed[i] > 0) then
AddToReport(Padr('[' + IntToStr(i) + '=' + IntToStr(DDTMfailed[i]) + ',', 34) + ']');
AddToReport(Padr('[ Ran For: ' + TimeRunning, 34) + ']');
AddToReport('/\/\/\/\/\/\/ cow killa \/\/\/\/\/\/');
SendSRLReport;
end;

procedure MainLoop;
begin
repeat
repeat
repeat
RC;
if FindDead then DeadWalk;
if InFight then
begin
repeat
Wait(500 + random(500));
until not InFight;
end;
SetAngle(true);
MakeCompass('N');
if not Kill2{([4411236, 11712444, 12107201])} then
Calibrate;
begin
AntiBan;
TehRespond;
if InFight then
begin
repeat
Wait(500 + random(500));
until not InFight;
end;
CowsKilled := CowsKilled + 1;
ReportVars[0] := ReportVars[0] + 1;
PickUpHide2{([1319583, 11579578, 12829642, 5864095])};
if ShouldWeEat then
if EatTime then
begin
EatSome;
Eaten := Eaten + 1;
ReportVars[2] := ReportVars[2] + 1;
end;
Report;
end;
until InvFull;
WalkToBank;
DepositStuff;
WalkToCows;
Report;
until Loads >= NumLoads;
NextPlayer(LoggedIn);
Loads := 0;
until False;
end;

begin
SmartSetupEx(41, false, true);
wait(10000+random(5000));
SetTargetDC(SmartGetDC);
repeat
wait(100);
until(SmartGetColor(253, 233)<>1118604);
SetupSRL;
ScriptId := '817';
SRLId := MySRLId;
SRLPassword := MySRLPassword;
ClearDebug;
DeclarePlayers;
ActivateClient;
if LoggedIn then Logout;
LoginPlayer;
repeat
MainLoop;
ResetMe;
until False;
FreeDTMs;
end.

skilld u

2008-04-30 17:52:21

i can fix the counting errors, and im still working on a good way to calibrate. also trying to figure out what is wrong with the TPA's

Hackwhore

2008-05-01 01:03:29

He starts talking to himself..

"Hello"
"Lol"
"Funny funny"
"Omg"
"Rofl"
"Omg"
"Omg"
"Omg"
"Lol"
"Haha"

So I stopped it. =\.

Fyi to ericjzhang, yours doesn't work. At all. >.>.

Doesn't open up SMART

ericjzhang

2008-05-01 15:15:50

well it works for me…

saosin love

2008-05-06 00:43:48

ok i just started your script. so far so good. i have been watching and the responder seems a little much. maybe more of a wait time? i will post proggy when i wake up.

EDIT: accidently closed first proggy but this is what i had.

1 person got through 5 loads
2 person was stuck in lumby castle walking around
didnt get to the rest of the accounts

your on the right track with this script. tell me when you update and i will test again.

alberttai

2008-05-25 12:22:53

Weird it attacks goblins instead :o

the_box_boy

2009-03-12 06:03:11

has this script out dates as it dont work for me.

ian.

2009-03-12 06:15:10

you could look at the last post date..

5-25-2008..

this is 3-12-2009..

that means it's been about 10 months since the last post..

hopefully you can figure it out next time ;)

Marco40

2009-05-12 15:18:05

Please update this script.

impiwimpi

2009-05-12 18:41:19

They removed the bank there, so its pointless