SRL Archive - Archive

Pancakes - SRL Member Application Form


Pancakes

2007-07-02 01:01:14

<!– BEGIN TEMPLATE: formanswers –>
Pancakes - SRL Member Application Form
Pancakes

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
Visual Basic 6, ActionScript

Other Communitys
http://www.vbforums.net, http://www.kirupa.com

How Long have You Played Runescape
3 years on and off.

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

Please write down a paragraph about Yourself.

Because I come from a family background of computers (My dad is a computer programmer for Telsta, an Australian Company) I have been around and using computers since a young age. I first got into programming at around age 12, just some simple actionscript (which is used with Macromedia, now Adobe Flash). At 14 I bought a book on 'Learn Visual Basic in 21 Days' and studied that. I became very skilled at visual basic, but eventually my interest dropped because I had no real uses for my knowledge. A week and a half ago I discovered this site, and it re-ignited my love for programming. I studied SRL and Scar, asked a few questions around the place, and now I am able to write a fully-fledged script.

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted

Pancakes Monk Annihilator
Features:
AntiRandoms
Antiban
Multiplayer
Proper Scripting Standards
Monk Healing
Detect whether a monk is already in Combat.
Proper Credits
Instructions for usage.


{=========================================================================]
[ Monk Annihilation ]
[ ]
[ NAME : Monk Annihilation ]
[ WRITER : Pancakes ]
[ CATEGORY : Autofighter ]
[ DESCRIPTION : Kills monks, gets them to heal you. Also buries ]
[ : bones. ]
[ USAGE : For training lvl 10+ characters. ]
[ AUTOCOLOR : Yes ]
[ NOTES : - ]
[ CONTACT : [email]firenze_69@hotmail.com[/email] ]
[ CREDITS : JAD - Covered symbol finding ]
[ : SANTACLAUSE - Just helped :) ]
[ : WT-Fakawi - Setting Retaliation ]
[ ]
[ ]
[=========================================================================]
[ THIS MONK ANNIHILATOR WILL SEARCH FOR MONKS, THEN DESTROY ]
[ ANY THAT IT FINDS. NONE WILL STAND IN ITS WAY! ]
[=========================================================================]
[ 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. ]
[ 5. Set skill to either 'attack', 'strength', or 'defence'. ]
[ 6. Start script Logged Out! ]
[=========================================================================}

program SRLTemplate;

{.include SRL/SRL.scar}
{.include SRL\SRL\skill\Fighting.scar}

//******************** Set These Constants if Needed *******************//

const StartPlayer = 0; // Determines who will play first
const Loads = 3; // Number of loads before switching Player.
const MonkTolerance = 3; // Default should be fine.
const FightTimeout = 50000; // Milliseconds until
const RunDirection = 'N'; //You should leave it at north.
const TimeLoggedIn = 10; //Time before nextplayer (minutes)
const DangerHealthPercent = 50; //Health to heal at (percent).
const MonkColor = 3169157;//Monk Color

//**********************RuneScape Variables*******************************//
var
HealAttempts, MainMark : Integer;
frmDesign : TForm;
lblStatus : TLabel;
label lblStartMain;
//************************************************************************//
const VersionNumber = 'Version 1'; // Compliant with Rev 568+
//************************************************************************//
procedure DeclarePlayers;
begin
HowManyPlayers :=2; // Set Number of Players here.
NumberOfPlayers(HowManyPlayers); // Sets the Players Array Length;
CurrentPlayer:=StartPlayer; // CurrentPlayer = Array Index

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='yann';
Players[0].Loc :='Monastery';
Players[0].Skill:='Strength';
Players[0].Active:=True;

Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='yann';
Players[1].Loc :='Monastery';
Players[1].Skill:='Strength';
Players[1].Active:=True;

writeln(inttostr(HowManyPlayers)+' Players');
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);

end;

