NiCbaZ
2008-09-08 03:03:40
NicBaz DrUiD KiLLeRR
Intro
NAME: NicBaz DrUiD KiLLeRR
WRITER : Nicbaz.
CATEGORY : Fighting
DESCRIPTION : Kills druids and banks the herbs
USAGE : Start In Ardadone east bank
AUTOCOLOR : Yes.
SRL Used : 4.0, Revision 24.
SCAR Used : 3.15b.
SMART :Yes.
WRITER : Nicbaz.
CATEGORY : Fighting
DESCRIPTION : Kills druids and banks the herbs
USAGE : Start In Ardadone east bank
AUTOCOLOR : Yes.
SRL Used : 4.0, Revision 24.
SCAR Used : 3.15b.
SMART :Yes.
Features
* FlawLess Reflection Finding
* Is still BETA
* Good fighting
* Is still BETA
* Good fighting
Instructions.
* 1. Use RuneScape with Low Detail, Very Bright.
* 2. Set your Screen to 32 bit TRUE color.
* 3. Setup lines below.
* 4. Start in Aradone East Bank
* 5. Start script Logged Out.
* 6.SMART only
* 7. POST ALL PROGGIES IN THE THREAD!
* 8.Need 33 agilty to run
Future Updates
* 2. Set your Screen to 32 bit TRUE color.
* 3. Setup lines below.
* 4. Start in Aradone East Bank
* 5. Start script Logged Out.
* 6.SMART only
* 7. POST ALL PROGGIES IN THE THREAD!
* 8.Need 33 agilty to run
Future Updates
* 1. Sleeping
* 2. More Random Walking
* 3. Better Banking
* 2. More Random Walking
* 3. Better Banking
Updates
*
Notice
Do not abuse please , its good money and pretty stable, there's a bug in Srl that stops the script sometimes, so dw about that.
Sell all herbs At full price please.
Also it may work with range not yet tested.
Sell all herbs At full price please.
Also it may work with range not yet tested.
Enjoy
program DruidKiller;
{.include SRL\SRL\Misc\Smart.scar}
{.include SRl/SRl.scar}
{.include srl/srl/reflection/reflection.scar}
{===================================================================]
[ NicBaz DrUiD KiLLeRR & BaNkEr ]
[ ]
[ NAME : NicBaz DrUiD KiLLeRR ]
[ WRITER : Nicbaz. ]
[ CATEGORY : Fighting ]
[ DESCRIPTION : Kills druids and banks the herbs ]
[ USAGE : Start In Ardadone east bank ]
[ AUTOCOLOR : Yes. ]
[ SRL Used : 4.0, Revision 22. ]
[ SCAR Used : 3.15b. ]
[ ]
[===================================================================]
[ Instructions. ]
[===================================================================]
[ 1. Use RuneScape with Low Detail, Very Bright. ]
[ 2. Set your Screen to 32 bit TRUE color. ]
[ 3. Setup lines below. ]
[ 4. Start in Aradone East Bank ]
[ 5. Start script Logged Out. ]
[ 6. POST ALL PROGGIES IN THE THREAD! ]
[ ]
[===================================================================]
[ Some more info: ]
[ 1. This script is not the fastest one out there it is made to run ]
[ for a long time so dw if its not that fast. ]
[===================================================================]
[===================================================================]
[ Future Updates. ]
[===================================================================]
[ 1. Sleeping ]
[ 2. More Random Walking ]
[ 3. Better Banking ]
[===================================================================]
[ Const ]
[===================================================================]
[===================================================================]
}const //]
SmartWorld = 109; //]
Loads = 100; // Loads UntilStop //]
StatsUser = '618'; //]
StatsPass = ''; //]
{===================================================================]
[1.0- Relesed To Public ]
[===================================================================}
var
LoadsLeft,cooks,clays: integer;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure DeclarePlayers;
By: Nicbaz
Description: Declare The Players for the login Array.
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
procedure DeclarePlayers;
begin
HowManyPlayers:= 3; // number of players
CurrentPlayer:= 0; // starting player
{Green out or Delete unused slots}
NumberOfPlayers(HowManyPlayers);
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='ack';
Players[0].Active:= True;
Players[0].Integers[2]:= 2; // fighting style
end;
procedure PlayerLoop; forward;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure DeclarePlayers;
By: Nicbaz
Description: Declare The Players for the login Array.
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function AllPlayersInactive1: boolean;
var
p: integer;
begin
for p:= 0 to HowManyPlayers - 1 do
if Players[p].Active then exit;
result:= true;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure DeclarePlayers;
By: Nicbaz
Description: Declare The Players for the login Array.
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
procedure SwitchPlayers(Active:boolean);
var
thenextplayer,thelastplayer:integer;
Start: boolean;
begin
Logout;
Players[CurrentPlayer].Active:= Active;
TheNextPlayer:= CurrentPlayer + 1;
TheLastPlayer:= HowManyPlayers - 1;
if (TheNextPlayer <= TheLastPlayer)then
begin
CurrentPlayer:= CurrentPlayer + 1;
end else
begin
CurrentPlayer:= 0;
end;
if not(Players[CurrentPlayer].Active)then
begin
repeat
CurrentPlayer:= random(HowManyPlayers);
until(Players[CurrentPlayer].Active)or(AllPlayersInactive1);
end;
// Proggy;
if AllPlayersInactive1 then
begin
writeln('All Players False');
TerminateScript;
end;
start:= true;
LoadsLeft:= Loads;
LoginPlayer;
wait(random(500));
SetAngle(True);
wait(random(500));
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Function IsBankTabOpen(WichTab:String) : Boolean
By: Nicbaz
Description: Returns True if your tab is open
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function IssBankTabOpen(WhichTab: Integer) : Boolean;
begin
Result := (GetColor(64 + (WhichTab - 1) * 49, 56) = 2896954 );
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function BankTab(NumberOfTab: Integer): Boolean;
By: Nicbaz
Description: Changes to the tab you select
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function BankkTab(NumberOfTab: Integer): Boolean;
begin
if (NumberOfTab <1) or (NumberOfTab > 9) then
begin
srl_Warn('BankTab',inttostr(NumberOfTab)+' BankTab does not exist',warn_AllVersions);
Result := False;
Exit;
end;
if (IssBankTabOpen(NumberOfTab)) then
Exit;
MouseBox(34 + (NumberOfTab - 1) * 50, 54, 34 + (NumberOfTab - 1) * 50, 75, 1);
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure BoredHuman1;
By: Wt-Fawki Modded By Nicbaz
Description: Changes to the tab you select
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
procedure BoredHuman1;
var
i, x, y: Integer;
Deg: Variant;
begin
Deg := rs_GetCompassAngleDegrees;
for i := 1 to 1+random(3) do
begin
MMouse(Random(MSX2), Random(MSY2), 0, 0);
if IsUpText('opti') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
ChooseOption('Examine');
end;
FindNormalRandoms;
case Random(4) of
0: SendArrowSilentWait(((Random(2) * 2) + 1), 20 + Random(200));
1: SendArrowSilentWait(((Random(2) * 2)), 20 + Random(200));
2: SendArrowSilentWait(((Random(2) * 2) + 1), 200 + Random(200));
3: SendArrowSilentWait(((Random(2) * 2)), 20 + Random(200));
end;
FindNormalRandoms;
end;
if (Deg <> 0) then
MakeCompass(IntToStr(Round(Deg)))
else
MakeCompass('N');
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure Proggie;
By: Nicbaz % fr0zen
Description: Proggie
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
procedure Proggie;
var
s: string;
i, File: integer;
begin
Writeln('');
s := '-––•(·-><-·)•–––';
for i := 1 to Length(TimeRunning) + 16 do
Insert('¤', s, 9);
Writeln(s);
Writeln('-––•(·->' + PadL(PadR('NicBaZ DrUiD KiLLeRR', Length(s)/2 + 2), Length(s) - 16) + '<-·)•–––');
Writeln('-––•(·->' + PadL(PadR('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯', Length(s)/2 + 3), Length(s) - 16) + '<-·)•–––');
If Clays > 0 then
Writeln(PadR('-––•(·-> Herbs Colected: ' + IntToStr(Clays), Length(s) - 9) + ' <-·)•–––');
If Cooks > 0 then
Writeln(PadR('-––•(·-> Loads Done: ' + IntToStr(Cooks), Length(s) - 9) + ' <-·)•–––');
Writeln('-––•(·-> Time Running: ' + TimeRunning + ' <-·)•–––');
Writeln(s);
Disguise(PadR('-•(·-> Loads Done: ' + IntToStr(Cooks), Length(s) - 9) + ' <-·)•–––');
if FileExists(ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt') then
Begin
File := OpenFile(ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt', false);
ReadFileString(File, s, FileSize(File));
CloseFile(File);
File := LastPos(TheDate(1), s);
if File > 0 then
Begin
File := RewriteFile(ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt', false);
Delete(s, LastPos(TheDate(1), s) - 1, Length(s));
WriteFileString(File, s);
CloseFile(File);
end;
end;
s := '-––•(·-><-·)•–––';
for i := 1 to Length(TimeRunning) + 16 do
Insert('¤', s, 9);
WriteINI(TheDate(1) + ', ' + TheTime, s, '', ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt');
WriteINI(TheDate(1) + ', ' + TheTime, '-––•(·->' + PadL(PadR('NicBaZ DrUiD KiLLeRR', Length(s)/2 + 2), Length(s) - 16) + '<-·)•–––', '', ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt');
WriteINI(TheDate(1) + ', ' + TheTime, '-––•(·->' + PadL(PadR('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯', Length(s)/2 + 3), Length(s) - 16) + '<-·)•–––', '', ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt');
If Clays > 0 then
WriteINI(TheDate(1) + ', ' + TheTime, PadR('-––•(·-> Herbs Got: ' + IntToStr(Clays), Length(s) - 9) + ' <-·)•–––', '', ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt');
If Cooks > 0 then
WriteINI(TheDate(1) + ', ' + TheTime, PadR('-––•(·-> Loads Done: ' + IntToStr(Cooks), Length(s) - 9) + ' <-·)•–––', '', ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt');
WriteINI(TheDate(1) + ', ' + TheTime, '-––•(·-> Time Running:', TimeRunning + ' <-·)•–––', ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt');
Delete(s, 1, 1);
WriteINI(TheDate(1) + ', ' + TheTime, '', s, ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt');
File := OpenFile(ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt', false);
ReadFileString(File, s, FileSize(File));
CloseFile(File);
s := Replace(s, '=', ' ');
File := RewriteFile(ScriptPath + 'NicBaZ DrUiD KiLLeRR Reports.txt', false);
WriteFileString(File, s);
CloseFile(File);
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure NoBan;
By: Zeph
Description: Anti-Ban
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
procedure NoBan;
var
XxYy: Integer;
begin
case random(5) of
0:
begin
RandomRClick;
end;
1:
begin
PickUpMouse;
end;
2,3,4: Wait(2);
end;
FindNormalRandoms;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function WalkToPath(Path: TPointArray; DoTile: Integer): Boolean;
By: Nicbaz
Description: Walks the path.
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function WalkToPath(Path: TPointArray; DoTile: Integer): Boolean;
var
I: integer;
begin
for I := DoTile to High(Path) do
if not (WalkToTile(Path[I],0 , 0)) then
Exit;
Result := True;
FindNormalRandoms;
End;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function WalkThroughPath(Path: TPointArray): Boolean;;
By: Nicbaz
Description: Walks the path.
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function WalkThroughPath(Path: TPointArray): Boolean;
begin
if not (WalkToPath(Path, 0)) then
begin
writeln('path some how is off');
Result:= False;
Exit;
end;
Result := True;
FindNormalRandoms;
End;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function Walk(where: string): boolean;
By: Nicbaz
Description: Loads the tiles and walks.
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function Walk(where: string): boolean;
var
Tiles: TPointArray;
begin
case where of
'ToLog':
begin
Tiles := [Point(2608, 3335), Point(2603, 3335)];
end;
'ToLogBak':
begin
Tiles := [Point(2572, 3353), Point(2583,3346), Point(2596,3339)];
end;
'ToHouse':
begin
Tiles := [Point(2589, 3339), Point(2582, 3347), Point(2574,3354),
Point(2566, 3355)];
end;
'ToBank':
begin
Tiles := [Point(2609, 3336), Point(2615,3332)];
end;
end;
//SetRun(True);
if WalkThroughPath(Tiles) then
Result:= True;
FindNormalRandoms;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function Find(where : string): boolean;
By: Nicbaz
Description: Find Obects with reflection.
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function Find(where : string; chooseop: string): boolean;
var
Tiles: TPointArray;
xx : TPoint;
begin
case where of
'Bank1' : Tiles:= [Point(2618,3331)];
'Bank2' : Tiles:= [Point(2615,3331)];
'Door' : Tiles:= [Point(2564,3356)];
'Log1' : Tiles:= [Point(2601,3336)];
'Log2' : Tiles:= [Point(2599,3336)];
'stairs' : Tiles:= [Point(2562,9756)];
'stairs1' : Tiles:= [Point(2559,3357)]
end;
if (DistanceFrom(Tiles[0]) > 4) then
begin
WalkToTile(Tiles[0], 0, 0);
FFlag(0);
Wait(400);
end;
XX:= TileToMS(Tiles[0], 0);
Mouse(xX.X, xX.Y, 2, 2, False);
Wait(80 + Random(120));
Result:= ChooseOption(chooseop);
Flag;
FindNormalRandoms;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function Banking: Boolean;
By: Nicbaz
Description: Banks
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function Banking: Boolean;
var
Kk: integer;
begin
MarkTime(Kk);
repeat
case random(2) of
0: Find('Bank1','e-q');
1: Find('Bank2','e-q');
end;
if TimeFromMark(Kk) > 20000 then
Exit;
until(BankScreen);
wait(1000+random(200));
BankkTab(2);
wait(1000+random(200));
Deposit(1,28,true);
Result:= True;
CloseBank;
Clays:= Clays + 28;
Cooks:= Cooks + 1;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function FindHerb : Boolean;
By: Nicbaz
Description: Finds the herb
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function FindHerb : Boolean;
var
Items: array of TGroundItem;
I: Integer;
begin
FindGroundItems(Items,[199,200,201,202,203,204,205,206,207,
208,209,210,211,212,213,214,215,216,217,218,219,220,1525,1527,1529,1531,1533,
2485,2486,3049,3050,3051],7);
for I := 0 to High(items) do
Mouse(Items[I].Ms.x,Items[I].Ms.y, 0, 0, False);
Result:= ChooseOption('rimy');
Flag;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function FindRunes : Boolean;
By: Nicbaz
Description: Finds the herb
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function FindRunes : Boolean;
var
Items: array of TGroundItem;
I: Integer;
begin
FindGroundItems(Items,[556, 557, 558, 59, 561, 563],5);
for I := 0 to High(items) do
Mouse(Items[I].Ms.x,Items[I].Ms.y, 0, 0, False);
Result:= ChooseOption('une');
Flag;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function Pickup: Boolean;
By: Nicbaz
Description: Finds the herb
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
procedure Pickup;
var
K: integer;
begin
MarkTime(k);
repeat
if FindHerb then
Writeln('Pickedup Herb');
if FindRunes then
Writeln('Pickedup Herb');
if (not FindHerb) and (not FindRunes) then
Break;
if TimeFromMark(k) > 40000 then
Break;
Flag;
until False;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function OpenDoor : Boolean;
By: Nicbaz
Description: Opens The Door
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function OpenDoor(where: string): Boolean;
var
Zz: integer;
Tiles: TpointArray;
begin
Tiles:= [Point(2564,3356),Point(2564,3356)]
MarkTime(zz);
R_MakeCompass('w');
MakeCompass('w');
if not loggedin then
LoginPlayer;
case where of
'there':
begin
repeat
if (DistanceFrom(Tiles[1]) < 1) then
Exit;
if not Find('Door','ick') then
begin
WalkToTile(Tiles[0],0,0);
SetAngle(True)
end;
begin
if InChat('manage') or InChat('through') then
begin
writeln('picked the lock');
Result:= True;
Break;
end;
if TimeFromMark(Zz) > 300000 then
begin
Result:= False;
Exit;
Wait(500+random(200));
end;
end;
until(false);
end;
'back':
begin
repeat
if not Find('Door','pen') then
begin
WalkToTile(Tiles[0],0,0);
SetAngle(True)
end else
begin
writeln('Door through Door');
Result:= True;
Break;
end;
if TimeFromMark(Zz) > 150000 then
Exit;
until(false);
end;
end;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function FindDruid: boolean;
By: Nicbaz
Description: Finds the druid
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function FindDruid: boolean;
var
NPCe : TNPC;
begin
if not(FindNPCByID(181,NPCe)) then
begin
Result:= False;
Exit;
end else
begin
Mouse(NPCe.ms.x,NPCe.ms.y,4,4,false);
wait(200+random(70));
if not ChooseOption('ttack') then
begin
Exit;
end;
end;
wait(200+random(500));
Result:= True;
FindNormalRandoms;
Exit;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function FightDruid: boolean;
By: Nicbaz
Description: Fights Druids
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function FightDruid: boolean;
var
XxYy: integer;
NPCe : TNPC;
te:TMe;
begin
te:= GetMe;
SetFightMode(Players[0].Integers[2])
r_SetAngle(true);
R_MakeCompass('w');
MakeCompass('w');
repeat
if (FindNPC('Strange plant',NPCe)) then
begin
Writeln('Plant Found');
Break;
end;
if not FindDruid then
begin
inc(XxYy);
writeln('Could Not Find Druid for the '+(inttostr(XxYy))+ ' Time');
if XxYy > 15 then
begin
FindNormalRandoms;
if Find('stairs','imb') then
FightDruid;
XxYy:= 0;
end;
end;
if Not R_LoggedIn then
LoginPlayer;
if te.infight then
NoBan;
Pickup;
FindNormalRandoms;
if XxYy > 20 then
Break;
until (InvFull);
Result:= True;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function WalkLoop(what: string): boolean;
By: Nicbaz
Description: Walks
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
function WalkLoop(what: string): boolean;
var
XX: integer;
YY: integer;
begin
case what of
'there':
begin
if FindDruid then Exit;
SetRun(True);
if not walk('ToLog') then
Exit;
Writeln('At log');
Wait(300+random(200));
MarkTime(xx);
repeat
if Find('Log1','ross') then
Break;
if TimeFromMark(XX) > 10000 then
Exit;
until False;
wait(100);
Wait(7000+random(600));
if not walk('ToHouse') then
begin
Wait(9000+random(600));
Walk('ToHouse');
end;
Writeln('At House');
Wait(500+random(200));
if not OpenDoor('there') then
begin
Writeln('Door is being Gay');
if not OpenDoor('there') then
begin
OpenDoor('there');
end;
end;
Writeln('We are at Druids Yay!');
Wait(500+random(200));
end;
'back':
begin
SetRun(True);
if OpenDoor('back') then
Writeln('Door Is Opened');
Wait(500+random(200));
if walk('ToLogBak') then
MakeCompass('E');
Writeln('At log');
Wait(500+random(200));
MarkTime(xx);
repeat
if Find('Log2','ross') then
Break;
if TimeFromMark(XX) > 10000 then
Break;
until False;
Wait(6000+random(600));
if walk('ToBank') then
Writeln('At Bank');
Wait(500+random(200));
end;
end;
Result:= True;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure PlayerLoop;
By: Nicbaz
Description: Loops the player
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
procedure PlayerLoop;
begin
if not LoggedIn then
Exit;
repeat
WalkLoop('there');
FightDruid;
WalkLoop('back');
if Banking then
wait(1000+random(300));
writeln('');
proggie;
LoadsLeft:= LoadsLeft - 1;
until(LoadsLeft = 0)or(not LoggedIn);
writeln('term');
TerminateScript;
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure Signature;
By: Nicbaz
Description: ASCII sig
Status: Good
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
procedure Signature;
begin
Writeln(' _______ .__ __________ __________ .____ __ __ _________ ___________ __ __________ ');
Writeln(' \ \ |__| ____ \______ \_____ \____ / | | _____ __ _ __/ \ / \ \_ ___ \_______ _____ \_ _____/_/ |_ ____ \______ \ ');
Writeln(' / | \ | |_/ ___\ | | _/\__ \ / / | | \__ \ \ \/ \/ /\ \/\/ / / \ \/\_ __ \\__ \ | __) \ __\_/ __ \ | _/ ');
Writeln('/ | \| |\ \___ | | \ / __ \_ / /_ | |___ / __ \_\ / \ / \ \____| | \/ / __ \_| \ | | \ ___/ | | \ ');
Writeln('\____|__ /|__| \___ >|______ /(____ //_______ \ |_______ \(____ / \/\_/ \__/\ / \______ /|__| (____ /\___ / |__| \___ >|____|_ / ');
Writeln(' \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ ');
end;
procedure writemypos;
var
Tx:Tpoint;
begin
Tx:= GetMyPos;
Writeln('Point('+Inttostr(tx.x)+','+Inttostr(tx.y)+'),');
end;
begin
SmartSetUp('world104',true,true,false);
wait(2000);
SetTargetDC(SmartGetDC);
SetupSRL;
LoadsLeft:= Loads;
ScriptID := '962';
DeclarePlayers;
proggie;
SRLID := StatsUser;
SRLPassword :=StatsPass;
writemypos;
LoginPlayer;
repeat
PLayerLoop;
until false;
end.