SRL Archive - Celebratory Events

my 1000 and 1st post...


n3ss3s

2007-08-07 14:17:50

Well, the zephyr - ronny - ektre thread at free general public forum wasted my millenium post, so I didnt have time to finish my millenium post script.

However, I feel like posting it, but since its not ready and this is kinda my millenium post, I wont post it to SRL Member scripts.

Comment plz so I can finish it some day. (note I first started making this, then took a break to make lumby castle alcher(half way), then got better idea to make clarion v0.7 (half way) and then SB made the new scripting competition which I gotta concentrate on.
However, please post constructive critic and so on. If there are noobish/foolish/stoopid things in the script, think that I was about to put/correct them when its being finished.
And this is my longest script too.

{.Script Info:
# ScriptName = DETA - DraynorExTremenator
# Author = n3ss3s
# Description = Chops willows, fishes , makes fire, cooks, banks in draynor.
# Version = 1
# Date = -- -- ----
# Comments =
/Script Info}
program DraynorExTremenator; // DETA
{.include SRL/SRL.scar}
{.include SRL/SRL/Misc/PlayerForm.scar}
{.include SRL/SRL/Skill/WoodCutting.scar}
{.include SRL/SRL/Skill/Fighting.scar}
{.include SRL/SRL/Skill/Firemaking.scar}
{.include SRL/SRL/Skill/Fishing.scar}
{.include SRL/SRL/Extended/xAutoTalk.scar}

// IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT
// Remove lines 64- 68 from SRL/SRL/Skill/Fishing.scar!!!!
// Make SRL/SRL/Core/Login.scar line 28 look like below
// Result := (GetColor(425, 480) = 16777215); //
{

CREDITS AND CRAP:
1. SRL Team ofcourse.
2. KYAB(solarwind) for not working for a moment, that made me make this script=)
3. Jagex, yes you heard right. Without Jagex, I couldnt use same DTM for anchovy
and shrimp, and the cooked versions of those two!! :O =D
4. FindFastRandoms is fawkis.
5. If I've forgot someone, post in the release thread.
6. Some credits are in the end of names of procedures.
7. Special thx to Doofy for making my ent checking possible by creating
SetMiniMapAngle.

[ Instructions. ]
[=========================================================================]
[ 1. USE Runescape with Low Detail, Very Bright. ]
[ 2. Set your Screen to 32 bit TRUE color. ]
[ 3. Drag crosshair, hit play and setup the players in the form... ]
[=========================================================================}


// Const ////////////
const
UrPin = '1234'; // Bank pin. If you dont have one, dont change.
StartPlayer = 0; // U know it..
SpareAxes = True; // Recommended to have more axes in bank slot 1.
WieldAxe = 3; // 3 for axe in inventory, 2 for wielded...
DisuiseTo = 'Dont look here!'; // lol
/////////////////////


// NON SCRIPTERS DO NOT GO BELOW!!! //
// NON SCRIPTERS DO NOT GO BELOW!!! //
// NON SCRIPTERS DO NOT GO BELOW!!! //
// NON SCRIPTERS DO NOT GO BELOW!!! //
// NON SCRIPTERS DO NOT GO BELOW!!! //


// VARIABLES //
// Bitmaps ///////////////////////
var
bmpRocks: Integer;
// DTMS
var
dtmFish: Integer;
dtmDTMM: Integer;
// Time marks
var
SomeMark: Integer;
PlayMark: Integer;
// General integers, floats, bool...
var
Fired: Integer;
ISMno: Integer;
WiAngle: Extended;
Bools: Integer;
// Arrays
var
ISM: array of string;
ABC: array [1..26] of string;
Intro: array[1..5] of string;
Chats: array[1..10] of string;
Saids: array[1..10] of Boolean;
Wc: array [1..3] of Integer;
Fc: array [1..3] of Integer;
NetColors: array [1..3] of Integer;
// Replaced poor ReadLn player setup with PlayerForm...
////////////////////////////////////

// Forwards
function RandomLoggedOut: Boolean; forward;

procedure LoadISM; forward;

procedure Click(Left: Boolean); forward;

////////////////////////////////////////////////////////////////////////

procedure IntRoBot(Text: string; Style: Integer);
// By n3ss3s
var I: Integer;
begin
for I := 1 to Length(Text) do
case Style of
1: begin
ClearDebug;
Writeln(Copy(Text, 1, I));
Wait(50);
end;
2: begin
Writeln(Copy(Text, I, 1));
Wait(50);
end;
3: begin
Writeln(Text);
Break;
end;
end;
end;

procedure SetMiniMapAngle(Degrees: Extended); // Thx to Doofy
var
tmpStartDegrees, StartDegrees, DegreeChange, NeededDegrees: Extended;
TimeHeld, TimeToHold, KeyPressed: Integer;
begin
tmpStartDegrees:= rs_GetCompassAngleDegrees;
SendInterSCARExtended('StartDegrees', tmpStartDegrees);
if (Degrees > tmpStartDegrees) then
begin
MarkTime(KeyPressed);
KeyDown(VK_Right);
Wait(250 + random(250));
TimeHeld:= TimeFromMark(KeyPressed);
KeyUp(VK_Right);
StartDegrees:= ReadInterSCARExtended('StartDegrees');
DegreeChange:= Abs(rs_GetCompassAngleDegrees - StartDegrees);
NeededDegrees:= Abs(Degrees - rs_GetCompassAngleDegrees);
TimeToHold:= Round(Abs((NeededDegrees / DegreeChange) * TimeHeld));
KeyDown(VK_Right);
Wait(TimeToHold);
KeyUp(VK_Right);
end;
if (Degrees < tmpStartDegrees) then
begin
MarkTime(KeyPressed);
KeyDown(VK_Left);
Wait(250 + random(250));
TimeHeld:= TimeFromMark(KeyPressed);
KeyUp(VK_Left);
StartDegrees:= ReadInterSCARExtended('StartDegrees');
DegreeChange:= Abs(StartDegrees - rs_GetCompassAngleDegrees);
NeededDegrees:= Abs(rs_GetCompassAngleDegrees - Degrees);
TimeToHold:= Round(Abs((NeededDegrees / DegreeChange) * TimeHeld));
KeyDown(VK_Left);
Wait(TimeToHold);
KeyUp(VK_Left);
end;
end;

function GetUpTextColors: array of Integer;
var
W, H: Integer;
begin
SetArrayLength(Result, 1);
for H := 4 to 27 do
begin
for W := 4 to 249 do
begin
Result[GetArrayLength(Result)] := GetColor(H, W);
SetArrayLength(Result, GetArrayLength(Result) + 1);
end;
end;
end;

function ColorInUpText(Color: Integer): Boolean;
var
I: Integer;
var
Colors: array of Integer;
begin
Colors := GetUpTextColors;
for I := 0 to GetArrayLength(Colors) do
begin
if(Color = Colors[i])then
begin
Result := True;
Break;
end;
end;
end;

function FlagPresent2: Boolean;
var bmpFlag: Integer;
begin
bmpFlag := BitmapFromString(3, 3, 'z78DA7373330002373009016E182298' +
'0000333D0AD1');
Result := FindDeformed(x, y, bmpFlag, MMX1, MMY1, MMX2, MMY2);
FreeBitmap(bmpFlag);
end;

procedure CompassMMouse(Dx, Dy, RandX, RandY, Degrees, Direction, LowHigh: Integer);
var I, Cx, V, Cy, DirAdj, VertAdj, CMark, SMark: Integer;
Path: TPointArray;
begin
MarkTime(SMark);
GetMousePos(Cx, Cy);
Path := MakeMouseSplinePath(Cx, Cy, Dx, Dy, 7, 50, 40);
repeat
for I := 0 to Degrees / 10 do
begin
DirAdj := Direction;
VertAdj := LowHigh;
case DirAdj of
1: begin
case VertAdj of
1: begin
KeyDown(VK_LEFT);
Wait(1 + random(1));
KeyDown(VK_UP);
Wait(10 + random(5));
KeyUp(VK_UP);
KeyUP(VK_LEFT);
end;
2: begin
KeyDown(VK_LEFT);
Wait(1 + random(1));
KeyDown(VK_DOWN);
Wait(10 + random(5));
KeyUp(VK_DOWN);
KeyUP(VK_LEFT);
end;
end;
end;
2: begin
case VertAdj of
1: begin
KeyDown(VK_RIGHT);
Wait(1 + random(1));
KeyDown(VK_UP);
Wait(10 + random(5));
KeyUp(VK_UP);
KeyUP(VK_RIGHT);
end;
2: begin
KeyDown(VK_RIGHT);
Wait(1 + random(1));
KeyDown(VK_DOWN);
Wait(10 + random(5));
KeyUp(VK_DOWN);
KeyUP(VK_RIGHT);
end;
end;
end;
end;
MarkTime(CMark);
while (TimeFromMark(CMark) < 10) do
begin
try
MMouse(Path[V].x, Path[V].y, RandX, RandY);
V := V + 1;
except
Wait(1 + Random(2));
end;
end;
end;
until (V = GetArrayLength(Path) - 1) or (TimeFromMark(SMark) > 5000);
end;

procedure ImpatiencyEruption(Ms: Integer);
var FL: array[1..12] of Integer;
KMark, F: Integer;
begin
FL[1] := 112;
FL[2] := 113;
FL[3] := 114;
FL[4] := 115;
FL[5] := 116;
FL[6] := 117;
FL[7] := 118;
FL[8] := 119;
FL[9] := 120;
FL[10] := 121;
FL[11] := 122;
FL[12] := 123;
MarkTime(KMark);
while TimeFromMark(KMark) < MS do
begin
try
F := Random(12);
KeyDown(FL[F]);
Wait(50 + Random(20));
KeyUp(FL[F]);
Wait(100 + Random(25));
except
F := Random(10);
end;
end;
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;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
end;

procedure FasterRandoms;
var R: Integer;
begin
for R := 1 to 3 + Random(3) do
begin
case R of
1: FindDemon;
2: SolveBox;
3: FindTalk;
5: if(not(FindFastRandoms))then FindNormalRandoms;
end;
end;
end;

procedure HumanTab2(Tabs, LastTab: Integer);
var RealMouseSpeed, I: Integer;
begin
RealMouseSpeed := MouseSpeed;
MouseSpeed := (7 + Random(3));
for i := 1 to Tabs do
begin
GameTab(1 + random(13));
end;
GameTab(LastTab);
MouseSpeed := RealMouseSpeed;
end;

procedure AntiBottyChat;
var C: Integer;
begin
Chats[1] := 'Is mithril armor lighter than other armors?';
Chats[2] := 'Do things spawn faster in busy worlds?';
Chats[3] := 'Whats the weather like in ur places? Here sunny...';
Chats[4] := 'If there were no ents I would watch tv same time';
Chats[5] := 'What new minigame would you want ppl?';
Chats[6] := 'Willows go down pretty fast';
Chats[7] := 'I hate the molly random... Its hard...';
Chats[8] := 'I wish I had phat...';
Chats[9] := 'It would be nice if you could get 100k from randoms';
Chats[10] := '**** sigh **';
for C := 1 to 10 do
begin
if(Saids[C] = False)then
begin
Saids[C] := True;
TypeSend(Chats[C]);
Break;
end;
end;
end;

procedure NontiBan;
begin
case Random(8) of
1: CompassMMouse(MSCX, MSCX, 200, 200, 180, Random(2), Random(2));
2: BoredHuman;
3: RandomMovement;
4: begin
if (CountColor(16777215, MMX1, MMY1, MMX2, MMY2) > 1) then
begin
case Random(3) of
1: RandomChat;
2: AntiBottyChat;
end;
if (FindChatText('wc')) or (FindChatText('oodcut')) then
begin
SayCurrentLevels('woodcutting');
end;
end;
end;
5: Wait(500 + Random(20));
6: HumanTab2(1 + Random(3), 1 + Random(13));
7: ImpatiencyEruption(1000 + Random(115));
end;
end;

function FindNet(var Nx, Ny: Integer): Boolean;
var
I, C, R, T, D: Integer;
var
F: Boolean;
begin
for T := 1 to 50 do
begin
T := T + 4;
for I := 1 to 4 do
begin
for C := 1 to 10 do
begin
for R := 1 to 3 do
begin
if(FindColorTolerance(x, y, NetColors[R], MSX1, MSY1, MSX2, MSY2, T))then
begin
MMouse(x, y, 0, 0);
if(IsUpText('Small'))then
begin
GetMousePos(Nx, Ny);
try
NetColors[R] := GetColor(x, y);
except
Writeln('Runtime error would come if we´d update a net color');
end;
F := True;
Result := True;
end;
end;
if(F)then
begin
Break;
end;
end;
if(F)then
begin
Break;
end;
end;
if(F)then
begin
Break;
end else
begin
D := Random(10);
SetMiniMapAngle(Rs_GetCompassAngleDegrees + 90.0);
end;
end;
if(F)then
begin
Break;
end;
end;
end;

function Fish: Boolean;
var
FMark, F: Integer;
A, Found, LoopRandomLO: Boolean;
begin
repeat
if(FindSymbol(x, y, 'fish'))then
begin
Mouse(x, y, 3, 3, True);
FFlag(0);
repeat
for F := 1 to 3 do
begin
case F of
1: A := FindColorTolerance(x, y, Fc[F], MSX1, MSY1, MSX2, MSY2, 10);
2: A := FindColorTolerance(x, y, Fc[F], MSX1, MSY1, MSX2, MSY2, 10);
3: A := FindColorTolerance(x, y, Fc[F], MSX1, MSY1, MSX2, MSY2, 10);
end;
Wait(100 + Random(25));
end;
if (A) then
begin
MMouse(x, y, 2, 2);
if (IsUpText('Net')) then
begin
Found := True;
try
Fc[F] := GetColor(x, y);
except
Writeln('Lol, runtime error would´ve come if we´d update color');
Writeln('Well, theres nothing wrong with our colors since we could');
Writeln('Find the fishing spot :)');
end;
Click(True);
MarkTime(FMark);
end;
end;
if(RandomLoggedOut)then
begin
Writeln('*Sigh* Logged out due to a random');
NextPlayer(False);
LoadISM;
SendInterScarMessage(ISM[ISMno], 'Break');
ISMno := ISMno + 1;
LoopRandomLO := True;
end;
if(not(LoggedIn)) and (not(RandomLoggedOut)) then
begin
Writeln('We are logged out. Not due to a random.');
Writeln('Player stays active, but nextplayer comes.');
NextPlayer(False);
LoadISM;
SendInterScarMessage(ISM[ISMno], 'Break');
ISMno := ISMno + 1;
end;
until (Found) or(LoopRandomLO) or (not(LoggedIn));
end;
while (TimeFromMark(FMark) < 20000) do
begin
try
NontiBan;
Wait(100 + Random(25));
FasterRandoms;
Wait(100 + Random(25));
HandleWhirlPool;
Wait(100 + Random(25));
if(FindFight)then
begin
RunAwayDirection('w');
Wait(8500 + Random(250));
RunBack;
end;
if(not(FindDeformed(x, y, SmallNet, MIX1, MIY1, MIX2, MIY2)))
or(FindNpcChatText('You need a net')) then
begin
FindNet(x, y);
MMouse(x, y, 1, 1);
if(IsUpText('Small'))then
begin
Click(True);
end else
begin
MMouse(x, y, 0, 0);
if(IsUpText('Small'))then
begin
Click(True);
end else
begin
Writeln('Could not find your fishing equipment, changing player');
NextPlayer(False);
LoadISM;
SendInterScarMessage(ISM[ISMno], 'Break');
ISMno := ISMno + 1;
end;
end;
end;
except
Writeln('There was some crap in my Antiban and antirandoms');
Writeln('Problem handled with Try - Except. ');
end;
end;
GameTab(4);
if(InvCount = 27) then
begin
Result := True;
end;
until(not(LoggedIn)) or (Result);
end;

function RandomLoggedOut: Boolean;
// by n3ss3s
// Useful, aint it?
begin
if(not(LoggedIn))then
begin
if(Players[CurrentPlayer].Rand = '')then
begin
Result := True;
end;
end;
end;

function FireLogs: Boolean;
var RSpeed, Lx, Ly: Integer;
begin
RSpeed := MouseSpeed;
MouseSpeed := 8;
if(WeHaveLogs(Lx, Ly))then
begin
if(FindDeformed(x, y, TinderBox, MIX1, MIY1, MIX2, MIY2))then
begin
Writeln('TinderBox found!');
Mouse(x, y, 2, 2, True);
Wait(100 + Random(25));
Mouse(Lx, Ly, 2, 2, True);
if(CantLightCheck)then
begin
Mouse(MMCX, MMCY, 7, 7, True);
Result := False;
end else
begin
repeat
FTWait(1);
if(RandomLoggedOut)then
begin
Writeln('We got logged out while lighting fire due to random.');
NextPlayer(False);
LoadISM;
SendInterScarMessage(ISM[ISMno], 'Break');
ISMno := ISMno + 1;
end;
if(not(LoggedIn)) and (RandomLoggedOut) then
begin
Writeln('We got logged out while lighting fire.');
Writeln('Not due to a random');
NextPlayer(True);
SendInterScarMessage(ISM[ISMno], 'Break');
ISMno := ISMno + 1;
// Yes, I used ISM, because I dont wanna be
// setting off and on sum global boolean all the time...
end;
until(FindChatText('fire catches')) or (not(LoggedIn));
Result := True;
end;
end else
begin
Writeln('TinderBox not found!! Current player goes false');
NextPlayer(False);
LoadISM;
SendInterScarMessage(ISM[ISMno], 'Break');
ISMno := ISMno + 1;
end;
end;
end;

procedure FireAll;
begin
repeat
begin
FindFastRandoms;
if(FireLogs)then
begin
Fired := Fired + 1;
end;
end;
until(not(WeHaveLogs(x, y)));
DwarfItem;
end;

function FindFire(var WhereX, WhereY: Integer): Boolean;
var
I: Integer;
Time: Integer;
Cx, Cy: Integer;
Cx2, Cy2: Integer;
Dx, Dy: Integer;
var
F: Boolean;
var
FlameColors: array of Integer;
var
C: Integer;
begin
SetArrayLength(FlameColors, 7);
FlameColors[0] := 2724541;
FlameColors[1] := 2200253;
FlameColors[2] := 3777238;
FlameColors[3] := 2196124;
FlameColors[4] := 4373239;
FlameColors[5] := 3782375;
FlameColors[6] := 11321;
Dx := MSX2 - MSCX;
Dy := MSY2 - MSCY;
for C := 1 to 4 do
begin
for Time := 1 to 20 do
begin
if(not(LoggedIn))then
begin
Break;
end;
for I := 0 to 6 do
begin
if(not(LoggedIn))then
begin
Break;
end;
Cx := MSCX - (Time) * (Dx / 20);
Cy := MSCY - (Time) * (Dy / 20);
Cx2 := MSCX + (Cx / 2);
Cy2 := MSCY + (Cy / 2);
if(FindColorTolerance(x, y, FlameColors[I], Cx, Cy, Cx2, Cy2, 10))then
begin
MMouse(x, y, 0, 0);
if(IsUpText('Fire'))then
begin
F := True;
GetMousePos(WhereX, WhereY);
end else
begin
Break;
Click(False);
Wait(50 + Random(25));
Result := FindText(x, y, 'Fire', UpChars, MSX1, MSY1, MSX2, MSY2);
Break;
end;
end;
if(F) then
begin
Break;
end;
end;
if(F)then
begin
Break;
end;
end;
if(not(F))then
begin
SetMiniMapAngle(Rs_GetCompassAngleDegrees + 90.0 + Random(10));
end;
end;
end;

function CookShrimpz: Boolean;
var Fx, Fy, CookMark: Integer;
begin
dtmFish := DTMFromString('78DA633CC9C4C0F094012B6084D1978954739' +
'F809AF340357708A801B9E736013567816ADE1061CE07026A8E00' +
'D57C24A0661F50CD7B026A7601D5BC2642CD33026AB603D53C22A' +
'0662F50CD5D026AF600D53CC4AF0600C7FC1789');
repeat
if(FindFire(x, y))then
begin
Writeln('Found fire! Attempting to find sum shrimp from inv');
if(FindDTM(dtmFish, Fx, Fy, MIX1, MIY1, MIX2, MIY2)) then
begin
Mouse(Fx, Fy, 2, 2, True);
Wait(100 + Random(25));
Mouse(x, y, 2, 2, True);
FFlag(0);
repeat
Wait(10 + Random(2));
until(FindText(x, y, 'How many would', NPCChars, 129, 356, 378, 379));
ClickMouseBox(223, 379, 303, 438, False);
ChooseOption(x, y, 'All');
MarkTime(CookMark);
PerfectNorth;
repeat
FasterRandoms;
NontiBan;
until(not(FindDTM(dtmFish, x, y, MIX1, MIY1, MIX2, MIY2)))
or (TimeFromMark(CookMark) > 45000);
end;
end;
until(not(FindDTM(dtmFish, Fx, Fy, MIX1, MIY1, MIX2, MIY2))) or (not(FindFire(x, y)));
if(not(FindDTM(dtmFish, x, y, MIX1, MIY1, MIX2, MIY2)))then
begin
Result := True;
end;
FreeDTM(dtmFish);
end;

function TextCLength(Text:string; Font: Integer): Integer;
// Not totally complete yet, but enough for my uses
// By n3ss3s
var T: Integer;
begin
case Font of
UpChars, SmallChars, NPCChars: Result := Length(Text) * 7;
StatChars: Result := Length(Text) * 4;
end;
for T := 1 to Length(Text) do
begin
if(Copy(Text, T, 1) = ' ')then
begin
Result := (Result - (Result / Length(Text))) + 4;
end;
end;
end;

procedure Click(Left: Boolean);
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, Left);
end;