//************************************************************************//
procedure InitForm;
begin
frmDesign := CreateForm;
frmDesign.Left := 250;
frmDesign.Top := 114;
frmDesign.BorderStyle := bsToolWindow;
frmDesign.Caption := ' :: MONK ANNIHILATOR ::';
frmDesign.ClientHeight := 86;
frmDesign.ClientWidth := 361;
frmDesign.Color := cl3DDkShadow;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.FormStyle := fsStayOnTop;
frmDesign.Visible := True;
frmDesign.PixelsPerInch := 96;
lblStatus := TLabel.Create(frmDesign);
lblStatus.Parent := frmDesign;
lblStatus.Left := 2;
lblStatus.Top := 22;
lblStatus.Width := 358;
lblStatus.Height := 49;
lblStatus.Alignment := taCenter;
lblStatus.AutoSize := False;
lblStatus.Caption := 'Starting Script.';
lblStatus.Color := clMaroon;
lblStatus.Font.Color := clSilver;
lblStatus.Font.Height := -32;
lblStatus.Font.Name := 'Arial Black';
lblStatus.Font.Style := [fsBold];
lblStatus.ParentColor := False;
lblStatus.ParentFont := False;
lblStatus.Transparent := True;
lblStatus.Layout := tlCenter;
end;

procedure SafeInitForm;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('InitForm', v);
end;

procedure ShowForm;
begin
frmDesign.Show;
end;

procedure SafeShowForm;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowForm', v);
end;

procedure SetStatus(Text : String);
begin
lblStatus.Caption := Text;
end;
//************************************************************************//
procedure NotLoggedIn;
begin
// We logged out for some reason. Deactivate the player and log in the
// next one.
if (Not(LoggedIn)) then NextPlayer(False);
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 NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
NotLoggedIn;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
NotLoggedIn;
end;
end;
8: RC;
end;
wait(1);
end;
end;

//************************************************************************//
procedure FindRandoms;
begin
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
FindNormalRandoms;
FindFastRandoms;
end;

{********************************************************
function JadSymbol(WhatSymbol: String; Click, Switch: Boolean): Boolean;
By: JAD
Description: My symbol finding. Repeats waiting and
looking for symbol until found or took too long. Clicks
the symbol if told to. Will switch players if it doesn't
find the symbol if told to.
********************************************************}

function JadSymbol(WhatSymbol: String; Click, Switch: Boolean): Boolean;
var I: Integer;
begin
for I := 1 to 25 do
begin
if(FindSymbol(x,y,(WhatSymbol)))then
begin
if(Click)then
Mouse(x,y,150,150,true); //It is 150 so we move around a bit more... not always in the courtyard :P
Result := True;
Exit;
end;
wait(750+random(500));
end;
Writeln('Could NOT find symbol.');
Result := False;
if(Switch)then
LogOut;
end;

//************************************************************************//
procedure BackToCourtYard; //Finds our way back to the monastery courtyard.
begin
JadSymbol('water', True, False);
end;

//************************************************************************//
procedure Antiban;
var Rand, EmoRand : Integer;
begin
NotLoggedIn;
Rand := Random(400);
case Rand of
0: RandomRClick;
1: begin
MakeCompass('W');
Wait(random(500));
MakeCompass('N');
end;
2: AlmostLogout;
3: begin
EmoRand := 1 + Random(18);
SetStatus('Doing Emote [' + IntToStr(EmoRand) + ']');
DoEmote(EmoRand);
end;
4: PickUpMouse;
5: begin
Hoverskill('Mining', False);
Wait(1500 + random(500));
GameTab(4);
end;
6: BoredHuman;
7: begin
Hoverskill('Woodcutting', False);
Wait(1500 + random(500));
GameTab(4);
end;
8: MouseBox(MMX1, MMY1, MMX2, MMY2, 0);
9: SleepAndMoveMouse(20000 + random(10000));
10: NotLoggedIn;
end;
end;

