Golden, how do you get the form to pop up?
Printable View
Golden, how do you get the form to pop up?
the form should just open a few seconds after you push run script... as long as you have use form as true. wat happens when you push play?
Everyone who has that problem with the loggin where it opens the graphics options menu and stays there try this:
just under the credits you should find this:
{.include srl/srl.scar}
{.include SRL/SRL/misc/Users.scar}
replace it with this:
{.include SRL/SRL/misc/Smart.scar
{.include srl/srl.scar}
{.include SRL/SRL/misc/Users.scar}
It doesnt actually open SMART or anything but for some reason it made it work for me... no idea why lolz...
Edit: Scratch all that crap i just wrote,(there isnt even a little closed perenthisis thingy anywho...) it seems to work if you position SCAR in a way so that the BOTTOM of the targeted RS client window thing is visible, and start logged out... finally works... sexy time!
It still doesn't work.
EDIT: I keep getting this when I hit play.
Include file C:\Program Files\SCAR 3.15\includes\srl\srl.scar does not exist.
Include file C:\Program Files\SCAR 3.15\includes\SRL\SRL\misc\Users.scar does not exist.
Failed when compiling
EDIT: What version of Scar are you using? I think mine doesn't work with Narcles.
Looks nice - downloading now. I'll try after im finished with the willow whacker. If it works nicely I'll be happy to post you a proggie :)
nice script narcle, first ever script i have ran and it seemed to work great :D
Gd job
every time i press run i get not just for urs for every script i run help
Line 238: [Error] (273:1): Duplicate identifier 'TBox' in script C:\Program Files\SCAR 3.15\includes\srl\srl\core\Globals.scar
Nice script! But for me it only works for about 9 minutes, then it logs me out. I think it tries to log me back in, but it doesnt type in my info. Can someone help me out?
I didnt put any info in for players 1, 2, or 3. And i have tried it several times, but everytime it logs me out without logging me back in. Also, my laptop is widescreen if that effects anything..?
on my desktop computer i cant get it to start. i put in all my info and click the play button, and it gies me-
Line 10: [Error] (63:1) : Unable to register function function FindGapsTPA(TPA : TPointArray; MinPixles: Integer): T2DPointArray; in script C:\PROGRAM FILES\SCAR 3.12\includes\SRL/SRL/Core/Globals.scar
Edit: I noticed that on my laptop theres a little box on the bottom right of the scar window that says Narcle spelled out with lines and stuff. When i tried it on my desktop, it didnt have that box.
I get this error after it kills one monster: [Runtime Error] : Exception: Access violation at address 006D4E35 in module 'scar.exe'. Read of address 00000030 in line 239 in script C:\Program Files\SCAR 3.15\includes\SRL/SRL/Core/AntiRandoms/AntiRandoms.scar
This script doesnt work for ranging does it?
Best fighter iv seen, great work!
************************************************** *
| Fast Fighter v3.02 | 8h:25m:38s |
************************************************** *
| Total Kills: 1388 | Total XP: 12728 |
| XP/hour: 1512 | Food Ate: 0 |
| Round Kills: 21 | Round XP : 236 |
************************************************** *
thats on chicken on my pure def
this is a great autofight script.
************************************
| Fast Fighter v3.02 | 2h:31m:26s |
*************************************
| Total Kills: 714 | Total XP: 27992 |
| XP/hour: 11123 | Food Ate: 61 |
| Round Kills: 56 | Round XP : 1148 |
| Ammo Remain: 4844 | Ammo used: 1905 |
| Ammo Used/hour: 757 | |
************************************
best autofighter ever!
i used it to train range. from level 66-70 in 2 days^^
i tried to do it overnight but it logged me out for a reason after 2 hours.
If its logging you out and not logging you back in thats due to IE not the script (Internet Explorer). Download Mozilla FireFox and use that instead. (I think thats on www.mozilla.com :D)
very nice script, I havnt left it on over night but from what I see It will work very nicely
can you make it so it can pick your arrows up and wield it?
Whenever a swarm event pops up my character just sits their wasting the fish. Will it do something else?
************************************************** *
| Fast Fighter v3.02 | 0h:48m:25s |
************************************************** *
| Total Kills: 105 | Total XP: 10336 |
| XP/hour: 12920 | Food Ate: 20 |
| Round Kills: 41 | Round XP : 1784 |
************************************************** *
Another Progress report coming soon, this one I stopped manually, The next one should be much longer hopefully.
awesome man
A proggy while training my range
************************************************** *
| Total Kills: 4890 | Total XP: 108804 |
| XP/hour: 17001 | Food Ate: 0 |
| Round Kills: 135 | Round XP : 2748 |
| Ammo Remain: 10904 | Ammo used: 4723 |
| Ammo Used/hour: 738 | |
************************************************** *
Thanks
************************************************** *
| Fast Fighter v3.02 | 8h:7m:20s |
************************************************** *
| Total Kills: 2666 | Total XP: 88484 |
| XP/hour: 10902 | Food Ate: 447 |
| Round Kills: 48 | Round XP : 1692 |
************************************************** *
The best script I have used so far. From level 40 to level 53.
Do you have to have a browser other than internet explorer to use this? Cause it works on my fire fox, but not on my internet explorer. I had to delete fire fox, and cant use it anymore. :( Is there a way to make it work for internet explorer?
nice script heres a few Progress reports killed a few cows
Fast Fighter v3.02 | 2h:27m:34s |
************************************************** *
| Total Kills: 1274 | Total XP: 18224 |
| XP/hour: 7438 | Food Ate: 0 |
| Round Kills: 62 | Round XP : 960 |
****************************************
| Fast Fighter v3.02 | 6h:8m:0s |
************************************************** *
| Total Kills: 3264 | Total XP: 40544 |
| XP/hour: 6610 | Food Ate: 0 |
| Round Kills: 118 | Round XP : 1296
Fast Fighter v3.02 | 7h:4m:25s |
************************************************** *
| Total Kills: 3977 | Total XP: 52664 |
| XP/hour: 7452 | Food Ate: 0 |
| Round Kills: 106 | Round XP : 1204
| Fast Fighter v3.02 | 7h:0m:31s |
************************************************** *
| Total Kills: 4047 | Total XP: 50736 |
| XP/hour: 7248 | Food Ate: 0 |
| Round Kills: 106 | Round XP : 888
| Fast Fighter v3.02 | 8h:52m:29s |
************************************************** *
| Total Kills: 4987 | Total XP: 65172 |
| XP/hour: 7350 | Food Ate: 192 |
| Round Kills: 103 | Round XP : 1344
| Fast Fighter v3.02 | 8h:48m:45s |
************************************************** *
| Total Kills: 5208 | Total XP: 55092 |
| XP/hour: 6260 | Food Ate: 0 |
| Round Kills: 98 | Round XP : 1388
It keeps sayin "type mismatch error in script" on the part of
SRLId:= MySRLID
How to fix?
I set the form, but my mouse just gets stuck on the top right of screen and doesn't move.My guy just stands there. Is there smart for this script?
very nice script! :D
Can someone plz answer is there smart for this script or not? also any recommendations to a autofighter that has smart?
I wasn't having much luck on my last attempt at trying this, but I will try my best to get this working. It truly looks fascinating. I'll post my proggies if I can get it to work as well.
heres some more prog reports
| Fast Fighter v3.02 | 6h:46m:12s |
************************************************** *
| Total Kills: 3931 | Total XP: 44340 |
| XP/hour: 6553 | Food Ate: 0 |
| Round Kills: 116 | Round XP : 1508 |
************************************************** *
| Fast Fighter v3.02 | 6h:48m:56s |
************************************************** *
| Total Kills: 4503 | Total XP: 39056 |
| XP/hour: 5744 | Food Ate: 0 |
| Round Kills: 135 | Round XP : 1320 |
************************************************** *
u can make it smart btw
Failed when compiling
Line 46: [Error] (276:11): Unknown identifier 'CreateTPAFromBMP' in script C:\Program Files\SCAR 3.15\includes\SRL/SRL/Core/Math.scar
This is what pops up when I'm trying to run this script.
Quote:
{------------------------------Script Info-------------------------------------|
| ScriptName = Fast Fighter |
| Author = Narcle |
| Description = Fights any monster, food eating and HP regen. |
| Version = 3.02 |
| Date = 11/03/08 |
|_________________________________________________ _____________________________|
|----------------------Instructions, Credits & Help info-----=-----------------|
| |
| Instructions: |
| Setup: 1. Select form or no form [In constants - true/false] |
| 2. Input SRL-stats ID & Password [In constants] |
| 3. Get a HP count of monster for form. |
| 4. Make sure you use the Color picker and select 3 colors |
| from monster, and copy/paste them into notepad. |
| 5. Read the "Need to knows" below. |
| 6. Push play! |
| |
| Need to knows: |
| -In the player form; (default) is next to each option, meaning |
| you can leave it blank if you want it to use default settings. |
| -Options for "Skill to train" are > strength, attack, defence, |
| even, pure, accurate, rapid or longrange < |
| |
| Credits: |
| -HyperSecret for posting his SecretFighter (v0.50) script |
| -Chitin & Cruel100 for Testing and Suggestions |
|_________________________________________________ _____________________________}
{.include srl/srl.scar}
{.include SRL/SRL/misc/Users.scar}
{------------------------------------------------------------------------------}
{===============================Player Setup===================================}
{------------------------------------------------------------------------------}
Const
MySRLID = '****';//example: '9999'
MySRLPassword = '*******';//example: 'password'
UseForm = true;//Use form? [true/false] False uses DeclarePlayers;
{================================================= =============================}
{!!!!! If UseForm = true; then DeclarePlayers does not APPLY! !!!!!}
{================================================= =============================}
procedure DeclarePlayers;
begin
if not(UseForm) then
begin
HowManyPlayers := 1;//Change this accordingly
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :=''; //Character Name
Players[0].Pass :=''; //Character Pass
Players[0].Nick :=''; //Nickname 3 - 4 Letter's of char name
Players[0].Active := True; //True if you want this player to be ran in the script, false if not
Players[0].Booleans[0] := false;//Eat food? true/false
Players[0].Integers[0] := 0;//1st color of monster
Players[0].Integers[1] := 0;//2nd color of monster
Players[0].Integers[2] := 0;//3rd color of monster
Players[0].Strings[0] := '';//monster name
Players[0].Strings[1] := 'even'; //the skill you want to train > strength, attack, defence, pure, even, accurate, rapid or longrange <
{
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Active:=True;
Players[1].Booleans[0] := false;//Eat food? true/false
Players[1].Integers[0] := 0;//1st color of monster
Players[1].Integers[1] := 0;//2nd color of monster
Players[1].Integers[2] := 0;//3rd color of monster
Players[1].Strings[0] := '';//monster name
Players[1].Strings[1] := 'even'; //the skill you want to train
}
{
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Active:=True;
Players[2].Booleans[0] := false;//Eat food? true/false
Players[2].Integers[0] := 0;//1st color of monster
Players[2].Integers[1] := 0;//2nd color of monster
Players[2].Integers[2] := 0;//3rd color of monster
Players[2].Strings[0] := '';//monster name
Players[2].Strings[1] := 'even'; //the skill you want to train
}
{
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Active:=True;
Players[3].Booleans[0] := false;//Eat food? true/false
Players[3].Integers[0] := 0;//1st color of monster
Players[3].Integers[1] := 0;//2nd color of monster
Players[3].Integers[2] := 0;//3rd color of monster
Players[3].Strings[0] := '';//monster name
Players[3].Strings[1] := 'even'; //the skill you want to train
}
{------------------------------------------------------------------------------}
{========================Don't edit below this!===============================}
{------------------------------------------------------------------------------}
Writeln('No-Form Setup');
end else
begin
Writeln('Form Setup, "DeclarePlayers" does not apply.');
SRLPlayerForm(True, ['Eat Food'], ['Color 1','Color 2','Color 3'], ['Monster Name (tac)', 'Skill to train (even)'], []);
end;
end;
const
Version = '3.02';
ScriptName = 'Fast Fighter';
Type
FUsers = Record
Melee, Range, Magic, Setup, OutOfFood: Boolean;
Combat: array of array of string;
SkillIs, MobName: string;
Colors: array of integer;
end;
var
NAF: array [0..99] of FUsers;
TKilled, Txp, TFoodate, TArrowAmount, StartXP, ArrowStartAmount, AttackFailed: integer;//Counters
RoundTimer, FailTimer, LogoutTime: integer;//Timers
procedure LogoutSeq(reason:string); forward;
procedure NarclesINI;
begin
SRLid:= MySRLId;
SRLpassword:= MySRLPassword;
if not (MySRLID = '') and not(MySRLPassword = '') then
begin
if (ReadINI('NarclesINI', 'SRLid', AppPath+'Chars.ini')='') then
begin
writeln('#@ Your SRL id & password for SRL-stats has been stored in Chars.ini');
writeln('## To update this just put in new MySRLid & MySRLpassword and push play');
writeln('## After this is done you won''t have to put it in again for newer versions');
end;
WriteINI('NarclesINI', 'SRLid', MySRLID, AppPath+'Chars.ini');
WriteINI('NarclesINI', 'SRLpassword', MySRLPassword, AppPath+'Chars.ini');
end;
if not(ReadINI('NarclesINI', 'SRLid', AppPath+'Chars.ini')='') then
begin
SRLid := ReadINI('NarclesINI', 'SRLid', AppPath+'Chars.ini');
SRLPassword := ReadINI('NarclesINI', 'SRLpassword', AppPath+'Chars.ini');
writeln('#@ SRL id & password loaded from ini file.');
end;
end;
function StrInArr(Str: string; StrArr: TStringArray): Boolean;
var
i, H, L: integer;
begin
L := Low(StrArr);
H := High(StrArr);
for i := L to H do
if Pos(LowerCase(Str), LowerCase(StrArr[i])) > 0 then
begin
Result := true;
Exit;
end;
end;
Function FFWait(Time: Integer): Boolean;
var
T: Integer;
begin
if not(loggedin) then exit;
for T := 1 to time do
begin
if FindNormalRandoms then
begin
FindInventoryRandoms;
Result := true;
end;
if FindTalk then
Result := True;
Wait(200 + Random(50));
end;
end;
function InFight: Boolean;
var
x, y : Integer;
begin
Result := (FindColor(x, y, 65280, 242, 142, 283, 158)
or FindColor(x, y, 255, 242, 142, 283, 158));
end;
function FightOnScreen: Boolean;
var
x,y:integer;
B:TBox;
begin
B:=IntToBox(240, 140, 285, 160);
result := FindColorSkipBox(x, y, 65280, MSX1, MSY1, MSX2, MSY2, B) or
FindColorSkipBox(x, y, 255, MSX1, MSY1, MSX2, MSY2, B);
end;
Function MobsOnScreen: integer;
var
i: integer;
Mobs : TPointArray;
begin
FindColorsTolerance(Mobs, 195836, 598, 67, 656, 105, 0);
if High(Mobs) > 0 then
begin
RAaSTPA(Mobs, 4);
for i := 0 to High(Mobs) do
If InAbstractBox(590, 60, 656, 60, 646, 102, 600, 102, Mobs[i].x, Mobs[i].y) then
begin
result := result + 1;
end;
end;
end;
procedure AntiBan;
begin
if not LoggedIn then Exit;
case Random(58) of
0: wait(500+random(3000));
1: begin
RandomMovement;
SetAngle(true);
end;
2: HoverSkill(NAF[CurrentPlayer].SkillIs ,false);
3: PickUpMouse;
end;
end;
function GetArrowCount:integer;
begin
GameTab(5);
result := GetAmount(666, 249);
end;
function MyEatFood:boolean;
var
i,x,y:integer;
begin
gametab(4);
for i := 1 to 28 do
if ExistsItem(i) then
begin
MMouseItem(i);
GetMousePos(x, y);
wait(150+random(50));
if (pos('Eat', rs_GetUpText) > 0) then
begin
Mouse(x,y,0,0,false);
wait(50+random(50));
if ChooseOption('Eat') then
begin
wait(350+random(150));
Result := true;
Exit;
end;
end;
end;
end;
procedure HpCheck;
var
c:Integer;
RunDir: String;
begin
if (not LoggedIn) or (HPPercent > 50) then
Exit;
if (HPPercent < 50) then
begin
Status('HP low doing HP checks...');
if (Players[CurrentPlayer].Booleans[0]) and not (NAF[CurrentPlayer].OutOfFood) then
begin
if not InvEmpty then
for c := 0 to 2 do
begin
if MyEatFood then
Inc(ReportVars[2]);
if (not LoggedIn) or (HPPercent > 50) then
Exit;
end;
NAF[CurrentPlayer].OutOfFood := true;
end;
if not (Players[CurrentPlayer].Booleans[0]) or (NAF[CurrentPlayer].OutOfFood) then
begin
if (HPPercent < 25) then
if (InFight) then
begin
RunDir := 'nsew';
Status('Running away HP% < 25...');
RunAway(RunDir[random(4)+1], true, 1, 10000 + random(2000));
end;
repeat
Status('HP is ' + inttostr(HPPercent) + '%');
FFWait(4);
case random(5) of
0: BoredHuman;
1: RandomMovement;
end;
MarkTime(FailTimer);
if not LoggedIn or (GetSystemTime > LogoutTime) then
Exit;
until (HPPercent > 50);
SetAngle(true);
end;
end;
end;
procedure WaitFight;
Var
T: integer;
begin
Status('Waiting for Fight...');
if NAF[CurrentPlayer].Range then
T := GetSystemTime - 12000
else
T := GetSystemTime;
while not InFight and (TimeFromMark(T) < 6000) do wait(100);
Status('Fighting...');
repeat
FFWait(1);
HpCheck;
until(not InFight) or (not FightOnScreen) or (not LoggedIn)
end;
procedure Report;
Var
AmmoPerHour, XPpH, CurXP, CurAU, CurAmmo, I,H,M,S:integer;
begin
if not(LoggedIn) then
LoginPlayer;
WaitFight;
ConvertTime(GetTimeRunning, H, M, S);
GetAllLevels;
CurXP := GetXP(NAF[CurrentPlayer].SkillIs);
if (CurXP > StartXP) then
ReportVars[1] := CurXP-Startxp;
ReportVars[0] := Round(ReportVars[0]*0.7);//Miss Click rate
TKilled := TKilled + ReportVars[0];//Total Kills
Txp := Txp + ReportVars[1];//Total XP
TFoodate := TFoodate + ReportVars[2];//Total Food Ate
if NAF[CurrentPlayer].Range then
begin
CurAmmo := GetArrowCount;
if (ArrowStartAmount > CurAmmo) then
CurAU := ArrowStartAmount - CurAmmo;
TArrowAmount := TArrowAmount + CurAU;
AmmoPerHour := Round( TArrowAmount / (H+M/60.0) );
end;
if (HowManyPlayers = 1) then
begin
XPpH := Round( Txp / (H+M/60.0) );//XP per Hour
Cleardebug;
Writeln('***************************************** **********');
Writeln(Padr('| Fast Fighter v'+Version, 23) +' | '+ Padr(inttostr(H) + 'h:' + inttostr(M) + 'm:' + inttostr(S)+'s', 23)+ ' |');
Writeln('***************************************** **********');
WriteLn(Padr('| Total Kills: ' + inttostr(TKilled), 23)+' | '+ Padr('Total XP: ' + inttostr(Txp), 23) + ' |');
WriteLn(Padr('| XP/hour: ' + inttostr(XPpH), 23)+' | '+ Padr('Food Ate: ' + inttostr(TFoodate), 23) + ' |');
WriteLn(Padr('| Round Kills: ' + inttostr(ReportVars[0]), 23)+' | '+ Padr('Round XP : ' + inttostr(ReportVars[1]), 23) + ' |');
If NAF[CurrentPlayer].Range then
begin
writeln(Padr('| Ammo Remain: '+inttostr(GetArrowCount), 23) +' | '+ Padr('Ammo used: ' +inttostr(TArrowAmount), 23)+' |')
writeln(Padr('| Ammo Used/hour: '+inttostr(AmmoPerHour), 23)+' | '+Padr('', 23)+' |');
end;
Writeln('***************************************** **********');
end;
if (HowManyPlayers > 1) then
begin
Players[currentplayer].Integers[11] := Players[currentplayer].Integers[11] + ReportVars[1];//XP
Players[currentplayer].Integers[12] := Players[currentplayer].Integers[12] + ReportVars[0];//Kills
Players[currentplayer].Integers[13] := Players[currentplayer].Integers[13] + CurAU;
Players[currentplayer].Integers[15] := Players[currentplayer].Integers[15] + ReportVars[2];//FoodAte
Players[currentplayer].Integers[31] := Players[currentplayer].Integers[31] + TimeFromMark(RoundTimer);
Players[currentplayer].Integers[32] := Round((Players[currentplayer].Integers[11]*3600.0)/(Players[currentplayer].Integers[31]/1000.0))
ClearDebug;
Writeln('***************************************** ***********************************');
Writeln('| - Multi - Player - Fast Fighter v'+Version+' by Narcle_| Run Time: '+
+Padr( inttostr(H) + 'h:' + inttostr(M) + 'm:' + inttostr(S)+'s',12)+' |');
Writeln('***************************************** ***********************************');
Writeln('| # | Nick | Active | XP Gained | Kills | XP/Hour | Food ate | Ammo Used |');
Writeln('| -- | ALL | Totals | '+Padr(IntToStr(Txp),9) + ' | ' + Padr(IntToStr(TKilled),6)
+ ' | ------- | ' + Padr('Ate: ' + IntToStr(TFoodate),8) + ' | ' + Padr(IntToStr(TArrowAmount),9) + ' |');
For I := 0 to HowManyPlayers - 1 do
begin
Writeln('| '+Padl(IntToStr(I), 2)+' | '+Padr(Players[i].Nick, 4)+' | '+ Padr(BoolToStr(Players[i].Active), 6) + ' | ' +
+ Padr(IntToStr(Players[i].Integers[11]),9) + ' | ' + Padr(IntToStr(Players[i].Integers[12]),6) + ' | ' +
+ Padr(IntToStr(Players[i].Integers[32]),7) + ' | '+ Padr('Ate: ' + IntToStr(Players[i].Integers[15]),8) + ' | ' +
+ Padr(IntToStr(Players[i].Integers[13]),9) + ' |');
end;
Writeln('***************************************** ***********************************');
end;
SendSRLReport;
end;
procedure WeaponLookup(var WeaponArr: array of array of string);
var
x, y, i, ii, T: integer;
Xarr, Yarr: array of integer;
TB: TBox;
TP: TPointArray;
begin
Xarr := [595, 680, 595, 680];
Yarr := [270, 270, 325, 325];
GameTab(1);
SetArrayLength(WeaponArr, 4);
for i := 0 to 3 do
begin
SetArrayLength(WeaponArr[i], 4);
MMouse(Xarr[i], Yarr[i], 12, 12);
T := GetSystemTime + 3000;
repeat
Wait(200);
if GetSystemTime > T then
Exit;
until FindColor(x, y, 10551295, 540, 205, 750, 465);
wait(200);
GetClientDimensions(TB.X2, TB.Y2);
TB := IntToBox(0, 0, TB.X2, TB.Y2);
FindColorsTolerance(TP, 10551295, TB.X1, TB.Y1, TB.X2, TB.Y2, 0);
if Length(TP) = 0 then
Exit;
TB := GetTPABounds(TP);
TB.Y1 := TB.Y1 + 1;
for ii := 0 to 3 do
begin
WeaponArr[i][ii] := LowerCase(GetTextAtEx(TB.X1 + 1, TB.Y1, 0, SmallChars, False, True, 0, 1, - 1, 30, False, tr_AlphaNumericChars));
TB.Y1 := TB.Y1 + 13;
end;
if (GetLetters(WeaponArr[0][0]) = '') then
begin
Writeln('');
Writeln('Weapon Lookup failed, SCAR lost window focus. [Restart SCAR for SMART]');
Writeln('Re-focus SCAR to the RuneScape window using the cross-hairs.');
Exit;
end;
end;
end;
function SetCombat(Kind: string): boolean;
var
i, ii: integer;
begin
try
for i := 0 to 3 do
for ii := 0 to 3 do
if (Pos(Lowercase(Kind), Lowercase(NAF[CurrentPlayer].Combat[i][ii])) > 0) then
begin
Result := SetFightMode(i + 1);
NAF[CurrentPlayer].SkillIs := kind;
Exit;
end;
except
Writeln('');
Writeln('Set Combat failed, SCAR lost window focus. [Restart SCAR for SMART]');
Writeln('Re-focus SCAR to the RuneScape window using the cross-hairs.');
end;
end;
procedure SetupPlayer;
Var
Mode, i:integer;
begin
if not LoggedIn then
Exit;
Status('Setting up player: '+Players[CurrentPlayer].Name+'...');
MouseSpeed := RandomRange(14, 16);
SetAngle(true);
GetAllLevels;
if not NAF[CurrentPlayer].Setup then
begin
WeaponLookup(NAF[CurrentPlayer].Combat);
for i := 0 to 3 do
begin
if StrInArr('ranged', NAF[CurrentPlayer].Combat[i]) then
NAF[CurrentPlayer].Range := true;
if StrInArr('magic', NAF[CurrentPlayer].Combat[i]) then
NAF[CurrentPlayer].Magic := true;
end;
if not (NAF[CurrentPlayer].Magic or NAF[CurrentPlayer].Range) then
NAF[CurrentPlayer].Melee := true;
end;
if NAF[CurrentPlayer].Melee then
begin
case LowerCase(Players[CurrentPlayer].Strings[1]) of
'attack','att': Mode := 1;
'strength','str': Mode := 2;
'defence', 'defense','def': Mode := 3;
'shared', 'controlled','control': Mode := 4;
'even','',' ',' ',' ':
begin
if (Players[CurrentPlayer].level[3] <= Players[CurrentPlayer].level[1]) and (Players[CurrentPlayer].level[3] <= Players[CurrentPlayer].level[2]) then
Mode := 3;
if (Players[CurrentPlayer].level[1] <= Players[CurrentPlayer].level[3]) and (Players[CurrentPlayer].level[1] <= Players[CurrentPlayer].level[2]) then
Mode := 1;
if (Players[CurrentPlayer].level[2] <= Players[CurrentPlayer].level[1]) and (Players[CurrentPlayer].level[2] <= Players[CurrentPlayer].level[3]) then
Mode := 2;
end;
'pure':
begin
if Players[CurrentPlayer].level[2] < 15 then
Mode := 2
else if Players[CurrentPlayer].level[1] < 30 then
Mode := 1
else if Players[CurrentPlayer].level[2] < 25 then
Mode := 2
else if Players[CurrentPlayer].level[1] < 40 then
Mode := 1
else
Mode := 2;
end;
else
begin
writeln('Incorrect skill to train, check your setup and make sure its spelled correctly.');
Mode := 0;
end;
end;
case Mode of
1:if not SetCombat('attack') then
if not SetCombat('strength') then
SetCombat('defence');
2:if not SetCombat('strength') then
if not SetCombat('attack') then
SetCombat('defence');
3:if not SetCombat('defence') then
if not SetCombat('strength') then
SetCombat('attack');
4:if not SetCombat('shared') then
if not SetCombat('strength') then
if not SetCombat('attack') then
SetCombat('defence');
else
begin
SetFightMode(1);
NAF[CurrentPlayer].SkillIs := 'attack';
end;
end;
end;
if NAF[CurrentPlayer].Range then
begin
case LowerCase(Players[CurrentPlayer].Strings[1]) of
'accurate': SetFightMode(1);
'rapid': Setfightmode(2);
'longrange': Setfightmode(3);
'even': Setfightmode(2);
else
begin
writeln('Incorrect skill to train, check your setup and make sure its spelled correctly');
Setfightmode(2);
end;
end;
NAF[CurrentPlayer].SkillIs := 'range';
ArrowStartAmount := GetArrowCount;
if (ArrowStartAmount <= 100) then
begin
LogoutSeq('Low ammo count! (below 100)');
Exit;
end;
end;
if NAF[CurrentPlayer].Magic then
begin
Writeln('Fast Fighter doesn''t support Magic.');
LogoutSeq('No magic support');
Exit;
end;
Retaliate(True);
StartXP := GetXP(NAF[CurrentPlayer].SkillIs);
SetRun(True);
LogoutTime := Getsystemtime + RandomRange(7*60000, 13*60000);
MarkTime(RoundTimer);
MarkTime(FailTimer);
AttackFailed := 0;
end;
procedure LogoutSeq(reason:string);
begin
if(not(loggedin))then exit;
WaitFight;
Status('Logout sequence...');
Report;
AntiBan;
if (reason = '') then
nextplayer(true)
else
begin
Writeln(reason+' '+Players[Currentplayer].Name+' is now inactive.');
nextplayer(false);
end;
SetupPlayer;
end;
procedure SitAndWait;//Super advance I know :P
var
T: integer;
begin
MarkTime(T);
repeat
Status('Sit & Wait...');
if not LoggedIn then
Exit;
FFWait(2);
AntiBan;
HpCheck;
until (TimeFromMark(T) > 30000) or (MobsOnScreen > 0)
end;
function ChangeCamera: boolean;
var
i, II, PosNeg:integer;
begin
Case random(2) of
0: PosNeg := 1;
1: PosNeg := -1;
end;
i := Round(rs_GetCompassAngleDegrees/45 - 1);
if i < 0 then i := 0;
if i > 7 then i := 7;
For II := 0 to 7 do
begin
if (MobsOnScreen > 0) then
begin
result := true;
exit;
end;
i := i+PosNeg;
if i > 7 then i := 0;
if i < 0 then i := 7;
MakeCompass(inttostr(i*45));
end;
end;
function UTWait(UpText: string): Boolean;//Yes idea from munk ;)
var
T: integer;
begin
T := GetSystemTime + 750;
Repeat
wait(25+random(25));
Result := pos(LowerCase(UpText), LowerCase(rs_GetUpText)) > 0;
until Result or (GetSystemTime > T);
end;
function FFAttack(Name: string; Colors: TintegerArray; tol: integer): boolean;
var
L, i, x, y, xx, yy: integer;
begin
if not LoggedIn then
Exit;
if InFight then
if FightOnScreen then
Exit;
L := High(Colors);
Status('Searching for NPC...');
for i := 0 to L do
begin
if (MobsOnScreen = 0) or InFight then
Exit;
x:=MSCX;
y:=MSCY;
if FindColorSpiralTolerance(x, y, Colors[i], MSX1, MSY1, MSX2, MSY2, Tol) then
begin
if FindColorSpiral(xx, yy, 65280, x - 15, y - 40, x + 15, y + 40) then
Continue;
MMouse(x, y, 3, 3);
if UTWait(Name) then
begin
GetMousePos(x, y);
case Random(3) of
0: begin
Mouse(x, y, 0, 0, false);
if ChooseOption('tack') then
result := true;
end;
1,2: begin
HoldMouse(x, y, True);
Wait(80 + Random(60));
GetMousePos(x, y);
ReleaseMouse(x, y, True);
try
Result := FindColor(x, y, 255, x-10, y-10, x+10, y+10);
except
Result := False;
end;
end;
end;
if Result then
begin
Status('Attacked');
AttackFailed := 0;
MarkTime(FailTimer);
FFlag(0);
if NAF[CurrentPlayer].Range then
FFWait(20)
else
FFWait(4);
Inc(ReportVars[0]);
Exit;
end;
end else
Inc(AttackFailed);
end;
end;
end;
Procedure FFStartUp;
var
I,II,n:integer;
s:string;
begin
SetupSRL;
ClearDebug;
Disguise('Sig Call');
ChangeReportWidth(255);
Status('Signature call; Watch the report box!');
for I := 0 to 57 do
begin
clearreport;
for II := 0 to 5 do
Addtoreport(s + '||');
wait(20);
if I < 29 then
s := s + ' '
else
delete(s, Length(s), 1);
end;
for I := 1 to 29 do
begin
ClearReport;
AddtoReport(Left(' _ _ _ ', I));
AddtoReport(Left('| \ | | made by | | ', I));
AddtoReport(Left('| \| | __ _ _ __ ___| | ___ ', I));
AddtoReport(Left('| . ` |/ _` | ''__/ __| |/ _ \', I));
AddtoReport(Left('| |\ | (_| | | | (__| | __/', I));
AddtoReport(Left('|_| \_|\__,_|_| \___|_|\___|', I));
wait(40);
end;
AddtoReport(ScriptName+' v'+Version);
NarclesINI;
try
DeclarePlayers;
except
Writeln('You did not Declare Players correctly, check your DeclarePlayers setup.');
TerminateScript;
end;
ScriptID := '424';
If (HowManyPlayers = 1) then Writeln('Single-Player Mode') else Writeln('Multi-Player mode; '+IntToStr(HowManyPlayers)+' Players');
if (SRLID = '') or (SRLPassword = '') then
begin
Writeln('Please register at SRL-stats in the future');
Writeln('to remove this message and the time delay.');
Writeln(' -Regards Narcle');
n := 15;
repeat
n := n-1;
wait(999);
Disguise(inttostr(n)+' Seconds to start.');
Status(inttostr(n)+' Seconds to start.');
until (n=0)
end;
for i := 0 to HowManyPlayers - 1 do
begin
NAF[i].Colors := [Players[i].Integers[0], Players[i].Integers[1], Players[i].Integers[2]];
if trim(Players[i].Strings[0]) = '' then
NAF[i].MobName := 'tac'
else
NAF[i].MobName := LowerCase(Players[CurrentPlayer].Strings[0]);
If (i > 0) and (Players[i].Integers[0] = 0) then
begin
NAF[i].Colors := [Players[0].Integers[0], Players[0].Integers[1], Players[0].Integers[2]];
NAF[i].MobName := LowerCase(Players[0].Strings[0]);
end;
end;
Status('Start '+ScriptName);
Disguise(ScriptName+' v'+Version);
AddtoReport('Start time: '+TheTime);
if (NAF[CurrentPlayer].Colors[0] = 0) or (NAF[CurrentPlayer].Colors[1] = 0) or (NAF[CurrentPlayer].Colors[2] = 0) then
begin
Writeln('Error: Please enter 3 monster colors for player(s).');
TerminateScript;
end;
if not LoggedIn then
LoginPlayer;
SetupPlayer;
end;
//============================Main Execution==================================\\
begin
FFStartUp;
repeat
if not LoggedIn then
LoginPlayer;
if FFattack(NAF[CurrentPlayer].MobName, NAF[CurrentPlayer].Colors, 3) then
WaitFight;
if (MobsOnScreen = 0) then
if not ChangeCamera then
SitAndWait;
if InFight then
if FightOnScreen then
WaitFight;
if (TimeFromMark(FailTimer) > 300000) then
LogoutSeq('Finding NPC Failed');
if (Getsystemtime > LogoutTime) then
LogoutSeq('');
HpCheck;
Antiban;
FindNormalRandoms;
if (AttackFailed > 19) and not(NAF[CurrentPlayer].MobName = 'tac') then
begin
NAF[CurrentPlayer].MobName := 'tac';
writeln('Changing Monster name to ''tac'' if it continues to not attack then');
writeln('Re-focus SCAR to the RuneScape window using the cross-hairs.');
end;
until(false);
end.
I'd try downloading the includes
File > Download Includes
Or updating SRL.
http://www.villavu.com/forum/showthread.php?t=17869
************************************************** *
| Fast Fighter v3.02 | 0h:25m:11s |
************************************************** *
| Total Kills: 68 | Total XP: 292 |
| XP/hour: 701 | Food Ate: 2 |
| Round Kills: 41 | Round XP : 292 |
************************************************** *
Just trying it out on my new Obby Tank. Works great.
EDIT:
************************************************** *
| Fast Fighter v3.02 | 2h:51m:45s |
************************************************** *
| Total Kills: 675 | Total XP: 3692 |
| XP/hour: 1295 | Food Ate: 0 |
| Round Kills: 41 | Round XP : 172 |
************************************************** *
Used it while I was away. 10-22 str on Chickens.
************************************************** *
| Fast Fighter v3.02 | 3h:2m:15s |
************************************************** *
| Total Kills: 1695 | Total XP: 30072 |
| XP/hour: 9914 | Food Ate: 304 |
| Round Kills: 60 | Round XP : 1284 |
************************************************** *
Right on, it would have kept going, but i ran out of food.
SCAR Code:***************************************************
| Fast Fighter v3.02 | 0h:53m:20s |
***************************************************
| Total Kills: 94 | Total XP: 1124 |
| XP/hour: 1272 | Food Ate: 0 |
| Round Kills: 17 | Round XP : 300 |
***************************************************
If I wasn't so damn slow when it comes to leveling a brand new account with a bronze dagger =O
Amazing script. I'm going to use this immediately to gain a few more levels.
~Feedback~
- -Calculate levels earned in your Progress Reports
- -Is there anyway that you can pickup the bones and items from the monsters you kill and bury the bones? If not, then you could definitely implement that into this script.
SCAR Code:***************************************************
| Fast Fighter v3.02 | 1h:34m:19s |
***************************************************
| Total Kills: 156 | Total XP: 0 |
| XP/hour: 0 | Food Ate: 23 |
| Round Kills: 26 | Round XP : 0 |
***************************************************
i left it on from 8:00 PM untill 9:00 AM WOOT 60 str!!!
************************************
| Fast Fighter v3.02 | 13h:2m:42s |
************************************
| Total Kills: 3583 | Total XP: 130500 |
| XP/hour: 10013 | Food Ate: 24 |
| Round Kills: 50 | Round XP : 1928 |
************************************
EDIT:
Now i have a problem i bot for like 1 hour and my bot logs me of, can somebady help me?
SCAR Code:***************************************************
| Fast Fighter v3.02 | 7h:9m:4s |
***************************************************
| Total Kills: 1037 | Total XP: 13668 |
| XP/hour: 1912 | Food Ate: 0 |
| Round Kills: 29 | Round XP : 296 |
***************************************************
Garrett:
You can get Narcle's Autofighter when you become an SRL Junior Member. It picks up items (Bones for example.) And I wouldn't advise training with a bronze dagger. ;)
Its for looks man. I'm tellin ya =P
Thank you!