function IzEnt(Tx, Ty: Integer): Boolean;
begin
MMouse(Tx, Ty, 0, 0); // Ya its 0, 0 because I wanna find the ent.
Wait(100 + Random(25));
Result := FindColor(x, y, 2221022, 4, 4, TextCLength('Chop down Willow',
UpChars), 22);
end;

function FindWillow(var Wx, Wy: Integer): Boolean;
var
I, C: Integer;
A: Boolean;
begin
repeat
for I := 1 to 3 do
begin
case I of
1: A := FindColorTolerance(x, y, Wc[1], MSX1, MSY1, MSX2, MSY2, 10);
2: A := FindColorTolerance(x, y, Wc[2], MSX1, MSY1, MSX2, MSY2, 10);
3: A := FindColorTolerance(x, y, Wc[3], MSX1, MSY1, MSX2, MSY2, 10);
end;
if (A) then
begin
Break;
end;
end;
if (A) then
begin
MMouse(x, y, 2, 2);
if (IsUpText('illo')) then
begin
Wc[I] := GetColor(x, y);
GetMousePos(Wx, Wy);
Result := True;
end;
end;
C := C + 1;
until (Result) or (I > 25) or (not (LoggedIn));
end;

function ClickWillow(Left: Integer): Boolean;
var Gx, Gy: Integer;
begin
HighestAngle;
if (FindWillow(x, y)) then
begin
SendInterScarInteger('WilX', x); // Thats rite I keep using
SendInterScarInteger('WilY', y); // ISM and u cant stop me lol...
WiAngle := Rs_GetCompassAngleDegrees;
if(not(IzEnt(x, y)))then
case Left of
1: begin
MMouse(x, y, 0, 0);
if (IsUpText('illo')) then
begin
Click(True);
GetMousePos(Gx, Gy);
if (FindColorTolerance(x, y, 255, Gx - 10, Gy - 10, Gx + 10, Gy + 10, 5)) then
begin
Result := True;
end;
end;
end;
2: begin
Mouse(x, y, 0, 0, False);
Result := ChooseOption(x, y, 'Chop');
end;
end;
end;
end;