//************************************************************************//
function HealMe : Boolean;
var x, y, Attempts, StartHp : Integer;
var MonkFound : Boolean;
begin
NotLoggedIn;
SetStatus('Getting Healed...');
Antiban;
FindRandoms;
StartHp := GetHp;
if (InFight) then
begin
Writeln('Were in a fight! Run!');
MakeCompass('N');
RunAwayDirection(RunDirection);
Wait(20000 + random(10000));
RunBack;
HealMe;
end;
Attempts := 0;
MonkFound := False
repeat
if (FindObj3(x, y, 'onk', MonkColor, MonkTolerance)) then
begin
MonkFound := True;
Break;
end;
Attempts := Attempts + 1;
until(Attempts >= 5);
if (Attempts >= 5) then
begin
//COULDNT FIND MONK
Writeln('Couldnt find monk');
Result := False;
Exit;
end;
if (MonkFound) then
begin
//FOUND THE MONK
Mouse(x, y, 3, 3, False);
Wait(200 + random(100));
ChooseOptionEx('alk');
Wait(500 + random(500));
ClickToContinue;
FindRandoms;
Wait(500 + random(200));
ClickNpcChatText('heal');
Wait(500 + random(200));
ClickToContinue;
FindRandoms;
Wait(500 + random(200));
ClickToContinue;
Wait(1500 + random(500));
if (GetHp > StartHp) then
begin
//HEALED.
HealAttempts := 0;
AntiBan;
FindRandoms;
Exit;
end;
Antiban;
FindRandoms;
if (not(GetHp > StartHp)) then
begin
//He didnt heal us. That bitch! Try again.
AntiBan;
HealAttempts := HealAttempts + 1;
if (HealAttempts >= 3) then
begin
BackToCourtYard;
Wait(200 + random(200));
end;
HealMe;
end;
end;
end;

//************************************************************************//
procedure SearchAndDestroy;
var x, y, Attempts : Integer;
var MonkFound : Boolean;
begin
NotLoggedIn;
Attempts := 0;
MonkFound := False;
Antiban;
FindRandoms;
SetStatus('Finding Monk');
repeat
Wait (20 + random(10));
if (FindObj3(x, y, 'onk', MonkColor, MonkTolerance)) then
begin
if(IsFightAt(x, y)) then
begin
Writeln('Monks already fighting');
Exit;
end;
MonkFound := True;
Break;
end;
Attempts := Attempts + 1;
until (Attempts > 30);
if (MonkFound) then
begin
Mouse(x, y, 3, 3, True);
SetStatus('Attacking Monk');
Exit;
end;
if (not(MonkFound)) then BackToCourtYard;
end;

//************************************************************************//
procedure MonkKilling;
begin
Antiban;
SearchAndDestroy;
Wait (2000);
NotLoggedIn;
if (InFight) then
//We're murdering the monk
repeat
Wait(1000 + random(500));
if (HpPercent < DangerHealthPercent) then
begin
//We're getting owned... RUNAWAY!
SetStatus('Run away!');
MakeCompass('N');
RunAwayDirection(RunDirection);
Wait(20000 + random(10000));
Antiban;
RunBack;
BackToCourtYard;
//GET HEALED!
HealMe;
Exit;
end;
until(not(InFight));
AntiBan;
if (HpPercent < DangerHealthPercent) then
begin
//GET HEALED!
HealMe;
end;
NotLoggedIn;
end;
//************************************************************************//
procedure Retaliate(AutoRet:Boolean);
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 SetPlayerUp;
begin
SetStatus('Setting Player Up');
Wait(1000 + random(500));
MakeCompass('N');
HighestAngle;
//SET FIGHTING STYLE! - Did not come up with this, came from forums.
if Lowercase(Players[CurrentPlayer].Skill) = 'attack' then SetFightMode(1);
if Lowercase(Players[CurrentPlayer].Skill) = 'strength' then SetFightMode(2);
if Lowercase(Players[CurrentPlayer].Skill) = 'defence' then SetFightMode(4);
//SET RETALIATE TO TRUE! - WT-Fakawi
Retaliate(True);
SetChat('hide', 1);
SetChat('friends', 2);
SetChat('off', 3);
end;

//*************************************************************************//
{ MAIN LOOP }
begin
SetupSRL;
SafeInitForm;
SafeShowForm;
DeclarePlayers;
ActivateClient;
LoginPlayer;


lblStartMain:
SetPlayerUp;
SafeShowForm;
MarkTime(MainMark);
repeat
MonkKilling;
Wait(1000 + random(500));
FindRandoms;
Antiban;
until(TimeFromMark(MainMark) >= TimeLoggedIn * 60000);
MarkTime(MainMark);
LogOut;
NextPlayer(True);
goto lblStartMain;
end.

