Daniel
2012-11-05 23:42:31
Script below, as is (385 lines, total):
program DraynorSkiller;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$DEFINE PAINT}
{$I SRL/SRL/Misc/Debug.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
Var
FishSpot, DBBank, Runs, Count, XPWCNow, XPFMNow, XPWC, XPFM, Loads, C, R, Logs, World:integer;
Scripttype:String;
Procedure DeclarePlayers; //Please fill out this and nothing else!
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=True;
C :=6;// Columb (Only for Banking)
R :=1;// Row (Only for Banking)
Scripttype :='CNB'; //Type of script? CNB=ChopNBurn, CB=ChopNBank, BB=BurnNBank
World :=16; //Pick a world, any world :D (Make sure you meet the reqs to enter, i.e, Mem/F2p, wildy, skill level etc)
Loads :=10; //How many loads do you wish to do?
end;
{
Some Basic Rules/Warnings:
1) If using the BurnNBank, make sure the door for the building NEXT to the bank, is closed. (Usually Is)
2) This script makes sure the Public Chat is off, and on the Game Tab. This is the most effective way of simulating an annoyed human.
3) In the world choice above, try to keep somewhere less populated.
4) It is preffered to have at least 45 WC and a Rune Hatchet in the Inv or equipped. This is so you aren't eaten alive by the others.
5) Make sure you have bank space and you have the appropriate levels for the WoodCutting/FireMaking/
HAVE FUN!!
}
{
/~~~\/~~\/~~~\/~~~\/~~\/~~~\ /~~~\/~~\/~~~\/~~~\/~~\/~~~\
| /\/ /\/ /\ || /\/ /\/ /\ | | /\ \/\ \/\ || /\ \/\ \/\ |
\ \/ /\/ /\/ /\ \/ /\/ /\/ /Make sure you do not\ \/\ \/\ \/ /\ \/\ \/\ \/ /
\ \/\ \/\ \/ \ \/\ \/\ \/ Change anything \/ /\/ /\/ / \/ /\/ /\/ /
,_/\ \/\ \/\ \__/\ \/\ \/\ \______________________/ /\/ /\/ /\__/ /\/ /\/ /\_,
(__/\__/\__/\____/\__/\__/\________________________/\__/\__/\____/\__/\__/\__)
(~\/~~\/~~\/~~~~\/~~\/~~\/~~~~~~~~~~~~~~~~~~~~~~~~~~\/~~\/~~\/~~~~\/~~\/~~\/~)
'\ \/\ \/\ \/~~\ \/\ \/\ \/~~~~~~~~~~~~~~~~~~~~~~~~\/ /\/ /\/ /~~\/ /\/ /\/ /'
/\ \/\ \/\ \ /\ \/\ \/\ \ Have Fun / /\/ /\/ /\ / /\/ /\/ /\
/ /\/ /\/ /\ \/ /\/ /\/ /\ \ And stay in school! / /\ \/\ \/\ \/ /\ \/\ \/\ \
| \/ /\/ /\/ || \/ /\/ /\/ | | \/\ \/\ \/ || \/\ \/\ \/ |
\___/\__/\___/\___/\__/\___/ \___/\__/\___/\___/\__/\___/}
procedure Antiban; //Thanks to NKN. He is amazing, and didn't know half of these :P
begin
FindNormalRandoms;
case Random(90) of
0: RandomRClick;
2: PickUpMouse;
3: RandomMovement;
4: BoredHuman;
5: ExamineInv;
6: MakeCompass('N');
7: SetAngle(SRL_ANGLE_HIGH);
8: Wait(5000+random(2000));
9: HoverSkill(skill_woodcutting,false);
end;
End;
Procedure MakeProggy;
Begin
Writeln('/////////////////////////Rez''s DraynorSkiller!//////////////////////////');
Writeln('//Time Running: '+ TimeRunning+' //');
Writeln('//Number of Logs chopped: '+IntToStr(Count)+' //');
Writeln('//Number of Logs burnt: '+IntToStr(Count)+' //');
Writeln('//Number of Loads done: '+IntToStr(Runs)+' //');
Writeln('//Experience Gained in WC: '+IntToStr(XPWC)+' //');
Writeln('//Experience Gained in FM: '+IntToStr(XPFM)+' //');
End;
procedure SetupLogin;
begin
ClearDebug;
SetupSRL;
DeclarePlayers;
if not LoggedIn then
begin
repeat
LoginPlayerToLob;
until LobbyScreen;
OpenWorldScreen;
if not WorldScreen then
OpenWorldScreen;
if WorldScreen then
begin
writeln('picking world!');
SelectWorld(World);
LogInPlayer;
end;
end;
while not LoggedIn do
wait(500);
ExitSquealOfFortune();
SetChat('off', CHAT_PUBLIC);
Mouse(90 + (CHAT_GAME * 55), 496, 8, 3, mouse_left); //click game tab
end;
Function isChopping: Boolean; //Average PixelShift from Flights TuT (THANKS FLIGHT!!)
var
PBox: TBox;
begin
PBox := IntToBox(250, 175, 280, 220);
Result := (AveragePixelShift(PBox, 300, 450) > 400);
end;
Procedure BankD;
Var
x, y:Integer;
Begin
Logs := DTMFromString('m1gAAAHic42JgYMhlYmAoA+JqKA3iZwBxPBCnQvkgtjUjA4MBEFsBsRMQuwKxOxBbArEREBsCsQsQmxsIAk1lIoj5gSQxmJFIjAAAHLkH3w==');
if (findSymbol(x, y, 'bank')) then
Mouse(x-1, y-2, 1, 1, true)
Else
Begin
Mouse(590, 130, 7, 7, true);
Wait(1000);
if (findSymbol(x, y, 'bank')) then
Mouse(x, y, 1, 1, true);
End;
Wait(10000);
RestUntil(50);
SetRun(true);
OpenBankFast('db');
Wait(1000+random(250));
if ExistsItemDTM(Logs, x, y) then
Begin
MMouse(x, y, 3, 3);
Mouse(x,y,3,2, false);
ChooseOption('All');
End;
Writeln('Banking!');
if (findSymbol(x, y, 'fish')) then
Begin
Mouse(x, y, 1, 1, true);
Wait(10000);
End
Else
Begin
MouseBox(660, 100, 665, 115, 1);
Wait(6000);
if (findSymbol(x, y, 'fish')) then
Mouse(x, y, 1, 1, true);
End;
RestUntil(50);
SetRun(true);
End;
Procedure BankT;
Var
x, y:Integer;
Begin
if (findSymbol(x, y, 'bank')) then
Mouse(x, y-5, 1, 1, true);
Wait(6000+Random(100));
OpenBankFast('db');
Withdraw(C-1, R-1, 28);
Wait(1000+random(250));
Writeln('Banking!')
End;
Procedure Chop;
var
x, y: integer;
begin
if FindObj(x, y, 'illow', 3359297, 20) or FindObj(x, y, 'illow', 1384220, 20) then
Begin
Mouse(x,y,1,1, false);
ChooseOption('hop');
SetRun(true);
AntiBan;
Repeat
until not(ischopping);
End;
End;
Procedure Burn;
var
x, y: integer;
begin
Logs := DTMFromString('m1gAAAHic42JgYMhlYmAoA+JqKA3iZwBxPBCnQvkgtjUjA4MBEFsBsRMQuwKxOxBbArEREBsCsQsQmxsIAk1lIoj5gSQxmJFIjAAAHLkH3w==');
if ExistsItemDTM(Logs, x, y) then
MMouse(x, y, 3, 3);
Mouse(x,y,3,2, false);
ChooseOption('ight');
AntiBan;
Wait(5000);
if ExistsItemDTM(Logs, x, y) then
Mouse(x, y, 3, 3, true);
wait(3000);
MouseBox(279, 430, 320, 450, mouse_left);
AntiBan;
Writeln('Let the burning begin!')
repeat
Until not(ExistsItemDTM(Logs, x, y));
End;
Procedure ChopNBurn;
Begin
if LoggedIn then
begin
ClickNorth(SRL_ANGLE_LOW);
Keydown(VK_LEFT);
Wait(randomrange(1000, 1020));
Keyup(VK_LEFT);
Writeln('Setting angle!');
end;
Repeat
XPWC:=GetXP(20) - XPWCNow;
XPFM:=GetXP(19) - XPFMNow;
Chop;
If invfull then
Begin
Writeln('Inventory Full!');
Runs:=runs+1;
Burn;
Count:=Count+28;
End;
MakeProggy;
Until(Runs=Loads);
End;
Procedure ChopNBank;
Var
x, y:Integer;
Begin
ClickNorth(SRL_ANGLE_LOW);
Keydown(VK_LEFT);
Wait(randomrange(1000, 1020));
Keyup(VK_LEFT);
SetRun(true);
if (findSymbol(x, y, 'fish')) then
Begin
Mouse(x, y, 1, 1, true);
Wait(10000);
End
Else
Begin
MouseBox(660, 100, 665, 115, 1);
wait(6000);
if (findSymbol(x, y, 'fish')) then
Mouse(x, y, 1, 1, true);
End;
Repeat
XPWC:=GetXP(20) - XPWCNow;
Chop;
RestUntil(50);
SetRun(true);
If invfull then
Begin
Writeln('Inventory Full!');
Runs:=Runs+1;
BankD;
ClickNorth(SRL_ANGLE_LOW);
Keydown(VK_LEFT);
Wait(randomrange(1000, 1020));
Keyup(VK_LEFT);
Count:=Count+28;
if (findSymbol(x, y, 'fish')) then
Begin
Mouse(x, y, 1, 1, true);
Wait(10000);
End
Else
Begin
MouseBox(660, 100, 665, 115, 1);
wait(6000);
if (findSymbol(x, y, 'fish')) then
Mouse(x, y, 1, 1, true);
End;
End;
RestUntil(50);
SetRun(true);
AntiBan;
MakeProggy;
Until(Runs=Loads);
End;
Procedure BurnNBank;
Begin
if LoggedIn then
begin
ClickNorth(SRL_ANGLE_HIGH);
Keydown(VK_LEFT);
Wait(randomrange(1000, 1020));
Keyup(VK_LEFT);
Keydown(VK_LEFT);
Wait(randomrange(1000, 1020));
Keyup(VK_LEFT);
Writeln('Setting angle!');
end;
Repeat
XPFM:=GetXP(19) - XPFMNow;
BankT;
MouseBox(615, 120, 630, 150, 1);
Writeln('Walking to spot!');
Wait(3000);
Burn;
Runs:=runs+1;
Count:=Count+28;
MakeProggy;
Until(Runs=Loads);
End;
Procedure DoIt;
Begin
Logs := DTMFromString('m1gAAAHic42JgYMhlYmAoA+JqKA3iZwBxPBCnQvkgtjUjA4MBEFsBsRMQuwKxOxBbArEREBsCsQsQmxsIAk1lIoj5gSQxmJFIjAAAHLkH3w==');
XPWCNow:=GetXP(20);
XPFMNow:=GetXP(19);
Case ScriptType of
'CNB': ChopNBurn;
'CB': ChopNBank;
'BB': BurnNBank;
End;
End;
BEGIN
SetupLogin;
ActivateClient;
LoginPlayer;
DoIt;
FreeDTM(Logs);
END.