SRL Archive - News and General

Is "Bugs Bunny" Starblaster?


Method

2008-11-11 20:50:46

I've received multiple PMs from user Bugs Bunny about leaking scripts, the latest of which is this (the title being I WANT MY ACC BACK 2 ADMIN!):

{This script will kill chickens in the chicken pen north east of Lumbridge.
It will also collect all the feathers, and pick up arrows if you are ranging.
You can set your character to pick up and bury bones using the
Players[i].Integers[1] field as follows...

0: Fill Inv with bones without burying (Combat focus)
1: Pick and bury bones (Prayer/Combat Focus)

************************************************** ****************************
** PLEASE NOTE THAT IF YOU SET TO 0 YOU WILL GET VERY FEW RANDOMS, **
** ALLOWING YOUR CHARACTERS TO AUTO FOR LONG PERIODS OF TIME. **
** IF YOU SET TO 1, YOU WILL REGULARLY ENCOUNTER RANDOMS **
** WHICH SHOULD MAKE YOUR CHARACTERS DROP OUT OF THE LOOP EARLIER. **
************************************************** ****************************

You can have your character train Attack, Strength, Defense, Random,
Range, Lowest, or Pure. Pure --> 40 Att, XX Str, and 1 Def.

Uses SMART, on lowest possible detail, unsigned, and 32 bit colors.
Many thanks SRL crew for such an amazing include, and to Solemn Wishes,
whose Simple Killer was the starting point for this script.

SETUP LINES 40-49, and declare your players and RC/SRLSTAT info in lines 67+.
This script is completely AUTOCOLOR, so no color picking is necessary}

program ChickenKiller;
{.include SRL\SRL\Misc\Smart.scar}
{.include SRL\SRL.scar}

var tmpx,tmpy,StartTime,TalkCount,WaterSymbolColor,Bri dgeColor,BoneDTM,BoneInvDTM,
DeadChicken,FeatherCount,Buried,ItemPicks,ChickenS pot1,FeatherText,Arrows,
ChurnColor,ChurnX,ChurnY,ChurnTol,DistXColor,DistY Color,Cooked,
ChickenPen,RandomTime,CharStartTime,CColor,Kills,C hickenText:integer;
var Ranging:boolean;
var CombColors,ArrowColors: Array of Integer;

const
StartPlayer =0;
PlayerTime =300; // Time for Each Player In Seconds. 300 usually best
{script adds another ~10-12 minutes if it Auto-Detects everything correctly.}
DebugScript =False;
VersionNumber ='2.45';
WorldNumber =61;
Autotalking =False;
AdjustCombatMode =True; //Use False if you have pre-set combat style on chars and don't want them changed.
MouseSpeeed =25;
PickAllFeathers =False; //Will spend more time picking up feathers.
PickUpArrows =False;

// Don't touch below this line without permission//
FontPath='.\CharsChat\';
ChickenColor1=857975; //Comb
ChickenColor2=2770781; //Brown Chicken
ChickenColor3=3496308; //Brown Chicken
ChickenColor4=3100776; //Brown Chicken
ChickenColor5=7180195; //White Chicken
ChickenColor6=8695237; //White Chicken
ChickenColor7=7838896; //White Chicken
FeatherColor=403204;
FeatherColor2=11185077;
BoneColor=13619157;
ArrowColor=923501;

procedure DeclarePlayers;
var a:integer;
begin
RCMaster := ''; //<- fill in the Nickname of the RC master.
RCLoc := 'Chickens';
SRLID := '';
SRLPassword := '';
HowManyPlayers := 3;
CurrentPlayer := StartPlayer;
NumberOfPlayers(HowManyPlayers); // set arraylength

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].integers[1] :=1; // 0 only collects bones, 1 also buries them
Players[0].Skill:='Pure'; //Strength, Attack, Range, Random, Defense, or Pure
Players[0].Active:=True;

Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].integers[1] :=1; //See Notes: 0,1,2,3,4
Players[1].Skill:='Pure'; //Strength, Attack, Range, Random, Defense, or Pure
Players[1].Active:=True;

Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].integers[1] :=1; //See Notes: 0,1,2,3,4
Players[2].Skill:='Pure'; //Strength, Attack, Range, Random, Defense, or Pure
Players[2].Active:=True;

for a:= 0 to HowManyPlayers-1 do
if lowercase(Players[a].Skill)='range' then
begin
Writeln('Ranging Character(s) Detected');
Ranging:=true;
end;

end;

procedure AutoTalk;
var
i:integer;
Say: array[1..23] of String;
begin
i:=0;
Say[1]:='Hey, be nice';
Say[2]:='can i have your bones'
Say[3]:='-Burp-';
Say[4]:='gotta lvl my prayer';
Say[5]:='im training my cooking';
Say[6]:='ure a noob';
Say[7]:='begone newbs';
Say[8]:='pray lvls';
Say[9]:='cook lvls';
Say[10]:='I really want a zombie Random';
Say[11]:='i hate pures';
Say[12]:='chickens are wussy';
Say[13]:='chickens cant kill u';
Say[14]:='prayer takes forever';
Say[15]:='stop it';
Say[16]:='im the garbage collector, lol';
Say[17]:='stupid eggs in the way';
Say[18]:='get lost noob';
Say[19]:='dont be stoopid';
Say[20]:='i hate stupid Random events';
Say[21]:='i like feathers';
Say[22]:='i luv this game';
Say[23]:='rofl';
if (Random(10)>8) then
begin
i:=(Random(23)+1);
TypeSend(Say[i]);
TalkCount:=TalkCount+1;
Writeln('Talking #'+IntToStr(TalkCount)+' - '+Say[i]);
Wait(250);
end;
end;

procedure SafeFlag;
var x,y,a,d1,d2:integer;
begin
if FlagPresent then
repeat
Wait(50);
Inc(a);
if a mod 20 = 0 then
begin
x:=MMCX;
y:=MMCY;
if FindColorSpiral(x,y,255,MMX1,MMY1,MMX2,MMY2) then
begin
d2:=Distance(MMCX,MMCY,x,y);
if d2=d1 then
begin
Mouse(MMCX-10+Random(20),MMCY-10+Random(20),0,0,True);
Exit;
end else d1:=d2;
end else Exit;
end;
if not(FlagPresent) then Exit;
until a>300;
end;

procedure WriteStatus(word:string);
var Sec,rate:integer;
begin
Sec:= (1+((Getsystemtime-StartTime)/1000));
Rate:=(3600*(Kills))/(Sec);
Status('Kill rate - '+IntToStr(rate)+'/hr --- '+word);
end;

procedure RunAway2;
var x,y,a,b,i:integer;
begin
WriteStatus('Calibrating...');
if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,180,ChurnTol) then
begin
if (Random(100)>50) then
begin
Mouse((tmpx+17+Random(6)-DistXColor),(tmpy-Random(5)-DistYColor),0,0,True);
SafeFlag;
FTWait(2);
end else
begin
if tmpx>(625+DistXColor) then
begin
if tmpy>(95+DistYColor)then
Mouse(263+60+Random(80),168+20+Random(20),0,0,True ) else
Mouse(263+60+Random(80),168-10-Random(10),0,0,True);
end else
begin
if tmpy>(95+DistYColor) then
Mouse(263-60-Random(80),168+20+Random(20),0,0,True) else
Mouse(263-60-Random(80),168-10-Random(10),0,0,True);
end;
SafeFlag;
FTWait(2);
end;
end;
FTWait(8);
if (FindColor(x,y,65280,250,130,270,180)) or
(FindColor(x,y,255,250,130,270,180)) then
begin
if not(Findcolor(x,y,65280,724,28,745,40)) then
begin
a:=Random(5);
Writeln('Running away!');
repeat
a:= a + 3;
Mouse(688 - a,124 - a,5,5,True);
Wait(Random(200) + 300);
until(flagpresent);
Wait(100);
GetMousePos(a,b);
a:=688-a;
b:=124-b;
SafeFlag;
if TabExists(2) then
GameTab(2);
i:=0;
repeat
if not(LoggedIn) then Break;
i:=i+1;
FindNormalRandoms;
Wait(Random(500) + 900);
if ((Random(10)mod 3)=0)then MMouse(Random(512), Random(336),0,0);
i:=i+1;
until (i>=10);
Wait(100);
repeat
if not(LoggedIn) then Break;
Mouse(608 + a,48 + b,2,2,True);
a:= a + 3;
b:= b + 3;
Wait(Random(200) + 300);
until(FlagPresent);
SafeFlag;
end;
end;
end;

procedure WriteIt(It:string);
begin
if (DebugScript) then Writeln(It);
end;

function FindUniqueMMSymbolColor(Name:string):boolean;
var x1,y1,x2,y2,TestColor,x,y,L,i,Symbol:integer;
var Points:array of TPoint;
var UniqueColor:boolean;
begin
if not(LoggedIn) then Exit;
SymbolAccuracy:=0.6;
if FindSymbol(x,y,'churn') then
begin
Writeln('Churn symbol found at '+IntToStr(x)+','+IntToStr(y));
Symbol := BitmapFromString(15, 15, 'z78DA3330C00B0CF142' +
'5201925E4753470B27134C255071E26DC16B1A2E80620B95C C24C' +
'A7CF2C20D574852C9B514853F056960289A4C9370A65DDAA0 757A' +
'A65D1EA475B941D5B20E00B5A601F8');
if x-20<MMX1 then x:=MMX1+20;
if y-20<MMY1 then y:=MMY1+20;
if x+20>MMX2 then x:=MMX2-20;
if y+20>MMY2 then y:=MMY2-20;
if FindBitmapToleranceIn(Symbol,x1,y1,x-20,y-20,x+20,y+20,100) then
begin
Writeln('Found BMP at '+IntToStr(x1)+','+IntToStr(y1));
x:=x1+7;
y:=y1+7;
x2:=x1+14;
y2:=y1+14;
end else
begin
Writeln('No BMP found');
x1:=x-8;
y1:=y-8;
x2:=x+15;
y2:=y+15;
end;
FreeBitmap(Symbol);
Result:=True;
if (lowercase(Name)='churn') then
begin
Writeln('Searching '+IntToStr(x1)+','+IntToStr(y1)+' '+IntToStr(x2)+','+IntToStr(y2));
FindColorsSpiralTolerance(x,y,Points,1588313,X1,Y1 ,X2,Y2,60);
UniqueColor:=True;
L:=GetArrayLength(Points);
for i:= 0 to L-1 do
begin
Wait(1);
UniqueColor:=True;
TestColor:=GetColor(Points[i].x,Points[i].y);
If Findcolor(tmpx,tmpy,TestColor,MMX1,MMY1,x1-1,MMY2) then UniqueColor:=False else
If Findcolor(tmpx,tmpy,TestColor,x2+1,MMY1,MMX2,MMY2) then UniqueColor:=False else
If Findcolor(tmpx,tmpy,TestColor,x1,MMY1,x2,y1-1) then UniqueColor:=False else
If Findcolor(tmpx,tmpy,TestColor,x1,y2+1,x2,MMY2) then UniqueColor:=False;
If (UniqueColor) then
begin
ChurnColor:=Testcolor;
Writeln('Unique Symbol Color '+inttostr(TestColor)+' found at '+inttostr(x)+', '+inttostr(y));
ChurnX:=x;
ChurnY:=y;
Exit;
end;
end;
Writeln('No unique symbol colors found!?');
ChurnColor:=0;
end;
end else
begin
Writeln('No symbol detected on Minimap!');
Result:=False;
end;
end;

procedure ClickM(mousex,mousey,ranx,rany:integer; left:boolean); {Solemn Wishes}
var tries,b,c:integer;
begin
GetMousePos(b,c);
HoldMouse(b,c,left);
repeat
Wait(10+Random(40));
tries:=tries+1;
until(tries>6);
Wait(10+Random(40));
ReleaseMouse(b,c,left);
Wait(500+Random(100));
end;

function InArray(Color:integer; ArrayType:string):boolean;
var x,y,i,j:integer;
var Points:TpointArray;
var ArrayColors: Array of Integer;
begin
case lowercase(ArrayType) of
'chicken': ArrayColors:=CombColors;
'arrow' : ArrayColors:=ArrowColors;
end;
i:=GetArrayLength(ArrayColors);
if i<5 then
begin
if i>0 then
begin
for j:= 0 to i-1 do
begin
if Color=ArrayColors[j] then Exit;
end;
end;
FindColorsSpiralTolerance(x,y,Points,Color,MSX1,MS Y1,MSX2,MSY2,0);
if GetArrayLength(Points)>10 then Exit;
Result:=True;
SetArrayLength(ArrayColors,i+1);
ArrayColors[i]:=Color;
case lowercase(ArrayType) of
'chicken': CombColors:=ArrayColors;
'arrow' : ArrowColors:=ArrayColors;
end;
end;
end;

