SRL Archive - Archive

EvilChicken - SRL Member Application Form


EvilChicken!

2007-12-09 23:25:53

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

What is the meaning to life?


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


Programming Knowledge
None.

Other Communitys
sp0rk-eh.com

How Long have You Played Runescape
Totally two years.

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

Well, I've never been good at writhing things about myself. (Thats a start, right?)

Anyway, I am a 14 year old kid, and I script in the freetime and I do it for the fun and the challenge that scripting gives me. I want to become a SRL member because I want to learn from the best and look at the best scripts, and to understand the complexity of them and basically how they are built up.

Lately, SCAR has taken control over my life to some degree. I now prioritlze scripting over sleeping and some other things. (The sad thing about this is that I've just finished my last minute tweaks on my scripts and the clock is 05:06 AM, and I have a project tomorrow which I haven't studied for at all.)
Should I report this as a bug? xD


Anyway, my main point is: I want to be a SRL member because then I can get more attention to scripts I release, gain more respect and help other people that needs help without being frowned upon.

It is probably worth mentioning that I know other things apart from those posted, like autocoloring, radialwalk, and some other things.

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

This is my "Fightz0r" script, which I haven't released in public yet.
{

___ _ _ ## ___ ## ___ ___ __ ____
|| \\ // || || // || || || // || // || ||\\ || //
||_ \\ // || || || ||__|| || || ||// ||_ || \\ || \\___
|| \\ // || || || || || || \\ ||\\ || || \\ || \\
||__ \\_// || ||__ \\___ || || || \\__ || \\ ||__ || \\|| ___//
Fightz0r BETA!

A monster fighting script.
Current version: Beta stages.
______________________________________________________________________________
| |
| INSTRUCTIONS: |
|______________________________________________________________________________|

1. Transfer your army to the location of the chosen monster(s).
2. SETUP LINES BELOW, AND DRAG CROSSHAIR OVER CLIENT WINDOW.
3. Set Windows to 32-bit color.

This script is both F2P and members and picks up anything you want to. Look
below for more info.

It is advised to log in BEFORE starting the script and pick the foodcolor.
If you won't need food, still keep once piece in your inventory; or else the
script will think the player is out of food and switch to next player.

TO ALL RANGERS: You could use this as a ranging script. If you use this on a
member account, do the "Animal Magnetism" quest. You'll get a packpack which
will pick up 90% of the arrows you fire, and insert them back into the quiver.
You'll manage somehow better, since it wont have to pick up too many arrows at
a time. But the script will of course work without aswell. If you haven't done
the quest, just buy a Dorgeshuun crossbow and a zillion bone bolts for 2-3 each
at the Grand Exchange and fire away.

Please post progress reports, and even more importantly, post feedback. This
helps me develop improved versions of this script. Also remember to use SRL
stats.

}

{.Include SRL\SRL.scar}
{.Include srl\srl\skill\fighting.scar}

var
Y, X, W, U, C, V, L, L2, K, Attacked, Eaten, Pick, PickedUpItem, Tackd:
Integer;
MonsterColors: array[0..2] of integer;
DropPickUp: array[0..5] of integer;
PickUpOptionText: array[0..5] of string;

///////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
{------------------------------- START OF SETUP -------------------------------}

const MySRLID = '';
const MySRLPassword = '';
const TheLampSkill = 'Strength';
const PlayerForm = True; // Use the "DeclarePlayers" procedure or the SRL PlayerForm?
const ShutdownPC = False; // IMPORTANT! Shutdown PC when no active players left?
const PickUpItems = False; // Setup below.
const MonsterColor = 5801279; // Color of moster to attack.
const MonsterColor2 = 6262852; // Another color of moster to attack.
const MonsterColor3 = 3443590; // Third color of moster to attack.
const MonTol = 4; // Monster tolecance level.
const ItemTol = 3; // Item tolerance level.

procedure LoadDropsToPickUp;
begin
if not PickUpItems then exit;

DropPickup := [924015, 1385640, 880454, 1411600, 7510697, 1347760];
// First number equals first OptionText, second equels second ect. (Ex. 924015 = 'arrow')
PickUpOptionText := ['arrow', 'rune', 'ranarr', 'nature', 'iron ore','coins'];
end;

procedure DeclarePlayers;

{--------------- LEAVE BLANK IF YOURE USING THE SRL PLAYERFORM ----------------}

begin
HowManyPlayers := 1; // How many players are used?
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := 'USERNAME';
Players[0].Pass := 'PASSWORD';
Players[0].Nick := 'NICK';
Players[0].Booleans[0] := True; // Turn spec on at random times?
Players[0].Integers[0] := 9278128; // Pick color of food in inventory.
Players[0].Strings[0] := 'str';
// 'atk', 'str', 'def', '40 atk pure' or 'pure'.
Players[0].Active := True;

{ Players[1].Name := 'USERNAME';
Players[1].Pass := 'PASSWORD';
Players[1].Nick := 'NICK';
Players[1].Booleans[0] := True;
Players[1].Integers[0] := 9278128;
Players[1].Strings[0] := 'str';
Players[1].Active := True;

Players[2].Name := 'USERNAME';
Players[2].Pass := 'PASSWORD';
Players[2].Nick := 'NICK';
Players[2].Booleans[0] := True;
Players[2].Integers[0] := 9278128;
Players[2].Strings[0] := 'str';
Players[2].Active := True;

Players[3].Name := 'USERNAME';
Players[3].Pass := 'PASSWORD';
Players[3].Nick := 'NICK';
Players[3].Booleans[0] := True;
Players[3].Integers[0] := 9278128;
Players[3].Strings[0] := 'str';
Players[3].Active := True;
}

end;

{-------------------------------- END OF SETUP --------------------------------}
{--------------------------------- PRESS PLAY ---------------------------------}
///////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

procedure WalkToMonsters; forward;

procedure RandomCrapTalker;

begin
W := Random(7);
if not LoggedIn or FindDead or NoGameTab then Exit;
if W = 2 then begin
case Random(35) of
1: TypeSend('omfggf this is soo boring');
4: TypeSend('woot 2k fires this trip');
7: TypeSend('god, i dont this i can do this much longer...');
16: TypeSend('I need some sleep now...');
19: TypeSend('zzzzzzzzzz');
28: TypeSend('i think ima go fish some lobs after this lawl >.<');
29: TypeSend('im so bored lawl');
33: TypeSend('dqwuhgiuhg8odhindbC29 lol im bored');
35: TypeSend('str lvl?');
end;
end;
end;

procedure FixChats;

begin
if not LoggedIn or FindDead or NoGameTab then Exit;
SetChat('on', 1);
SetChat('friends', 2);
SetChat('off', 3);
SetChat('friends', 4);
end;

procedure TheSkillPicker;
begin
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'atk': SetFightMode(1);
'str': SetFightMode(2);
'def': SetFightMode(4);
'pure': if Players[CurrentPlayer].Level[1] > Players[CurrentPlayer].Level[2]
then SetFightMode(2) else SetFightMode(1);
'40 atk pure': if Players[CurrentPlayer].Level[1] > 39 then
SetFightMode(2) else
SetFightMode(1);
end;
end;

