SCAR Code:
{
_______
/ ____/ Version 0.79
/ / ______
/ /icken / ___/ \\
\ \ / /rusher _( o >
\ \____\ \___ /__=-/
\_______-_____\ ||
By ShapeShifter
My first nice form and fighting script!
Date made:23/07/07
Programs Used:Scar Divi 3.11 and SRL 3.81
-Anti-randoms, also has some anti-ban stuff so you loook more human.
-Can set how much Chickens you want to kill or the time per player.
-Can set your fighting style, recognises if you have equiped a staff
or if you're unarmed else it sets it the default way.
-Checks for the nearest Chicken which is not in a fight.
-Waits untill you've killed/one hit killed the Chicken before
attacking the next one.
-Can set to pick up feathers or bury bones, if you're not burying
bones it'll fill up the inventory with bones to prevent randoms.
-Script will leave one space for the feathers if your collecting
them and you ain't got them yet.
-Can check if you've got the latest version.
-Easy form you can use, easy to add/delete players and pick colours.
-Clicks on a GameTab to make you stay active if you ain't found
a Chicken yet, after 2 minuts or abit more it'll log you out if
you ain't found a Chicken or if you havn't killed a Chicken for 5
minutes plus random 20 seconds it'll log out.
Post any errors to the thread!
Instructions:1.Use in arear where chicken are, don't
use in a too crowded area.
2.Script can only be used for melee combat.
3.Use Runescape client low detail and
set your screen to 32 bit TRUE color.
4.Read the bit below about setting the
fight mode, so you know what to do.
5.Drag the crosshair over the Runescape
client.
6.Finally, start logged out, click on the
green arrow, enjoy!
Setting the fight mode in the form.
OPTIONS:'attack','strength1','strength2 and 'defence'.
If you ain't got nothing wielded or not got a staff thiS
is how the categories go in gametab(1):
_________ _________
| attack | |strength1|
--------- ---------
_________ _________
|strength2| | defence |
--------- ---------
If you have got a weapon listed above equiped
'strength1' and 'strength2' is just the strength box.
Version :
--------------------------------------------------------------
0.79
Date made:23/07/07
Programs Used:Scar Divi 3.11 and SRL 3.81
-If script doesn't kill a Chicken for 5 minutes plus random
20 seconds it'll log out.
-Fixed a few minor bugs.
-New bone bitmap, old one weren't working.
0.77
Date made:21/07/07
Programs Used:Scar Divi 3.11 and SRL 3.81
My first nice form and my first fighting script!
Check if you have killed the chicken by its healthbar or if
you have one hit killed it, can set if you want it to collect
feathers or bury bones. If you don't burybones, it will fill
up the inventory with bones to prevent randoms. The function
'CheckStrToInt' checks if the string can be changed into an
integer to prevent erros in the form.
Credits :
--------------------------------------------------------------
Widget, without him I would have never thought of a form like
this!
[--------------------------------------------------------------]}
program ChickenCrusher;
{.include SRL\SRL.SCAR}
{.include SRL\SRL\Misc\Trade.scar}
var
{-----Form-----}
ChickenCrusherForm : TForm;
PressedStart : boolean;
Background : TImage;
b, CPlayer : integer;
GroupBoxScript, GroupBoxMisc, GroupBoxColours,
GroupBoxPlayers : TGroupBox;
UrSRLID, UrSRLPassword, FRMs, ABRate, PlayerTime, CTlr,
CColour1, CColour2, CColour3, BColour, FColour,
Username, Password, Nickname, IntegerOne : TEdit;
BBones, PUFeathers : TCheckBox;
Skill4Lamp, StringOne : TComboBox;
LabelTitle, LabelABRate, LabelPlayerTime, LabelCTlr,
LabelCColours, LabelBColour, LabelFColour, LabelRandoms : TLabel;
VersionIsLatest, ButtonC1, ButtonC2, ButtonC3, ButtonBC, ButtonFC,
BackP, AddP, DeleteP, NextP, Start, Cancel : TButton;
{-----/Form-----}
{-----SetUp-----}
FindRandomMS, AntiBanRate, TimePerPlayer, ChickenTolerance,
BoneColour, FeatherColour : integer;
BuryBones, CollectFeathers : boolean;
ChickenColour : array[1..3] of integer;
{-----/SetUp-----}
TotalChickensKilled, TotalBonesBuried, TotalOneHitKills,
FRTime, LastKill, ChickenTimer, BMPBone, BMPFeather, BMP1HitKill,
BMPDead : integer;
GotFeathers : boolean;
HasBeenOn : array of boolean;
ChickensKilled : array of integer;
OneHitKills : array of integer;
BonesBuried : array of integer;
const
Version = '0.79';
{DragForm - Drags the form}
procedure DragForm(Sender : TObject; Button : TMouseButton; Shift : TShiftState; X, Y : Integer);
var Newx, Newy, Oldx, Oldy : integer;
begin
GetMousePos(Oldx, Oldy);
repeat
GetMousePos(Newx, Newy);
ChickenCrusherForm.Top := ChickenCrusherForm.Top - (Oldy - Newy);
ChickenCrusherForm.Left := ChickenCrusherForm.Left - (Oldx - Newx);
sleep(1);
Oldx := Newx;
Oldy := Newy;
until (not IsMouseButtonDown(True));
end;
{LatestVersion - Checks for the latest version}
procedure LatestVersion(Sender : TObject);
var LatestVersionOut : string;
begin
LatestVersionOut := GetPage('http://shapeshifterscripts.freehostia.com/Chicken%20Crusher/Latest%20Version');
if LatestVersionOut <> Version then
begin
WriteLn(' You do not have the latest version!');
WriteLn(' Your version is ' + Version + ', latest version is ' + LatestVersionOut);
WriteLn(' Download the latest version from these link[s]:');
WriteLn(GetPage('http://shapeshifterscripts.freehostia.com/Chicken%20Crusher/Download%20Link'));
end
else
begin
WriteLn(' You have got the latest version!');
WriteLn(' Post all your progress reports at these site[s]:');
WriteLn(GetPage('http://shapeshifterscripts.freehostia.com/Chicken%20Crusher/Progress%20Report'));
end;
end;
{CheckStrToInt - Check if the string can be changed into an
integer, nearly always works(used for the form)}
function CheckStrToInt(SS : string) : Boolean;
var t : integer;
begin
for t := 1 to Length(SS) do
begin
if t = 1 then
begin
if Length(SS) = 1 then
begin
if SS[t] = '+' then
begin
exit;
end;
end;
if not ((SS[t] = '+') or (SS[t] = '0') or
(SS[t] = '1') or (SS[t] = '2') or
(SS[t] = '3') or (SS[t] = '4') or
(SS[t] = '5') or (SS[t] = '6') or
(SS[t] = '7') or (SS[t] = '8') or
(SS[t] = '9')) then
begin
exit;
end;
end
else
begin
if not ((SS[t] = '0') or (SS[t] = '1') or
(SS[t] = '2') or (SS[t] = '3') or
(SS[t] = '4') or (SS[t] = '5') or
(SS[t] = '6') or (SS[t] = '7') or
(SS[t] = '8') or (SS[t] = '9')) then
begin
exit;
end;
end;
if t = Length(SS) then
begin
if SS[1] = '+' then
begin
if Length(ss) <= 10 then
begin
Result := True;
end
else
begin
exit;
end;
end
else
begin
if Length(ss) <= 9 then
begin
Result := True;
end
else
begin
exit;
end;
end;
Result := True;
exit;
end;
end;
end;
{SortOutPlayer - Used to sort out the player stuff}
procedure SortOutPlayer;
begin
Players[CPlayer].Name := Username.Text;
Players[CPlayer].Pass := Password.Text;
Players[CPlayer].Nick := LowerCase(Nickname.Text);
if not CheckStrToInt(IntegerOne.Text) then
begin
IntegerOne.Text := '0';
end;
Players[CPlayer].integer1 := StrToInt(IntegerOne.Text);
if not ((LowerCase(StringOne.Text) = 'attack') or
(LowerCase(StringOne.Text) = 'strength1') or
(LowerCase(StringOne.Text) = 'strength2') or
(LowerCase(StringOne.Text) = 'defence')) then
begin
StringOne.Text := 'attack';
end;
Players[CPlayer].string1 := LowerCase(StringOne.Text);
end;
{SetVars - Sets the variables after you press fight so
no faults occurs}
procedure SetVars(Sender : TObject);
var p : integer;
begin
SortOutPlayer;
SRLID := UrSRLID.Text;
SRLPassword := UrSRLPassword.Text;
if not CheckStrToInt(FRMs.Text) then
begin
FRMs.Text := IntToStr(9000 + random(2000));
end;
FindRandomMS := StrToInt(FRMs.Text);
if not CheckStrToInt(ABRate.Text) then
begin
ABRate.Text := IntToStr(26 + random(10));
end;
AntiBanRate := StrToInt(ABRate.Text);
if not ((LowerCase(Skill4Lamp.Text) = 'agility') or
(LowerCase(Skill4Lamp.Text) = 'attack') or
(LowerCase(Skill4Lamp.Text) = 'construction') or
(LowerCase(Skill4Lamp.Text) = 'cooking') or
(LowerCase(Skill4Lamp.Text) = 'crafting') or
(LowerCase(Skill4Lamp.Text) = 'defence') or
(LowerCase(Skill4Lamp.Text) = 'farming') or
(LowerCase(Skill4Lamp.Text) = 'firemaking') or
(LowerCase(Skill4Lamp.Text) = 'fishing') or
(LowerCase(Skill4Lamp.Text) = 'fletching') or
(LowerCase(Skill4Lamp.Text) = 'herblore') or
(LowerCase(Skill4Lamp.Text) = 'hitpoints') or
(LowerCase(Skill4Lamp.Text) = 'hunting') or
(LowerCase(Skill4Lamp.Text) = 'magic') or
(LowerCase(Skill4Lamp.Text) = 'mining') or
(LowerCase(Skill4Lamp.Text) = 'prayer') or
(LowerCase(Skill4Lamp.Text) = 'ranged') or
(LowerCase(Skill4Lamp.Text) = 'runecrafting') or
(LowerCase(Skill4Lamp.Text) = 'slayer') or
(LowerCase(Skill4Lamp.Text) = 'smithing') or
(LowerCase(Skill4Lamp.Text) = 'strength') or
(LowerCase(Skill4Lamp.Text) = 'thieving') or
(LowerCase(Skill4Lamp.Text) = 'woodcutting')) then
begin
Skill4Lamp.Text := 'attack';
end;
LampSkill := LowerCase(Skill4Lamp.Text);
if not CheckStrToInt(PlayerTime.Text) then
begin
PlayerTime.Text := '0';
end;
TimePerPlayer := StrToInt(PlayerTime.Text);
BuryBones := BBones.Checked;
CollectFeathers := PUFeathers.Checked;
if not CheckStrToInt(CTlr.Text) then
begin
CTlr.Text := '5';
end;
ChickenTolerance := StrToInt(CTlr.Text);
if not CheckStrToInt(CColour1.Text) then
begin
CColour1.Text := '858490';
end;
ChickenColour[1] := StrToInt(CColour1.Text);
if not CheckStrToInt(CColour2.Text) then
begin
CColour2.Text := '4831951';
end;
ChickenColour[2] := StrToInt(CColour2.Text);
if not CheckStrToInt(CColour3.Text) then
begin
CColour3.Text := '8828102';
end;
ChickenColour[3] := StrToInt(CColour3.Text);
if not CheckStrToInt(BColour.Text) then
begin
BColour.Text := '13685206';
end;
BoneColour := StrToInt(BColour.Text);
if not CheckStrToInt(FColour.Text) then
begin
FColour.Text := '9472';
end;
HowManyPlayers := GetArrayLength(Players);
for p := 0 to HowManyPlayers - 1 do
begin
Players[p].Active := True;
end;
SetArrayLength(HasBeenOn, HowManyPlayers);
SetArrayLength(ChickensKilled, HowManyPlayers);
SetArrayLength(OneHitKills, HowManyPlayers);
SetArrayLength(BonesBuried, HowManyPlayers);
FeatherColour := StrToInt(FColour.Text);
ChickenCrusherForm.ModalResult := mrOk;
PressedStart := True;
WriteLn('');
WriteLn('[--------------------Form Info----------------------]');
WriteLn('SRL Stats ID : ' + SRLID);
WriteLn('SRL Stats password : ' + SRLPassword);
WriteLn('Find Randoms : ' + IntToStr(FindRandomMS) + ' msecs');
WriteLn('Anti-ban rate : ' + IntToStr(AntiBanRate));
WriteLn('Skill for lamp : ' + LampSkill);
WriteLn('Timer per player : ' + IntToStr(TimePerPlayer));
if BuryBones then
begin
WriteLn('Bury bones : True');
end
else
begin
WriteLn('Bury bones : False');
end;
if CollectFeathers then
begin
WriteLn('Collect feathers : True');
end
else
begin
WriteLn('Collect feathers : False');
end;
WriteLn('Chicken tolerance : ' + IntToStr(ChickenTolerance));
WriteLn('Chicken colour 1 : ' + IntToStr(ChickenColour[1]));
WriteLn('Chicken colour 2 : ' + IntToStr(ChickenColour[2]));
WriteLn('Chicken colour 3 : ' + IntToStr(ChickenColour[3]));
WriteLn('Bone colour : ' + IntToStr(BoneColour));
WriteLn('Feather colour : ' + IntToStr(FeatherColour));
WriteLn('----')
WriteLn('Players : ' + IntToStr(HowManyPlayers));
for p := 0 to HowManyPlayers - 1 do
begin
WriteLn('---')
WriteLn('Players[' + IntToStr(p) + '].Name :=' + Players[p].Name);
WriteLn('Players[' + IntToStr(p) + '].Pass :=' + Players[p].Pass);
WriteLn('Players[' + IntToStr(p) + '].Nick :=' + Players[p].Nick);
WriteLn('Players[' + IntToStr(p) + '].integer1 :=' + IntToStr(Players[p].integer1));
WriteLn('Players[' + IntToStr(p) + '].string1 :=' + Players[p].string1);
end;
WriteLn('[---------------------------------------------------]');
WriteLn('');
end;
{AddPlayer - Adds a player}
procedure AddPlayer(Sender : TObject);
begin
SortOutPlayer
SetArrayLength(Players, GetArrayLength(Players) + 1);
Players[GetArrayLength(Players) - 1].Name := 'Username';
Players[GetArrayLength(Players) - 1].Pass := 'Password';
Players[GetArrayLength(Players) - 1].Nick := 'ser';
Players[GetArrayLength(Players) - 1].integer1 := 0;
Players[GetArrayLength(Players) - 1].string1 := 'attack';
CPlayer := GetArrayLength(Players) - 1;
GroupBoxPlayers.Caption := 'Player ' + IntToStr(CPlayer + 1) + ' of ' + IntToStr(GetArrayLength(Players));
Username.Text := Players[CPlayer].Name
Password.Text := Players[CPlayer].Pass;
Nickname.Text := Players[CPlayer].Nick;
IntegerOne.Text := IntToStr(Players[CPlayer].integer1);
StringOne.Text := Players[CPlayer].string1;
end;
{DeletePlayer - Deletes the player}
procedure DeletePlayer(Sender : TObject);
var p : integer;
Deleted : boolean;
begin
if ((CPlayer = 0) and (GetArrayLength(Players) = 1)) then
begin
Players[GetArrayLength(Players) - 1].Name := 'Username';
Players[GetArrayLength(Players) - 1].Pass := 'Password';
Players[GetArrayLength(Players) - 1].Nick := 'ser';
Players[GetArrayLength(Players) - 1].integer1 := 0;
Players[GetArrayLength(Players) - 1].string1 := 'attack';
Deleted := True;
end
else
begin
if CPlayer < GetArrayLength(Players) - 1 then
begin
for p := CPlayer + 1 to GetArrayLength(Players) - 1 do
begin
Players[p - 1].Name := Players[p].Name;
Players[p - 1].Pass := Players[p].Pass;
Players[p - 1].Nick := Players[p].Nick;
Players[p - 1].integer1 := Players[p].integer1;
Players[p - 1].string1 := Players[p].string1;
end;
SetArrayLength(Players, GetArrayLength(Players) - 1);
end
else
begin
if CPlayer = GetArrayLength(Players) - 1 then
begin
CPlayer := CPlayer - 1;
SetArrayLength(Players, GetArrayLength(Players) - 1);
end;
end;
end;
Username.Text := Players[CPlayer].Name
Password.Text := Players[CPlayer].Pass;
Nickname.Text := Players[CPlayer].Nick;
IntegerOne.Text := IntToStr(Players[CPlayer].integer1);
StringOne.Text := Players[CPlayer].string1;
GroupBoxPlayers.Caption := 'Player ' + IntToStr(CPlayer + 1) + ' of ' + IntToStr(GetArrayLength(Players));
end;
{ForwardPlayer - See the stats of the player plus one}
procedure ForwardPlayer(Sender : TObject);
begin
SortOutPlayer
if CPlayer + 1 = GetArrayLength(Players) then
begin
CPlayer := 0;
end
else
begin
CPlayer := CPlayer + 1;
end;
GroupBoxPlayers.Caption := 'Player ' + IntToStr(CPlayer + 1) + ' of ' + IntToStr(GetArrayLength(Players));
Username.Text := Players[CPlayer].Name
Password.Text := Players[CPlayer].Pass;
Nickname.Text := Players[CPlayer].Nick;
IntegerOne.Text := IntToStr(Players[CPlayer].integer1);
StringOne.Text := Players[CPlayer].string1;
end;
{BackPlayer - See the stats of the player minus one}
procedure BackPlayer(Sender : TObject);
begin
SortOutPlayer
if CPlayer = 0 then
begin
CPlayer := GetArrayLength(Players) - 1;
end
else
begin
CPlayer := CPlayer - 1;
end;
GroupBoxPlayers.Caption := 'Player ' + IntToStr(CPlayer + 1) + ' of ' + IntToStr(GetArrayLength(Players));
Username.Text := Players[CPlayer].Name
Password.Text := Players[CPlayer].Pass;
Nickname.Text := Players[CPlayer].Nick;
IntegerOne.Text := IntToStr(Players[CPlayer].integer1);
StringOne.Text := Players[CPlayer].string1;
end;
{SetColourKeyUp - Sets the colour of the box when you
have just released the key}
procedure SetColour1KeyUp(Sender : TObject; var Key : Word; Shift : TShiftState);
begin
if not CheckStrToInt(CColour1.Text) then
begin
CColour1.Text := '858490';
end;
CColour1.Color := StrToInt(CColour1.Text);
if CColour1.Color < 12053224 then
begin
CColour1.Font.Color := ClWhite;
end
else
begin
CColour1.Font.Color := ClBlack;
end;
end;
procedure SetColour2KeyUp(Sender : TObject; var Key : Word; Shift : TShiftState);
begin
if not CheckStrToInt(CColour2.Text) then
begin
CColour2.Text := '4831951';
end;
CColour2.Color := StrToInt(CColour2.Text);
if CColour2.Color < 12053224 then
begin
CColour2.Font.Color := ClWhite;
end
else
begin
CColour2.Font.Color := ClBlack;
end;
end;
procedure SetColour3KeyUp(Sender : TObject; var Key : Word; Shift : TShiftState);
begin
if not CheckStrToInt(CColour3.Text) then
begin
CColour3.Text := '8828102';
end;
CColour3.Color := StrToInt(CColour2.Text);
if CColour3.Color < 12053224 then
begin
CColour3.Font.Color := ClWhite;
end
else
begin
CColour3.Font.Color := ClBlack;
end;
end;
procedure SetBColourKeyUp(Sender : TObject; var Key : Word; Shift : TShiftState);
begin
if not CheckStrToInt(BColour.Text) then
begin
BColour.Text := '13685206';
end;
BColour.Color := StrToInt(BColour.Text);
if BColour.Color < 12053224 then
begin
BColour.Font.Color := ClWhite;
end
else
begin
BColour.Font.Color := ClBlack;
end;
end;
procedure SetFColourKeyUp(Sender : TObject; var Key : Word; Shift : TShiftState);
begin
if not CheckStrToInt(FColour.Text) then
begin
FColour.Text := '9472';
end;
FColour.Color := StrToInt(FColour.Text);
if FColour.Color < 12053224 then
begin
FColour.Font.Color := ClWhite;
end
else
begin
FColour.Font.Color := ClBlack;
end;
end;
{SetColour - Sets the colour of the box}
procedure SetColour1;
begin
CColour1.Color := StrToInt(CColour1.Text);
if CColour1.Color < 12053224 then
begin
CColour1.Font.Color := ClWhite;
end
else
begin
CColour1.Font.Color := ClBlack;
end;
end;
procedure SetColour2;
begin
CColour2.Color := StrToInt(CColour2.Text);
if CColour2.Color < 12053224 then
begin
CColour2.Font.Color := ClWhite;
end
else
begin
CColour2.Font.Color := ClBlack;
end;
end;
procedure SetColour3;
begin
CColour3.Color := StrToInt(CColour3.Text);
if CColour3.Color < 12053224 then
begin
CColour3.Font.Color := ClWhite;
end
else
begin
CColour3.Font.Color := ClBlack;
end;
end;
procedure SetBColour;
begin
BColour.Color := StrToInt(BColour.Text);
if BColour.Color < 12053224 then
begin
BColour.Font.Color := ClWhite;
end
else
begin
BColour.Font.Color := ClBlack;
end;
end;
procedure SetFColour;
begin
FColour.Color := StrToInt(FColour.Text);
if FColour.Color < 12053224 then
begin
FColour.Font.Color := ClWhite;
end
else
begin
FColour.Font.Color := ClBlack;
end;
end;
{PickOutColour - You get to pick the colour by pressing
the button next to it}
procedure PickOutColour1(Sender : TObject);
var Cc, Px, Py : integer;
begin
PickColor(Cc, Px, Py);
CColour1.Text := IntToStr(Cc);
SetColour1;
end;
procedure PickOutColour2(Sender : TObject);
var Cc, Px, Py : integer;
begin
PickColor(Cc, Px, Py);
CColour2.Text := IntToStr(Cc);
SetColour2;
end;
procedure PickOutColour3(Sender : TObject);
var Cc, Px, Py : integer;
begin
PickColor(Cc, Px, Py);
CColour3.Text := IntToStr(Cc);
SetColour3;
end;
procedure PickOutBoneColour(Sender : TObject);
var Cc, Px, Py : integer;
begin
PickColor(Cc, Px, Py);
BColour.Text := IntToStr(Cc);
SetBColour;
end;
procedure PickOutFeatherColour(Sender : TObject);
var Cc, Px, Py : integer;
begin
PickColor(Cc, Px, Py);
FColour.Text := IntToStr(Cc);
SetFColour;
end;
{NewForm - The form}
procedure NewForm;
begin
ChickenCrusherForm := CreateForm;
with ChickenCrusherForm do
begin
Caption := 'Blaster Miner Start Up';
Position := poScreenCenter;
Width := 697;
Height := 499;
Color := ClBlack;
Font.Name := 'Arial';
Font.Size := 9;
Font.Color := ClBlack;
BorderStyle := bsNone;
OnMouseDown := @DragForm;
end;
Background := TImage.Create(ChickenCrusherForm);
with Background do
begin
Parent := ChickenCrusherForm;
SetBounds(0, 0, 697, 499);
OnMouseDown := @DragForm;
end;
b := BitmapFromString2(False, 'aBA85978DA75965976ED380800B7' +
'A479F8D4B8FF25758164B79393978F0A17A10104C8C6185BB6E1C' +
'F66E0EB80C127A1C044EF5E7D0C4B989A702A9B8C262FA3C9AA9C' +
'645A3241467381AEC92C575413759DAD36626E52D17F3E1A930B6' +
'BA6B2DD783995C375985DBBCCA5A2CF65B909372CB09B5C0D2C8C' +
'A6CB0A3372466E25B8605ADECE9BAE1CB93BAB3430D96D66CE686' +
'64E705D7ABBADC9CE19EBD276D6FAD40FD1076463137A6799EA02' +
'F4B0F1235F76D64FCA7C293B163B2FC5E6E1A34F76A1393C36F1C' +
'A43D73F9C305E0ECE8046393855B00B320B8D57C6CBF9918FE5FF' +
'F4FF644BB80749075B92C4A4C46DD79533F2B6297634BF39FEA15' +
'F36C27E196043DED8C7B8D024565E36A7A4CCBA57965DE0405EAA' +
'3F67E8CAFDB2726B53E2AFB2B0E7C6DC9117E71F8554B5135A34F' +
'BC83A2A7367165FD6B15179AACD62AE7BB9CFA8AE668ECD599F15' +
'CE3A1D79CA8D5F8ABEAB7E1F99B967B46589929C931870CEF5435' +
'33E3CA3326BBF5CE7E4D797879269F65D2DBF240E6AD3F162E28B' +
'D798F84783D7C4BB44B2719744BE3DB4425616AE8F0C9D61B41F6' +
'269AE5C55AECE60536F3ECF0FA92CA90BCDCFAE39D653E30C954C' +
'B390EA7BB2EBE4DB27EBB2E60947237A57AFB2584ECD13FCD50AE' +
'D5AA12D9D9BF5520BEC1E2EB756D62626525FD40BA75D2EE999C9' +
'77F1FA0F5AFC2A2EB0257543AC84D635186044BF6084A29F97093' +
'DAB96E2995DA62742657BEF5A352F6BB5B0D7E0A39B247176A316' +
'B8EAF4050EE5F6F561338FEC4D0BBE53A8D10F585EBA96FD84C32' +
'FEFDB843F478F7E29B7DF3E7403630FC1C2A4143921BB5793DFD1' +
'2CC7BD9A049D6AD26B937FD953E8C1B08BF0EC7BCE70CE499AEAD' +
'9F0C26DBC6B6ED7F5FABBAFEF8B38CC5A89CC13A5E4B98D1A895B' +
'2792E147540B74445EA2CD4BC1E891536157289A435E10D611B97' +
'083131B618285953DA4C7179A0B7266D415DE47C90A3487A618EE' +
'97FC81362FE890EDE5576373F7740EB26E494D79A39D7F6B1E4A4' +
'5E31BD58A6FFA8E680F51BD5876E5F88B4E2ABD39E97BDD496FD9' +
'6A2F1C2578673B27B452E370E38583155F3CBE530D5C26D5493C8' +
'900D92872402E681AF109C4BF282B912F44B8A2EF9A99436FEAB0' +
'93B74519D53228A912656505A3B760E14496B77E5F4DE4D5DE126' +
'7ADA3A275942F27914F6E6825D2E1A8D3712995DB359E228BEF52' +
'DD5DABFEF49F71399512E1A6B1EDDA154F843562B0425E1365662' +
'F64A2672F1F0DB70FF34BA96EB1217390AB0F365D4E1825672E83' +
'B42D8B2FC89A3950EEC5683E18B971F9F6E07B66D388BA91F7BA9' +
'A49376B66D021B3E9BCC57CD5C42D5F351F4EE58EF285A3B44634' +
'D64679F19DCA14219DD6CB0AF29ED2EDB392D7939874F61D37033' +
'53335AB9D667BD02AE04B0ABFA2564AD6AA29372B241FF85E2307' +
'961BD42FF16B543DB52CC9B7A86E32B12D96713D86F032404F972' +
'0A21FFADB5B2672ECFB6518E6B706863F6C8EDEB382D735DD4BE9' +
'66B66DC87938E7A60B4D37E93CE4117D46BC98BE6BC676CDD876F' +
'B8364292F64919C976E105DFC3068940EE9F9D8FB225D28E4ADFD' +
'C4AA3EEB3AD2DB6B917A396CDA799AC673D0CDBAF63732FA32298' +
'356967639ED5A43DF8B87567B6366B5A9B5B9A8C1763BE4B139B3' +
'BAB26997E33B593B64D6AACCFA42157DA178217E50ECA3DAC84B3' +
'84AF90F0F6');
SafeCopyCanvas(GetBitmapCanvas(b), Background.Canvas, 0, 0, 1, 499, 0, 0, 697, 499);
b := BitmapFromString2(False, 'a8162378DA3D8CC10DC030080357' +
'72684D78370AFB8F548CA2F03859676400C855C098050F2BF2437' +
'3CB3094C3C5A9ECC3AEB778E5A905A67E5CE5D9C1C3E6CEBE1FA3' +
'E');
SafeCopyCanvas(GetBitmapCanvas(b), Background.Canvas, 0, 0, 1, 1, 0, 0, 697, 2);
SafeCopyCanvas(GetBitmapCanvas(b), Background.Canvas, 0, 0, 1, 1, 695, 2, 697, 497);
SafeCopyCanvas(GetBitmapCanvas(b), Background.Canvas, 0, 0, 1, 1, 0, 497, 697, 499);
SafeCopyCanvas(GetBitmapCanvas(b), Background.Canvas, 0, 0, 1, 1, 0, 2, 2, 497);
LabelTitle := TLabel.Create(ChickenCrusherForm);
with LabelTitle do
begin
Parent := ChickenCrusherForm;
Font.Size := 48;
Caption := 'Chicken Crusher';
SetBounds(107, 20, 480, 65);
end;
GroupBoxScript := TGroupBox.Create(ChickenCrusherForm);
with GroupBoxScript do
begin
Parent := ChickenCrusherForm;
Caption := 'Script information';
SetBounds(65, 120, 192, 95);
end;
UrSRLID := TEdit.Create(ChickenCrusherForm);
with UrSRLID do
begin
Parent := ChickenCrusherForm;
Text := 'Your SRL stats ID';
Hint := 'Your SRL stats ID, leave blank if you don''t' + Chr(13) +
'have a SRL Stats account';
ShowHint := True;
SetBounds(75, 140, 172, 20);
end;
UrSRLPassword := TEdit.Create(ChickenCrusherForm);
with UrSRLPassword do
begin
Parent := ChickenCrusherForm;
Text := 'Your SRL stats password';
Hint := 'Your SRL stats password, leave blank if you don''t' + Chr(13) +
' have a SRL Stats account';
ShowHint := True;
SetBounds(75, 165, 172, 20);
end;
VersionIsLatest := TButton.Create(ChickenCrusherForm);
with VersionIsLatest do
begin
Parent := ChickenCrusherForm;
Caption := 'Check for latest version';
Hint := 'Click here to make script check for latest version';
ShowHint := True;
SetBounds(75, 190, 172, 20);
OnClick := @LatestVersion;
end;
GroupBoxMisc := TGroupBox.Create(ChickenCrusherForm);
with GroupBoxMisc do
begin
Parent := ChickenCrusherForm;
Caption := 'Miscellaneous information';
SetBounds(65, 230, 192, 204);
end;
FRMs := TEdit.Create(ChickenCrusherForm);
with FRMs do
begin
Parent := ChickenCrusherForm;
Text := '10000';
Hint := 'Will do FindNormalRandom every' + Chr(13) +
'(Amount you type in) milleseconds else it will' + Chr(13) +
'do FindFastRandoms, recomended around 10000';
ShowHint := True;
SetBounds(75, 250, 80, 20);
end;
LabelRandoms := TLabel.Create(ChickenCrusherForm);
with LabelRandoms do
begin
Parent := ChickenCrusherForm;
Caption := 'Random(ms)';
SetBounds(159, 254, 80, 20);
end;
ABRate := TEdit.Create(ChickenCrusherForm);
with ABRate do
begin
Parent := ChickenCrusherForm;
Text := '27';
Hint := '1 Out of anti-ban rate chance of doing something' + Chr(13) +
'random, recomended around 30';
ShowHint := True;
SetBounds(75, 275, 30, 20);
end;
LabelABRate := TLabel.Create(ChickenCrusherForm);
with LabelABRate do
begin
Parent := ChickenCrusherForm;
Caption := 'Anti-ban rate';
SetBounds(109, 279, 68, 20);
end;
Skill4Lamp := TComboBox.Create(ChickenCrusherForm);
with Skill4Lamp do
begin
Parent := ChickenCrusherForm;
Text := 'Genie skill';
Items.Add('agility');
Items.Add('attack');
Items.Add('construction');
Items.Add('cooking');
Items.Add('crafting');
Items.Add('defence');
Items.Add('farming');
Items.Add('firemaking');
Items.Add('fishing');
Items.Add('fletching');
Items.Add('herblore');
Items.Add('hitpoints');
Items.Add('hunting');
Items.Add('magic');
Items.Add('mining');
Items.Add('prayer');
Items.Add('ranged');
Items.Add('runecrafting');
Items.Add('slayer');
Items.Add('smithing');
Items.Add('strength');
Items.Add('thieving');
Items.Add('woodcutting');
Hint := 'Skill to use if you find a lamp';
ShowHint := True;
SetBounds(75, 300, 95, 20);
end;
PlayerTime := TEdit.Create(ChickenCrusherForm);
with PlayerTime do
begin
Parent := ChickenCrusherForm;
Text := '90';
Hint := 'Time in minutes before switching player adds a' + Chr(13) +
'random of 10% time, set to 0 or below so' + Chr(13) +
'player will stay on till target Chickens to kill' + Chr(13) +
'is reached';
ShowHint := True;
SetBounds(75, 325, 30, 20);
end;
LabelPlayerTime := TLabel.Create(ChickenCrusherForm);
with LabelPlayerTime do
begin
Parent := ChickenCrusherForm;
Caption := 'Timer per player(Minutes)';
SetBounds(109, 329, 142, 20);
end;
BBones := TCheckBox.Create(ChickenCrusherForm);
with BBones do
begin
Parent := ChickenCrusherForm;
Caption := 'Bury bones';
Hint := 'If you want to bury bones, if you dont''t less' + Chr(13) +
'randoms will happen becaue your inventory will' + Chr(13) +
'get full';
ShowHint := True;
SetBounds(75, 350, 95, 20);
end;
PUFeathers := TCheckBox.Create(ChickenCrusherForm);
with PUFeathers do
begin
Parent := ChickenCrusherForm;
Caption := 'Pick feathers';
Hint := 'If you want to pick up feathers';
Checked := True;
ShowHint := True;
SetBounds(75, 375, 95, 20);
end;
CTlr := TEdit.Create(ChickenCrusherForm);
with CTlr do
begin
Parent := ChickenCrusherForm;
Text := '5';
Hint := 'Tolerance of the Chicken, set to around 4-10';
ShowHint := True;
SetBounds(75, 400, 30, 20);
end;
LabelCTlr := TLabel.Create(ChickenCrusherForm);
with LabelCTlr do
begin
Parent := ChickenCrusherForm;
Caption := 'Chicken Tolerance';
SetBounds(109, 404, 105, 20);
end;
GroupBoxColours := TGroupBox.Create(ChickenCrusherForm);
with GroupBoxColours do
begin
Parent := ChickenCrusherForm;
Caption := 'Colours - Click buttons to pick';
SetBounds(277, 309, 355, 125);
end;
LabelCColours := TLabel.Create(ChickenCrusherForm);
with LabelCColours do
begin
Parent := ChickenCrusherForm;
Caption := 'Chicken';
SetBounds(305, 333, 80, 20);
end;
CColour1 := TEdit.Create(ChickenCrusherForm);
with CColour1 do
begin
Parent := ChickenCrusherForm;
Text := '858490';
SetColour1;
SetBounds(287, 354, 80, 20);
OnKeyUp := @SetColour1KeyUp;
end;
ButtonC1 := TButton.Create(ChickenCrusherForm);
with ButtonC1 do
begin
Parent := ChickenCrusherForm;
Caption := 'Pick 1';
Hint := 'Pick the first colour for the Chicken';
ShowHint := True;
SetBounds(372, 354, 70, 20);
OnClick := @PickOutColour1;
end;
CColour2 := TEdit.Create(ChickenCrusherForm);
with CColour2 do
begin
Parent := ChickenCrusherForm;
Text := '4831951';
SetColour2;
SetBounds(287, 379, 80, 20);
OnKeyUp := @SetColour2KeyUp;
end;
ButtonC2 := TButton.Create(ChickenCrusherForm);
with ButtonC2 do
begin
Parent := ChickenCrusherForm;
Caption := 'Pick 2';
Hint := 'Pick the second colour for the Chicken';
ShowHint := True;
SetBounds(372, 379, 70, 20);
OnClick := @PickOutColour2;
end;
CColour3 := TEdit.Create(ChickenCrusherForm);
with CColour3 do
begin
Parent := ChickenCrusherForm;
Text := '8828102';
SetColour3;
SetBounds(287, 404, 80, 20);
OnKeyUp := @SetColour3KeyUp;
end;
ButtonC3 := TButton.Create(ChickenCrusherForm);
with ButtonC3 do
begin
Parent := ChickenCrusherForm;
Caption := 'Pick 3';
Hint := 'Pick the third colour for the Chicken';
ShowHint := True;
SetBounds(372, 404, 70, 20);
OnClick := @PickOutColour3;
end;
LabelBColour := TLabel.Create(ChickenCrusherForm);
with LabelBColour do
begin
Parent := ChickenCrusherForm;
Caption := 'Bone';
SetBounds(487, 333, 80, 20);
end;
BColour := TEdit.Create(ChickenCrusherForm);
with BColour do
begin
Parent := ChickenCrusherForm;
Text := '13685206';
SetBColour;
SetBounds(462, 354, 80, 20);
OnKeyUp := @SetBColourKeyUp;
end;
ButtonBC := TButton.Create(ChickenCrusherForm);
with ButtonBC do
begin
Parent := ChickenCrusherForm;
Caption := 'Pick';
Hint := 'Pick a colour for the Chicken''s bone';
ShowHint := True;
SetBounds(552, 354, 70, 20);
OnClick := @PickOutBoneColour;
end;
LabelFColour := TLabel.Create(ChickenCrusherForm);
with LabelFColour do
begin
Parent := ChickenCrusherForm;
Caption := 'Feather';
SetBounds(480, 383, 80, 20);
end;
FColour := TEdit.Create(ChickenCrusherForm);
with FColour do
begin
Parent := ChickenCrusherForm;
Text := '9472';
SetFColour;
SetBounds(462, 404, 80, 20);
OnKeyUp := @SetFColourKeyUp;
end;
ButtonFC := TButton.Create(ChickenCrusherForm);
with ButtonFC do
begin
Parent := ChickenCrusherForm;
Caption := 'Pick';
Hint := 'Pick a colour for the Chicken''s feather';
ShowHint := True;
SetBounds(552, 404, 70, 20);
OnClick := @PickOutFeatherColour;
end;
GroupBoxPlayers := TGroupBox.Create(ChickenCrusherForm);
with GroupBoxPlayers do
begin
Parent := ChickenCrusherForm;
Caption := 'Player ' + IntToStr(CPlayer + 1) + ' of ' + IntToStr(GetArrayLength(Players));
SetBounds(277, 120, 300, 150);
end;
Username := TEdit.Create(ChickenCrusherForm);
with Username do
begin
Parent := ChickenCrusherForm;
Text := 'Username';
Hint := 'Username of player';
ShowHint := True;
SetBounds(287, 140, 100, 20);
end;
Password := TEdit.Create(ChickenCrusherForm);
with Password do
begin
Parent := ChickenCrusherForm;
Text := 'Password';
Hint := 'Password of player';
ShowHint := True;
SetBounds(287, 165, 100, 20);
end;
Nickname := TEdit.Create(ChickenCrusherForm);
with Nickname do
begin
Parent := ChickenCrusherForm;
Text := 'ser';
Hint := 'Nickname of player, 3-4 lowercase letters of username';
ShowHint := True;
SetBounds(287, 190, 100, 20);
end;
IntegerOne := TEdit.Create(ChickenCrusherForm);
with IntegerOne do
begin
Parent := ChickenCrusherForm;
Text := 'Chickens to kill';
Hint := 'Number of Chickens to kill, set to 0 or lower if' + Chr(13) +
'you want to set target to infinity or if you set' + Chr(13) +
'to above 0 it will kill the target before' + Chr(13) +
'logging out';
ShowHint := True;
SetBounds(287, 215, 100, 20);
end;
StringOne := TComboBox.Create(ChickenCrusherForm);
with StringOne do
begin
Parent := ChickenCrusherForm;
Text := 'Fighting style';
Items.Add('attack');
Items.Add('strength1');
Items.Add('strength2');
Items.Add('defence');
Hint := 'The way you attack, there is normally 4 options in GameTab(1).' + Chr(13) +
'If you don''t know how to use reed ''Known issues'' at the top of script';
ShowHint := True;
SetBounds(287, 240, 100, 20);
end;
BackP := TButton.Create(ChickenCrusherForm);
with BackP do
begin
Parent := ChickenCrusherForm;
Caption := '<';
SetBounds(397, 190, 40, 20);
OnClick := @BackPlayer;
end;
AddP := TButton.Create(ChickenCrusherForm);
with AddP do
begin
Parent := ChickenCrusherForm;
Caption := 'Add player';
SetBounds(447, 165, 70, 20);
OnClick := @AddPlayer;
end;
DeleteP := TButton.Create(ChickenCrusherForm);
with DeleteP do
begin
Parent := ChickenCrusherForm;
Caption := 'Delete';
SetBounds(447, 215, 70, 20);
OnClick := @DeletePlayer;
end;
NextP := TButton.Create(ChickenCrusherForm);
with NextP do
begin
Parent := ChickenCrusherForm;
Caption := '>';
SetBounds(527, 190, 40, 20);
OnClick := @ForwardPlayer;
end;
Start := TButton.Create(ChickenCrusherForm);
with Start do
begin
Parent := ChickenCrusherForm;
Caption := 'Start';
SetBounds(487, 280, 80, 20);
OnClick := @SetVars;
end;
Cancel := TButton.Create(ChickenCrusherForm);
with Cancel do
begin
Parent := ChickenCrusherForm;
Caption := 'Cancel';
SetBounds(287, 280, 80, 20);
ModalResult := mrOk;
end;
end;
procedure SafeShowForm;
var BMF : TVariantArray;
begin
SetArrayLength(BMF, 0);
ThreadSafeCall('NewForm', BMF);
end;
procedure ShowFormModal;
begin
ChickenCrusherForm.ShowModal;
end;
procedure SafeShowFormModal;
var BMF : TVariantArray;
begin
SetArrayLength(BMF, 0);
ThreadSafeCall('ShowFormModal', BMF);
end;
{ProgressReport - Show information on what the players has done so far}
procedure ProgressReport;
var PR : integer;
PRActive : string;
begin
SRLRandomsReport;
PlayerCurTime := (GetSystemTime / 1000);
Players[CurrentPlayer].Worked := ((PlayerCurTime - PlayerStartTime) / 60);
WriteLn('');
WriteLn('/==========Chicken Crusher ' + Version + ' by ShapeShifter==========\');
WriteLn('| Progress Report |');
for PR := 0 to HowManyPlayers - 1 do
begin
if HasBeenOn[PR] then
begin
if Players[PR].Active then
begin PRActive := 'T' end
else
begin PRActive := 'F' end;
WriteLn('| ' + IntToStr(PR) + ' : ' +
Players[PR].Name + ',' +
PRActive + ',' + IntToStr(Players[PR].Worked)
+ ' mins,' + IntToStr(ChickensKilled[PR]) +
' CK,' + IntToStr(OneHitKills[PR]) + ' OHK,' +
IntToStr(BonesBuried[PR]) + ' BB,' + Players[CurrentPlayer].loc);
end;
end;
WriteLn('| ' + TimeRunning);
WriteLn('| Chickens Killed : ' + IntToStr(TotalChickensKilled));
WriteLn('| One Hit Kills : ' + IntToStr(TotalOneHitKills));
WriteLn('| Bones Buried : ' + IntToStr(TotalBonesBuried));
WriteLn('\========================================================/');
end;
{LoadBMP - Loads the bitmaps}
procedure LoadBMP;
begin
BMPBone := BitmapFromString2(False, 'a0CF5378DAA55359AEE430' +
'08BC125ED83E59ECFB1FE9E1B8A5A7F9E89E19354895082AE0542' +
'500008B0BC05AC1D0289C830E1E7855A8F583300B514EA3CB738F' +
'A78BFB54E850EAA973C1964FF7B7C2B80FCE75987E1ADDCFC66E0' +
'64FA42526C60EA99C1E956ABB7259B356C52EFDC5CC949422CC18' +
'2E9616365594AB386404387B6D30337D6AA1535444B6A020BC893' +
'5575B4D84372FDAC495808ACAC1A3D2B871837F88D5EA7451A71E' +
'36DE7172A5A6DE737EE6783736FABC313DA9F26A42BE7CDDED9E3' +
'E7C4404C6BC1CEA58B27C9EF687FE8FB61ADAB4D5DCD2B476F4EC' +
'574F5E8C8C57F3CB31D7ADFBBAF69AD65C5D1C6C96434B878EABB' +
'0005794DFB50F0D274E225CB85818685FCEF5CE50CBC6BF28D0EB' +
'2DE36E87AFC3C9DCFCFB39D7DFCF5FDDDB37A2AC1F28DB312132A' +
'852A347FBDF393FD1E');
BMPFeather := BitmapFromString(12, 9, 'z78DAA5CF510EC3200C0' +
'3D02BA530A07CDAA9B8FF91462193602BDAB41AC97F3C39226734' +
'F0E0515BA9EA09C2DA3173678282D60140B67E2063EF2D4326A70' +
'9222E8A5C3883408784A88985A5EF69D8D69D49586CE882398B5B' +
'2E9C85305DD4FE6AFDC7D485579F0B7F684BBD2D328CC2B861F56' +
'B91ED53B0FD82505F8187FF86BCDDF277EE0A4F5ACE89F8');
BMP1HitKill := BitmapFromString(9, 11, 'z78DAAD50410A003008' +
'FA925DF68009FBFF93C6E81248D2611D2444B3225EB1E02955F9B' +
'5110836FAEC218CF742E640341C6CA82E9FA81B729C0B9BA293FF' +
'DED521ACBEFB86C774755EE593B9E9C37BF8');
BMPDead := BitmapFromString2(False, 'a0417078DAD58DC115C020' +
'0843578A22608FDACAFE2395D0297AF981045E00E07802AB25E4B' +
'A93438C24207B267572D17148A7D3E7E0ACBCD7606A1DF545D1F6' +
'545A4E5DDAE662CE165BE5C8577022A8FFE20B59D');
end;
{FreeBMP - Free the bitmaps}
procedure FreeBMP;
begin
FreeBitmap(BMPBone);
FreeBitmap(BMPFeather);
FreeBitmap(BMP1HitKill);
FreeBitmap(BMPDead);
end;
{FindFastRandoms - Finds all the quick randoms, by WT-Fakawi}
function FindFastRandoms : Boolean;
var I : integer;
begin
for I := 1 to 10 do
begin
case I of
1 : if FindDead then
begin
Players[CurrentPlayer].loc := 'Dead';
Result := True;
end;
2 : if FindMod then
begin
Players[CurrentPlayer].loc := 'Mod';
Result := True;
end;
3 : if FindMime then
begin
Players[CurrentPlayer].Loc := 'Mime';
Result := True;
end;
4 : if FindMaze then
begin
Players[CurrentPlayer].Loc := 'Maze';
Result := True;
end;
5 : if FindQuiz then
Result := True;
6 : if FindDemon then
Result := True;
7 : if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'NoGameTab';
Logout;
exit;
end;
8 : if RC then
Result := True;
9 : if FindTalk then
Result := True;
10 : if HandleTrade then
Result := True;
end;
wait(1);
end;
end;
{FindRandoms - FindNomralRandoms when the time from mark is
over something else it FindFastRandoms}
function FindRandoms(RTime : integer) : Boolean;
begin
if TimeFromMark(FRTime) < RTime then
begin
if FindFastRandoms then
begin
Result := True;
end;
end
else
begin
if FindNormalRandoms then
begin
Result := True;
end;
MarkTime(FRTime);
end;
end;
{RestartVars - All the report vars reset to zero}
procedure RestartVars;
var RV : integer;
begin
for RV := 0 to 19 do
begin
ReportVars[RV] := 0;
end;
end;
{DisguiseIt - Discguise Scar, so it looks like another program}
procedure DisguiseIt;
begin
case Random(7) of
0 : DisguiseScar('iTunes');
1 : DisguiseScar('Google - Microsoft Internet Explorer');
2 : DisguiseScar('Document1 - Microsoft Word');
3 : DisguiseScar('Google - Microsoft Internet Explorer');
4 : DisguiseScar('Mozilla Firefox Start Page - Mozilla Firefox');
5 : DisguiseScar('New Folder');
6 : DisguiseScar('Untitled - Notepad');
end;
end;
{SetChckenCrusher - Sets up Chicken Crusher}
procedure SetChickenCrusher;
begin
ClearDebug;
ClearReport;
WriteLn(' _______');
WriteLn(' / ____/ Version ' + Version);
WriteLn(' / / ______');
WriteLn(' / /icken / ___/ \\');
WriteLn(' \ \ / /rusher _( o >');
WriteLn(' \ \____\ \___ /__=-/');
WriteLn(' \_______-_____\ ||');
WriteLn(' By ShapeShifter');
SetUpSRL;
ScriptID := '212';
GetSelf.Visible := False;
SetArrayLength(Players, 1);
SafeShowForm;
SafeShowFormModal;
GetSelf.Visible := True;
if not PressedStart then
begin
TerminateScript;
end;
MouseSpeed := 7 + random(2);
RestartVars;
CheckUserNicks;
DisguiseIt;
ActivateClient;
MarkTime(FRTime);
wait(1000);
end;
{HighestBrightness - Sets the brightness to level 4}
procedure HighestBrightness;
begin
GameTab(11);
wait(50 + random(10));
if FindColorSpiralTolerance(x, y, 4478048, 710, 226, 710, 226, 10) then
begin
Mouse(713, 229, 2, 2, True);
end;
end;
{RetaliateTrue - Sets auto retaliate to true}
procedure RetaliateTrue;
begin
GameTab(1);
wait(50 + random(10));
if not FindColorSpiralTolerance(x, y, 1711220, 610, 367, 620, 393, 10) then
begin
Mouse(613, 370, 88, 21, True)
end;
end;
{SetFightingStyle - Sets fighting style}
procedure SetFightingStyle;
begin
WriteLn('Fighting mode:' + Players[CurrentPlayer].string1);
GameTab(1);
wait(200 + random(10));
if not ((Players[CurrentPlayer].string1 = 'attack') or
(Players[CurrentPlayer].string1 = 'strength1') or
(Players[CurrentPlayer].string1 = 'strength2') or
(Players[CurrentPlayer].string1 = 'defence')) then
begin
WriteLn('This player''s string1 does not fit into any category');
WriteLn('String1 will be set to ''attack''');
Players[CurrentPlayer].string1 := 'attack';
end;
if FindText(x, y, 'Punch', StatChars, 589, 276, 627, 293) then
begin
WriteLn('Unarmed');
case LowerCase(Players[CurrentPlayer].string1) of
'attack' : Mouse(577, 254, 61, 37, true);
'strength1' : Mouse(661, 254, 61, 37, true);
'strength2' : Mouse(661, 254, 61, 37, true);
'defence' : Mouse(577, 307, 61, 37, true);
end;
exit;
end;
if FindText(x, y, 'Bash', StatChars, 587, 264, 623, 283) and
FindText(x, y, 'ocus', StatChars, 593, 338, 624, 353) then
begin
WriteLn('Staff wielded');
case LowerCase(Players[CurrentPlayer].string1) of
'attack' : Mouse(578, 255, 61, 25, true);
'strength1' : Mouse(578, 290, 61, 25, true);
'strength2' : Mouse(578, 290, 61, 25, true);
'defence' : Mouse(578, 325, 61, 25, true);
end;
exit;
end;
WriteLn('Setting fight mode the default way');
case LowerCase(Players[CurrentPlayer].string1) of
'attack' : Mouse(577, 254, 61, 37, true);
'strength1' : Mouse(661, 254, 61, 37, true);
'strength2' : Mouse(577, 307, 61, 37, true);
'defence' : Mouse(661, 307, 61, 37, true);
end;
end;
{FeathersInInv - Checks if fether is in inventory}
procedure FeathersInInv;
begin
if ((CollectFeathers) and (not GotFeathers)) then
begin
LoadBMP;
if FindBitmapToleranceIn(BMPFeather, x, y, MIx1, MIy1, MIx2, MIy2, 20) then
begin
GotFeathers := True;
writeln('Got feathers');
end;
FreeBMP;
end;
end;
{SetUpPlayer - Sets up the player stuff}
procedure SetUpPlayer;
begin
WriteLn(' ' + IntToStr(CurrentPlayer) + ':' + Players[CurrentPlayer].Name);
HasBeenOn[CurrentPlayer] := True;
Players[CurrentPlayer].loc := 'Chickens';
GotFeathers := False;
wait(200 + random(50));
if LoggedIn then
begin
RetaliateTrue;
wait(140 + random(10));
SetFightingStyle;
wait(120 + random(50));
SetRun(True);
wait(100 + random(10));
HighestBrightness;
wait(140 + random(10));
SetChat('off', 1);
wait(70 + random(20));
SetChat('off', 2);
wait(60 + random(20));
SetChat('on', 3);
wait(50 + random(10));
HighestAngle;
wait(100 + random(50));
GameTab(4);
wait(100 + random(5));
FeathersInInv;
MarkTime(LastKill);
end;
end;
{FindChicken - My find colour spiral with "IsUpTextMulti('ick','cke','ken')"}
function FindChicken(var Cx, Cy : integer; X1, Y1, X2, Y2, CTol : integer) : Boolean;
var ACx, ACy, C : integer;
begin
for C := 1 to 3 do
begin
if FindColorSpiralTolerance(ACx, ACy, ChickenColour[C], X1, Y1, X2, Y2, CTol) then
begin
if ((not FindColorSpiral(x, y, 65280, ACx - 10, ACy - 35, ACx + 10, ACy + 10)) and
(not FindColorSpiral(x, y, 255, ACx - 10, ACy - 35, ACx + 10, ACy + 10)) and
(not FindColorSpiral(x, y, 16728128, ACx - 10, ACy - 35, ACx + 10, ACy + 10))) then
begin
MMouse(ACx, ACy, 0, 0);
wait(80 + random(10));
if IsUpTextMulti('ick', 'cke', 'ken') then
begin
Cx := ACx;
Cy := ACy;
Result := True;
exit;
end;
end
else
begin
WriteLn('Mouse hovered over a thing that was already in a fight');
end;
end;
wait(50 + random(10));
FindRandoms(FindRandomMS);
end;
end;
{KillChicken - Find and kills chicken}
function KillChicken : Boolean;
var x1, y1, DsTimer : integer;
begin
MarkTime(ChickenTimer);
MarkTime(DsTimer);
repeat
if TimeFromMark(ChickenTimer) > 120000 + random(20000) then
begin
WriteLn('Hasn''t found a Chicken for ' + FloatToStr(TimeFromMark(ChickenTimer) / 1000) + ' seconds');
Players[CurrentPlayer].loc := 'Can''tFindChickenFor' + FloatToStr(TimeFromMark(ChickenTimer) / 1000);
LogOut;
end;
if TimeFromMark(LastKill) > 300000 + random(20000) then
begin
WriteLn('Hasn''t killed a Chicken for ' + FloatToStr(TimeFromMark(LastKill) / 1000) + ' seconds');
Players[CurrentPlayer].loc := 'Hasn''tKillChickenFor' + FloatToStr(TimeFromMark(LastKill) / 1000);
LogOut;
end;
if TimeFromMark(DsTimer) > 20000 + random(5000) then
begin
KeyDown(vk_right);
wait(800 + random(400));
KeyUp(vk_right);
MarkTime(DsTimer);
end;
FindRandoms(FindRandomMS);
wait(100);
if FindChicken(x1, y1, MSx1, MSy1, MSx2, MSy2, ChickenTolerance) then
begin
Mouse(x1, y1, 0, 0, false);
MarkTime(DsTimer);
if ChooseOption(x1, y1, 'ttack') then
begin
Flag;
MarkTime(ChickenTimer);
break;
end;
end
else
begin
if random(3) = 1 then
begin
MarkTime(DsTimer);
if random(5) = 1 then
begin
KeyDown(vk_left);
wait(800 + random(400));
KeyUp(vk_left);
end
else
begin
KeyDown(vk_right);
wait(800 + random(400));
KeyUp(vk_right);
end;
end;
end;
until (not LoggedIn);
LoadBMP;
repeat
FindRandoms(FindRandomMS);
wait(100);
if FindBitmapSpiralTolerance(BMP1HitKill, x, y, MSCx - 70, MSCy - 70, MSCx + 70, MSCy + 70, 20) then
begin
ReportVars[1] := ReportVars[1] + 1;
OneHitKills[CurrentPlayer] := OneHitKills[CurrentPlayer] + 1;
TotalOneHitKills := TotalOneHitKills + 1;
MarkTime(LastKill);
Result := True;
break;
end;
if FindBitmapSpiralTolerance(BMPDead, x, y, MSCx - 70, MSCy - 70, MSCx + 70, MSCy + 70, 20) then
begin
ReportVars[0] := ReportVars[0] + 1;
ChickensKilled[CurrentPlayer] := ChickensKilled[CurrentPlayer] + 1;
TotalChickensKilled := TotalChickensKilled + 1;
MarkTime(LastKill);
Result := True;
break;
end;
if (FindColorSpiral(x, y, 65280, MSCx - 70, MSCy - 70, MSCx + 70, MSCy + 70)) or
(FindColorSpiral(x, y, 255, MSCx - 70, MSCy - 70, MSCx + 70, MSCy + 70)) or
(FindColorSpiral(x, y, 16728128, MSCx - 70, MSCy - 70, MSCx + 70, MSCy + 70)) then
begin
MarkTime(ChickenTimer);
end;
until ((TimeFromMark(ChickenTimer) > 3000) or (not LoggedIn))
FreeBMP;
end;
{BuryAllBones - Buries all bones}
procedure BuryAllBones;
var BoneTimer, Bones, Bx, By : integer;
begin
LoadBMP;
if FindBitmapToleranceIn(BMPBone, Bx, By, MIx1, MIy1, MIx2, MIy2, 20) then
begin
Bones := CountItemBMPTol(BMPBone, 20);
ReportVars[2] := ReportVars[2] + Bones;
BonesBuried[CurrentPlayer] := BonesBuried[CurrentPlayer] + Bones;
TotalBonesBuried := TotalBonesBuried + Bones;
repeat
if FindBitmapToleranceIn(BMPBone, Bx, By, MIx1, MIy1, MIx2, MIy2, 20) then
begin
Mouse(Bx, By, 6, 6, True);
MarkTime(BoneTimer);
repeat
wait(100 + random(50));
if FindRandoms(FindRandomMS) then
begin
break;
end;
until ((not LoggedIn) or (TimeFromMark(BoneTimer) > 1300));
end;
until ((not FindBitmapToleranceIn(BMPBone, Bx, By, MIx1, MIy1, MIx2, MIy2, 20)) or (not LoggedIn));
end;
FreeBMP;
end;
{PickUpItems - picks up the itmes}
procedure PickUpItems;
begin
MarkTime(ChickenTimer);
GameTab(4);
wait(50 + random(10));
while ((TimeFromMark(ChickenTimer) < 4000) and (LoggedIn)) do
begin
wait(150 + random(50));
if FindRandoms(FindRandomMS) then
begin
exit;
end;
if FindColorSpiralTolerance(x, y, FeatherColour, MSCx - 50, MSCy - 50, MSCx + 50, MSCy + 50, ChickenTolerance) or
FindColorSpiralTolerance(x, y, BoneColour, MSCx - 50, MSCy - 50, MSCx + 50, MSCy + 50, ChickenTolerance) then
begin
if CollectFeathers then
begin
if (GotFeathers) or ((not GotFeathers) and (InvCount < 28)) then
begin
if FindColorSpiralTolerance(x, y, FeatherColour, MSCx - 50, MSCy - 50, MSCx + 50, MSCy + 50, ChickenTolerance) then
begin
Mouse(x, y, 0, 0, false);
if ChooseOption(x, y, 'eather') then
begin
Flag;
wait(300 + random(30));
FeathersInInv;
end;
end;
end;
end;
if FindRandoms(FindRandomMS) then
begin
exit;
end;
if ((CollectFeathers) and (GotFeathers) and (InvCount < 28)) or
((CollectFeathers) and (not GotFeathers) and (InvCount < 27)) or
((not CollectFeathers) and (InvCount < 28)) then
begin
if FindColorSpiralTolerance(x, y, BoneColour, MSCx - 50, MSCy - 50, MSCx + 50, MSCy + 50, ChickenTolerance) then
begin
Mouse(x, y, 0, 0, False);
if ChooseOption(x, y, 'one') then
begin
Flag;
wait(300 + random(30));
end;
end;
end;
if BuryBones then
begin
if (InvFull) or ((CollectFeathers) and (not GotFeathers) and (InvCount > 26)) then
begin
BuryAllBones;
end;
end;
exit;
end;
end;
end;
{SSAntiBan - look more human, less chance of getting banned}
procedure SSAntiBan;
begin
if random(AntiBanRate) <= 0 then
begin
if LoggedIn then
begin
case random(5) of
0 : begin GameTab(2); wait(50 + random(50)); HoverSkill('attack', false); end;
1 : begin GameTab(2); wait(50 + random(50)); PickUpMouse; HoverSkill('strength', false);
if random(2) = 1 then
begin wait(50 + random(50)); HoverSkill('prayer', false); end; end;
2 : begin GameTab(2); wait(100 + random(50)); HoverSkill('defence', false); end;
3 : begin PickUpMouse; GameTab(2); wait(50 + random(50)); HoverSkill('hitpoints', false); end;
4 : begin GameTab(2); SetRun(True); end;
end;
wait(100 + random(100));
GameTab(4);
FindRandoms(FindRandomMS);
end;
end;
end;
{Da Stuff}
begin
SetChickenCrusher;
LogInPlayer;
SRL_Logs := SRL_logs + 1;
repeat
SetUpPlayer;
repeat
if KillChicken then
begin
if BuryBones or CollectFeathers then
begin
PickUpItems;
end;
ProgressReport;
end;
SSAntiBan;
if ((TimePerPlayer > 0) and (Players[CurrentPlayer].Worked > TimePerPlayer + random(TimePerPlayer / 10))) then
begin
Players[CurrentPlayer].loc := 'TimeReached';
WriteLn('Time reached');
break;
end;
if ((Players[CurrentPlayer].integer1 > 0) and (ChickensKilled[CurrentPlayer] >= Players[CurrentPlayer].integer1)) then
begin
LogOut;
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].loc := 'TargetReached';
WriteLn('Target reached');
end;
until (not LoggedIn);
ProgressReport;
NextPlayer(LoggedIn);
until (false);
end.