SCAR Code:
program FallyCowCruncher;
{.include srl/srl.scar}
{.include srl/srl/skill/fighting.scar}
var
x,y,a: integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 4;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Integers[1] :=0; //desired attack
Players[0].Integers[2] :=50; //desired strength
Players[0].Integers[3] :=0; //desired defense
Players[0].Integers[4] :=1;
Players[0].Active := true;
Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Integers[1] :=0; //desired attack
Players[1].Integers[2] :=0; //desired strength
Players[1].Integers[3] :=0; //desired defense
Players[1].Integers[4] :=1;
Players[1].Active := False;
Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := '';
Players[2].Integers[1] :=0; //desired attack
Players[2].Integers[2] :=0; //desired strength
Players[2].Integers[3] :=0; //desired defense
Players[2].Integers[4] :=1;
Players[2].Active := False;
Players[3].Name := '';
Players[3].Pass := '';
Players[3].Nick := '';
Players[3].Integers[1] :=0; //desired attack
Players[3].Integers[2] :=0; //desired strength
Players[3].Integers[3] :=0; //desired defense
Players[3].Integers[4] :=1;
Players[3].Active := False;
end;
function AttackMode:boolean;
var
i,att,str,def:integer;
begin
if not(loggedIn) then exit;
result:=true;
if (timefrommark(a)>30000)or(players[currentplayer].skill='') then
begin
Mouse(575,183,10,10,true);
wait(200);
att:=getskillinfo('attack',false);
str:=getskillinfo('strength',false);
def:=getskillinfo('defence',false);
writeln(inttostr(att)+' attack');
writeln(inttostr(str)+' strength');
writeln(inttostr(def)+' defence');
marktime(a);
if (lowercasE(players[currentplayer].skill)='attack') then
if (att<players[currentplayer].integers[1]) then exit else players[currentplayer].skill:='';
if (lowercasE(players[currentplayer].skill)='strength') then
if (str<players[currentplayer].integers[2]) then exit else players[currentplayer].skill:='';
if (lowercasE(players[currentplayer].skill)='defence') then
if (def<players[currentplayer].integers[3]) then exit else players[currentplayer].skill:='';
for i:=0 to 0 do
begin
if (players[currentplayer].skill='') then
begin
if (att<players[currentplayer].integers[1]) then
if not(players[currentplayer].integers[1]=99) then
begin
players[currentplayer].skill:='attack';
break;
end;
if (str<players[currentplayer].integers[2]) then
if not(players[currentplayer].integers[2]=99) then
begin
players[currentplayer].skill:='strength';
break;
end;
if (def<players[currentplayer].integers[3]) then
if not(players[currentplayer].integers[3]=99) then
begin
players[currentplayer].skill:='defence';
break;
end;
if (players[currentplayer].integers[1]=99) then players[currentplayer].skill:='attack';
if (players[currentplayer].integers[2]=99) then players[currentplayer].skill:='strength';
if (players[currentplayer].integers[3]=99) then players[currentplayer].skill:='defence';
end;
end;
Mouse(542,183,10,10,true);
case lowercase(players[currentplayer].skill) of
'attack': setfightmode(1);
'strength': setfightmode(2);
'defence','defense': setfightmode(4);
else result:=false;
end;
end;
end;
procedure SetRetaliate(ret:boolean);
var
i:integer;
begin
if not(loggedIn) then exit;
gametab(1);
for i:=1 to 5 do
begin
case getColor(600,390) of
4540745: if ret=true then mouse(600+random(100),370+random(20),0,0,true) else exit;
1711220: if ret=false then mouse(600+random(100),370+random(20),0,0,true) else exit;
end;
wait(200);
end;
end;
Procedure FightSetup;
begin
If not(loggedin) then Exit;
MakeCompass('s');
SetRun(true);
AttackMode;
SetAngle(True);
SetRetaliate(true);
Mouse(643,183,10,10,true);
end;
procedure LogIn;
begin
if not(loggedin) then LoginPlayer;
Wait(500);
FindNormalRandoms;
MakeCompass('n');
Mouse(672,482,5,5,true);
SetRun(false);
SetBar('Brightness',4);
end;
//taken off men_tal's cow killing script
procedure CollectHide;
var
j: integer;
Hide:Array [0..1] of integer;
begin
Hide[0] := 10790320;
Hide[1] := 11382199;
for j := 0 to 1 do
begin
if FindColorSpiralTolerance(x,y,Hide[j],MSX1,MSY1,MSX2,MSY2,10) then
begin
Mouse(x, y, 3, 3, false);
ChooseOption('ide');
Flag;
FindNormalRandoms;
end;
end
end;
function RandClick(item , option:string): boolean;
begin
if IsUpText(item) then
begin
case Random(4) of
0,1,2: Mouse(x,y,10,10,true);
3: begin
Mouse(x,y,10,10,false);
ChooseOption(option);
end;
end;
Result := true;
end;
end;
procedure KillDaCow;
var
CowsKilled,o: Integer;
madtype: array [1..7] of string;
CowColor: array [0..4] of Integer;
begin
try
CowsKilled := 0;
Writeln('now to own some cows');
CowColor[0] := 12238787;
CowColor[1] := 3755348;;
CowColor[2] := 2765117;
CowColor[3] := 5002080;
CowColor[4] := 6911365;
MadType[1] :='darn..';
MadType[2] :='grr got it before me';
MadType[3] :='lol';
MadType[4] :='keep getting beaten to them';
MadType[5] :='grrr..';
MadType[6] :='darn, peaople keep getting it over me';
MadType[7] :='darn i''m a noob';
FightSetup;
repeat
for o := 0 to 4 do
begin
FindNormalRandoms;
if FindColorTolerance(x,y,Cowcolor[o],0,0,518,339,4) then
begin
MMouse(x,y,10,10);
Wait(100);
if IsUpText('ow')=true then
begin
RandClick('ow','ttack');
Flag;
Wait(750+random(1000));
if FindBlackChatMessage('omeone') then
Typesend(madtype[1+random(6)]);
begin
KillDaCow;
end;
wait(2000);
if infight = true then
begin
repeat
Wait(500);
until Infight = false;
CowsKilled := CowsKilled + 1;
wait(1000);
Collecthide;
end;
end;
Wait(500);
end;
end;
until(InvFull);
except
Writeln('Saved That Run-Time Error, Thanks Timer!');
end;
end;
procedure ToPen;
var
z,TheRoadColor:integer;
begin
login;
Z:=0
Makecompass('n');
TheRoadColor := findfallyroadColor;
Wait(500);
if radialwalk(TheRoadColor,180,270,40,1,1) then
begin
wait(500);
end else Exit;
repeat
radialroadwalk(TheRoadColor,165,200,50,1,1);
Writeln('lalala');
wait(200);
until(findsymbolin(x,y,'tree',628,8,704,165));
mouse(x + 10,y,10,5,true);
flag;
if findcolortolerance(x,y,235,628,8,705,117,20) then
begin
mouse(x,y + 5,5,5,true);
flag;
wait(500);
end;
if findcolorSpiraltolerance(x,y,5467001,0,0,516,338,10) then
begin
randclick('ate','pen');
Z:= Z + 1;
end else exit;
end;
procedure ToBank;
var
LoadsDone: Integer;
begin
LoadsDone := 0;
LoadsDone := LoadsDone + 1;
if players[currentplayer].integers[4] <= LoadsDone then
begin
Logout;
NextPlayer(true);
end
end;
begin
SetupSRL;
ActivateClient;
DeclarePlayers;
repeat
ToPen;
KillDaCow;
ToBank;
until(false);
end.