procedure ShutDown;

begin
if ShutdownPC
then begin
KeyDown(92);
KeyUp(92);
Wait(200);
SendKeys('u');
SendKeys('u');
Wait(30000); // If the PC still is turned on, failsafe.
KeyDown(92);
Wait(200);
KeyDown(82);
Wait(200);
KeyUp(82);
Wait(200);
KeyUp(92);
Wait(200);
SendKeys('shutdown -s -f -t 00' + chr(13));
end else
TerminateScript;
end;

function NoActivePlayersLeft: Boolean;
var
I: Integer;
begin
for I := 0 to HowManyPlayers - 1 do
if Players[I].Active then
Exit;
Result := True;
end;

procedure CharSetup;
begin
if NoActivePlayersLeft then ShutDown;
NextPlayer(False);
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
FixChats;
TheSkillPicker;
SetBar('brightness', 4);
SetRun(True);
MakeCompass('N');
HighestAngle;
end;

procedure Antiban;

begin
if not LoggedIn or FindDead or NoGameTab then Exit;
C := Random(4);
if C = 2 then begin
case Random(24) of
1: AlmostLogout;
2: begin
MouseSpeed := 9 + random(2);
GameTab(1 + random(10));
FTWait(1 + random(2));
MouseSpeed := 15;
end;
4: GameTab(1);
5: PickupMouse;
6: DoEmote(1 + Random(20));
7: begin
MouseSpeed := 9 + random(2);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
8: begin
MouseSpeed := 9 + random(2);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
9: begin
MouseSpeed := 9 + random(2);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
10: begin
MouseSpeed := 9 + random(2);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
11: begin
MouseSpeed := 9 + random(2);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
FTWait(2 + random(4));
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
12: begin
MouseSpeed := 9 + random(2);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
13: begin
MouseSpeed := 9 + random(1);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
14: begin
MouseSpeed := 9 + random(2);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
FTWait(2 + random(4));
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
15: begin
MouseSpeed := 9 + random(2);
GameTab(1 + random(13));
FTWait(10 + random(4));
MouseSpeed := 10 + random(5);
GameTab(1 + random(13));
MouseSpeed := 15;
end;
16: begin
MouseSpeed := 9 + random(2);
GameTab(1 + random(13));
MouseSpeed := 15;
end;
17: begin
MouseSpeed := 9 + random(2);
GameTab(1 + random(13));
MouseSpeed := 15;
end;
18: begin
MouseSpeed := 9 + random(2);
GameTab(1 + random(13));
MouseSpeed := 15;
end;
19: begin
MouseSpeed := 9 + random(2);
GameTab(1 + random(13));
MouseSpeed := 10 + random(5);
MMouse(x, y, (10 + random(400)), (10 + random(400)));
FTWait(2 + random(4));
MMouse(x, y, (10 + random(400)), (10 + random(400)));
MouseSpeed := 15;
end;
20: begin
GameTab(4);
DragItem(27, 28);
end;
21: HoverSkill('Strength', false);
22: HoverSkill('Attack', false);
23: RandomRClick;
24: ArrangeInv;
end;
end;
end;

procedure Responder;

begin
if not LoggedIn or FindDead or NoGameTab then Exit;

if (FindChatText('ttack') or FindChatText('atk') or FindChatText('tk'))
and (FindChatText('vl') or FindChatText('evel')) then begin
FTWait(4 + Random(2));
case Random(4) of
0: TypeSend(IntToStr(Players[CurrentPlayer].Level[1]));
1: TypeSend('Only' + IntToStr(Players[CurrentPlayer].Level[1]) +
', you?');
2: TypeSend(IntToStr(Players[CurrentPlayer].Level[1]) + ' here');
3: TypeSend(IntToStr(Players[CurrentPlayer].Level[1]));
4: TypeSend(IntToStr(Players[CurrentPlayer].Level[1]) + ' here');
end;

if (FindChatText('trength') or FindChatText('str') or FindChatText('tr'))
and (FindChatText('vl') or FindChatText('evel')) then begin
FTWait(4 + Random(2));
case Random(4) of
0: TypeSend(IntToStr(Players[CurrentPlayer].Level[2]));
1: TypeSend('Only' + IntToStr(Players[CurrentPlayer].Level[2]) +
', you?');
2: TypeSend(IntToStr(Players[CurrentPlayer].Level[2]) + ' here');
3: TypeSend(IntToStr(Players[CurrentPlayer].Level[2]));
4: TypeSend(IntToStr(Players[CurrentPlayer].Level[2]) + ' here');
end;

if (FindChatText('efence') or FindChatText('def') or FindChatText('ef'))
and (FindChatText('vl') or FindChatText('evel')) then begin
FTWait(4 + Random(2));
case Random(4) of
0: TypeSend(IntToStr(Players[CurrentPlayer].Level[3]));
1: TypeSend('Only' + IntToStr(Players[CurrentPlayer].Level[3]) +
', you?');
2: TypeSend(IntToStr(Players[CurrentPlayer].Level[3]) + ' here');
3: TypeSend(IntToStr(Players[CurrentPlayer].Level[3]));
4: TypeSend(IntToStr(Players[CurrentPlayer].Level[3]) + ' here');
end;

if (FindChatText('ange') or FindChatText('rng') or FindChatText('anged'))
and (FindChatText('vl') or FindChatText('evel')) then begin
FTWait(4 + Random(2));
case Random(4) of
0: TypeSend(IntToStr(Players[CurrentPlayer].Level[4]));
1: TypeSend('Only' + IntToStr(Players[CurrentPlayer].Level[4]) +
', you?');
2: TypeSend(IntToStr(Players[CurrentPlayer].Level[4]) + ' here');
3: TypeSend(IntToStr(Players[CurrentPlayer].Level[4]));
4: TypeSend(IntToStr(Players[CurrentPlayer].Level[4]) + ' here');
end;

if (FindChatText('age') or FindChatText('agic') or
FindChatText('mage'))
and (FindChatText('vl') or FindChatText('evel')) then begin
FTWait(4 + Random(2));
case Random(4) of
0: TypeSend(IntToStr(Players[CurrentPlayer].Level[6]));
1: TypeSend('Only' + IntToStr(Players[CurrentPlayer].Level[6]) +
', you?');
2: TypeSend(IntToStr(Players[CurrentPlayer].Level[6]) + ' here');
3: TypeSend(IntToStr(Players[CurrentPlayer].Level[6]));
4: TypeSend(IntToStr(Players[CurrentPlayer].Level[6]) + ' here');
end;

if (FindChatText('itpoints') or FindChatText('hp') or
FindChatText('HP')
or FindChatText('p')) and (FindChatText('vl') or
FindChatText('evel')) then begin
FTWait(4 + Random(2));
case Random(4) of
0: TypeSend(IntToStr(Players[CurrentPlayer].Level[8]));
1: TypeSend('Only' + IntToStr(Players[CurrentPlayer].Level[8]) +
', you?');
2: TypeSend(IntToStr(Players[CurrentPlayer].Level[8]) +
' here');
3: TypeSend(IntToStr(Players[CurrentPlayer].Level[8]));
4: TypeSend(IntToStr(Players[CurrentPlayer].Level[8]) +
' here');
end;
end;
end;
end;
end;
end;
end;
end;