function CheckAndAttack(x,y:integer; MonsterName:string): boolean;
var tmpx1,tmpy1:integer;
begin
Wait(10);
if not(FindColor(tmpx1,tmpy1,65280,x-15,y-20,x+15,y+15)) then
if not(FindColor(tmpx1,tmpy1,255,x-15,y-20,x+15,y+15)) then
if (x>35) then if (y>30) then MMouse(x,y,1,2);
Wait(50);
if not(IsUpText('Attack '+MonsterName)) then
begin
Wait(50);
if not(FindDTM(ChickenText,tmpx1,tmpy1,15,5,260,40)) then
begin
Result:=False;
Exit;
end;
end;
if InArray(CColor,'Chicken') then Writeln(IntToStr(CColor)+' added to Chicken Array');
ClickM(x,y,1,2,True);
WriteStatus('Attacked Monster');
Result:=True;
end;

function RemoveColor(ColorArray:array of integer; pos: integer): array of integer;
var l,a:integer;
begin
l:=GetArrayLength(ColorArray);
if pos=l-1 then
begin
SetArrayLength(ColorArray,l-1);
result:=ColorArray;
exit;
end else
begin
for a:= pos to l-2 do
ColorArray[a]:=ColorArray[a+1];
SetArrayLength(ColorArray,l-1);
result:=ColorArray;
end;
end;

function AttackChicken(AX1,AY1,AX2,AY2:integer):boolean;
var found:boolean;
var Tol1,Tol2,Tol3,Tol4,Tol5,Tol6,Tol7:integer;
var x,y,i,j,L,Blue,a1,a2,b:integer;
var
Points,LastPoint: TPointArray;
begin

Tol1:=10;Tol2:=20;Tol3:=20;Tol4:=20;
Tol5:=20;Tol6:=20;Tol7:=20;
FindNormalRandoms;
SetArrayLength(LastPoint,1);
SafeFlag;
for i:= 0 to (GetArrayLength(CombColors)-1) do
begin
j:=0;
x:=MSCX;
y:=MSCY;
FindColorsSpiralTolerance(x,y,Points,CombColors[i],AX1,AY1,AX2,AY2,0);
L:=GetArrayLength(Points);
if L>0 then
begin
if L>30 then
begin
Writeln('Removing excessive color');
CombColors:=RemoveColor(CombColors,i);
Result:=false;
Exit;
end;
for j:= 0 to L-1 do
begin
GetMousePos(a1,b);
if CheckAndAttack(Points[j].x,Points[j].y,'Chicken') then
begin
Inc(Players[CurrentPlayer].integers[0]);
Inc(Kills);
Result:=True;
if i>0 then
begin
j:=CombColors[i];
CombColors[i]:=CombColors[i-1];
CombColors[i-1]:=j;
Exit;
end;
end else
begin
GetMousePos(a2,b);
if abs(a1-a2)>5 then Break;
end;
end;
end;
end;
i:=0;
Wait(75);
FindColorsSpiralTolerance(x, y, Points, ChickenColor1, AX1,AY1,AX2,AY2, tol1);
L:=GetArrayLength(Points);
if L > 0 then
begin
if L>10 then Exit;
WriteStatus('Scanning '+IntToStr(L)+' points.');
for i:= 0 to L-1 do
begin
CColor:=GetColor(Points[i].x,Points[i].y);
Blue:= (CColor/256)/256;
if Blue > 10 then if Blue < 16 then
begin
if not(LoggedIn) then Break;
Found:=True;
Wait(25);
WriteStatus('Searching for Monsters...');
x:=Points[i].x;
y:=Points[i].y;
if FindColorSpiralTolerance(x,y,Chickencolor2,Points[i].x-5,Points[i].y-5,Points[i].x+5,Points[i].y+5,Tol2) then
begin
Wait(5);
end else
if (FindColorSpiralTolerance(x,y,Chickencolor3,Points [i].x-5,Points[i].y-5,Points[i].x+5,Points[i].y+5,Tol3)) then
begin
Wait(5);
end else
if (FindColorSpiralTolerance(x,y,Chickencolor4,Points [i].x-15,Points[i].y-15,Points[i].x+15,Points[i].y+15,Tol4)) then
begin
Wait(5);
end else
begin
WriteStatus('Did not find 2,3,4');
Found:=False;
end;
if not(Found) then
begin
if FindColorSpiralTolerance(x,y,Chickencolor5,Points[i].x-5,Points[i].y-5,Points[i].x+5,Points[i].y+5,Tol5) then
begin
Wait(5);
end else
if (FindColorSpiralTolerance(x,y,Chickencolor6,Points [i].x-5,Points[i].y-5,Points[i].x+5,Points[i].y+5,Tol6)) then
begin
Wait(5);
end else
if (FindColorSpiralTolerance(x,y,Chickencolor7,Points [i].x-15,Points[i].y-15,Points[i].x+15,Points[i].y+15,Tol7)) then
begin
Wait(5);
end else
begin
WriteStatus('Did not find 5,6,7');
x:=0;
y:=0;
Found:=False;
end;
end;
end;
if (Found) then
begin
if (x>30) then if (y>35) then
if CheckAndAttack(x,y,'Chicken') then
begin
Inc(Players[CurrentPlayer].integers[0]);
Inc(Kills);
Result:=True;
Exit;
end else Wait(250);
end;
LastPoint[0].x:=Points[i].x;
LastPoint[0].y:=Points[i].y;
i:=i+1;
end;
Result:=False;
end else Result:=False;
end;

function ClickTheText(text : String; x1, y1, x2, y2 : Integer; left : Boolean) : Boolean;
var TextLength, a, b : Integer;
begin
if(IsTextInAreaEx(x1,y1,x2,y2,a,b,Text,100,UpChars ,False,True,0,1,-1))then
begin
TextLength := Length(Text);
if(left = True)then
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True)
else
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, False);
Result:= True;
end else
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,'Take Feather',100,UpChars,False,True,0,1,-1))then
begin
TextLength := 12;
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True);

exit;
end else
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,'Take Bones',100,UpChars,False,True,0,1,-1))then
begin
TextLength := 10;
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True);
exit;
end else
if lowercase(Players[CurrentPlayer].Skill)='range' then
begin
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,' rrow',100,UpChars,False,True,0,1,-1))then
begin
TextLength := 6;
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True);
exit;
end;
end;
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,'Cancel',100, UpChars,False,True,0,1,-1))then
begin
TextLength := 6;
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True)
end;
end;

procedure PlayerStats; {From Dankness}
var Active: string;
var i: Integer;
begin
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~>');
AddToReport ('');
AddToReport (' # : Nick = A. - LVL : ATT STR DEF PRY HP COOK Time Kills Location Cook Bury');
for I := 0 to HowManyPlayers - 1 do
begin
if Players[i].Active=True then Active:='T' else Active:='F';
AddToReport ( ' ' + Inttostr ( I) + ' : ' + Players[i].Nick + ' = ' + Active
+'. - Lvl : '
+' '+inttostr(Players[i].level[1])
+' '+inttostr(Players[i].level[2])
+' '+inttostr(Players[i].level[3])
+' '+inttostr(Players[i].level[5])
+' '+inttostr(Players[i].level[8])
+' '+IntToStr(Players[i].level[18])+'. '
+'W: '+IntToStr(Players[i].Worked)+' min. '
+'K: '+ IntToStr(Players[i].integers[0])+'. '
+'L: '+Players[i].loc+' '
+'C: '+IntToStr(Players[i].integers[3])+' '
+'B: '+IntToStr(Players[i].integers[4]));
end;
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~>');
end;

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

procedure ProgressReport; {modified from Dankness}
var Sec,rate:integer;
begin
ClearReport;
SRLRandomsReport;
Sec:= (1+((Getsystemtime-StartTime)/1000));
Rate:=(3600*(Kills))/(Sec);
AddToReport(' ');
AddToReport ('/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ ');
AddToReport ('| --> ChickenKiller <-- '+VersionNumber+' --> by Tarajunky <-- |');
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~>');
AddToReport(' Worked for '+ TimeRunning);
if ( FeatherCount > 0 ) then
AddToReport(' Picked up feathers '+IntToStr(FeatherCount)+' times.');
AddToReport(' Killed '+IntToStr(Kills)+' chickens at a rate of '+IntToStr(Rate)+' per hour');
if ( ItemPicks > 0 ) then
AddToReport(' Picked ' +IntToStr(ItemPicks)+' Chicken/Bones');
if ( Cooked > 0 ) then
AddToReport(' Cooked and dropped '+IntToStr(Cooked)+' chickens.');
if ( Buried > 0 ) then
AddToReport(' Buried '+IntToStr(buried)+' bones');
PlayerStats;
end;

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

function InLumby:boolean; //Modified from Yakman
var x,y:integer;
begin
if not(WaterSymbolColor>0) then
begin
if FindSymbol(x,y,'water') then
begin
WaterSymbolColor:=GetSymbolColor(x,y,'water');
Writeln('WaterSymbolColor = '+intToStr(WaterSymbolColor));
Wait(1000);
Result:=InLumby;
Exit;
end else
begin
Result:=False;
Exit;
end;
end;
if FindColor(x,y,WaterSymbolColor,MMX1,MMY1,MMX2,MMCY ) then
if FindColor(x,y,WaterSymbolColor,MMX1,MMCY,MMX2,MMY2 ) then
begin
Result:=True;
Players[CurrentPlayer].Loc:='Lumby';
end;
end;

function WalkFromLumby:boolean;
var MMPos,MMX:integer;
var x,y:integer;
begin
if not(LoggedIn) then Exit;
if RoadColor=0 then RoadColor:=FindRoadColor;
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
SafeFlag;
MakeCompass('N');
SafeFlag;
MMPos:=MMY1;
repeat
MMPos:=MMPos+1;
if FindColor(x,y,RoadColor,MMX1,MMPos,MMX2,MMPos) then
begin
Mouse(x+Random(20),y+10+Random(5),0,0,True);
Wait(8000);
FFlag(5);
Break;
end;
Wait(5);
until MMPos>=MMY2;
if MMPos>=MMY2 then
begin
Players[CurrentPlayer].Loc:='Error';
repeat
FindNormalRandoms;
Wait(1000);
until not(LoggedIn);
Exit;
end;
RadialRoadWalk(RoadColor,270,360,35,0,0);
SafeFlag;
FTWait(1);
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
RadialRoadWalk(RoadColor,340,380,35,1,1);
RadialRoadWalk(RoadColor,390,340,35,1,1);
Mouse(700+Random(10),70+Random(10),0,0,True); // Blind Click
SafeFlag;
FTWait(2);
if BridgeColor=0 then BridgeColor:=FindBridgeColor;
if BridgeColor>0 then
begin
MMX:=MMX2;
repeat
MMX:=MMX-1;
if FindColor(x,y,BridgeColor,MMX,MMY1,MMX,MMY2) then
begin
if ((GetColor(x,y-1))=WaterColor) then
if ((Getcolor(x,y+9))=WaterColor) then
begin
Mouse(x+Random(2),y+Random(3),0,0,True);
Wait(5000+random(2000));
SafeFlag;
Writeln('Arrived at Upper Bridge');
Players[CurrentPlayer].Loc:='UpperBridge';
Break;
end;
end;
until MMX<=MMX1;
end else Mouse(700+Random(10),70+Random(10),0,0,True); //Blind Click
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
SafeFlag;
MakeCompass('N');
SafeFlag;
MMPos:=MMY1;
repeat
MMPos:=MMPos+1;
if FindColor(x,y,RoadColor,MMX1,MMPos,MMX2,MMPos) then
begin
Mouse(x+Random(5),y+10+Random(5),0,0,True);
Wait(8000);
FFlag(5);
Break;
end;
Wait(5);
until MMPos>=MMY2;
if MMPos>=MMY2 then
begin
Players[CurrentPlayer].Loc:='Error';
repeat
FindNormalRandoms;
Wait(1000);
until not(LoggedIn);
Exit;
end;
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
RadialRoadWalk(RoadColor,340,380,35,1,1);
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
RadialRoadWalk(RoadColor,270,390,35,1,1);
if FindColor(x,y,ChurnColor,MMX1,MMY1,MMX2,MMY2) then
begin
Writeln('Arrived at Chicken Pen');
Result:=True;
Mouse(x+12+Random(6),y-5-Random(5),0,0,True);
SafeFlag;
FTWait(2);
end;
end;

procedure BuryBones;
var x,y,i,n:integer;
begin
i:=0;
FindNormalRandoms;
repeat
i:=i+1;
n:=0;
if FindDTM(BoneInvDTM,tmpx,tmpy,555,205,740,465) then
begin
MMouse(tmpx-7+Random(14),tmpy-7+Random(14),0,0);
Wait(100+Random(50));
GetMousePos(tmpx,tmpy);
Mouse(tmpx,tmpy,2,2,True);
repeat
n:=n+1;
FTWait(2);
FindNormalRandoms;
if not(FindDTM(BoneInvDTM,tmpx,tmpy,tmpx-25,tmpy-25,tmpx+25,tmpy+25)) then Break;
until (n>=25);
if n<25 then
begin
buried:=buried+1;
Players[CurrentPlayer].integers[4]:=Players[CurrentPlayer].integers[4]+1;
ReportVars[1]:=ReportVars[1]+1;
end;
if (FindColor(x,y,65280,250,130,270,180)) or (FindColor(x,y,255,250,130,270,180)) then Runaway2;
FTWait(1);
end else Break;
until (i>=30);
end;