Pancakes Treefeller
* AntiRandoms
* AntiBan
* Cut Down Willow, Oak or Normal Trees
* Failsafes (lots)
* Progress Report
* Advanced Forms
* Realtime Status (i.e 'Chopping', 'Finding Tree')
* Multiplayer
* Lots of other features


program PancakesTreefeller;
{.include SRL\SRL.scar}
{.include SRL\SRL\Skill\Woodcutting.scar}
{¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
SCRIPT SETUP
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤}
//[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 ]
//[ 5. Start script Logged Out!


//Script Setup
const
NormTreeColor = 1730648;
OakTreeColor = 2252880;
WillowTreeColor = 1982520;
TreeTolerance = 3; //Default should work fine, if it doesnt change it.
RunDir = 'N';
TreeName = 'Tree';
TimeOnline = 20; //In minutes.
var
TreeColor, WorkingAxeDTM, LogDTM, BrokenAxeDTM, AxeHandleDTM : Integer;
LogsChopped, StartTime : Integer;
frmDesign : TForm;
FormStatus : TLabel;
MainTimer : TTimer;
EmoteList : array[1..20] of String;

{¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
END SCRIPT SETUP
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤}
{*******************************************************************************
procedure ProgressReport;
By: Pancakes.
Description: Self Explanatory?
*******************************************************************************}
procedure ProgressReport;
begin
ClearDebug;
Writeln('««««««««««««««« PROGRESS REPORT »»»»»»»»»»»»»»»»»');
Writeln('Cut down ' + IntToStr(LogsChopped) + ' logs total.');
Writeln('Recieved ' + FloatToStr(GetTreeExp(TreeName) * LogsChopped) + ' experience total');
Writeln('Worked for: ' + TimeRunning);
end;

{*******************************************************************************
procedure LoadEmotes;
By: Pancakes.
Description: So we know what emote we are doing.
*******************************************************************************}
procedure LoadEmotes;
begin
EmoteList[1]:= 'Yes';
EmoteList[2]:= 'No';
EmoteList[3]:= 'Bow';
EmoteList[4]:= 'Angry';
EmoteList[5]:= 'Think';
EmoteList[6]:= 'Wave';
EmoteList[7]:= 'Shrug';
EmoteList[8]:= 'Cheer';
EmoteList[9]:= 'Beckon';
EmoteList[10]:= 'Laugh';
EmoteList[11]:= 'Jump For Joy';
EmoteList[12]:= 'Yawn';
EmoteList[13]:= 'Dance';
EmoteList[14]:= 'Jig';
EmoteList[15]:= 'Spin';
EmoteList[16]:= 'Headbang';
EmoteList[17]:= 'Cry';
EmoteList[18]:= 'BlowKiss';
EmoteList[19]:= 'Panic';
EmoteList[20]:= 'Raspberry';
end;

procedure MTimer(sender: TObject);
begin
ProgressReport;
end;

{*******************************************************************************
procedure SetCaption(Status : String);
By: Pancakes.
Description: Sets the caption of our little form.
*******************************************************************************}
procedure SetCaption(Status : String);
begin
FormStatus.Caption := Status;
end;

{*******************************************************************************
procedure DeclarePlayers;
Description: Declare the players.. for multiplayer and randoms and such.
*******************************************************************************}
procedure DeclarePlayers;
begin
HowManyPlayers := 3; //Number of players
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 1;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='yann';
Players[0].Active:=True;

Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='yann';
Players[1].Active:=True;

Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='yann';
Players[2].Active:=True;
end;

{*******************************************************************************
procedure InitForm;
Description: Initialises the Form.
*******************************************************************************}
procedure InitForm;
begin
frmDesign := CreateForm;
frmDesign.Left := 650;
frmDesign.Top := 0;
frmDesign.Align := alNone;
frmDesign.BorderStyle := bsSizeToolWin;
frmDesign.Caption := 'Pancakes TreeFeller v1.0';
frmDesign.ClientHeight := 75;
frmDesign.ClientWidth := 371;
frmDesign.Color := clBlack;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.Formstyle := fsStayOnTop;
frmDesign.Visible := False;
frmDesign.PixelsPerInch := 96;
MainTimer := TTimer.Create(frmDesign);
MainTimer.Interval := 10000;
MainTimer.onTimer := @MTimer;
FormStatus := TLabel.Create(frmDesign);
FormStatus.Parent := frmDesign;
FormStatus.Left := 51;
FormStatus.Top := 15;
FormStatus.Width := 262;
FormStatus.Height := 41;
FormStatus.Alignment := taCenter;
FormStatus.Caption := 'Starting Script...';
FormStatus.Enabled := False;
FormStatus.Font.Color := clWindowText;
FormStatus.Font.Height := -29;
FormStatus.Font.Name := 'Arial Black';
FormStatus.Font.Style := [];
FormStatus.ParentFont := False;
FormStatus.Layout := tlCenter;
end;