procedure DisguiseSCAR;
begin
case Random(6) of
0: Disguise('Untitled - Paint');
1: Disguise('YouTube - Broadcast Yourself. - Microsoft Internet Explorer');
2: Disguise('Untitled - Microsoft Word');
3: Disguise('Google - Microsoft Internet Explorer');
4: Disguise('Windows Media Player');
5: Disguise('Untitled - Notepad');
end;
end;

procedure Progress;

begin
ClearDebug;
WriteLn('__________________________________________________________');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' EvilChicken''s Fightz0r BETA!');
WriteLn(' Ran for: ' + (TimeRunning) + '.');
WriteLn(' Attacked ' + IntToStr(Attacked) + ' monsters.');
WriteLn(' Ate ' + IntToStr(Eaten) + ' times.');
if PickUpItems then
WriteLn(' Picked up ' + IntToStr(PickedUpItem) + ' items.');
WriteLn('__________________________________________________________');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
SRLRandomsReport;
end;

procedure PickUpItemz;

begin
if not LoggedIn or FindDead or NoGameTab then Exit;
if PickUpItems then begin
MarkTime(Pick);
repeat
if TimeFromMark(Pick) > 25000 then break;
if FindColorSpiralTolerance(x, y, DropPickUp[L], MSX1, MSY1, MSX2, MSY2,
ItemTol)
then begin
Mouse(x, y, 2, 2, false);
if ChooseOption(PickUpOptionText[L2])
then begin
PickedUpitem := PickedUpItem + 1;
ReportVars[0] := 1;
FFlag(0);
SRLRandomsReport;
end else Exit;
end;
until not FindColorSpiralTolerance(x, y, DropPickUp[L], MSX1, MSY1, MSX2,
MSY2, ItemTol);
end;
end;

procedure NoArrowsEquipped;

begin
if not LoggedIn or FindDead or NoGameTab then Exit;
if InBlackChat('out of ammo') then CharSetup;
end;

procedure RandomSpecialAttack;

begin
if not LoggedIn or FindDead or NoGameTab then Exit;
if Players[CurrentPlayer].Booleans[0] = True then begin
U := Random(5);
if U = 3 then begin
GameTab(1);
Mouse(635, 421, 3, 3, true);
ReportVars[1] := 1;
SRLRandomsReport;
end else Exit;
end;
end;

function IsMonsterVisible: Boolean;
begin
Result := FindColorSpiralTolerance(x, y, MonsterColors[k], MSX1, MSY1, MSX2,
MSY2, MonTol);
end;

procedure KillMonsters;

begin
if not LoggedIn or FindDead or NoGameTab then exit;
if InFight then repeat FTWait(3)until not InFight;
if not IsMonsterVisible then WalkToMonsters;
if FindColorSpiralTolerance(x, y, MonsterColors[k], MSX1, MSY1, MSX2, MSY2,
MonTol)
then Mouse(x, y, 3, 3, False);
if ChooseOption('ttack') then begin
FTWait(8);
Attacked := Attacked + 1;
ReportVars[2] := 1;
SRLRandomsReport;
OutFight;
Tackd := Tackd + 1;
end else KillMonsters;
end;

procedure WalkToMonsters;
begin
repeat
ClickExactMMColorTol(195836, 3);
Flag;
V := V + 1;
if IsMonsterVisible then KillMonsters else FTWait(8 + random(3));
until V = 5;
CharSetup;
end;

procedure Eat;

begin
if not LoggedIn or FindDead or NoGameTab then Exit;
GameTab(4);
repeat
if not FindColorTolerance(x, y, Players[CurrentPlayer].Integers[0], MIX1,
MIY1, MIX2, MIY2, 5)
then CharSetup;
if FindColorTolerance(x, y, Players[CurrentPlayer].Integers[0], MIX1, MIY1,
MIX2, MIY2, 5)
then begin
Mouse(x, y, 3, 3, true);
FTWait(1 + random(1)); // Actions trigger randoms.
Eaten := Eaten + 1;
ReportVars[3] := 1;
SRLRandomsReport;
HpPercent;
GameTab(4);
end;
until HpPercent > 50;
end;

procedure FoodCheck;

begin
if not LoggedIn or FindDead or NoGameTab then Exit;
HpPercent;
if HpPercent > 50 then exit else Eat;
end;

procedure IfNotLoggedIn;
begin
if not LoggedIn or FindDead then CharSetup;
end;

procedure Setup;

begin
SetupSRL;
ScriptID := '506';
SRLID := MySRLID;
SRLPassword := MySRLPassword;
if SRLID = '' then TerminateScript;
MonsterColors[0] := MonsterColor;
MonsterColors[1] := MonsterColor2;
MonsterColors[2] := MonsterColor3;
LoadDropsToPickUp;
DisguiseSCAR;
Status('EvilChickens Fightz0r!');
if PlayerForm then SRLPlayerForm(true, ['Use special attacks?'],
['Pick color of food in inventory.'],
['atk, str, def, 40 atk pure, or pure.'],
[]) else DeclarePlayers;
MouseSpeed := 14 + random(5);
ActivateClient;
LogInPlayer;
FixChats;
TheSkillPicker;
SetBar('brightness', 4);
SetRun(True);
MakeCompass('N');
HighestAngle;
end;

{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE MAINLOOP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}

begin
Setup;
repeat
Tackd := 0;
MouseSpeed := 15 + random(5);
IfNotLoggedIn;
RandomCrapTalker;
NoArrowsEquipped;
repeat
RandomSpecialAttack;
KillMonsters;
FoodCheck;
until Tackd = 5 + random(3);
FindNormalRandoms;
PickUpItemz;
Responder;
Antiban;
Progress;
until NoActivePlayersLeft;
end.

And this is my NEWLY IMPROVED agility trainer, not released yet either.

{
___ _ _ ## ___ ## ___ ___ __ ____
|| \\ // || || // || || || // || // || ||\\ || //
||_ \\ // || || || ||__|| || || ||// ||_ || \\ || \\___
|| \\ // || || || || || || \\ ||\\ || || \\ || \\
||__ \\_// || ||__ \\___ || || || \\__ || \\ ||__ || \\|| ___//
AgilityMiceTrainer!

A script that will wind, release and catch toy mice over and over again.

Current version: 1.5 / Post-beta stages. Need feedback/improvement suggestions.

______________________________________________________________________________
| |
| INSTRUCTIONS: |
|______________________________________________________________________________|

1. Use with latest SCAR Divi 3.12c and Revision #7.
2. Drag crosshair over client window.
3. Edit line 31 & 32.
4. Press play.
5. The SRL PlayerForm should pop up. The first time using it, fill in players
and click "Exit -> Save and Start". All other times using this, just go
straight to "Exit -> Start".
6 EQUIP A RING OF LIFE.
}
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Magic.scar}