function FindNearestBone(AX1,AY1,AX2,AY2:integer):Tpoint;
var x,y,x1,y1:integer;
begin
Result.x:=0;
if not(FindDTM(BoneDTM,x1,y1,MSCX-60,MSCY-40,MSCX+60,MSCY+40)) then
begin
if not(FindDTM(BoneDTM,x1,y1,MSCX-120,MSCY-80,MSCX+120,MSCY+80)) then
begin
if not(FindDTM(BoneDTM,x1,y1,MSCX-180,MSCY-120,MSCX+180,MSCY+120)) then
begin
if not(FindDTM(BoneDTM,x1,y1,MSX1,MSY1+25,MSX2,MSY2)) then
begin
x1:=259;
y1:=183;
end;
end;
end;
end;
if x1<AX1 then exit;
if x1>AX2 then exit;
if y1<AY1 then exit;
if y1>AY2 then exit;
if FindColorSpiralTolerance(x1,y1,BoneColor,AX1,AY1,A X2,AY2,10) then
begin
if not(FindColorTolerance(x,y,ChickenColor1,x1-5,y1-5,x1+5,y1+5,10)) then
begin
Result.x:=x1;
Result.y:=y1;
Exit;
end;
end;
end;

function PickBones:boolean;
var c:Tpoint;
var x,y:integer;
begin
if (Findcolor(x,y,65536,685,430,725,460)) then
begin
if InvCount=28 then Exit;
end;
FindNormalRandoms;
c:=FindNearestBone(35,30,490,318);
if c.x>0 then
begin
WriteStatus('Found Bones. Picking up...');
begin
if FindColorTolerance(x,y,BoneColor,c.x-5,c.y-5,c.x+5,c.y+5,10) then Mmouse(x,y,0,0);
Wait(250+Random(100));
GetMousePos(x,y);
Mouse(x,y,0,0,False);
Wait(50+Random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then
begin
if ClickTheText('Take Bones',x-100,y-60,x+50,y+90,True) then
begin
Result:=True;
Inc(ItemPicks);
end else
MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
end else MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
end;
end;
FTWait(1);
if FlagPresent then
begin
SafeFlag;
FTWait(1+Random(1));
end else Wait(200+Random(50));
end;

function CheckAndTakeFeather:boolean;
var x,y:integer;
begin
if FindDTM(FeatherText,x,y,1,1,130,30) then
begin
WriteStatus('DTM Feather');
GetMousePos(x,y);
Mouse(x,y,2,3,True);
FTWait(1);
if FlagPresent then
begin
SafeFlag;
FTWait(2+Random(1));
end else Wait(200+Random(50));
Inc(FeatherCount);
Result:=True;
end else if IsUpText('Chicken') then
begin
GetMousePos(x,y);
Mouse(x-2,y-2,4,3,False);
Wait(50+Random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then
begin
if ClickTheText('Take Feather',x-100,y-60,x+50,y+90,True) then Inc(FeatherCount) else
MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
end;
FTWait(1);
if FlagPresent then
begin
SafeFlag;
FTWait(2+Random(1));
end else Wait(200+Random(50));
Result:=True;
end else WriteStatus('No feathers found!');
end;

function PickFeathers:boolean;
var x,y,x1,y1:integer;
begin
FindNormalRandoms;
if not(LoggedIn) then Exit;
WriteStatus('Picking Feathers');
WriteIt('Picking Feathers');
x:=259;y:=183;
if FindColorSpiralTolerance(x,y,feathercolor,5,25,435 ,318,10) then
begin
if FindColorTolerance(x1,y1,feathercolor2,x-5,y-5,x+2,y+5,5) then
begin
if FindColorTolerance(x,y,feathercolor,x-20,y-5,x+2,y+5,5) then
begin
Mmouse(x,y,3,1);
Wait(250+Random(100));
if CheckAndTakeFeather then Result:=True;
end;
end else
begin
if FindColorTolerance(x,y,feathercolor,x-20,y-5,x+2,y+5,5) then
begin
Mmouse(x,y,3,1);
Wait(250+Random(100));
if CheckAndTakeFeather then Result:=True;
end;
end;
end;
Wait(100+Random(150));
end;

procedure RemoveDuplicateColors;
var l1,l2,i1,i2:integer;
begin
l1:=GetArrayLength(ArrowColors);
l2:=GetArrayLength(CombColors);
for i1:= 0 to l1-1 do
begin
for i2:= 0 to l2-1 do
begin
if ArrowColors[i1]=CombColors[i2] then
begin
ArrowColors:=RemoveColor(ArrowColors,i1);
CombColors:=RemoveColor(CombColors,i2);
exit;
end;
end;
end;
end;

function CheckAndTakeArrow(x,y:integer):boolean;
begin
//Writeln('Looking at '+IntToStr(x)+','+IntToStr(y));
Wait(10);
if (x>35) then if (y>30) then MMouse(x,y,1,2);
Wait(50);
Wait(150+Random(100));
GetMousePos(x,y);
Mouse(x,y,0,0,False);
Wait(50+Random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then
begin
if ClickTheText(' rrow',x-100,y-60,x+50,y+90,True) then Result:=True else
MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
end else MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
if not Result then exit;
SafeFlag;
Wait(400+random(100));
if InArray(CColor,'Arrow') then Writeln(IntToStr(CColor)+' added to Arrow Array');
RemoveDuplicateColors;
WriteStatus('Picked up Arrow');
Result:=True;
end;

function PickArrows:boolean;
var x,y,i,j,L,a1,b:integer;
var P: TPointArray;
begin
if not(PickUpArrows) then exit;
WriteStatus('PickArrows');
FindNormalRandoms;
SafeFlag;
for i:= 0 to (GetArrayLength(ArrowColors)-1) do
begin
j:=0;
x:=MSCX;
y:=MSCY;
FindColorsSpiralTolerance(x,y,P,ArrowColors[i],MSX1,MSY1,MSX2,MSY2,0);
L:=GetArrayLength(P);
if L>0 then
begin
if L>200 then
begin
Writeln('Removing excessive color');
ArrowColors:=RemoveColor(ArrowColors,i);
Result:=false;
Exit;
end;
for j:= 0 to L-1 do
begin
x:=P[j].x;
y:=P[j].y;
if not(FindColorSpiralTolerance(x,y,Chickencolor5,P[j].x-2,P[j].y-2,P[j].x+2,P[j].y+2,20)) then
begin
GetMousePos(a1,b);
if CheckAndTakeArrow(P[j].x,P[j].y) then
begin
Inc(Arrows);
Result:=True;
Exit;
end else exit;
end;
end;
end;
end;
i:=0;
Wait(75);
FindColorsSpiralTolerance(x, y, P, ArrowColor, MSX1,MSY1,MSX2,MSY2, 2);
L:=GetArrayLength(P);
if L > 0 then
begin
WriteLn('Scanning '+IntToStr(L)+' points.');
for i:= 0 to L-1 do
begin
if not(LoggedIn) then Break;
if GetColor(p[i].x,p[i].y)=GetColor(P[i].x,P[i].y+1) then
begin
Wait(25);
WriteStatus('Searching for Arrows...');
x:=P[i].x;
y:=P[i].y;
if (x>30) then if (y>35) then
if CheckAndTakeArrow(x,y) then
begin
Inc(Arrows);
Result:=True;
Exit;
end else Wait(250);
end;
end;
end;
Result:=False;
end;

function PickItems(AX1,AY1,AX2,AY2:integer):boolean;
var c:Tpoint;
var Bury:boolean;
var x,y,d1,d2,Nearest:integer;
begin
Wait(50+Random(150));
if not(LoggedIn) then Exit;
if Ranging then
begin
if lowercase(Players[CurrentPlayer].Skill)='range' then
begin
if PickArrows then
begin
PickItems(AX1,AY1,AX2,AY2);
exit;
end;
end;
end;
case Players[CurrentPlayer].Integers[1] of
0: begin
if (Findcolor(x,y,65536,685,430,725,460)) then
begin
if (InvCount=28) then exit;
end;
end;
1: Bury:=True;
end;
if FlagPresent then
begin
SafeFlag;
FTWait(2+Random(1));
end else Wait(100+Random(50));
if Bury then
begin
if (Findcolor(x,y,65536,685,430,725,460)) then
begin
if (InvCount=28) then BuryBones;
end;
end;
if FindColorSpiralTolerance(x,y,feathercolor,AX1,AY1, AX2,AY2,10) then
d1:=Distance(MSCX,MSCY,x,y) else d1:=1000;
c:=FindNearestBone(AX1,AY1,AX2,AY2);
if c.x>0 then
begin
d2:=Distance(MSCX,MSCY,c.x,c.y);
end else d2:=1000;
if d1+d2=2000 then exit;
if d1<d2 then Nearest:=0 else Nearest:=1;
Result:=True;

case Nearest of
0: begin
if PickFeathers then Exit;
if PickBones then Exit;
Result:=False;
end;
1: begin
if PickBones then Exit;
if PickFeathers then Exit;
Result:=False;
end;
end;
end;

procedure FightLoop;
var x,y,i:integer;
begin
if not(LoggedIn) then Exit;
if PickAllFeathers then
begin
if PickFeathers then
begin
FTWait(1+random(1));
FightLoop;
Exit;
end;
end;
if AttackChicken(175,100,350,255) then
begin
i:=0;
Wait(300);
FFlag(0);
WriteStatus('Fighting Close Chicken');
if not(FindDTM(DeadChicken,x,y,185,95,340,240)) then
begin
repeat
if not(LoggedIn) then Break;
FTWait(1);
i:=i+1;
if (FindColor(x,y,65280,230,130,280,180)) or (FindColor(x,y,255,230,130,280,180)) then i:=0;
until (FindDTM(DeadChicken,x,y,185,95,340,240)) or (i>8);
end;
FindNormalRandoms;
if Random(100) mod 4 = 0 then PickFeathers;
if Random(100) mod 6 = 0 then PickItems(225,140,315,215);
FightLoop;
exit;
end;
if not(Findcolor(x,y,65536,685,430,725,460)) then
begin
if PickItems(225,140,315,215) then
begin
WriteStatus('Picked Close Item');
FTWait(1+random(1));
FightLoop;
Exit;
end;
end;
if not(AttackChicken(35,30,490,318)) then
begin
if Ranging then
if lowercase(Players[CurrentPlayer].Skill)='range' then PickArrows;
case Players[CurrentPlayer].Integers[1] of
0: if InvCount<28 then
begin
if PickItems(5,25,435,318) then exit;
end else if PickFeathers then exit;
1: if PickFeathers then
begin
FTWait(2+random(2));
PickItems(225,140,315,215);
exit;
end else if PickItems(5,25,435,318) then exit;
end;
WriteStatus('Calibrating...');
if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,180,ChurnTol) then
begin
if (Random(100)>85) then
begin
Mouse((tmpx+17+Random(6)-DistXColor),(tmpy-Random(5)-DistYColor),0,0,True);
WriteStatus('Cannot detect chicken');
FFlag(0);
FTWait(3);
end else
if (Random(100)>85) then
begin
if tmpx>(615+DistXColor) then
begin
if tmpy>(90+DistYColor)then
Mouse(263+60+Random(80),168+20+Random(20),0,0,True ) else
Mouse(263+60+Random(80),168-10-Random(10),0,0,True);
end else
begin
if tmpy>(90+DistYColor) then
Mouse(263-60-Random(80),168+20+Random(20),0,0,True) else
Mouse(263-60-Random(80),168-10-Random(10),0,0,True);
end;
FFlag(0);
FTWait(3);
end;
end;
Exit;
end;
i:=0;
Wait(300);
FFlag(0);
WriteStatus('Fighting Chicken');
if not(FindDTM(DeadChicken,x,y,185,95,340,240)) then
begin
repeat
if not(LoggedIn) then Break;
FTWait(1);
i:=i+1;
if (FindColor(x,y,65280,230,130,280,180)) or (FindColor(x,y,255,230,130,280,180)) then i:=0;
until (FindDTM(DeadChicken,x,y,185,95,340,240)) or (i>8);
end;
FindNormalRandoms;
FTWait(1);
if Random(100) mod 4 = 0 then PickFeathers;
if Random(100) mod 6 = 0 then PickItems(225,140,315,215);
if (Random(100)>93) then if (AutoTalking) then Autotalk;
end;

procedure LoadDTMs;
begin
DeadChicken := DTMFromString('78DA63FCC9C0C070820105FC87D28C301AA 4E' +
'60C0135628CC4A92160170022FB094D');
ChickenSpot1 := DTMFromString('78DA63AC666260F0644001CF5EBC669003D 28' +
'C40FC1F08188B806A4220722C58D48000633E420D2B3E35E1 04D4' +
'E412A106644E140135D940353104D43403D53811509302541 384A' +
'A26A562198311921A004CD32396');
ChickenPen := DTMFromString('78DA63DCC8C4C050C78002FC4D441834803 42' +
'310FF0702C6C50835CC5035CF5EBC669083AA0101B09A6202 6A76' +
'03D5941050B317A8A681809AF54035FD04D46C00AA990B61F 343C' +
'55E013117921A008FBC1C7A');
BoneDTM := DTMFromString('78DA636464646098CA80028EEEDDCB6004A 48' +
'1320CFF81809119538DA39138831C540D0830B2E037070400 BB89' +
'0B57');
feathertext:= DTMFromString('78DA6374636060E065400177BACD198C803 42' +
'310FF0702461720830B22C784450D08303A030941026ABC80 0427' +
'0135200E1F84CD8C4B4D24C2CD3035B7BBCC50D4000044351 0E0');
BoneInvDTM:= DTMFromString('78DA63CC61626078CC80026E5DBDCAC00FA 41' +
'981F83F1030E603D5DC6140038C4824908E07AA7948404D26 50CD' +
'5B026A2A806A9E1050930554739B809A34A09A57F8D50000C 9E00' +
'FD3');
ChickenText:=DTMFromString('78DA63B4616060E0644001 0F1FB132B801694' +
'620FE0F048C764086106E3520C0E802247809A80944A861C4 A526' +
'1C48081050138F700F132E356908BB70A90100A6C41502');
end;



function TryToFindMyself:boolean;
var x,y,i,FarmColor:integer;
begin
Result:=True;
i:=0;
SymbolAccuracy:=0.8;
repeat
if not(LoggedIn) then Exit;
if FindDTM(ChickenPen,tmpx,tmpy,515,5,760,180) then
begin
Players[CurrentPlayer].Loc:='Chickens';
Exit;
end else
if FindDTM(ChickenSpot1,tmpx,tmpy,515,5,760,180) then
begin
Players[CurrentPlayer].Loc:='Chickens';
Exit;
end else if FindSymbol(x,y,'churn') then
begin
Players[CurrentPlayer].Loc:='Chickens';
Exit;
end;
RandomTime:=Randomtime-10;
Wait(500+Random(500));
if InLumby then
begin
Players[CurrentPlayer].Loc:='Lumbridge';
if WalkFromLumby then Writeln('Walked from Lumby') else
Writeln('Lost walking from Lumby');
TryToFindMyself;
Exit;
end;
i:=i+1;
FTWait(6);
MakeCompass('n');
until (i>=3);
If FindColor(x,y,ChurnColor,515,80,740,160) then
begin
Players[CurrentPlayer].Loc:='Chickens';
RandomTime:=0;
Exit;
end;
FarmColor:=GetSymbolColor(x,y,'farming spot');
if FarmColor>0 then
begin
if FindColor(x,y,FarmColor,MMX1,MMY1,MMX2,MMCY) then
begin
Players[CurrentPlayer].Loc:='Chickens';
RandomTime:=0;
Exit;
end;
end;
Writeln('Could not find current location');
Players[CurrentPlayer].Loc:='Lost';
Result:=False;
repeat
Wait(1000);
FindNormalRandoms;
until(not(LoggedIn));
end;

procedure DoChats;
begin
SetChat('on',1);
SetChat('friends',2);
SetChat('off',3);
SetChat('off',4);
SetChat('off',5);
end;

procedure SetUp;
var i:integer;
begin;
SmartSetupEx(WorldNumber, True, False, False);
SetTargetDC(SmartGetDC);
SetupSRL;
ScriptID:='22';
FeatherCount:=0;
DeclarePlayers;
for i:= 0 to HowManyPlayers-1 do
begin
SetArrayLength(Players[i].Integers,5);
end;
TalkCount:=0;
LoadDTMs;
MouseSpeed:=MouseSpeeed+Random(2);
Status('Logging In');
LoginPlayer;
Status('Logged In - Waiting 5 sec');
Wait(5000);
StartTime:=GetSystemTime;
end;

Procedure SetCombatMode(combat:string);
var x,y:integer;
begin
WriteStatus('Selecting Combat Mode');
case combat of
'r': combat:='Random';
's': combat:='strength';
'a': combat:='attack';
'd': combat:='defense';
'p': combat:='pure';
'l': combat:='lowest';
end;
case combat of
'Random': begin
if (Random(300)>200) then combat:='attack' else
if (Random(200)>100) then combat:='strength' else
combat:='defense';
end;
'lowest': begin
if Players[CurrentPlayer].level[2]<Players[CurrentPlayer].level[1] then
begin
if Players[CurrentPlayer].level[3]<Players[CurrentPlayer].level[2] then
combat:='defense' else combat:='strength';
end else
begin
if Players[CurrentPlayer].level[3]<Players[CurrentPlayer].level[1] then
combat:='defense' else combat:='attack';
end;
end;
'pure': begin
if Players[CurrentPlayer].level[2]<15 then combat:='strength' else
if Players[CurrentPlayer].level[1]<30 then combat:='attack' else
if Players[CurrentPlayer].level[2]<25 then combat:='strength' else
if Players[CurrentPlayer].level[1]<40 then combat:='attack' else
combat:='strength';
end;
'dragon': begin
if Players[CurrentPlayer].level[3]<32 then combat:='defense' else
if Players[CurrentPlayer].level[2]<15 then combat:='strength' else
if Players[CurrentPlayer].level[1]<40 then combat:='attack' else
combat:='strength';
end;
end;
case combat of
'attack': SetFightMode(1);
'range': SetFightMode(2);
'strength': SetFightMode(2);
'defense': SetFightMode(4);
end;
Writeln('Player Fight mode set to '+combat);
if not(GetColor(617,372)=1579627) then //Retaliate On
begin
MMouse(620+Random(90),370+Random(20),5,5);
FTWait(2);
ClickM(x,y,1,2,True);
FTWait(4);
if not(GetColor(617,372)=1579627) then ClickM(x,y,1,2,True);
end;
end;

procedure StartItUp;
var x,y,i:integer;
begin
MouseSpeed:=MouseSpeeed+Random(2);
RandomTime:=Random(300);
if not(LoggedIn) then Exit;
i:=0;
Wait(1000);
FindNormalRandoms;
if TabExists(2) then
GetAllLevels else FindNormalRandoms;
if TabExists(2) then
GameTab(2) else FindNormalRandoms;
FTWait(1);
SetAngle(True);
FTWait(1);
ActivateClient;
FTWait(1);
DoChats;
if TabExists(1) then
Gametab(1);
FTWait(2);
if AdjustCombatMode then SetCombatMode(lowercase(Players[CurrentPlayer].Skill));
Wait(100);
SetRun(True);
FTWait(2);
SetRun(True);
FTWait(1);
if GetColor(698,387)=1974404 then
begin
MMouse(690+Random(30),360+Random(30),2,2);
GetMousePos(x,y);
Mouse(x,y,2,2,True);
end;
SafeFlag;
FTWait(1);
TryToFindMyself;
if FindDTM(ChickenPen,tmpx,tmpy,515,5,760,180) then
begin
Writeln('Found Chicken Pen');
Mouse(tmpx,tmpy-3,1,1,True);
Wait(250);
SafeFlag;
FTWait(3);
end else WriteIt('Did not find Chicken Pen');
FindUniqueMMSymbolColor('Churn');
Wait(50);
ChurnTol:=0;
MakeCompass('n');
if FindDTM(ChickenSpot1,x,y,515,5,760,180) then
begin
Writeln('Found reference point at '+IntToStr(x)+','+IntToStr(y));
if not(ChurnColor=0) then if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,160,ChurnTol) then
begin
RandomTime:=300+Random(200);
DistXColor:= ChurnX-x;
DistYColor:= ChurnY-y;
end else RandomTime:=Random(10);
end else
begin
Writeln('Did not find reference point');
RandomTime:=Random(10);
end;
ProgressReport;
CharStartTime:=GetSystemTime;
end;

procedure RepeatMe;
begin;
repeat;
StartItUp;
repeat
SymbolAccuracy:=0.8;
if Random(100) mod 10 = 0 then if not(TryToFindMyself) then Break;
if not(LoggedIn) then Break;
if not(ChurnColor=0) then if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,180,ChurnTol) then
begin
Players[CurrentPlayer].loc:='Chickens';
WriteIt('Churn Color found at '+IntToStr(tmpx)+', '+inttostr(tmpy));
if (tmpx>(670+DistXColor)) or (tmpx<(600+DistXColor)) or (tmpy>(120+DistYColor)) or (tmpy<(75+DistYColor)) then
begin
if not(PickFeathers) then
begin
Mouse((tmpx+17+Random(6)-DistXColor),(tmpy-Random(5)-DistYColor),0,0,True);
WriteStatus('Walked too far Color');
FTWait(1);
FFlag(0);
FTWait(3);
end;
end;
FightLoop;
end else
if FindDTM(ChickenSpot1,tmpx,tmpy,515,5,760,180) then
begin
Players[CurrentPlayer].loc:='Chickens';
WriteIt('Chicken Spot1 found at '+IntToStr(tmpx)+', '+inttostr(tmpy));
if (tmpx>655) or (tmpx<600) or (tmpy>110) or (tmpy<75) then
begin
if not(PickFeathers) then
begin
Mouse(tmpx+17+Random(6),tmpy-Random(5),0,0,True);
WriteStatus('Walked too far CS1');
FFlag(0);
FTWait(3);
end;
end;
FightLoop;
if Random(100) mod 3 = 0 then PickFeathers;
end;
if InChat('ammo') then
begin
Players[currentplayer].loc:='ammo';
Players[CurrentPlayer].Active:=False;
break;
end;
until (((Getsystemtime-CharStartTime)/1000)>(PlayerTime+RandomTime));
if (((Getsystemtime-CharStartTime)/1000)>(PlayerTime+RandomTime)) then
if PickFeathers then if PickFeathers then PickFeathers;
if (((Getsystemtime-CharStartTime)/1000)>(PlayerTime+RandomTime)) then
begin
WriteStatus('Logging Out');
if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,180,ChurnTol) then Mouse((tmpx+17+Random(6)-DistXColor),(tmpy-Random(5)-DistYColor),0,0,True);
LogOut;
Wait(150+Random(30));
Writeln('Changing Players');
NextPlayer(True);
end else if (lowercase(Players[currentplayer].loc)='chickens') then NextPlayer(True) else NextPlayer(False);
until (False);
end;