procedure ShowForm;
begin
frmDesign.Show;
end;

procedure SafeShowForm;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowForm', v);
end;

procedure SafeInitForm;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('InitForm', v);
end;

{*******************************************************************************
function EntThere:Boolean;
By: Yohojo8
Description: Returns true if an ent is there.
*******************************************************************************}
function EntThere:Boolean;
var CX, CY : Integer;
begin
if (IsUpText (TreeName)) then
if FindColorTolerance( CX, CY, 55769, 85, 15, 115, 15, 20) then
Result:=True;
end;

procedure WaitForEnt;
begin
MouseFindFlag(648,83,5,5);
Wait(15000 + Random(5000));
repeat
Wait(5000 + Random(1000));
until(Not(EntThere));
end;

{*******************************************************************************
procedure LoadDTMS;
Description: Loads the DTMS for the scipt. Must be called before any DTM
finding is done.
*******************************************************************************}
procedure LoadDTMS;
begin
Writeln('Setting DTMS');
WorkingAxeDTM := DTMFromString('78DA6314656060E06240013A46EE0CFF81342' +
'310FF07024659208383010D302291405A0E48F012502340843920' +
'330409A801B9571ABF1A007E06067C');
LogDTM := DTMFromString('78DA632C666260E0646440067921460CFF813' +
'448F43F103066314179C880118904D2354035FF19F0AB2905AA11' +
'22604E23500D0F0135C94035DCF8D50000507909F5');
BrokenAxeDTM := DTMFromString('78DA633CCAC4C090C1C8800C9A127919FE036' +
'990E87F2060BC0C54938CAA06220B2381F445A09A04026A8E01D5' +
'C41050B31FA8A698809AB384CD0100CBBD0D20');
AxeHandleDTM := DTMFromString('78DA637CCFC4C0E0C6C8800CCA227819FE036' +
'990E87F2060FC06546389AA06220B2381F473A09A00026ADE00D5' +
'F81350F316A8C685809A97403541F8D50000D0090D3C');
end;

{*******************************************************************************
procedure AntiBan;
By: Pancakes.
Description: Don't ban me! PLEASE! I'm legit, I SWEAR!.
*******************************************************************************}
procedure AntiRandoms; forward;
procedure SkillRandoms; forward;
procedure AntiBan;
var BanRand, RandEmote : Integer;
begin
AntiRandoms;
SkillRandoms;

BanRand := Random(200);
case BanRand of
0: AntiRandoms;
1: SkillRandoms;
2: BoredHuman;
3: begin
RandEmote := 1 + Random(19);
SetCaption('Emote: [' + EmoteList[RandEmote] + ']');
DoEmote(RandEmote);
end;
4: BoredHuman;
5: PickUpMouse;
6: HighestAngle;
7: GameTab(1 + Random(7));
8: HoverSkill('woodcutting', False);
9: HoverSkill('firemaking', False);
10: HoverSkill('mining', False);
11: PickUpMouse;
12: TypeSend('Woodcutting levels?');
13: RandomRClick;
14: SayCurrentLevels('woodcutting');
15: begin
SetCaption('AlmostLogout');
AlmostLogout;
end;
16: RandomRClick;
17: SkillRandoms;
18: AntiRandoms;
end;
end;

{*******************************************************************************
procedure AntiRandoms;
By: Pancakes.
Description: This procedure checks for Randoms and solves them.
*******************************************************************************}
procedure AntiRandoms;
begin
FindTalk;
FindNormalRandoms;
ClickToContinue;
if (FindFight) then
begin
RunAwayDirection(RunDir);
Wait(10000 + random(2000));
RunBack;
end;
end;