function ChopWillow: Boolean;
var B, C: Integer;
begin
ClickWillow(1 + Random(2));
MarkTime(B);
x := ReadInterScarInteger('WilX');
y := ReadInterScarInteger('WilY');
repeat
Wait(10 + Random(2));
case Random(2) of
0: FasterRandoms;
1: NontiBan;
end;
SetMiniMapAngle(WiAngle);
HighestAngle;
if(IzEnt(x, y))then
begin
for C := 1 to 4 do
begin
Mouse(MMCX, MMCY, 3, 3, True);
end;
end;
until(WeHaveLogs(x, y)) or (TimeFromMark(B) > 10000);
Result := WeHaveLogs(x, y);
end;

function TreeWalk: Boolean;
begin
PerfectNorth;
bmpRocks := BitmapFromString(6, 6, 'z78DA858D4B0A80300C44AF9466F259' +
'AB78FF2B193B154A057D8BC740264C68E6E6D1AD8AA68E3292960' +
'EF377A76812343B1521FEE41B3B6CB773580C6231ADBF3BFCE575' +
'D9FAE5028FF72B84');
if (FindDeformed(x, y, bmpRocks, MMX1, MMY1, MMX2, MMY2)) then
begin
FreeBitmap(bmpRocks);
Mouse(x + 40, y - 5, 2, 2, True);
MarkTime(SomeMark);
while FlagPresent2 and (TimeFromMark(SomeMark) < 8000) do
begin
NontiBan;
end;
Result := True;
end;
end;