begin
Setup;
RepeatMe;
end.

spread THE WORD IM GIVING THIS SCRIPT OUT TO PUBLIC THIS WEEK.

ENJOY IT TILL IT LASTS.

IF YOU WANT ME TO STOP THAN GIVE ME 1 MONTH MEMBERS ON THIS ACC AND I WONT TALK OR ANYTHIN!



NAME STARTS WITH A "S" ENDS WITH A "0"


I find it interesting how he mentions Starblaster's account and that's led me to wonder if he really is Starblaster (or maybe has his password, who knows?). Do any moderators or administrators have more information?

P1nky

2008-11-11 20:51:43

yep just got and posted a thread right after yours :S

http://www.villavu.com/forum/showthread.php?t=38180

eeeehhhh no mods/admins on …


{This script will kill chickens in the chicken pen north east of Lumbridge.
It will also collect all the feathers, and pick up arrows if you are ranging.
You can set your character to pick up and bury bones using the
Players[i].Integers[1] field as follows...

0: Fill Inv with bones without burying (Combat focus)
1: Pick and bury bones (Prayer/Combat Focus)

************************************************** ****************************
** PLEASE NOTE THAT IF YOU SET TO 0 YOU WILL GET VERY FEW RANDOMS, **
** ALLOWING YOUR CHARACTERS TO AUTO FOR LONG PERIODS OF TIME. **
** IF YOU SET TO 1, YOU WILL REGULARLY ENCOUNTER RANDOMS **
** WHICH SHOULD MAKE YOUR CHARACTERS DROP OUT OF THE LOOP EARLIER. **
************************************************** ****************************

You can have your character train Attack, Strength, Defense, Random,
Range, Lowest, or Pure. Pure --> 40 Att, XX Str, and 1 Def.

Uses SMART, on lowest possible detail, unsigned, and 32 bit colors.
Many thanks SRL crew for such an amazing include, and to Solemn Wishes,
whose Simple Killer was the starting point for this script.

SETUP LINES 40-49, and declare your players and RC/SRLSTAT info in lines 67+.
This script is completely AUTOCOLOR, so no color picking is necessary}

program ChickenKiller;
{.include SRL\SRL\Misc\Smart.scar}
{.include SRL\SRL.scar}

var tmpx,tmpy,StartTime,TalkCount,WaterSymbolColor,Bri dgeColor,BoneDTM,BoneInvDTM,
DeadChicken,FeatherCount,Buried,ItemPicks,ChickenS pot1,FeatherText,Arrows,
ChurnColor,ChurnX,ChurnY,ChurnTol,DistXColor,DistY Color,Cooked,
ChickenPen,RandomTime,CharStartTime,CColor,Kills,C hickenText:integer;
var Ranging:boolean;
var CombColors,ArrowColors: Array of Integer;

const
StartPlayer =0;
PlayerTime =300; // Time for Each Player In Seconds. 300 usually best
{script adds another ~10-12 minutes if it Auto-Detects everything correctly.}
DebugScript =False;
VersionNumber ='2.45';
WorldNumber =61;
Autotalking =False;
AdjustCombatMode =True; //Use False if you have pre-set combat style on chars and don't want them changed.
MouseSpeeed =25;
PickAllFeathers =False; //Will spend more time picking up feathers.
PickUpArrows =False;

