SRL Archive - Archive

Haxor - SRL Member Application Form


Haxor

2008-05-20 05:15:30

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

What is the meaning to life?
To try your best in everything you do


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


Programming Knowledge


Other Communitys
sythe( i dont go there anymore) fagex(not active)moparisthebest(cool site)

How Long have You Played Runescape
3years(mainly script

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

hey srl, i am turning 13 in august.


I am a generous and a funny guy, i like scripting and the computer(obviously) and do well at school.

I play soccer and other sports. i LIKE MY SPORTS.

I try to script good and help the community in areas i can. i try to help people that are inexperianced and havnt scripted before. I stay active most of the time unless im on break.


Thats about it

Haxor

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

program Monkinator;

{
Credits:
-Pyro for the Human Text function which I took from Rev 1 which I think is useful for AntiBan
Someone please tell me if there is a function similar in the current Revision though.
-Kevin Wolf for helping me whenever I had a problem with the script

Notice:
-Requires healing when the Health in the top right is not green
}

{.include SRL\SRL\Misc\Smart.scar}
{.include SRL\SRL.scar}
{.include SRL\SRL\Skill\Fighting.scar}
{.include SRL\SRL\Misc\Users.scar}

var
gAutoTalkCount, gMonkHealCount, gEatHealCount, gMovementCount, gMonkKillCount, gBreakCount, gWaterColour: Integer;
MonkColours : TIntegerArray;

const
Prefix = 109; //The world you want to connect to with SMART.
HiDetail = False; //High Detail or Low Detail?
Signed = True; //Signed or UnSigned?
WaterColour = 12090223; //Color of the Fountains water on the minimap
MMouseSpeed = 25; //MouseSpeed
procedure SetUp;begin
MonkColours := [2244702];
end;
//--------------------------------Player Array Indices
const //If you touch these, I will break your legs.
FightStyle = 0; //DO NOT TOUCH IF YOU LIKE WALKING
AutoTalk = 0; //I'M SERIOUS I WILL BREAK THEM
BreakTime = 0; //BALLZ. CUT. OFF.
HealMonk = 1; //These are index values for the player array variables, not settings.
NextTime = 1; //So dont change them of the script won't work?
EatHeal = 2;
LevelToGet = 2;
LogOutFood = 3;
LevelsToGet = 3;
MonksToKill = 4;
FoodColour = 5;
StartLevel = 7;
MonksKilled = 8;
LastBreak = 9;
WorkedFor = 10;
CurrentLvl = 11;

//--------------------------------Report
procedure Report;
var
Index: Integer;
begin
Writeln('~~~~~~~~~~~~~~~~~~Monkinator by Haxor~~~~~~~~~~~~~~~~~~');
Writeln('TimeRunning -> ' + TimeRunning);
Writeln('Number of AutoTalks -> ' + IntToStr(gAutoTalkCount));
Writeln('Number of Monk Healing -> ' + IntToStr(gMonkHealCount));
Writeln('Number of Food Eaten -> ' + IntToStr(gEatHealCount));
Writeln('Number of Movements -> ' + IntToStr(gMovementCount));
Writeln('Number of Breaks -> ' + IntToStr(gBreakCount));
Writeln('Number of Monks Killed -> ' + IntToStr(gMonkKillCount));
Writeln('Gained Approximately -> ' + FloatToStr(gMonkKillCount * 15 * 4) + ' XP');
for Index := 0 to High(Players) do
with Players[Index] do
begin
Writeln('-----------------------------> ' + Name);
if Loc <> '' then
Writeln('Loc -------------------------> ' + Loc);
Writeln('Active ----------------------> ' + BoolToStr(Active));
Writeln('Worked ----------------------> ' + IntToStr(Worked));
Writeln('Monks killed ----------------> ' + IntToStr(Integers[MonksKilled]));
Writeln('Gained Approx. XP -----------> ' + FloatToStr(Integers[MonksKilled] * 15 * 4));
Writeln('Starting Level --------------> ' + IntToStr(Integers[StartLevel]));
if (Integers[CurrentLvl] > Integers[StartLevel]) then
begin
Writeln('Current Level ---------------> ' + IntToStr(Integers[CurrentLvl]));
Writeln('Gained Levels ---------------> ' + IntToStr(Integers[CurrentLvl] - Integers[StartLevel]));
end;
end;
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;

{*******************************************************************************
function FindMonkWaterColour: Integer;
By: Tarajunky, Edited for Script by Haxor
Description: Autodetects Water Color on Minimap
*******************************************************************************}

function FindMonkWaterColour: Integer;
var
GC, a, l, TestColor, Red, Green, Blue : integer;
var
P:array of Tpoint;
begin
GC := gWaterColour;
Flag;
FindColorsSpiralTolerance(MMCX, MMCY, P, GC, MMX1, MMY1, MMX2, MMY2, 60);
l:=GetArrayLength(P);
for a:= 0 to l-1 do
begin
if rs_OnMinimap(P[a].x,P[a].y) then
begin
TestColor := GetColor(P[a].x,P[a].y);
if SimilarColors(TestColor,GC,50) then
begin
Red := (TestColor mod 256);
Green := ((TestColor / 256) mod 256);
Blue := ((TestColor / 256) / 256);
{Writeln(IntToStr(Red));
Writeln(IntToStr(Green));
Writeln(IntToStr(Blue));
Writeln(IntToStr(Green - Red));
Writeln(IntToStr(Blue - Red));
Writeln(IntToStr(Blue - Green));}
if Green - Red >= -25 then if Green - Red <= 25 then
if Blue - Red >= 40 then if Blue - Red <= 100 then
if Blue - Green >= 30 then if Blue - Green <= 90 then
begin
Result := TestColor;
WaterColor := TestColor;
gWaterColour := TestColor;
WriteLn('WaterColor = ' + IntToStr(TestColor));
Exit;
end;
end;
end;
end;
WriteLn('Could not find Water Color!');
Result := 0;
end;

{*******************************************************************************
function HumanText(Text: String; Chance: Integer): String;
By: Pyro
Description: Returns A text humanly. DOES NOT TYPE. But will make ACTUAL human Mistakes
Chance is like well think of it as 1 out of ......
*******************************************************************************}

function HumanText(Text: string; Chance: Integer): string;
var
Keyboard: array[1..8] of string;
Tempi, i, l, NewKey: Integer;
Temps, Newtext: string;
begin
keyboard[1] := '1234567890-=';
keyboard[2] := 'qwertyuiop[]\';
keyboard[3] := 'asdfghjkl;';
keyboard[4] := 'zxcvbnm,./';
keyboard[5] := '!@#$%^&*()_+';
keyboard[6] := 'QWERTYUIOP{}|';
keyboard[7] := 'ASDFGHJKL:"';
keyboard[8] := 'ZXCVBNM<>?';
for l := 1 to Length(Text) do
begin
Temps := Copy(Text, l, 1)
if (Random(Chance) = 0) then
begin
for i := 1 to 8 do
begin
Tempi := Pos(Temps, keyboard[i])
if (tempi <> 0) then
begin
if (Tempi = 1) then
NewKey := 2;
if (Tempi = Length(keyboard[i])) then
Newkey := Tempi - 1;
if (Tempi <> 1) and (Tempi <> 10) then
Newkey := Tempi + Random(2) - Random(2);
NewText := Copy(keyboard[i], NewKey, 1);
Break;
end;
end;
end else
Newtext := Temps ;
Result := Result + Newtext;
end;
end;

{*****************************************************************************
function IsFightAt(x, y: Integer): Boolean;
By: RealRune, Edited for script by increasing checking range by Haxor
^^ Haven't heard about him in ages, Whatever happened?
Description: results true if it finds a fight near x,y.
*****************************************************************************}

function MyIsFightAt(x, y: Integer): Boolean; //Not really my :P
begin
Result := (FindColor(x, y, 65280, x - 30, y - 70, x + 30, y + 30) or FindColor(x, y, 255, x - 30, y - 70, x + 30, y + 30));
if Result then
Writeln('FightAt');
end;

function FindObjext(var Ox, Oy: Integer; Name: TStringArray; Colour: TIntegerArray; Tolerance: Integer; X1, Y1, X2, Y2: Integer): Boolean;
var
Tx, Ty, Ind: Integer;
Found, Points: TPointArray;
ColourPoints : T2DPointArray;
FPoint: TPoint;
begin
Status('Searching for Monk');
for Ind := 0 to High(Colour) do
begin
FindColorsSpiralTolerance(Tx, Ty, Points, Colour[Ind], X1, Y1, X2, Y2, Tolerance);
Status('Adding Points found of colour ' + IntToStr(Colour[Ind]));
Found := CombineTPA(Found, Points);
end;
if (High(Found) = 0) then Exit;
ColourPoints := SplitTPA(Found, 15);
for Ind := 0 to High(ColourPoints) do
begin
FPoint := MiddleTPA(ColourPoints[Ind]);
MMouse(FPoint.X, FPoint.Y, 2, 2);
Wait(600 + Random(500));
if (IsUpTextMultiCustom(Name)) then
begin
Result := True;
GetMousePos(Ox, Oy);
Exit;
end;
end;
end;

{*******************************************************************************
function FightNPC(Colors : TIntegerArray, tol, TimeOut:
Integer): Boolean;
By: WT-Fakawi & Cazax, Edited to personal Preference by Haxor.
Description: Fights NPC. Input an array of colors. (May be the same colors),
tol = tolerance, TimeOut = amount of time before clicking on next NPC
*******************************************************************************}

function MyFightNPC(Colors : TIntegerArray; Tol, TimeOut:
Integer; ToDo: procedure(); Between: Integer): Boolean;
var
Mark, x, y, T: Integer;
begin
if (LoggedIn) and (not InFight) then
if (FindObjext(x, y, ['ttack', 'ack Mon', 'onk', 'Attack Monk', 'tack', 'tack M', 'Monk', 'Attack'], Colors, T, MSX1, MSY1, MSX2, MSY2)) then
if not MyIsFightAt(X, Y) then if not InFight then
begin
if (not (LoggedIn) or (FindDead)) then Exit;
if (Random(20) = 0) then
begin
Mouse(x, y, 0, 0, False);
Wait(250 + Random(500));
ChooseOption('ttack');
end else
if (IsUpText('ttack')) then
Mouse(x, y, 0, 0, True);
if (not (LoggedIn) or (FindDead)) then Exit;
Wait(2000);
FFlag(10);
MarkTime(Mark);
repeat
Result := True;
if (not (LoggedIn) or (FindDead)) then Exit;
ToDo();
Wait(Between);
if (TimeFromMark(Mark) > TimeOut) then Exit;
until (not InFight or FindDead);
end else
Result := False;
if Result then
begin
Inc(Players[CurrentPlayer].Integers[MonksKilled]);
Inc(gMonkKillCount);
end;
end;

//--------------------------------AutoColour
function AutoColourMonkies: Integer; //Here incase I can somehow make it work good
var
GC, a, l, TestColor, Red, Green, Blue, Index, Hi: integer;
Buffer: Integer;
Canvas: TCanvas;
P:array of Tpoint;
begin
Status('AutoColouring Monks...');
SetAngle(True);
Buffer := BitmapFromString(MSX2, MSY2, '');
Canvas := GetBitmapCanvas(Buffer);
SafeCopyCanvas(GetClientCanvas, Canvas, MSX1, MSY1, MSX2, MSY2, MSX1, MSY1, MSX2, MSY2);
SetTargetBitmap(Buffer);
Hi := High(MonkColours);
for Index := 0 to Hi do
begin
GC := MonkColours[Index];
Flag;
FindColorsSpiralTolerance(MSCX, MSCY, P, GC, MSX1, MSY1, MSX2, MSY2, 15);
l:=GetArrayLength(P);
for a:= 0 to l-1 do
begin
Status('AutoColouring Monks...{' + IntToStr(Index) + '/' + IntToStr(Hi) + '}(' + IntToStr(A) + '/' + IntToStr(l) + ')');
TestColor := GetColor(P[a].x,P[a].y);
if SimilarColors(TestColor,GC,15) then
begin
Red := (TestColor mod 256);
Green := ((TestColor / 256) mod 256);
Blue := ((TestColor / 256) / 256);
if Red >= 65 then if Red <= 130 then
if Green >= 45 then if Green <= 90 then
if Blue >= 25 then if Blue <= 50 then
begin
MonkColours := CombineIntArray(MonkColours, [TestColor]);
Inc(Result);
end;
end;
end;
end;
ClearSameIntegers(MonkColours);
SetTargetDc(SmartGetDC);
FreeBitmap(Buffer);
Status('AutoColouring Complete, New length of MonkColour array: ' + IntToStr(Length(MonkColours)));
Writeln('AutoColouring Complete, New length of MonkColour array: ' + IntToStr(Length(MonkColours)));
end;

//--------------------------------Forwards
procedure AntiRandom; forward;
procedure LogIn; forward;

//--------------------------------Player
procedure SetLoc(Reason: string);
begin
with Players[CurrentPlayer] do
begin
Writeln(Name + ' ' + Reason);
Loc := Reason;
end;
Report;
end;

procedure ChangePlayer(Reason: string; Active: Boolean);
begin
SetLoc(Reason);
NextPlayer(Active);
LogOut;
LogIn;
end;

//--------------------------------Position Functions

function FindSymbolEx(SymbolName: string): Boolean;
var
Bx, By: Integer;
begin
Result := FindSymbol(Bx, By, SymbolName);
end;

function InLumby: boolean; //Most likely
begin
Result := FindSymbolEx('quest') or FindSymbolEx('guide');
end;

function FindCentre(var X, Y: Integer): Boolean;
var
FoundPoints: TPointArray;
MidPoint : TPoint;
begin
if FindSymbol(X, Y, 'water') then
begin
Result := True;
Exit;
end;
FindColorsTolerance(FoundPoints, FindMonkWaterColour, MMX1, MMY1, MMX2, MMY2, 0);
if (Length(FoundPoints) > 0) then
begin
MidPoint := MiddleTPA(FoundPoints);
X := MidPoint.X;
Y := MidPoint.Y;
Result := True;
Exit;
end;
Result := False;
end;

function InTemple: Boolean;
var
X, Y : Integer;
begin
if FindSymbol(X, Y, 'water') then
begin
Result := True;
Exit;
end;
if (FindMonkWaterColour + FindWaterColor) > 0 then
Result := True;
end;

function PosInTemple: string;
var
Px, Py: Integer;
TB, LR: string;
begin
Result := 'X';
if not FindCentre(Px, Py) then
Exit;
if (Px >= MMCX) then
LR := 'L'
else
LR := 'R';
if (Py >= MMCY) then
TB := 'T'
else
TB := 'B';
Result := TB + LR;
if (Distance(Px, Py, MMCX, MMCY) < 10) then
Result := 'C';
end;

//--------------------------------Miscellaneous
procedure DoWhileWait(ToDo: procedure(); HowLong: Integer);
var
T: Integer;
begin
for T := 1 to (HowLong div 500) do
ToDo();
end;

procedure MouseOnColour(Mx, My: Integer; Rx, Ry: Integer; Left: Boolean; Colour, xMod, yMod: Integer);
var
Cx, Cy: Integer;
begin
Cx := Mx;
Cy := My;
repeat
Cx := Cx + xMod;
Cy := Cy + yMod;
until(GetColor(Cx, Cy) = Colour);
Mouse(Cx + xMod, Cy + yMod, Rx, Ry, Left); //Add it again to make sure we're in a little :P
end;

//--------------------------------Form Parsing
function FightMode: Integer;
begin
case LowerCase(StrGet(Players[CurrentPlayer].Strings[0], 1)) of
'a': Result := 1;
's': Result := 2;
'c': Result := 3;
'd': Result := 4;
end;
end;

//--------------------------------Player Events
function LocChanged: Boolean;
begin
Result := Players[CurrentPlayer].Loc <> '';
if Result then
ChangePlayer('Loc changed. (' + Players[CurrentPlayer].Loc + ')', False);
end;

function KilledUpTo: Boolean;
begin
with Players[CurrentPlayer] do
Result := Integers[MonksKilled] >= Integers[MonksToKill];
if Result then
ChangePlayer('has killed their maximum number of Monks', False);
end;





function IsBreakNow: Boolean;
begin
with Players[CurrentPlayer] do
Result := TimeFromMark(Integers[LastBreak]) >= ((Integers[BreakTime] * 60000) - Random(120000));
end;

procedure BreakNow;
begin
if IsBreakNow then
begin
Writeln('Taking a break');
Status('Taking a break');
LogOut;
SleepAndMoveMouse(20000 + Random(30000));
LogInPlayer;
MarkTime(Players[CurrentPlayer].Integers[LastBreak]);
Inc(gBreakCount);
Writeln('Break Over');
Status('Break Over');
end;
end;

function IsNextPlayer: Boolean;
begin
with Players[CurrentPlayer] do
Result := TimeFromMark(Integers[WorkedFor]) >= (Integers[NextTime] * 60000);
end;





function ActiveCount: Integer;
var
Index: Integer;
begin
for Index := 0 to High(Players) do
with Players[Index] do
if Active then Inc(Result);
end;

function PlayersActive: Boolean;
begin
Result := ActiveCount > 0;
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~PlayerActive~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
function PlayerActive: Boolean;
begin
Result := Players[CurrentPlayer].Active;
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~PlayerActive~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Healing~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
function NeedFood: Boolean;
var
Fx, Fy: Integer;
begin
Result := not FindColor(Fx, Fy, 65280, 730, 30, 740, 40);
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Healing~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Eat~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure Eat;
var
Fx, Fy: Integer;
begin
if not (Players[CurrentPlayer].Booleans[EatHeal]) then
Exit;
if (NeedFood) then
repeat
GameTab(4);
if (FindColorSpiralTolerance(Fx, Fy, Players[CurrentPlayer].Integers[FoodColour], MIX1, MIY1, MIX2, MIY2, 5)) then
begin
MMouse(Fx, Fy, 2, 2);
GetMousePos(Fx, Fy);
Wait(250 + Random(500));
if (IsUpText('Eat')) then
Mouse(Fx, Fy, 1, 1, True);
DoWhileWait(@AntiRandom, 3000);
Inc(gEatHealCount);
end else
begin
ChangePlayer('has run out of Food.', not Players[CurrentPlayer].Booleans[LogOutFood]);
Exit;
end;
until(not NeedFood);
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Eat~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MoveToAbbot~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure MoveToAbbot;
var
PlaceHolder: string;
Points : TPointArray;
Box : TBox;
Mx, My : Integer;
RoadColour : Integer;
begin
MakeCompass('N');
PlaceHolder := PosInTemple;
if PlaceHolder = 'X' then
begin
if InTemple then
begin
LogOut;
LogInPlayer
end else
ChangePlayer('is no longer in the Temple(H)', False);
Exit;
end else
if not (PlaceHolder = 'C') then
begin
FindCentre(Mx, My);
Mouse(Mx, My, 2, 2, True); //Move Centre
Wait(250 + Random(250));
Flag;
Wait(300 + Random(200));
end;
RoadColour := FindRoadColor;
FindColorsSpiralTolerance(MMCX, MMCY, Points, RoadColour, MMX1, MMY1, MMX2, MMY2, 0);
if Length(Points) < 5 then
Exit;
Box := GetTPABounds(Points);
Writeln('Moving to Monk');
MouseOnColour(Box.X2, Box.Y2, 1, 1, True, RoadColour, -2, -2); //Move bottom right
Wait(250 + Random(250));
Flag;
Wait(300 + Random(200));
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MoveToAbbot~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~healByAbbot~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure HealByAbbot;
var
Ax, Ay, Tries: Integer;
begin
repeat
while (not FindObjext(Ax, Ay, ['Talk', 'Talk-to', 'alk-to', 'bbot Lan', 'angley', 'Abbot', 'bbot'], MonkColours, 5 * Tries, MSX1, MSY1, MSX2, MSY2)) and (Tries < 6) do
begin
Inc(Tries);
Wait(200 + Random(800));
AntiRandom;
end;
if (Tries >= 6) then
begin
ChangePlayer('cannot find Abbot Langley to heal', False);
Exit;
end;
GetMousePos(Ax, Ay);
if (Random(20) = 0) then
begin
Mouse(Ax, Ay, 0, 0, False);
Wait(250 + Random(500));
ChooseOption('alk-to');
end else
if (IsUpText('alk-to')) then
Mouse(Ax, Ay, 0, 0, True);
Wait(200 + Random(500));
Flag;
Wait(600 + Random(750));
if ClickToContinue then
begin
Wait(800 + Random(750));
if FindNPCChatText('heal me', ClickLeft) then
begin
Wait(800 + Random(750));
if ClickToContinue then
begin
Wait(800 + Random(600));
if ClickToContinue then
begin
Wait(800 + Random(600));
if ClickToContinue then
begin
Wait(800 + Random(600));
Inc(gMonkHealCount);
end;
end;
end;
end;
end;
Wait(500 + Random(600));
AntiRandom;
until(not NeedFood);
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~healByAbbot~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MonkHeal~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure MonkHeal;
begin
if not Players[CurrentPlayer].Booleans[HealMonk] then
Exit;
if NeedFood then
begin
MoveToAbbot;
HealByAbbot;
end;
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MonkHeal~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Heal~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure Heal;
begin
MonkHeal;
Eat;
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Heal~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~AutoTalker~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure AutoTalker;
var
Phrases: TStringArray;
Mistake: string;
Correct: string;
Tail : string;
Rand : Integer;
begin
if (not Players[CurrentPlayer].Booleans[AutoTalk]) then
Exit;
Phrases := ['HI', 'hello', 'whats up', 'im bored', 'Neally done this lvl', 'are you a pker', 'SOOO BORING', 'TALK', 'runescape is boring', 'noob', 'loser', 'choob', 'Runescape is so addictive', 'awwwwww bored', 'cmon lvl', 'i own all', 'ure ugly', 'im hot', 'duk', 'HMMMMMM', 'Neally done here', 'monks are sooo cool', 'i like it how they heal em selves', 'im gonna go soon', 'Monks are soo weak', 'CMON LVL', 'Neally there', 'are you a pure?', 'what type of pure are you', 'whats your name', 'raaaaah', 'neally my bed time', 'sooooon', 'Monks are too good for me', 'i own monk', 'im a str pure', 'im a defence pure', 'im a attk pure', 'OMG!', 'i got a level woot', 'omg i got a lvl', 'Yess', 'nooo', 'Cmon', 'gotta take dog for a walk soon', 'i love runescape', 'what are you doing here', 'im bringing sexy back', 'what music you like?', 'im tired as', 'its almost 12 here', 'neally time for bed', 'its ur bed time'];
Rand := Random(Length(Phrases));
Mistake := HumanText(Phrases[Rand], Random(20) + 20);
Correct := Phrases[Rand];
if (Correct <> Mistake) then
begin
Writeln('Made typing mistake(' + Correct + ') --> ' + Mistake);
TypeSend(Mistake);
Tail := '"';
end;
TypeSend(Correct + Tail);
Inc(gAutoTalkCount);
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~AutoTalker~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~AntiBan~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure AntiBan;
begin
case Random(1000) of
1 : AutoTalker;
2 : RandomRClick;
3 : begin
RandomMovement;
SetAngle(True);
MakeCompass('N');
end;
4 : PickUpMouse;
5 : HoverSkill('random', False);
6 : AlmostLogOut;
99: BoredHuman;
end;
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~AntiBan~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~AntiRandom~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure AntiRandom;
begin
if not LoggedIn then LogInPlayer;
AntiBan;
FindNormalRandoms;
BreakNow;
if not InTemple then
ChangePlayer('is no longer in Temple(AR)', False);
if InLumby then
ChangePlayer('has died and is in lumbridge =[', False);
Heal; //For healing during fighting purposes
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~AntiRandom~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Movement~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure Movement;
var
PlaceHolder: string;
Points : TPointArray;
Box : TBox;
Mx, My : Integer;
RoadColour : Integer;
begin
MakeCompass('N');
PlaceHolder := PosInTemple;
RoadColour := FindRoadColor;
FindColorsSpiralTolerance(MMCX, MMCY, Points, RoadColour, MMX1, MMY1, MMX2, MMY2, 0);
if Length(Points) < 5 then
Exit;
Box := GetTPABounds(Points);
FindCentre(Mx, My);
case PlaceHolder of
'X' : begin
if InTemple then
begin
LogOut;
LogInPlayer
end else
ChangePlayer('is no longer in the Temple', False);
Exit;
end;
'TL': begin
Writeln('Moving');
case Random(2) of
0: MouseOnColour(Box.X1, Box.Y2, 1, 1, True, RoadColour, 2, -2); //Move bottom left
1: Mouse(Mx, My, 2, 2, True); //Move Centre
end;
Wait(250 + Random(250));
Flag;
Wait(300 + Random(200));
end;
'BL': begin
Writeln('Moving');
case Random(2) of
0: MouseOnColour(Box.X1, Box.Y1, 1, 1, True, RoadColour, 2, 2); //Move top left
1: Mouse(Mx, My, 2, 2, True); //Move Centre
end;
Wait(250 + Random(250));
Flag;
Wait(300 + Random(200));
end;
'TR', 'BR': begin //For some reason?
Writeln('Moving');
Mouse(Mx, My, 2, 2, True); //Move Centre
Wait(250 + Random(250));
Flag;
Wait(300 + Random(200));
end;
'C': begin
Writeln('Moving');
case Random(2) of
0: MouseOnColour(Box.X1, Box.Y1, 1, 1, True, RoadColour, 2, 2); //Move top left
1: MouseOnColour(Box.X1, Box.Y2, 1, 1, True, RoadColour, 2, -2); //Move bottom left
end;
Wait(250 + Random(250));
Flag;
Wait(300 + Random(200));
end;
end;
Inc(gMovementCount);
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Movement~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~LogIn~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure LogIn;
begin
with Players[CurrentPlayer] do
begin
if not LoggedIn then
begin
LogInPlayer;
SetRun(True);
AutoColourMonkies;
MarkTime(Integers[LastBreak]);
MarkTime(Integers[WorkedFor]);
end;
if Integers[StartLevel] = 0 then
begin
SetFightMode(FightMode);
end;
end;
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~LogIn~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Fight~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure Fight;
var
Tries: Integer;
begin
while not (InFight or MyFightNPC(MonkColours, 5 * Tries, 30000, @AntiRandom, 500)) do
begin
Inc(Tries);
if (Tries >= 3) then
begin
if (Random(15) = 10) then
AutoColourMonkies;
Movement;
Tries := 1;
end;
AntiRandom;
end;
end;
{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Fight~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MainLoop~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
procedure MainLoop;
begin
repeat
LogIn;
SetAngle(True);
Fight;
Heal;
Report;
until(false);
end;

{!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Main_Loop~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!}
begin
SetUpSRL;
ClearDebug;
rs_DeleteUID;
SetUp;
gWaterColour := WaterColour;
MouseSpeed := MMouseSpeed;
SmartSetup(ReadINI('World' + IntToStr(Prefix), 'Prefix', AppPath + 'includes\SRL\SCSS\worlds.ini'), HiDetail, Signed);
SRLPlayerForm(True, ['AutoTalk', 'Healing with Monk', 'Eating to Heal', 'Log out when out of Food?(If only using Food)', 'Log out break every X Minutes'], ['X Minutes between break', 'Max. Minutes to Work before NextPlayer', 'Max. Level to Achieve', 'Max. Levels to Gain', 'Max. Monks to Kill(Etchy Counting)', 'Food Colour(If Any)'], ['Fight Mode'], []);
while not(SmartReady) do Wait(100);
SetTargetDC(SmartGetDC);
if not(LoggedIn) then
while not(SmartGetColor(386, 249) = 65535) do Wait(100);
LogOut;
MoveToTray;
while PlayersActive do
MainLoop;
end.

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

Ashur2Good

2008-05-20 05:25:57

Still no poll? Wtf srl? lol :P

This is wierd :(

-Ashur

NiCbaZ

2008-05-20 05:33:47

if there was a a poll

i dunno what i would vote yet



{*******************************************************************************
function FindMonkWaterColour: Integer;
By: Tarajunky, Edited for Script by Haxor
Description: Autodetects Water Color on Minimap
*******************************************************************************}



{*******************************************************************************
function HumanText(Text: String; Chance: Integer): String;
By: Pyro
Description: Returns A text humanly. DOES NOT TYPE. But will make ACTUAL human Mistakes
Chance is like well think of it as 1 out of ……
*******************************************************************************}


{*****************************************************************************
function IsFightAt(x, y: Integer): Boolean;
By: RealRune, Edited for script by increasing checking range by Haxor
^^ Haven't heard about him in ages, Whatever happened?
Description: results true if it finds a fight near x,y.
*****************************************************************************}



{*******************************************************************************
function FightNPC(Colors : TIntegerArray, tol, TimeOut:
Integer): Boolean;
By: WT-Fakawi & Cazax, Edited to personal Preference by Haxor.
Description: Fights NPC. Input an array of colors. (May be the same colors),
tol = tolerance, TimeOut = amount of time before clicking on next NPC
*******************************************************************************}



you do have some good of your own stuff in there tho, Autocolor, some advanced functions not sure what i would vote yet ( if there was a poll) i make up my mind l8er

Ashur2Good

2008-05-20 06:05:52

From: nicbaz
if there was a a poll

i dunno what i would vote yet














you do have some good of your own stuff in there tho, Autocolor, some advanced functions not sure what i would vote yet ( if there was a poll) i make up my mind l8er



Idk about you, but i would vote yes for sure. Many reasons lead to my decision though :rolleyes:


-Ashur

NiCbaZ

2008-05-20 06:20:48

i think i would vote yes to was not sure at the time :p

Daniel

2008-05-20 06:33:01

From: Ashur2Good
Still no poll? Wtf srl? lol :P

This is wierd :(

-Ashur

o_O a mod has probably been un-installed, or re-installed but not correctly or a database error.

Hobbit

2008-05-20 10:56:11

There is some problems with the Auto poll.

Please just post yes or now for your answer and they will be tallied at the end of 7 days.

Thank you for your co-operation
-Hobbit

nielsie95

2008-05-20 11:04:44

Added a poll.

JuKKa

2008-05-20 11:20:08

Yesh. U know canvases somewhat thats cool..

ShowerThoughts

2008-05-20 11:26:28

No, multiplayer ;)

mixster

2008-05-20 15:00:40

You have multi player, just no declareplayer's procedure so there's no players to login etc…

Richard

2008-05-20 16:12:22

From: mixster
You have multi player, just no declareplayer's procedure so there's no players to login etc…


Wrong,

SRLPlayerForm(True, ['AutoTalk', 'Healing with Monk', 'Eating to Heal', 'Log out when out of Food?(If only using Food)', 'Log out break every X Minutes'], ['X Minutes between break', 'Max. Minutes to Work before NextPlayer', 'Max. Level to Achieve', 'Max. Levels to Gain', 'Max. Monks to Kill(Etchy Counting)', 'Food Colour(If Any)'], ['Fight Mode'], []);

SRLPlayerForm! Easy mistake to make, its only one line :p

Yes from me, and also its on Pro-Gramming so makes me happy :)

GL.

Ashur2Good

2008-05-21 00:41:49

Vote yes. As most people know, he's a good friend of myn and trust me when i say this, he is a smart and dedicated scripter.

Just look at the script :)

Cheers Haxor, you're gonna be a member soon!

-Ashur

itSchRis917

2008-05-21 01:11:36


//If you touch these, I will break your legs.
FightStyle = 0; //DO NOT TOUCH IF YOU LIKE WALKING
AutoTalk = 0; //I'M SERIOUS I WILL BREAK THEM
BreakTime = 0; //BALLZ. CUT. OFF.
Nice. Lol. Yes from me. Nice script, advanced functions, autocoloring and multiplayer.

Cazax

2008-05-21 09:48:58

Yes. I like your monk autocolor function.

Gu3st...

2008-05-21 11:30:42

Wow, much better than my application O_o

Yep for shure ;)

