lakerzz8
2007-04-09 01:25:43
<!– BEGIN TEMPLATE: formanswers –>
lakerzz8 - SRL Member Application Form
lakerzz8
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
PHP and Java
Other Communitys
None, this one is the best
How Long have You Played Runescape
3 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I started playing Runescape about 3 years ago and immediately got bored. This led to me find ways to cheat, scam, etc. Not too long ago, I discovered Scar and my dreams came true. I then learned to code through various tutorials and some friends who had some pretty good knowledge. This a script which I did myself and my friend checked it out and fixed a few minor errors. I'd say I've been coding for about 1 month and a half now. I am getting better everyday and hopefully can continue to improve as a member of your community.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
lakerzz8 - SRL Member Application Form
lakerzz8
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
PHP and Java
Other Communitys
None, this one is the best
How Long have You Played Runescape
3 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I started playing Runescape about 3 years ago and immediately got bored. This led to me find ways to cheat, scam, etc. Not too long ago, I discovered Scar and my dreams came true. I then learned to code through various tutorials and some friends who had some pretty good knowledge. This a script which I did myself and my friend checked it out and fixed a few minor errors. I'd say I've been coding for about 1 month and a half now. I am getting better everyday and hopefully can continue to improve as a member of your community.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{This script will collect raw chickens and bones in the chicken pen north east
of Lumbridge. It will cook the chickens and bury the bones. It will also
collect all the feathers. You can set your character to collect bones,
chickens, or both using the Players[i].Integer1 field as follows...
0: Pick and cook chicken (Cooking focus)
1: Pick and bury bones (Prayer Focus)
2: Pick and cook/bury bones/chicken (Cooking/Prayer focus)
Uses the normal client, on low detail, 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 26-31, and declare your players in lines 43+.
This script is AUTOCOLOR, so no color picking is necessary}
program ChickenSweeper;
{.include SRL\SRL.scar}
var tmpx,tmpy,StartTime,Upchar,TalkCount,SmallFont,{Lumby,Walked,NoWalked,}
FeatherCount,Buried,ChickenSpot1,BoneDTM,
ChurnColor,ChurnX,ChurnY,ChurnTol,DistXColor,DistYColor,Cooked,
ChickenPen,RandomTime,CharStartTime,Feathertext,GenericChickenInv:integer;
const
StartPlayer =0;
PlayerTime =300; // Time for Each Player In Seconds.
{script adds another ~10-12 minutes if it Auto-Detects everything correctly.}
DebugScript =False;
VersionNumber ='1.01';
MouseSpeeed =10;
// Don't touch below this line without permission//
FontPath='.\CharsChat\';
ChickenColor1=529512;
FeatherColor=10240;
FeatherColor2=11185077;
BoneColor=13619157;
RawChickenColor=9606328;
procedure DeclarePlayers;
begin
HowManyPlayers := 2;
CurrentPlayer := StartPlayer;
NumberOfPlayers(HowManyPlayers); // set arraylength
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Loc :='Chickens';
Players[0].Integer1 :=2; //0: Chickens, 1: Bones, 2: Both
Players[0].Active:=True;
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Loc :='Chickens';
Players[1].Integer1 :=2;
Players[1].Active:=True;
end;
Procedure WriteStatus(word:string);
var Sec,rate:integer;
begin
Sec:= (1+((Getsystemtime-StartTime)/1000));
Rate:=(3600*(Cooked+Buried))/(Sec);
Status('Cook/Bury rate - '+IntToStr(rate)+'/hr --- '+word);
end;
procedure SafeFlag;
var i,xl,yl:integer;
begin
repeat
wait(50);
i:=i+1;
if not(FlagPresent) then exit;
until (i>=80);
if (FlagPresent) then
begin
if FindColor(XL, YL, 255, MMX1, MMY1, MMX2, MMY2) then
Mouse(XL, YL+14, 2, 2,true) else Mouse(MMCX,MMCY,5,5,true);
end;
SafeFlag;
end;
function FindTheRoadColor: Integer;
var red, green, blue, TestColor, a, b, GenericColor: Integer;
begin
GenericColor := 5987170;
Flag;
a := MMX1;
b := MMY1;
repeat
b := b + 1;
repeat;
a := a + 1;
if FindColorTolerance(x, y, GenericColor, a, b, MMX2, MMY2, 60) then
begin
if a = MMX1 + 1 then b := y;
a := x;
TestColor := GetColor(x, y);
red := (TestColor mod 256);
green := ((TestColor / 256) mod 256);
blue := ((TestColor / 256) / 256);
if Red - Green >= 5 then if Red - Green <= 10 then
if Red - Blue >= 5 then if Red - Blue <= 10 then
begin
if GetColor(a + 5, b + 5) = TestColor then
if GetColor(a + 3, b + 3) = TestColor then
if GetColor(a, b + 5) = TestColor then
if GetColor(a + 5, b) = TestColor then
if GetColor(a, b + 3) = TestColor then
if GetColor(a + 3, b) = TestColor then
if GetColor(a + 5, b + 3) = TestColor then
if GetColor(a + 3, b + 5) = TestColor then
begin
Result := TestColor;
RoadColor := TestColor;
WriteLn('RoadColor = ' + IntToStr(TestColor));
Exit;
end;
end;
end else a := MMX2;
until a >= MMX2;
a := MMX1;
until b >= MMY2;
WriteLn('Could not find Road Color!');
Result := 0;
end;
procedure RunAway;
var 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);
Flag;
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;
Flag;
FTWait(2);
end;
end;
FTWait(4);
if (FindColor(x,y,65280,250,130,260,180)) or
(FindColor(x,y,255,250,130,260,180)) 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=true);
wait(100);
GetMousePos(a,b);
a:=688-a;
b:=124-b;
SafeFlag;
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;
Procedure FindThoseRandoms;
begin
if InBlack then
repeat
if (FindColor(x,y,65280,250,130,260,180)) or
(FindColor(x,y,255,250,130,260,180)) then Runaway;
Wait(1000);
until not(LoggedIn);
if NoGameTab then
repeat
wait(1000);
until not(LoggedIn);
FindNormalRandoms;
end;
procedure WriteIt(It:string);
begin
if (DebugScript) then Writeln(It);
end;
function FindUniqueMMSymbolColor(Name:string;x1,y1,x2,y2:integer):boolean;
var BMP,TestColor,x,y:integer;
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));
x1:=x-5;
y1:=y-5;
x2:=x+20;
y2:=y+15;
result:=true;
x:=x1;y:=y1;
if (lowercase(Name)='churn') then
begin
WriteIt('Searching '+IntToStr(x1)+','+IntToStr(y1)+' '+IntToStr(x2)+','+IntToStr(y2));
Uniquecolor:=true;
repeat
repeat;
Uniquecolor:=true;
TestColor:=GetColor(x,y);
If Findcolorspiral(tmpx,tmpy,testcolor,515,1,x1-1,180) then uniquecolor:=false else
If Findcolorspiral(tmpx,tmpy,testcolor,x2+1,1,760,180) then uniquecolor:=false else
If Findcolor(tmpx,tmpy,testcolor,x1,1,x2,y1-1) then uniquecolor:=false else
If Findcolor(tmpx,tmpy,testcolor,x1,y2+1,x2,180) 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;
FreeBitmap(BMP);
Exit;
end;
WriteStatus('Checking position '+inttostr(x)+', '+inttostr(y));
y:=y+1;
until (y>=y2+1);
y:=y1;
x:=x+1;
until (x>=x2+1);
Writeln('No unique symbol colors found!?');
FreeBitmap(BMP);
ChurnColor:=0;
end;
end else
begin
Writeln('No symbol BMP detected on Minimap!');
FreeBitmap(BMP);
Result:=false;
end;
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) + 7,0,0, true)
else
Mouse(a + 2 + random(TextLength*6), b + random(3) + 7,0,0, false);
result:= true;
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) + 7,0,0, true)
end else
if(IsTextInAreaEx(x1,y1,x2,y2+50,a,b,'Take Raw chicken',100,UpChars,False,True,0,1,-1))then
begin
TextLength := 16;
Mouse(a + 2 + random(TextLength*6), b + random(3) + 7,0,0, 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) + 7,0,0, true)
end else
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) + 7,0,0, true)
end;
end;
procedure RandomsReport;
begin
AddtoReport('/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\');
AddToReport('| SRL Randoms Report |');
AddToReport('| [url]www.villu-reborn.com[/url] |');
AddtoReport('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
if (Logs > 0) then AddtoReport('| Logged in : ' + SRLReportInStyle(Logs));
if (Trades > 0) then AddtoReport('| Trade[s] Made : ' + SRLReportInStyle(Trades));
if (NOTrades > 0) then AddtoReport('| Trade[s] Missed : ' + SRLReportInStyle(NOTrades));
if (Fights > 0) then AddtoReport('| Fight Random[s] : ' + SRLReportInStyle(Fights));
if (Talks > 0) then AddtoReport('| Talking Random[s] : ' + SRLReportInStyle(Talks));
if (Dwarfs > 0) then AddtoReport('| Dwarfs[s] Solved : ' + SRLReportInStyle(Dwarfs));
if (Ricks > 0) then AddtoReport('| Rick[s] Solved : ' + SRLReportInStyle(Ricks));
if (OldMen > 0) then AddtoReport('| OldMen Solved : ' + SRLReportInStyle(OldMen));
if (Jekylls > 0) then AddToReport('| Jekyll[s] Solved : ' + SRLReportInStyle(Jekylls));
if (SandWiches > 0) then AddtoReport('| SandWich[es] Solved : ' + SRLReportInStyle(SandWiches));
if (NOSandWiches > 0) then AddtoReport('| SandWich[es] Missed : ' + SRLReportInStyle(NOSandWiches));
if (NOForester > 0) then AddtoReport('| Forester[s] Missed : ' + SRLReportInStyle(NOForester));
if (Lamps > 0) then AddtoReport('| Lamp[s] Solved : ' + SRLReportInStyle(Lamps));
if (NOLamps > 0) then AddtoReport('| Lamp[s] Missed : ' + SRLReportInStyle(NOLamps));
if (Frogs > 0) then AddtoReport('| Frog[s] Solved : ' + SRLReportInStyle(Frogs));
if (NOFrogs > 0) then AddtoReport('| Frog[s] Missed : ' + SRLReportInStyle(NOFrogs));
if (Caps > 0) then AddtoReport('| Capn Hand[s] Solved : ' + SRLReportInStyle(Caps));
if (Certers > 0) then AddtoReport('| Certer[s] Solved : ' + SRLReportInStyle(Certers));
if (NOCerters > 0) then AddtoReport('| Certer[s] Missed : ' + SRLReportInStyle(NOCerters));
if (Demons > 0) then AddtoReport('| Demon[s] Solved : ' + SRLReportInStyle(Demons));
if (NewBoxes > 0) then AddtoReport('| New Box[s] Solved : ' + SRLReportInStyle(NewBoxes));
if (NONewBoxes > 0) then AddtoReport('| New Box[s] Missed : ' + SRLReportInStyle(NONewBoxes));
if (Deaths > 0) then AddtoReport('| Death[s] : ' + SRLReportInStyle(Deaths));
if (Mods > 0) then AddtoReport('| Mod[s] encountered : ' + SRLReportInStyle(Mods));
if (Mimes > 0) then AddtoReport('| Mime[s] found : ' + SRLReportInStyle(Mimes));
if (Quizs > 0) then AddtoReport('| Quize[s] found : ' + SRLReportInStyle(Quizs));
if (Mazes > 0) then AddtoReport('| Mazes[s] found : ' + SRLReportInStyle(Mazes));
if (WhirlPools > 0) then AddToReport('| Whirlpool[s] found : ' + SRLReportInStyle(WhirlPools));
if (RodsFound > 0) then AddToReport('| Fishing Item[s] : ' + SRLReportInStyle(RodsFound));
if (ScapeRunes > 0) then AddtoReport('| ScapeRune[s] found : ' + SRLReportInStyle(ScapeRunes));
if (EntsAvoided > 0) then AddtoReport('| Nr of Ents Avoided : ' + SRLReportInStyle(EntsAvoided));
if (Birdsnest > 0) then AddtoReport('| Birdsnest[s] found : ' + SRLReportInStyle(Birdsnest));
if (AxeAttaches > 0) then AddtoReport('| Axes Attached : ' + SRLReportInStyle(AxeAttaches));
if (PickAxeAttached > 0) then AddtoReport('| Pickaxes Attached : ' + SRLReportInStyle(PickAxeAttached));
AddtoReport('\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/');
end;
procedure PlayerStats; {From Dankness}
var Active,PrayLvl,CookLvl: string;
var i, temp: Integer;
begin
if Players[CurrentPlayer].Active=True then
Active:='True'
else
Active:='False';
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
AddToReport (' Name : '+ Players[CurrentPlayer].Name);
AddToReport (' Number : '+inttostr(CurrentPlayer));
AddToReport (' Active : '+ Active);
AddToReport (' Worked : '+ inttostr(Players[CurrentPlayer].Worked));
AddToReport (' Location : '+ Players[CurrentPlayer].loc);
AddToReport (' Cooked : '+ IntToStr(Players[CurrentPlayer].Integer3));
AddToReport (' Buried : '+ IntToStr(Players[CurrentPlayer].Integer4));
Temp:=(GetSystemTime div 1000);
Temp := Temp - StartTime;
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
AddToReport ('');
AddToReport (' # : Nick = A. - LVL : PRY COOK. Time Location Cooked Buried');
for I := 0 to HowManyPlayers - 1 do
begin
PrayLvl:=IntToStr(Players[i].level[5]);
CookLvl:=IntToStr(Players[i].level[18]);
if Players[i].level[5]<10 then PrayLvl:=('0'+PrayLvl);
if Players[i].level[18]<10 then CookLvl:=('0'+CookLvl);
if Players[i].Active=True then Active:='T' else Active:='F';
AddToReport ( ' ' + Inttostr ( I) + ' : ' + Players[i].Nick + ' = ' + Active
+'. - Lvl :'
+' '+PrayLvl+
+' '+CookLvl+'. '
+'W: '+IntToStr(Players[i].Worked)+' min. '
+'L: '+Players[i].loc+' '
+'C: '+IntToStr(Players[i].Integer3)+' '
+'B: '+IntToStr(Players[i].Integer4));
end
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
end;
//----------------------------------------------------------------------------//
Procedure ProgressReport; {modified from Dankness}
begin
ClearReport;
AddToReport(' ');
AddToReport ('/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\');
AddToReport ('| --> ChickenSweeper '+VersionNumber+' <-- Progress Report --> by Tarajunky <-- |');
AddToReport ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
AddToReport(' Worked for '+ TimeRunning);
if ( FeatherCount > 0 ) then
AddToReport(' Picked up feathers '+IntToStr(FeatherCount)+' times.');
if ( Cooked >0 ) then
AddToReport(' Cooked and dropped '+IntToStr(Cooked)+' chickens.');
if ( Buried > 0 ) then
AddToReport(' Buried '+IntToStr(buried)+' bones');
PlayerStats;
RandomsReport;
end;
//----------------------------------------------------------------------------//
procedure Autotalk;
var
i:integer;
Say: array[1..23] of String;
begin
i:=0;
Say[1]:='Be nice to noobs';
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]:='everybody do a emote';
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)>5) then
begin
i:=(random(23)+1);
TypeSend(Say[i]);
TalkCount:=TalkCount+1;
Writeln('Talking #'+IntToStr(TalkCount)+' - '+Say[i]);
Wait(250);
ChatsOff;
end;
end;
procedure BuryBones;
var i,n,BoneInvDTM:integer;
begin
BoneInvDTM:= DTMFromString('78DA633CC6C4C0B09B91011530229140FA085' +
'0CD66026A2E00D51C20A0662750CD4E026A0E03D51CC5AF06001F' +
'BF07A1');
i:=0;
repeat
i:=i+1;
n:=0;
if FindDTM(BoneInvDTM,tmpx,tmpy,555,205,740,465) then
begin
MMouse(tmpx,tmpy,7,7);
Wait(100+random(50));
GetMousePos(tmpx,tmpy);
Mouse(tmpx,tmpy,2,2,true);
repeat
n:=n+1;
FTWait(1);
FindNormalRandoms;
if not(FindDTM(BoneInvDTM,tmpx,tmpy,tmpx-25,tmpy-25,tmpx+25,tmpy+25)) then break;
until (n>=15);
if n<15 then
begin
buried:=buried+1;
Players[CurrentPlayer].Integer4:=Players[CurrentPlayer].Integer4+1;
end;
if (FindColor(x,y,65280,250,130,260,180)) or (FindColor(x,y,255,250,130,260,180)) then Runaway;
FTWait(1);
end else break;
until (i>=28);
FreeDTM(BoneInvDTM);
end;
procedure DropCookedFast; //Modified from White Shadow
var
c : TPoint;
i, b1, b2, b3, b4 : Integer;
begin
for i := 1 to 28 do
begin
c:= ItemCoords(i);
b1 := c.x - 25;
b2 := c.y - 25;
b3 := c.x + 25;
b4 := c.y + 25;
if i mod 2 = 0 then
begin
if(FindDTM(GenericChickenInv,x,y,b1,b2,b3,b4))then
begin
MMouse(x,y,3,3);
Mouse(x, y, 3, 3, false);
Wait(100 + random(50));
if ClickTheText('rop ',x-150,y-60,x+50,y+90,true) then
begin
Cooked:=Cooked+1;
Players[CurrentPlayer].Integer3:=Players[CurrentPlayer].Integer3+1;
end;
end;
end else
begin
if(FindDTM(GenericChickenInv,x,y,b1,b2,b3,b4))then
begin
MMouse(x,y,3,3);
Mouse(x, y, 3, 3, false);
Wait(100 + random(50));
if ClickTheText('rop ',x-150,y-60,x+50,y+90,true) then
begin
Cooked:=Cooked+1;
Players[CurrentPlayer].Integer3:=Players[CurrentPlayer].Integer3+1;
end;
end;
end;
end;
end;
procedure CookThatChicken;
var PotDTM,i,x1,y1:integer;
begin
GameTab(4);
for i:=1 to 3 do
begin
if FindDTM(GenericChickenInv,x,y,MIX1,MIY1,MIX2,MIY2) then
begin
Mouse(x,y,2,2,true);
y:=25;
PotDTM := DTMFromString('78DA633CC9C0C020C6800258EEDE65D000D28' +
'C40FC1F0818416A7821728C58D480C5F720CC61C1A5E62690E0C2' +
'AF0600F2140F10');
repeat
if FindColorTolerance(tmpx,tmpy,4204800,100,y,330,y+15,30) then
begin
MMouse(tmpx,tmpy,2,2);
Wait(200);
if FindDTM(PotDTM,x1,y1,1,1,400,25) then break;
end;
y:=y+5;
until y>=190;
if FindDTM(PotDTM,x1,y1,1,1,400,25) then
begin
WriteStatus('Found Pot');
FreeDTM(PotDTM);
Mouse(tmpx,tmpy,2,2,true);
FTWait(5+random(2));
FindThoseRandoms;
if (FindColor(x,y,65280,250,130,260,180)) or
(FindColor(x,y,255,250,130,260,180)) then Runaway;
FTWait(5);
FindThoseRandoms;
if (FindColor(x,y,65280,250,130,260,180)) or
(FindColor(x,y,255,250,130,260,180)) then Runaway;
FTWait(5);
FindThoseRandoms;
if (FindColor(x,y,65280,250,130,260,180)) or
(FindColor(x,y,255,250,130,260,180)) then Runaway;
if not(FindColor(x,y,ChurnColor,MMX1,MMY1,MMX2,MMY2)) then
if not(FindSymbol(x,y,'churn')) then exit;
if FindColorTolerance(tmpx,tmpy,10856132,245,400,270,420,20) then
begin
Mouse(tmpx,tmpy,4,4,false);
FTWait(5+random(2));
ChooseOption(x,y,'Cook All');
FTWait(4);
if GetColor(290,395)=0 then TypeSend('28');
i:=0;
repeat
i:=i+1;
if not(LoggedIn) then exit;
Wait(250);
if GetColor(40,425)=0 then
begin
WriteStatus('Cooking Chicken');
break;
end;
if (i>=30) then
begin
WriteStatus('Failed to cook...');
CookThatChicken;
exit;
end;
until (i>=40);
repeat
i:=i+1;
if random(20)<2 then PickUpMouse;
if FindColorTolerance(x,y,16711680,230,430,280,450,10) then
begin
Mouse(x,y,2,2,True);
Wait(250);
MMouse(x,y-30,40,15);
end;
FTWait(2);
FindNormalRandoms;
WWait(1500);
until not(FindColorTolerance(x,y,RawChickenColor,MIX1,MIY1,MIX2,MIY2,15)) or (i>=200);
DropCookedFast;
DwarfItem;
end;
end else
begin
FreeDTM(PotDTM);
SaveScreenshot(AppPath+'Pot'+InttoStr(random(200))+'.bmp');
end;
end;
end;
end;
procedure CookChicken;
var tmpx,tmpy:integer;
begin
Writeln('Attempting to cook chickens. Please wait...');
WriteStatus('Attempting to cook chickens. Please wait...');
MakeCompass('N');
FTWait(2);
RoadColor:=FindTheRoadColor;
x:=610;
repeat
if FindColor(tmpx,tmpy,RoadColor,x,MMY1,x+15,MMY2) then
begin
WriteStatus('Found Chicken Door');
Mouse(tmpx+3,tmpy+5,3,3,true);
Flag;
break;
end else x:=x+2;
until x>=MMX2;
MakeCompass('W');
x:=170;
repeat
if FindColorTolerance(tmpx,tmpy,1791084,x,80,x+15,175,10) then
begin
MMouse(tmpx,tmpy+2,1,1);
Wait(200);
if IsUpTextMulti('oor','pen','lose') then break;
end;
x:=x+5;
until x>=325;
if IsUpTextMulti('oor','pen','lose') then
begin
GetMousePos(x,y);
if IsUpText('pen') then
begin
Mouse(x,y,0,0,true);
WriteStatus('Opened Door');
Flag;
FTWait(1);
end else
if IsUpText('lose') then WriteStatus('Door Already Open') else exit;
Mouse(650,70,1,1,true); //Blind Click
FTWait(2);
Flag;
FTWait(1);
CookThatChicken;
y:=95;
repeat
if FindColor(tmpx,tmpy,RoadColor,MMX1,y,MMX2,y+15) then
begin
WriteStatus('Found Chicken Door2');
Mouse(tmpx,tmpy+1,1,1,true);
Flag;
Wait(500);
break;
end else y:=y+3;
until y>=MMY2;
x:=200;
repeat
if FindColorTolerance(tmpx,tmpy,1791084,x,120,x+15,230,10) then
begin
MMouse(tmpx,tmpy+2,1,1);
Wait(200);
if IsUpTextMulti('oor','pen','lose') then break;
end;
x:=x+5;
until x>=325;
if IsUpTextMulti('oor','pen','lose') then
begin
GetMousePos(x,y);
if IsUpText('pen') then
begin
Mouse(x,y,0,0,true);
WriteStatus('Opening Door');
FTWait(1);
end else
if IsUpText('lose') then WriteStatus('Door Already Open') else exit;
Mouse(650,100,4,4,true); //Blind Click
Flag;
Writeln('Successfully Exited Building');
end;
end else Writeln('Could not find door');
MakeCompass('N');
if FindColorTolerance(tmpx,tmpy,ChurnColor,515,80,760,180,ChurnTol) then
begin
Mouse((tmpx+17+random(6)-DistXColor),(tmpy-random(5)-DistYColor),0,0,true);
Flag;
FTWait(2);
end;
end;
function PickBones:boolean;
var x1,y1:integer;
begin
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 FindColorSpiralTolerance(x1,y1,BoneColor,5,5,415,318,10) then
begin
if not(FindColorTolerance(x,y,ChickenColor1,x1-5,y1-5,x1+5,y1+5,5)) then
begin
WriteStatus('Found Bones. Picking up...');
if (InvCount<28) then
begin
if FindColorTolerance(x,y,BoneColor,x1-5,y1-5,x1+5,y1+5,10) then Mmouse(x+2,y+2,2,3);
Wait(250+random(100));
if IsUpText('Take') or FindColorTolerance(x,y,3305413,1,5,80,20,30) then
begin
getmousepos(x,y);
mouse(x,y,2,2,false);
Wait(50+random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then if ClickTheText('Take Bones',x-100,y-60,x+50,y+90,true) then Result:=true;
end;
end;
end;
end;
Wait(150);
SafeFlag;
wait(300+random(500))
end;
procedure PickChicken;
var x1,y1,RawText:integer;
begin
x1:=259;y1:=183;
if FindColorSpiralTolerance(x1,y1,RawChickenColor,5,5,435,318,10) then
begin
RawText:= DTMFromString('78DA634C616060E06440016F7AAD188C80342' +
'310FF070246901A2154350F1ACCE16A4080311D48F0A2AA79DD63' +
'85A20600A4B60AEB');
WriteStatus('Found Raw chicken. Picking up...');
if (InvCount<28) then
begin
if FindColorTolerance(x1,y1,RawChickenColor,x1-5,y1-5,x1+5,y1+5,10) then
MMouse(x1+2,y1+2,2,2);
Wait(250+random(100));
if random(100)>70 then
begin
if IsUpText('Take') then
begin
GetMousePos(x,y);
Mouse(x,y,2,2,true);
FTWait(1);
SafeFlag;
FTWait(3);
end;
end else
begin
if FindDTM(RawText,x,y,1,1,200,20) then
begin
GetMousePos(x,y);
Mouse(x,y,2,2,false);
Wait(50+random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then ClickTheText('Take Raw chicken',x-100,y-60,x+50,y+90,true);
end else if IsUpText('Chicken') then
begin
GetMousePos(x,y);
Mouse(x,y,2,2,false);
Wait(50+random(100));
if FindColor(x,y,4231423,x-60,1,x+60,335) then ClickTheText('Take Raw chicken',x-100,y-60,x+50,y+90,true);
FTWait(1);
SafeFlag;
end;
FTWait(1);
SafeFlag;
FTWait(3);
end;
end;
FreeDTM(RawText);
end;
end;
procedure PickItems;
var pickedbone:boolean;
begin
if not(LoggedIn) then Exit;
Flag;
Wait(150+random(50));
case Players[CurrentPlayer].Integer1 of
0: PickChicken;
1: if PickBones then PickedBone:=True;
2: begin
PickChicken;
if PickBones then PickedBone:=True;
end;
end;
Wait(100+random(350));
end;
function PickFeathers:boolean;
begin
if not(LoggedIn) then Exit;
Flag;
WriteStatus('Picking Feathers');
WriteIt('Picking Feathers');
FTWait(3);
x:=259;y:=183;
if FindColorSpiralTolerance(x,y,feathercolor,5,5,435,318,5) then
begin
if FindColorTolerance(x,y,feathercolor2,x-5,y-5,x+2,y+5,5) then
if FindColorTolerance(x,y,feathercolor,x-20,y-5,x+2,y+5,5) then
begin
feathertext:= DTMFromString('78DA6374636060E065400177BACD198C80342' +
'310FF0702461720830B22C784450D08303A030941026ABC800427' +
'0135200E1F84CD8C4B4D24C2CD3035B7BBCC50D40000443510E0');
Mmouse(x,y,3,1);
Wait(350+random(100));
if FindDTM(feathertext,x,y,1,1,130,30) then
begin
WriteStatus('DTM Feather');
getmousepos(x,y);
mouse(x,y,2,3,true);
Wait(150);
FeatherCount:=FeatherCount+1;
SafeFlag;
FTwait(2+random(2));
FreeDTM(feathertext);
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 ClickTheText('Take Feather',x-100,y-60,x+50,y+90,true);
FTWait(1);
SafeFlag;
FTWait(2);
FreeDTM(feathertext);
Result:=true;
end else
begin
WriteStatus('No feathers found!');
FreeDTM(feathertext);
exit;
end;
end else exit;
end;
Wait(100+random(350));
if (InvCount<28) then PickItems;
if (InvCount=28) then if ((Players[CurrentPlayer].Integer1=1) or (Players[CurrentPlayer].Integer1=2)) then BuryBones;
if (InvCount=28) then if ((Players[CurrentPlayer].Integer1=0) or (Players[CurrentPlayer].Integer1=2)) then CookChicken;
end;
procedure SearchLoop;
begin
if not(LoggedIn) then exit;
PickFeathers;
if random(100)>5 then exit;
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);
Flag;
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;
Flag;
FTWait(2);
end;
end;
end;
procedure LoadDTMs;
begin;
Feathertext:= DTMFromString('78DA6374636060E065400177BACD198C80342' +
'310FF0702461720830B22C784450D08303A030941026ABC800427' +
'0135200E1F84CD8C4B4D24C2CD3035B7BBCC50D40000443510E0');
ChickenSpot1 := DTMFromString('78DA63AC666260F0644001CF5EBC669003D28' +
'C40FC1F08188B806A4220722C58D48000633E420D2B3E35E104D4' +
'E412A106644E140135D940353104D43403D53811509302541384A' +
'A26A562198311921A004CD32396');
ChickenPen := DTMFromString('78DA63DCC8C4C050C78002FC4D44183480342' +
'310FF0702C6C50835CC5035CF5EBC669083AA0101B09A62026A76' +
'03D5941050B317A8A681809AF54035FD04D46C00AA990B61F343C' +
'55E013117921A008FBC1C7A');
GenericChickenInv := DTMFromString('78DA632C62626078C88006189148205D0754F' +
'38A809A6AA09A9B04D4E400D53C20A0260DA8E63D01352540351F' +
'F0AB0100E9550833');
BoneDTM := DTMFromString('78DA636464646098CA80028EEEDDCB6004A48' +
'1320CFF81809119538DA39138831C540D0830B2E037070400BB89' +
'0B57');
end;
function TryToFindMyself:boolean;
var i:integer;
begin
Result:=True;
i:=0;
SymbolAccuracy:=0.8;
repeat
if not(LoggedIn) then Exit;
if FindDTM(ChickenSpot1,tmpx,tmpy,515,5,760,180) then
begin
Players[CurrentPlayer].Loc:='Chickens';
exit;
end else if FindDTM(ChickenPen,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));
i:=i+1;
FTWait(6);
until (i>=3);
If FindColor(x,y,ChurnColor,515,80,740,160) then
begin
Players[CurrentPlayer].Loc:='Chickens';
RandomTime:=0;
exit;
end;
Writeln('Could not find current location');
Players[CurrentPlayer].Loc:='Lost';
Result:=False;
repeat
Wait(1000);
FindNormalRandoms;
until(not(LoggedIn));
end;
procedure SetUp;
begin;
SetupSRL;
BenMouse:=True;
MouseSpeed:=10;
FeatherCount:=0;
DeclarePlayers;
UpChar:= LoadChars2(AppPath + 'CharsRS22\');
TalkCount:=0;
SmallFont:=LoadChars2(AppPath + 'CharsChat2\fontsmall\');
LoadDTMs;
LoginPlayer;
MouseSpeed:=MouseSpeeed+random(2);
StartTime:=GetSystemTime;
end;
procedure StartItUp;
var x,y,i:integer;
begin
MouseSpeed:=MouseSpeeed+random(2);
RandomTime:=Random(300);
if not(LoggedIn) then Exit;
BenMouse:=True;
i:=0;
Wait(1000);
GetAllLevels;
ChatsOff;
FTWait(1);
HighestAngle;
FTWait(1);
ActivateClient;
FTWait(1);
Wait(100);
SetRun(true);
FTWait(1);
SetRun(true);
FTWait(1);
Flag;
Wait(250);
TryToFindMyself;
if FindDTM(ChickenPen,tmpx,tmpy,515,5,760,180) then
begin
Writeln('Found Chicken Pen');
Mouse(tmpx,tmpy-3,1,1,true);
wait(50);
Flag;
Wait(950);
end else WriteIt('Did not find Chicken Pen');
FindUniqueMMSymbolColor('Churn',573,80,733,180);
Wait(50);
ChurnTol:=0;
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;
if ((Players[CurrentPlayer].Integer1=4) and (InvCount=28)) then CookChicken;
end;
procedure RepeatMe;
begin;
repeat
StartItUp;
repeat
SymbolAccuracy:=0.8;
if not(TryToFindMyself) or 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
Mouse((tmpx+17+random(6)-DistXColor),(tmpy-random(5)-DistYColor),0,0,true);
WriteStatus('Walked too far Color');
Flag;
Wait(500);
end;
SearchLoop;
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
Mouse(tmpx+17+random(6),tmpy-random(5),0,0,true);
WriteStatus('Walked too far CS1');
Flag;
end;
SearchLoop;
end;
if (random(100)>95) then Autotalk;
until (((Getsystemtime-CharStartTime)/1000)>(PlayerTime+RandomTime));
if (((Getsystemtime-CharStartTime)/1000)>(PlayerTime+RandomTime)) then
begin
if PickFeathers then if PickFeathers then PickFeathers;
WriteStatus('Timing 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);
repeat
Wait(1000);
FindNormalRandoms;
until(not(LoggedIn));
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.——————————————————
<!– END TEMPLATE: formanswers –>