Log in

View Full Version : Simba issues



ernestthechicken
01-14-2012, 07:52 PM
Hey i had this issue when i just started playing with Simba but i cant remember how to fix it..

Exception in Script: Unable to find file 'SRL/SRL.scar' used from ''

Whilst i have the SRL.Simba in there.

Griff
01-14-2012, 07:54 PM
I'm pretty sure you just need to update your SRL.

ernestthechicken
01-14-2012, 07:57 PM
I tried that, even override data didnt work it out!

x[Warrior]x3500
01-14-2012, 08:03 PM
well... dont take offense for me asking the obvious, but do u need to change
{$i SRL/SRL.scar} to
{$i SRL/SRL.simba}
??

sry u really never said that in your original post.

ernestthechicken
01-14-2012, 08:07 PM
I have 0 knowledge @ simba, as u can see im one of the multiple people who joined Simba AFTER the bot nuke... so kind of a cheap bastard u can say.


So anyways if i get this right, i have to replace every scar to simba since the files have changed?


EDIT2: its giving me this issue now

[Hint] (627:3): Variable 'DOORS' never used at line 626
[Error] (1244:42): Type mismatch at line 1243
Compiling failed.

x[Warrior]x3500
01-14-2012, 08:13 PM
if you want. send me your code (or post it here) and i will be able to debug it for u

ernestthechicken
01-14-2012, 08:26 PM
program MultiFighter;
Type // Ignore these :)
mUser = Record
Name, Nick, Pass, RunDir, FightMode, FightStyle: String;
Active: Boolean;
CombatSetup: Array of Boolean;
Others: Array of Boolean;
MonsterColors, PickupColors, PickupFocus: TIntegerArray;
Levels, XPG, SXP, LevelUps: Array [0..6] of Integer;
BoxReward, MonsterNames, PickupNames: TStringArray;
HueMod, SatMod: Extended;
MonTol, KillTime, SpecialPower, XP_TOT: Integer;
End;