const
MySRLID = '1531';
MySRLPassword = 'hgejnLCp9p';
ShutdownPC = False; // Shutdown pc when player is unable to continue?
HowManyPlayerz = 1; // How many players are you using?

var
X, Y, NoRandoms, StartMice, MiceColor, LoopPlayed, Mice: Integer;
Mark: array[0..2] of integer;

function NoActivePlayersLeft: Boolean;
var
I: Integer;
begin
for I := 0 to HowManyPlayers - 1 do
if Players[I].Active then
Exit;
Result := True;
end;

procedure ProgressReport; forward;
procedure PickUpMice; forward;

procedure GetLevelz;
begin
if Players[Currentplayer].Integers[0] < 1 then begin
Players[Currentplayer].Integers[0] := GetSkillLevel('Agility');
MMouse(643, 253, 10, 10);
FTWait(1 + random(1));
Players[CurrentPlayer].Integers[1] := GetXP('Agility');
ProgressReport;
end else begin
Players[Currentplayer].Integers[2] := GetSkillLevel('Agility');
MMouse(643, 253, 10, 10);
FTWait(1 + random(2));
Players[Currentplayer].Integers[3] := GetXp('agility');
ProgressReport;
end;
end;

function IsPlantPresent: Boolean;
begin
Result := FindColorSpiralTolerance(x, y, 878416, MSX1, MSY1, MSX2, MSY2, 5);
if result = false then exit else Mouse(x, y, 2, 2, true);
if InBlackChat('ready') then begin
Wait(15000 + random(2500));
repeat
FindColorSpiralTolerance(x, y, 878416, MSX1, MSY1, MSX2, MSY2, 5);
Mouse(x, y, 1, 2, true);
Wait(2500 + random(1500));
until InBlackChat('fruit') or not
FindColorSpiralTolerance(x, y, 878416, MSX1, MSY1, MSX2, MSY2, 5);;
Exit;
end;
end;

procedure NextPlayerSetup;
begin
ProgressReport;
NextPlayer(False);
Mice := BitmapFromString(13, 15, 'beNpjYEAFjGCEHzC21Q' +
'oEeHPiVcl4dr/k9ZNSnQ0CQIRDJcguoJrNy8WeXJVZPkcEmzLGbZM' +
'mAMn9m8Q3LBG9elxq51qxCe2CGCoZp1WUQQwEKgOalp/Bi8t5i5oa' +
'ICo/P5bF74W61BQguW/r1hVz5+AOGca9WzbfvXHj9vVrF0+f3rRsW' +
'UddHTbFjI/v33/35s3XL19ePnt2cMeOM0ePaGsrqavLo6pkfPH0KV' +
'DNzx8/gOTnjx8N9NWACFMZ0JC/f//+/vXr+7dv375+NTHRBCoD2t5' +
'QXoZm76+fP4EqgSRQ8Z8/f4DOOHHgQGdeLqZPgAr+wsDTR48eXLq4' +
'e/pUXBGHjgBZPY1i');
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
SetRun(True);
HighestAngle;
MakeCompass('E');
GameTab(4);
MiceColor := AutoColorThis(Mice, 10, MIX1, MIY1, MIX2, MIY2);
StartMice := CountItemBmpTol(Mice, 5);
FreeBitmap(Mice);
GetLevelz;
ProgressReport;
end;

procedure PlayerReport;

var
Active: string;
I: Integer;

begin
for I := 0 to HowManyPlayers - 1 do begin
if Players[I].Active = True then Active := 'T| ' else Active := 'F| ';
WriteLn(' ' + Capitalize(Players[I].Name) + ': Active:' + Active +
'Started with ' + IntToStr(StartMice) + ' mice' + '| Startlvl:' +
IntToStr(Players[I].Integers[0]));
WriteLn(' Current level: ' + IntToStr(Players[I].Integers[2]) +
' | XP gained: ' + IntToStr(Players[I].Integers[3] -
Players[I].Integers[1]));
end;
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn('__________________________________________________________');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' EvilChicken''s AgilityMiceTrainer v1.5!');
WriteLn(' Has been running for: ' + TimeRunning);
PlayerReport;
WriteLn(' Plese post this progress report.');
WriteLn(' Thank you for using EvilChicken''s AgilityMiceTrainer!');
WriteLn('__________________________________________________________');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;

Procedure MyMMouseItem(i: Integer);
var
TB: TBox;
begin
TB := InvBox(i);
GameTab(4);
MMouse((TB.x1 + TB.x2)/2, (TB.y1 + TB.y2)/2, 6, 6);
end;

procedure NextPlayerTrueSetup;
begin
ProgressReport;
NextPlayer(True);
Mice := BitmapFromString(13, 15, 'beNpjYEAFjGCEHzC21Q' +
'oEeHPiVcl4dr/k9ZNSnQ0CQIRDJcguoJrNy8WeXJVZPkcEmzLGbZM' +
'mAMn9m8Q3LBG9elxq51qxCe2CGCoZp1WUQQwEKgOalp/Bi8t5i5oa' +
'ICo/P5bF74W61BQguW/r1hVz5+AOGca9WzbfvXHj9vVrF0+f3rRsW' +
'UddHTbFjI/v33/35s3XL19ePnt2cMeOM0ePaGsrqavLo6pkfPH0KV' +
'DNzx8/gOTnjx8N9NWACFMZ0JC/f//+/vXr+7dv375+NTHRBCoD2t5' +
'QXoZm76+fP4EqgSRQ8Z8/f4DOOHHgQGdeLqZPgAr+wsDTR48eXLq4' +
'e/pUXBGHjgBZPY1i');
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
SetRun(True);
HighestAngle;
MakeCompass('E');
GameTab(4);
MiceColor := AutoColorThis(Mice, 10, MIX1, MIY1, MIX2, MIY2);
StartMice := CountItemBmpTol(Mice, 5);
FreeBitmap(Mice);
GetLevelz;
end;

procedure DisguiseSCAR;
begin
case Random(6) of
0: Disguise('Untitled - Paint');
1: Disguise('YouTube - Broadcast Yourself. - Microsoft Internet Explorer');
2: Disguise('Untitled - Microsoft Word');
3: Disguise('Google - Microsoft Internet Explorer');
4: Disguise('Windows Media Player');
5: Disguise('Untitled - Notepad');
end;
end;

Function MyClickAllItemsColorTolWait(uptext, option: string; waitnum, color,
tol: Integer):Integer;
var
i, x, y: Integer;
TB: Tbox;
arr:array of Integer;
begin
arr :=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,28];
GameTab(4);
for i := 0 to 27 do
begin
TB := InvBox(arr[i]);
if ExistsItem(arr[i]) then
if FindColorTolerance(x, y, color, TB.x1, TB.y1, TB.x2, TB.y2, tol) then
begin
MyMMouseItem(arr[i]);
Wait(20 + random(35));
If IsUpText(uptext) then
begin
if (not (option = '')) then
begin
MouseItem(arr[i], False);
Wait(waitnum);
ChooseOption(option);
FindNonInventoryRandoms;
Inc(Result);
end
else
begin
MouseItem(arr[i], True);
FindNonInventoryRandoms;
Wait(waitnum);
end;
end;
end;
end;
end;