function BankWalk: Boolean;
var Stairs, Street, SC: Integer;
begin
if(5 = 5)then
begin
Mouse(x, y, 3, 3, True);
FFlag(0);
end else
begin
Stairs := BitmapFromString(9, 6, 'z78DA3335323432B034259A34000308' +
'DBC4C9D0D9C0003F89539791A1015612AF2E5CAE226017D12E240' +
'F00009A3740F9');
if (FindDeformed(x, y, Stairs, MMX1, MMY1, MMX2, MMY2)) then
begin
SC := GetColor(x, y);
FreeBitmap(Stairs);
if (FindColorCircleTolerance(x, y, SC, MMCX, MMCY, 73, 10)) then
begin
Mouse(x + 15, y + 40, 3, 3, True);
while FlagPresent2 do
begin
NontiBan;
end;
end;
Street := BitmapFromString(33, 2, 'z78DA33773235357134C74BBA99BBB' +
'AB99A9B3999199A190F0AD218449A1B9B1A1A1B1A0C2300003E00' +
'4FBA');
Result := FindDeformed(x, y, Street, 603, 1, 707, 15);
FreeBitmap(Street);
end else
begin
Writeln('I think we are lost.');
Writeln('Gambling time! Result depends of FindSymbol!!Woot1!!1!!');
Result := FindSymbol(x, y, 'bank');
if(Result) then
Mouse(x, y, 2, 2, True);
FFlag(0);
end;
end;
end;