{================================================= =============================]
[ MultiFighter by marpis ]
[ ]
[ NAME : MultiFighter ]
[ WRITER : marpis ]
[ DESCRIPTION : Fights any monster with Melee and Ranged ]
[ ]
[================================================== ============================]
[ ]
[ INSTRUCTIONS ]
[ ]
[================================================== ============================]
[ First read: ]
[ o http://www.villavu.com/Forum/showthread.php?t=45849 ]
[ ]
[ ]
[ SMART-Instructions ]
[ o To activate SMART, uncomment line 59. ]
[ ]
[ ]
[ FightMode ]
[ o Melee ]
[ - 'Attack' ]
[ - 'Strength' ]
[ - 'Defence' ]
[ - 'Even' <- Trains the lowest melee skill ]
[ o Ranged <- Will only wield regular arrows If ran out of ammo ]
[ - 'Accurate' ]
[ - 'Rapid' ]
[ - 'Longrange' ]
[================================================== ============================]
[ PICKING UP ITEMS ]
[================================================== ============================]
[ ]
[ o PickupFocus := [1, 1] // Bones? Other? ]
[ This will pick 1 pile of Bones, Then 1 other item you have declared ]
[ ]
[ o PickupFocus := [5, 0] // Bones? Other? ]
[ This will pick 5 piles of Bones, and continue fighting ]
[ ]
[================================================== ============================]
[ SMART SETTINGS ]
[================================================== ============================}

{.include SRL/SRL/misc/smart.simba} // <-- UNCOMMENT THIS TO USE SMART!
{.include SRL/SRL.simba}

Const
World = 151; // World number?
Members = True; // Members world?
Signed = True; // Signed client?

{================================================= =============================]
[ SCRIPT SETTINGS ]
[================================================== ============================}
const
MousSpeed = 15; // Mouse Speed
LoopTime = 60; // How many minutes to play before switching Players
SleepTime = '4h 00m'; // Example: '6h 15m' sleeps every 6th hour 15th minute
SleepFor = '0h 30m'; // Example: '1h 30m' sleeps For 1 hour And 30 minutes
SaveLogs = False; // Save screenshots and autoresponder logs?
AntiRandoms = True; // Set False If FindNormalRandoms is not working
CheckUpText = False; // Set False If GetUpText is not working
CalcXP = True; // Calculate XP Gained
RightClickOnly = False; // Only right click monsters?

{================================================= =============================]
[ DECLARE PLAYERS ]
[================================================== ============================}
Var mFighter: array of mUser; DTMs: TintegerArray; PeachBMP: integer;
Procedure DeclarePlayers;
Begin

HowManyPlayers := 1; // How many Players are you using? (including inactive)
CurrentPlayer := 0; // Starting Player?

SetArrayLength(mFighter, HowManyPlayers);
NumberOfPlayers(HowManyPlayers);

With mFighter[0] Do
Begin
{ -=- Playerinfo -=- }
Name := '';
Nick := '';
Pass := '';
Active := True;

{ -=- Fighting -=- }
FightMode := 'Strength'; // Read instructions above
MonsterColors := [5292797];
KillTime := 60; // Max time to Wait in battle in seconds
MonsterNames := ['Dust', 'evil', 'ust'];
CombatSetup := [False, True, False]; // Multicombat zone? Eat food? SpecialAttack?
SpecialPower := 100; // If you use Special Attacks how much power does it drain?

{ -=- Pickups -=- }
PickupColors := []; // Bone picking below
PickupNames := [];
PickupFocus := [0, 0] // Bones? Other?

{ -=- Others -=- }
Others := [False, False]; // Click Minimap dots? Use B2P?
RunDir := 'W'; // N, E, S, W
BoxReward := ['dama', 'thril', 'oin', 'ash', 'motion'];
End;

// Global DTMs, only used in Bones to peaches.
// update if Bones to peaches isn't working correctly

SetLength(DTMs, 3);

// regular bones
DTMs[0] := DTMFromString('mrAAAAHic42BgYGhlYWCoB+JmKO4E4klAPB GIe4H4HCMDw1UovgXFN4D4AiNEjoGBiQDGDxgJYBgAANunCy4= ');

// big bones
DTMs[1] := DTMFromString('mrAAAAHic42BgYGhlYWCoB+JmKO4E4klAPB GIe4H4HCMDw1UovgXFN4D4AiNEjoGBiQDGDxgJYBgAANunCy4= ');

// b2p tablet
DTMs[2] := DTMFromString('mrAAAAHic42BgYAhigeAQII4A4lQgzoXiZC DuZGRgmADEM4F4FhRPB+JuIO4BYgYGJpz4TLocAz7AD8SMBDAM AAB6bQkt');

PeachBMP := BitmapFromString(11, 9, 'meJxNjWkLAVEYhX+jsi/XvswtHwg' +
'ZWbJkyTJfGCSRSCQi0Uzz45w6maZOt/Oe93nPFa2z+MtdmLvymq+8' +
'9pZWkKeoI4l1rlSgug3V9v7KRjRP4fohqO7gASd6dwrbSOOIn vTwl' +
'ew/4t1btH0BnBo8KW6z409m9MaIE9QiwUjB4yQ3+YKxS8AgoeCREG ' +
'AJGWVqyJkJwePF6GTwkbIwpG7KpQUvNYsMAX5EAFvwNuAs+QF wSZxm');
End;

{================ DON'T TOUCH ANYTHING BELOW =================================}
{================ DON'T TOUCH ANYTHING BELOW =================================}
{================ DON'T TOUCH ANYTHING BELOW =================================}

Const
Version = '4.20';

COLOR_BONES = 13553364; // Bones in ground

COLOR_HP_GREEN = 65280; // Green color in HP next to MM
HP_MM_X1 = 724;
HP_MM_Y1 = 31;
HP_MM_X2 = 739;
HP_MM_Y2 = 40;

COLOR_SPECIALBAR = 3175983; // Green color in Special Attack bar

X_AMMO = 678; // X cord for arrowslot in Tab_Equip
Y_AMMO = 254; // Y cord for arrowslot in Tab_Equip


{.include SRL/SRL/Misc/Debug.simba}
{.include SRL/SRL/Skill/Prayer.simba}
{.include SRL/SRL/Misc/DoorProfiles.simba}
{.include SRL/SRL/Skill/Fighting.simba}

Var // Global Variables
RoundMark, SleepMark, ReportMark, Fails, TalkTimer, BMPFood, LastXPCheck: Integer;
RespondedChatLines, MyResponds: TStringArray;


Function FS_Mouse(X, y, rX, ry: Integer; left: boolean): Boolean;
Begin
If (X > 0) And (y > 0) Then
Begin
Result := True;
Mouse(X, y, rX, ry, left);
End;
End;

Function FS_MMouse(X, y, rX, ry: Integer): Boolean;
Begin
If (X > 0) And (y > 0) Then
Begin
Result := True;
MMouse(X, y, rX, ry);
End;
End;

Function WUT(Texts: TStringArray; Time: Integer): boolean;
Var
T: Integer;
Begin
T := GetSystemTime + Time + Random(50);
Repeat
Wait(50 + Random(20));
Result := IsUpTextMultiCustom(Texts);
If Result Then
Exit;
Until(GetSystemTime > T);
End;

Procedure FRan;
Begin
If AntiRandoms Then
FindNonInventoryRandoms;
End;


Procedure SRLPlayers;
Var
i, ii: Integer;
Begin
For i:= 0 to High(mFighter) do
Begin
Players[i].Name := mFighter[i].Name;
Players[i].Pass := mFighter[i].Pass;
Players[i].Nick := mFighter[i].Nick;
Players[i].Active := mFighter[i].Active;
SetLength(Players[i].BoxRewards, Length(mFighter[i].BoxReward));
For ii:= 0 to High(mFighter[i].BoxReward) do
Players[i].BoxRewards[ii]:= mFighter[i].BoxReward[ii];
End;
End;


{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{ Function IsInFight(X, y: Integer): Boolean;
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
Function IsInFight(X, Y: Integer): Boolean;
Begin
Result := IsFightAt(X, Y);
End;

function GetHPBars: TPointArray;
var
ATPA: T2DPointArray;
G, R: TPointArray;
I, L: Integer;
begin
FindColorsTolerance(G, 10240, MSX1, MSY1, MSX2, MSY2, 5);
FindColorsTolerance(R, 132923, MSX1, MSY1, MSX2, MSY2, 5);
Result := CombineTPA(R, G);
ATPA := SplitTPAEx(Result, 50, 6);
L := Length(ATPA);
SetLength(Result, L);

for I := 0 to L-1 do
Result[I] := MiddleTPA(ATPA[I]);
end;

Function IamFighting: Boolean;
Begin
If Length(GetHPBars) > 1 Then
Result := InFight;
End;


{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{ Function M_FindObjects
Var Objs: TPointArray Here the found objects are stored
width, height: Size of the object
colOrs: TIntegerArray, object colOrs
tolerance: Color tolerance
accuracy: Minimum amount of piXels per object
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
Function M_FindObjects(Var Objs: TPointArray; width, height: Integer; colOrs: TIntegerArray; accuracy, tolerance: Integer; HueMod, SatMod: eXtEnded; EXcludeSelf: boolean): boolean;
Var
TPA, TempTPA: TPointArray;
ATPA: T2DPointArray;
i, CTS: Integer;
P: TPoint;
Box: TBox;
Begin
If (Not LoggedIn) Then Exit;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorspeed2ModIfiers(HueMod, SatMod);
Box:= IntToBox(245, 145, 275, 180);

For I := 0 to High(Colors) do
Begin
FindColorsSpiralTolerance(MSCX, MSCY, TempTPA, colOrs[i], MSX1, MSY1, MSX2, MSY2, tolerance);
TPA:= CombineTPA(TPA, TempTPA);
End;
ColorToleranceSpeed(CTS);

If (Length(TPA) < Accuracy) Then
Exit;

ATPA := SplitTPAEX(TPA, Width, Height);
SetArrayLength(Objs, Length(ATPA));
Result := True;
SortATPAFrom(ATPA, Point(MSCX, MSCY));

For I := 0 to High(ATPA) do
Begin
P := MiddleTPA(ATPA[I]);
If (PointInBox(P, Box) And ExcludeSelf) Or (Length(ATPA[i]) < Accuracy) Then
Begin
Swap(ATPA[I], ATPA[High(ATPA)]);
SetLength(ATPA, High(ATPA));
End Else
Objs[i] := P;
End;

End;

{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{ Function RangedInFight: boolean;
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
Function RangedInFight: boolean;
Var
B: TBox;
T, C: Integer;
Begin
GameTab(Tab_Equip);
B := IntToBox(X_AMMO - 15, Y_AMMO - 7, X_AMMO + 15, Y_AMMO + 7);
T := GetSystemTime + 3800 + Random(300);
Repeat
C := PixelShift(B, 1000);
Result := C > 0;
Until(Result Or (GetSystemTime > T));
End;

{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{ Function PosExx(SubStrArr: TStringArray; Str: String): Integer;
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
Function PosExx(SubStrArr: TStringArray; Str: String): Integer;
Var
I: Integer;
Begin
For I := 0 to High(SubStrArr) Do
Begin
Result := Pos(LowerCase(SubStrArr[i]), LowerCase(Str));
If (Result > 0) Then
Exit;
End;
End;

Procedure SetupPlayer; Forward;

Procedure NextP(a: boolean);
Begin
NextPlayer(a);
Repeat
Wait(1000);
Until(GetColor(MSCX, MSCY) <> 0);
SetupPlayer;
End;

Function SwitchPlayers: boolean;
Var
i, ii: Integer;
Begin
For i := 0 to 4 do
Begin
Case i of
0: if HowManyPlayers > 1 then Result := TimeFromMark(RoundMark) > LoopTime*60*1000;
1:Result := Not mFighter[currentplayer].Active;
2:Begin
For II := 0 to 19 do
If (Not LoggedIn) Then Wait(1000) Else Break;
Result := II > 19;
End;
3:Result := fails > 19;
4:Result := Not TabEXists(tab_Combat);
End;
If Result Then
Begin
WriteLn('SWITCH PLAYERS: ');
Case I of
0: WriteLn('Switching time!');
1: WriteLn('Player inactive!');
2: WriteLn('Player logged out! (probably unsolved Random event)');
3: WriteLn('No monsters found!');
4: WriteLn('Unsolved Random!');
End;
Case I of
0: mFighter[currentplayer].Active := True;
1, 2, 3:
Begin
mFighter[currentplayer].Active := False;
{
If SaveLogs Then
SaveScreenshot(mFighter[currentplayer].Name+'_'+DateToStr(Date)+'.bmp');
}
End;
4:
Begin
{
If SaveLogs Then
SaveScreenshot(mFighter[currentplayer].Name+'_'+DateToStr(Date)+'.bmp');
}
FRan;
Wait(6000);
mFighter[currentplayer].Active := TabExists(tab_Combat);
End;
End;
Players[currentplayer].Active := mFighter[currentplayer].Active;
Exit;
End;
End;
End;


Function EatFood: boolean;
Var
X, y: Integer;
Begin
If (Not LoggedIn) Then Exit;
If Not mFighter[CurrentPlayer].CombatSetup[1] Then Exit;
GameTab(tab_Inv);
Result:= FindBitmapToleranceIn(BMPFood, X, y, MIX1, MIY1, MIX2, MIY2, 25);
If Not Result Then
Begin
mFighter[CurrentPlayer].CombatSetup[1] := False;
Exit;
End;
FS_Mouse(X+5, y+5, 3, 3, True);
Wait(2000+Random(100));
End;

Function OutOfArrows: boolean;
Var
X, y: Integer;
Begin
If (LowerCase(mFighter[currentplayer].FightStyle) <> 'ranged') Then Exit;
GameTab(tab_Equip);
Result:= Not FindColor(X, y, 65535, 667, 247, 698, 257);
End;


Function M_BMPItemCoordinates(BMP: Integer): TPointArray;
Var
i, X, y: Integer;
B: tbox;
Begin
If (Not LoggedIn) Then Exit;
For I := 1 to 28 do
Begin
B := InvBox(I);
If FindBitmapToleranceIn(BMP, X, Y, B.X1, B.Y1, B.X2, B.Y2, 30) Then
Begin
SetLength(Result, Length(Result)+1);
Result[high(Result)] := Point(B.X1 + ((B.X2-B.X1)/2), B.Y1 + ((B.Y2-B.Y1)/2));
End;
End;
End;

Function WieldArrows: boolean;
Var
TIA: array [0..27] of Integer;
i, X, y, m, hi, BMPArrows: Integer;
Arrows: TPointArray;
Begin
If (Not LoggedIn) Then Exit;
If Not mFighter[currentplayer].Active Then Exit;
GameTab(Tab_Inv);
Wait(200+Random(50));
BMPArrows := BitmapFromString(25, 9, 'beNqzNnS2BiFHSz0IA4gYGJj' +
'cNbmkBViADAgbSBooKGBlIwvCjYKYBpFCVgYxE6t2NAVwx0BM I+gM' +
'XE4CIrjX4OYgew2PdjQnwf2FHEoUOglraJPnJFx6iXcSmlHI6 nFph' +
'7gEzUloXsPjDKy+Qw8lAGPZRlY=');
If Not FindBitmapToleranceIn(BMPArrows, X, Y, MIX1, MIY1, MIX2, MIY2, 30) Then
Begin
WriteLn('No arrows in inventOry!');
Wait(2000);
FreeBitmap(BMPArrows);
Exit;
End;
Arrows:= M_BMPItemCoordinates(BMPArrows);
Hi := High(Arrows);
For I := 0 to hi do
TIA[i] := GetAmount(Arrows[i].X, Arrows[i].y);
InIntArrayEX(TIA, M, AMaX(TIA));
WriteLn('Wielding stack with: '+inttostr(TIA[M])+' arrows');
FS_Mouse(Arrows[M].X, Arrows[m].Y, 3, 3, False);
Result:= WaitOption('ield', 1200 + Random(500));
FreeBitmap(BMPArrows);
End;

Procedure RunBack(from: String; runfar: boolean; action, Waittime: Integer);
Var
newdir: String;
Begin
Case lowerCase(from) of
'n': newdir:= 's';
'e': newdir:= 'w';
's': newdir:= 'n';
'w': newdir:= 'e';
End;
RunAway(newdir, runfar, action, Waittime);
End;


Procedure AntiBan;
Begin
If Not mFighter[currentplayer].Active Then Exit;
Case Random(80) of
0: Gametab(RandomRange(tab_Combat, tab_Notes));
1: If CalcXP Then HoverSkill('Random', False);
2, 6: PickUpMouse;
7..15: SleepAndMoveMouse(RandomRange(200, 1200));
End;
End;

Function PanicPrayer: boolean;
Var
s: String;
Begin
If GetMMLevels('prayer', s) > 0 Then
If PrayerExists('11') Then
Result := ClickPrayer('11', True);
End;

Procedure Flee;
Var
DeathMark: Integer;
s: String;
label
GoBack;
Begin
If (Not LoggedIn) Then Exit;
RunAway(mFighter[currentplayer].RunDir, True, 2, 5000+Random(1000));
If mFighter[currentplayer].FightStyle = 'ranged' Then
If OutOfArrows Then
If Not WieldArrows Then
Begin
mFighter[currentplayer].Active := False;
Exit;
End;
If mFighter[currentplayer].CombatSetup[1] Then
If EatFood Then goto GoBack;
If Not mFighter[currentplayer].CombatSetup[1] Then
status('Recovering...');
If GetMMLevels('prayer', s) > 9 Then
If PrayerEXists('10') Then
ClickPrayer('10', True);
SetRest;
Repeat
FRan;
If IamFighting Then
Begin
If PanicPrayer Then
WriteLn('Protect Item activated!')
Else
WriteLn('WE ARE DOOMED!');
MarkTime(DeathMark);
Repeat
mFighter[currentplayer].active := Not FindDead;
Wait(50);
Until(FindDead Or (TimeFromMark(DeathMark) > 90000) Or (Not IamFighting));
Wait(3000);
If FindDead Then Exit;
ClickPrayer('11', False);
End;
AntiBan;
Case Random(2) of
0:Begin
FS_Mouse(0, 0, MSX2, MSY2, False);
Wait(750+Random(500));
ChooseOption('xamin');
End;
1: MakeCompass(inttostr(Random(360)));
End;
Until(SwitchPlayers Or (HPPercent > 95));
GoBack:
If PrayerActivated('10') Then
ClickPrayer('10', False);
RunBack(mFighter[currentplayer].RunDir, True, 2, 5000);
Status('');
End;


Procedure HPCheck;
Var
TMP: Integer;
Begin
If (Not LoggedIn) Then Exit;
mFighter[currentplayer].Active := Not FindDead;
If (Not FindColor(TMP, TMP, COLOR_HP_GREEN, HP_MM_X1, HP_MM_Y1, HP_MM_X2, HP_MM_Y2)) Then
Repeat
If Not EatFood Then
Begin
Flee;
Exit;
End;
Until(FindColor(TMP, TMP, COLOR_HP_GREEN, HP_MM_X1, HP_MM_Y1, HP_MM_X2, HP_MM_Y2) Or (Not LoggedIn));
Status('');
End;


Function InCombat: boolean;
Begin
Case LowerCase(mFighter[currentplayer].FightStyle) of
'ranged': Result := RangedInFight;
'melee': Result := IamFighting;
End;
End;

Procedure UseSpecial;
Begin
GameTab(tab_Combat);
//WriteLn('Special left: '+IntToStr(Trunc(CountColor(3175983, 573, 418, 713, 418) div 1.4))+'%');
If (Ceil((CountColor(COLOR_SPECIALBAR, 573, 418, 713, 418) div 1.4)) >= mFighter[CurrentPlayer].SpecialPower) Then
Begin
MouseBox(591, 419, 693, 427, 1);
Wait(2000 + Random(200));
End;
End;

Function CountChatLinesWithText(Text: String; Color: Integer): Integer;
Var
I: Integer;
Begin
For I := 1 to 8 do
If (Pos(LowerCase(Text), LowerCase(GetChatBoxText(I, Color))) > 0) Then
Inc(Result);
End;

Function FightMonster(Target: TPoint): boolean;
Var
t, X, y: Integer;
DoOrs: array of DoOrProfile;
left: boolean;
label
TheFighting;
Begin
If (Not LoggedIn) Then Exit;
If Not mFighter[currentplayer].active Then Exit;

If IamFighting Then
goto TheFighting;

If Not mFighter[currentplayer].CombatSetup[0] Then
If IsInFight(Target.X, Target.Y) Then
Exit;

// DrawBox(IntToBox(Target.X - 20, Target.Y - 20, Target.X + 20, Target.Y + 20));
MouseSpeed := MouseSpeed + 2;
Result := FS_MMouse(Target.X, Target.Y, 0, 0);
MouseSpeed := MouseSpeed - 2;
If (Not Result) Then
Exit;

If CheckUptext Then
If Not WUT(['ption'], 250) Then Exit;
GetMousePos(X, Y);

Left := (Not RightClickOnly) And IsUpTextMultiCustom(mFighter[currentplayer].MonsterNames)

If Not FS_Mouse(X, Y, 0, 0, Left) Then
Exit;

If left Then
Result := DidRedClick
Else
Result := WaitOption('ttack', 500);

If Not Result Then Exit;
If Random(4) = 0 Then PickupMouse;
If mFighter[currentplayer].FightStyle = 'melee' Then
Begin
Wait(900+Random(200));
while IsMoving do Wait(50+Random(50));
WaitFunc(@IamFighting, 10, 3000 + Random(500));
End;

// I can't reach that check
If (CountChatLinesWithText('reach', clBlack) > 2) Then
Begin
mFighter[currentplayer].Active := False;
Exit;
End;

// battle
TheFighting:
MarkTime(t);

Repeat
HPCheck;
FRan;
SleepAndMoveMouse(750+Random(500));
If Random(15) = 0 Then
PickupMouse;
If mFighter[CurrentPlayer].CombatSetup[2] Then
UseSpecial;

If (Not InCombat) Then
Break;

If LowerCase(mFighter[CurrentPlayer].FightStyle) = 'ranged' Then
If OutOfArrows Then
Break;

Until(TimeFromMark(t) > mFighter[CurrentPlayer].KillTime*1000);

status('');
If OutOfArrows Then
mFighter[CurrentPlayer].Active := WieldArrows;

End;

Function PickupItem(colors: TIntegerArray; names: TStringArray): boolean;
Var
Items: TPointArray;
I, T: Integer;
Begin
If (Not LoggedIn) Then Exit;
If Not mFighter[currentplayer].Active Then Exit;
If (Length(colOrs) = 0) Or (Length(names) = 0) Then Exit;
if InvFull then
Exit;
If M_FindObjects(Items, 20, 20, colOrs, 3, 5, 0.5, 0.5, False) Then
Begin
For I := 0 to High(Items) do
Begin
FS_Mouse(Items[I].X, Items[I].Y, 2, 2, False);
Wait(50 + random(20));
Result := WaitOptionMulti(Names, 500);
If Result Then
Begin
MarkTime(T);
Wait(1000+Random(100));
while (IsMoving And (TimeFromMark(t)<10000)) do Wait(100+Random(10));
Exit;
End;


End;
End;
End;

Procedure BuryBonez;
Var
X, y, i: Integer;
B: TBox;
Begin
If Not mFighter[currentplayer].active Then Exit;
If mFighter[currentplayer].Others[1] Then Exit; // b2p
If (Not LoggedIn) Then Exit;

Status('Burying bones...');
GameTab(tab_Inv);

For I := 1 to 28 do
begin
FRan;
B := InvBox(I);
if FindColorTolerance(X, Y, 12303556, B.X1, B.Y1, B.X2, B.Y2, 15) then
begin
InvMouse(I, 3);
if WUT(['Bury', 'ury', 'Bones', 'ones'], 350) then
begin
GetMousePos(X, Y);
FS_Mouse(X, Y, 0, 0, True);
Wait(1500 + Random(200));
end;
end;
end;

status('');
End;

Procedure SetupFood;
Var
i: Integer;
box: TBox;
Begin
If (Not LoggedIn) Then Exit;
If (Not mFighter[CurrentPlayer].CombatSetup[1]) Then
Begin
BMPFood := BitmapFromString(0, 0, '');
FreeBitmap(BMPFood);
Exit;
End;

If mFighter[CurrentPlayer].Others[1] Then
Begin
BMPFood := PeachBMP;
Exit;
End;
FreeBitmap(PeachBMP);

GameTab(tab_Inv);
For I := 1 to 28 do
Begin
If ExistsItem(i) Then
Begin
MMouseItem(i);
Wait(300 + Random(100));
If (Pos('at', GetUpText) = 2) Then
Begin
Box := InvBox(I);
BMPFood := BitmapFromString(boX.X2 - boX.X1 -10, boX.y2 - boX.y1 -10, '');
CopyClientToBitmap(BMPFood, Box.x1+5, Box.y1+5, Box.x2-5, Box.y2-5);
//SafeCopyCanvas(GetClientCanvas, GetBitmapCanvas(BMPFood), boX.X1+5, boX.y1+5, boX.X2 -5, boX.y2 -5, 0, 0, (boX.X2 - boX.X1 -10), (boX.y2 - boX.y1 -10));
WriteLn('Food found in inventory slot: '+IntToStr(i));
Exit;
End;
End;
End;
mFighter[CurrentPlayer].CombatSetup[1]:= False;
End;

Procedure SetLevels;
Var
i: Integer;
TIA: TIntegerArray;
Begin
If (Not LoggedIn) Then Exit;
If Not CalcXP Then Exit;
TIA := [skill_Attack, skill_Strength, skill_Defence, skill_Range, skill_Prayer, skill_Magic, skill_Hitpoints];
For i := 0 to 6 do
mFighter[CurrentPlayer].Levels[i] := GetSkillLevel(TIA[i]);
End;

Procedure UpdateXPs;
Begin
LastXPCheck := GetTimeRunning;

Case lowerCase(mFighter[CurrentPlayer].FightMode) of
'rapid', 'accurate': mFighter[CurrentPlayer].XPG[3] := GetXP(skill_Range) - mFighter[CurrentPlayer].SXP[3];
'longrange': Begin
mFighter[CurrentPlayer].XPG[3] := GetXP(skill_Range) - mFighter[CurrentPlayer].SXP[3];
mFighter[CurrentPlayer].XPG[2] := GetXP(skill_Defence) - mFighter[CurrentPlayer].SXP[2];
End;
'attack': mFighter[CurrentPlayer].XPG[0] := GetXP(skill_Attack) - mFighter[CurrentPlayer].SXP[0];
'strength': mFighter[CurrentPlayer].XPG[1] := GetXP(skill_Strength) - mFighter[CurrentPlayer].SXP[1];
'defence': mFighter[CurrentPlayer].SXP[2] := GetXP(skill_Defence) - mFighter[CurrentPlayer].SXP[2];
'even': Begin
mFighter[CurrentPlayer].XPG[0] := GetXP(skill_Attack) - mFighter[CurrentPlayer].SXP[0];
mFighter[CurrentPlayer].XPG[1] := GetXP(skill_Strength) - mFighter[CurrentPlayer].SXP[1];
mFighter[CurrentPlayer].XPG[2] := GetXP(skill_Defence) - mFighter[CurrentPlayer].SXP[2];
End;
End;

If (mFighter[CurrentPlayer].PickupFocus[0] > 0) and (not mFighter[currentplayer].Others[1]) then
mFighter[CurrentPlayer].XPG[4] := GetXP(skill_Prayer) - mFighter[CurrentPlayer].SXP[4];

With mFighter[CurrentPlayer] Do
XP_TOT := XPG[0] + XPG[1] + XPG[2] + XPG[3] + XPG[4] + XPG[5];
End;

Function UsingRanged: boolean;
Begin
If (Not LoggedIn) Then Exit;
Result := PosExx(['ccura', 'ongr', 'api'], mFighter[currentplayer].FightMode)>0;
If Result Then
WriteLn('Player is using ranged')
Else
WriteLn('Player is using melee');
If Result Then
Begin
GameTab(tab_Equip);
If WearingItem(4) Then Exit Else
If Not WieldArrows Then
mFighter[currentplayer].active:= False;
End;
End;

function x_AMin(TIA: TIntegerArray): Integer;
var
i: integer;
begin
result := TIA[0];
for i := high(TIA) downto 0 do
if (TIA[i] < result) then
Result := TIA[i];
end;

Procedure FightMode;
Var
m: Integer;
Levels: TIntegerArray;
Begin
If (Not LoggedIn) Then Exit;
Case mFighter[currentplayer].FightMode of
'defence','defense','longrange': SetFightMode(4);
'strength','rapid': SetFightMode(2);
'attack','accurate': SetFightMode(1);
'even':Begin
If mFighter[currentplayer].FightStyle <> 'melee' Then Exit;
Levels := [mFighter[currentplayer].Levels[1], mFighter[currentplayer].Levels[2], mFighter[currentplayer].Levels[3]];
InIntArrayEX(Levels, m, x_AMin(Levels));
If m = 2 Then m:= 3;
SetFightMode(m+1);
End;
End;
Retaliate(True);
End;

Procedure CheckLevelUps;
Var
i: Integer;
TIA: TIntegerArray;
Begin
If (Not LoggedIn) Then Exit;
If (Not CalcXP) Then Exit;
If (Players[currentplayer].Integers[0] mod 10 <> 0) Or (Players[currentplayer].Integers[0] = 0) Then Exit;
UpdateXPs;
TIA := [skill_Attack, skill_Strength, skill_Defence, skill_Range, skill_Prayer, skill_Magic, skill_Hitpoints];
For i := 0 to 6 do
Begin
Players[currentplayer].Level[i] := GetSkillLevel(TIA[i]);
If Players[currentplayer].Level[i] > mFighter[currentplayer].Levels[i] Then
Begin
Inc(Players[CurrentPlayer].Integers[1]);
Inc(mFighter[CurrentPlayer].LevelUps[i]);
End;
End;
SetLevels;
FightMode;
End;


Procedure SearchMobs;
Var
NPCs: TPointArray;
Begin
WriteLn('Monsters Not found: '+inttostr(fails));
If mFighter[currentplayer].Others[0] Then
Begin
NPCs := GetMinimapDots('NPC');
If Length(NPCs) > 0 Then
Begin
MouseFlag(NPCs[0].X, NPCs[0].y, 4, 4, 0);
Exit;
End;
End;
MakeCompass(inttostr(Random(360)));
Wait(2000+Random(500));
End;

{************************************************* ******************************
Function Function TPAMods(Var MidColour: Integer; Var HueMod, SatMod: EXtEnded; Colors: TIntegerArray): boolean;
By: TOrrentOfFlame
Description: WOrks out the MidColour, Tolerance, Hue ModIfier And Saturation ModIfier For TPA's based on inputted
values
************************************************** *****************************}
Function TPAMods(Var MidColour, Tolerance: Integer; Var HueMod, SatMod: EXtEnded; Colors: TIntegerArray): boolean;
Var
H, S, L, Tol: EXtEnded;
i, ii: Integer;
HSLColor: Array[1..3] of EXtEnded;
HSL: Array[0..1] of Array[1..3] of EXtEnded;
Begin
For i := 0 to High(Colors) do
Begin
ColortoHSL(Colors[i], HSLColor[1], HSLColor[2], HSLColor[3]);
For ii:= 1 to 3 do
Begin
HSL[0][ii] := MinE(HSLColor[ii], HSL[0][ii]);
HSL[1][ii] := MaXE(HSLColor[ii], HSL[1][ii]);
End;
End;
H := HSL[1][1] - HSL[0][1];
S := HSL[1][2] - HSL[0][2];
L := HSL[1][3] - HSL[0][3];
MidColour := HSLToColor((HSL[1][1] + HSL[0][1]) div 2,(HSL[1][2] + HSL[0][2]) div 2,(HSL[1][3] + HSL[0][3]) div 2);
HueMod := (H/L);
SatMod := (S/L);
Tol := L;
If (MidColour <= 0) Then
Begin
WriteLn('TPA Variables Not found.');
Result := False;
End Else
Result := True;
Tolerance := Trunc(Tol + 0.5);
End;

Procedure SetupMonsterFinder(Var tolerance: Integer; Var HueMod, SatMod: eXtEnded);
Var
HM, SM: eXtEnded;
tol, MC, CTS, i, tries: Integer;
ATPA: T2DPointArray;
label
FailExit;
Begin
TPAMods(MC, tol, HM, SM, mFighter[currentplayer].MonsterColors);
SetLength(ATPA, 2);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2ModIfiers(HM, SM);
Tol := 5;
Repeat
ATPA[1] := [];
For i := 0 to high(mFighter[currentplayer].MonsterColors) do
Begin
FindColorsSpiralTolerance(MSCX, MSCY, ATPA[0], mFighter[currentplayer].MonsterColors[I], MSX1, MSY1, MSX2, MSY2, Tol);
ATPA[1] := CombineTPA(ATPA[0], ATPA[1]);
End;
If Length(ATPA[1]) > 1000 Then
Begin
tol := tol - 1;
If tol < 0 Then
Begin
FailExit:
WriteLn('Failed to find best color modifiers, using following:');
WriteLn(' -> Tolerance = 10');
WriteLn(' -> Huemod = 0.4');
WriteLn(' -> SatMod = 0.4');
Tolerance := 10;
HueMod := 0.4;
SatMod := 0.4;
ColorToleranceSpeed(CTS);
Exit;
End;
inc(tries);
End Else
Begin
Tolerance := tol;
HueMod := HM;
SatMod := SM;
WriteLn('BEST COLOR MODIFIERS FOUND:');
WriteLn(' -> Tolerance = '+inttostr(tolerance));
WriteLn(' -> Huemod = '+floattostr(HueMod));
WriteLn(' -> SatMod = '+floattostr(SatMod));
ColorToleranceSpeed(CTS);
Exit;
End;
Until(False);
goto FailExit;
End;



Procedure SetupPlayer;
Begin
If (Not LoggedIn) Then Exit;
Case lowerCase(mFighter[CurrentPlayer].FightMode) of
'strength', 'defence', 'attack', 'even': mFighter[CurrentPlayer].FightStyle := 'melee';
'accurate', 'rapid', 'longrange': mFighter[CurrentPlayer].FightStyle := 'ranged';
End;

If CalcXP Then
Begin
Case lowerCase(mFighter[CurrentPlayer].FightMode) of
'rapid', 'accurate': mFighter[CurrentPlayer].SXP[3] := GetXP(skill_Range);
'longrange': Begin
mFighter[CurrentPlayer].SXP[3] := GetXP(skill_Range);
mFighter[CurrentPlayer].SXP[2] := GetXP(skill_Defence);
End;
'attack': mFighter[CurrentPlayer].SXP[0] := GetXP(skill_Attack);
'strength': mFighter[CurrentPlayer].SXP[1] := GetXP(skill_Strength);
'defence': mFighter[CurrentPlayer].SXP[2] := GetXP(skill_Defence);
'even': Begin
mFighter[CurrentPlayer].SXP[0] := GetXP(skill_Attack);
mFighter[CurrentPlayer].SXP[1] := GetXP(skill_Strength);
mFighter[CurrentPlayer].SXP[2] := GetXP(skill_Defence);
End;
End;

If mFighter[CurrentPlayer].PickupFocus[0] > 0 then
mFighter[CurrentPlayer].SXP[4] := GetXP(skill_Prayer);
End;
SetLevels;
FightMode;
SetupFood;
Fails := 0;
SetAngle(True);
SetAngle(True);
If mFighter[currentplayer].HueMod <= 0 Then
SetupMonsterFinder(mFighter[currentplayer].MonTol, mFighter[currentplayer].HueMod, mFighter[currentplayer].SatMod);
End;


Procedure ProgressReport;
Var
i: Integer;
HXP, HK: Extended;
Begin

ClearDebug;
If HowManyPlayers > 1 Then
Begin
WriteLn('|~ MultIfighter '+version+'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~|');
WriteLn('|_Player_|_Kills_|_Levels_|_Pickups_|_Bon es_|_Responds_|_Active_|');
For i := 0 to High(mFighter) do
WriteLn('| '+padr(Players[i].Nick, 7)+'| '+padr(inttostr(Players[i].Integers[0]), 6)+'| '+padr(IntToStr(Players[i].Integers[1]), 7)+'| '+padr(inttostr(Players[i].Integers[2]), 8)+'| '+padr(inttostr(Players[i].Integers[3]), 6)+'| '+padr(IntToStr(Players[i].Integers[4]),9)+'| '+padr(booltostr(Players[i].active), 6)+'|');
WriteLn('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~|');
If HowManyPlayers > 1 Then
WriteLn('| Minutes to switch: '+padr(inttostr(((LoopTime-(TimeFromMark(RoundMark)/60/1000)))), 43)+'|');
WriteLn('| Worked For: '+padr(timerunning, 50)+'|');
WriteLn('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~|');
End Else
Begin
HXP := LastXPCheck div 1000.0 div 60.0 div 60.0;
HK := GetTimeRunning div 1000.0 div 60.0 div 60.0;
WriteLn('||||||||||||||||||||||||||||||||||||||||| ||||||||||||');
WriteLn('|||| ||||');
WriteLn('|| M U L T I F I G H T E R ||');
WriteLn('|||| v'+version+' ||||');
WriteLn('||||||||||||||||||||||||||||||||||||||||| ||||||||||||');
WriteLn('|| o Kills ||');
WriteLn('|| -> '+Padr(IntToStr(Players[CurrentPlayer].Integers[0]), 42)+'||');
WriteLn('|| -> '+Padr(IntToStr(Round(Players[CurrentPlayer].Integers[0] div HK))+' K/H', 42)+'||');
WriteLn('|| ||');
WriteLn('|| o Pickups ||');
WriteLn('|| -> '+Padr(IntToStr(Players[CurrentPlayer].Integers[3])+' Bones', 42)+'||');
WriteLn('|| -> '+Padr(IntToStr(Players[CurrentPlayer].Integers[2])+' Other items', 42)+'||');
WriteLn('|| ||');
Case mFighter[CurrentPlayer].FightStyle of
'melee': WriteLn('|| o XP-Gained with Fightmode: '+Padr(Capitalize(mFighter[currentplayer].FightMode), 19)+'||');
'ranged': WriteLn('|| o XP-Gained with Ranged ||');
End;
If (mFighter[CurrentPlayer].XPG[0] > 0) Then
WriteLn('|| -> Attack '+Padr(IntToStr(mFighter[CurrentPlayer].XPG[0]), 10)+Padr('['+IntToStr(mFighter[CurrentPlayer].LevelUps[0])+' Levels]', 21)+'||');
If (mFighter[CurrentPlayer].XPG[1] > 0) Then
WriteLn('|| -> Strength '+Padr(IntToStr(mFighter[CurrentPlayer].XPG[1]), 10)+Padr('['+IntToStr(mFighter[CurrentPlayer].LevelUps[1])+' Levels]', 21)+'||');
If (mFighter[CurrentPlayer].XPG[2] > 0) Then
WriteLn('|| -> Defence '+Padr(IntToStr(mFighter[CurrentPlayer].XPG[2]), 10)+Padr('['+IntToStr(mFighter[CurrentPlayer].LevelUps[2])+' Levels]', 21)+'||');
If (mFighter[CurrentPlayer].XPG[3] > 0) Then
WriteLn('|| -> Ranged '+Padr(IntToStr(mFighter[CurrentPlayer].XPG[3]), 10)+Padr('['+IntToStr(mFighter[CurrentPlayer].LevelUps[3])+' Levels]', 12)+'||');
If (mFighter[CurrentPlayer].XPG[4] > 0) Then
WriteLn('|| -> Prayer '+Padr(IntToStr(mFighter[CurrentPlayer].XPG[4]), 10)+Padr('['+IntToStr(mFighter[CurrentPlayer].LevelUps[4])+' Levels]', 12)+'||');

WriteLn('|| -> TOTAL '+Padr(IntToStr(mFighter[CurrentPlayer].XPG[0]+mFighter[CurrentPlayer].XPG[1]+mFighter[CurrentPlayer].XPG[2]+mFighter[CurrentPlayer].XPG[3]+mFighter[CurrentPlayer].XPG[4]), 31)+'||');
Try
WriteLn('|| -> XP/H '+Padr(IntToStr(Round(mFighter[CurrentPlayer].XP_TOT div HXP)), 31)+'||');
Except
WriteLn('|| -> XP/H '+Padr(IntToStr(Round(mFighter[CurrentPlayer].XP_TOT div HK)), 31)+'||');
End;

WriteLn('||||||||||||||||||||||||||||||||||||||||| ||||||||||||');
WriteLn('|| '+Padr(TimeRunning, 48)+'||');
WriteLn('||||||||||||||||||||||||||||||||||||||||| ||||||||||||');
End;

End;


Function BedTime: boolean;
Var
h, m, i: Integer;
hs: String;
Begin
If SleepTime = '' Then Exit;
For i := 1 to length(SleepTime) do
Begin
hs := hs + copy(lowercase(SleepTime), i, 1);
If (hs[i] = 'h') Then break;
End;
hs := GetNumbers(hs);
h := StrToIntDef(hs, 0);
m := StrToIntDef(between('h', 'm', SleepTime), 0);
Result := (h*60*60*1000) + (m*60*1000) < TimeFromMark(SleepMark);
End;

Procedure Sleepz;
Var
H, M, S, T, I, SleepTimez, hx, mx: Integer;
hs: String;
Begin
If SleepFor = '' Then Exit;
Status('Sleeping...');
For i := 1 to length(SleepFor) do
Begin
hs := hs + copy(lowercase(SleepFor), i, 1);
If (hs[i] = 'h') Then break;
End;
hs := GetNumbers(hs);
hx := StrToIntDef(hs, 0);
mx := StrToIntDef(between('h', 'm', SleepFor), 0);
sleeptimez := hx*60*60*1000 + mx*60*1000;
LogOut;
ClearDebug;
WriteLn('SLEEPING!');
WriteLn('Press F2 to cancel.');
MarkTime(T);
Repeat
ConvertTime(sleeptimez - timefrommark(t), h, m, s);
Disguise(inttostr(h)+' h '+inttostr(m)+' m '+inttostr(s)+' sec');
Sleep(10);
If IsFKeyDown(2) Then
Break;
Until(TimeFromMark(T) > SleepTimez);
Disguise('Mozilla Firefox');
LoginPlayer;
MarkTime(SleepMark);
End;

Procedure PickBones;
Var
I: Integer;
Begin
If (Not LoggedIn) Then Exit;
If (mFighter[CurrentPlayer].PickupFocus[0] < 1) Then Exit;
For I := 1 to mFighter[CurrentPlayer].PickupFocus[0] do
If PickupItem([COLOR_BONES], ['one']) Then
Inc(Players[CurrentPlayer].Integers[3])
Else
Break;
End;

Procedure PickupAll;
Var
I: Integer;
Begin
If Random(2) = 0 Then
Begin
PickBones;
If Length(mFighter[currentplayer].PickupColors) > 0 Then
If Length(mFighter[currentplayer].PickupNames) > 0 Then
For I := 0 to (mFighter[currentplayer].PickupFocus[1] - 1) do
If PickupItem(mFighter[currentplayer].PickupColors, mFighter[currentplayer].PickupNames) Then
Inc(Players[currentplayer].Integers[2])
Else
Break;
End Else
Begin
If Length(mFighter[currentplayer].PickupColors) > 0 Then
If Length(mFighter[currentplayer].PickupNames) > 0 Then
For I := 0 to (mFighter[currentplayer].PickupFocus[1] - 1) do
If PickupItem(mFighter[currentplayer].PickupColors, mFighter[currentplayer].PickupNames) Then
Inc(Players[currentplayer].Integers[2])
Else
Break;
PickBones;
End;
End;

Function GetBoneCount: Integer;
begin
Result := CountItems('dtm', DTMs[0], []){ + CountItems('dtm', DTMS[1], [])};
end;

Function GetPeachCount: Integer;
begin
Result := CountItems('bmp', BMPFood, [20]);
end;


Procedure BonesToPeaches;
var
i, x, y: integer;
Begin
if (GetPeachCount < 4) and (GetBoneCount > 0) then
begin
if FindDTM(DTMs[2], x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MouseItem(CoordsToItem(x, y), True);
Wait(2000 + random(500));
end;
end;
End;


Procedure MainLoop;
Var
i: Integer;
Monsterz: TPointArray;
Begin
If (Not LoggedIn) Then loginplayer;
MarkTime(SleepMark);
Repeat
MarkTime(RoundMark);
Repeat
FRan;
RunEnergy(RandomRange(60, 100));
HPCheck;
If M_FindObjects(Monsterz, 40, 40, mFighter[CurrentPlayer].MonsterColors, 15, mFighter[currentplayer].MonTol, mFighter[currentplayer].HueMod, mFighter[currentplayer].SatMod, True) Then
Begin
FRan;
For I := 0 to Min(2, High(Monsterz)) do
Begin
If FightMonster(Monsterz[i]) Then
Begin
Fails:= 0;
Inc(Players[currentplayer].Integers[0]);
Break;
End;
If (I = Min(2, High(Monsterz))) Then
Begin
Inc(Fails);
If (Fails mod 3 = 0) Then SearchMobs;
End;
End;
CheckLevelUps;
End Else
Begin
Inc(Fails);
WriteLn('Fails : '+inttostr(fails));
SearchMobs;
End;

PickupAll;

If (mFighter[currentplayer].PickupFocus[0] > 0) Then
If InvFull Then
if mFighter[currentplayer].Others[1] then
BonesToPeaches
else
BuryBonez;

AntiBan;
ProgressReport;

If BedTime Then Sleepz;

Until(SwitchPlayers);

If PlayersActive > 0 Then
NextP(mFighter[currentplayer].active)
Else
Begin
logout;
TerminateScript;
End;

Until(False);
End;

Procedure SetupFighter;
Var
content: String;
i: Integer;
Begin
DeclarePlayers;
//GetApplication.BringToFront;
Wait(100);
Smart_Server := World;
Smart_Members := Members;
Smart_Signed := Signed;
Smart_SuperDetail := False;
SetupSRL;
SRLPlayers;
ClearDebug;

ActivateClient;
Wait(2000);
MouseSpeed := MousSpeed;

End;



Begin;
SetupFighter;
If (Not LoggedIn) Then LogInPlayer;
SetupPlayer;
MainLoop;
End.[/QUOTE]

x[Warrior]x3500
01-14-2012, 08:28 PM
ahh use [!code] [!/code] tags! :P (erase the !)

ernestthechicken
01-14-2012, 08:30 PM
Its the outdated multifighter


And fixed it

Dgby714
01-14-2012, 08:32 PM
Its the outdated multifighter


And fixed it

>outdated

And your asking why it doesn't work.....

ernestthechicken
01-14-2012, 08:43 PM
>outdated

And your asking why it doesn't work.....

BUT! it did work before, i had some issues with compiling scripts lately:
Eversince Simba only worked on .simba's

Dgby714
01-14-2012, 08:47 PM
BUT! it did work before, i had some issues with compiling scripts lately:
Eversince Simba only worked on .simba's

Both .scar and .simba work.

SRL got updated to SRL-5 and now all the files got renamed. (Meaning any scripts that haven't updated to SRL-5 don't work)

ernestthechicken
01-14-2012, 09:00 PM
Both .scar and .simba work.

SRL got updated to SRL-5 and now all the files got renamed. (Meaning any scripts that haven't updated to SRL-5 don't work)

Ah right, so there must be some fighter bots that should work but im just picking out the outdated ones.. makes sense :-) thanks for clearing this up..