// Don't touch below this line without permission//
FontPath='.\CharsChat\';
ChickenColor1=857975; //Comb
ChickenColor2=2770781; //Brown Chicken
ChickenColor3=3496308; //Brown Chicken
ChickenColor4=3100776; //Brown Chicken
ChickenColor5=7180195; //White Chicken
ChickenColor6=8695237; //White Chicken
ChickenColor7=7838896; //White Chicken
FeatherColor=403204;
FeatherColor2=11185077;
BoneColor=13619157;
ArrowColor=923501;

procedure DeclarePlayers;
var a:integer;
begin
RCMaster := ''; //<- fill in the Nickname of the RC master.
RCLoc := 'Chickens';
SRLID := '';
SRLPassword := '';
HowManyPlayers := 3;
CurrentPlayer := StartPlayer;
NumberOfPlayers(HowManyPlayers); // set arraylength

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].integers[1] :=1; // 0 only collects bones, 1 also buries them
Players[0].Skill:='Pure'; //Strength, Attack, Range, Random, Defense, or Pure
Players[0].Active:=True;

Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].integers[1] :=1; //See Notes: 0,1,2,3,4
Players[1].Skill:='Pure'; //Strength, Attack, Range, Random, Defense, or Pure
Players[1].Active:=True;

Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].integers[1] :=1; //See Notes: 0,1,2,3,4
Players[2].Skill:='Pure'; //Strength, Attack, Range, Random, Defense, or Pure
Players[2].Active:=True;

for a:= 0 to HowManyPlayers-1 do
if lowercase(Players[a].Skill)='range' then
begin
Writeln('Ranging Character(s) Detected');
Ranging:=true;
end;

end;

procedure AutoTalk;
var
i:integer;
Say: array[1..23] of String;
begin
i:=0;
Say[1]:='Hey, be nice';
Say[2]:='can i have your bones'
Say[3]:='-Burp-';
Say[4]:='gotta lvl my prayer';
Say[5]:='im training my cooking';
Say[6]:='ure a noob';
Say[7]:='begone newbs';
Say[8]:='pray lvls';
Say[9]:='cook lvls';
Say[10]:='I really want a zombie Random';
Say[11]:='i hate pures';
Say[12]:='chickens are wussy';
Say[13]:='chickens cant kill u';
Say[14]:='prayer takes forever';
Say[15]:='stop it';
Say[16]:='im the garbage collector, lol';
Say[17]:='stupid eggs in the way';
Say[18]:='get lost noob';
Say[19]:='dont be stoopid';
Say[20]:='i hate stupid Random events';
Say[21]:='i like feathers';
Say[22]:='i luv this game';
Say[23]:='rofl';
if (Random(10)>8) then
begin
i:=(Random(23)+1);
TypeSend(Say[i]);
TalkCount:=TalkCount+1;
Writeln('Talking #'+IntToStr(TalkCount)+' - '+Say[i]);
Wait(250);
end;
end;

procedure SafeFlag;
var x,y,a,d1,d2:integer;
begin
if FlagPresent then
repeat
Wait(50);
Inc(a);
if a mod 20 = 0 then
begin
x:=MMCX;
y:=MMCY;
if FindColorSpiral(x,y,255,MMX1,MMY1,MMX2,MMY2) then
begin
d2:=Distance(MMCX,MMCY,x,y);
if d2=d1 then
begin
Mouse(MMCX-10+Random(20),MMCY-10+Random(20),0,0,True);
Exit;
end else d1:=d2;
end else Exit;
end;
if not(FlagPresent) then Exit;
until a>300;
end;

procedure WriteStatus(word:string);
var Sec,rate:integer;
begin
Sec:= (1+((Getsystemtime-StartTime)/1000));
Rate:=(3600*(Kills))/(Sec);
Status('Kill rate - '+IntToStr(rate)+'/hr --- '+word);
end;

procedure RunAway2;
var x,y,a,b,i:integer;
begin
WriteStatus('Calibrating...');
if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,180,ChurnTol) then
begin
if (Random(100)>50) then
begin
Mouse((tmpx+17+Random(6)-DistXColor),(tmpy-Random(5)-DistYColor),0,0,True);
SafeFlag;
FTWait(2);
end else
begin
if tmpx>(625+DistXColor) then
begin
if tmpy>(95+DistYColor)then
Mouse(263+60+Random(80),168+20+Random(20),0,0,True ) else
Mouse(263+60+Random(80),168-10-Random(10),0,0,True);
end else
begin
if tmpy>(95+DistYColor) then
Mouse(263-60-Random(80),168+20+Random(20),0,0,True) else
Mouse(263-60-Random(80),168-10-Random(10),0,0,True);
end;
SafeFlag;
FTWait(2);
end;
end;
FTWait(8);
if (FindColor(x,y,65280,250,130,270,180)) or
(FindColor(x,y,255,250,130,270,180)) then
begin
if not(Findcolor(x,y,65280,724,28,745,40)) then
begin
a:=Random(5);
Writeln('Running away!');
repeat
a:= a + 3;
Mouse(688 - a,124 - a,5,5,True);
Wait(Random(200) + 300);
until(flagpresent);
Wait(100);
GetMousePos(a,b);
a:=688-a;
b:=124-b;
SafeFlag;
if TabExists(2) then
GameTab(2);
i:=0;
repeat
if not(LoggedIn) then Break;
i:=i+1;
FindNormalRandoms;
Wait(Random(500) + 900);
if ((Random(10)mod 3)=0)then MMouse(Random(512), Random(336),0,0);
i:=i+1;
until (i>=10);
Wait(100);
repeat
if not(LoggedIn) then Break;
Mouse(608 + a,48 + b,2,2,True);
a:= a + 3;
b:= b + 3;
Wait(Random(200) + 300);
until(FlagPresent);
SafeFlag;
end;
end;
end;

procedure WriteIt(It:string);
begin
if (DebugScript) then Writeln(It);
end;

function FindUniqueMMSymbolColor(Name:string):boolean;
var x1,y1,x2,y2,TestColor,x,y,L,i,Symbol:integer;
var Points:array of TPoint;
var UniqueColor:boolean;
begin
if not(LoggedIn) then Exit;
SymbolAccuracy:=0.6;
if FindSymbol(x,y,'churn') then
begin
Writeln('Churn symbol found at '+IntToStr(x)+','+IntToStr(y));
Symbol := BitmapFromString(15, 15, 'z78DA3330C00B0CF142' +
'5201925E4753470B27134C255071E26DC16B1A2E80620B95C C24C' +
'A7CF2C20D574852C9B514853F056960289A4C9370A65DDAA0 757A' +
'A65D1EA475B941D5B20E00B5A601F8');
if x-20<MMX1 then x:=MMX1+20;
if y-20<MMY1 then y:=MMY1+20;
if x+20>MMX2 then x:=MMX2-20;
if y+20>MMY2 then y:=MMY2-20;
if FindBitmapToleranceIn(Symbol,x1,y1,x-20,y-20,x+20,y+20,100) then
begin
Writeln('Found BMP at '+IntToStr(x1)+','+IntToStr(y1));
x:=x1+7;
y:=y1+7;
x2:=x1+14;
y2:=y1+14;
end else
begin
Writeln('No BMP found');
x1:=x-8;
y1:=y-8;
x2:=x+15;
y2:=y+15;
end;
FreeBitmap(Symbol);
Result:=True;
if (lowercase(Name)='churn') then
begin
Writeln('Searching '+IntToStr(x1)+','+IntToStr(y1)+' '+IntToStr(x2)+','+IntToStr(y2));
FindColorsSpiralTolerance(x,y,Points,1588313,X1,Y1 ,X2,Y2,60);
UniqueColor:=True;
L:=GetArrayLength(Points);
for i:= 0 to L-1 do
begin
Wait(1);
UniqueColor:=True;
TestColor:=GetColor(Points[i].x,Points[i].y);
If Findcolor(tmpx,tmpy,TestColor,MMX1,MMY1,x1-1,MMY2) then UniqueColor:=False else
If Findcolor(tmpx,tmpy,TestColor,x2+1,MMY1,MMX2,MMY2) then UniqueColor:=False else
If Findcolor(tmpx,tmpy,TestColor,x1,MMY1,x2,y1-1) then UniqueColor:=False else
If Findcolor(tmpx,tmpy,TestColor,x1,y2+1,x2,MMY2) then UniqueColor:=False;
If (UniqueColor) then
begin
ChurnColor:=Testcolor;
Writeln('Unique Symbol Color '+inttostr(TestColor)+' found at '+inttostr(x)+', '+inttostr(y));
ChurnX:=x;
ChurnY:=y;
Exit;
end;
end;
Writeln('No unique symbol colors found!?');
ChurnColor:=0;
end;
end else
begin
Writeln('No symbol detected on Minimap!');
Result:=False;
end;
end;

procedure ClickM(mousex,mousey,ranx,rany:integer; left:boolean); {Solemn Wishes}
var tries,b,c:integer;
begin
GetMousePos(b,c);
HoldMouse(b,c,left);
repeat
Wait(10+Random(40));
tries:=tries+1;
until(tries>6);
Wait(10+Random(40));
ReleaseMouse(b,c,left);
Wait(500+Random(100));
end;

function InArray(Color:integer; ArrayType:string):boolean;
var x,y,i,j:integer;
var Points:TpointArray;
var ArrayColors: Array of Integer;
begin
case lowercase(ArrayType) of
'chicken': ArrayColors:=CombColors;
'arrow' : ArrayColors:=ArrowColors;
end;
i:=GetArrayLength(ArrayColors);
if i<5 then
begin
if i>0 then
begin
for j:= 0 to i-1 do
begin
if Color=ArrayColors[j] then Exit;
end;
end;
FindColorsSpiralTolerance(x,y,Points,Color,MSX1,MS Y1,MSX2,MSY2,0);
if GetArrayLength(Points)>10 then Exit;
Result:=True;
SetArrayLength(ArrayColors,i+1);
ArrayColors[i]:=Color;
case lowercase(ArrayType) of
'chicken': CombColors:=ArrayColors;
'arrow' : ArrowColors:=ArrayColors;
end;
end;
end;

function CheckAndAttack(x,y:integer; MonsterName:string): boolean;
var tmpx1,tmpy1:integer;
begin
Wait(10);
if not(FindColor(tmpx1,tmpy1,65280,x-15,y-20,x+15,y+15)) then
if not(FindColor(tmpx1,tmpy1,255,x-15,y-20,x+15,y+15)) then
if (x>35) then if (y>30) then MMouse(x,y,1,2);
Wait(50);
if not(IsUpText('Attack '+MonsterName)) then
begin
Wait(50);
if not(FindDTM(ChickenText,tmpx1,tmpy1,15,5,260,40)) then
begin
Result:=False;
Exit;
end;
end;
if InArray(CColor,'Chicken') then Writeln(IntToStr(CColor)+' added to Chicken Array');
ClickM(x,y,1,2,True);
WriteStatus('Attacked Monster');
Result:=True;
end;

function RemoveColor(ColorArray:array of integer; pos: integer): array of integer;
var l,a:integer;
begin
l:=GetArrayLength(ColorArray);
if pos=l-1 then
begin
SetArrayLength(ColorArray,l-1);
result:=ColorArray;
exit;
end else
begin
for a:= pos to l-2 do
ColorArray[a]:=ColorArray[a+1];
SetArrayLength(ColorArray,l-1);
result:=ColorArray;
end;
end;

function AttackChicken(AX1,AY1,AX2,AY2:integer):boolean;
var found:boolean;
var Tol1,Tol2,Tol3,Tol4,Tol5,Tol6,Tol7:integer;
var x,y,i,j,L,Blue,a1,a2,b:integer;
var
Points,LastPoint: TPointArray;
begin
Tol1:=10;Tol2:=20;Tol3:=20;Tol4:=20;
Tol5:=20;Tol6:=20;Tol7:=20;
FindNormalRandoms;
SetArrayLength(LastPoint,1);
SafeFlag;
for i:= 0 to (GetArrayLength(CombColors)-1) do
begin
j:=0;
x:=MSCX;
y:=MSCY;
FindColorsSpiralTolerance(x,y,Points,CombColors[i],AX1,AY1,AX2,AY2,0);
L:=GetArrayLength(Points);
if L>0 then
begin
if L>30 then
begin
Writeln('Removing excessive color');
CombColors:=RemoveColor(CombColors,i);
Result:=false;
Exit;
end;
for j:= 0 to L-1 do
begin
GetMousePos(a1,b);
if CheckAndAttack(Points[j].x,Points[j].y,'Chicken') then
begin
Inc(Players[CurrentPlayer].integers[0]);
Inc(Kills);
Result:=True;
if i>0 then
begin
j:=CombColors[i];
CombColors[i]:=CombColors[i-1];
CombColors[i-1]:=j;
Exit;
end;
end else
begin
GetMousePos(a2,b);
if abs(a1-a2)>5 then Break;
end;
end;
end;
end;
i:=0;
Wait(75);
FindColorsSpiralTolerance(x, y, Points, ChickenColor1, AX1,AY1,AX2,AY2, tol1);
L:=GetArrayLength(Points);
if L > 0 then
begin
if L>10 then Exit;
WriteStatus('Scanning '+IntToStr(L)+' points.');
for i:= 0 to L-1 do
begin
CColor:=GetColor(Points[i].x,Points[i].y);
Blue:= (CColor/256)/256;
if Blue > 10 then if Blue < 16 then
begin
if not(LoggedIn) then Break;
Found:=True;
Wait(25);
WriteStatus('Searching for Monsters...');
x:=Points[i].x;
y:=Points[i].y;
if FindColorSpiralTolerance(x,y,Chickencolor2,Points[i].x-5,Points[i].y-5,Points[i].x+5,Points[i].y+5,Tol2) then
begin
Wait(5);