function OpenTehBank: Boolean;
begin
Result := OpenBankGlass('db', True, True);
if (PinScreen) then
begin
InPin(UrPin);
end;
if (not (Result)) then
begin
Result := OpenBankQuiet('db');
if (PinScreen) then
begin
InPin(UrPin);
end;
end;
end;

procedure Bank;
begin
DwarfItem;
FindNormalRandoms;
if (not (OpenTehBank)) then
begin
Writeln('Shit happens, the bank doesnt open');
Exit;
end else
begin
repeat
dtmFish := DTMFromString('78DA633CC9C4C0F094012B6084D1978954739' +
'F809AF340357708A801B9E736013567816ADE1061CE07026A8E00' +
'D57C24A0661F50CD7B026A7601D5BC2642CD33026AB603D53C22A' +
'0662F50CD5D026AF600D53CC4AF0600C7FC1789');
if (FindDTM(dtmFish, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Mouse(x, y, 0, 0, False);
ChooseOption(x, y, 'Store X');
repeat
Wait(10 + Random(2));
until (FindText(x, y, 'Enter amount', UpChars, 200, 380, 310, 410)) or
(not (LoggedIn));
TypeSend(IntToStr(50 + Random(49)));
repeat
Wait(10 + Random(2));
until (not(FindDTM(dtmFish, x, y, MIX1, MIY1, MIX2, MIY2))) or (not (LoggedIn));
end;
if (not (LoggedIn)) then
begin
NextPlayer(False);
LoadISM;
SendInterScarMessage(ISM[ISMno], 'Break');
ISMno := ISMno + 1;
end;
until (not (LoggedIn));
CloseBank;
DropTo(4, 28); // To make sure there is no crap in inventory.
end;
end;

procedure HandleBank;
begin
if (BankWalk) then
begin
Bank;
end;
end;

function BrokenAxe: Boolean; // No axe.
begin
Result := FindAxeHeadColor;
end;

procedure HandleBrokenAxe;
begin
if (BrokenAxe) then
begin
Writeln('Broken Axe');
if(BankWalk)then
begin
if(OpenTehBank)then
begin
Deposit(1, 28, 2);
Wait(100 + Random(25));
Withdraw(1, 1, 1);
end;
end else
begin
Writeln('Could not find bank, your broken axe stays broken.');
NextPlayer(False);
LoadISM;
SendInterScarMessage(ISM[ISMno], 'Break');
ISMno := ISMno + 1;
end;
end;
end;

function BreakTime: Boolean;
begin
if(ReadInterScarMessage(ISM[ISMno]) = 'Break')then
begin
Result := True;
end;
end;

procedure LoadISM;
begin
SetArrayLength(ISM, ISMno + 1);
ISM[GetArrayLength(ISM)] := ABC[ISMno];
if(ISMno = 26)then
begin
Writeln('We cannot afford anymore false players, terminating');
TerminateScript;
end;
end;

function FindMiniMapDTM(var MdX, MdY: Integer; TheDTM: Integer): Boolean;
{ by n3ss3s
Finds a DTM on the minimap.
If cant find, rotates by 1 degree using Doofys SetMiniMapAngle.
Rotates until found or not logged in or rotated 5 times.
}
var I: Integer;
begin
if(not(FindDTM(TheDTM, MdX, MdY, MMX1, MMY1, MMX2, MMY2)))then
begin
repeat
for I := 1 to 360 do
begin
SetMiniMapAngle(Rs_GetCompassAngleDegrees + 1);
Wait(10 + Random(2));
if(FindDTM(TheDTM, MdX, MdY, MMX1, MMY1, MMX2, MMY2))then
begin
Result := True;
Writeln('Minimap DTM Found in '+FloatToStr(Rs_GetCompassAngleDegrees)+
' degrees angle');
Break;
end;
if(not(LoggedIn))then
begin
Break;
end;
end;
I := I + 1;
until(I >= 5) or (not(LoggedIn));
end else
begin
Result := True;
Exit;
end;
end;

procedure LoadCrap;
begin
Wc[1] := 6062224;
Wc[2] := 3303520;
Wc[3] := 2398336;
Fc[1] := 15513744;
Fc[2] := 16576760;
Fc[3] := 15515792;
NetColors[1] := 3225666;
NetColors[2] := 2172969;
NetColors[3] := 3225674;
Intro[1] := '-----------------------';
Intro[2] := '| Welcome to use DETA |';
Intro[3] := '| DraynorExTremenator |';
Intro[4] := '| Brought to you by : |';
Intro[5] := '|_______n3ss3s _______|';
end;

procedure Introduction;
var I: Integer;
begin
for I := 1 to 5 do
begin
IntRoBot(Intro[I], 1);
end;
Writeln('Thank you for interest');
end;

procedure SetupScript;
var I: Integer;
begin
SetupSRL;
SetupSRLFishing;
LoadFireMakingBitmaps;
LoadCrap;
NewLine := '';
ISMno := 1;
SetupPlayers;
ActivateClient;
if(not(LoggedIn))then
begin
LoginPlayer;
end;
if(not(FindAxeHeadColor))then
begin
Writeln('Hey dude you forgot your axe!!');
Writeln('Restart script');
TerminateScript;
end;
for I := 1 to GetArrayLength(Players) do
begin
Players[I].Rand := '';
end;
end;

procedure MainLoop;
begin
if(Fish)then
begin
if(BreakTime)then
begin
MainLoop;
end else
begin
if(ChopWillow)then
begin
if(BreakTime)then
begin
MainLoop;
end else
begin
if(CookShrimpz)then
begin
if(BreakTime)then
begin
MainLoop;
end else
begin
HandleBank;
if(BreakTime)then
begin
MainLoop;
end;
if(TimeFromMark(PlayMark) > 720000)then
begin
NextPlayer(True);
MarkTime(PlayMark);
end;
end;
end;
end;
end;
end;
end;
for Bools := 1 to GetArrayLength(Players) do
begin
Writeln('Player '+ IntToStr(Bools)+' status = '+ BoolToStr(Players[Bools].Active));
end;
end;

begin
SetupSRL;
end.

EDIT: The procedures propably wont work with the new runescape look but whatever..

Smartzkid

2007-08-07 14:19:51

*cough* FCMB *cough*

:) Good job, congrats on the 1k + 1 post!

I'll look over the script asap.

EDIT: Multiplayer?

n3ss3s

2007-08-07 14:20:37

FCMB was a project made by multiple people, this is totally my own.

bullzeye95

2007-08-07 14:22:03

Congratz! Where's the picture???

n3ss3s

2007-08-07 14:23:00

no pictures :)

