Coh3n
06-18-2009, 12:59 AM
Already applied for membership. :) Thanks everyone for the help!
Hey guys,
Just wondering what you think I should add/improve on this script before I apply for members. I would also like to hear what you think the chances of me getting into members is. OR maybe whether you would vote yes/no and why. Thanks. :)
Don't be afraid to criticize, just don't be TOO mean. :p
Draynor Chop N' Bank | By Coh3n
Some Features:
Cuts/banks Willows in Draynor.
AntiBan.
AntiRandoms.
Multiplayer.
Progress Report.
TPA/ATPA
DTMs.
Setup:
Have axe wielded.
Start anywhere in Draynor Bank.
program DraynorChopNBank;
{.Include SRL\SRL\Misc\SMART.SCAR}
{.include SRL\SRL.scar}
//{.include SRL\SRL\Misc\Debug.scar}
var
HatchetDTM : Array of Integer;
NumOfLogs, TotalProggies : Integer;
XpGain : TExtendedArray;
TP : TPoint;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'Username';
Players[0].Pass := 'Password';
Players[0].Nick := 'Nickname';
Players[0].Active := True;//Use this player?
Players[0].Pin := '';//Bank pin. Leave blank if you don't have one.
Players[0].Integers[0] := 000;//How many logs to cut?
Players[0].Booleans[0] := True;//Is hatchet equiped?
Players[0].BoxRewards := ['Xp', 'mote', 'ostume'];
{Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].Integers[0] := 000;
Players[0].Booleans[0] := True;
Players[0].BoxRewards := ['Xp', 'mote', 'ostume'];}
end;
procedure S_TurnRunOn;
var
s : String;
begin
if GetMMLevels('energy', s) > 60 then
begin
SetRun(True);
Exit;
end;
end;
procedure S_FindRandoms;
begin
if FindFight then
RunAway('N', True, 1, 5000);
LampSkill := 'woodcutting';
FindNormalRandoms;
end;
function S_LevelUp: Boolean;
var
x, y : Integer;
begin
if FindNPCChatText('ongrat', Nothing)then
begin
ClickContinue(True, True);
Wait(80 + Random(100));
GetSkillLevel('woodcutting');
Mouse(x, y, 4, 4, True);
Wait(80 + Random(100));
CloseWindow;
Writeln('Congratulations, you have gained a Woodcutting level!');
Result := True;
end;
end;
procedure S_MyAntiBan;
begin
case Random(70) of
0: RandomMovement;
1: BoredHuman;
2: HoverSkill('random', false);
3: RandomRClick;
4: begin
case Random(2) of
0: begin
KeyDown(VK_RIGHT);
Wait(50 + Random(1300));
KeyUp(VK_RIGHT);
Wait(60 + Random(2000));
KeyDown(VK_LEFT);
Wait(70 + Random(1100));
KeyUp(VK_LEFT);
end;
1: begin
KeyDown(VK_LEFT);
Wait(50 + Random(1300));
KeyUp(VK_LEFT);
Wait(60 + Random(2000));
KeyDown(VK_RIGHT);
Wait(70 + Random(1100));
KeyUp(VK_RIGHT);
end;
end;
end;
5: begin
KeyDown(VK_LEFT);
Wait(100 + Random(1200));
KeyUp(VK_LEFT);
end;
6: begin
KeyDown(VK_RIGHT);
Wait(150 + Random(1100));
KeyUp(VK_RIGHT);
end;
end;
end;
procedure S_HatchetDTMs;
begin
SetArrayLength(HatchetDTM, 7);//[0]:= Bronze, [6]:= Rune
HatchetDTM[0] := DTMFromString('78DA630C646260D8C4C8800C7CAC9519F88 13' +
'44C94D113A86617AA1A982C5C8D1B50CD36026ABC816AD612 5013' +
'0C54B38E809A504C3763A80921EC1E00949107EF');
HatchetDTM[1] := DTMFromString('78DA630C626260D8C4C8800C02BDBD19F88 13' +
'448F43F1030BA03D5EC47550391859140DA0DA8662B01355E 4035' +
'6B09A80906AA5947404D2850CD06026A42806AB6E15703003 3F30' +
'C28');
HatchetDTM[2] := DTMFromString('78DA630C626260D8C8C8800CCAF3F318F88 13' +
'448F43F10307A02D5EC40550391859140DA0DA8660B01355E 4035' +
'6B09A80904AA5947404D28A69BB1AAD98A5F0D0090050C8D' );
HatchetDTM[3] := DTMFromString('78DA63F4676260D8C0C8800C44454418F88 13' +
'448F43F1030BA03D5EC43550391859140DA05A8661701351E 4035' +
'EB09A80900AA5947404D28A69BB1AAD98A5F0D0095870B78' );
HatchetDTM[4] := DTMFromString('78DA630C646260D8C8C8800C1C1CE319F88 13' +
'44C94D10DA8E600AA1A982C5C8D2B50CD0E026A3C806A3610 5013' +
'0054B38E809A504C3763A80901AAD9865F0D00C5940824');
HatchetDTM[5] := DTMFromString('78DA63EC64626038C0C8800C9C829D18F88 13' +
'44C94B101A8E614AA1A982C8A9A7D04D4F402D5EC2742CD21 026A' +
'6A816AAEE05703006FA208C7');
HatchetDTM[6] := DTMFromString('78DA638C676060E8614001AE31690CFC409 A1' +
'188FF0301633090B180010D302291403A1048CC22A0260448 F413' +
'501309243A08A84902129D04D42403895EFC6A00F1EB0B8F' );
end;
procedure W_WalkToWillows;
var
x, y : Integer;
begin
if not LoggedIn then Exit;
S_TurnRunOn;
if RadialWalk(FindWaterColor, 180, 220, 60, -2, 1)then
begin
Wait(80 + Random(100));
Writeln('Walking to Willows.');
FFlag(2);
end else
begin
if FindSymbol(x, y, 'fish')then
begin
Wait(80 + Random(100));
Writeln('Walking to Willows.');
Mouse(x, y - 20 - Random(15), 4, 4, True);
FFlag(2);
end else
begin
Writeln('Couldn''t walk to Willows.');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
end;
function W_BankFloorColor: Integer;
var
BankFloor, x, y : Integer;
begin
BankFloor := DTMFromString('78DA63AC606260D066400179E969609A11C A6' +
'7AC05AA514555F3E70F13A61A3D22D418E1570300B1E409D9 ');
if DTMRotated(BankFloor, x, y, MMX1, MMY1, MMX2, MMY2)then
begin
Result := GetColor(x + 15, y);
Writeln('Bank floor color = ' + IntToStr(Result));
end else
Writeln('Didn''t find bank color.');
end;
procedure W_WalkToBank;
var
x, y : Integer;
begin
if not LoggedIn then Exit;
S_TurnRunOn;
MakeCompass('n');
if RadialWalk(W_BankFloorColor, 0, 77, 68, -2, 1)then
begin
Wait(80 + Random(100));
Writeln('Inventory full, walking to bank.');
FFlag(2);
end else
begin
if FindSymbol(x, y, 'bank')then
begin
Wait(80 + Random(100));
Mouse(x, y, 4, 4, True);
Writeln('Inventory full, walking to bank.');
FFlag(2);
end else
begin
Writeln('Couldn''t walk to bank.');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
end;
procedure Cut_FindHatchet;
var
b : Boolean;
i, x, y : Integer;
begin
if Players[CurrentPlayer].Booleans[0] = True then
GameTab(5)
else
GameTab(4);
for i:= 0 to 6 do
begin
b := FindDTM(HatchetDTM[i], x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(HatchetDTM[i]);
if b then Break;
end;
if b then Writeln('Found hatchet.')else
begin
Writeln('Didn''t find hatchet, logging out.');
Wait(80 + Random(100));
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
procedure Cut_WhileChopping;
var
ClickTree, NCTime, LastCount : Integer;
begin
MarkTime(ClickTree);
NCTime := 15000 + Random(10000);
LastCount := InvCount;
while(InvCount < 28)and LoggedIn do
begin
if TimeFromMark(ClickTree) > NCTime then
if InvCount = LastCount then Break;
S_MyAntiBan;
Wait(80 + Random(5000));
if S_LevelUp then Continue;
S_FindRandoms;
end;
end;
function Cut_TreeCutDown: Boolean;
var
TrCols : TPointArray;
begin
FindColorsTolerance(TrCols, 5667697, TP.x - 20, TP.y - 20, TP.x + 20, TP.y + 20, 18);
if(Length(TrCols) < 10)then
begin
//Writeln('Tree has been cut down.');
Result := True;
end;
end;
procedure Cut_ChopTrees;
var
fx, fy, k, x, y : Integer;
s : String;
TPA : TPointArray;
T2D : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
repeat
FindColorsSpiralTolerance(fx, fy, TPA, 5667697, MSX1, MSY1, MSX2, MSY2, 18);
T2D := SplitTPAEx(TPA, 5, 5);
//DebugATPA(T2D, '');
if Length(T2D) = 0 then Exit;
SortATPAFromFirstPoint(T2D, Point(MSCX, MSCY));
for k := 0 to High(T2D) do
begin
//Writeln('Length:' + IntToStr(Length(T2D[k])));
if(Length(T2D[k]) < 50)then Continue;
MiddleTPAEx(T2D[k], fx, fy);
Wait(30 + Random(20));
MMouse(fx, fy, 4, 4);
s := RS_GetUpText;
if((Pos('hop', s) > 0) and (Pos('illow', s) > 0))then
begin
GetMousePos(x, y);
Wait(80 + Random(100));
Mouse(x, y, 4, 4, True);
TP := IntToPoint(x, y);
repeat
Cut_WhileChopping;
until(Cut_TreeCutDown or InvFull);
end;
end;
until(InvFull or not LoggedIn);
ColorToleranceSpeed(1);
end;
procedure B_BankItems;
var
DepositAllTab : Integer;
begin
if OpenBank('db', True, True)then
begin
if Players[CurrentPlayer].Booleans[0] = True then
begin
DepositAll;
CloseBank;
NumOfLogs := NumOfLogs + 28;
end else
begin
Deposit(2, 28, True);
CloseBank;
NumOfLogs := NumOfLogs + 27;
end;
if(NumOfLogs >= Players[CurrentPlayer].Integers[0])then
begin
Writeln('Cut desired number of logs, logging out.');
Wait(80 + Random(100));
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end else
begin
Wait(80 + Random(100));
Writeln('Couldn''t find bank booth, logging out.');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
{************************************************* ******************************
function Prg_PlayerActivity(i: integer): string;
By: Drags111
Description: Determines whether the player is active or not.
************************************************** *****************************}
function F_PlayerActive(i : Integer): String;
begin
if Players[i].Active then Result := 'T' else Result := 'F';
end;
procedure F_ProgReport;
var
i : Integer;
begin
Players[i].Integers[9] := NumOfLogs / 28;
Players[i].Integers[10] := NumOfLogs;
Inc(TotalProggies);
Writeln(' _______________________________________________');
Writeln(PadR('| Coh3n''s Power Chopper', 48) + '|');
Writeln('|_________________First Script__________________|');
Writeln('| |');
Writeln(PadR('| Time run: ' + TimeRunning, 48) + '|');
Writeln(PadR('| Loads: ' + IntToStr(NumOfLogs / 28), 48) + '|');
Writeln(PadR('| Logs: ' + IntToStr(NumOfLogs), 48) + '|');
Writeln(PadR('| Exp Gained: ' + FloatToStr(NumOfLogs * 67.5), 48) + '|');
Writeln('|________________________________________ _______|');
Writeln('|________________Player''s Stats_________________|');
Writeln('| Nick T/F Loads Logs |');
Writeln('| ¯¯¯¯ ¯¯¯ ¯¯¯¯¯ ¯¯¯¯ |');
for i := 0 to High(Players)do
Writeln('| ' + PadR(Players[i].Nick, 10) + PadR(F_PlayerActive(i), 9)
+ PadR(IntToStr(Players[i].Integers[9]), 11)
+ PadR(IntToStr(Players[i].Integers[10]), 11) + '|');
Writeln('|________________________________________ _______|');
end;
procedure F_Setup;
begin
ClearDebug;
SMARTSetupEx(152, False, True, False);
Wait(5000);
SetTargetDC(SmartGetDC);
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
SetAngle(True);
S_HatchetDTMs;
end;
begin
F_Setup;
repeat
repeat
Cut_FindHatchet;
begin
W_WalkToWillows;
Cut_ChopTrees;
W_WalkToBank;
B_BankItems;
F_ProgReport;
end;
until(NumOfLogs >= Players[CurrentPlayer].Integers[0])or(not LoggedIn);
NextPlayer(LoggedIn);
until AllPlayersInactive;
end.
Thanks! :D
Hey guys,
Just wondering what you think I should add/improve on this script before I apply for members. I would also like to hear what you think the chances of me getting into members is. OR maybe whether you would vote yes/no and why. Thanks. :)
Don't be afraid to criticize, just don't be TOO mean. :p
Draynor Chop N' Bank | By Coh3n
Some Features:
Cuts/banks Willows in Draynor.
AntiBan.
AntiRandoms.
Multiplayer.
Progress Report.
TPA/ATPA
DTMs.
Setup:
Have axe wielded.
Start anywhere in Draynor Bank.
program DraynorChopNBank;
{.Include SRL\SRL\Misc\SMART.SCAR}
{.include SRL\SRL.scar}
//{.include SRL\SRL\Misc\Debug.scar}
var
HatchetDTM : Array of Integer;
NumOfLogs, TotalProggies : Integer;
XpGain : TExtendedArray;
TP : TPoint;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'Username';
Players[0].Pass := 'Password';
Players[0].Nick := 'Nickname';
Players[0].Active := True;//Use this player?
Players[0].Pin := '';//Bank pin. Leave blank if you don't have one.
Players[0].Integers[0] := 000;//How many logs to cut?
Players[0].Booleans[0] := True;//Is hatchet equiped?
Players[0].BoxRewards := ['Xp', 'mote', 'ostume'];
{Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].Integers[0] := 000;
Players[0].Booleans[0] := True;
Players[0].BoxRewards := ['Xp', 'mote', 'ostume'];}
end;
procedure S_TurnRunOn;
var
s : String;
begin
if GetMMLevels('energy', s) > 60 then
begin
SetRun(True);
Exit;
end;
end;
procedure S_FindRandoms;
begin
if FindFight then
RunAway('N', True, 1, 5000);
LampSkill := 'woodcutting';
FindNormalRandoms;
end;
function S_LevelUp: Boolean;
var
x, y : Integer;
begin
if FindNPCChatText('ongrat', Nothing)then
begin
ClickContinue(True, True);
Wait(80 + Random(100));
GetSkillLevel('woodcutting');
Mouse(x, y, 4, 4, True);
Wait(80 + Random(100));
CloseWindow;
Writeln('Congratulations, you have gained a Woodcutting level!');
Result := True;
end;
end;
procedure S_MyAntiBan;
begin
case Random(70) of
0: RandomMovement;
1: BoredHuman;
2: HoverSkill('random', false);
3: RandomRClick;
4: begin
case Random(2) of
0: begin
KeyDown(VK_RIGHT);
Wait(50 + Random(1300));
KeyUp(VK_RIGHT);
Wait(60 + Random(2000));
KeyDown(VK_LEFT);
Wait(70 + Random(1100));
KeyUp(VK_LEFT);
end;
1: begin
KeyDown(VK_LEFT);
Wait(50 + Random(1300));
KeyUp(VK_LEFT);
Wait(60 + Random(2000));
KeyDown(VK_RIGHT);
Wait(70 + Random(1100));
KeyUp(VK_RIGHT);
end;
end;
end;
5: begin
KeyDown(VK_LEFT);
Wait(100 + Random(1200));
KeyUp(VK_LEFT);
end;
6: begin
KeyDown(VK_RIGHT);
Wait(150 + Random(1100));
KeyUp(VK_RIGHT);
end;
end;
end;
procedure S_HatchetDTMs;
begin
SetArrayLength(HatchetDTM, 7);//[0]:= Bronze, [6]:= Rune
HatchetDTM[0] := DTMFromString('78DA630C646260D8C4C8800C7CAC9519F88 13' +
'44C94D113A86617AA1A982C5C8D1B50CD36026ABC816AD612 5013' +
'0C54B38E809A504C3763A80921EC1E00949107EF');
HatchetDTM[1] := DTMFromString('78DA630C626260D8C4C8800C02BDBD19F88 13' +
'448F43F1030BA03D5EC47550391859140DA0DA8662B01355E 4035' +
'6B09A80906AA5947404D2850CD06026A42806AB6E15703003 3F30' +
'C28');
HatchetDTM[2] := DTMFromString('78DA630C626260D8C8C8800CCAF3F318F88 13' +
'448F43F10307A02D5EC40550391859140DA0DA8660B01355E 4035' +
'6B09A80904AA5947404D28A69BB1AAD98A5F0D0090050C8D' );
HatchetDTM[3] := DTMFromString('78DA63F4676260D8C0C8800C44454418F88 13' +
'448F43F1030BA03D5EC43550391859140DA05A8661701351E 4035' +
'EB09A80900AA5947404D28A69BB1AAD98A5F0D0095870B78' );
HatchetDTM[4] := DTMFromString('78DA630C646260D8C8C8800C1C1CE319F88 13' +
'44C94D10DA8E600AA1A982C5C8D2B50CD0E026A3C806A3610 5013' +
'0054B38E809A504C3763A80901AAD9865F0D00C5940824');
HatchetDTM[5] := DTMFromString('78DA63EC64626038C0C8800C9C829D18F88 13' +
'44C94B101A8E614AA1A982C8A9A7D04D4F402D5EC2742CD21 026A' +
'6A816AAEE05703006FA208C7');
HatchetDTM[6] := DTMFromString('78DA638C676060E8614001AE31690CFC409 A1' +
'188FF0301633090B180010D302291403A1048CC22A0260448 F413' +
'501309243A08A84902129D04D42403895EFC6A00F1EB0B8F' );
end;
procedure W_WalkToWillows;
var
x, y : Integer;
begin
if not LoggedIn then Exit;
S_TurnRunOn;
if RadialWalk(FindWaterColor, 180, 220, 60, -2, 1)then
begin
Wait(80 + Random(100));
Writeln('Walking to Willows.');
FFlag(2);
end else
begin
if FindSymbol(x, y, 'fish')then
begin
Wait(80 + Random(100));
Writeln('Walking to Willows.');
Mouse(x, y - 20 - Random(15), 4, 4, True);
FFlag(2);
end else
begin
Writeln('Couldn''t walk to Willows.');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
end;
function W_BankFloorColor: Integer;
var
BankFloor, x, y : Integer;
begin
BankFloor := DTMFromString('78DA63AC606260D066400179E969609A11C A6' +
'7AC05AA514555F3E70F13A61A3D22D418E1570300B1E409D9 ');
if DTMRotated(BankFloor, x, y, MMX1, MMY1, MMX2, MMY2)then
begin
Result := GetColor(x + 15, y);
Writeln('Bank floor color = ' + IntToStr(Result));
end else
Writeln('Didn''t find bank color.');
end;
procedure W_WalkToBank;
var
x, y : Integer;
begin
if not LoggedIn then Exit;
S_TurnRunOn;
MakeCompass('n');
if RadialWalk(W_BankFloorColor, 0, 77, 68, -2, 1)then
begin
Wait(80 + Random(100));
Writeln('Inventory full, walking to bank.');
FFlag(2);
end else
begin
if FindSymbol(x, y, 'bank')then
begin
Wait(80 + Random(100));
Mouse(x, y, 4, 4, True);
Writeln('Inventory full, walking to bank.');
FFlag(2);
end else
begin
Writeln('Couldn''t walk to bank.');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
end;
procedure Cut_FindHatchet;
var
b : Boolean;
i, x, y : Integer;
begin
if Players[CurrentPlayer].Booleans[0] = True then
GameTab(5)
else
GameTab(4);
for i:= 0 to 6 do
begin
b := FindDTM(HatchetDTM[i], x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(HatchetDTM[i]);
if b then Break;
end;
if b then Writeln('Found hatchet.')else
begin
Writeln('Didn''t find hatchet, logging out.');
Wait(80 + Random(100));
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
procedure Cut_WhileChopping;
var
ClickTree, NCTime, LastCount : Integer;
begin
MarkTime(ClickTree);
NCTime := 15000 + Random(10000);
LastCount := InvCount;
while(InvCount < 28)and LoggedIn do
begin
if TimeFromMark(ClickTree) > NCTime then
if InvCount = LastCount then Break;
S_MyAntiBan;
Wait(80 + Random(5000));
if S_LevelUp then Continue;
S_FindRandoms;
end;
end;
function Cut_TreeCutDown: Boolean;
var
TrCols : TPointArray;
begin
FindColorsTolerance(TrCols, 5667697, TP.x - 20, TP.y - 20, TP.x + 20, TP.y + 20, 18);
if(Length(TrCols) < 10)then
begin
//Writeln('Tree has been cut down.');
Result := True;
end;
end;
procedure Cut_ChopTrees;
var
fx, fy, k, x, y : Integer;
s : String;
TPA : TPointArray;
T2D : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
repeat
FindColorsSpiralTolerance(fx, fy, TPA, 5667697, MSX1, MSY1, MSX2, MSY2, 18);
T2D := SplitTPAEx(TPA, 5, 5);
//DebugATPA(T2D, '');
if Length(T2D) = 0 then Exit;
SortATPAFromFirstPoint(T2D, Point(MSCX, MSCY));
for k := 0 to High(T2D) do
begin
//Writeln('Length:' + IntToStr(Length(T2D[k])));
if(Length(T2D[k]) < 50)then Continue;
MiddleTPAEx(T2D[k], fx, fy);
Wait(30 + Random(20));
MMouse(fx, fy, 4, 4);
s := RS_GetUpText;
if((Pos('hop', s) > 0) and (Pos('illow', s) > 0))then
begin
GetMousePos(x, y);
Wait(80 + Random(100));
Mouse(x, y, 4, 4, True);
TP := IntToPoint(x, y);
repeat
Cut_WhileChopping;
until(Cut_TreeCutDown or InvFull);
end;
end;
until(InvFull or not LoggedIn);
ColorToleranceSpeed(1);
end;
procedure B_BankItems;
var
DepositAllTab : Integer;
begin
if OpenBank('db', True, True)then
begin
if Players[CurrentPlayer].Booleans[0] = True then
begin
DepositAll;
CloseBank;
NumOfLogs := NumOfLogs + 28;
end else
begin
Deposit(2, 28, True);
CloseBank;
NumOfLogs := NumOfLogs + 27;
end;
if(NumOfLogs >= Players[CurrentPlayer].Integers[0])then
begin
Writeln('Cut desired number of logs, logging out.');
Wait(80 + Random(100));
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end else
begin
Wait(80 + Random(100));
Writeln('Couldn''t find bank booth, logging out.');
Logout;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
{************************************************* ******************************
function Prg_PlayerActivity(i: integer): string;
By: Drags111
Description: Determines whether the player is active or not.
************************************************** *****************************}
function F_PlayerActive(i : Integer): String;
begin
if Players[i].Active then Result := 'T' else Result := 'F';
end;
procedure F_ProgReport;
var
i : Integer;
begin
Players[i].Integers[9] := NumOfLogs / 28;
Players[i].Integers[10] := NumOfLogs;
Inc(TotalProggies);
Writeln(' _______________________________________________');
Writeln(PadR('| Coh3n''s Power Chopper', 48) + '|');
Writeln('|_________________First Script__________________|');
Writeln('| |');
Writeln(PadR('| Time run: ' + TimeRunning, 48) + '|');
Writeln(PadR('| Loads: ' + IntToStr(NumOfLogs / 28), 48) + '|');
Writeln(PadR('| Logs: ' + IntToStr(NumOfLogs), 48) + '|');
Writeln(PadR('| Exp Gained: ' + FloatToStr(NumOfLogs * 67.5), 48) + '|');
Writeln('|________________________________________ _______|');
Writeln('|________________Player''s Stats_________________|');
Writeln('| Nick T/F Loads Logs |');
Writeln('| ¯¯¯¯ ¯¯¯ ¯¯¯¯¯ ¯¯¯¯ |');
for i := 0 to High(Players)do
Writeln('| ' + PadR(Players[i].Nick, 10) + PadR(F_PlayerActive(i), 9)
+ PadR(IntToStr(Players[i].Integers[9]), 11)
+ PadR(IntToStr(Players[i].Integers[10]), 11) + '|');
Writeln('|________________________________________ _______|');
end;
procedure F_Setup;
begin
ClearDebug;
SMARTSetupEx(152, False, True, False);
Wait(5000);
SetTargetDC(SmartGetDC);
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
SetAngle(True);
S_HatchetDTMs;
end;
begin
F_Setup;
repeat
repeat
Cut_FindHatchet;
begin
W_WalkToWillows;
Cut_ChopTrees;
W_WalkToBank;
B_BankItems;
F_ProgReport;
end;
until(NumOfLogs >= Players[CurrentPlayer].Integers[0])or(not LoggedIn);
NextPlayer(LoggedIn);
until AllPlayersInactive;
end.
Thanks! :D