Nava2

2008-05-21 18:35:19

Yes, just a quick thing to cut down lines:

  Phrases: TStringArray;
Mistake: string;
Correct: string;
Tail : string;
Rand : Integer;

Could be:

  Phrases: TStringArray;
Mistake, Correct, Tail : string;
Rand : Integer;

Just cuts a few lines, but either way. Yes from me :)

Nava2

Negaal

2008-05-22 13:03:17

Sure yes.

Camaro'

2008-05-22 15:50:04

From: Negaal
Sure yes.


You credited alot of people for the making of this script, im holding my vote. Im voting no- Im going to tell you the reason so you can improve it in the next script you release to the public.

-Alot of procedures arent yours.

Nava2

2008-05-22 21:01:33

From: cnr sport
You credited alot of people for the making of this script, im holding my vote. Im voting no- Im going to tell you the reason so you can improve it in the next script you release to the public.

-Alot of procedures arent yours.


The beginning yes, but he has a lot of his own.

Nava2

Santa_Clause

2008-05-23 04:58:41

Just wondering, wasn't it you that said you couldn't care less about SRL Members since it was just a few extra scripts?

Haxor

2008-05-23 05:03:23

nope wasnt me, i want to be further into the community and to get to know people better. I want to make better scripts and learn more and more.

Haxor

Ashur2Good

2008-05-23 05:04:51

From: Santa_Clause
Just wondering, wasn't it you that said you couldn't care less about SRL Members since it was just a few extra scripts?


I doubt Alex said that… And even if he did, who cares? He applied didint he? So that obviously means he DOES want to get into SRL, even if he said that.


And he scripts alright, so he deserves to be in :)


-Ashur

nielsie95

2008-05-23 09:59:27

Welcome, sir! :)