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.
And this is my NEWLY IMPROVED agility trainer, not released yet either.
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:
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 –>
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 –>