(what picture?)

bullzeye95

2007-08-07 14:26:20

You gotta have a picture for your millennium post! Everybody posts one.

Harry

2007-08-07 14:27:34

Woah, cool!

n3ss3s

2007-08-07 14:28:12

Its about the principle, I hate everything about IRC Gallery, ii2 whatever there are, posting pictures of emselves, thats why.
I maybe post one tomorrow (ill pixelate it :))

bullzeye95

2007-08-07 14:30:13

I didn't understand those first two lines…

Come on, don't pixelate it! I'm not gonna hunt you down and rape you.

(Or am I?)

n3ss3s

2007-08-07 14:31:44

From: bullzeye95
I didn't understand those first two lines…

Come on, don't pixelate it! I'm not gonna hunt you down and rape you.

(Or am I?)


Yes you are. I can see it in your eyes! :D Jk/Jk

I didn't understand those first two lines…

www.irc-galleria.com Or something like that, theres many sites like that where ppl post their faces wateva.. I hate those communities..

Dan Cardin

2007-08-07 16:22:55

woot for millenium post!

i someone should write a book about the ronny thing then sell it and make millions;)

wow ur script is long, u know how many lines?

n3ss3s

2007-08-08 04:04:36

1,2k raw code :D

Wizzup?

2007-08-08 04:31:28