procedure ShutDown;
begin
if ShutdownPC
then begin
LogOut;
ProgressReport;
KeyDown(92);
KeyUp(92);
Wait(200);
SendKeys('u');
SendKeys('u');
Wait(30000); // If the PC still is turned on, failsafe.
KeyDown(92);
Wait(200);
KeyDown(82);
Wait(200);
KeyUp(82);
Wait(200);
KeyUp(92);
Wait(200);
SendKeys('shutdown -s -f -t 00' + chr(13));
end else
TerminateScript;
end;

procedure Randoms;
begin
FindMod;
if FindDead or not loggedin then NextPlayerSetup;
if FindQuiz then SolveQuiz;
IsPlantPresent;
FindTalk;
FindNormalRandoms;
end;

procedure DropMice;
begin
if FindDead or not loggedin or NoGameTab then exit;
MyClickAllItemsColorTolWait('wound', 'elease', 150 + random(150), MiceColor, 3);
end;

procedure PickUpMice;
begin
if not FindColorSpiralTolerance(X, Y, 16316665, MSX1, MSY1, MSX2, MSY2, 3) then
Exit;
if FindDead or not loggedin or NoGameTab then exit;
MarkTime(Mark[0]);
repeat
if FindDead or not loggedin or NoGameTab then break;
if FindColorSpiralTolerance(X, Y, 16316665, MSX1, MSY1, MSX2, MSY2, 3) then
Mouse(x, y, 3, 3, true);
FTWait(1 + random(1));
IsPlantPresent;
if TimeFromMark(Mark[0]) > 120000 then break;
until not FindColorSpiralTolerance(X, Y, 16316665, MSX1, MSY1, MSX2, MSY2, 3)
end;

procedure WindMice;
begin
if FindDead or not loggedin or NoGameTab then exit;
MyClickAllItemsColorTolWait('ind', '', 75 + random(150), MiceColor, 5);
PickUpMice;
end;

procedure AntiBan;
begin
if FindDead or not loggedin or NoGameTab then exit;
case random(15) of
0: HoverSkill('agility', false);
1: PickUpMouse;
2: DoEmote(1 + random(12));
3: MMouse(x, y, (10 + random(400)), (10 + random(400)));
4: MouseSpeed := 13 + random(5);
5: RandomRClick;
6: PickUpMouse;
7: Wait2(500 + random(2000), true);

end;
end;

procedure Iff;
begin
if not LoggedIn or FindDead then NextPlayerSetup;
end;

procedure SetUp;
begin
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
Mice := BitmapFromString(13, 15, 'beNpjYEAFjGCEHzC21Q' +
'oEeHPiVcl4dr/k9ZNSnQ0CQIRDJcguoJrNy8WeXJVZPkcEmzLGbZM' +
'mAMn9m8Q3LBG9elxq51qxCe2CGCoZp1WUQQwEKgOalp/Bi8t5i5oa' +
'ICo/P5bF74W61BQguW/r1hVz5+AOGca9WzbfvXHj9vVrF0+f3rRsW' +
'UddHTbFjI/v33/35s3XL19ePnt2cMeOM0ePaGsrqavLo6pkfPH0KV' +
'DNzx8/gOTnjx8N9NWACFMZ0JC/f//+/vXr+7dv375+NTHRBCoD2t5' +
'QXoZm76+fP4EqgSRQ8Z8/f4DOOHHgQGdeLqZPgAr+wsDTR48eXLq4' +
'e/pUXBGHjgBZPY1i');
MouseSpeed := 12 + random(4);
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
LogInPlayer;
SetRun(True);
HighestAngle;
MakeCompass('E');
GameTab(4);
MiceColor := AutoColorThis(Mice, 10, MIX1, MIY1, MIX2, MIY2);
StartMice := CountItemBmpTol(Mice, 5);
FreeBitmap(Mice);
GetLevelz;
end;

Procedure PlayerCheck;
begin
If HowManyPlayerz > 1 then NextPlayerTrueSetup else exit;
end;

begin
SetupSRL;
ScriptID := '527';
SRLID := MySRLID;
SRLPassword := MySRLPassword;
if SRLID = '' then TerminateScript;
ChangeReportWidth(5);
SRLPlayerForm(true, [], [], [], []);
DisguiseSCAR;
ActivateClient;
SetUp;
repeat
LoopPlayed := LoopPlayed + 1;
MarkTime(NoRandoms);
if NoGameTab then Randoms;
Iff;
AntiBan;
WindMice;
DropMice;
PickUpMice;
Randoms;
if LoopPlayed mod 5 = 0 then GetLevelz;
If TimeFromMark(NoRandoms) > 450000 then PlayerCheck;
until NoActivePlayersLeft;
ShutDown;
end.


The script is heavily changed (at least in my terms), and now runs much better. In fact, check out this proggie I go today with it:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EvilChicken's AgilityMiceTrainer v1.5!
Has been running for: 1 Hours, 27 Minutes and 24 Seconds
********: Active:T| Started with 9 mice| Startlvl:50
Current level: 53 | XP gained: 24945
Plese post this progress report.
Thank you for using EvilChicken's AgilityMiceTrainer!
__________________________________________________________
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Found NickName
******** FOUND TALKING RANDOM TEXT********: Talk-to Miles
Certer Missed

/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
| SRL 4 Randoms Report
| www.srl-forums.com
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| Talks : 6
| Old Men : 2
| Capn Hand[s] : 3
| Certers Solved : 1
| Boxes Solved : 1
\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/

The best thing on the entire agility script for me, is the improver random handling.

The scripts are still in a somehow dissapointing state now, I have two pages with improvement suggestions that I wrote down for each script - school has just gotten the best of me.
(3 projects this week only =.=)

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

Santa_Clause

2007-12-09 23:28:07

Yes fo' sho'!

Bullzeye's just being annoying.

[-jesus-]

2007-12-09 23:36:24

yesh

Sp0rky

2007-12-09 23:38:27

yes. up to srl member stadard and a great members of the community.

bullzeye95

2007-12-09 23:39:52

From: Santa_Clause
Yes fo' sho'!

Bullzeye's just being annoying.


…?

Santa_Clause

2007-12-09 23:42:38

From: bullzeye95
…?


It wasn't you that voted no?

Sp0rky

2007-12-09 23:43:29

He definaely deserves it imo.

bullzeye95

2007-12-09 23:47:46

From: Santa_Clause
It wasn't you that voted no?


I did it again, didn't I? I instinctively vote no because of all the bad apps. It's a habbit :p. FHKFHKFHK

But how did you see what I voted for?

Santa_Clause

2007-12-09 23:56:39

I'm psychic :p

Nah…you were viewing the thread and there was a 'no' vote right after EvilChicken posted the thread.

bullzeye95

2007-12-09 23:58:35

I was the second no. Who was the first? :garfield:

Dudenow12

2007-12-10 01:25:47

Looks good yes from me too. But one thing I would add is + random(Time:Integer) to the waits because if you don't you might get banned because it does the same thing exactly the same every time.