{*******************************************************************************
procedure SkillRandoms;
By: Pancakes.
Description: Performs random checking for skills
*******************************************************************************}
procedure SkillRandoms;
begin
Wait(100 + random(50));
if (EntThere) then WaitForEnt;
Wait(100 + random(50));
FindHead;
end;

{*******************************************************************************
procedure BrokenAxe;
Description: Checks for a broken axe.
*******************************************************************************}
procedure BrokenAxe;
begin
Writeln('Checking for broken axe');
if (FindDTM(BrokenAxeDTM, x, y, MIX1, MIY1, MIX2, MIY2)) and (Not(FindDTM(WorkingAxeDTM, x, y, MIX1, MIY1, MIX2, MIY2))) then
begin
Writeln('We broke an axe, next player.');
SetCaption('Next Player');
Wait(100 + random(50));
Logout;
SetCaption('Working...');
Wait(200 + random(200));
NextPlayer(False);
end;
end;

{*******************************************************************************
procedure SetTreeColor;
Description: Set Tree Color.
*******************************************************************************}
procedure SetTreeColor;
begin
Writeln('Setting Tree Color');
case Treename of
'Tree' : TreeColor := NormTreeColor;
'Oak' : TreeColor := OakTreeColor;
'Willow' : TreeColor := WillowTreeColor;
end;
end;

{*******************************************************************************
procedure Signature;
Description: Mmmnnn Pancakes.
*******************************************************************************}
procedure Signature;
begin
ClearDebug;
Writeln('_________ SCRIPT BY: __ ');
Wait(200);
Writeln('\______ \_____ ____ ____ _____ | | __ ____ ______ ');
Wait(200);
Writeln(' | ___/\__ \ / \_/ ___\\__ \ | |/ // __ \ / ___/ ');
Wait(200);
Writeln(' | | / __ \| | \ \___ / __ \| <\ ___/ \___ \ ');
Wait(200);
Writeln(' |____| (____ /___| /\___ >____ /__|_ \\___ >____ > ');
Wait(200);
Writeln(' \/ \/ \/ \/ \/ \/ \/ ');
Wait(200);
Wait(2000);
end;

{*******************************************************************************
function ChooseOptionFast;
By: Pancakes.
Description: Chooses option faster.
*******************************************************************************}
function ChooseOptionFast(x, y, Over: Integer; txt: string): Boolean;
var
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;
Mouse(x + Length(txt) * 3 + (Over), y + 3, 2, 2, True);
end
else if (FindText(x, y, 'Cancel', upchars, x1, y1, x2, 502)) then
Mouse(x + 9, y + 3, 2, 2, True);
end;
FreeBitmap(LeftCorner);
FreeBitmap(RightCorner);
end;

{*********************************************************************
procedure DropToFast(StartSlot, EndSlot: Integer);
By: JAD
Description: Drops Fast. FAST!
*********************************************************************}
procedure DropToFast(StartSlot, EndSlot: Integer);
var FastSlot: array[1..28] of Integer;
DropSlot: array[1..28] of TPoint;
I, Q, T: Integer;
begin
T := 1;
for I := 1 to 28 do
begin
FastSlot[i] := T + Q;
Q := Q + 4;
if(Q > 24)then
begin
T := T + 1;
Q := 0;
end;
end;
GameTab(4);
Q := 0;
for I := StartSlot to EndSlot do
begin
if(ExistsItem(FastSlot[i]))then
begin
DropSlot[i] := ItemCoords(FastSlot[i]);
Mouse(DropSlot[i].x,DropSlot[i].y,3,3,false);
if(I > 7)then
ChooseOptionFast(x,y,30,'Drop') else
ChooseOptionFast(x,y,4,'Drop');
LogsChopped := LogsChopped + 1;
end;
end;
end;

{*******************************************************************************
procedure ChoppingProcedure;
By: Pancakes.
Description: Chops the logs until invetory is full.
*******************************************************************************}