Gratz,

About that FindMinimapDTM, ever thought of using FindDTMRotated? :p

n3ss3s

2007-08-08 05:06:04

-.-

Santa_Clause

2007-08-08 06:29:40

Spammer.

Pretty good script.

n3ss3s

2007-08-08 06:43:23

yeh thx.

GoF

2007-08-08 07:07:29

Lol, like 1-2 weeks from 600 to 1000 :rolleyes: but.. Congratulations I guess.

n3ss3s

2007-08-08 07:09:45

:) I was myself very amazed too.

Hugolord

2007-08-08 08:12:55

atz on ur 1000th m8 and ill check bk here to c pic :p

n3ss3s

2007-08-08 08:18:51

Which coloured pixels do you want? Black and white? Blue and red? :D

ZephyrsFury

2007-08-08 09:15:09

I suppose I should say sorry for wrecking your once in an account life time opportunity. So yea… SORRY. :p

3Garrett3

2007-08-08 09:18:31

Ya, you ruined it. But, that thread is an epic novel, quality of drama never before seen in a book, first it was you (Ektran) that was the nub. Then it was Ronny, then you, Then Ronny, and then Fawki came and handed out, the DELETION. *Runs away at the sound of that word* :p

ZephyrsFury

2007-08-08 09:26:13