Rikje

2007-12-10 01:27:32

the scripts are oke :)
you're a nice guy and care about the community. yes from me ;)

Negaal

2007-12-10 04:04:04

From: rikjess
the scripts are oke :)
you're a nice guy and care about the community. yes from me ;)


:) yes

edit: where did he got no'es?

Narcle

2007-12-10 04:17:29

Yes from me.

Its sad seeing community members with more posts then members. lol ;)

King of Knives

2007-12-10 08:46:36

Yes'd yaw ass :D

You deserve it. You are also active, and not afraid to post.

-Knives

LordGregGreg

2007-12-10 08:58:04

This is all very good. It is obvious by some of the have made, litdoke the shuyouwn, and the discuese method, that you know what you are doing enough to play around a bit.

And you use seimicolons, and standards.

And you are helpfull around the forum

yes.

n3ss3s

2007-12-10 09:40:14


{*******************************************************************************
Procedure MyMouseItem(i: Integer; left: Boolean);
By: WT-Fakawi, modified insignificantly by me for imcreased randomness.
Description: Moves mouse to specified inventory spot
*******************************************************************************}

procedure MyMouseItem(i: Integer; left: Boolean);
var
TB: TBox;
begin
TB := InvBox(i);
GameTab(4);
Mouse((TB.x1 + TB.x2) / 2, (TB.y1 + TB.y2) / 2, 6, 6, left);
end;


{*******************************************************************************
procedure MouseItem(i: Integer; left: Boolean);
By: WT-Fakawi
Description: Moves Mouse to invin spot then clicks left or right
*******************************************************************************}

procedure MouseItem(i: Integer; left: Boolean);
var
TB: TBox;
begin
TB := InvBox(i);
GameTab(4);
Mouse((TB.x1 + TB.x2)/2, (TB.y1 + TB.y2)/2, 2, 2, left);
end;

Why didnt you just do maybe a proc like


Procedure OperateItem(Item, RandX, RandY: Integer; Left, Click: Boolean);
Var
TB: TBox;
Begin
If Not LoggedIn Then Exit;
GameTab(4);
TB := InvBox(Item);
If Click Then
Mouse((TB.x2 - TB.x1) / 2, (TB.y2 - TB.y1) / 2, RandX, RandY, Left)
Else
MMouse((TB.x2 - TB.x1) / 2, (TB.y2 - TB.y1) / 2, RandX, RandY);
End;


Small thing, but a thing.



Also, maybe not use FindChatText in the responder?

InChat would be better so you won't respond two times to same question caused by seeing the text anywhere in the chatbox.



I would want more creativity for object finding, but thats me.


Its a yes from me, but I wont vote, just think of it as a yes :)

GoF

2007-12-10 10:39:13

Hmmmmm….. Not sure. Quite simple IMO, but you're a nice guy. Imma vote later.

From: Narcle
Yes from me.

Its sad seeing community members with more posts then members. lol ;)


Spamming is not a achievement ;)

the scar noob

2007-12-10 15:01:23

Why do I always want to vote no if everybody else votes yes?:(
I think I'm not going to vote.

-Tsn.

Hugolord

2007-12-10 15:17:12

yesh! TSN, tell us why not

Sir R. M8gic1an

2007-12-16 08:17:14

this was posted nearly a week ago.
75% yes, let him in already?

EvilChicken!

2007-12-16 12:21:50

Thank you! Thanks to all of you!!

And, people who voted no.. Can you please post why you voted no, so I can improve whatever it is thats wrong.

Naum

2007-12-18 15:45:39

Tsn told me only!! :p . Man this script is like good thats a definate mother fuckin yesh nigga



Edit: Mod's/Admins do the hounours?

P1nky

2007-12-18 15:52:38

yup it is naum just chill with the lango =) you can get in trouble =Z

R0b0t1

2007-12-18 17:00:46

I will continue to bump this until he gets in maybe?

EvilChicken!

2007-12-19 01:45:30

Thnak you so much, all of you!

From: R0b0t1
I will continue to bump this until he gets in maybe?


Um. I definetly won't have anything against it. :p

Anyway, here's a better better version of my agiltymicetrainer.

{
___ _ _ ## ___ ## ___ ___ __ ____
|| \\ // || || // || || || // || // || ||\\ || //
||_ \\ // || || || ||__|| || || ||// ||_ || \\ || \\___
|| \\ // || || || || || || \\ ||\\ || || \\ || \\
||__ \\_// || ||__ \\___ || || || \\__ || \\ ||__ || \\|| ___//
AgilityMiceTrainer!

A script that will wind, release and catch toy mice over and over again.

Current version: 1.7 / Pre-alpha stages. Need feedback/improvement suggestions.

______________________________________________________________________________
| |
| FEATURES: |
|______________________________________________________________________________|

- Multplayer.
- SRL Stats.
- Average antiban, implemented non-autoer-ish into the mainloop.
- A part of the antiban is varying mousespeed with a variation of 3-/+.
- Autocoloring.
- Function to randomly disguse scar.
- Poor plant random handlig. Better than nothing.
- Good random event detection with randomfinding functions built-in in almost
every procedure and function, including moderator detection.
- Optional computer shutdown when all players are inactive.
- The SRL PlayerForm.
- Progress report with xp gained for all players.

- For more info, go to this page:


______________________________________________________________________________
| |
| POSSIBLE IMPROVEMENTS: |
|______________________________________________________________________________|

- Make the script drop random event
______________________________________________________________________________
| |
| INSTRUCTIONS: |
|______________________________________________________________________________|

1. Use with latest SCAR Divi 3.12c and Revision #7.
2. Drag crosshair over client window.
3. Edit line 31 & 32.
4. Press play.
5. The SRL PlayerForm should pop up. The first time using it, fill in players
and click "Exit -> Save and Start". All other times using this, just go
straight to "Exit -> Start".
6. HAVE A RING OF LIFE EQUIPPED.
}
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Magic.scar}

const
MySRLID = '1531';
MySRLPassword = 'hgejnLCp9p';
ShutdownPC = False; // Shutdown pc when player is unable to continue?
HowmanyPlayerz = 1; // How many players are used?
SpeedOfMouse = 15; // Mouse speed. 12-18 reccomended, a random of 3+/- will be added.
TalkAfterHovering = True; // Say random stuff sometimes after hovering skill?

var
X, Y, NoRandoms, StartMice, MiceColor, LoopPlayed, Mice, SpiidOfMouse:Integer;
Mark: array[0..2] of integer;

Procedure ForHoveringSkill;
Begin
If TalkAfterHovering then
case Random(23) of
1: TypeSend('omg almost ' + IntToStr(Players[CurrentPlayer].Integers[2] + 1) + '!');
2: TypeSend('w00t almost ' + IntToStr(Players[CurrentPlayer].Integers[2] + 1) + ' agil');
3: TypeSend('yay ' + IntToStr(Players[CurrentPlayer].Integers[2] + 1) + ' agil s00n y4y!');
4: TypeSend('ahh only ' + IntToStr(Players[CurrentPlayer].Integers[2]) + ' =[ ');
5: TypeSend('.... omg...');
6: TypeSend('ffs so long till next level..');
7: TypeSend('omg 0.o .. next level in a while..');
8: TypeSend('yay next lvl soon!');
end;
end;