procedure ChoppingProcedure;
var
FindTries, x, y : Integer;
begin
AntiRandoms;
SkillRandoms;
repeat
SetCaption('Finding A Tree');
FindTries := 0
repeat
FindTries := FindTries + 1;
Wait(1000 + random(500));
until(FindObj3(x, y, TreeName, TreeColor, TreeTolerance)) or (FindTries > 10);
if (FindTries > 10) then
begin
Writeln('Couldnt find tree, next player');
SetCaption('Next Player');
Logout;
SetCaption('Working...');
Wait(200 + random(100));
NextPlayer(False);
end;
SetCaption('Chopping...');
Mouse(x, y, 1, 1, True);
Wait(100);
SkillRandoms;
AntiRandoms;
AntiBan;
Wait(4000 + random(250));
until(InvFull) or (Not(LoggedIn));
end;

{*******************************************************************************
procedure SetupForm;
By: Pancakes.
Description: Sets up our status form. =D
*******************************************************************************}
procedure SetupForm;
begin
SafeInitForm;
SafeShowForm;
end;

{*******************************************************************************
procedure DestroyForm;
By: Pancakes.
Description: Destroys up our status form. =D
******************************************************************************}
procedure DestroyForm;
begin
FreeForm(frmDesign);
end;

{*******************************************************************************
procedure DropAllLogs;
By: Pancakes.
Description: If invetory is full then drop some logs, else go back to chopping.
*******************************************************************************}
procedure DropAllLogs;
begin
if (InvFull) then
begin
SkillRandoms;
AntiRandoms;
SetCaption('Dropping Logs');
DropToFast(2, 28); //Drops all of our logs.
AntiBan;
if (TimeFromMark(StartTime) >= TimeOnline * 60 * 20) then
begin
SetCaption('Next Player');
LogOut;
SetCaption('Working...');
NextPlayer(True);
end;
end else
begin
ChoppingProcedure;
end;
end;

{*******************************************************************************
procedure SetupChats;
By: Pancakes.
Description: Turns Public to Hide, Private To Off and Trade To Off.
*******************************************************************************}
procedure SetupChats;
begin
Wait(50 + random(30));
ChatsOff;
Wait(50 + random(30));
SetChat('hide', 1);
end;

{*******************************************************************************
procedure CanIAuto;
By: Pancakes.
Description: Checks for broken axe / axe handle.
*******************************************************************************}
procedure CanIAuto;
begin
if (FindDTM(BrokenAxeDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
SetCaption('Broken Axe!');
Wait(100);
Logout;
Wait(100 + Random(100));
SetCaption('Next Player');
Wait(100);
NextPlayer(False);
end;
if (FindDTM(AxeHandleDTM, x, y, MIX1, MIY1, MIX2, MIY2)) and (Not(FindDTM(WorkingAxeDTM, x, y, MIX1, MIX2, MIY1, MIY2))) then
begin
SetCaption('No Axe Head!');
Wait(100);
Logout;
Wait(100 + Random(100));
SetCaption('Next Player');
Wait(100);
NextPlayer(False);
end;
end;



procedure SetPlayerUp;
begin
SetupChats;
Wait(100 + Random(50));
LoadDTMS;
Wait(100 + Random(50));
FindAxeHeadColor;
Wait(100 + Random(50));
SetTreeColor;
Wait(20 + Random(50));
HighestAngle;
Wait(20 + Random(50));
MakeCompass('N');
end;


begin
SetupSRL;
SetupForm;
Signature;
MarkTime(StartTime);
Wait(100 + Random(50));
SetCaption('Activate Client');
ActivateClient;
Wait(100 + Random(50));
DeclarePlayers;
Wait(100 + Random(50));
SetCaption('Logging In');
LoginPlayer;
Wait(300 + random(200));
SafeShowForm;
Wait(200);
SetCaption('Setting Up');
SetPlayerUp;
SetCaption('Working...');

repeat
ChoppingProcedure;
AntiBan;
DropAllLogs;
until(false);
end.

If you are unhappy with my work and vote no, please tell me why.;)

Thanks.

Pancakes.

——————————————————
<!– END TEMPLATE: formanswers –>

YoHoJo

2007-07-02 01:09:18

HEY HEY HEY!
Only one appliance per month.
Sorry but i HAVE to close this.
You my apply on 7-29-07
edited your passwords out of there.