Lol, at the end I had lost count of the number of times people had changed sides. One post its like 'your a noob ektran' then next it was 'ektran was right' then it was 'theres only one way to prove you are right, lets have a scripting comp' then it was 'it was ronny all along' then it was smooth sailing from there. :p I still don't get why Wizzup's IP check that proved that I registered both ektran and ZephyrsFury didn't end the argument.

3Garrett3

2007-08-08 09:30:51

Because, we still needed to figure out who it was. Everyone was on your side by then.

Ps- I wouldnt post about this on KYAB, since it didnt affect them, they never really made a big deal about it.

Dan Cardin

2007-08-08 09:40:33

well i would make it into a book, but itd be so annoying to go to every post and quote it…:(

n3ss3s

2007-08-08 09:56:26

Best seller :D

Hugolord

2007-08-08 10:08:09

From: n3ss3s
Best seller :D


rofl and black and white is fine

Bobarkinator

2007-08-08 10:37:18

Hey good news is, you got an account at KYAB ;) lol. Ronny registered it for you.

I was really mad because I didn't even know that thread was happening so yesterday I had to read all 12 pages lol.

n3ss3s

2007-08-08 10:41:48

Hey good news is, you got an account at KYAB
umm? Good place for wtf..

ZephyrsFury

2007-08-08 10:42:16

I already have an account on KYAB, the password was just changed. Do you mean ronny has changed it back?

And that thread was annoying for me aswell. I went to sleep and went to school. I came back to see and extra 7 pages of post to go through… Oh well, it was worth it. :)

3Garrett3

2007-08-08 10:47:26

I was talking to ronny, he told me that Wizzup? Changed your KYAB forum password. I mean its been changed back and Wizzup? should have given you a new password.

Bobarkinator

2007-08-08 10:48:15

From: ZephyrsFury
I already have an account on KYAB, the password was just changed. Do you mean ronny has changed it back?



Send me a PM and I will change the password for you.

3Garrett3

2007-08-08 10:52:06

Bob, Ronny gave wizzup the pass, and Wizzup changed it, Im talking to ronny on MSN right now.

Bobarkinator

2007-08-08 10:59:38

From: 3garrett3
Bob, Ronny gave wizzup the pass, and Wizzup changed it, Im talking to ronny on MSN right now.


I'm talking about on KYAB

3Garrett3

2007-08-08 11:01:27

So am I.

n3ss3s

2007-08-08 11:06:01

Im in save convo as garrett and ronny :p

ZephyrsFury

2007-08-08 11:06:12

OK its done… stop talking about me and talk about n3ss3s' millenium post now…

3Garrett3

2007-08-08 11:08:44

Woot Congrats N3ss3s!!!

ZephyrsFury

2007-08-08 11:10:24

Yea grats on your 1065th post. :)

n3ss3s

2007-08-08 11:11:26

Lmao :D thx