omgwoot
2007-08-26 19:52:16
<!– BEGIN TEMPLATE: formanswers –>
omgwoot - SRL Member Application Form
omgwoot
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
no
Other Communitys
no
How Long have You Played Runescape
a while
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well, to start off.. i'm sorry to those whom i was mean or rude to in any way.
So far i've mostly had good experience at the SRL forums, i did my best to help as many people as i could.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
omgwoot - SRL Member Application Form
omgwoot
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
no
Other Communitys
no
How Long have You Played Runescape
a while
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well, to start off.. i'm sorry to those whom i was mean or rude to in any way.
So far i've mostly had good experience at the SRL forums, i did my best to help as many people as i could.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
program VarrockYewchopperandbanker;
{=========================================================================]
[ Varrock Yew Chopper. ]
[ ]
[ NAME : Varrock Yew Chopper. ]
[ WRITER : Omgwoot ]
[ CATEGORY : Woodcutting ]
[ DESCRIPTION : Gathers Yews in East Varrock. ]
[ USAGE : Yew gathering. ]
[ AUTOCOLOR : Yes ]
[ NOTES : Start in Varrock east bank. ]
[ CONTACT : ... ]
[ OTHER INFO : Please inform me of any bugs. Now updated for RS]
[ Update. ]
[ ]
[=========================================================================]
[ Instructions. ]
[=========================================================================]
[ 1. USE Runescape with Low Detail. ]
[ 2. Drag the crosshairs to the Runescape client. ]
[ 3. Hit Run. ] ]
[ 4. Fill out the form. ]
[ 5. Leave the room, or watch.. I don't care. :D ]
[=========================================================================]
[ If you use any of my procedures, please give me credit ]
[=========================================================================}
{.include SRL/SRL.scar}
{.include SRL/SRL/SKILL/WOODCUTTING.scar}
var
amark, house, r2, boxx, symb, r1, yewcolor1, flagsx : integer;
grass, banker, logxs, entyew, axex, logx : integer;
yy, integer2, axe1, axe2, axe3, treec, loadsx, twalk1 : integer;
bankx, yewcolor, onb, hideb, friendsb, Lscreen, fullz, Int, nofent : integer;
runon, yewcolor2,Housesymbol,yewsymbol, rwalk1, x, y : integer;
whr, treeb, entt, treethere, whctr, woot, woot2, woot3, woot4, omg : boolean;
ents, lowmsped, hte, lefts, rights, attrees, waterfound : boolean;
brokenaxe, treebit, m500, loads, strr, road1, strrw : integer;
trees : string;
STRT: TDTM;
STRW: TDTM;
//************************************************************************//
const VersionNumber = 'Version 4.5'; // Compliant with Rev 568+
//************************************************************************//
Procedure DeclarePlayers;
var load : integer;
begin
HowManyPlayers :=6; // Set Number of Players here.
NumberOfPlayers(HowManyPlayers); // Sets the Players Array Length;
CurrentPlayer:=0; // CurrentPlayer = Array Index
for index := 0 to getarraylength(players)-1 do
begin
SetArrayLength(Players[Index].Strings, {number of strings use'ing}); // don't tutch
SetArrayLength(Players[Index].integers, {number of integers use'ing}); // don't tutch
SetArrayLength(Players[Index].booleans, {number of booleans use'ing}); // don't tutch
end;
Players[0].Name :=''; // runescape username
Players[0].Pass :=''; // runescape password
Players[0].Nick :=''; // nick, 3 - 4 letters of username
Players[0].Loc :='bank'; // current location
players[0].integers[0]:= 4; // number of loads
Players[0].Active:=True; // active player
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Loc :='bank';
players[1].integers[0]:= 2;
Players[1].Active:=True;
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Loc :='bank';
players[2].integers[0]:= 2;
Players[2].Active:=True;
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Loc :='bank';
players[3].integers[0]:= 2;
Players[3].Active:=True;
Players[4].Name :='';
Players[4].Pass :='';
Players[4].Nick :='';
Players[4].Loc :='bank';
players[4].integers[0]:= 2;
Players[4].Active:=True;
Players[5].Name :='';
Players[5].Pass :='';
Players[5].Nick :='';
Players[5].Loc :='bank';
players[5].integers[0]:= 2;
Players[5].Active:=True;
writeln(inttostr(HowManyPlayers)+' Players');
end;
//************************************************************************//
// Below are Two SRL functions edited a little by me
//************************************************************************//
function FindVRoadColor: Integer;
var
GC, a, l, TestColor, Red, Green, Blue : integer;
var
P:array of Tpoint;
begin
GC := 7304312;
Flag;
FindColorsSpiralTolerance(x, y, P, GC, MMX1, MMY1, MMX2, MMY2, 60);
l:=GetArrayLength(P);
for a:= 0 to l-1 do
begin
TestColor := GetColor(P[a].x, P[a].y);
red := (TestColor mod 256);
green := ((TestColor / 256) mod 256);
blue := ((TestColor / 256) / 256);
if Red - Blue <= 12 then if Red - Blue >= 8 then
if Red - Green <= 6 then if Red - Green >= -1 then
if Green - Blue <= 10 then if Green - Blue >= 4 then
if GetColor(P[a].x + 5, P[a].y + 5) = TestColor then
if GetColor(P[a].x + 3, P[a].y + 3) = TestColor then
if GetColor(P[a].x, P[a].y + 5) = TestColor then
if GetColor(P[a].x + 5, P[a].y) = TestColor then
if GetColor(P[a].x, P[a].y + 3) = TestColor then
if GetColor(P[a].x + 3, P[a].y) = TestColor then
if GetColor(P[a].x + 5, P[a].y + 3) = TestColor then
if GetColor(P[a].x + 3, P[a].y + 5) = TestColor then
begin
Result := TestColor;
Exit;
end;
end;
WriteLn('Could not find Varrock Road Color!');
Result := 0;
end;
{*******************************************************************************
function GetDoorColor: Integer;
By: Boreas
Description: Finds first door color it comes to. Ignores drop dots :)
*******************************************************************************}
function GetDoorsColor: Integer; // I only edited the name
var
Color, tmpx, tmpy, MinOfRange: Integer;
Length206, Length217, Length233, Length241: Integer;
Array206, Array217, Array233, Array241: TPointArray;
RangeOfOthers206, RangeOfOthers217, RangeOfOthers233, RangeOfOthers241: Integer;
tmpbool: Boolean;
begin
for Color := 200 to 254 do
begin
if not (((Color = 206) or (Color = 217) or (Color = 233) or (Color = 241))) then
begin
if FindColorCircle(tmpx, tmpy, Color, mmcx, mmcy, 70) then
begin
Result := Color;
tmpbool := True;
end;
end;
if tmpbool then Break;
end;
if not (tmpbool) then
begin
//writeln('its a drop dot color');
FindColorsTolerance(Array206, 206, mmx1, mmy1, mmx2, mmy2, 0);
Length206 := getarraylength(Array206);
FindColorsTolerance(Array217, 217, mmx1, mmy1, mmx2, mmy2, 0);
Length217 := getarraylength(Array217);
FindColorsTolerance(Array233, 233, mmx1, mmy1, mmx2, mmy2, 0);
Length233 := getarraylength(Array233);
FindColorsTolerance(Array241, 241, mmx1, mmy1, mmx2, mmy2, 0);
Length241 := getarraylength(Array241);
RangeOfOthers206 := Max(Length233, Max(Length217, Length241)) - Min(Length233, Min(Length217, Length241));
RangeOfOthers217 := Max(Length233, Max(Length206, Length241)) - Min(Length233, Min(Length206, Length241));
RangeOfOthers233 := Max(Length206, Max(Length217, Length241)) - Min(Length206, Min(Length217, Length241));
RangeOfOthers241 := Max(Length233, Max(Length217, Length206)) - Min(Length233, Min(Length217, Length206));
MinOfRange := Min(RangeOfOthers206, Min(RangeOfOthers217, Min(RangeOfOthers233, RangeOfOthers241)));
////////Added in V2///////
if (Length206 = Length217) and (Length217 = Length233) and (Length233 = Length241) then
begin
Result := 0;
Exit;
end;
///////////////////////////
case MinOfRange of
RangeOfOthers206: Result := 206;
RangeOfOthers217: Result := 217;
RangeOfOthers233: Result := 233;
RangeOfOthers241: Result := 241;
end;
end;
end;
//************************************************************************//
function boxcolor( xoof, yoof, X1, Y1, X2, Y2, COLOR, tolerance: INTEGER) : boolean;
begin
if findcolortolerance(x, y, COLOR, x1, y1, x2, y2, Tolerance) then
begin
result:= true;
mouse(x + xoof, y + yoof, 0, 0, true);
end;
end;
//************************************************************************//
// Searches for randoms, and does antiban while waiting //
////////////////////////////////////////////////////////////////////////////
function waitRAN( waittime, randomness, randomwaittime, ranamount : integer) : integer;
var
WI, WI2, i : integer;
begin
marktime(i);
if not randomness mod 2 = 0 then
randomness:= randomness + 1;
WI:= (waittime / randomness);
WI2:= (waittime / randomness);
repeat
wait((waittime / randomness));
case Random(Ranamount) of
0: begin
RandomRClick;
wait(500+random(1000));
end;
1: boredhuman;
2: begin
case random(2) of
0: begin
keydown(VK_Right);
wait(random(2000)+1000);
keyup(Vk_Right);
end;
1: begin
keydown(VK_Left);
wait(random(2000)+1000);
keyup(Vk_Left);
end;
end;
end;
3: boredhuman;
4: begin
gameTab(1 + Random(13));
wait(1000+random(1000));
gameTab(4);
end;
5: begin
gameTab(1 + Random(13));
wait(1000+random(1000));
gameTab(4);
end;
6: begin
gameTab(1 + Random(13));
wait(1000+random(1000));
gameTab(4);
end;
7: RandomMovement;
8: BoredHuman;
9: RandomMovement;
10: boredhuman;
11: case random(2) of
1: boredhuman;
2: HoverSkill('random', false);
end;
12: begin
RandomRClick;
wait(500+random(1000));
end;
13: begin
gameTab(Random(14));
wait(1000+random(1000));
gameTab(4);
end;
end;
mousespeed:= 12;
findnormalrandoms;
WI:= WI2 + WI;
until(WI = waittime)or(timefrommark(i) >= waittime);
result:= WI;
WI:= 0;
WI2:= 0;
mousespeed:= 12;
wait(random(randomwaittime) + 300);
end;
//************************************************************************//
function findYew(clicktree : boolean) : boolean;
var t, time : integer;
begin
mousespeed:= 12;
wait(2000+random(2000));
if FindObj(x, y, 'Yew', 4690821, 5)and not findcolortolerance(x, y, 122847, 0, 0, 229, 36, 10) then
begin
if not findcolortolerance(x, y, 122847, 0, 0, 229, 36, 10) then
begin
result:= true;
mmouse(x, y, 0, 0);
if clicktree=true then
begin
if isuptext('Yew') then
begin
getmousepos(x, y);
mouse(x,y,0,0,true);
end;
end;
exit;
end;
end;
end;
//************************************************************************//
procedure failsafes;
begin
if not loggedin then
begin
exit;
nextplayer(false);
end;
if finddead then
begin
logout;
exit;
nextplayer(false);
end;
end;
//************************************************************************//
Procedure SetUp;
var
v, i : integer;
Procedure SetUp;
begin
SetupSRL;
DeclarePlayers;
RoadColor := 0;
WaterColor := 0;
BankColor := 0;
yewcolor := 3168336;
whctr:=true;
for i := 0 to getarraylength(players)-1 do
begin
if players[i].name = '' then begin players[i].active := false;
end;
for i := 0 to getarraylength(players)-1 do
begin
if (players[i].active = true) then v := v + 1;
end;
writeln('*--------------------------------------------------------------*');
If (v = 0) then begin
WriteLn('You currently have 0 players active! i gues that`s dumb. TerminateScript.');
TerminateScript;
end;
If (v > 1) then WriteLn('You currently have '+ inttostr(v)+ ' players active.');
if (v = 1) then WriteLn('You currently have 1 player active.');
for i := 0 to getarraylength(players)-1 do
begin
if players[i].active= true then writeln(Players[i].name+' is active - ' + inttostr (players[i].integers[0]) + ' loads before switch.');
end;
writeln('*--------------------------------------------------------------*');
end;
//*************************************************************************//
procedure PlayerStats;
var Active: string;
var i: Integer;
begin
writeln('**********************************************');
writeln('Name : '+ Players[CurrentPlayer].Name);
writeln('Number : '+ inttostr(CurrentPlayer));
writeln('Worked for : '+ inttostr(scripttime(2))+' minutes.');
writeln('Banked : '+ inttostr(Players[CurrentPlayer].Banked) + ' times.');
writeln('Avoided : '+ inttostr(players[currentplayer].integers[1])+' ents.');
if Players[CurrentPlayer].Active=True then Active:='True' else Active:='False';
writeln('Active : '+ Active);
writeln('Location : '+ Players[CurrentPlayer].loc);
writeln('**********************************************');
for i := 0 to HowManyPlayers-1 do
begin
if Players[i].Active=True then Active:='True' else Active:='False';
writeln( (inttostr(i))+' : '+Players[i].name+ ' = '+Active+
'. - B :'+inttostr(Players[i].Banked)+' Times.'+ ' Avoided. '+ inttostr(players[currentplayer].integers[1]) +
' - : '+IntToStr(scripttime(2))+' mins.'+' - Loc: '+Players[i].loc);
end
writeln('**********************************************');
end;
//*************************************************************************//
procedure ProgressReport;
begin
cleardebug;
begin
WriteLn(' ');
WriteLn('<============== -'+VersionNumber+'- Progress Report ===============>');
SRLRandomsReport;
Writeln(' ');
end;
PlayerStats;
end;
//************************************************************************//
procedure ddtms;
begin
STRT.MainPoint.x := 636;
STRT.MainPoint.y := 101;
STRT.MainPoint.AreaSize := 0;
STRT.MainPoint.AreaShape := 0;
STRT.MainPoint.Color := findvroadcolor;
STRT.MainPoint.Tolerance := 5;
SetArrayLength(STRT.SubPoints, 2);
STRT.SubPoints[0].x := 641;
STRT.SubPoints[0].y := 45;
STRT.SubPoints[0].AreaSize := 0;
STRT.SubPoints[0].AreaShape := 0;
STRT.SubPoints[0].Color := findvroadcolor;
STRT.SubPoints[0].Tolerance := 5;
STRT.SubPoints[1].x := 634;
STRT.SubPoints[1].y := 143;
STRT.SubPoints[1].AreaSize := 0;
STRT.SubPoints[1].AreaShape := 0;
STRT.SubPoints[1].Color := findvroadcolor;
STRT.SubPoints[1].Tolerance := 5;
strr:= adddtm(STRT);
STRW.MainPoint.x := 630;
STRW.MainPoint.y := 93;
STRW.MainPoint.AreaSize := 0;
STRW.MainPoint.AreaShape := 0;
STRW.MainPoint.Color := findvroadcolor;
STRW.MainPoint.Tolerance := 10;
SetArrayLength(STRW.SubPoints, 4);
STRW.SubPoints[0].x := 601;
STRW.SubPoints[0].y := 93;
STRW.SubPoints[0].AreaSize := 0;
STRW.SubPoints[0].AreaShape := 0;
STRW.SubPoints[0].Color := findvroadcolor;
STRW.SubPoints[0].Tolerance := 10;
STRW.SubPoints[1].x := 633;
STRW.SubPoints[1].y := 149;
STRW.SubPoints[1].AreaSize := 0;
STRW.SubPoints[1].AreaShape := 0;
STRW.SubPoints[1].Color := findvroadcolor;
STRW.SubPoints[1].Tolerance := 10;
STRW.SubPoints[2].x := 633;
STRW.SubPoints[2].y := 155;
STRW.SubPoints[2].AreaSize := 0;
STRW.SubPoints[2].AreaShape := 0;
STRW.SubPoints[2].Color := 7567740;
STRW.SubPoints[2].Tolerance := 10;
STRW.SubPoints[3].x := 588;
STRW.SubPoints[3].y := 81;
STRW.SubPoints[3].AreaSize := 0;
STRW.SubPoints[3].AreaShape := 0;
STRW.SubPoints[3].Color := findvroadcolor;
STRW.SubPoints[3].Tolerance := 10;
strrw := AddDTM(STRW);
end;
//************************************************************************//
procedure bitmapsdtms;
begin
treebit := BitmapFromString2(False, 'a7CA9478DAD5914B0EC330' +
'0805AF043660B34CD2FAFE47AA29554A944672934DCB62849FCCC' +
'81F0080A982113B48ADA7B274E64556A64A9DCC9673B344920D95' +
'D9F2A2B69099DFACCFA4E9BA2751319B58FFB385040DF0DCD486B' +
'72C402F862409294C1F0C71FF8E3EB5E7B8215722C4A3D9A3BBA4' +
'86B2358F1862B9217AFC24DE8FBF6DF438BFFD1D62BC833ACFFDE' +
'F15C3BFD4033F2');
m500 := DTMFromString('78DA8DD13D0E80200C05E0D6D1431A4D20906' +
'8E4B4F8CB5D6A6173D0BE2E307CE9A385634774D2AB44887A3DB9' +
'DD457850737F9B5A3CAA298699FEB39AA959076032906519A7663' +
'38C07FA04C044202B027B0EC09E3D601C90B502732D8099D5EC80' +
'B980AC02BCD93209983DD9FFF500A78F4FC0');
brokenaxe := DTMFromString('78DA6374676660C8636440061EF1990CFF813' +
'448F43F1030FA02D5E4A0AA01C9B242D580795E4035F904D480CC' +
'2922A0C61BA8A684801A17A09A02026A5C816AB289B02B9F08350' +
'4EC0200AD400CF0');
twalk1 := DTMFromString('78DA63AC666260506640016F3FBE64E002D28' +
'C40FC1F08186B806A9450D55497B9C2D58000588D0A0135559876' +
'75B5D6A3AAE902AA514455539CE988A20600C35F0F45');
fullz := DTMFromString('78DA63EC63606038CCC8800C76AFEE06D3305' +
'1C636207112550D0CC0D57401890304D4B461DA85A16632903846' +
'849A7D04D44C2352CD51026A8A88700F48CD41026A0A8870CF3C2' +
'2EC9A47845D7388B06B291171B19008358B8970F362C26E060036' +
'AC1A03');
rwalk1 := DTMFromString('78DA634C616260D06140019DEDF50C5C409A1' +
'188FF0301631E508D36AA9AEA6A77B81A10608CC354F3EEDD3B54' +
'3520BB3471DB0557A34F404D2A508D0301F780D438E35703007F9' +
'413AC');
Yewsymbol := DTMFromString('78DA63EC606260886240018C1DAC0C5C201A8' +
'8FF0301633B1635D98C7035607E377E73C0FC4EA09A585435DA1A' +
'FCA86ABA806A22F09B03000CB80B2C');
Housesymbol := DTMFromString('78DA63AC676260B06240018CCC8C0C5C201A8' +
'8FF0301631D508D25AA1A8FF060B81AB01E9039D6A86A0C9D6C31' +
'D5D8E1B60BCC6F02AAB121A0A686B01A0007660A64');
yewcolor2 := DTMFromString('78DA63BCCBC0C0E0C88002D2CB65C03423940' +
'F003557021B');
hideb := DTMFromString('78DA635CC4C0C0F081910105FCFF0FA660A28' +
'C6B81C47B026A660389CF44A8794340CD5C22EC5A44845DCB8850' +
'B386B01A0098401CA5');
friendsb := DTMFromString('78DA637CCCC0C0F09E910119FCFF0FA161A28' +
'C5781C467026AAE01893704D47C05121F09A8F94E847B5E13E19E' +
'2F84D50000D0D71AF5');
onb := DTMFromString('78DA63D4626460F808C4C8E03F84828932AA0' +
'2596F08A85106B23E1061CE67026A7481AC4FB8D530C3D47C20A0' +
'06E4AFF744A8F98C5F0D00DD0A10EE');
house := DTMFromString('78DA63CC6262600863400131A1E90C72409A1' +
'188FF030100353705F7');
r2 := DTMFromString('78DA636C616660E061644006D33AD318E4803' +
'448F43F10000036AD0636');
boxx := DTMFromString('78DA633CC5C4C0308B91011914646632A4006' +
'990E87F2060BC0454D38FAA06220B23813448CD3C026A4E00D52C' +
'21A0661711E61C06AAE921C29C29F8D5000054C10F62');
symb := DTMFromString('78DA636C646260A8624001CAABB9194480342' +
'310FF070246909A4A54359233D8E06A4080B109D31C0C352073AA' +
'09A869206C0E00C0D10D11');
yewcolor1 := BitmapFromString2(False, 'a84DB178DA458E4B92C4' +
'300843AF64FE6499D0F8FE471A114F757B21BF0221586B11D1C2A' +
'B0DD14F432D1DEAC9C37E0FD3CB9D5F762928DFE3E7D4E9DA546C' +
'BFB36381FF1A7E0C1A1DC3970CDBEC0AAE1F5F33203A97508C87C' +
'469D35EC91FC62FA5C9E4E69B29224DE4D4FFF561A4689A32C179' +
'AFB2F64DE5192162E5262D25BD723CAB0219FA982046A1C55BD1A' +
'13A95D3F58E14C995AD1A125BFAE49BBA213922E03FBC63AEF268' +
'64BEBB4E05EAE037E764FE01AB4');
flagsx := DTMFromString('78DA63AC63626030674001B1C682609A11CA6' +
'7ACC554F31F2607A341E6B812610E9A9A63612CA86A2A816A6C09' +
'D8554E849A1AA01A0B22D4D8E057030084C50D42');
grass := BitmapFromString2(False, 'a02E2878DAA5CC310E80300C' +
'03C02FB92D4EC20894FCFF49D44582858DE5E4288901208F01BC0' +
'DCC4C62918C21F7F3CDE734744357AEA14B520DCCF95B5566DD55' +
'B96A302FCA5B7B44D71732181E2C99DFDEDB3F5EDF8');
logxs := DTMFromString('78DA632C66626078CA80023C4C39192630323' +
'00011C37F20602C04AAB9C38006189148209D0554F39E809A02A0' +
'9A0F04D43400D5BC26A0A61EA8E60901353540350F09A8A906AAB' +
'949404D3250CD73026AD2816A1EE0570300EB9212B3');
entyew := DTMFromString('78DA63AC67646048654001CF5F71826946289' +
'FB10EC84A4255F3F4393BAA9A1A202B0555CDB3571CA86A6A81AC' +
'745435B76F31A3AA69C454F3F831C22E906AC656202B1955CDCD9' +
'B8C986AD0CCB9718301554D3B7E3783D57412614E1766F83C7ECC' +
'86AAA604C88A23E0AF724C7330EC2AC7E61E34BF5712B60B009EB' +
'42570');
banker := BitmapFromString2(False, 'a93DE478DA758E4B0E033' +
'10843AF4468F8CCB249E0FE472A4EA4E974512F9E2CCB581011E5' +
'2CD0F082AA82D441412223BE3E361D1D3178763445B020B96F196' +
'33605ECB8B5B1D7F2BABD31FA3AD0D137125A60B3EEE66C2B23A3' +
'BD408A9F64D6AF9C9275B94AF87D279BB1A29259A2A3763ACFE4A' +
'C1DFF4CFEF1034BA');
axex:= DTMFromString('78DA63F4636260B8CD80025C63D2181238191' +
'81881ECFF40C0E80F547383010D302291403A08A8E6166E35601C' +
'0C54738F809A40A09A0704D480DCF390801A5FA09AFB04D47803D' +
'5DC25A0C6830835EE44D8E50654F384801A17A09A1704D43803D5' +
'BC26A0C60EA8E60301354E4035EFA860972BFEB401C200A40E19A' +
'A');
logx := DTMFromString('78DA632C66626078CA80023C4C39192630323' +
'00011C37F20602C04AAB9C38006189148209D0554F39E809A02A0' +
'9A0F04D43400D5BC26A0A61EA8E60901353540350F09A8A906AAB' +
'949404D3250CD73026AD2816A1EE0570300EB9212B3');
r1 := DTMFromString('78DA636C616260706640015DAD0D0C22409A1' +
'188FF0301632B508D3B6E3520C0D844849A36A01A2722CC21A406' +
'E41E7B026A40FEF226C21C5B026A9A816A3C89B0CB95087FB9106' +
'18E3D11EEB127229CAD89708F1701358D40353EF8D50000B2772A' +
'E4');
end;
//************************************************************************//
procedure free;
begin
freedtm(r1);
freedtm(logx);
freedtm(axex);
freebitmap(banker);
freedtm(entyew);
freedtm(logxs);
freebitmap(grass);
freedtm(flagsx);
freebitmap(yewcolor1);
freedtm(symb);
freedtm(boxx);
freedtm(r2);
freedtm(house);
freedtm(onb);
freedtm(friendsb);
freedtm(hideb);
freedtm(yewcolor2);
freedtm(housesymbol);
freedtm(yewsymbol);
freedtm(rwalk1);
freedtm(fullz);
freedtm(twalk1);
end;
//************************************************************************//
procedure RandomCompass;
begin
case random(4) of
0: Makecompass('N');
1: Makecompass('E');
2: Makecompass('W');
3: Makecompass('S');
end;
end;
//************************************************************************//
procedure HandleEnt;
Begin
if FindObj(x, y, 'Yew', 4690821, 5) then
mmouse(x, y, 0, 0);
if findcolortolerance(x, y, 122847, 0, 0, 229, 36, 15)then
begin
players[currentplayer].integers[1]:= players[currentplayer].integers[1] +1 ;
mouse(642, 83, 1, 1, true);
writeln('Waiting for Ent.' + ' You have had ' + inttostr(players[currentplayer].integers[1]) + ' Ent(s).');
repeat
wait(2000);
if FindObj(x, y, 'Yew', 4690821, 5) then
mmouse(x, y, 0, 0);
TakeScreen('Ents');
until(not(FindObj(x, y, 'Yew', 4690821, 5)))or(not(findcolortolerance(x, y, 122847, 0, 0, 229, 36, 15)));
end;
end;
//************************************************************************//
procedure whereiswater;
var
p1, p2, p3, p4 : boolean;
begin
findsymbol(x,y,'water');
mmouse(x,y-10,0,0);
if getcolor(x,y) = findvroadcolor then p1 := true else p3 := true;
findsymbol(x,y,'water');
mmouse(x+10,y,0,0);
if getcolor(x,y) = findvroadcolor then p2 := true else p4 := true;
if p1=true and p2=true then lefts:= true;
findsymbol(x,y,'water');
mmouse(x+10,y,0,0);
if getcolor(x,y) = findvroadcolor then p1 := true else p3 := true;
findsymbol(x,y,'water');
mmouse(x,y+10,0,0);
if getcolor(x,y) = findvroadcolor then p2 := true else p4 := true;
if p3=true and p4=true then rights:= true;
if p1=true and p2=true then lefts:= true;
if lefts= true then
begin
rights:= false;
end else
lefts:= false;
if rights= true then
begin
lefts:= false;
end else
rights:= false;
p1:= false;
p2:= false;
p3:= false;
p4:= false;
end;
//************************************************************************//
procedure LeaveScreen;// the one from srl didn't work too well, so i made my own
var
a, xx1,xx2,xx3: Integer;
begin
mousespeed:= 14;
xx1:= -178;
xx2:= -28;
xx3:= 63;
begin
case random(4) of
0: a := 0;
1: a := 1;
2: a := 2;
3: a := 3;
4: a := 4;
5: a := 5;
end;
if (a = 0) then
begin
MMouse(xx1+random(10),75+random(10),20,20);
Wait(1000 + Random(1000));
end;
if (a = 1) then
begin
MMouse(xx2+random(10),586+random(10),20,20);
Wait(1000 + Random(1000));
end;
if (a = 2) then
begin
MMouse(xx3+random(10),595+random(10),20,20);
Wait(1000 + Random(1000));
end;
if (a = 3) then
begin
MMouse(862+random(10), 267+random(10),20,20);
Wait(1000 + Random(1000));
end;
if (a = 4) then
begin
MMouse(504+random(10), 640+random(10),20,20);
Wait(1000 + Random(1000));
end;
if (a = 5) then
begin
MMouse(-194+random(10), 193+random(10),20,20);
Wait(1000 + Random(1000));
end;
end;
end;
//************************************************************************//
function FindFastRandoms: Boolean; //By WT-Fakawi.
var
i: Integer;
begin
for i := 1 to 8 do
begin
case I of
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: if FindDemon then
Result := True;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
end;
//************************************************************************//
procedure axecheck;
begin
cleardebug;
gametab(4);
wait(1000);
if finddtm(axex, x,y,0,0,700,700)then
begin
axe1:= getcolor(x,y)
axe2:= getcolor(x+1,y+1)
axe3:= getcolor(x+1,y-1)
writeln('axe is in inventory.')
writeln('axe colors are as follows: ')
whr:= true;
writeln(inttostr(axe1)+' '+inttostr(axe2)+' '+inttostr(axe3))
end;
if whr=false then
begin
gametab(5);
wait(1000);
if finddtm(axex, x, y, 0, 0, 700, 700)then
begin
axe1:= getcolor(x,y)
axe2:= getcolor(x+1,y+1)
axe3:= getcolor(x+1,y-1)
writeln('axe is in equipped.')
writeln('axe colors are as follows: ')
writeln(inttostr(axe1)+' '+inttostr(axe2)+' '+inttostr(axe3))
end;
end;
end;
//************************************************************************//
procedure FindRandoms;
begin
findnormalrandoms;
FindFastRandoms;
if(finddtm(boxx,x,y,553, 202,742, 465))then
begin
openbox;
wait(random(1000));
solvebox;
end;
if findcolortolerance(x,y,1479347,553, 202,742, 465,10) then
begin
mouse(x,y,0,0,false);
wait(1000);
chooseoption('Drop');
end;
if findfight then
begin
makecompass('N');
setrun(true);
mouse(655, 31,0,0,true);
flag;
wait(5000);
findsymbol(x,y,'rare trees');
mouse(x,y,0,0,true);
flag;
setrun(false);
end;
end;
//*************************************************************************//
procedure bank;
begin
failsafes;
mousespeed:= 12;
makecompass('S');
lowestangle;
openbank3;
wait(random(500));
fixbank;
wait(random(500));
finddtm(logx, x, y, 560, 210, 739, 458);
mouse(x,y,0,0,false);
chooseoption('All');
closebank;
players[currentplayer].banked := players[currentplayer].banked + 1;
end;
//*************************************************************************//
procedure depositelogs;
begin
mousespeed:= 12;
Makecompass('S');
lowestangle;
openbank3;
wait(random(500));
fixbank;
wait(random(500));
finddtm(logxs, x, y, 560, 210, 739, 458);
mouse(x,y,0,0,false);
chooseoption('All');
closebank;
highestangle;
end;
//*************************************************************************//
procedure brightnessnchat;
begin
repeat
if findcolor(x,y,16776960,145, 478,389, 501) or findcolor(x,y,65535,145, 478,389, 501) or findcolor(x,y,65280,145, 478,389, 501) then
begin
mouse(x,y,0,0,false);
wait(200+random(200));
chooseoption('Off');
end;
until (not(finddtm(onb,x,y,145, 478,389, 501)or(finddtm(friendsb,x,y,145, 478,389, 501)or(finddtm(hideb,x,y,145, 478,389, 501)))));
gametab(11);
if(findcolor(x,y,9981222, 705, 221, 720, 236)) then gametab(4)
else
if(not(findcolor(x,y,9981222, 705, 221, 720, 236)))then
begin
mouse(715, 228, 0, 0, true);
gametab(4);
end;
end;
//************************************************************************//
procedure ent;
Begin
if FindObj(x, y, 'Yew', 4690821, 5) then
mmouse(x, y, 0, 0);
if findcolortolerance(x, y, 122847, 0, 0, 229, 36, 15)then
begin
players[currentplayer].integers[1]:= players[currentplayer].integers[1] +1 ;
mouse(642, 83, 1, 1, true);
writeln('Waiting for Ent.' + ' You have had ' + inttostr(players[currentplayer].integers[1]) + ' Ent(s).');
repeat
wait(2000);
if FindObj(x, y, 'Yew', 4690821, 5) then
mmouse(x, y, 0, 0);
TakeScreen('Ents');
until(not(FindObj(x, y, 'Yew', 4690821, 5)))or(not(findcolortolerance(x, y, 122847, 0, 0, 229, 36, 15)));
end;
end;
//************************************************************************//
function south : boolean;
var
compangle : integer;
begin
compangle:= FindCompassAngle;
if compangle = 180 then
begin
result:= true;
exit;
compangle:= 0;
end else
result:= false;
compangle:= 0;
end;
//************************************************************************//
procedure lineupr;
begin
if not finddtm(strr, x, y, MMX1, MMY1, MMX2, MMY2) and south = false then
begin
makecompass('w');
begin
keydown(VK_LEFT);
repeat
wait(10);
until(finddtm(strr, x, y, MMX1, MMY1, MMX2, MMY2) and south = false);
keyup(VK_LEFT);
end;
end;
end;
//************************************************************************//
procedure lineupw;
begin
if not finddtm(strrw, x, y, MMX1, MMY1, MMX2, MMY2) and south = false then
begin
makecompass('w');
begin
keydown(VK_LEFT);
repeat
wait(10);
until(finddtm(strrw, x, y, MMX1, MMY1, MMX2, MMY2) and south = false);
keyup(VK_LEFT);
end;
end;
end;
//************************************************************************//
procedure walktotree;
begin
highestangle;
findrandoms;
attrees:= true;
failsafes;
mousespeed:= 12;
writeln('Walking from bank to tree 1');
Makecompass('N');
wait(random(1000));
setrun(true);
gametab(4);
mousespeed:= 12;
RadialWalk( findvroadcolor , 306, 332, 57, 0, 0);
flag;
whereiswater;
findsymbol(x,y,'water');
if lefts=true then mouse(x+20,y,0,0,true) else mouse(x,y,0,0,true);
flag;
LinearRoadWalk(findvroadcolor, 0, 60, 0, 0);
flag;
repeat
findrandoms;
LinearRoadWalk(findvroadcolor, 0, 60, 0, 0);
flag;
until findsymbol(x,y,'rare trees')
if findsymbol(x,y,'rare trees') then
begin
findrandoms;
mouse(x,y,0,0,true);
flag;
end else
begin
logout;
exit;
end;
findrandoms;
players[currentplayer].loc:= 'Yew trees.';
setrun(false);
findrandoms;
players[currentplayer].loc:='Tree 1';
findrandoms;
if findsymbol(x,y,'rare trees') then
mouse(x,y,0,0,true);
flag;
end;
//*************************************************************************//
procedure walkfromtree;
begin
highestangle;
findrandoms;
failsafes;
mousespeed:= 12;
writeln('walking to bank');
findrandoms;
if(not(findsymbol(x, y, 'house')))then
begin
Makecompass('N');
findrandoms;
whctr:= true;
treeb:= true;
woot:=true;
treethere:= false;
mouse(615, 80, 4, 4, true);
flag;
mouse(633, 146,6,6,true);
wait(20000);
findsymbol(x,y,'rare trees');
mouse(x,y,0,0,true);
flag;
players[currentplayer].loc:='Tree 1';
end;
findrandoms;
findsymbol(x,y,'rare trees');
mouse(x,y,0,0,true);
flag;
Makecompass('N');
gametab(4);
findrandoms;
repeat
findrandoms;
LinearRoadWalk(findvroadcolor, 180, 64, 0, 0);
flag;
until(findsymbol(x, y, 'training dummy'))
if findsymbol(x, y, 'Water') then
begin
findrandoms;
mouse(x, y, 0, 0, true);
flag;
end else
begin
if not findsymbol(x, y, 'Water') then
begin
findrandoms;
waterfound:= true;
LinearRoadWalk(findvroadcolor, 180, 64, 0, 0);
flag;
end;
end;
if waterfound = true then
begin
findrandoms;
whereiswater;
flag;
MouseBox(647, 86, 672, 110, True);
flag;
end;
if(not(findsymbol(x,y,'bank')))then
begin
findrandoms;
mouse(682, 88, 6, 6, true);
flag;
end;
if findsymbol(x,y,'bank') then
begin
findrandoms;
mouse(x, y, 0, 0, true);
flag;
end;
findrandoms;
players[currentplayer].loc:= 'Bank.';
attrees:= false;
waterfound:= false;
findrandoms;
end;
//*************************************************************************//
Procedure Walktotree1;
var tmark : integer;
begin
highestangle;
lineupw;
findrandoms;
findsymbol(x, y, 'rare trees');
mouse(x, y, 0, 0, true);
failsafes;
mousespeed:= 12;
writeln('Now walking to tree 1');
Makecompass('N');
whctr:= true;
treeb:= true;
findrandoms;
mouse(615, 80, 4, 4, true);
flag;
mouse(633, 146,6,6,true);
wait(20000-random(1000));
findsymbol(x,y,'rare trees');
mouse(x,y,0,0,true);
flag;
players[currentplayer].loc:='Tree 1';
findrandoms;
end;
//*************************************************************************//
procedure Walktotree2;
var
accu, rst : extended;
begin
highestangle;
findrandoms;
lineupr;
failsafes;
findsymbol(x, y, 'rare trees');
mouse(x, y, 0, 0, true);
if not finddtm(logx, x, y, 683, 429, 728, 461) then
begin
findrandoms;
mousespeed:= 12;
writeln('Now walking to tree 2');
Makecompass('N');
treeb:= false;
whctr:= false;
findrandoms;
flag;
lineupr;
boxcolor(15, 0, 582, 9, 646, 45, GetDoorsColor, 10);
fflag(10);
FindDeformedBitmapToleranceIn(treebit, x, y, 620, 25, 674, 62, 50, 0, True, accu);
Mouse(x, y, 0, 0, true);
flag;
MouseBox(685, 70, 704, 87, True);
flag;
findsymbol(x,y,'rare trees');
mouse(x,y,0,0,true);
flag;
players[currentplayer].loc:='Tree 2';
accu:= rst;
findrandoms;
end;
end;
//*************************************************************************//
procedure ChopTree;
begin
repeat
highestangle;
findrandoms;
findYew(true);
ent;
WaitRAN(1000, 1, 0, 13);
findrandoms;
WaitRAN(3000, 3, 1000, 13);
ent;
findrandoms;
if not FindObj(x, y, 'Yew', 4690821, 10) then
begin
WaitRAN(200, 3, 200, 13);
findrandoms;
if whctr= false then
begin
findrandoms;
findrandoms;
findrandoms;
WalkToTree1;
end;
if whctr= true then
begin
if FindObj(x, y, 'Yew', 4690821, 10) = false then
WalkToTree2;
end;
end;
Until invfull;
end;
//*************************************************************************//
begin
Setup;
wait(5000);
writeln(' ');
writeln('Starting script...');
wait(1000);
activateclient;
wait(2000);
if not loggedin then loginplayer;
ddtms;
lineupr;
whctr:= true;
repeat
bitmapsdtms;
brightnessnchat;
axecheck;
gametab(4);
if finddtm(logxs, x, y, 560, 210, 739, 458)then depositelogs;
begin
repeat
highestangle;
walktotree;
gametab(4);
ChopTree;
walkfromtree;
if findsymbol(x,y,'bank') then
begin
mouse(x, y, 0, 0, true);
flag;
end else
begin
LinearRoadWalk(FindLadderColor, 135, 51, 0, 0);
flag;
end;
bank;
loadsx:= loadsx + 1;
until loadsx = players[currentplayer].integers[0];
end;
if loadsx = players[currentplayer].integers[0] then
logout;
players[currentplayer].active := false;
loadsx:= 0;
ProgressReport;
nextplayer(true);
free;
until(false);
end.{=========================================================================]
[ PowerMiner + PowerChopper. ]
[ ]
[ NAME : PowerMiner/PowerChopper. ]
[ WRITER : Omgwoot ]
[ CATEGORY : Woodcutting/Mining ]
[ DESCRIPTION : Powermines or Powerchops. ]
[ USAGE : Gaining levels. ]
[ AUTOCOLOR : Yes ]
[ NOTES : Start near trees or rocks. ]
[ CONTACT : ... ]
[ ]
[ ]
[=========================================================================]
[ ]
[=========================================================================]
[ Instructions. ]
[=========================================================================]
[ 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 HOWMANYPLAYERS inside DeclarePlayers ]
[=========================================================================}
program PowerChopperorpowerminer;
{.include SRL/SRL.scar}
{.include SRL/SRL/SKILL/MINING.scar}
var
Minet, Chopt : Boolean;
x, y, p, RockColor, TreeColor, logs, ores, a, Mincount,
ux, uy : integer;
//************************************************************************//
const VersionNumber = '1'; // Compliant with Rev 568+
//************************************************************************//
Procedure DeclarePlayers;
begin
HowManyPlayers :=6; // Set Number of Players here.
NumberOfPlayers(HowManyPlayers); // Sets the Players Array Length;
CurrentPlayer:= 0; // CurrentPlayer = Array Index
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
players[0].strings[0] := 'PowerChop'; //Arguments - PowerChop, PowerMine
players[0].integers[0] :=1; //Number of loads to do
players[0].strings[1] := 'Oak'; //Name of Tree to Powerchop - only set if you want to powerchop
players[0].strings[2] := 'Copper'; //Name of Tree to Powermine - only set if you want to Powermine
Players[0].Active:=True;
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
players[1].strings[0] := 'PowerChop'; //Arguments - PowerChop, PowerMine
players[1].integers[0] :=1; //Number of loads to do
players[1].strings[1] := 'Oak'; //Name of Tree to Powerchop - only set if you want to powerchop
players[1].strings[2] := 'Copper'; //Name of Tree to Powermine - only set if you want to Powermine
Players[1].Active:=True;
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
players[2].strings[0] := 'PowerChop'; //Arguments - PowerChop, PowerMine
players[2].integers[0] :=1; //Number of loads to do
players[2].strings[1] := 'Oak'; //Name of Tree to Powerchop - only set if you want to powerchop
players[2].strings[2] := 'Copper'; //Name of Tree to Powermine - only set if you want to Powermine
Players[2].Active:=True;
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
players[3].strings[0] := 'PowerChop'; //Arguments - PowerChop, PowerMine
players[3].integers[0] :=1; //Number of loads to do
players[3].strings[1] := 'Oak'; //Name of Tree to Powerchop - only set if you want to powerchop
players[3].strings[2] := 'Copper'; //Name of Tree to Powermine - only set if you want to Powermine
Players[3].Active:=True;
Players[4].Name :='';
Players[4].Pass :='';
Players[4].Nick :='';
players[4].strings[0] := 'PowerChop'; //Arguments - PowerChop, PowerMine
players[4].integers[0] :=1; //Number of loads to do
players[4].strings[1] := 'Oak'; //Name of Tree to Powerchop - only set if you want to powerchop
players[4].strings[2] := 'Copper'; //Name of Tree to Powermine - only set if you want to Powermine
Players[4].Active:=True;
Players[5].Name :='';
Players[5].Pass :='';
Players[5].Nick :='';
players[5].strings[0] := 'PowerChop'; //Arguments - PowerChop, PowerMine
players[5].integers[0] :=1; //Number of loads to do
players[5].strings[1] := 'Oak'; //Name of Tree to Powerchop - only set if you want to powerchop
players[5].strings[2] := 'Copper'; //Name of Tree to Powermine - only set if you want to Powermine
Players[5].Active:=True;
writeln(inttostr(HowManyPlayers)+' Players');
end;
//************************************************************************//
Procedure SetUp;
begin
SetupSRL;
DeclarePlayers;
if not loggedin then LoginPlayer;
RoadColor :=0;
WaterColor :=0;
BankColor :=0;
end;
//************************************************************************//
function waitRAN( waittime, randomness, randomwaittime, ranamount : integer) : integer;
var
WI, WI2, i : integer;
begin
marktime(i);
if not randomness mod 2 = 0 then
randomness:= randomness + 1;
WI:= (waittime / randomness);
WI2:= (waittime / randomness);
repeat
wait((waittime / randomness));
case Random(Ranamount) of
0: begin
RandomRClick;
wait(500+random(1000));
end;
1: begin
gameTab(Random(14));
wait(1000+random(1000));
gameTab(4);
end;
2: begin
case random(2) of
0: begin
keydown(VK_Right);
wait(random(2000)+1000);
keyup(Vk_Right);
end;
1: begin
keydown(VK_Left);
wait(random(2000)+1000);
keyup(Vk_Left);
end;
end;
end;
3: begin
case random(2) of
0: begin
keydown(VK_Right);
wait(random(2000)+1000);
keyup(Vk_Right);
end;
1: begin
keydown(VK_Left);
wait(random(2000)+1000);
keyup(Vk_Left);
end;
end;
end;
4: begin
case random(2) of
0: begin
keydown(VK_Right);
wait(random(2000)+1000);
keyup(Vk_Right);
end;
1: begin
keydown(VK_Left);
wait(random(2000)+1000);
keyup(Vk_Left);
end;
end;
end;
5: begin
gameTab(1 + Random(13));
wait(1000+random(1000));
gameTab(4);
end;
6: begin
gameTab(1 + Random(13));
wait(1000+random(1000));
gameTab(4);
end;
7: RandomMovement;
8: BoredHuman;
9: begin
gameTab(Random(14));
wait(1000+random(1000));
gameTab(4);
end;
10: boredhuman;
11: case random(2) of
1: boredhuman;
2: HoverSkill('random', false);
end;
12: begin
RandomRClick;
wait(500+random(1000));
end;
13: begin
gameTab(Random(14));
wait(1000+random(1000));
gameTab(4);
end;
end;
mousespeed:= 12;
findnormalrandoms;
WI:= WI2 + WI;
until(WI = waittime)or(timefrommark(i) >= waittime);
result:= WI;
WI:= 0;
WI2:= 0;
mousespeed:= 12;
wait(random(randomwaittime) + 300);
end;
//************************************************************************//
function FindRock : Boolean;
begin
FindColorSpiralTolerance(ux, uy, rockcolor, MSX1, MSY1, MSX2, MSY2, 5);
end;
//************************************************************************//
function findtree : Boolean;
begin
FindColorSpiralTolerance(ux, uy, treecolor, MSX1, MSY1, MSX2, MSY2, 5);
end;
//************************************************************************//
// the next function IS by sumilion, slightly edited by me
//************************************************************************//
function UpdateRockCoord(var ux, uy: Integer; UColor: Integer): Boolean;
var
FailSafeTime, i: Integer;
RockPoint: TPoint;
begin
if not(FlagPresent)then
begin
Result := True;
Exit;
end;
MarkTime(FailSafeTime);
while(FindColorSpiralTolerance(ux, uy, rockcolor, ux - 20, uy - 20, ux + 20, uy + 20, 10))and
(TimeFromMark(FailSafeTime) < 20000)and
(FlagPresent)do
begin
Result := FindRock;
Wait(16);
ux := RockPoint.x;
uy := RockPoint.y;
end;
for i := 0 to 62 do
begin
Result := FindRock;
Wait(8);
ux := RockPoint.x;
uy := RockPoint.y;
end;
end;
//************************************************************************//
// the next function is by sumilion, edited by me
//************************************************************************//
procedure updatetreecoord;
var
FailSafeTime, i: Integer;
RockPoint: TPoint;
begin
if not(FlagPresent)then
begin
Result := True;
Exit;
end;
MarkTime(FailSafeTime);
while(FindColorSpiralTolerance(ux, uy, treecolor, ux - 20, uy - 20, ux + 20, uy + 20, 10))and
(TimeFromMark(FailSafeTime) < 20000)and
(FlagPresent)do
begin
Result := FindTree;
Wait(16);
ux := RockPoint.x;
uy := RockPoint.y;
end;
for i := 0 to 62 do
begin
Result := FindTree;
Wait(8);
ux := RockPoint.x;
uy := RockPoint.y;
end;
end;
//************************************************************************//
procedure ent;
Begin
if FindObj(ux, uy, players[currentplayer].strings[1], 4690821, 5) then
mmouse(x, y, 0, 0);
if findcolortolerance(ux, uy, 122847, 0, 0, 229, 36, 15)then
begin
mouse(642, 83, 1, 1, true);
repeat
waitRAN(2000, 1, 500, 13);
if FindObj(ux, uy, players[currentplayer].strings[1], 4690821, 5) then
mmouse(x, y, 0, 0);
TakeScreen('Ents');
until(not(FindObj(ux, uy, players[currentplayer].strings[1], 4690821, 5)))or(not(findcolortolerance(x, y, 122847, 0, 0, 229, 36, 15)));
end;
end;
//************************************************************************//
procedure LoadBitmaps;
begin
end;
//************************************************************************//
Procedure LoadDTMS;
begin
ores := DTMFromString('78DA637461626078C280027CF49518FE03694' +
'620FE0F048CC640352F18D00023032B540D98670B54738B801A2F' +
'22D40402D5DC23A02600A8E61101353E40356F08A8B107AAF9444' +
'08D0D50CD3BFC6A00B64C105F');
logs := DTMFromString('78DA63CC63626078C6800282EC3819FE03694' +
'620FE0F048CE940357718D00023032B540D98570D54F39C809A72' +
'A09AFB04D49400D5DC24A02603A8E6230135C940356F09A88905A' +
'A7945849BDF1050930854F310BF1A0077F61324');
end;
//************************************************************************//
Procedure SetupColors;
begin
if Minet = true then
begin
case lowercase(players[currentplayer].strings[2]) of
'copper' : rockcolor:= 0000;
'tin' : rockcolor:= 0000;
'silver' : rockcolor:= 0000;
'coal' : rockcolor:= 0000;
'Iron' : rockcolor:= 0000;
end;
end;
if Chopt = true then
begin
case lowercase(players[currentplayer].strings[1]) of
'Tree' : treecolor:= 3692371;
'Oak' : treecolor:= 2065525;
'Willow' : treecolor:= 0000;
'Yew' : treecolor:= 5217164;
end;
end;
end;
//************************************************************************//
procedure MineRocks;
begin
repeat
if FindObj(x, y, players[currentplayer].strings[2], RockColor, 5)then
begin
mouse(x, y, 0, 0, false);
wait(random(100)+200);
chooseoption('ine');
UpdateRockCoord(ux, uy, RockColor);
findnormalrandoms;
FindGas(ux, uy);
waitRAN(3000, 2, 1000,13);
findnormalrandoms;
FindGas(x, y);
findnormalrandoms;
FindGas(x, y);
end;
until(invfull);
end;
//************************************************************************//
procedure ChopTrees;
begin
repeat
if FindObj(x, y, players[currentplayer].strings[1], Treecolor, 5)then
begin
mouse(x, y, 0, 0, false);
wait(random(100)+200);
chooseoption('hop');
findnormalrandoms;
updatetreecoord;
ent;
waitRAN(3000, 2, 1000,13);
findnormalrandoms;
updatetreecoord;
ent;
findnormalrandoms;
end else
begin
repeat
waitRAN(1000, 1, 1000,13);
until FindObj(x, y, players[currentplayer].strings[1], Treecolor, 5);
end;
until(invfull);
end;
//*************************************************************************//
procedure Drop;
begin
repeat
If finddtm(logs, x, y, 552, 204, 734, 463)then
begin
mouse(x, y, 3, 3, false);
wait(100+ random(200));
chooseoption('rop');
wait(1300 + random(200));
end;
until not finddtm(logs, x, y, 552, 204, 734, 463);
repeat
If finddtm(ores, x, y, 552, 204, 734, 463)then
begin
mouse(x, y, 3, 3, false);
wait(100+ random(200));
chooseoption('rop');
wait(1300 + random(200));
end;
until not finddtm(ores, x, y, 552, 204, 734, 463);
end;
//*************************************************************************//
procedure SetupScript;
var strng, defstrng : string;
begin
strng:= players[currentplayer].strings[0];
case lowercase(strng) of
'powerchop': chopt := true;
'powermine': minet := true;
end;
strng:= defstrng;
end;
//*************************************************************************//
Procedure SetupScriptMining;
begin
FindPickHeadColor;
SetupMining;
end;
//*************************************************************************//
//
// Main EventLoop
//
//*************************************************************************//
begin
Setup;
activateclient;
wait(1000);
LoadBitmaps;
LoadDTMS;
SetupScript;
SetupColors;
if chopt = true then
begin
repeat
ChopTrees;
Drop;
p:= p + 1;
until(p = players[currentplayer].integers[0])
end;
if minet = true then
begin
SetupScriptMining;
repeat
MineRocks;
Drop;
p:= p + 1;
until(p = players[currentplayer].integers[0])
end;
p:= 0;
logout;
nextplayer(true);
end.——————————————————
<!– END TEMPLATE: formanswers –>