procedure AntiBan;
begin
if FindDead or not loggedin or NoGameTab then exit;
case random(25) of
0: Begin
HoverSkill('agility', false);
ForHoveringSkill;
FTWait(1 + random(2)); // Sometimes it clicks the skill it hovers..
end;
1: PickUpMouse;
2: DoEmote(1 + random(12));
3: MMouse(x, y, (10 + random(400)), (10 + random(400)));
4: ArrangeInv;
5: RandomRClick;
6: PickUpMouse;
7: Wait2(500 + random(4500), true);
8: MMouse(1 + random(550), 1 + random(550), 20, 20);
9: MouseSpeed := SpeedOfMouse - random(3) + random(3);
end;
end;

function IsPlantPresent: Boolean;
begin
Result := FindColorSpiralTolerance(x, y, 878416, MSX1, MSY1, MSX2, MSY2, 5);
if result = false then exit else Mouse(x, y, 2, 2, true);
if InBlackChat('ready') then begin
Wait(15000 + random(2500));
repeat
FindColorSpiralTolerance(x, y, 878416, MSX1, MSY1, MSX2, MSY2, 5);
Mouse(x, y, 1, 2, true);
Wait(2500 + random(1500));
until InBlackChat('fruit') or not
FindColorSpiralTolerance(x, y, 878416, MSX1, MSY1, MSX2, MSY2, 5);;
Exit;
end;
end;

function NoActivePlayersLeft: Boolean;
var
I: Integer;
begin
for I := 0 to HowmanyPlayerz - 1 do
if Players[I].Active then
Exit;
Result := True;
end;

procedure PlayerReport;

var
Active: string;
I: Integer;

begin
for I := 0 to HowmanyPlayerz - 1 do
if Players[I].Active = True then Active := 'T| ' else Active := 'F| ';
WriteLn(' ' + Capitalize(Players[I].Name) + ': Active:' + Active +
'Started with ' + IntToStr(StartMice) + ' mice' + '| Startlvl:' +
IntToStr(Players[I].Integers[0]));
WriteLn(' Current level: ' + IntToStr(Players[I].Integers[2]) +
' | XP gained: ' + IntToStr(Players[I].Integers[3] -
Players[I].Integers[1]));
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn('__________________________________________________________');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' EvilChicken''s AgilityMiceTrainer v1.7!');
WriteLn(' Has been running for: ' + TimeRunning);
PlayerReport;
WriteLn(' Thank you for using EvilChicken''s AgilityMiceTrainer!');
WriteLn('__________________________________________________________');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;

Procedure GetLevelz2;
begin
Players[Currentplayer].Integers[2] := GetSkillLevel('Agility');
MMouse(643, 253, 10, 10);
FTWait(1 + random(2));
Players[Currentplayer].Integers[3] := GetXp('agility');
ForHoveringSkill;
ProgressReport;
end;

procedure GetLevelz1;
begin
Players[Currentplayer].Integers[0] := GetSkillLevel('Agility');
MMouse(643, 253, 10, 10);
FTWait(1 + random(1));
Players[CurrentPlayer].Integers[1] := GetXP('Agility');
ForHoveringSkill;
GetLevelz2;
end;

procedure PickUpMice;
begin
if not FindColorSpiralTolerance(X, Y, 16316665, MSX1, MSY1, MSX2, MSY2, 5) or
FindDead or not loggedin or NoGameTab then exit;
MarkTime(Mark[0]);
repeat
if FindDead or not loggedin or NoGameTab then break;
if FindColorSpiralTolerance(X, Y, 16316665, MSX1, MSY1, MSX2, MSY2, 5) then
Mouse(x + Random(4) - random(4), y + Random(4) - random(4), 0, 0, true);
FindTalk;
IsPlantPresent;
Wait(15 + random(650));
if TimeFromMark(Mark[0]) > 40000 then break;
until not FindColorSpiralTolerance(X, Y, 16316665, MSX1, MSY1, MSX2, MSY2, 5)
end;

procedure NextPlayerSetup;
begin
ProgressReport;
NextPlayer(False);
Mice := BitmapFromString(13, 15, 'beNpjYEAFjGCEHzC21Q' +
'oEeHPiVcl4dr/k9ZNSnQ0CQIRDJcguoJrNy8WeXJVZPkcEmzLGbZM' +
'mAMn9m8Q3LBG9elxq51qxCe2CGCoZp1WUQQwEKgOalp/Bi8t5i5oa' +
'ICo/P5bF74W61BQguW/r1hVz5+AOGca9WzbfvXHj9vVrF0+f3rRsW' +
'UddHTbFjI/v33/35s3XL19ePnt2cMeOM0ePaGsrqavLo6pkfPH0KV' +
'DNzx8/gOTnjx8N9NWACFMZ0JC/f//+/vXr+7dv375+NTHRBCoD2t5' +
'QXoZm76+fP4EqgSRQ8Z8/f4DOOHHgQGdeLqZPgAr+wsDTR48eXLq4' +
'e/pUXBGHjgBZPY1i');
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
SetRun(True);
HighestAngle;
MakeCompass('E');
GameTab(4);
MiceColor := AutoColorThis(Mice, 10, MIX1, MIY1, MIX2, MIY2);
StartMice := CountItemBmpTol(Mice, 5);
FreeBitmap(Mice);
GetLevelz1;
ProgressReport;
end;

Procedure EvilMouseItem(i: Integer; Click, Left: Boolean);
var
TB: TBox;
begin
TB := InvBox(i);
GameTab(4);
If Click then
Mouse((TB.x1 + TB.x2)/2, (TB.y1 + TB.y2)/2, 6, 6, Left)
else
MMouse((TB.x1 + TB.x2)/2, (TB.y1 + TB.y2)/2, 6, 6);
end;

procedure NextPlayerTrueSetup;
begin
ProgressReport;
NextPlayer(True);
Mice := BitmapFromString(13, 15, 'beNpjYEAFjGCEHzC21Q' +
'oEeHPiVcl4dr/k9ZNSnQ0CQIRDJcguoJrNy8WeXJVZPkcEmzLGbZM' +
'mAMn9m8Q3LBG9elxq51qxCe2CGCoZp1WUQQwEKgOalp/Bi8t5i5oa' +
'ICo/P5bF74W61BQguW/r1hVz5+AOGca9WzbfvXHj9vVrF0+f3rRsW' +
'UddHTbFjI/v33/35s3XL19ePnt2cMeOM0ePaGsrqavLo6pkfPH0KV' +
'DNzx8/gOTnjx8N9NWACFMZ0JC/f//+/vXr+7dv375+NTHRBCoD2t5' +
'QXoZm76+fP4EqgSRQ8Z8/f4DOOHHgQGdeLqZPgAr+wsDTR48eXLq4' +
'e/pUXBGHjgBZPY1i');
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
SetRun(True);
HighestAngle;
MakeCompass('E');
GameTab(4);
MiceColor := AutoColorThis(Mice, 10, MIX1, MIY1, MIX2, MIY2);
StartMice := CountItemBmpTol(Mice, 5);
FreeBitmap(Mice);
GetLevelz2;
end;

