.. can someone help the script always hovers over the strength icon and does nothing.
nvm works now!
Ya please don't double...or triple post...It would be nice if you posted your errors.
NIce i amma check it out
![]()
first error i got was this...
Include file C:\Program Files\SCAR 3.12\includes\SRL.scar does not exist.
Include file C:\Program Files\SCAR 3.12\includes\SRL\misc\Bitmaps\Crafting.scar does not exist.
Failed when compiling
~~Copied everything one lvl up, this isn't the first time its happened to me~~
second error...
Line 1700: [Error] (16411:34): Unknown identifier 'OpenBank3' in script C:\Program Files\SCAR 3.12\Scripts\COWZZZ.scar
~~Changed it according to Fakawi 'OpenBankFast'~~
third error...
Line 1776: [Warning] (16487:16): "True and" is not needed in script C:\Program Files\SCAR 3.12\Scripts\COWZZZ.scar
~~Went with old faithful and set a couple of // in there~~
Works perfectly
Worked for 17 Minutes and 47 Seconds
Banked 0 loads[s].
Attacked 10 cows.
Collected 0 hides.
Buried 7 bones.
Collected 0 meat.
Cooked 0 meat.
Dropped 0 burned meat.
0 : _________ T. AT 27. ST 33. DF 43. PR 13. HP 41. MG 51. CO 6. . - B :0 Times.W : 0 min. L: Cowfield
1 : _________ = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
2 : _________ = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
3 : _________ = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
4 : _________ = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
5 : _________ = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
6 : _________ = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
7 : _________ = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
**********************************************
Thanks. Great script
Slackjaw7
Mine is having a bit of a problem... whenever i run script i get this error message:
Include file G:\runescape\Scar\Program\SCAR 3.12\includes\SRL.scar does not exist.
Include file G:\runescape\Scar\Program\SCAR 3.12\includes\SRL\misc\Bitmaps\Crafting.scar does not exist.
Can any1 plz tell me why - it's a shame to get an error when the script looks awesome.
strange just started getting this error
[Error] (16425:34): Unknown identifier 'OpenBank3' in script C:\Program Files\SCAR 3.12\Scripts\[SRL4] Cowz 0.43.scar
He is just missing part of the includes...
In lines 39 and 40, it should say this in the script...
SCAR Code:{.include SRL/SRL.scar}
{.include SRL/SRL/misc/Bitmaps/Crafting.scar}
not..
SCAR Code:{.include SRL.scar}
{.include SRL/misc/Bitmaps/Crafting.scar}
Change it to that, and then you will get a new error that says...
Line 1650: [Error] (16375:34): Unknown identifier 'OpenBank3' in script C:\Program Files\SCAR 3.12\Scripts\[SRL4] Cowz 0.43.scar
In this error, change the OpenBank3; to Exit; so it says...
SCAR Code:If not OpenBankQuiet('feb') then Exit;
umm i couldnt post up proggy because IT WENT TOO slow and i quit. it picks up all the cowhides, but it leaves out 20% fo teh bones
no really after the script started running the computer graphic went overload then it went liek one frame per sec. so i had to quit. This happened after running it for 5 mins. I do not know why but this does not happen with other scripts
nvm i forgot to pick the color, I thought the one already there was enough, though, I'd like to have one that would just pick up the hides because that is the only reason I use the script.first error i got was this...
Include file C:\Program Files\SCAR 3.12\includes\SRL.scar does not exist.
Include file C:\Program Files\SCAR 3.12\includes\SRL\misc\Bitmaps\Crafting.scar does not exist.
Failed when compiling
~~Copied everything one lvl up, this isn't the first time its happened to me~~
second error...
Line 1700: [Error] (16411:34): Unknown identifier 'OpenBank3' in script C:\Program Files\SCAR 3.12\Scripts\COWZZZ.scar
~~Changed it according to Fakawi 'OpenBankFast'~~
third error...
Line 1776: [Warning] (16487:16): "True and" is not needed in script C:\Program Files\SCAR 3.12\Scripts\COWZZZ.scar
~~Went with old faithful and set a couple of // in there~~
Works perfectly
WT-Fawaki i made it compile so the l33chers shut up its okay to post? if not delete it, with your dev powers
Updated(compiling) COWS!
SCAR Code:{=========================================================================]
[ SRL Cow Killer / Hide & Meat Collector / Banker / Bone Burier ]
[ ]
[ NAME : SRL Cow Killer/Collector 0.43 ]
[ WRITER : WT-Fakawi (Fawki) ]
[ CATEGORY : Fighter/Collector ]
[ DESCRIPTION : See below. ]
[ USAGE : Fights Cows below Falador. Collects and banks. ]
[ AUTOCOLOR : No. Pick RoadColor outside Falador. Line 48. ]
[ NOTES : ]
[ CONTACT : [email]WTFakawi@hotmail.com[/email] ]
[ SRL REV. : 4 SCAR 3.11 ]
[=========================================================================]
[ This Script kills Cows @ the cowfield below Falador and collects ]
[ hides and bones, cook meat at the fireplace, buries bones and ]
[ banks hides ]
[ ]
[=========================================================================]
[ Instructions. ]
[=========================================================================]
[ ]
[ USE SCSS CLIENT ]
[ ]
[ COLORPICK THE TREECOLOR IN LINE 56. See guard mager thread for details ]
[ [url]http://www.villavu.com/forum/showthread.php?t=5936?t=6840[/url] ]
[ ]
[ ]
[ 1. USE Runescape with Low Detail, Very Bright. ]
[ 2. Set your Screen to 32 bit TRUE color. ]
[ 3. Set Playernames and Passwords in DeclarePlayers. ]
[ 4. Set NumberOfPlayers. ]
[ 5. Position your chars at Falador east bank LEFTMOST bankslot. ]
[ 6. Make sure your Players have three pieces of armour. ]
[ 7. If script cant find colors manually align MM North BEFORE RUNNING. ]
[=========================================================================}
program CowKiller;
{.include SRL/srl.scar}
{.include SRL/srl/misc/Bitmaps/Crafting.scar}
var
Mark, FB1, FB2, FB3, MMGate, Bone, BoneCount, NewBones, OldBones, ColdCount, CewCount,
BoneHide1, BoneHide2, BoneHide3, BoneHide4,
Meat, Hides, Cal, Cow1, Cow2, Cow3, Cow4, Cows,
Gate3, Gate6, Gate9, CowHideText, BonesText, RawBeefText, MainMark,
FirePlace, Fireplace2, FPD1, FPD2, FPD3, CookedMeatCount,
BurnedMeatCount, FaladorEastBank: integer;
var
SST1, SST2, FindNorMalRandomsTime, FindFastRandomsTime: LongInt;
var CowHide: array[1..8] of Integer;
//----------------------REQUIRED COLOR --------------------------------------//
const
TreeColor = 533016; // <- COLORPICK THE RIGHT TREECOLOR!!
//---------------------OPTIONAL FIELDS----------------------------------------//
const
Loads = 2; //<- Number of loads before switching Player.
MySRLID = ''; //<- Your SRLID. Leave blank if you dont have one.
MySRLPassword = ''; //<- Your SRL Password here if you want to have yout stats logged
RemoteMaster = ''; //<- fill in the Nickname of the RC master
CollectMeat = True; //<- Enables Meat collection
CookMeat = False; //<- Enables Meat Cooking! (Experimental)
FawkiDebug = False; // For extensive reports set to True.
FightingTime = 14; // fighting TimeOut in second. 14 is ok for level - 30+
//--------------------DO NOT CHANGE THESE VALUES------------------------------//
GateColor = 4350580; // AUTOCOLORS
MeatColor = 1122975;
CalfColor = 5797788;
VersionNumber = '0.43';
procedure HandleGate(ToFrom:String); Forward;
Function PickUp:Boolean; Forward;
Procedure WalkToFalador(How:string); Forward;
Procedure CleanUpInventory; Forward;
Procedure DeclarePlayers;
begin
NumberOfPlayers(8);
CurrentPlayer := 0;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Skill :='auto' // Valid: 'attack', 'strength', 'defence', 'auto'
Players[0].Loc := 'Falador';
Players[0].Active :=True;
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Skill :='auto'
Players[1].Loc := 'Falador';
Players[1].Active :=True;
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Skill :='auto'
Players[2].Loc := 'Falador';
Players[2].Active :=True;
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Skill :='auto'
Players[3].Loc := 'Falador';
Players[3].Active :=True;
Players[4].Name :='';
Players[4].Pass :='';
Players[4].Nick :='';
Players[4].Skill :='auto'
Players[4].Loc := 'Falador';
Players[4].Active :=True;
Players[5].Name :='';
Players[5].Pass :='';
Players[5].Nick :='';
Players[5].Skill :='auto'
Players[5].Loc := 'Falador';
Players[5].Active :=True;
Players[6].Name :='';
Players[6].Pass :='';
Players[6].Nick :='';
Players[6].Skill :='auto'
Players[6].Loc := 'Falador';
Players[6].Active :=True;
Players[7].Name :='';
Players[7].Pass :='';
Players[7].Nick :='';
Players[7].Skill :='auto'
Players[7].Loc := 'Falador';
Players[7].Active :=True;
end;
//----------------------------------------------------------------------------//
procedure PlayerStats;
var
Active: string;
var
i: Integer;
begin
for i := 0 to HowManyPlayers-1 do
begin
if Players[i].Active=True then Active:='T' else Active:='F';
writeln( (inttostr(i))+' : '+Players[i].name + ' = '+Active
+'. '
+'AT '+inttostr(Players[i].level[1])+'. '
+'ST '+inttostr(Players[i].level[2])+'. '
+'DF '+inttostr(Players[i].level[3])+'. '
+'PR '+inttostr(Players[i].level[5])+'. '
+'HP '+inttostr(Players[i].level[8])+'. '
+'MG '+inttostr(Players[i].level[6])+'. '
+'CO '+inttostr(Players[i].level[18])+'. '
+'. - B :' + inttostr(Players[i].Banked)+' Times.'+
+'W : '+IntToStr(Players[i].Worked)+' min. '
+'L: '+Players[i].loc);
end
writeln('**********************************************');
end;
//----------------------------------------------------------------------------//
procedure ProgressReport;
begin
begin
WriteLn(' ');
WriteLn('<============== -'+VersionNumber+'- Progress Report ===============>');
writeln('Worked for '+ TimeRunning);
WriteLn('Banked '+IntToStr(banks)+' loads[s].');
WriteLn('Attacked '+IntToStr(Cows)+' cows.');
WriteLn('Collected '+IntToStr(Hides)+' hides.');
WriteLn('Buried '+IntToStr(BoneCount)+' bones.');
WriteLn('Collected '+IntToStr(Meat)+' meat.');
WriteLn('Cooked '+IntToStr(CookedMeatCount)+' meat.');
WriteLn('Dropped '+IntToStr(BurnedMeatCount)+' burned meat.');
end;
PlayerStats;
CewCount := Cows; // some fuzzy stats logic :)
NewBones:= BoneCount;
Reportvars[1] := CewCount - ColdCount;
Reportvars[3] := NewBones - OldBones;
SRLRandomsReport;
ColdCount := Cows;
OldBones:= BoneCount;
end;
//----------------------------------------------------------------------------//
Procedure FillMem;
begin
FB1 := DTMFromString('78DA636C66626008634001972E5E66F80FA41' +
'981F83F1030B601D5C4A0AAF9F38789810BAA0604189B8850D345' +
'580D00CA7B110D'); // three yellow bankerdots. Works in combi with DM3Flag
FB2 := DTMFromString('78DA63EC61626008614001478F1E65F80FA41' +
'981F83F1030F602D544A1AAF9F38789810BAA0604182712A1662A' +
'504D247E3500C2961107');
FB3 := DTMFromString('78DA636C646260086140038C0CFFC12403C37' +
'F206004A9894255F1E70F130317540D58472B504D3401359D4035' +
'31F8D50000978B0E8E');
MMGate := BitmapFromString(4, 1, 'F70000F70000F70000F70000'); // MM red stripe
Gate3 := BitmapFromString(3, 1, 'E80000E80000E80000');
Gate6 := BitmapFromString(3, 2, '778421778421778421E8000' +
'0E80000E80000');
Gate9 := BitmapFromString(3, 3, 'z78DA3337B7303132344722' +
'5D2D0C80009934C750030034130B26');
FPD1 := BitmapFromString(2, 5, 'z78DAB3B030373671' +
'B1C020DD8C0C8000429A5B9AB9996121018D1F0D01');
FPD2 := BitmapFromString(3, 3, '88734D88734D88734' +
'DF20000F20000F20000796F60796F60796F60');
FPD3 := BitmapFromString(1, 3, '88734DF20000796F6' +
'0');
Bone := BitmapFromString2(False, 'aE351F78DA5D8D5B0EC520' +
'0844B7449541FAC9A3EE7F498536B9B9A91FE389830722A26B559' +
'01D15425C0995661DCD88E6637CDAA1FC6BB19FF91EA1C557B3A3' +
'F931BF9E85FD6929DB70CCFE5BF77FA6E6C8E1E9D3674420382D9' +
'1703236F6696A1AA83EC38363D6222C28AD3EBA48B6D1891322D8' +
'CFDE72BE364981E07DB901A00');
BoneHide1 := BitmapFromString(9, 1, 'C2B9B8C2B9B8C2B9B8D5D0' +
'CFD4CECE978D8CB7ACABBAAFAFB8ADAD'); // long stretched
BoneHide2 := BitmapFromString(3, 3, 'B1A5A55A7B1D5A7B1DB1' +
'A5A55A7B1D5A7B1DAB9F9FB3A8A75A7B1D');// upperright corner
BoneHide3 := BitmapFromString(4, 4, 'z78DA3375B330323230C' +
'5209D0C1C4D1C4D9049FCE28ECE8E068E064E868EA68EA6101222' +
'0E000011153E'); // upperrightcorner
BoneHide4 := BitmapFromString(3, 4, 'C2B9B9C2B9B95A7B1DBF' +
'B6B6BFB6B65A7B1DCBC4C4CBC4C45A7B1D57771D57771D57771D'); // lowerright corne
Cow1 := BitmapFromString(6, 1, 'C1BDB7C1BDB7C1BDB75A523C' +
'574F3A574F3A');
Cow2 := BitmapFromString(1, 6, '604B40604B40604B40685952' +
'685952665751');
Cow3 := BitmapFromString(6, 1, 'C1BDB7C1BDB7C1BDB7918072' +
'8F7E718F7E71');
Cow4 := BitmapFromString(1, 6, 'C0BBB6C0BBB6BEBAB48F7560' +
'8D735E8D735E');
CowHideText := BitmapFromString(25, 1, 'z78DA7373B334303170' +
'03931060EA626A6262EE4684387E9254D390C5019A022059');
BonesText := BitmapFromString(24, 1, 'z78DA7373B33430317003' +
'931060EA626A6262EE4603714C121940D40300C5511EC7');
RawBeefText := BitmapFromString(29, 1, 'z78DA7373B334303170' +
'0393C8C00D43DCD4C5D4C4C41C591C3F89AC0B17498C2DC8E200C' +
'CC02560');
Fireplace := BitmapFromString(18, 1, '8B65318D63248962217B5' +
'F348E7538957C3F8B6F237F6A38796D3E776015755D2180663B85' +
'5C20805D337A5C4160504174583E695442'); // (...,1) works fine with deformed
FirePlace2 := BitmapFromString(30, 1, '7450197855326D4D25' +
'5F39126E512B7E64248565148566158566154B3905765C134B421' +
'E6E52237A561B72511A72511A644F3C7E5C3D835B1A885E168A5F' +
'1072501275520D8969137D621E5A4D1C524513805913684D1C755' +
'21A');
FaladorEastBank := DTMFromString('78DA63EC60626008614001FFFFFF67F80FA41' +
'921ECFF8CED4035D1A86AFEFC6102D38C503E6337116AFA895033' +
'99B01A00BF4D1471');
CowHide[1]:= 7504017; // Bright cow
CowHide[2]:= 5330790; // Dark cow
CowHide[3]:= 15658736; // bright bone
CowHide[4]:= 13355986; // bright hide
CowHide[5]:= 12698313; // bright hide
CowHide[6]:= 5139082; // light bown cow
CowHide[7]:= 12172995; // White Spot on cow
CowHide[8]:= 1849666; // Darkest Cow
end;
//----------------------------------------------------------------------------//
// -- based off PPLSUQBAWLZ's InventoryCount -- //
// -- but returns number of inventitems processed -- //
//----------------------------------------------------------------------------//
Function CowsClickAllItemsBmpTolWait(optionx: string; bmp, tol, waitnum: Integer):integer;
var
i, e, x, y, ObjectCount: Integer;
begin
GameTab(4);
while (i < 6) do
begin
if (i = 5) and (e < 8) then
begin
i := 0;
e := e + 1;
end;
if (FindBitmapSpiralTolerance(bmp, x, y, (570 + 39 * i), (214 + 35 * e), (609
+ 39 * i), (249 + 35 * e), tol)) then
begin
MMouse(x, y, 0, 0)
if (not (optionx = '')) then
begin
MouseItem(e * 4 + i + 1, False);
ChooseOption(optionx);
ObjectCount := ObjectCount + 1;
FindTalk;
end
else
MouseItem(e * 4 + i + 1, True);
Wait(waitnum);
end;
if (i = 4) and (e = 7) then
begin
Result:=ObjectCount;
break;
end;
i := i + 1;
end;
end;
{*******************************************************************************
function ChooseOption(txt: String): Boolean;
By: Stupid3ooo, modded by Sumilion
Description: Finds Popup menu, then clicks on it.
*******************************************************************************}
function CowsChooseOption(txt: string): Boolean;
var
x, y, x1, y1, x2, y2, LeftCorner, RightCorner: Integer;
begin
LeftCorner := BitmapFromString(4, 4, 'z78DA33753135313137C5' +
'411A600064715CEA914500CACE13F0');
RightCorner := BitmapFromString(4, 4, 'z78DA33753135313137' +
'C5200D30002E35F8C501C9C013F0');
if (FindBitmap(LeftCorner, x1, y1)) and (FindBitmap(RightCorner, x2, y2)) then
begin
if (FindText(x, y, txt, upchars, x1, y1, x2, 502)) then
begin
Result := True;
// RunControl(True);
MouseBox(x1 + 5, y + 4, x2, y + 10, True);
end
else if (FindText(x, y, 'Cancel', upchars, x1, y1, x2, 502)) then
MouseBox(x1 + 5, y + 4, x2, y + 10, True);
end;
FreeBitmap(LeftCorner);
FreeBitmap(RightCorner);
end;
//----------------------------------------------------------------------------//
Function ClickDTMRotated(TheDTM:Integer):Boolean;
var WhichAngle: Extended;
var FBx, FBy: Integer;
begin
if FindDtmRotated(TheDTM, FBx, FBy, MMX1, MMY1, MMX2, MMY2,
-pi/4, pi/4, 0.05,
WhichAngle) then
begin
Mouse(FBx, FBy, 0, 0, True);
FFlag(0);
FTWait(4);
Result := True;
end;
end;
//----------------------------------------------------------------------------//
Procedure SetUp;
var I:Integer;
begin
SetupSRL;
Fillmem;
DeclareCraftingBitmaps;
if MySRLID <> '' then
begin
SRLID := MySRLID;
SRLPassword := MySRLPassword;
end;
RCMaster :=RemoteMaster;
RCLoc :='Falador';
for I := 0 to 19 do
ReportVars[I] := 0;
ScriptID := '77';
MouseSpeed := 20;
DeclarePlayers;
LampSkill := 'mining';
SetupSRLAutoResponder;
LoginPlayer;
SetScreenName(Players[CurrentPlayer].Nick);
MarkTime(SST1);
MarkTime(SST2);
ClearDebug;
ClearReport;
end;
//----------------------------------------------------------------------------//
// -- Color Finding routine -- //
//----------------------------------------------------------------------------//
function FindCowWaterColor: Integer;
var
c, TX, TY, FaladorWater: Integer;
begin
FaladorWater := BitmapFromString(6, 6, 'z78DA33733677B' +
'174351B7624000B723409');
while (c < 65) do
begin
c := c + 5;
if FindBitmapToleranceIn(FaladorWater, TX, TY, MMCX - 75, MMCY + 20, MMCX -
20, MMCY + 30, c) then
begin
WaterColor := GetColor(TX, TY);
Result := WaterColor;
break;
end
end
FreeBitmap(FaladorWater);
if Result = 0 then WriteLn('ERROR: Watercolor NOT Found');
end;
//----------------------------------------------------------------------------//
function FindTreeColor: Integer;
var
c, TX, TY, Tree: Integer;
begin
if TreeColor = 0 then
begin
Tree := BitmapFromString(4, 2, '111D00422C00422C005B721C111' +
'D00422C00422C005B721C');
while (c < 65) do
begin
c := c + 5;
if FindBitmapToleranceIn(Tree, TX, TY, 595,55,610,75, c) then
begin
// TreeColor := GetColor(TX, TY);
Result := TreeColor;
Writeln('TreeColor:= '+ IntToStr(TreeColor)+';');
break;
end
end
FreeBitmap(Tree);
if Result = 0 then WriteLn('ERROR: Watercolor NOT Found');
end;
end;
//----------------------------------------------------------------------------//
// -- Random Handling and Script Flow -- //
//----------------------------------------------------------------------------//
Function FindFastRandoms: Boolean;
var
i: Integer;
begin
for i:=0 to 8 do
begin
case I of
0: if SolveChatRandom then
Result := True;
1: If FindDead then
Result := True;
2: If FindMod then
Result := True;
3: If FindMime then
Result := True;
4: If FindMaze then
Result := True;
5: If FindQuiz then
Result := True;
6: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
end;
//----------------------------------------------------------------------------//
//--- Finds and handles randoms. ---//
//----------------------------------------------------------------------------//
procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms;
end;
//----------------------------------------------------------------------------//
// -- Performs Wait and FindTalk. + calls FindNormalRandoms every 10 secs -- //
// -- and FindFastRandoms every 3 secs. -- //
//----------------------------------------------------------------------------//
Procedure FTWaitAll(Time:Integer);
var t: integer;
begin
For T:=1 to Time do
begin
Wait(200+Random(50));
if FawkiDebug then Status('FindTalk.');
FindTalk;
RC;
end;
Respond;
FindFastRandoms;
MarkTime(FindFastRandomsTime);
if FindFastRandomsTime-SST2 >(1500+Random(1500)) then
begin
if FawkiDebug then Status('FindFastRandoms.');
FindFastRandoms;
FindTalk;
RC;
Respond;
MarkTime(SST2);
if FawkiDebug then Status('FindFastRandoms took:'+IntToStr(SST2-FindFastRandomsTime)+' msec');
end;
MarkTime(FindNorMalRandomsTime);
if FindNorMalRandomsTime-SST1 >(10000+Random(5000)) then
begin
if FawkiDebug then begin Status('FindNorMalRandoms.'); end;
FindNorMalRandoms;
FindTalk;
RC;
Respond;
MarkTime(SST1);
end;
end;
//----------------------------------------------------------------------------//
// -- Handles ClickToContinue but without NPCChars, so little bandwidth
//----------------------------------------------------------------------------//
Function ClickToContinueFast: Boolean;
var x,y,CTCTime:integer;
Begin
MarkTime(CTCTime);
while (FindColor(x,y,16711680,220,437,220,437)
and FindColor(x,y,16711680,332,436,332,436)) do
begin
Mouse (250,440,100,2,True);
Result:=True;
FTWaitAll(1);
IdleTime(250,1,0.5);
if (TimeFromMark(CTCTime) >6000) then Exit;
end;
end;
//----------------------------------------------------------------------------//
// -- Performs FlagWait and FindTalk....
//----------------------------------------------------------------------------//
function FlagFTWait:Boolean;
var FlagMark: Integer;
begin
MarkTime(FlagMark);
if not FlagPresent then
begin
Result:=False;
Exit;
end
else
begin
repeat
FTWaitAll(1);
if not(Loggedin) then break;
until ( (not FlagPresent) or (TimeFromMark(FlagMark) > 9000) ); // waits until flag is gone or 9 seconds.
Result:=True;
end;
end;
//----------------------------------------------------------------------------//
//--- Sets Fightmode as defined by Players.skill. ---//
//----------------------------------------------------------------------------//
Procedure SetLowest;
var Ci, HL1, HL2, HL:Integer;
Begin
if ( not ( LoggedIn )) then Exit;
GetAllLevels;
HL := 100;
for Ci := 1 to 2 do
begin
HL1 := Players[CurrentPlayer].level[Ci];
HL2 := Players[CurrentPlayer].level[Ci+1];
if HL2 > HL1 then
begin
if HL > HL1 then HL := HL1;
end
else
begin
if HL > HL2 then HL := HL2;
end;
end;
for CI := 1 to 3 do
begin
if Players[CurrentPlayer].level[Ci] = HL then
begin
if CI = 3 then CI := CI + 1;
SetFightMode(CI);
Case CI of
1 : LampSkill := 'attack';
2 : LampSkill := 'strength';
4 : LampSkill := 'defence';
end;
Exit;
end;
End;
End;
//----------------------------------------------------------------------------//
//-- Checks and sets Auto Retaliate. True = On, False = Off --//
//----------------------------------------------------------------------------//
procedure Retaliate(AutoRet:Boolean);
var
x, y:Integer;
begin
GameTab(1);
if AutoRet then
begin
If not FindColor(x, y, 1777020, 624, 385, 719, 396) then
begin
Mouse(666, 381, 8, 8, True);
end;
end;
if not AutoRet then
begin
If FindColor(x, y, 1777020, 624, 385, 719, 396) then
begin
Mouse(666, 381, 8, 8, True);
end;
end;
end;
//----------------------------------------------------------------------------//
procedure SetPlayerParams;
begin
if ( not ( LoggedIn )) then Exit;
GameTab(1);
if Players[CurrentPlayer].Skill = 'attack' then SetFightMode(1);
if Players[CurrentPlayer].Skill = 'strength'then SetFightMode(2);
if Players[CurrentPlayer].Skill = 'defence' then SetFightMode(4);
if Players[CurrentPlayer].Skill = 'auto' then SetLowest;
if Players[CurrentPlayer].Booleans[0] = False then
begin
Retaliate(True); // Set Retaliate off only the first time. :)
Players[CurrentPlayer].Booleans[0]:=True;
end;
SetChat('On', 1);
SetChat('Friends', 2);
SetChat('Off', 3);
SetChat('On', 1);
FindTalk;
end;
//----------------------------------------------------------------------------//
//--- Some Tilt functions. ---//
//----------------------------------------------------------------------------//
Procedure Down;
begin
SendArrowSilentWait(2, 1000 + Random(500));
end;
//----------------------------------------------------------------------------//
Procedure Up;
begin
SendArrowSilentWait(0, 1000 + Random(500));
end;
//----------------------------------------------------------------------------//
Procedure UpTime(Time:Integer);
begin
SendArrowSilentWait(0, Time + Random((2*Time)/10));
end;
//----------------------------------------------------------------------------//
//--- Returns True if RawBeef is in inventory ---//
//----------------------------------------------------------------------------//
Function WeHaveRawMeat(var WhereX,WhereY:integer):boolean;
var Tx,Ty:integer;
begin
GameTab(4);
if FindBitmapToleranceIn(RawBeef,Tx,Ty,MIX1,MIY1,MIX2,MIY2,50) then
Begin
WhereX:=Tx;
WhereY:=Ty;
Result:=True;
end;
end;
//----------------------------------------------------------------------------//
// -- Yet another custom Flag -- //
//----------------------------------------------------------------------------//
procedure FFFlag;
var
XK, YK, XL, YL: Integer;
var
T1, T2: Extended;
begin
If Not LoggedIn Then Exit;
T1 := GetTickCount;
repeat
T2 := GetTickCount;
Wait(100);
if T2 - T1 > 10000 then
begin
if FindColor(XL, YL, 255, MMX1, MMY1, MMX2, MMY2) then
MouseFindFlag(XL, YL, 1, 1)
else Mouse(MMCX - 3, MMCY - 3, 6, 6, True);
break;
end;
if Random(20) = 1 then IdleTime(500, 1000, 0.01); // move mouse for a bit.
until (not FindColor(XK, YK, 255, MMX1, MMY1, MMX2, MMY2));
Respond;
end;
//----------------------------------------------------------------------------//
// -- Color Clicker by Wizzup? -- //
//----------------------------------------------------------------------------//
Function ClickColorSpiral(CenterX, CenterY, Color, Xoff, Yoff, Pause:Integer):Boolean;
begin
if FindColorSpiral(CenterX, CenterY, Color, MMX1, MMY1, MMX2, MMY2) Then
begin
MouseFindFlag(CenterX + Xoff, CenterY + Yoff, 1, -1);
Wait(Pause);
FFFlag;
FindNormalRandoms;
Result:=True;
end;
end;
//----------------------------------------------------------------------------//
// -- if below 75% run away -- //
//----------------------------------------------------------------------------//
procedure CheckHealth;
begin
if FindNormalRandoms then Exit;
if HPPercent < 75 then
begin
HandleGate('ToBank');
Players[CurrentPlayer].loc:='HealthDrop';
WalkToFalador('Emergency');
// EatFood;
// Players[CurrentPlayer].loc:='Falador'; // now that would be nice :)
// NextPlayer(True);
LogOut;
Exit;
end;
end;
//----------------------------------------------------------------------------//
procedure Callibrate;
var Gx, Gy:integer;
begin
MakeCompass('N');
if FindSymbol(Gx, Gy, 'farming spot') then
begin
Status('Farming Spot Found');
MouseFindFlag(612, 90, -1, -1);
FFFlag;
Exit;
end;
if FindSymbol(Gx, Gy, 'churn') then
begin
Status('Farming Shop Found');
MouseFindFlag(675, 75, -1, 1);
FFFlag;
Exit;
end;
if FindSymbol(Gx, Gy, 'water') then
begin
Status('WaterSymbol Found');
MouseFindFlag(675, 75, -1, 1);
FFFlag;
Exit;
end;
if FindBitMapToleranceIn(MMGate, Gx, Gy, MMCX, MMY1, MMX2, MMCY - 10, 20) then
begin
Mouse(Gx,Gy + 25, 10, 10, True);
if FawkiDebug then Status('Callibrated Centre');
end
end;
{*******************************************************************************
function FindObjSmall(var cx, cy: Integer; Text: String; color, tolerance: Integer): Boolean;
By: Stupid3ooo modded by WT-Fakawi.
Description: Finds Object within smaller range centre out.
Used for finding Large Object by Color and UpText
*******************************************************************************}
function FindObjSmall(var cx, cy: Integer; Text: string; color, tolerance: Integer):
Boolean;
var
x, y, a, c, i, x1, y1, x2, y2: Integer;
begin
if ( FindColorTolerance(x, y, color, MSX1, MSY1, MSX2, MSY2, tolerance)) then
begin
x1 := 245;
y1 := 165;
x2 := 277;
y2 := 185;
repeat
if (not (LoggedIn)) then
break;
a := a + 1;
if (a = 1) then
c := c + 1;
if (a = 3) then
c := c + 1;
for i := 1 to c do
begin
if (a = 1) then
begin
x1 := x1 + 20;
x2 := x2 + 20;
end;
if (a = 2) then
begin
y1 := y1 - 10;
y2 := y2 - 10;
end;
if (a = 3) then
begin
x1 := x1 - 20;
x2 := x2 - 20;
end;
if (a = 4) then
begin
y1 := y1 + 10;
y2 := y2 + 10;
end;
if (x1 = 485) and (x2 = 517) then
x2 := x2 - 2;
if (y1 = 325) and (y2 = 345) then
y2 := y2 - 7;
if (x2 > 400) then
Break;
if (FindColorTolerance(x, y, color, x1, y1, x2, y2, tolerance)) then
begin
MMouse(x, y, 0, 0)
cx := x;
cy := y;
if (IsUpText(Text)) then
begin
Result := True;
Break;
end;
end;
end;
if (a = 4) then
a := 0;
until (x2 > 400) or (Result = True);
end;
end;
//----------------------------------------------------------------------------//
//-- Checks for Status of the Gate using FindObjSmall --//
//----------------------------------------------------------------------------//
Procedure CheckMSGate(ObjText:string; Color:integer);
var GX, GY: Integer;
begin
if FindObjSmall(GX, GY, ObjText, Color, 50) then
begin
if IsUpText('los') then
exit;
if IsUpText('pen') then
begin
Wait(100 + Random(10));
Mouse(GX, GY, 0, 0, True);
FlagFTWait;
end;
end
end;
//----------------------------------------------------------------------------//
//-- Quickly scans over the Fence in an attempt to find the Gate Status --//
//-- Stores Results in Array. If enough pixels are found, the gate is open --//
//----------------------------------------------------------------------------//
Function SimpleGate:boolean;
var Gx, Gy, Dx, Dy,tol,sum:integer;
var res: array[0..80] of integer;
begin
repeat
tol := tol + 1;
if FindColorSpiralTolerance(Gx, Gy, 5006192, tol*4+50, MSY1+50, tol*4+120, MSY2-20,4) then // Fence Color
begin
MoveMouse(Gx,Gy);
res[tol]:=1;
Wait(10);
if FawkiDebug then Status(inttostr(tol)+' '+ inttostr(Gx)+' '+inttostr(Gy));
if FindColorTolerance(Dx, Dy, 13027844, 42, 8, 120, 21, 50) then // Blue Color indicating Uptext!
begin
if IsUpTextMulti('lo','los','ose') then // Check the Text
begin
Result := True;
exit;
end;
if IsUpTextMulti('Op','pe','pen') then
begin
if FawkiDebug then Status('SimpleGate found');
Wait(50);
GetMousePos(Gx,Gy);
if IsUpTextMulti('Op','pe','pen') then
begin
Mouse(Gx, Gy, 0, 0, True);
Result := True;
Exit;
end;
end;
end;
end;
until(tol = 80);
for tol:=1 to 80 do
begin
if res[tol]=1 then sum:=sum+1;
end
if sum > 65 then Result:=True;
end;
//----------------------------------------------------------------------------//
//--- Finds Bitmap inside box (x1,x2,y1,y2) on MiniMap. ---//
//--- Clicks on it with offset (Xoff,Yoff) ---//
//--- Performs Tilt Down, followed by a small TiltUp, to get the white ---//
//--- Wall away from MainScreen. ---//
//--- WHITE WALLS OF FALADOR HEAVILY INTERFERE WITH ISUPTEXT. ---//
//----------------------------------------------------------------------------//
Function ClickMMBitMapOffset(GateBitMap, GateColor, Xoff, Yoff, x1, y1, x2, y2:integer):Boolean;
var Gx, Gy:Integer;
begin
if FindBitMapToleranceIn(GateBitMap, Gx, Gy, x1, y1, x2, y2, 20) then
begin
if FawkiDebug then Status('bitmap found');
MouseFindFlag(Gx + Xoff ,(Gy + Yoff) - 2, 0,-1);
Flag;
Down;
FTWaitAll(4);
UpTime(150);
Result := True;
end;
end;
//----------------------------------------------------------------------------//
//-- Checks for the existence of one of Three possible Minimap Gate Bitmaps --//
//----------------------------------------------------------------------------//
Function ToGate(BM1, BM2, BM3, Xoff, Yoff, x1, y1, x2, y2, Tolerance:Integer):Boolean;
var Gx, Gy, i, j, Gate, Tol:integer;
begin
Tol:=10;
for j :=1 to 50 do
begin
for I := 1 to 3 do
begin
case I of
1: Gate := BM3;
2: Gate := BM2;
3: Gate := BM1;
end;
repeat
Wait(1);
if not LoggedIn then Exit;
if FindBitMapToleranceIn(Gate, Gx, Gy, x1, y1, x2, y2, tol) then
begin
If FawkiDebug then Status('Found Gate'+IntToStr(I));
MouseFindFlag(Gx + Xoff ,(Gy + Yoff) - 2, 0,-1);
FFFlag;
Result:=True;
Exit;
end;
Status('Tol = '+IntToStr(Tol));
Tol:=Tol + 4;
until Tol > 80;
Tol:=10;
end;
if j mod 20 = 0 then
begin
SendArrowSilentWait( ((Random(2) * 2) + 1), 5 + Random(5) );
Wait(10);
end;
end;
end;
//----------------------------------------------------------------------------//
//-- Handles the Gate in two directions --//
//----------------------------------------------------------------------------//
procedure HandleGate(ToFrom:String);
begin
Down;
UpTime(150);
// RunControl(True);
SetRun(True);
if ToFrom = 'ToBank' then
begin
if not ToGate(Gate9, Gate6, Gate3, 2, 8, MMX1 + 40, MMY1, MMX2, MMCY + 5, 50) then
begin
Status('Lost in finding ToBank ToGate');
Logout;
Exit;
end;
if not SimpleGate then CheckMSGate('Gate', GateColor);
FlagFTWait;
MouseFindFlag(590, 52, 1, 0);
// RunControl(False);
FFFlag;
Up;
end;
if ToFrom = 'ToCows' then
begin
// RunControl(True);
if not ToGate(Gate9, Gate6, Gate3, 2, -3, MMCX - 5, MMY1, MMX2, MMY2, 50) then
begin
Status('Lost in finding ToCows ToGate');
Logout;
Exit;
end;
if not SimpleGate then CheckMSGate('Gate',GateColor);
FFFlag;
MouseFindFlag(650, 120, 0, 1); // one 'blind' click.
// RunControl(False);
FFFlag;
Players[CurrentPlayer].Loc := 'Cowfield';
end
Up;
end;
//----------------------------------------------------------------------------//
//-- Checks for Green or Red above our head --//
//----------------------------------------------------------------------------//
function WaitFight(Time:Integer): Boolean;
var
x, y:Integer;
begin
FlagFTWait;
MarkTime(Mark);
While (FindColor(x, y, 65280, 230, 130, 280, 180) or FindColor(x, y, 255,
230, 130, 280, 180)) do
Begin
FTWaitAll(1);
If TimeFromMark(Mark) mod 1000 < 250 then Pickup;
If TimeFromMark(Mark)> (Time * 1000) then
begin
Break;
Result:=True;
end;
end;
end;
{*****************************************************************************
function InFight: Boolean;
By: WT-Fakawi
Description: Returns True if YOU are in fight.
*****************************************************************************}
function InFight: Boolean;
var
x, y:Integer;
begin
Result := (FindColor(x, y, 65280, 230, 130, 280, 180) or FindColor(x, y, 255,
230, 130, 280, 180))
end;
//----------------------------------------------------------------------------//
//-- Checks for Green or Red above MousePosition. --//
//----------------------------------------------------------------------------//
Function InFightAt(x, y: Integer):Boolean;
var
dx, dy, Scale: Integer;
begin
Scale := 30; // Cows are huge
Result:= FindColor(dx, dy, 65280, x - 2 * Scale, y - 1 * Scale, x + 2 * Scale, y + 1 * Scale) or
FindColor(dx, dy, 225, x - 2 * Scale, y - 1 * Scale, x + 2 * Scale, y + 1 * Scale);
end;
{*******************************************************************************
function ChooseOption3: Boolean;
By: Stupid3ooo modded by WT-Fakawi
Description: Finds Popup menu, then clicks on Hides, Bones, Meat in that order.
*******************************************************************************}
Function ChooseOption3:Boolean;
var
x1, y1, x2, y2, LeftCorner, RightCorner, Fx, Fy, BitMap, I: Integer;
begin
LeftCorner := BitmapFromString(4, 4, 'z78DA33753135313137C5' +
'411A600064715CEA914500CACE13F0');
RightCorner := BitmapFromString(4, 4, 'z78DA33753135313137' +
'C5200D30002E35F8C501C9C013F0');
if (FindBitmap(LeftCorner, x1, y1)) and (FindBitmap(RightCorner, x2, y2)) then
begin
for I := 1 to 3 do // ALWAYS COWHIDE FIRST!!! :)
begin
if CollectMeat then
begin
case I of
1: BitMap := CowHideText; // Sliced Bitmaps of MenuItemText
2: BitMap := RawBeefText; // Works like a charm
3: BitMap := BonesText;
end;
end
else
begin
case I of
1: BitMap := CowHideText; // Sliced Bitmaps of MenuItemText
2: BitMap := BonesText; // Works like a charm
3: BitMap := RawBeefText;
end;
end
If FindBitMap(BitMap, Fx, Fy) then
begin
Mouse(Fx, Fy, 20, 4, True);
Result := True;
FlagFTWait;
Exit;
end;
end;
if (FindText(Fx, Fy, 'Cancel', upchars, x1, y1, x2, 502)) then
Mouse(Fx + 9, Fy + 3, 2, 2, True);
end;
FreeBitmap(LeftCorner);
FreeBitmap(RightCorner);
end;
//----------------------------------------------------------------------------//
//--- Attacks a Cow once using FindColoredAreaTolerance. ---//
//--- Wont attack if there is green or red within 50 pixels range. ---//
//----------------------------------------------------------------------------//
Function AttackOnce(Color,tol,Area:integer):Boolean;
var Afx, Afy: integer;
begin
If FawkiDebug then Writeln('AttackOnce');
if InFight then Exit;
if FindColoredAreaTolerance(Afx, Afy, Color, MSX1, MSY1 + 40, MSX2, MSY2, Area, tol) then //3*3 brown color
begin
if FawkiDebug then Status('Found Cow');
MMouse(Afx, Afy, 0, 0);
GetMousePos(Afx, Afy);
Wait(100);
if IsUpText('A') then
if not InFightAt(Afx, Afy) then
begin
if FawkiDebug then Status('Attack Once');
Mouse(Afx, Afy, 0, 0, False);
if CowsChooseOption('tt') then
begin
FlagFTWait;
FTWait(16);
WaitFight(FightingTime);
Cows := Cows + 1;
Result := True;
Exit;
end else Result:= False;
end else Result:= False;
if IsUpText('ke') then
begin
Mouse(Afx, Afy, 0, 0, False);
if FawkiDebug then Status('Pick up AttackOnce');
ChooseOption3;
FlagFTWait;
end else Result:= False;
end;
end;
//----------------------------------------------------------------------------//
//-- An attempt for quick click-attack --//
//----------------------------------------------------------------------------//
Function AttackFast(tol,Area:integer):Boolean;
var Dmx, Dmy, Ax, Ay, xa: integer;
begin
If FawkiDebug then Writeln('AttackFast');
if InFight then Exit;
for xa:=1 to 8 do
begin
if FindColoredAreaTolerance(Ax, Ay, CowHide[xa], MSX1, MSY1 + 40, MSX2, MSY2, Area, tol) then
begin
MMouse(Ax, Ay, 0, 0);
GetMousePos(Ax, Ay);
Wait(100);
if FawkiDebug then Writeln('Color='+ IntToStr(GetColor(Ax, Ay)));
if FindColorTolerance(Dmx, Dmy, 318168, 42, 8, 120, 21, 50) then // Yellow
begin
if FawkiDebug then Status('Found Yellow UpText');
if IsUpText('A') then
if not InFightAt(Ax, Ay) then
begin
if FawkiDebug then Status('Attack Once');
Mouse(Ax, Ay, 0, 0, False);
if CowsChooseOption('tt') then
begin
FlagFTWait;
FTWait(16);
if InChatMulti('ome','one','els') then Exit;
WaitFight(FightingTime);
Cows := Cows + 1;
Result := True;
Exit;
end else
begin
Result := False
Exit;
end;
end
end else
if FindColorTolerance(Dmx, Dmy, 3770342, 42, 8, 120, 21, 50) then // Orange
begin
if IsUpText('ke') then
begin
Mouse(Ax, Ay, 0, 0, False);
if FawkiDebug then Status('Pick up AttackOnce');
ChooseOption3;
FlagFTWait;
end;
end;
end;
end;
end;
//----------------------------------------------------------------------------//
//--- Attacks a Cow once using Find Sliced Bitmaps. ---//
//----------------------------------------------------------------------------//
Function FindCow:Boolean;
var Dx, Dy, i, TheCow:integer;
begin
If FawkiDebug then Writeln('FindCow');
if InFight then Exit;
for I := 1 to 4 do
begin
case I of
1: TheCow := Cow1;
2: TheCow := Cow2;
3: TheCow := Cow3;
4: TheCow := Cow4;
end;
if InvFull then Exit;
if FindBitmapToleranceIn(TheCow, Dx, Dy, MSX1, MSY1+40, MSX2, MSY2, 20) then
begin
if FawkiDebug then Status('Found Cow');
MMouse(Dx, Dy, 0, 0);
GetMousePos(Dx, Dy);
Wait(100);
if IsUpText('A') then
if not InFightAt(Dx, Dy) then
begin
if FawkiDebug then Status('Click Cow');
Mouse(Dx, Dy, 0, 0, False);
if CowsChooseOption('tt') then
begin
FlagFTWait;
FTWait(16);
if InChatMulti('ome','one','els') then
begin
Result := False;
Exit;
end;
WaitFight(FightingTime);
Cows := Cows + 1;
Result := True;
Exit;
end else
begin
Result := False
Exit;
end;
end
if IsUpText('ke') then
begin
Mouse(Dx, Dy, 0, 0, False);
if FawkiDebug then Status('Pick up FindCow');
ChooseOption3;
FlagFTWait;
end;
end;
FTWaitAll(1);
Result := True;
end;
end;
//----------------------------------------------------------------------------//
Function PickUpMeat: Boolean;
var RX,RY:integer;
begin
if (not Loggedin) then Exit;
if FindColorSpiralTolerance(RX,RY,1122975,MSX1+40,MSY1+40,MSX2-40,MSY2-40,10) then
begin
MMouse(Rx,Ry,0,0);
GetMousePos(Rx, Ry);
FTWaitAll(1);
if IsUpText('ake') then
begin
Mouse(Rx,Ry,0,0,True);
if InChatMulti('spac','pace','ful') then begin Status('FULL DETECTED'); Exit; end;
if FawkiDebug then Status('Pick up Meat');
FTWaitAll(1);
Result:=True;
end;
end;
FTWaitAll(1);
FlagFTWait;
end;
//----------------------------------------------------------------------------//
Function PickUpHide: Boolean;
var RX,RY, Dmx, Dmy:integer;
begin
If FawkiDebug then Writeln('PickUpHide');
if (not Loggedin) then Exit;
if FindColoredAreaTolerance(Rx, Ry, 12895692, MSX1, MSY1 + 40, MSX2, MSY2, 9, 10) then //3*3 brown color
begin
MMouse(Rx,Ry,0,0);
GetMousePos(Rx, Ry);
Wait(100);
if FindColorTolerance(Dmx, Dmy, 318168, 42, 8, 120, 21, 50) then // Yellow
begin
if FawkiDebug then Status('Found Yellow UpText');
if IsUpText('A') then
if not InFightAt(Rx, Ry) then
begin
if FawkiDebug then Status('Attack Once');
Mouse(Rx, Ry, 0, 0, True);
FlagFTWait;
FTWait(16);
if InChatMulti('ome','one','els') then Exit;
WaitFight(FightingTime);
Cows := Cows + 1;
Result := True;
Exit;
end
end else
if IsUpTextMulti('owh','one','ak') then
begin
Mouse(Rx,Ry,0,0,False);
ChooseOption3;
if InChatMulti('spac','pace','ful') then begin Status('FULL DETECTED'); Exit; end;
if FawkiDebug then Status('Pick up Hide');
FTWaitAll(1);
Result:=True;
end;
end;
FTWaitAll(1);
FlagFTWait;
end;
//----------------------------------------------------------------------------//
//- Performs FindDeformedBitmapToleranceIn 4 times, with cowhide edgepoints -//
//----------------------------------------------------------------------------//
Function FindBoneHideDeformed:Boolean;
var Dx, Dy, i, BoneHide:integer;
var acc:Extended;
begin
If FawkiDebug then Writeln('FindBoneHideDeformed');
for I := 1 to 4 do
begin
case I of
1: BoneHide := BoneHide1;
2: BoneHide := BoneHide2;
3: BoneHide := BoneHide3;
4: BoneHide := BoneHide4;
end;
if InvFull then Exit;
FindDeformedBitmapToleranceIn(BoneHide, Dx, Dy, MSX1, MSY1+40, MSX2, MSY2, 5, 1, True, acc);
if FawkiDebug then Status('acc = ' + FloatToStr(acc));
begin
if (acc >= 0.4) then
begin
if FawkiDebug then Status('Found Deformed');
MMouse(Dx, Dy, 0, 0);
GetMousePos(Dx, Dy);
if IsUpText('A') then
begin
if not InFightAt(Dx, Dy) then
begin
if FawkiDebug then Status('Click Cow');
Mouse(Dx, Dy, 0, 0, True);
FTWaitAll(16);
WaitFight(FightingTime);
Cows := Cows + 1;
Result := True;
Exit;
end
end;
if IsUpText('ke') then
begin
Mouse(Dx, Dy, 0, 0, False);
if FawkiDebug then Status('Pick up Deformed');
ChooseOption3;
FlagFTWait;
end;
end;
end;
FTWaitAll(1);
Result := True;
Break;
end;
end;
//----------------------------------------------------------------------------//
//--- Picks up objects using above methods. ---//
//--- Avoids the mouse from going wild over FindObj. ---//
//----------------------------------------------------------------------------//
Function PickUp: Boolean;
begin
if InvFull then
begin
CleanUpInventory;
if InvFull then Exit;
end;
if CollectMeat then if PickUpMeat then Result := True;
if FindBoneHideDeformed then Result := True;
if PickUpHide then Result := True;
end;
//----------------------------------------------------------------------------//
//--- Like ClickNpcChatText, only this one RightClicks. (For Cooking) ---//
//----------------------------------------------------------------------------//
function ClickNpcChatTextRight(txt : String) : Boolean;
var
tx, ty, s:integer;
begin
s := CreateBitmapMaskFromText(txt, npcchars);
if FindBitmapMaskTolerance(s, tx, ty, 9, 348, 523, 471, 50, 10) then
begin
Mouse(tx, ty, 0, 0, False);
Result := True;
end;
FreeBitmap(s);
end;
//----------------------------------------------------------------------------//
//--- Nifty Little Stupid3ooo Procs. Cleans up inventory. ---//
//----------------------------------------------------------------------------//
Procedure CleanUpInventory;
begin
BoneCount := BoneCount + CowsClickAllItemsBmpTolWait('ury', Bone, 50, 1000); // bury bones
// FTWait(8);
// CheckHealth;
end;
//----------------------------------------------------------------------------//
//--- Cooking ---//
//----------------------------------------------------------------------------//
Function ClickFirePlace:Boolean;
var c, Fx, Fy, Mirror:Integer;
begin
Mirror := BitmapFromString(8, 3, 'z78DA73767276753174A6196' +
'9616AEA686C403C090015E62251');
Fx := 90;
Fy := 150;
while (c < 65) do
begin
c := c + 5;
if FindBitmapToleranceIn(Mirror, Fx, Fy, 40, 24, 310, 210, c) then
begin
MMouse(Fx, Fy, 10, 10);
If IsUpText('F') then
begin
GetMousePos(Fx, Fy);
Mouse(Fx, Fy, 0, 0, True);
Result := True;
FreeBitmap(Mirror);
Exit;
end else Result:= False;
end;
end;
FreeBitmap(Mirror);
end;
//----------------------------------------------------------------------------//
procedure CookAll;
var
x, y, Mx, My, c:integer;
begin
If WeHaveRawMeat(Mx,My) then
begin
repeat
MMouse(Mx, My, 4, 4);
if IsUpText('aw') then
begin
GetMousePos(Mx, My);
Mouse(Mx, My, 0, 0, True);
Wait(1000);
end
Wait(1000);
c := c + 1; if c > 5 then break;
until findcolor(x, y, 16777215, MIX1, MIY1, MIX2, MIY2) // try to select 5 times
end
else Exit;
Wait(1000);
ClickFirePlace;
MarkTime(Mark);
repeat
Wait(3000);
if(TimeFromMark(Mark)>10000) then begin Exit; end;
Until ClickNpcChatTextRight('aw');
ChooseOption('All');
MarkTime(Mark);
repeat
FTWaitAll(8);
if TimeFromMark(Mark) > 35000 then Exit;
if ClickToContinueFast then CookAll;
until not WeHaveRawMeat(Mx,My);
end;
//----------------------------------------------------------------------------//
Function OpenFirePlaceDoor:Boolean;
var Dx, Dy:Integer;
begin
if FindObjSmall(Dx, Dy, 'pe', 6653078, 20) then
begin
GetMousePos(Dx,Dy);
Mouse(Dx,Dy,0,0,True);
FFFlag;
MouseFindFlag(170, 230, 0,10);
FFFlag;
Result:=True;
end
end;
//----------------------------------------------------------------------------//
procedure CookingCycle;
begin
Callibrate;
FFFlag;
MouseFindFlag(MMCx, MMCy, 0,10);
FFFlag;
FTWait(4);
if not ToGate(FPD1, FPD2, FPD3, 0 , 0, 625, 90, MMX2, MMY2, 2) then
begin
writeln('CLICKSPIRAL');
if not ClickColorSpiral(655, 133, TreeColor, 0, 10, 3000) then Exit;
end
FTWait(8);
OpenFirePlaceDoor;
CookAll;
if not ToGate(FPD1, FPD2, FPD3, 0 , 6, 641, 73, 667, 93, 5) then
begin
writeln('CLICKSPIRAL');
if not ClickColorSpiral(655, 133, TreeColor, 0, 10, 3000) then Exit;
end
OpenFirePlaceDoor;
MouseFindFlag(605, 42, 10,10); // Blind Click!
FFFlag;
Callibrate;
ReportVars[5] := CowsClickAllItemsBmpTolWait('rop', BurnedMeat, 5, 250);;
BurnedMeatCount:=BurnedMeatCount + ReportVars[5]; // drops burnt meat by color
end;
//----------------------------------------------------------------------------//
//--- Walking ---//
//----------------------------------------------------------------------------//
procedure WalkToFaladorSouthGate;
begin
ClickColorSpiral(628, 140, WaterColor, 10, 10, 9000)
ClickColorSpiral(660, 120, TreeColor, 0, 10, 100)
ClickColorSpiral(677, 107, TreeColor, 0, 15, 2000)
ClickColorSpiral(690, 76, TreeColor, 0, 15, 2000)
end;
//----------------------------------------------------------------------------//
Procedure WalkToCowField;
begin
If not LoggedIn then Exit;
MakeCompass('N');
Players[CurrentPlayer].Loc := 'FalToCow';
WalkToFaladorSouthGate;
FFFlag;
HandleGate('ToCows');
end;
//----------------------------------------------------------------------------//
Procedure WalkToFalador(How:string);
var Wx, Wy:Integer;
begin
if How ='Normal' then HandleGate('ToBank');
ClickColorSpiral(630, 68, TreeColor, 0, 15, 150);
ClickColorSpiral(627, 44, TreeColor, 0, 15, 2000);
if not FindColor(Wx, Wy, Watercolor, MMX1, MMY1, MMX2, MMY2) then
begin
MouseFindFlag(580, 71, 1, 1);
FlagFTWait;
if not FindColor(Wx, Wy, Watercolor, MMX1, MMY1, MMX2, MMY2) then
begin
Logout;
Exit;
end;
end;
ClickColorSpiral(MMCX, MMY1 + 20, WaterColor, 15, 5, 4000)
ClickColorSpiral(MMCX, MMY1 + 20, WaterColor, 15, 5, 4000)
MakeCompass('N');
MarkTime(Mark);
Repeat
if not LoggedIn then exit;
if(TimeFromMark(Mark)>60000) then begin Logout; Exit; end;
WaterWalk(410, 270, 45, 10, 0, 25, 1, 1);
Until ClickDTMRotated(FaladorEastBank)
// DTM3Flag(FB1, FB2, FB3, True);
End;
//----------------------------------------------------------------------------//
Procedure Bank;
begin
if not BankScreen then
begin
MarkTime(Mark);
repeat
if (not(Loggedin)) then break;
If not OpenBankQuiet('feb') then OpenBankFast('feb');
until(BankScreen or (TimeFromMark(Mark) > 120000));
end;
if(BankScreen)then
begin
Wait(1000 + Random(1000));
FixBank;
Meat := Meat + CountItemBmpTol(RawBeef, 50);
Hides := Hides + CountItemBmpTol(Hide, 50);
CookedMeatCount := CookedMeatCount + CountItemBmpTol(CookedMeat, 50);
Wait(1000 + Random(100));
ReportVars[0] := CountItemBmpTol(Hide, 50);
ReportVars[2] := CountItemBmpTol(RawBeef, 50);
ReportVars[4] := CountItemBmpTol(CookedMeat, 50);
Wait(1000 + Random(100));
Deposit(1,28,2);
Wait(2000 + Random(100));
CloseBank;
Banks := Banks + 1;
Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked+1;
Players[CurrentPlayer].Loc := 'Falador';
end;
end;
//----------------------------------------------------------------------------//
// Main EventLoop
//----------------------------------------------------------------------------//
begin
Setup;
if (Players[CurrentPlayer].Loc='Falador') then
begin
if TreeColor = 0 then FindTreeColor;
if WaterColor = 0 then FindCowWaterColor;
end;
repeat
FixChat;
SetPlayerParams;
if Players[CurrentPlayer].loc = 'Falador' then
begin
Gametab(4);
PerfectNorth;
WalkToCowField;
end;
if Players[CurrentPlayer].Loc='Cowfield' then
begin
MarkTime(MainMark);
MarkTime(Cal);
repeat
if not InFight then AttackFast(10, 9) else Pickup;
if not InFight then AttackOnce(CalfColor, 10, 10) else PickUp;
if not InFight then FindCow else PickUp;
PickUp;
if (not(Loggedin)) then Break;
FindRandoms;
if TimeFromMark(cal) > (25000 + Random(3000)) then
begin
MarkTime(Cal);
CheckHealth;
Callibrate;
end;
if (InvFull) then
begin
CleanUpInventory;
if InvFull then
Break;
end;
until(TimeFromMark(MainMark) > 1200000); // 20 mins max...
if CollectMeat and CookMeat then CookingCycle;
WalkToFalador('Normal');
Bank;
ProgressReport;
MakeCompass('N');
FindRandoms;
end;
if ((LoggedIn) and (Players[CurrentPlayer].Banked mod Loads = 0) ) then
begin
MarkTime(Mark);
repeat
Wait(250+Random(250));
If TimeFromMark(Mark) > 30000 then break;
until CloseBank;
NextPlayer(True);
FTWaitAll(10);
end
if (not(Loggedin)) then
begin
NextPlayer(False);
end;
until(False);
end.


Good call hermpie now hopefully they will stop bugging fakawi
sweet, works good


Im going for a big run of this script using RC but my vm sometimes messes up but still im running until rs updates providing my computer has no problems
YES!!! W00T! I love WT-Fakawi's scripts!Btw, I am going to test this out. I am going to give you any errors I have, and if I have time I will give you the progress report... I hope it works!
// - Magic Scripts
Current Work: P Miner
About me: I hate to work, so I chose to macro.
If I see you autoing with level 3/defaultclothes/crap name I WILL report you. Auto Correctly. - put this in your sig!
http://www.anotherfree.com/banners/3.gif
Click the image to get your 100% free domain name!
.com, .net, .org, .info, .biz, .us, .name, and much more!


*Looks at Progress Report* well i RC'ed some times and just before i went to sleep i set them all to true with it but still it only made 10 hours. i still think i got the biggest proggie for it
SCAR Code:<============== -0.43- Progress Report ===============>
Worked for 10 Hours, 44 Minutes and 15 Seconds
Banked 29 loads[s].
Attacked 342 cows.
Collected 595 hides.
Buried 265 bones.
Collected 199 meat.
Cooked 0 meat.
Dropped 0 burned meat.
0 : = T. AT 41. ST 24. DF 23. PR 14. HP 35. MG 35. CO 5. . - B :8 Times.W : 158 min. L: Cowfield
1 : = F. AT 44. ST 32. DF 31. PR 19. HP 39. MG 35. CO 2. . - B :9 Times.W : 169 min. L: No GameTab
2 : = F. AT 41. ST 23. DF 23. PR 14. HP 35. MG 35. CO 5. . - B :7 Times.W : 106 min. L: No GameTab
3 : = F. AT 44. ST 31. DF 29. PR 17. HP 38. MG 33. CO 6. . - B :1 Times.W : 48 min. L: No GameTab
4 : = F. AT 44. ST 31. DF 29. PR 17. HP 38. MG 33. CO 6. . - B :4 Times.W : 84 min. L: No GameTab
**********************************************
O YEH:
SCAR Code:/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
| SRL 4 Randoms Report |
| [url]www.srl-forums.com[/url] |
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| SRL Logs : 22 |
| Boxes Solved : 1 |
\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
thanks i got the anti leach stuff figured out and got it running treacky i didn't notice the file names being slightly off smooth fakawi ^_^
and thanks a ton this script ownz!!
one char played this
<============== -0.43- Progress Report ===============>
Worked for 1 Hours, 30 Minutes and 41 Seconds
Banked 5 loads[s].
Attacked 111 cows.
Collected 124 hides.
Buried 105 bones.
Collected 3 meat.
Cooked 0 meat.
Dropped 0 burned meat.
0 : **************= T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :5 Times.W : 0 min. L: Falador
1 : = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
2 : = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
3 : = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
4 : = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
5 : = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
6 : = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
7 : = T. AT 0. ST 0. DF 0. PR 0. HP 0. MG 0. CO 0. . - B :0 Times.W : 0 min. L: Falador
**********************************************
| get firefox, block ads and surf more securely | how to get paid cash for placing ads on your already exicisting website |
| get the best free webhost ever! (300gigs bandwidth) | Unzip .rar .tar zip.7z .iso .cad and zip files with 7-zip for free |
Death is, infact, a once in a life time experience
SCAR Code:Include file C:\Program Files\SCAR 3.12\includes\SRL.scar does not exist.
Include file C:\Program Files\SCAR 3.12\includes\SRL\misc\Bitmaps\Crafting.scar does not exist.
Failed when compiling
Even though they exist, it won't work! WTF is with that?
EDIT: Oh, I see the problem, it says...
SCAR Code:{.include SRL\.scar}
{.include SRL\misc\Bitmaps\Crafting.scar
instead of...
SCAR Code:{.include SRL\SRL.scar}
{.include SRL\SRL\misc\Bitmaps\Crafting.sca
EDIT: Lol, new problem...
SCAR Code:Line 1651: [Error] (16362:34): Unknown identifier 'OpenBank3' in script C:\Documents and Settings\Owner\My Documents\SCAR\[SRL4] Cowz 0.43.scar
Ill leave on overnight and if no one touches the computer in the morning ill post a nice proggy :P Love ya scripts xoxoxox mwah spank it.
Marzy
-Currently learning script![]()
Marzey
![]()
works decent for me. Gets lost badly coming and going from cow pen and bank.
From bank it gets stuck at mining guild and same thing coming back from the cow pen. Now the rest it does great. Its more of a cow hide picker than anything haha.
What can be wrong with the walking???
A whole lot of things happened for me, I tried it out, all it did was ocllect bones, meat, and cowhides, and then run to fally bank and log out. I tried everything I could to make it at least deposit what it had, but nothing worked. Maybe something is messed up with my SRL, I dunno. Killed cows and picked up cowhides great though!
it runs perfect until inventory gets full... then it still goes around picking up more stuff
There are currently 1 users browsing this thread. (0 members and 1 guests)