end else
if (FindColorSpiralTolerance(x,y,Chickencolor3,Points [i].x-5,Points[i].y-5,Points[i].x+5,Points[i].y+5,Tol3)) then
begin
Wait(5);
end else
if (FindColorSpiralTolerance(x,y,Chickencolor4,Points [i].x-15,Points[i].y-15,Points[i].x+15,Points[i].y+15,Tol4)) then
begin
Wait(5);
end else
begin
WriteStatus('Did not find 2,3,4');
Found:=False;
end;
if not(Found) then
begin
if FindColorSpiralTolerance(x,y,Chickencolor5,Points[i].x-5,Points[i].y-5,Points[i].x+5,Points[i].y+5,Tol5) then
begin
Wait(5);
end else
if (FindColorSpiralTolerance(x,y,Chickencolor6,Points [i].x-5,Points[i].y-5,Points[i].x+5,Points[i].y+5,Tol6)) then
begin
Wait(5);
end else
if (FindColorSpiralTolerance(x,y,Chickencolor7,Points [i].x-15,Points[i].y-15,Points[i].x+15,Points[i].y+15,Tol7)) then
begin
Wait(5);
end else
begin
WriteStatus('Did not find 5,6,7');
x:=0;
y:=0;
Found:=False;
end;
end;
end;
if (Found) then
begin
if (x>30) then if (y>35) then
if CheckAndAttack(x,y,'Chicken') then
begin
Inc(Players[CurrentPlayer].integers[0]);
Inc(Kills);
Result:=True;
Exit;
end else Wait(250);
end;
LastPoint[0].x:=Points[i].x;
LastPoint[0].y:=Points[i].y;
i:=i+1;
end;
Result:=False;
end else Result:=False;
end;

function ClickTheText(text : String; x1, y1, x2, y2 : Integer; left : Boolean) : Boolean;
var TextLength, a, b : Integer;
begin
if(IsTextInAreaEx(x1,y1,x2,y2,a,b,Text,100,UpChars ,False,True,0,1,-1))then
begin
TextLength := Length(Text);
if(left = True)then
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True)
else
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, False);
Result:= True;
end else
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,'Take Feather',100,UpChars,False,True,0,1,-1))then
begin
TextLength := 12;
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True);
exit;
end else
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,'Take Bones',100,UpChars,False,True,0,1,-1))then
begin
TextLength := 10;
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True);
exit;
end else
if lowercase(Players[CurrentPlayer].Skill)='range' then
begin
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,' rrow',100,UpChars,False,True,0,1,-1))then
begin
TextLength := 6;
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True);
exit;
end;
end;
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,'Cancel',100, UpChars,False,True,0,1,-1))then
begin
TextLength := 6;
Mouse(a + 2 + Random(TextLength*6), b + Random(3) + 8,0,0, True)
end;
end;

procedure PlayerStats; {From Dankness}
var Active: string;
var i: Integer;
begin
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~>');
AddToReport ('');
AddToReport (' # : Nick = A. - LVL : ATT STR DEF PRY HP COOK Time Kills Location Cook Bury');
for I := 0 to HowManyPlayers - 1 do
begin
if Players[i].Active=True then Active:='T' else Active:='F';
AddToReport ( ' ' + Inttostr ( I) + ' : ' + Players[i].Nick + ' = ' + Active
+'. - Lvl : '
+' '+inttostr(Players[i].level[1])
+' '+inttostr(Players[i].level[2])
+' '+inttostr(Players[i].level[3])
+' '+inttostr(Players[i].level[5])
+' '+inttostr(Players[i].level[8])
+' '+IntToStr(Players[i].level[18])+'. '
+'W: '+IntToStr(Players[i].Worked)+' min. '
+'K: '+ IntToStr(Players[i].integers[0])+'. '
+'L: '+Players[i].loc+' '
+'C: '+IntToStr(Players[i].integers[3])+' '
+'B: '+IntToStr(Players[i].integers[4]));
end;
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~>');
end;

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

procedure ProgressReport; {modified from Dankness}
var Sec,rate:integer;
begin
ClearReport;
SRLRandomsReport;
Sec:= (1+((Getsystemtime-StartTime)/1000));
Rate:=(3600*(Kills))/(Sec);
AddToReport(' ');
AddToReport ('/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ ');
AddToReport ('| --> ChickenKiller <-- '+VersionNumber+' --> by Tarajunky <-- |');
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~>');
AddToReport(' Worked for '+ TimeRunning);
if ( FeatherCount > 0 ) then
AddToReport(' Picked up feathers '+IntToStr(FeatherCount)+' times.');
AddToReport(' Killed '+IntToStr(Kills)+' chickens at a rate of '+IntToStr(Rate)+' per hour');
if ( ItemPicks > 0 ) then
AddToReport(' Picked ' +IntToStr(ItemPicks)+' Chicken/Bones');
if ( Cooked > 0 ) then
AddToReport(' Cooked and dropped '+IntToStr(Cooked)+' chickens.');
if ( Buried > 0 ) then
AddToReport(' Buried '+IntToStr(buried)+' bones');
PlayerStats;
end;

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

function InLumby:boolean; //Modified from Yakman
var x,y:integer;
begin
if not(WaterSymbolColor>0) then
begin
if FindSymbol(x,y,'water') then
begin
WaterSymbolColor:=GetSymbolColor(x,y,'water');
Writeln('WaterSymbolColor = '+intToStr(WaterSymbolColor));
Wait(1000);
Result:=InLumby;
Exit;
end else
begin
Result:=False;
Exit;
end;
end;
if FindColor(x,y,WaterSymbolColor,MMX1,MMY1,MMX2,MMCY ) then
if FindColor(x,y,WaterSymbolColor,MMX1,MMCY,MMX2,MMY2 ) then
begin
Result:=True;
Players[CurrentPlayer].Loc:='Lumby';
end;
end;

function WalkFromLumby:boolean;
var MMPos,MMX:integer;
var x,y:integer;
begin
if not(LoggedIn) then Exit;
if RoadColor=0 then RoadColor:=FindRoadColor;
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
SafeFlag;
MakeCompass('N');
SafeFlag;
MMPos:=MMY1;
repeat
MMPos:=MMPos+1;
if FindColor(x,y,RoadColor,MMX1,MMPos,MMX2,MMPos) then
begin
Mouse(x+Random(20),y+10+Random(5),0,0,True);
Wait(8000);
FFlag(5);
Break;
end;
Wait(5);
until MMPos>=MMY2;
if MMPos>=MMY2 then
begin
Players[CurrentPlayer].Loc:='Error';
repeat
FindNormalRandoms;
Wait(1000);
until not(LoggedIn);
Exit;
end;
RadialRoadWalk(RoadColor,270,360,35,0,0);
SafeFlag;
FTWait(1);
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
RadialRoadWalk(RoadColor,340,380,35,1,1);
RadialRoadWalk(RoadColor,390,340,35,1,1);
Mouse(700+Random(10),70+Random(10),0,0,True); // Blind Click
SafeFlag;
FTWait(2);
if BridgeColor=0 then BridgeColor:=FindBridgeColor;
if BridgeColor>0 then
begin
MMX:=MMX2;
repeat
MMX:=MMX-1;
if FindColor(x,y,BridgeColor,MMX,MMY1,MMX,MMY2) then
begin
if ((GetColor(x,y-1))=WaterColor) then
if ((Getcolor(x,y+9))=WaterColor) then
begin
Mouse(x+Random(2),y+Random(3),0,0,True);
Wait(5000+random(2000));
SafeFlag;
Writeln('Arrived at Upper Bridge');
Players[CurrentPlayer].Loc:='UpperBridge';
Break;
end;
end;
until MMX<=MMX1;
end else Mouse(700+Random(10),70+Random(10),0,0,True); //Blind Click
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
SafeFlag;
MakeCompass('N');
SafeFlag;
MMPos:=MMY1;
repeat
MMPos:=MMPos+1;
if FindColor(x,y,RoadColor,MMX1,MMPos,MMX2,MMPos) then
begin
Mouse(x+Random(5),y+10+Random(5),0,0,True);
Wait(8000);
FFlag(5);
Break;
end;
Wait(5);
until MMPos>=MMY2;
if MMPos>=MMY2 then
begin
Players[CurrentPlayer].Loc:='Error';
repeat
FindNormalRandoms;
Wait(1000);
until not(LoggedIn);
Exit;
end;
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
RadialRoadWalk(RoadColor,340,380,35,1,1);
if not(FindColor(x,y,RoadColor,MMX1,MMY1,MMX2,MMY2)) then RoadColor:=FindRoadColor;
RadialRoadWalk(RoadColor,270,390,35,1,1);
if FindColor(x,y,ChurnColor,MMX1,MMY1,MMX2,MMY2) then
begin
Writeln('Arrived at Chicken Pen');
Result:=True;
Mouse(x+12+Random(6),y-5-Random(5),0,0,True);
SafeFlag;
FTWait(2);
end;
end;

procedure BuryBones;
var x,y,i,n:integer;
begin
i:=0;
FindNormalRandoms;
repeat
i:=i+1;
n:=0;
if FindDTM(BoneInvDTM,tmpx,tmpy,555,205,740,465) then
begin
MMouse(tmpx-7+Random(14),tmpy-7+Random(14),0,0);
Wait(100+Random(50));
GetMousePos(tmpx,tmpy);
Mouse(tmpx,tmpy,2,2,True);
repeat
n:=n+1;
FTWait(2);
FindNormalRandoms;
if not(FindDTM(BoneInvDTM,tmpx,tmpy,tmpx-25,tmpy-25,tmpx+25,tmpy+25)) then Break;
until (n>=25);
if n<25 then
begin
buried:=buried+1;
Players[CurrentPlayer].integers[4]:=Players[CurrentPlayer].integers[4]+1;
ReportVars[1]:=ReportVars[1]+1;
end;
if (FindColor(x,y,65280,250,130,270,180)) or (FindColor(x,y,255,250,130,270,180)) then Runaway2;
FTWait(1);
end else Break;
until (i>=30);
end;

function FindNearestBone(AX1,AY1,AX2,AY2:integer):Tpoint;
var x,y,x1,y1:integer;
begin
Result.x:=0;
if not(FindDTM(BoneDTM,x1,y1,MSCX-60,MSCY-40,MSCX+60,MSCY+40)) then
begin
if not(FindDTM(BoneDTM,x1,y1,MSCX-120,MSCY-80,MSCX+120,MSCY+80)) then
begin
if not(FindDTM(BoneDTM,x1,y1,MSCX-180,MSCY-120,MSCX+180,MSCY+120)) then
begin
if not(FindDTM(BoneDTM,x1,y1,MSX1,MSY1+25,MSX2,MSY2)) then
begin
x1:=259;
y1:=183;
end;
end;
end;
end;
if x1<AX1 then exit;
if x1>AX2 then exit;
if y1<AY1 then exit;
if y1>AY2 then exit;
if FindColorSpiralTolerance(x1,y1,BoneColor,AX1,AY1,A X2,AY2,10) then
begin
if not(FindColorTolerance(x,y,ChickenColor1,x1-5,y1-5,x1+5,y1+5,10)) then
begin
Result.x:=x1;
Result.y:=y1;
Exit;
end;
end;
end;

