Pancakes
2007-06-29 10:24:30
<!– 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.
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 (See Attachment).
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Pancakes TreeFeller (Power Cutter) - Complete Working Script.
Features:
Pancakes Powerminer - Incomplete (First Script Ever!)
Pancakes Varrock East Firemaker - Incomplete (Second Script Ever)
Thanks. I hope I've gotten in. :spot:
Pancakes.
P.S For some reason the Attach Files link isn't working.
——————————————————
<!– END 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.
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 (See Attachment).
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Pancakes TreeFeller (Power Cutter) - Complete Working Script.
Features:
- 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 :='rayann01';
Players[0].Pass :='gh12adkl';
Players[0].Nick :='yann';
Players[0].Active:=True;
Players[1].Name :='rayann02';
Players[1].Pass :='gh12adkl';
Players[1].Nick :='yann';
Players[1].Active:=True;
Players[2].Name :='rayann03';
Players[2].Pass :='gh12adkl';
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; //Courtesy FourScape for the DTMS
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.Pancakes Powerminer - Incomplete (First Script Ever!)
program PancakesPowerMiner;
{.include SRL\SRL.scar}
{.include SRL\SRL\skill\mining.scar}
type //This type is for the rocks
iRock = record
Color : Integer;
Uptxt : string;
RockLevel : Integer;
Experience : Extended;
end;
const
CopperColor = 3824768; // _
TinColor = 8290185; // |
ClayColor = 4553880; // |
IronColor = 2569045; // |
SilverColor = 12434885; // |
CoalColor = 2834753; // | --------- ROCK COLORS
GoldColor = 1881051; // |
MithrilColor = 7359564; // |
AdamantiteColor = 6322272; // |
RuniteColor = 0; // -
RunningDir = 'N'; //Direction to run in.
OreToMine = 'Copper'; //Which ore to mine.
OreTolerance = 3; //Ore Color Tolerance.
MiningWait = 3; //Time to wait before mining next ore in seconds.
PickEquipped = False;
var
Clay : iRock;
Copper : iRock;
Tin : iRock;
Iron : iRock;
Silver : iRock;
Coal : iRock;
Gold : iRock;
Mithril : iRock;
Adamantite : iRock;
Runite : iRock;
OreDTM : Integer;
{¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤START FUNCTIONS¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤}
procedure CheckLoggedIn;
begin
if (Not(LoggedIn)) then TerminateScript;
end;
procedure FindSomeGas; //This procedure is used for finding gas.
begin
if (FindGas(x,y)) then
begin
//Make the compass north, just so we run the right way.\
MakeCompass('N');
HighestAngle;
RunAwayDirection(RunningDir);
Wait(19000 + random(2000));
RunBack;
end;
end;
procedure FindSomeRandoms; //My Random Finding Procedure.
var i : Integer;
begin
for i := 1 to 7 do
begin
case i of
1: FindTalk;
2: FindNormalRandoms;
3: FindSomeGas;
4: FindPick;
5: FindTalk;
6: FindSomeGas;
7: CheckLoggedIn;
end;
Wait(100 + random(100));
end;
if (FindFight) then
begin
RunAwayDirection(RunningDir);
Wait(10000 + random(10000));
RunBack;
end;
end;
function ChooseOptionFast(x, y, Over: Integer; txt: string): Boolean; //JAD
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 MyAntiBan;
var
GameTabRandom : Integer;
RandomNumber : Integer;
begin
RandomNumber := Random(9);
case RandomNumber of
0: begin
HoverSkill('Mining', False);
Wait(2123 + Random(413));
end;
1: RandomRClick;
2: begin
GameTabRandom := Random(6);
GameTab(GameTabRandom);
end;
3: PickupMouse;
4: AlmostLogOut;
5: SayCurrentLevels('Mining');
6: begin
case Random(8) of
0: TypeSend('Mining levels?');
1: TypeSend('Mining lvls?');
2: TypeSend('Mining levls');
3: TypeSend('Minning levels');
4: TypeSend('Mining lvls');
5: TypeSend('Mining levs?');
6: TypeSend('Miining levels');
7: TypeSend('Mining lvls??');
8: TypeSend('Mining levels??');
end;
end;
7: begin
MakeCompass('N');
Wait(10 + Random(80));
MakeCompass('S');
Wait(10 + Random(80));
MakeCompass('N');
end;
8: begin
LowestAngle;
Wait(10 + Random(80));
HighestAngle;
end;
9: SleepAndMoveMouse(600000 + Random(400000));
end;
end;
function FindFastRandoms: Boolean; //WT-Fakawi
var
i: Integer;
begin
for i:=1 to 9 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;
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Logout;
Exit;
end;
end;
8: if FindTalk then
Result := True;
9: CheckLoggedIn;
end;
wait(1);
end;
end;
{¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤START PROCEDURES¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤}
procedure DropToFast(StartSlot, EndSlot: Integer); //JAD
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');
end;
end;
end;
procedure StartMining;
var x, y : Integer;
var OreColorInt : Integer;
var RandomNumber2 : Integer;
begin
case OreToMine of
'Clay': OreColorInt := Clay.Color;
'Tin': OreColorInt := Tin.Color;
'Copper': OreColorInt := Copper.Color;
'Iron': OreColorInt := Iron.Color;
'Silver': OreColorInt := Silver.Color;
'Coal': OreColorInt := Coal.Color;
'Gold': OreColorInt := Gold.Color;
'Mithril': OreColorInt := Mithril.Color;
'Adamantite': OreColorInt := Adamantite.Color;
'Runite': OreColorInt := Runite.Color;
end;
repeat
RandomNumber2 := Random(6);
CheckLoggedIn;
if(FindObj3(x, y, 'ine', OreColorInt, 3)) then
begin
MMouse(x, y, 0, 0);
FindSomeGas;
Wait(100 + random(150));
Mouse(x, y, 0, 0, True);
FindSomeRandoms;
FindSomeGas;
Wait(MiningWait * 1000 + random(500));
end;
Wait(100 + Random(200));
if (RandomNumber2) = 4 then
MyAntiban;
until(invFull);
end;
procedure DropOre;
begin
if (Not(InvFull)) then
begin
StartMining;
Exit;
end;
Wait(200 + random(200));
if (PickEquipped) then DropToFast(1, 28);
if (Not(PickEquipped)) then DropToFast(2,28);
end;
procedure LoadDTMS;
begin
OreDTM := DTMFromString('78DA635CC8C0C0D0C98002F6E41A30FC07D28' +
'C40FC1F0818970219B50C6880918115AA06CC5B03241A08A8590E' +
'242611503317484C27A0661211E680CC68C6AF06001A2C0EAA');
end;
procedure FreeDTMS;
begin
FreeDTM(OreDTM);
end;
procedure Signature;
begin
Writeln('_________ SCRIPT BY: __ ');
Wait(200);
Writeln('\______ \_____ ____ ____ _____ | | __ ____ ______ ');
Wait(200);
Writeln(' | ___/\__ \ / \_/ ___\\__ \ | |/ // __ \ / ___/ ');
Wait(200);
Writeln(' | | / __ \| | \ \___ / __ \| <\ ___/ \___ \ ');
Wait(200);
Writeln(' |____| (____ /___| /\___ >____ /__|_ \\___ >____ > ');
Wait(200);
Writeln(' \/ \/ \/ \/ \/ \/ \/ ');
Wait(200);
end;
procedure SetRockValues;
//This procedure sets information about the rock types.
begin
Clay.Color := ClayColor;
Clay.Uptxt := 'lay';
Clay.RockLevel := 1;
Clay.Experience := 5;
Copper.Color := CopperColor;
Copper.Uptxt := 'oppe';
Copper.RockLevel := 1;
Copper.Experience := 17.5;
Tin.Color := TinColor;
Tin.Uptxt := 'in';
Tin.RockLevel := 1;
Tin.Experience := 17.5;
Iron.Color := IronColor;
Iron.Uptxt := 'ron';
Iron.RockLevel := 15;
Iron.Experience := 35;
Silver.Color := SilverColor;
Silver.Uptxt := 'ilve';
Silver.RockLevel := 20;
Silver.Experience := 40;
Coal.Color := CoalColor;
Coal.Uptxt := 'oal';
Coal.RockLevel := 30;
Coal.Experience := 50;
Gold.Color := GoldColor;
Gold.Uptxt := 'old';
Gold.RockLevel := 40;
Gold.Experience := 65;
Mithril.Color := MithrilColor;
Mithril.Uptxt := 'thri';
Mithril.RockLevel := 55;
Mithril.Experience := 80;
Adamantite.Color := AdamantiteColor;
Adamantite.Uptxt := 'amant';
Adamantite.RockLevel := 70;
Adamantite.Experience := 95;
Runite.Color := RuniteColor;
Runite.Uptxt := 'unit';
Runite.RockLevel := 85;
Runite.Experience := 125;
end;
procedure SetRetaliation(Retaliate : Boolean);
//This procedure is used to set retaliation.
var
x : Integer;
y : Integer;
begin
if (Not(Retaliate)) then
begin
GameTab(1);
Wait (20 + Random(80));
if FindColorSpiralTolerance(x, y, 1711220, 610, 367, 620, 393, 7) then
Mouse(x, y, 0, 0, True);
end;
end;
procedure DisguiseX;
//This procedure is used to disguise Scar.
var
varDisguise : Integer;
begin
varDisguise:= Random(10);
case varDisguise of
0 : DisguiseScar('iTunes');
1: DisguiseScar('New Folder');
2: DisguiseScar('Untitled - Wordpad');
3: DisguiseScar('Untitled - Notepad');
4: DisguiseScar('Google - Microsoft Internet Explorer');
5: DisguiseScar('Untitled - Paint');
6: DisguiseScar('CommandPrompt');
7: DisguiseScar('Windows Live Messenger - Log In');
8: DisguiseScar('Yahoo - Microsoft Internet Explorer');
9: DisguiseScar('Google - Mozilla Firefox');
10: DisguiseScar('Yahoo - Mozilla Firefox');
end;
end;
procedure MainLoop;
begin
repeat
FindSomeRandoms;
if (Not(LoggedIn)) then
begin
FreeDTMS;
Exit;
end;
StartMining;
DropOre;
MyAntiBan;
until (Not(LoggedIn));
end;
procedure SetupScript;
begin
SetupSRL; //Setup SRL to make sure we compile.
SetupSRLMining; //Setup SRLMining.
ActivateClient; //Activate Runescape Client, so we can WORK!
DisguiseX; //Changes the caption of SCAR to a random string.
Wait(200 + Random(500)); //We wait now for a little bit.
SetRun(True); //Sets running to on.
SetRetaliation(False); //Sets retaliation to false.
SetRockValues; //Set the rock values.
FindPickHeadColor; //Find the pick head color, used for pickhead finding. Duh!
end;
begin
ClearDebug;
Signature;
Wait(2000);
ClearDebug;
SetupScript;
MainLoop;
end.Pancakes Varrock East Firemaker - Incomplete (Second Script Ever)
program BurntPancakes;
{.include SRL\SRL.scar}
{.include SRL\SRL\Skill\Firemaking.scar}
{*****************************************************************************
SCRIPT SETUP
******************************************************************************}
const
TheMouseSpeed = 6;
Loads = 20;
MaxTimePerLog = 7; //In Seconds, before attempting to light another.
//Should be lower for higher levels.
MaxTimePerLogRandom = 3; //In Seconds, before attempting to light another.
var
DTMLogs, DTMTinderbox, DTMRocks : Integer;
{¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
DECLARE PLAYERS
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤}
procedure DeclarePlayers;
begin
HowManyPlayers := 1; //Number of players
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
Players[0].Name :='Johndoe';
Players[0].Pass :='123FakeSt';
Players[0].Nick :='hndo';
Players[0].Active:=True;
end;
{*****************************************************************************
END SCRIPT SETUP
******************************************************************************}
{*******************************************************************************
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 ScrollChatDown;
Made By: Pancakes.
Description: Scrolls the chat down so we can actually read information in.
*******************************************************************************}
procedure ScrollChatDown;
var x, y, i, ScrollBMP : Integer;
begin
ScrollBMP := BitmapFromString(16, 16, 'z78DABDD43D92C3200C0' +
'5E02BE91F286DB0EF7FA4F5200A31ACBD4EB149F19AE02F9A6711' +
'80EB83F0CFB9B5A2D6CA9ED5A8506A5A734D45CB942599A629259' +
'1CA94608752626329D177797C9B2D49F533CF69A78198ED5A4562' +
'6A91C6DBE4F799A33C9E0D39CE6F708DB19AA69A040D94F9902AC' +
'4533FDEC09DEC82CBD060873CB428BFF6C7AF2C13BA8F08076C93' +
'1952AB22D757F32FBECBA848507FF1FBE46FFCBB9E5DC61D134E3' +
'26D24B8D349199BBF59297C324C7EDFB7E1879E471BEE7799081B' +
'EA2A335325187EE693CE3B7F6D23CA2357B937337CE14A6DF2FBE' +
'D589BFF5456B9BA49B7FEBACFDEC3B3FCA97FB31BB733C7ECFEF5' +
'76334DF7D76F6ED4E2BE3D6B317D33393392467F08E1CC1FD937D' +
'07B88E9B237095FF967FE01D6734032');
For i:= 1 To 5 do
begin
if (FindBitmapToleranceIn(ScrollBMP, x, y, MCX1, MCY1, MCX2, MCY2, 3)) then Break;
Wait(100 + random(50));
end;
FreeBitmap(ScrollBMP);
Wait(100 + random(50));
Mouse(x + 2, y + 2, 0, 0, True);
end;
{*******************************************************************************
procedure LoadTheDTMS;
By: Pancakes.
Description: Loads the DTMS. Duh...
*******************************************************************************}
procedure LoadTheDTMS;
begin
DTMLogs := DTMFromString('78DA631465606010614001A9BEBA0CFF81342' +
'310FF0702465920839B010D302291405A094888115003929725A0' +
'861348C81050C302244409A81107129CF8D50000C3FC0709');
DTMTinderbox := DTMFromString('78DA633CC8C4C0B083910119AC9A3B97E13F9' +
'00689FE0702C67D4035EB51D54064612490DE0A54B39D809A1D40' +
'358708A83941849A0B986EC6507316A8660D7E3500BBE31160');
DTMRocks := DTMFromString('78DA63D4646060706140013EDE7E0C46409A1' +
'188FF0301A31E90618D5B0D08309A000937543569A9A9A86A40E6' +
'78A3AA3133354355A30E24BC08A851C57433BA1A00C6F90CB5');
end;
{*******************************************************************************
function CheckTinderBox:Boolean;
Description: Have we got a tinderbox handy?
*******************************************************************************}
function CheckTinderBox : Boolean;
begin
if (Not(FindDTM(DTMTinderbox, x, y, MIX1, MIY1, MIX2, MIY2))) then
Result:=False;
if (FindDTM(DTMTinderbox, x, y, MIX1, MIY1, MIX2, MIY2)) then
Result:=True;
end;
{*******************************************************************************
function JADSymbol;
By: JAD
Description: Covered Symbol Finding.
*******************************************************************************}
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,2,2,true);
Result := True;
Exit;
end;
wait(750+random(500));
end;
Writeln('Could NOT find symbol.');
Result := False;
if(Switch)then
LogOut;
end;
{*******************************************************************************
procedure CantLightHere;
Description: Walks to another spot.
*******************************************************************************}
procedure LightAllLogs; forward;
procedure CantLightHere;
var VarrockRoads, x, y, Tries : Integer;
begin
VarrockRoads := FindVarrockRoadColor;
Tries := 0;
MakeCompass('N');
repeat
Tries := Tries + 1;
Wait(100 + random(50));
if (JADSymbol('bank', True, False)) then Break;
until(Tries > 10);
if (Tries > 10) then
begin
Writeln('ERROR PROCEDURE CANTLIGHTHERE');
TerminateScript;
end;
Flag;
end;
{*******************************************************************************
procedure LightAllLogs;
Description: Lights ALL of our logs. =D
*******************************************************************************}
procedure LightAllLogs;
var x, y, Rand, TimeMarked : Integer;
var LightLogs1, LightLogs2 : Boolean;
begin
if(Not(CheckTinderBox)) then
begin
Writeln('NO TINDERBOX FOUND');
TerminateScript;
end;
repeat
MarkTime(TimeMarked);
LightLogs1 := True;
Rand := Random(10)
case Rand of
1: ScrollChatDown;
end;
if (CantLightCheck) then CantLightHere;
Wait(50 + random(50));
FindDTM(DTMLogs, x, y, MIX1, MIY1, MIX2, MIY2);
Mouse(x, y, 0, 0, True);
Wait(50 + random(50));
FindDTM(DTMTinderbox, x, y, MIX1, MIY1, MIX2, MIY2);
Mouse(x, y, 0, 0, True);
LightLogs1 := False;
repeat
Wait(20);
if (FindBlackChatMessage('ttemp')) then LightLogs1 := True;
if (FindBlackChatMessage('urn')) and LightLogs1 then LightLogs2 := True;
if (CantLightCheck) then CantLightHere;
until(LightLogs2) or (ClickToContinue) or (TimeFromMark(TimeMarked) > 10000);
until(InventoryCount = 1);
end;
{*******************************************************************************
procedure WalkBackToBank;
Description: Find out which way we went, then walk back.
*******************************************************************************}
procedure WalkBackToBank;
var x, y, VarrockRoads : Integer;
var a : Extended;
begin
VarrockRoads := FindVarrockRoadColor;
MakeCompass('N');
if(FindDTMRotated(DTMRocks, x, y, MMX1, MMY1, MMX2, MMY2, -20, 20, 0.01, a)) then
begin
//We went east
Wait(50 + random(50));
RadialWalk(VarrockRoads , 265, 275, 70, 0, 0);
{FIND BANK SYMBOL AND WALK THERE}
Wait(100 + random(200));
JADSymbol('bank', True, False);
Flag;
end;
if(JADSymbol('shop', False, False)) then
begin
//We went west
RadialWalk(VarrockRoads , 82, 88, 75, 0, 0);
Wait(100 + random(200));
RadialWalk(VarrockRoads , 88, 104, 75, 0, 0);
{FIND BANK SYMBOL AND WALK THERE}
Wait(100 + random(200));
JADSymbol('bank', True, False);
Flag;
end;
end;
{*******************************************************************************
procedure WalkOutside;
Description: Walk Outside Varrock East Bank.
*******************************************************************************}
procedure WalkOutside;
var VarrockRoads : Integer;
begin
MakeCompass('N');
Wait(100 + random(50));
VarrockRoads := FindVarrockRoadColor;
RadialWalk(VarrockRoads , 0, 5, 32, 0, 0);
Wait(100 + random(50));
end;
{*******************************************************************************
procedure AntiBanTalker;
By: Pancakes.
Description: Heh, just a little thing I made. Lol.
*******************************************************************************}
procedure AntiBanTalker;
var
Nouns:Array[1..10] of String;
InterAdjectives:Array[1..11] of String; //, , , , , , , , ,
Adjectives:Array[1..13] of String;
RandomNoun, RandomIntAdjective, RandomAdjective : Integer;
begin
Nouns[1] := 'Tables';
Nouns[2] := 'Bananas';
Nouns[3] := 'Footballs';
Nouns[4] := 'Floorboards';
Nouns[5] := 'Apples';
Nouns[6] := 'Keyboards';
Nouns[7] := 'Books';
Nouns[8] := 'Birds';
Nouns[9] := 'Shoes';
Nouns[10] := 'Forklifts';
InterAdjectives[1] := 'quite';
InterAdjectives[2] := 'enormously';
InterAdjectives[3] := 'very';
InterAdjectives[4] := 'massively';
InterAdjectives[5] := 'really';
InterAdjectives[6] := 'real';
InterAdjectives[7] := 'actually';
InterAdjectives[8] := 'absolutely';
InterAdjectives[9] := '';
InterAdjectives[10] := '';
InterAdjectives[11] := '';
Adjectives[1] := 'fruity';
Adjectives[2] := 'strong';
Adjectives[3] := 'rough';
Adjectives[4] := 'orange';
Adjectives[5] := 'loud';
Adjectives[6] := 'scary';
Adjectives[7] := 'fantastic';
Adjectives[8] := 'flexible';
Adjectives[9] := 'bendy';
Adjectives[10] := 'sporty';
Adjectives[11] := 'heavy';
Adjectives[12] := 'light';
Adjectives[13] := 'radioactive';
RandomNoun := Random(10);
RandomIntAdjective := Random(11);
RandomAdjective := Random(13);
TypeSend (Nouns[RandomNoun] + ' are ' + InterAdjectives[RandomIntAdjective] + ' ' + Adjectives[RandomAdjective] + '.');
end;
{*******************************************************************************
Function FindFastRandoms;
By: SRL-Forum
Description: FindFast.
*******************************************************************************}
Function FindFastRandoms: Boolean;
var
i: Integer;
begin
for i:=1 to 10 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;
Exit;
end;
end;
8: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
9: RC;
10: ClickToContinue;
end;
wait(1);
end;
end;
{*******************************************************************************
procedure Randoms;
Description: Does the Randoms, Finds all (hopefully).
*******************************************************************************}
procedure Randoms;
begin
FindFastRandoms;
FindNormalRandoms;
end;
{*******************************************************************************
procedure WithdrawLogs;
Description: Opens the bank, gets some logs, closes the bank.
*******************************************************************************}
procedure WithdrawLogs;
var i, x, y : Integer;
begin
Wait(50 + random(50));
MakeCompass('N');
Wait(50 + random(50));
HighestAngle;
repeat
Wait(50 + random(50));
until(OpenBankQuiet('veb'));
Flag;
Wait(500 + random(500));
If(Not(BankScreen)) then Exit;
FixBank;
//Get out them logs...
if (FindDTM(DTMLogs, x, y, MSX1, MSY1, MSX2, MSY2)) then
Writeln('WE FOUND THE LOGS! WOOT!');
Wait(50 + random(50));
Mouse(x, y, 0, 0, False);
Wait(50 + random(50));
ChooseOptionEx('aw All');
Wait(50 + random(50));
CloseBank;
end;
{*******************************************************************************
procedure TheAntiBan;
By: Pancakes.
Description: This is so you can keep using your account (not get banned). Duh!
*******************************************************************************}
procedure TheAntiBan;
var BanRandom : Integer;
begin
BanRandom := Random(400);
case BanRandom of
1: HoverSkill('Firemaking', False);
2: PickUpMouse;
3: AlmostLogout;
4: PickUpMouse;
5: BoredHuman;
6: begin
RandomMovement;
Wait(100 + Random(50));
MakeCompass('N');
end;
7: DoEmote(1 + Random(20));
8: AntiBanTalker;
end;
end;
{*******************************************************************************
procedure Signature;
Description: Mmmnnn Pancakes.
*******************************************************************************}
procedure Signature;
begin
Writeln('_________ SCRIPT BY: __ ');
Wait(200);
Writeln('\______ \_____ ____ ____ _____ | | __ ____ ______ ');
Wait(200);
Writeln(' | ___/\__ \ / \_/ ___\\__ \ | |/ // __ \ / ___/ ');
Wait(200);
Writeln(' | | / __ \| | \ \___ / __ \| <\ ___/ \___ \ ');
Wait(200);
Writeln(' |____| (____ /___| /\___ >____ /__|_ \\___ >____ > ');
Wait(200);
Writeln(' \/ \/ \/ \/ \/ \/ \/ ');
Wait(200);
end;
{*******************************************************************************
procedure Main;
Description: Loads bitmaps into memory or frees it from memory.
*******************************************************************************}
procedure Main;
begin
//This is our main loop.
repeat
WithdrawLogs;
WalkOutside;
LightAllLogs;
WalkBackToBank;
until(Not(LoggedIn));
end;
{*******************************-MAIN-*****************************************}
begin
Signature;
ClearDebug;
SetupSRL;
ActivateClient;
LoadTheDTMS;
SymbolAccuracy := 0.6;
Wait(2000);
SetupChats;
Wait(50 + random(30));
ScrollChatDown;
Wait(50 + random(30));
CheckTinderbox;
Main;
end.Thanks. I hope I've gotten in. :spot:
Pancakes.
P.S For some reason the Attach Files link isn't working.
——————————————————
<!– END TEMPLATE: formanswers –>