procedure DisguiseSCAR;
begin
case Random(6) of
0: Disguise('Untitled - Paint');
1: Disguise('YouTube - Broadcast Yourself. - Microsoft Internet Explorer');
2: Disguise('Untitled - Microsoft Word');
3: Disguise('Google - Microsoft Internet Explorer');
4: Disguise('Windows Media Player');
5: Disguise('Untitled - Notepad');
end;
end;

Procedure MyClickAllItemsColorTolWait(uptext, option: string; waitnum, color,
tol: Integer);
var
i, x, y: Integer;
TB: Tbox;
arr:array of Integer;
begin
arr :=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,28];
for i := 1 to 28 - 4 do
Swap(arr[RandomRange(i - 1, i + 4)], arr[RandomRange(i - 1, i + 4)] );
GameTab(4);
for i := 0 to 27 do
begin
TB := InvBox(arr[i]);
if ExistsItem(arr[i]) and
FindColorTolerance(x, y, color, TB.x1, TB.y1, TB.x2, TB.y2, tol) then
begin
EvilMouseItem(arr[i], false, true);
Wait(35 + random(35));
If IsUpText(uptext) then
begin
if (not (option = '')) then
begin
EvilMouseItem(arr[i], true, false);
ChooseOption(option);
FindNonInventoryRandoms;
Wait(waitnum);
end
else
begin
EvilMouseItem(arr[i], true, true);
FindNonInventoryRandoms;
Wait(waitnum);
end;
end;
end;
end;
end;

procedure WindMice;
begin
if FindDead or not loggedin or NoGameTab then exit;
MyClickAllItemsColorTolWait('ind', '', 25 + random(250), MiceColor, 5);
PickUpMice;
FindNormalRandoms;
AntiBan;
end;

procedure ShutDown;
begin
if ShutdownPC
then begin
KeyDown(92);
KeyUp(92);
Wait(200);
SendKeys('u');
SendKeys('u');
Wait(30000); // If the PC still is turned on, failsafe.
KeyDown(92);
Wait(200);
KeyDown(82);
Wait(200);
KeyUp(82);
Wait(200);
KeyUp(92);
Wait(200);
SendKeys('shutdown -s -f -t 00' + chr(13));
end else begin
LogOut;
ProgressReport;
TerminateScript;
end;
end;

procedure Randoms;
begin
FindMod;
if FindDead or not loggedin then NextPlayerSetup;
if FindQuiz then SolveQuiz;
IsPlantPresent;
FindTalk;
FindNormalRandoms;
//DwarfItem;//Remove the //'s if you want to drop kebab & beer from the dwarf random.
end;

procedure DropMice;
begin
if FindDead or not loggedin or NoGameTab then exit;
MyClickAllItemsColorTolWait('wound', 'elease', 150 + random(150), MiceColor, 3);
end;

procedure SetUp;
begin
UseFindMod := True;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
Mice := BitmapFromString(13, 15, 'beNpjYEAFjGCEHzC21Q' +
'oEeHPiVcl4dr/k9ZNSnQ0CQIRDJcguoJrNy8WeXJVZPkcEmzLGbZM' +
'mAMn9m8Q3LBG9elxq51qxCe2CGCoZp1WUQQwEKgOalp/Bi8t5i5oa' +
'ICo/P5bF74W61BQguW/r1hVz5+AOGca9WzbfvXHj9vVrF0+f3rRsW' +
'UddHTbFjI/v33/35s3XL19ePnt2cMeOM0ePaGsrqavLo6pkfPH0KV' +
'DNzx8/gOTnjx8N9NWACFMZ0JC/f//+/vXr+7dv375+NTHRBCoD2t5' +
'QXoZm76+fP4EqgSRQ8Z8/f4DOOHHgQGdeLqZPgAr+wsDTR48eXLq4' +
'e/pUXBGHjgBZPY1i');
MouseSpeed := SpeedOfMouse - random(3) + random(3);
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
LogInPlayer;
SetRun(True);
HighestAngle;
MakeCompass('E');
GameTab(4);
MiceColor := AutoColorThis(Mice, 10, MIX1, MIY1, MIX2, MIY2);
StartMice := CountItemBmpTol(Mice, 5);
FreeBitmap(Mice);
GetLevelz1;
MarkTime(NoRandoms);
end;

Procedure MouseChangeSpeed;
Begin
SpiidOfMouse := Random(6);
If SpiidOfMouse = 3 then
MouseSpeed := SpeedOfMouse - random(3) + random(3) else exit;
end;

Procedure PlayerCheck;
begin
If HowmanyPlayerz > 1 then NextPlayerTrueSetup else exit;
end;

begin
SetupSRL;
ScriptID := '527';
SRLID := MySRLID;
SRLPassword := MySRLPassword;
if SRLID = '' then TerminateScript;
DisguiseSCAR;
SRLPlayerForm(true, [], [], [], []);
ActivateClient;
SetUp;
repeat
LoopPlayed := LoopPlayed + 1;
if not LoggedIn or FindDead then NextPlayerSetup;
if NoGameTab or InBlack then Randoms;
AntiBan;
MouseChangeSpeed;
WindMice;
MouseChangeSpeed;
DropMice;
MouseChangeSpeed;
FindMod;
PickUpMice;
MouseChangeSpeed;
Randoms;
if LoopPlayed mod 5 = 0 then GetLevelz2;
If LoopPlayed mod 2 = 0 then MouseSpeed := SpeedOfMouse;
{ If LoopPlayed > 5 then ReportVars[0] := Players[CurrentPlayer].Integers[3] -
Players[CurrentPlayer].Integers[1];}
If TimeFromMark(NoRandoms) > 450000 then PlayerCheck;
until NoActivePlayersLeft;
ShutDown;
end.

Unfortunately it gets a runtime error in the proggie part.
And I didn't have time to replace the HowManyPlayerz const with "GetArrayLength(players)". Anyway. Anyone got a suggestion about thee runtime error in 141?

Since I'm off to school now anyway? Eh? Please? Aww, come on..

Santa_Clause

2007-12-19 04:27:30

procedure PlayerReport;
var
Active: string;
I: Integer;
begin
for I := 0 to HowmanyPlayerz - 1 do
begin
if Players[i].Active = True then
Active := 'T| '
else
Active := 'F| ';

WriteLn(' ' + Capitalize(Players[i].Name) + ': Active:' + Active +
'Started with ' + IntToStr(StartMice) + ' mice' + '| Startlvl:' +
IntToStr(Players[i].Integers[0]));
WriteLn(' Current level: ' + IntToStr(Players[i].Integers[2]) +
' | XP gained: ' + IntToStr(Players[i].Integers[3] -
Players[i].Integers[1]));
end;
end;

Should work…

WT-Fakawi

2007-12-19 05:11:41

In.