function PickBones:boolean;
var c:Tpoint;
var x,y:integer;
begin
if (Findcolor(x,y,65536,685,430,725,460)) then
begin
if InvCount=28 then Exit;
end;
FindNormalRandoms;
c:=FindNearestBone(35,30,490,318);
if c.x>0 then
begin
WriteStatus('Found Bones. Picking up...');
begin
if FindColorTolerance(x,y,BoneColor,c.x-5,c.y-5,c.x+5,c.y+5,10) then Mmouse(x,y,0,0);
Wait(250+Random(100));
GetMousePos(x,y);
Mouse(x,y,0,0,False);
Wait(50+Random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then
begin
if ClickTheText('Take Bones',x-100,y-60,x+50,y+90,True) then
begin
Result:=True;
Inc(ItemPicks);
end else
MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
end else MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
end;
end;
FTWait(1);
if FlagPresent then
begin
SafeFlag;
FTWait(1+Random(1));
end else Wait(200+Random(50));
end;

function CheckAndTakeFeather:boolean;
var x,y:integer;
begin
if FindDTM(FeatherText,x,y,1,1,130,30) then
begin
WriteStatus('DTM Feather');
GetMousePos(x,y);
Mouse(x,y,2,3,True);
FTWait(1);
if FlagPresent then
begin
SafeFlag;
FTWait(2+Random(1));
end else Wait(200+Random(50));
Inc(FeatherCount);
Result:=True;
end else if IsUpText('Chicken') then
begin
GetMousePos(x,y);
Mouse(x-2,y-2,4,3,False);
Wait(50+Random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then
begin
if ClickTheText('Take Feather',x-100,y-60,x+50,y+90,True) then Inc(FeatherCount) else
MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
end;
FTWait(1);
if FlagPresent then
begin
SafeFlag;
FTWait(2+Random(1));
end else Wait(200+Random(50));
Result:=True;
end else WriteStatus('No feathers found!');
end;

function PickFeathers:boolean;
var x,y,x1,y1:integer;
begin
FindNormalRandoms;
if not(LoggedIn) then Exit;
WriteStatus('Picking Feathers');
WriteIt('Picking Feathers');
x:=259;y:=183;
if FindColorSpiralTolerance(x,y,feathercolor,5,25,435 ,318,10) then
begin
if FindColorTolerance(x1,y1,feathercolor2,x-5,y-5,x+2,y+5,5) then
begin
if FindColorTolerance(x,y,feathercolor,x-20,y-5,x+2,y+5,5) then
begin
Mmouse(x,y,3,1);
Wait(250+Random(100));
if CheckAndTakeFeather then Result:=True;
end;
end else
begin
if FindColorTolerance(x,y,feathercolor,x-20,y-5,x+2,y+5,5) then
begin
Mmouse(x,y,3,1);
Wait(250+Random(100));
if CheckAndTakeFeather then Result:=True;
end;
end;
end;
Wait(100+Random(150));
end;

procedure RemoveDuplicateColors;
var l1,l2,i1,i2:integer;
begin
l1:=GetArrayLength(ArrowColors);
l2:=GetArrayLength(CombColors);
for i1:= 0 to l1-1 do
begin
for i2:= 0 to l2-1 do
begin
if ArrowColors[i1]=CombColors[i2] then
begin
ArrowColors:=RemoveColor(ArrowColors,i1);
CombColors:=RemoveColor(CombColors,i2);
exit;
end;
end;
end;
end;

function CheckAndTakeArrow(x,y:integer):boolean;
begin
//Writeln('Looking at '+IntToStr(x)+','+IntToStr(y));
Wait(10);
if (x>35) then if (y>30) then MMouse(x,y,1,2);
Wait(50);
Wait(150+Random(100));
GetMousePos(x,y);
Mouse(x,y,0,0,False);
Wait(50+Random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then
begin
if ClickTheText(' rrow',x-100,y-60,x+50,y+90,True) then Result:=True else
MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
end else MMouse(MSX1+Random(MSX2),MSY1+Random(MSY2),0,0);
if not Result then exit;
SafeFlag;
Wait(400+random(100));
if InArray(CColor,'Arrow') then Writeln(IntToStr(CColor)+' added to Arrow Array');
RemoveDuplicateColors;
WriteStatus('Picked up Arrow');
Result:=True;
end;

function PickArrows:boolean;
var x,y,i,j,L,a1,b:integer;
var P: TPointArray;
begin
if not(PickUpArrows) then exit;
WriteStatus('PickArrows');
FindNormalRandoms;
SafeFlag;
for i:= 0 to (GetArrayLength(ArrowColors)-1) do
begin
j:=0;
x:=MSCX;
y:=MSCY;
FindColorsSpiralTolerance(x,y,P,ArrowColors[i],MSX1,MSY1,MSX2,MSY2,0);
L:=GetArrayLength(P);
if L>0 then
begin
if L>200 then
begin
Writeln('Removing excessive color');
ArrowColors:=RemoveColor(ArrowColors,i);
Result:=false;
Exit;
end;
for j:= 0 to L-1 do
begin
x:=P[j].x;
y:=P[j].y;
if not(FindColorSpiralTolerance(x,y,Chickencolor5,P[j].x-2,P[j].y-2,P[j].x+2,P[j].y+2,20)) then
begin
GetMousePos(a1,b);
if CheckAndTakeArrow(P[j].x,P[j].y) then
begin
Inc(Arrows);
Result:=True;
Exit;
end else exit;
end;
end;
end;
end;
i:=0;
Wait(75);
FindColorsSpiralTolerance(x, y, P, ArrowColor, MSX1,MSY1,MSX2,MSY2, 2);
L:=GetArrayLength(P);
if L > 0 then
begin
WriteLn('Scanning '+IntToStr(L)+' points.');
for i:= 0 to L-1 do
begin
if not(LoggedIn) then Break;
if GetColor(p[i].x,p[i].y)=GetColor(P[i].x,P[i].y+1) then
begin
Wait(25);
WriteStatus('Searching for Arrows...');
x:=P[i].x;
y:=P[i].y;
if (x>30) then if (y>35) then
if CheckAndTakeArrow(x,y) then
begin
Inc(Arrows);
Result:=True;
Exit;
end else Wait(250);
end;
end;
end;
Result:=False;
end;

function PickItems(AX1,AY1,AX2,AY2:integer):boolean;
var c:Tpoint;
var Bury:boolean;
var x,y,d1,d2,Nearest:integer;
begin
Wait(50+Random(150));
if not(LoggedIn) then Exit;
if Ranging then
begin
if lowercase(Players[CurrentPlayer].Skill)='range' then
begin
if PickArrows then
begin
PickItems(AX1,AY1,AX2,AY2);
exit;
end;
end;
end;
case Players[CurrentPlayer].Integers[1] of
0: begin
if (Findcolor(x,y,65536,685,430,725,460)) then
begin
if (InvCount=28) then exit;
end;
end;
1: Bury:=True;
end;
if FlagPresent then
begin
SafeFlag;
FTWait(2+Random(1));
end else Wait(100+Random(50));
if Bury then
begin
if (Findcolor(x,y,65536,685,430,725,460)) then
begin
if (InvCount=28) then BuryBones;
end;
end;
if FindColorSpiralTolerance(x,y,feathercolor,AX1,AY1, AX2,AY2,10) then
d1:=Distance(MSCX,MSCY,x,y) else d1:=1000;
c:=FindNearestBone(AX1,AY1,AX2,AY2);
if c.x>0 then
begin
d2:=Distance(MSCX,MSCY,c.x,c.y);
end else d2:=1000;
if d1+d2=2000 then exit;
if d1<d2 then Nearest:=0 else Nearest:=1;
Result:=True;

case Nearest of
0: begin
if PickFeathers then Exit;
if PickBones then Exit;
Result:=False;
end;
1: begin
if PickBones then Exit;
if PickFeathers then Exit;
Result:=False;
end;
end;
end;

procedure FightLoop;
var x,y,i:integer;
begin
if not(LoggedIn) then Exit;
if PickAllFeathers then
begin
if PickFeathers then
begin
FTWait(1+random(1));
FightLoop;
Exit;
end;
end;
if AttackChicken(175,100,350,255) then
begin
i:=0;
Wait(300);
FFlag(0);
WriteStatus('Fighting Close Chicken');
if not(FindDTM(DeadChicken,x,y,185,95,340,240)) then
begin
repeat
if not(LoggedIn) then Break;
FTWait(1);
i:=i+1;
if (FindColor(x,y,65280,230,130,280,180)) or (FindColor(x,y,255,230,130,280,180)) then i:=0;
until (FindDTM(DeadChicken,x,y,185,95,340,240)) or (i>8);
end;
FindNormalRandoms;
if Random(100) mod 4 = 0 then PickFeathers;
if Random(100) mod 6 = 0 then PickItems(225,140,315,215);
FightLoop;
exit;
end;
if not(Findcolor(x,y,65536,685,430,725,460)) then
begin
if PickItems(225,140,315,215) then
begin
WriteStatus('Picked Close Item');
FTWait(1+random(1));
FightLoop;
Exit;
end;
end;
if not(AttackChicken(35,30,490,318)) then
begin
if Ranging then
if lowercase(Players[CurrentPlayer].Skill)='range' then PickArrows;
case Players[CurrentPlayer].Integers[1] of
0: if InvCount<28 then
begin
if PickItems(5,25,435,318) then exit;
end else if PickFeathers then exit;
1: if PickFeathers then
begin
FTWait(2+random(2));
PickItems(225,140,315,215);
exit;
end else if PickItems(5,25,435,318) then exit;
end;
WriteStatus('Calibrating...');
if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,180,ChurnTol) then
begin
if (Random(100)>85) then
begin
Mouse((tmpx+17+Random(6)-DistXColor),(tmpy-Random(5)-DistYColor),0,0,True);
WriteStatus('Cannot detect chicken');
FFlag(0);
FTWait(3);
end else
if (Random(100)>85) then
begin
if tmpx>(615+DistXColor) then
begin
if tmpy>(90+DistYColor)then
Mouse(263+60+Random(80),168+20+Random(20),0,0,True ) else
Mouse(263+60+Random(80),168-10-Random(10),0,0,True);
end else
begin
if tmpy>(90+DistYColor) then
Mouse(263-60-Random(80),168+20+Random(20),0,0,True) else
Mouse(263-60-Random(80),168-10-Random(10),0,0,True);
end;
FFlag(0);
FTWait(3);
end;
end;
Exit;
end;
i:=0;
Wait(300);
FFlag(0);
WriteStatus('Fighting Chicken');
if not(FindDTM(DeadChicken,x,y,185,95,340,240)) then
begin
repeat
if not(LoggedIn) then Break;
FTWait(1);
i:=i+1;
if (FindColor(x,y,65280,230,130,280,180)) or (FindColor(x,y,255,230,130,280,180)) then i:=0;
until (FindDTM(DeadChicken,x,y,185,95,340,240)) or (i>8);
end;
FindNormalRandoms;
FTWait(1);
if Random(100) mod 4 = 0 then PickFeathers;
if Random(100) mod 6 = 0 then PickItems(225,140,315,215);
if (Random(100)>93) then if (AutoTalking) then Autotalk;
end;

procedure LoadDTMs;
begin
DeadChicken := DTMFromString('78DA63FCC9C0C070820105FC87D28C301AA 4E' +
'60C0135628CC4A92160170022FB094D');
ChickenSpot1 := DTMFromString('78DA63AC666260F0644001CF5EBC669003D 28' +
'C40FC1F08188B806A4220722C58D48000633E420D2B3E35E1 04D4' +
'E412A106644E140135D940353104D43403D53811509302541 384A' +
'A26A562198311921A004CD32396');
ChickenPen := DTMFromString('78DA63DCC8C4C050C78002FC4D441834803 42' +
'310FF0702C6C50835CC5035CF5EBC669083AA0101B09A6202 6A76' +
'03D5941050B317A8A681809AF54035FD04D46C00AA990B61F 343C' +
'55E013117921A008FBC1C7A');
BoneDTM := DTMFromString('78DA636464646098CA80028EEEDDCB6004A 48' +
'1320CFF81809119538DA39138831C540D0830B2E037070400 BB89' +
'0B57');
feathertext:= DTMFromString('78DA6374636060E065400177BACD198C803 42' +
'310FF0702461720830B22C784450D08303A030941026ABC80 0427' +
'0135200E1F84CD8C4B4D24C2CD3035B7BBCC50D4000044351 0E0');
BoneInvDTM:= DTMFromString('78DA63CC61626078CC80026E5DBDCAC00FA 41' +
'981F83F1030E603D5DC6140038C4824908E07AA7948404D26 50CD' +
'5B026A2A806A9E1050930554739B809A34A09A57F8D50000C 9E00' +
'FD3');
ChickenText:=DTMFromString('78DA63B4616060E0644001 0F1FB132B801694' +
'620FE0F048C764086106E3520C0E802247809A80944A861C4 A526' +
'1C48081050138F700F132E356908BB70A90100A6C41502');
end;



function TryToFindMyself:boolean;
var x,y,i,FarmColor:integer;
begin
Result:=True;
i:=0;
SymbolAccuracy:=0.8;
repeat
if not(LoggedIn) then Exit;
if FindDTM(ChickenPen,tmpx,tmpy,515,5,760,180) then
begin
Players[CurrentPlayer].Loc:='Chickens';
Exit;
end else
if FindDTM(ChickenSpot1,tmpx,tmpy,515,5,760,180) then
begin
Players[CurrentPlayer].Loc:='Chickens';
Exit;
end else if FindSymbol(x,y,'churn') then
begin
Players[CurrentPlayer].Loc:='Chickens';
Exit;
end;
RandomTime:=Randomtime-10;
Wait(500+Random(500));
if InLumby then
begin
Players[CurrentPlayer].Loc:='Lumbridge';
if WalkFromLumby then Writeln('Walked from Lumby') else
Writeln('Lost walking from Lumby');
TryToFindMyself;
Exit;
end;
i:=i+1;
FTWait(6);
MakeCompass('n');
until (i>=3);
If FindColor(x,y,ChurnColor,515,80,740,160) then
begin
Players[CurrentPlayer].Loc:='Chickens';
RandomTime:=0;
Exit;
end;
FarmColor:=GetSymbolColor(x,y,'farming spot');
if FarmColor>0 then
begin
if FindColor(x,y,FarmColor,MMX1,MMY1,MMX2,MMCY) then
begin
Players[CurrentPlayer].Loc:='Chickens';
RandomTime:=0;
Exit;
end;
end;
Writeln('Could not find current location');
Players[CurrentPlayer].Loc:='Lost';
Result:=False;
repeat
Wait(1000);
FindNormalRandoms;
until(not(LoggedIn));
end;

procedure DoChats;
begin
SetChat('on',1);
SetChat('friends',2);
SetChat('off',3);
SetChat('off',4);
SetChat('off',5);
end;

procedure SetUp;
var i:integer;
begin;
SmartSetupEx(WorldNumber, True, False, False);
SetTargetDC(SmartGetDC);
SetupSRL;
ScriptID:='22';
FeatherCount:=0;
DeclarePlayers;
for i:= 0 to HowManyPlayers-1 do
begin
SetArrayLength(Players[i].Integers,5);
end;
TalkCount:=0;
LoadDTMs;
MouseSpeed:=MouseSpeeed+Random(2);
Status('Logging In');
LoginPlayer;
Status('Logged In - Waiting 5 sec');
Wait(5000);
StartTime:=GetSystemTime;
end;

Procedure SetCombatMode(combat:string);
var x,y:integer;
begin
WriteStatus('Selecting Combat Mode');
case combat of
'r': combat:='Random';
's': combat:='strength';
'a': combat:='attack';
'd': combat:='defense';
'p': combat:='pure';
'l': combat:='lowest';
end;
case combat of
'Random': begin
if (Random(300)>200) then combat:='attack' else
if (Random(200)>100) then combat:='strength' else
combat:='defense';
end;
'lowest': begin
if Players[CurrentPlayer].level[2]<Players[CurrentPlayer].level[1] then
begin
if Players[CurrentPlayer].level[3]<Players[CurrentPlayer].level[2] then
combat:='defense' else combat:='strength';
end else
begin
if Players[CurrentPlayer].level[3]<Players[CurrentPlayer].level[1] then
combat:='defense' else combat:='attack';
end;
end;
'pure': begin
if Players[CurrentPlayer].level[2]<15 then combat:='strength' else
if Players[CurrentPlayer].level[1]<30 then combat:='attack' else
if Players[CurrentPlayer].level[2]<25 then combat:='strength' else
if Players[CurrentPlayer].level[1]<40 then combat:='attack' else
combat:='strength';
end;
'dragon': begin
if Players[CurrentPlayer].level[3]<32 then combat:='defense' else
if Players[CurrentPlayer].level[2]<15 then combat:='strength' else
if Players[CurrentPlayer].level[1]<40 then combat:='attack' else
combat:='strength';
end;
end;
case combat of
'attack': SetFightMode(1);
'range': SetFightMode(2);
'strength': SetFightMode(2);
'defense': SetFightMode(4);
end;
Writeln('Player Fight mode set to '+combat);
if not(GetColor(617,372)=1579627) then //Retaliate On
begin
MMouse(620+Random(90),370+Random(20),5,5);
FTWait(2);
ClickM(x,y,1,2,True);
FTWait(4);
if not(GetColor(617,372)=1579627) then ClickM(x,y,1,2,True);
end;
end;

procedure StartItUp;
var x,y,i:integer;
begin
MouseSpeed:=MouseSpeeed+Random(2);
RandomTime:=Random(300);
if not(LoggedIn) then Exit;
i:=0;
Wait(1000);
FindNormalRandoms;
if TabExists(2) then
GetAllLevels else FindNormalRandoms;
if TabExists(2) then
GameTab(2) else FindNormalRandoms;
FTWait(1);
SetAngle(True);
FTWait(1);
ActivateClient;
FTWait(1);
DoChats;
if TabExists(1) then
Gametab(1);
FTWait(2);
if AdjustCombatMode then SetCombatMode(lowercase(Players[CurrentPlayer].Skill));
Wait(100);
SetRun(True);
FTWait(2);
SetRun(True);
FTWait(1);
if GetColor(698,387)=1974404 then
begin
MMouse(690+Random(30),360+Random(30),2,2);
GetMousePos(x,y);
Mouse(x,y,2,2,True);
end;
SafeFlag;
FTWait(1);
TryToFindMyself;
if FindDTM(ChickenPen,tmpx,tmpy,515,5,760,180) then
begin
Writeln('Found Chicken Pen');
Mouse(tmpx,tmpy-3,1,1,True);
Wait(250);
SafeFlag;
FTWait(3);
end else WriteIt('Did not find Chicken Pen');
FindUniqueMMSymbolColor('Churn');
Wait(50);
ChurnTol:=0;
MakeCompass('n');
if FindDTM(ChickenSpot1,x,y,515,5,760,180) then
begin
Writeln('Found reference point at '+IntToStr(x)+','+IntToStr(y));
if not(ChurnColor=0) then if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,160,ChurnTol) then
begin
RandomTime:=300+Random(200);
DistXColor:= ChurnX-x;
DistYColor:= ChurnY-y;
end else RandomTime:=Random(10);
end else
begin
Writeln('Did not find reference point');
RandomTime:=Random(10);
end;
ProgressReport;
CharStartTime:=GetSystemTime;
end;

procedure RepeatMe;
begin;
repeat;
StartItUp;
repeat
SymbolAccuracy:=0.8;
if Random(100) mod 10 = 0 then if not(TryToFindMyself) then Break;
if not(LoggedIn) then Break;
if not(ChurnColor=0) then if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,180,ChurnTol) then
begin
Players[CurrentPlayer].loc:='Chickens';
WriteIt('Churn Color found at '+IntToStr(tmpx)+', '+inttostr(tmpy));
if (tmpx>(670+DistXColor)) or (tmpx<(600+DistXColor)) or (tmpy>(120+DistYColor)) or (tmpy<(75+DistYColor)) then
begin
if not(PickFeathers) then
begin
Mouse((tmpx+17+Random(6)-DistXColor),(tmpy-Random(5)-DistYColor),0,0,True);
WriteStatus('Walked too far Color');
FTWait(1);
FFlag(0);
FTWait(3);
end;
end;
FightLoop;
end else
if FindDTM(ChickenSpot1,tmpx,tmpy,515,5,760,180) then
begin
Players[CurrentPlayer].loc:='Chickens';
WriteIt('Chicken Spot1 found at '+IntToStr(tmpx)+', '+inttostr(tmpy));
if (tmpx>655) or (tmpx<600) or (tmpy>110) or (tmpy<75) then
begin
if not(PickFeathers) then
begin
Mouse(tmpx+17+Random(6),tmpy-Random(5),0,0,True);
WriteStatus('Walked too far CS1');
FFlag(0);
FTWait(3);
end;
end;
FightLoop;
if Random(100) mod 3 = 0 then PickFeathers;
end;
if InChat('ammo') then
begin
Players[currentplayer].loc:='ammo';
Players[CurrentPlayer].Active:=False;
break;
end;
until (((Getsystemtime-CharStartTime)/1000)>(PlayerTime+RandomTime));
if (((Getsystemtime-CharStartTime)/1000)>(PlayerTime+RandomTime)) then
if PickFeathers then if PickFeathers then PickFeathers;
if (((Getsystemtime-CharStartTime)/1000)>(PlayerTime+RandomTime)) then
begin
WriteStatus('Logging Out');
if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760 ,180,ChurnTol) then Mouse((tmpx+17+Random(6)-DistXColor),(tmpy-Random(5)-DistYColor),0,0,True);
LogOut;
Wait(150+Random(30));
Writeln('Changing Players');
NextPlayer(True);
end else if (lowercase(Players[currentplayer].loc)='chickens') then NextPlayer(True) else NextPlayer(False);
until (False);
end;

begin
Setup;
RepeatMe;
end.

GIVE ME MY ADMINS OR I WILL RELEASE THIS SCRIPT SOMETIMES THIS WEEK! AND ALL OTHER SRL MEMBER SCRIPTS...

SPREAD THE WORD.


heres a thread of a chicken gettin a PM from bugs.

http://www.villavu.com/forum/showthread.php?t=38175?p=498927#post498927

dammit.

pwnaz0r

2008-11-11 20:55:05

Interesting. I'll get on that for you :)

EDIT:

// Takes out IP address pm me if you need it.
He's using a proxy I guess, no hostname. Hostname = '.'

EDIT2:

Anybody know someone here from Chicago that would do this?

P1nky

2008-11-11 21:11:29

n0pe.

starblaster1000 is not from Usa for sure. unless hes in college in the US?

tarajunky

2008-11-11 21:13:26

I know it's Starblaster, that's why I put the ^_^.

I thought I'd mess with him a little. LOL.

P1nky

2008-11-11 21:14:32

From: tarajunky
I know it's Starblaster, that's why I put the ^_^.

I thought I'd mess with him a little. LOL.


hahaha

lmao still hes gonna keep on using a proxy and do this?:confused:

pwnaz0r

2008-11-11 21:15:26

wait what do you mean lol? Where did you put the ^_^

tarajunky

2008-11-11 21:17:22

Well, he can PM anybody he wants with a new account, and we can't really prevent him. He could MSN it to anybody and we couldn't stop him either, so I don't see the difference.

Unless we can IP ban, it's just cleanup after the fact.

Re: ^_^ I put that on the public thread.

His IP address matches IScript and HappyScripter and Love Scripts and iN00b, which have all been banned for the same type of thing.

pwnaz0r

2008-11-11 21:26:04

I don't see how he thinks this could possibly work. Holding members scripts hostage? For real? I don't think the admins think that it will be that big of a deal.

As for IP Ban, we can do it. We did it to Mage of Begu even though he used proxy, and we can do it to Star. I have the proxy IP if anyone needs it.

P1nky

2008-11-11 21:33:39

the thing is he can keep on using different Proxies..


btw can someone suspend star right now?

so he cant read this if he isnt suspended atm.

edit:
tara did you delete one of my posts ;P? on tat public thread.

tarajunky

2008-11-11 21:36:54

Yes, you let the cat out of the bag. Tsk tsk. LOL

P1nky

2008-11-11 21:38:37

From: tarajunky
Yes, you let the cat out of the bag. Tsk tsk. LOL


lol woopsy :Psorry.

Iron Man

2008-11-11 21:50:22

Why do people always have to do this type of thing other than just asking for a ban, or he could have just banned himself while he was an administrator instead of doing all this and losing respect (which he obviously doesn't care for anyways).

Is he just trying to leave with a bang, or create more drama for this community?

P1nky

2008-11-11 21:52:15

hes obviously mad that he lost his admin privilege ?


quite immature lol.

[-jesus-]

2008-11-11 22:03:51

Why doesn't SRL just block all requests from ports other than port 80? Proxys lag websites anyways…

pwnaz0r

2008-11-11 22:04:20

Actually, Joker, we banned mage of begu because we found out he was using a proxy and banned him entirely. don't ask me how but its done.

TViYH

2008-11-11 23:01:20

Just got a pm from this guy.

Forwarded it to Wizzup?.

Widget

2008-11-11 23:18:09

Can't you do something with cookies to figure out if it's him and try to cookie-ban him? :p

P1nky

2008-11-11 23:29:12

From: Widget
Can't you do something with cookies to figure out if it's him and try to cookie-ban him? :p


i doubt it.
he was using a proxy so there must be something that wont let you see it idk?

thats whole purpose's of proxies. lol

TViYH

2008-11-11 23:31:03

Depending on if he used it correctly.

Some proxy websites allow you to "remove cookies", "unsession cookies", etc.

He may not have done that.

But, with proxies, I doubt you could find it.

P1nky

2008-11-11 23:37:57

just ban the IP of the proxy and if this happens again, we try the cookie method?

TViYH

2008-11-11 23:40:01

Proxy IP := .;

Proxys don't show the hostname. I believe you need the hostname to retrieve the IP.

P1nky

2008-11-11 23:42:30

Pwnaz0r says he got it, i wonder hOw ;o

TViYH

2008-11-11 23:47:37

Just look at his name. "Pwnaz0r".

That's how. Lol.

goider

2008-11-12 00:12:41

throughtout the almost the whole history of these forums there have been goons like this, always they get taken care of, they get bored and give up on the crusade… If only the Germans had been leachers.

nov 11

Naike

2008-11-12 01:37:09

What-a-fool.

Immature on its finest! Doesnt get better then this people, so watch it and enjoy :).

Also, That script is an old chicken killer? Not the new one?

Widget

2008-11-12 02:54:07

Yeah, I just realized cookies won't work since they'll only be sent to pages from their own domain (e.g. proxy.org won't get srl-forums.com cookies)

The Claw

2008-11-12 05:03:09

If anyone has any other info just PM one of us, we're onto it. Closed

Wizzup?

2008-11-12 05:11:23

This guy is obviously not StarBlaster,and he also has not been on StarBlaste100's account.