SRL Archive - RS3 Outdated / Broken Scripts

Sandstorm and NiCbaZ's Soul Wars released!


Sandstorm

2009-04-30 04:13:26

Some Background:

For a while NiCbaZ and I were selling this on Sythe, but neither of us wanted to keep it going, and as far as I know, there weren't many sales.

The authorization system is crude, so for now, just enter "hi" as the name, and "hi1" as the password in the first form, until I get around to removing it.

The second form was created by NiCbaZ, I just made a small addition to it (the fighting part).

Currently, I suggest you use the AFK, unless you have an epic machine, and can fight. It supports walk back, but it doesn't always work, due to mass lag (which is why I stopped updating it - I lag to much, as do the other users).

Features:

Deathwalk. Walks back to the AFK spot, or the fighting spot, from any graveyard (I hope!).

Antiban, with "AI". The less often it's used, the more chance it has to BE used.

Reflection. As long as Reflection is up to date, the script SHOULD work.*

A nice form. Created by NiCbaZ, I only added in choosing whether to fight or not. It saves all your settings for each tab, and will load them right at the start (although you need to open tabs for any characters past character one to appear!).

A "flag" function that executes antiban while moving.

Progress Reports:


With the AFK version of my script:

[You won: 7 games.                                                               ]
[You lost: 7 games. ]
[You drawn: 0 games. ]
[You have played: 14 games. ]
[You have gained: 28 zeal. ]
[You have performed: 950 antibans ]
[The script has been running for: 4 Hours, 45 Minutes, 30 Seconds ]
[Thanks for using the Soul Wars Lite by Sandstorm! ]

[You won: 8 games. ]
[You lost: 8 games. ]
[You drawn: 0 games. ]
[You have played: 16 games. ]
[You have gained: 32 zeal. ]
[You have performed: 1256 antibans ]
[The script has been running for: 7 Hours, 7 Minutes and 24 Seconds ]
[Thanks for using the Soul Wars Lite by Sandstorm!

[You won: 9 games. ]
[You lost: 10 games. ]
[You drawn: 2 games. ]
[You have played: 21 games. ]
[You have gained: 41 zeal. ]
[You have performed: 1464 antibans ]
[The script has been running for: 8 Hours, 54 Minutes and 26 Seconds ]
[Thanks for using the Soul Wars Lite by Sandstorm! ]

With the fighting version, here is the only progress report I have recorded:

[You won: 4 games.                                                               ]
[You lost: 4 games. ]
[You drawn: 1 games. ]
[You have played: 9 games. ]
[You have gained: 18 zeal. ]
[You have performed: 161 antibans ]
[The script has been running for: 3 Hours, 22 Minutes and 48 Seconds ]
[Thanks for using the Soul Wars Lite by Sandstorm! ]

Anyways, without wasting any more time, here's the script:

{.Script Info:
# ScriptName = Soul Wars!
# Author = Sandstorm and NiCbaZ.
# Description = Walks into Soul Wars game walks to an afk spot,
# Desc. Cont. = sits and antibans until it's outside. Repeats
# Version = 1.2
# Date = February 15th, 2009.
# Comments = Err... None.
/Script Info
Credits:
05hartor for letting me borrow his account to develop the script on.
}
Program New;
{.Include SRL\SRL\Misc\Smart.Scar}
{.Include SRL\SRL.Scar}
{.Include SRL\SRL\Reflection\Reflection.Scar}

const
ChanceToAntiban = 3000;
WhichWorld = 2;
SwitchTeams = True; //Switch teams based on who won the last game?
Switch = True; //Switch players?
Rest = True; //Use breaks?
TimeL = 10; //How long to break for? In minutes. Adds a random amount.
//Random amount = Time to break / 10 rounded down.

var
TeamString, Team: string;
Chances, TeamInteger, GameCount, GamesPlayed, GamesWon, GamesLost : Integer;
GamesDrawn, Antibanz, Zeal, Iz : Integer;
Guthix, EndInitForm : Boolean;
frmDesign, Authorization : TForm;
PageControl : TPageControl;
TabPages : array of TTabSheet;
PlayersZ, GroupBox2 : array of TGroupBox;
Label2, Label3, Label4, Label5, Label10, Label6, Label7, Label8, Label9, Label15 : array of TLabel;
Username, Edit2, Edit3, Edit4, Edit5 : array of TEdit;
Button2, Button1 : array of TButton;
ComboBox1, ComboBox2, ComboBox3 : array of TComboBox;
AuthUser, AuthPass : TEdit;
ButtonStart : TButton;

procedure ProgressReport;
begin
ClearDebug;
GamesDrawn := GamesPlayed - GamesLost - GamesWon;
Zeal := (GamesWon * 3) + (GamesDrawn * 2) + (GamesLost * 1);
WriteLn('[' + Padr('You won: ' + IntToStr(GamesWon) + ' games.', 80) + ']');
WriteLn('[' + Padr('You lost: ' + IntToStr(GamesLost) + ' games.', 80) + ']');
WriteLn('[' + Padr('You drawn: ' + IntToStr(GamesDrawn) + ' games.', 80) + ']');
WriteLn('[' + Padr('You have played: ' + IntToStr(GamesPlayed) + ' games.', 80) + ']');
WriteLn('[' + Padr('You have gained: ' + IntToStr(Zeal) + ' zeal.', 80) + ']');
WriteLn('[' + Padr('You have performed: ' + IntToStr(Antibanz) + ' antibans', 80) + ']');
WriteLn('[' + Padr('The script has been running for: ' + TimeRunning, 80) + ']');
WriteLn('[' + Padr('Thanks for using the Soul Wars Lite by Sandstorm!', 80) + ']');
end;

procedure SetupSmart;
begin
SmartSetupEx(144, True, true, false);
while (not RSReady) and (not (IsFkeyDown(9))) do
wait(100);
SetTargetDC(SmartGetDC);
end;

function Contain(Stringz, Strings: string): Boolean;
begin
Result := Pos(Stringz, Strings) <> 0;
end;

function AntiBan(Chance: Integer): Boolean;
var
x, y: Integer;
begin
if not (LoggedIn) then
Exit;
case random(Chance) of
0:
begin
PickUpMouse;
Result := True;
Inc(Antibanz);
end;
1:
begin
Result := True;
GameTab(1 + Random(12));
Inc(Antibanz);
end;
2:
begin
Result := True;
RandomRclick;
Inc(Antibanz);
end;
3:
begin
Result := True;
randomMovement;
Inc(Antibanz);
end;
4:
begin
Result := True;
MMouse(Random(MSX2), Random(MSY2), Random(MSX2), Random(MSY2));
Inc(Antibanz);
end;
5:
begin
HoverSkill('random', false);
sleepandmovemouse(200 + Random(100));
gametab(4);
MMouse(Random(MSY1), Random(MSX1), Random(MSX2), Random(MSY2));
Inc(Antibanz);
end;
6:
begin
GameTab(1 + Random(13));
wait(1000 + Random(600));
Result := True;
Inc(Antibanz);
end;
7:
begin
HoverSkill('random', false);
sleepandmovemouse(200 + Random(100));
Result := True;
Inc(Antibanz);
end;
8:
begin
Result := True;
MMouse(x, y, (10 + random(350)), (10 + random(200)));
Inc(Antibanz);
end;
9:
begin
Result := True;
MMouse(Random(MSX2), Random(MSY2), Random(MSX2), Random(MSY2));
Inc(Antibanz);
end;
end;
end;

procedure DoAntiBans;
begin
if Chances <= 0 then
Chances := 50;
if Chances < 50 then
Chances := 50;
if Antiban(Chances) then
begin
Chances := ChanceToAntiban;
end
else
Chances := Chances - randomrange(1, 5);
end;

function DidIDie: Integer;
begin
Result := 0;
if PointInBox(GetMyPos, IntToBox(1816, 3220, 1823, 3230)) then
Result := 1;
if PointInBox(GetMyPos, IntToBox(1841, 3217, 1843, 3219)) then
Result := 2;
if PointInBox(GetMyPos, IntToBox(1932, 3244, 1934, 3246)) then
Result := 3;
if PointInBox(GetMyPos, IntToBox(1951, 3234, 1958, 3244)) then
Result := 4;
end;

function InWaitingRoom(Team: string): Boolean;
begin
case Lowercase(Team) of
'zamorak': Result := PointInBox(GetMyPos, IntToBox(1900, 3157, 1909, 3166));
'saradomin': Result := PointInBox(GetMyPos, IntToBox(1871, 3159, 1879, 3166));
end;
end;

function InAWaitingRoom: Boolean;
begin
Result := InWaitingRoom('saradomin') or InWaitingRoom('zamorak');
end;

function OutOfGame: Boolean;
begin
Result := TileOnMM(Point(1899, 3162)) or TileOnMM(Point(1880, 3162));
end;

procedure ToPortal(Portal: Integer);
begin
if not OutOfGame then
Exit;
case Portal of
1:
begin
if not TileOnMM(Point(1899, 3162)) then
WalkToTile(Point(1890, 3164), 2, 1);
WalkToTile(Point(1899, 3162), 2, 1);
end;
2:
begin
if not TileOnMM(Point(1880, 3162)) then
WalkToTile(Point(1890, 3164), 2, 1);
WalkToTile(Point(1880, 3162), 2, 1);
end;
3: WalkToTile(Point(1891, 3163), 2, 1);
end;
end;

Function TimeRemaining(Procedures : String) : Variant;
Begin
Case Lowercase(Procedures) of
'enterportal' : Result := Contain('ou left a', GetInterfaceText(211, 1));
'waiting' : Result := GetNumbers(GetInterfaceText(211, 1));
End;
End;

Procedure Waiting;
Var
C : Integer;
Begin
C := StrToInt(TimeRemaining('waiting'))
Logout;
Wait(C * 60 * 1000 + random(10000));
LoginPlayer;
End;

procedure HandleChat;
var
x, y: Integer;
begin
If TimeRemaining('enterportal') Then
Waiting;
while FindText(x, y, 'lease wait', npcChars, MCX1, MCY1, MCX2, MCY2) do
Wait(750);
if Guthix then
ClickText('nter portal.', npcChars, MCX1, MCY1, MCX2, MCY2, true)
else
ClickText('nter waiting area', npcChars, MCX1, MCY1, MCX2, MCY2, true);
end;

procedure EnterPortal(Portal: Integer);
var
P: Tpoint;
X, Y: Integer;
C: TMe;
begin
if InWaitingRoom('saradomin') or InWaitingRoom('zamorak') then
Exit;
case Portal of
1:
begin
MakeCompass('e');
If TimeRemaining('enterportal') Then
Waiting;
if ClickToContinue then
HandleChat;
if not TileOnMS(Point(1900, 3162), 0) then
ToPortal(1);
C := GetMe;
if C.Speed = 0 then
begin
P := TileToMSEx(Tile(1900, 3162.5), 5);
MMouse(P.x, P.y, 3, 3);
Wait(500);
if IsUpText('ed barr') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
end;
If TimeRemaining('enterportal') Then
Waiting;
if ClickToContinue then
HandleChat;
if ClickToContinue then
HandleChat;
end;
end;
2:
begin
MakeCompass('w');
If TimeRemaining('enterportal') Then
Waiting;
if ClickToContinue then
HandleChat;
if not TileOnMS(Point(1879, 3162), 0) then
ToPortal(2);
C := GetMe;
if C.Speed = 0 then
begin
P := TileToMSEx(Tile(1879, 3162.5), 5);
MMouse(P.x, P.y, 3, 3);
Wait(500);
if IsUpText('lue barr') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
end;
If TimeRemaining('enterportal') Then
Waiting;
if ClickToContinue then
HandleChat;
if ClickToContinue then
HandleChat;
end;
end;
3:
begin
MakeCompass('s');
If TimeRemaining('enterportal') Then
Waiting;
if ClickToContinue then
HandleChat;
if not TileOnMS(Point(1891, 3163), 0) then
ToPortal(3);
C := GetMe;
if C.Speed = 0 then
begin
P := TileToMSEx(Tile(1891, 3163), 5);
MMouse(P.x, P.y, 3, 3);
Wait(500);
if IsUpText('eam Ba') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
end;
If TimeRemaining('enterportal') Then
Waiting;
if ClickToContinue then
HandleChat;
if ClickToContinue then
HandleChat;
end;
end;
end;
end;

function ABFlag: Boolean;
var
timeout, x, y: Integer;
begin
if (FindColor(x, y, 255, MMX1, MMY1, MMX2, MMY2)) then
begin
Result := True;
repeat
Wait(100);
DoAntiBans;
if (SRL_Procs[srl_AntiBan] <> nil) then
SRL_Procs[srl_AntiBan]();
timeout := timeout + 1;
until (not FindColor(x, y, 255, MMX1, MMY1, MMX2, MMY2)) or (timeout > 300);
end;
end;


function WalkToPath(Path: TPointArray): Boolean;
var
I: integer;
Last, II, Dist: Integer;
P: TPoint;
DoTile: Integer;
begin
case random(3) of
1: SetRun(true);
end;
P := GetMyPos;
Last := 1 shl 20;
for II := 0 to High(Path) - 1 do
begin
Dist := Distance(P.x, P.y, Path[II + 1].x, Path[II + 1].y);
if (Dist > Last) then Continue;
Last := Dist;
DoTile := II;
end;
if (not(WalkToTile(Path[DoTile + 1], 1, 10))) then
begin
Result:= False;
Exit;
end else
for I := DoTile + 1 to High(Path) - 1 do
begin
if not (WalkToTile(Path[i + 1], 1, 3)) then
begin
Exit;
Result:= False;
end else
begin
ABFlag;
end;
end;
Result := True;
End;

function SoulWalk(WhereTo : Integer): boolean;
Var
Paths : Array[0..4] of TPointArray;
Begin
Paths[1] := [Point(1815, 3225), Point(1807, 3232), Point(1811, 3244), Point(1820, 3246), Point(1829, 3244), Point(1836, 3247), Point(1844, 3247)];
Paths[2] := [Point(1842, 3230), Point(1842, 3238), Point(1844, 3247)];
Paths[3] := [Point(1934, 3231), Point(1929, 3222), Point(1928, 3212)];
Paths[4] :=[Point(1968, 3233), Point(1966, 3223), Point(1961, 3213), Point(1950, 3217), Point(1939, 3220), Point(1929, 3216), Point(1927, 3213)];
Result := WalkToPath(Paths[WhereTo]);
end;

Function InGraveYard(WhichOne : Integer) : Boolean;
Begin
Case WhichOne Of
1 : Result := PointInBox(GetMyPos, IntToBox(1841, 3217, 1843, 3219));
4 : Result := PointInBox(GetMyPos, IntToBox(1932, 3244, 1934, 3246));
End;
End;

Function InPyreSpot(WhichOne : Integer) : Boolean;
Begin
Case WhichOne Of
1 : Result := PointInBox(GetMyPos, IntToBox(1837, 3238, 1855, 3255));
4 : Result := PointInBox(GetMyPos, IntToBox(1922, 3205, 1936, 3220));
End;
End;

Procedure ToPyre(WhichOne : Integer);
Begin
While Not InPyreSpot(WhichOne) Do
SoulWalk(WhichOne);
End;

Function InBoolArray(Bool : Boolean; Bools : Array of Boolean) : Boolean;
Var
I : Integer;
Begin
For I := 0 To High(Bools) Do
Begin
Result := Bool = Bools[i];
If Result Then
Exit;
End;
End;

Function r_InFight: Boolean;
Var
T: Integer;
Me: TMe;
Begin
T := GetSystemTime;
Repeat
If Not LoggedIn Then
Exit;
Wait(67);
Me := GetMe;
Result := Me.Animation > 0;
Until (Result) or (GetSystemTime - T > 2667);
End;

Procedure FightPyres;
Var
Pyres : Array of TNpc;
Idz : TIntegerArray;
X, Y, I : Integer;
C : TMe;
Begin
C := GetMe;
If (C.Speed <> 0) Then
Exit;
If Random(5) = 2 Then
MakeCompass(IntToStr(Random(360)));
Pyres := GetNPCsBy('Pyrefiend');
SetArrayLength(Idz, High(Pyres) + 1);
For I := 0 To High(Pyres) Do
Idz[I] := Pyres[i].index;
If Not C.InFight Then
Begin
For I := 0 To High(Pyres) do
Begin
If Not PointInBox(Point(Pyres[i].MS.X, Pyres[i].MS.Y), IntToBox(0, 0, 5, 5)) Then
Begin
MMouse(Pyres[i].MS.X, Pyres[i].MS.Y + 20, 3, 3);
Wait(500 + random(250));
If IsUpText('yrefiend') Then
Begin
GetMousePos(X, Y);
Mouse(X, Y, 0 ,0, True);
Break;
End else
Begin
GetMousePos(X, Y);
Mouse(X, Y, 0 ,0, False);
Wait(500 + random(250));
ChooseOption('ck Pyrefiend');
Break;
End;
End;
End;
End;
While R_InFight Do
DoAntiBans;
End;

Function SolveWest : Boolean;
Var
P : TPoint;
X, Y : Integer;
begin
WriteLn('Ran SolveWest');
If Not InGraveYard(1) Then
Exit;
Result := True;
MakeCompass('n');
While InGraveYard(1) Do
Begin
P := TileToMSEx(Tile(1842.5, 3220.5), 5);
MMouse(P.x, P.y, 3, 3);
Wait(500);
if IsUpText('ue barr') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
end;
Wait(1000);
End;
ToPyre(2);
end;

Function SolveEast : Boolean;
Var
P : TPoint;
X, Y : Integer;
begin
WriteLn('Ran SolveEast');
If Not InGraveYard(4) Then
Exit;
Result := True;
MakeCompass('s');
While InGraveYard(1) Do
Begin
P := TileToMSEx(Tile(1933.5, 3243.5), 5);
MMouse(P.x, P.y, 3, 3);
Wait(500);
if IsUpText('ed barr') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
end;
Wait(1000);
End;
ToPyre(3);
end;

procedure HandleRoom(Team2: string);
var
P: Tpoint;
x, y, T: Integer;
C: Tme;
begin
C := GetMe;
if not C.Speed = 0 then
Exit;
T := DidIDie;
if not InRange(T, 0, 5) then
Exit;
if InRange(T, 2, 3) then
begin
if not T <> 2 then
SolveWest
else if not T <> 3 then
SolveEast;
end;
case lowercase(Team2) of
'zamorak':
begin
if not T <> 4 then
begin
MakeCompass('E');
if not TileOnMS(Point(1959, 3239), 1) then
begin
if WalkToTile(Point(1958, 3239), 0, 0) then
begin
Wait(1500);
P := TileToMS(Point(1959, 3239), 1);
MMouse(P.x, P.y, 3, 3);
Wait(250);
GetMousePos(x, y);
if IsUpText('ass Red') then
Mouse(x, y, 0, 0, true);
FFlag(0);
end;
end
else
begin
Wait(1500);
P := TileToMS(Point(1959, 3239), 1);
MMouse(P.x, P.y, 3, 3);
Wait(250);
GetMousePos(x, y);
if IsUpText('ass Red') then
Mouse(x, y, 0, 0, true);
FFlag(0);
end;
end;
end;
'saradomin':
begin
if T = 1 then
begin
Wait(500);
MakeCompass('W');
if not TileOnMS(Point(1816, 3224), 1) then
begin
if WalkToTile(Point(1816, 3224), 0, 0) then
begin
Wait(1500);
P := TileToMSEx(Tile(1815.5, 3225.5), 1);
MMouse(P.x, P.y, 3, 3);
Wait(250);
GetMousePos(x, y);
if IsUpText('ass Blue') then
Mouse(x, y, 0, 0, true);
FFlag(0);
end;
end
else
begin
Wait(1500);
P := TileToMSEx(Tile(1815.5, 3225.5), 1);
MMouse(P.x, P.y, 3, 3);
Wait(250);
GetMousePos(x, y);
if IsUpText('ass Blue') then
Mouse(x, y, 0, 0, true);
FFlag(0);
end;
end;
end;
end;
end;

procedure FavWorld(Which: Integer);
var
XCo, YCo: Integer;
begin
if LoggedIn then
Exit;
case Which of
1:
begin
if GetColor(429, 264) = 1648224 then
XCo := 388
else
XCo := 410;
YCo := 266;
if GetColor(XCo, YCo) = 1648224 then
Mouse(XCo + Random(5), YCo, 3, 3, True)
else
WriteLn('You don''''t have a world favorited there!');
end;
2:
if GetColor(429, 264) = 1648224 then
Mouse(435, 264, 3, 3, True)
else
WriteLn('You don''''t have a world favorited there!');
end;
end;

function InAfkSpot(Team: Integer): Boolean;
begin
case Team of
4: Result := PointInBox(GetMyPos, IntToBox(1959, 3234, 1959, 3236));
1: Result := PointInBox(GetMyPos, IntToBox(1815, 3228, 1815, 3230));
end;
end;

procedure SwitchPlayers(Active: Boolean);
begin
if Guthix then
Guthix := False;
Case Players[currentplayer].Strings[1] Of
'5-10 - Games' : Players[currentplayer].integers[0] := 5 + random(10);
'10-20 - Games' : Players[currentplayer].integers[0] := 10 + random(10);
'20-30 - Games' : Players[currentplayer].integers[0] := 20 + random(10);
End;
If Rest Then
Begin
Logout;
Wait(1000 * 60 * TimeL + Random(Floor(1000 * 60 * (TimeL/10))));
End;
NextPlayer(active);
Team := Players[currentplayer].Strings[0];
GameCount := 0;
end;

procedure Mainloop;
var
T, P: Boolean;
X: string;
begin
ClearDebug;
if not LoggedIn then
LoginPlayer;
Team := Players[currentplayer].Strings[0];
T := False;
X := Lowercase(Team);
if Lowercase(Players[currentplayer].strings[0]) = 'guthix' then
Guthix := True;
repeat
if Guthix and (DidIDie <> 0) then
begin
if DidIDie = 1 then
TeamString := 'saradomin'
else
TeamString := 'zamorak';
case TeamString of
'saradomin': TeamInteger := 1;
'zamorak': TeamInteger := 4;
end;
end
else if Guthix and InAWaitingRoom then
begin
if DidIDie = 1 then
TeamString := 'saradomin'
else
TeamString := 'zamorak';
case TeamString of
'saradomin': TeamInteger := 1;
'zamorak': TeamInteger := 4;
end;
end
else if (GameCount = Players[currentplayer].integers[0]) and (Switch) then
SwitchPlayers(True);
if not LoggedIn then
begin
LoginPlayer;
if OutOfGame then
Mainloop
else
NextPlayer(False);
end;
ProgressReport;
X := Lowercase(Team);
TeamString := Lowercase(X);
if OutOfGame then
begin
Disguise('Out of game!');
FindNormalRandoms;
TeamString := X;
if TeamInteger = 0 then
case TeamString of
'saradomin': TeamInteger := 1;
'zamorak': TeamInteger := 4;
end;
if OutOfGame and not InAWaitingRoom then
begin
Disguise('Entering a Portal!');
if Guthix then
begin
EnterPortal(3);
Exit;
end
else
case X of
'zamorak': EnterPortal(1);
'saradomin': EnterPortal(2);
end;
end;
end;
if not TeamInteger <> 0 then
case TeamString of
'saradomin': TeamInteger := 1;
'zamorak': TeamInteger := 4;
end;
while InAWaitingRoom do
begin
if Guthix then
begin
if InWaitingRoom('saradomin') then
TeamString := 'saradomin'
else
TeamString := 'zamorak';
case TeamString of
'saradomin': TeamInteger := 1;
'zamorak': TeamInteger := 4;
end;
end;
Disguise('In a Waiting Room!');
Wait(500);
DoAntiBans;
end;
if not (DidIDie = TeamInteger) = T then
T := DidIDie = TeamInteger;
if not OutOfGame and not InAWaitingRoom and T then
begin
if Guthix then
begin
if DidIDie = 1 then
TeamString := 'saradomin'
else
TeamString := 'zamorak';
case TeamString of
'saradomin': TeamInteger := 1;
'zamorak': TeamInteger := 4;
end;
end;
HandleRoom(TeamString);
HandleChat;
end;
if not (DidIDie = TeamInteger) = T then
T := DidIDie = TeamInteger;
if (not Players[currentplayer].booleans[0]) and not OutOfGame and not InAWaitingRoom and not T and not InAfkSpot(TeamInteger) then
begin
Disguise('Walking to AFK Spot!');
case TeamString of
'saradomin': WalkToTile(Point(1815, 3230), 1, 0);
'zamorak': WalkToTile(Point(1959, 3234), 1, 0);
end;
end;
if (Players[currentplayer].booleans[0]) and not OutOfGame and not InAWaitingRoom and not T and not InPyreSpot(TeamInteger) then
begin
If InGraveYard(1) Then
SolveWest;
If InGraveYard(4) Then
SolveEast;
Disguise('Walking to Pyre Spot!');
case TeamString of
'saradomin': ToPyre(1);
'zamorak': ToPyre(4);
end;
end;
while (not Players[currentplayer].booleans[0]) and (not OutOfGame) and (not InAWaitingRoom) and (T = false) and (InAfkSpot(TeamInteger)) do
begin
DoAntiBans;
Disguise('Game ends In: ' + GetInterfaceText(836, 27));
Wait(500);
if ValidInterface(836) then
begin
if GetInterfaceText(836, 27) = '1 min' then
begin
if StrToInt(GetInterfaceText(836, 13)) = StrToInt(GetInterfaceText(836, 9)) then
Wait(1)
else
begin
P := StrToInt(GetInterfaceText(836, 13)) > StrToInt(GetInterfaceText(836, 9));
case P of
False:
begin
if TeamString = 'zamorak' then
Begin
If SwitchTeams Then
TeamString := 'saradomin';
Inc(GamesWon)
End
else
Inc(GamesLost);
end;
True:
begin
if TeamString = 'saradomin' then
Begin
If SwitchTeams Then
TeamString := 'zamorak';
Inc(GamesWon)
End
else
Inc(GamesLost);
end;
end;
end;
Inc(GamesPlayed);
Inc(GameCount);
Wait(Ceil(1000 * 60 * 1.1));
end;
end;
if not (DidIDie = TeamInteger) = T then
T := (DidIDie = TeamInteger);
end;
if not (DidIDie = TeamInteger) = T then
T := (DidIDie = TeamInteger);
while (Players[currentplayer].booleans[0]) and (not OutOfGame) and (not InAWaitingRoom) and (T = false) and (InPyreSpot(TeamInteger)) do
begin
FightPyres;
Disguise('Game ends In: ' + GetInterfaceText(836, 27));
Wait(500);
if ValidInterface(836) then
begin
if GetInterfaceText(836, 27) = '1 min' then
begin
if StrToInt(GetInterfaceText(836, 13)) = StrToInt(GetInterfaceText(836, 9)) then
Wait(1)
else
begin
P := StrToInt(GetInterfaceText(836, 13)) > StrToInt(GetInterfaceText(836, 9));
case P of
False:
begin
if TeamString = 'zamorak' then
Begin
If SwitchTeams Then
TeamString := 'saradomin';
Inc(GamesWon)
End
else
Inc(GamesLost);
end;
True:
begin
if TeamString = 'saradomin' then
Begin
If SwitchTeams Then
TeamString := 'zamorak';
Inc(GamesWon)
End
Else
Inc(GamesLost);
End;
End;
end;
Inc(GamesPlayed);
Inc(GameCount);
Wait(Ceil(1000 * 60 * 1.1));
end;
end;
if not (DidIDie = TeamInteger) = T then
T := (DidIDie = TeamInteger);
If not T and not InPyreSpot(TeamInteger) Then
T := True;
end;
TeamInteger := 0;
ProgressReport;
if not (DidIDie = TeamInteger) = T then
T := (DidIDie = TeamInteger);
until (AllPlayersInactive)
end;

Function AuthRight(Passw, Usern : String) : Boolean;
var
User, Pass : Array of String;
I : Integer;
begin
SetArrayLength(User, 4);
SetArrayLength(Pass, 4);
if (Passw <> '') and (Passw <> ' ') and (Usern <> ' ') and (Usern <> '') then
Begin
User := ['hi','hello','sup','lol'];
Pass := ['hi1','hello1','sup101','lol101'];
begin
for I:= 0 to High(Pass) do
Begin
if (User[I] = Usern) and (Pass[I] = Passw) then
Result := True;
End;
end;
end;
If not Result Then
WriteLn('Invalid Username or Password!');
end;

procedure SaveFormSetting; forward;

procedure LoadSettings(I: integer); forward;

procedure StartButton(sender: Tobject);
begin
SaveFormSetting;
FrmDesign.modalresult := mrOk;
end;

procedure InitFormOnClose1(Sender : TObject; var Action : TCloseAction);
begin
If (not(frmDesign.ModalResult = 1)) Then
EndInitForm := True;
end;

procedure InitFormOnClose2(Sender : TObject; var Action : TCloseAction);
begin
if (not(Authorization.ModalResult = 1)) then
EndInitForm := True;
end;

procedure AddPlayer(sender: Tobject);
var
t: integer;
begin
inc(howmanyPlayers);
SetArraylength(UserName, Howmanyplayers);
SetArraylength(Edit2, Howmanyplayers);
SetArraylength(Edit3, Howmanyplayers) SetArraylength(TabPages, Howmanyplayers);
SetArraylength(Playersz, Howmanyplayers);
SetArraylength(Label2, Howmanyplayers);
SetArraylength(Label3, Howmanyplayers);
SetArraylength(Label4, Howmanyplayers);
SetArraylength(Label5, Howmanyplayers);
SetArraylength(Button2, Howmanyplayers);
SetArraylength(Label10, Howmanyplayers) SetArraylength(Button1, Howmanyplayers);
SetArraylength(ComboBox2, Howmanyplayers);
SetArraylength(ComboBox1, Howmanyplayers);
SetArraylength(ComboBox3, Howmanyplayers);
SetArraylength(GroupBox2, Howmanyplayers);
SetArraylength(Edit4, Howmanyplayers);
SetArraylength(Edit5, Howmanyplayers);
SetArraylength(Label6, Howmanyplayers);
SetArraylength(Label7, Howmanyplayers);
SetArraylength(Label8, Howmanyplayers);
SetArraylength(Label9, Howmanyplayers);
SetArraylength(Label15, Howmanyplayers);
t := howmanyplayers - 1;
TabPages[t] := TTabSheet.Create(frmDesign);
TabPages[t].PageControl := PageControl;
TabPages[t].Caption := 'Player ' + inttostr(howmanyplayers);
Playersz[t] := TGroupBox.Create(frmDesign);
Playersz[t] := TGroupBox.Create(FrmDesign);
with Playersz[t] do
begin
Parent := TabPages[t];
Left := 12;
Top := 40;
Width := 161;
Height := 161;
Caption := 'Players';
TabOrder := 0;
end;
Label10[t] := TLabel.Create(Playersz[t]);
with Label10[t] do
begin
Parent := Playersz[t];
Left := 12;
Top := 140;
Width := 70;
Height := 25;
Caption := 'Player :' + IntToStr(t) + '';
end;
Label2[t] := TLabel.Create(Playersz[t]);
with Label2[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 32;
Width := 22;
Height := 13;
Caption := 'User';
end;
Label3[t] := TLabel.Create(Playersz[t]);
with Label3[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 32;
Width := 22;
Height := 13;
Caption := 'User';
end;
Label4[t] := TLabel.Create(Playersz[t]);
with Label4[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 80;
Width := 22;
Height := 13;
Caption := 'Nick';
end;
Label5[t] := TLabel.Create(Playersz[t]);
with Label5[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 56;
Width := 23;
Height := 13;
Caption := 'Pass';
end;
Username[t] := TEdit.Create(Playersz[t]);
with Username[t] do
begin
Parent := Playersz[t];
Left := 48;
Top := 32;
Width := 105;
Height := 21;
TabOrder := 0;
Text := 'Username';
end;
Edit2[t] := TEdit.Create(Playersz[t]);
with Edit2[t] do
begin
Parent := Playersz[t];
Left := 48;
Top := 56;
Width := 105;
Height := 21;
TabOrder := 1;
Text := 'Password';
end;
Edit3[t] := TEdit.Create(Playersz[t]);
with Edit3[t] do
begin
Parent := Playersz[t];
Left := 48;
Top := 80;
Width := 49;
Height := 21;
TabOrder := 2;
Text := 'Nick';
end;
Button2[t] := TButton.Create(TabPages[t]);
with Button2[t] do
begin
Parent := TabPages[t];
Left := 12;
Top := 13;
Width := 70;
Height := 25;
Caption := 'Add Player';
TabOrder := 3;
Onclick := @ AddPlayer
end;
Button1[t] := TButton.Create(frmDesign);
with Button1[t] do
begin
Parent := frmDesign;
Left := 195;
Top := 400;
Width := 60;
Height := 41;
OnClick := @ StartButton;
Caption := 'Start Script';
TabOrder := 0;
end;
GroupBox2[t] := TGroupBox.Create(frmDesign);
with GroupBox2[t] do
begin
Parent := TabPages[t];
Left := 260;
Top := 40;
Width := 161;
Height := 161;
Caption := 'Setup';
TabOrder := 1;
end;
Label6[t] := TLabel.Create(GroupBox2[t]);
with Label6[t] do
begin
Parent := GroupBox2[t];
Left := 8;
Top := 24;
Width := 17;
Height := 13;
Caption := 'Team';
end;
Label7[t] := TLabel.Create(GroupBox2[t]);
with Label7[t] do
begin
Parent := GroupBox2[t];
Left := 8;
Top := 64;
Width := 22;
Height := 13;
Caption := 'Switch';
end;
Label8[t] := TLabel.Create(GroupBox2[t]);
with Label8[t] do
begin
Parent := GroupBox2[t];
Left := 8;
Top := 104;
Width := 35;
Height := 13;
Caption := 'SRL ID';
end;
Label9[t] := TLabel.Create(GroupBox2[t]);
with Label9[t] do
begin
Parent := GroupBox2[t];
Left := 80;
Top := 104;
Width := 52;
Height := 13;
Caption := 'SRL PASS';
end;
ComboBox1[t] := TComboBox.Create(GroupBox2[t]);
with ComboBox1[t] do
begin
Parent := GroupBox2[t];
Left := 44;
Top := 24;
Width := 97;
Height := 21;
ItemHeight := 13;
TabOrder := 0;
Text := 'Team';
with Items do
begin
Add('zamorak');
Add('saradomin');
Add('guthixs');
end;
end;
ComboBox2[t] := TComboBox.Create(GroupBox2[t]);
with ComboBox2[t] do
begin
Parent := GroupBox2[t];
Left := 44;
Top := 64;
Width := 97;
Height := 21;
ItemHeight := 13;
TabOrder := 1;
Text := 'Games Before Switching';
with Items do
begin
Add('5-10 - Games');
Add('10-20 - Games');
Add('20-30 - Games');
end;
end;
Label15[t] := TLabel.Create(Playersz[t]);
with Label15[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 104;
Width := 35;
Height := 13;
Caption := 'Team';
end;
ComboBox3[t] := TComboBox.Create(GroupBox2[t]);
with ComboBox3[t] do
begin
Parent := Playersz[t];
Left := 48;
Top := 104;
Width := 97;
Height := 21;
ItemHeight := 13;
TabOrder := 0;
Text := 'Mode';
with Items do
begin
Add('Fight');
Add('Afk');
end;
end;
Edit4[t] := TEdit.Create(GroupBox2[t]);
with Edit4[t] do
begin
Parent := GroupBox2[t];
Left := 8;
Top := 120;
Width := 41;
Height := 21;
TabOrder := 2;
Text := 'ID';
end;
Edit5[t] := TEdit.Create(GroupBox2[t]);
with Edit5[t] do
begin
Parent := GroupBox2[t];
Left := 80;
Top := 120;
Width := 41;
Height := 21;
TabOrder := 3;
Text := 'Pass';
end;
PageControl.ActivePageIndex := t;
LoadSettings(T);
Iz := Iz + 1;
end;

procedure InitForm;
var
t: Integer;
Image1: TImage;
b, w, h, Files: Integer;
DownloadFrom, Page: string;
DownloadTo: string;
begin
DownLoadFrom := 'http://timer.mgatesphoto.com/uploader/ifile/k.bmp';
DownLoadTo := AppPath + 'Includes\SoulWars\k.bmp';
if not FileExists(DownLoadTo) then
begin
ClearDeBug;
WriteLn('Downloading Form Images');
Page := GetPage(DownLoadFrom);
Files := RewriteFile(DownLoadTo, True);
WriteFileString(Files, Page);
CloseFile(Files);
end;
Inc(Howmanyplayers);
t := Howmanyplayers - 1;
SetArraylength(UserName, Howmanyplayers);
SetArraylength(Edit2, Howmanyplayers);
SetArraylength(Edit3, Howmanyplayers) SetArraylength(TabPages, Howmanyplayers);
SetArraylength(Playersz, Howmanyplayers);
SetArraylength(Label2, Howmanyplayers);
SetArraylength(Label3, Howmanyplayers);
SetArraylength(Label4, Howmanyplayers);
SetArraylength(Label5, Howmanyplayers);
SetArraylength(Button2, Howmanyplayers);
SetArraylength(Label15, Howmanyplayers);
SetArraylength(Label10, Howmanyplayers) SetArraylength(Button1, Howmanyplayers);
SetArraylength(ComboBox2, Howmanyplayers);
SetArraylength(ComboBox1, Howmanyplayers);
SetArraylength(ComboBox3, Howmanyplayers);
SetArraylength(GroupBox2, Howmanyplayers);
SetArraylength(Edit4, Howmanyplayers);
SetArraylength(Edit5, Howmanyplayers);
SetArraylength(Label6, Howmanyplayers);
SetArraylength(Label7, Howmanyplayers);
SetArraylength(Label8, Howmanyplayers);
SetArraylength(Label9, Howmanyplayers);
frmDesign := CreateForm;
with frmDesign do
begin
OnClose := @InitFormOnClose1;
BorderIcons := [biMinimize, biSystemMenu];
Left := 275;
Top := 114;
Width := 517;
Height := 588;
Caption := 'Soul Wars';
Color := clwhite;
Font.Color := clWindowText;
Font.Height := - 11;
Font.Name := 'MS Sans Serif';
Font.Style := [];
PixelsPerInch := 96;
end;
Image1 := TImage.Create(FrmDesign);
Image1.Parent := FrmDesign;
Image1.Left := 0;
Image1.Top := 0;
Image1.Width := 500;
Image1.Height := 261;
b := loadbitmap(AppPath + 'Includes\SoulWars\k.bmp');
getbitmapsize(b, w, h);
copycanvas(getbitmapcanvas(b), Image1.canvas, 0, 0, w, h, 0, 0, w, h);
PageControl := TPageControl.Create(frmDesign);
PageControl.Parent := frmDesign;
PageControl.Top := 275;
PageCOntrol.Width := 501;
PageControl.Height := 274;
TabPages[t] := TTabSheet.Create(frmDesign);
TabPages[t].PageControl := PageControl;
TabPages[t].Caption := 'Player ' + inttostr(howmanyplayers);
Playersz[t] := TGroupBox.Create(FrmDesign);
with Playersz[t] do
begin
Parent := TabPages[t];
Left := 12;
Top := 40;
Width := 161;
Height := 161;
Caption := 'Players';
TabOrder := 0;
end;
Label10[t] := TLabel.Create(Playersz[t]);
with Label10[t] do
begin
Parent := Playersz[t];
Left := 12;
Top := 140;
Width := 70;
Height := 25;
Caption := 'Player :' + IntToStr(t) + '';
end;
Label2[t] := TLabel.Create(Playersz[t]);
with Label2[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 32;
Width := 22;
Height := 13;
Caption := 'User';
end;
Label3[t] := TLabel.Create(Playersz[t]);
with Label3[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 32;
Width := 22;
Height := 13;
Caption := 'User';
end;
Label4[t] := TLabel.Create(Playersz[t]);
with Label4[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 80;
Width := 22;
Height := 13;
Caption := 'Nick';
end;
Label5[t] := TLabel.Create(Playersz[t]);
with Label5[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 56;
Width := 23;
Height := 13;
Caption := 'Pass';
end;
Username[t] := TEdit.Create(Playersz[t]);
with Username[t] do
begin
Parent := Playersz[t];
Left := 48;
Top := 32;
Width := 105;
Height := 21;
TabOrder := 0;
Text := 'Username';
end;
Edit2[t] := TEdit.Create(Playersz[t]);
with Edit2[t] do
begin
Parent := Playersz[t];
Left := 48;
Top := 56;
Width := 105;
Height := 21;
TabOrder := 1;
Text := 'Password';
end;
Edit3[t] := TEdit.Create(Playersz[t]);
with Edit3[t] do
begin
Parent := Playersz[t];
Left := 48;
Top := 80;
Width := 49;
Height := 21;
TabOrder := 2;
Text := 'Nick';
end;
Button2[t] := TButton.Create(TabPages[t]);
with Button2[t] do
begin
Parent := TabPages[t];
Left := 12;
Top := 13;
Width := 70;
Height := 25;
Caption := 'Add Player';
TabOrder := 3;
Onclick := @ AddPlayer;
end;
Button1[t] := TButton.Create(frmDesign);
with Button1[t] do
begin
Parent := frmDesign;
Left := 195;
Top := 400;
Width := 60;
Height := 41;
OnClick := @ StartButton;
Caption := 'Start Script';
TabOrder := 0;
end;
GroupBox2[t] := TGroupBox.Create(frmDesign);
with GroupBox2[t] do
begin
Parent := TabPages[t];
Left := 270;
Top := 40;
Width := 161;
Height := 161;
Caption := 'Setup';
TabOrder := 1;
end;
Label6[t] := TLabel.Create(GroupBox2[t]);
with Label6[t] do
begin
Parent := GroupBox2[t];
Left := 8;
Top := 24;
Width := 17;
Height := 13;
Caption := 'Team';
end;
Label7[t] := TLabel.Create(GroupBox2[t]);
with Label7[t] do
begin
Parent := GroupBox2[t];
Left := 8;
Top := 64;
Width := 22;
Height := 13;
Caption := 'Switch';
end;
Label8[t] := TLabel.Create(GroupBox2[t]);
with Label8[t] do
begin
Parent := GroupBox2[t];
Left := 8;
Top := 104;
Width := 35;
Height := 13;
Caption := 'SRL ID';
end;
Label9[t] := TLabel.Create(GroupBox2[t]);
with Label9[t] do
begin
Parent := GroupBox2[t];
Left := 80;
Top := 104;
Width := 52;
Height := 13;
Caption := 'SRL PASS';
end;
ComboBox1[t] := TComboBox.Create(GroupBox2[t]);
with ComboBox1[t] do
begin
Parent := GroupBox2[t];
Left := 44;
Top := 24;
Width := 97;
Height := 21;
ItemHeight := 13;
TabOrder := 0;
Text := 'Team';
with Items do
begin
Add('zamorak');
Add('saradomin');
Add('guthix');
end;
end;
ComboBox2[t] := TComboBox.Create(GroupBox2[t]);
with ComboBox2[t] do
begin
Parent := GroupBox2[t];
Left := 44;
Top := 64;
Width := 97;
Height := 21;
ItemHeight := 13;
TabOrder := 1;
Text := 'Games Before Switching';
with Items do
begin
Add('5-10 - Games');
Add('10-20 - Games');
Add('20-30 - Games');
end;
end;
Label15[t] := TLabel.Create(Playersz[t]);
with Label15[t] do
begin
Parent := Playersz[t];
Left := 16;
Top := 104;
Width := 35;
Height := 13;
Caption := 'Team';
end;
ComboBox3[t] := TComboBox.Create(GroupBox2[t]);
with ComboBox3[t] do
begin
Parent := Playersz[t];
Left := 48;
Top := 104;
Width := 97;
Height := 21;
ItemHeight := 13;
TabOrder := 0;
Text := 'Mode';
with Items do
begin
Add('Fight');
Add('Afk');
end;
end;
Edit4[t] := TEdit.Create(GroupBox2[t]);
with Edit4[t] do
begin
Parent := GroupBox2[t];
Left := 8;
Top := 120;
Width := 41;
Height := 21;
TabOrder := 2;
Text := 'ID';
end;
Edit5[t] := TEdit.Create(GroupBox2[t]);
with Edit5[t] do
begin
Parent := GroupBox2[t];
Left := 80;
Top := 120;
Width := 41;
Height := 21;
TabOrder := 3;
Text := 'Pass';
end;
Pagecontrol.Activepageindex := 0;
LoadSettings(0);
end;

procedure SaveFormSetting;
var
path: string;
i: integer;
begin
Path := AppPath + 'Includes\SoulWars\Form.ini';
for i := 0 to (HowManyPlayers - 1) do
begin
WriteINI('Player' + inttostr(i), 'User', Username[i].Text, Path);
WriteINI('Player' + inttostr(i), 'Pass', Edit2[i].Text, Path);
WriteINI('Player' + inttostr(i), 'Nick', Edit3[i].Text, Path);
WriteINI('Settings' + inttostr(i), 'Id', Edit4[i].Text, Path);
WriteINI('Settings' + inttostr(i), 'IdPass', Edit5[i].Text, Path);
WriteINI('Player' + inttostr(i), 'Loc', ComboBox1[i].Text, Path);
WriteINI('Player' + inttostr(i), 'Games', ComboBox2[i].Text, Path);
WriteINI('Player' + inttostr(i), 'Mode', ComboBox3[i].Text, Path);
end;
end;

procedure LoadSettings(I: integer);
var
path: string;
begin
Path := AppPath + 'Includes\SoulWars\Form.ini';
if not FileExists(path) then
Exit;
UserName[i].Text := ReadINI('Player' + inttostr(i), 'User', path);
Edit2[i].Text := ReadINI('Player' + inttostr(i), 'Pass', path);
Edit3[i].Text := ReadINI('Player' + inttostr(i), 'Nick', path);
eDIT4[i].Text := ReadINI('Settings' + inttostr(i), 'Id', Path);
Edit5[i].Text := ReadINI('Settings' + inttostr(i), 'IdPass', Path);
ComboBox1[i].Text := ReadINI('Player' + inttostr(i), 'Loc', Path);
ComboBox2[i].Text := ReadINI('Player' + inttostr(i), 'Games', Path);
ComboBox3[i].Text := ReadINI('Player' + inttostr(i), 'Mode', Path);
end;

procedure ShowInitFormModal;
begin
frmDesign.ShowModal;
end;

procedure SafeShowInitFormModal;
var
V: TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('ShowInitFormModal', V);
end;

procedure MainInitForm;
var
V: TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('InitForm', V);
SafeShowInitFormModal;
end;

procedure DeclarePlayers;
var
p: integer;
begin
NumberOfplayers(howmanyplayers);
Currentplayer := 0;
for p := 0 to Howmanyplayers - 1 do
begin
Players[p].Name := Username[p].text;
Players[p].Pass := Edit2[p].text;
Players[p].Nick := Edit3[p].text;
Players[p].Active := True;
Players[p].Strings[0] := Combobox1[p].text;
Players[p].Strings[1] := Combobox2[p].text;
Players[p].Strings[2] := Combobox3[p].text;

Case Players[p].Strings[1] Of
'5-10 - Games' : Players[p].integers[0] := 5 + random(10);
'10-20 - Games' : Players[p].integers[0] := 10 + random(10);
'20-30 - Games' : Players[p].integers[0] := 20 + random(10);
End;
Case Players[p].Strings[2] Of
'Fight' : Players[p].booleans[0] := True;
'Afk' : Players[p].booleans[0] := False;
End;
end;
end;

Procedure Setup;
Begin
SetupSrl;
MainInitForm;
if (EndInitForm) then
TerminateScript
Else
Begin
DeclarePlayers;
SetupSmart;
FavWorld(WhichWorld);
if not LoggedIn then
LoginPlayer;
UseFindMod := False;
LogoutOnMod := False;
repeat
MainLoop;
until (AllPlayersInactive)
End;
End;

procedure AuthCheck(sender: Tobject);
begin
If AuthRight(AuthPass.text, AuthUser.text) Then
Begin
Authorization.modalresult := mrOk;
End Else
Begin
Authorization.modalresult := mrOk;
WriteLn('Your auth was typed incorrectly, or it is no longer in use. Please contact me if you think there is a mistake. Remember, it is case sensitive!');
TerminateScript;
End;
end;

procedure DoForm;
var
TimeInitForm : Integer;
begin
TimeInitForm := GetSystemTime;
Authorization := CreateForm;
with Authorization do
begin
OnClose := @InitFormOnClose2;
Position := poScreenCenter;
BorderStyle := bsSingle;
BorderIcons := [biMinimize,biSystemMenu];
ClientWidth := 150;
ClientHeight := 150;
Caption := 'Verify!';
Color := 5849128;
Font.Color := 0;
Font.Height := 15;
Font.Name := 'MS Sans Serif';
Font.Style := [];
PixelsPerInch := 10;
end;
AuthUser := TEdit.Create(Authorization);
with AuthUser do
begin
Parent := Authorization;
Left := 45;
Top := 16;
Width := 60;
Height := 21;
TabOrder := 1;
Text := 'Username';
end;
AuthPass := TEdit.Create(Authorization);
with AuthPass do
begin
Parent := Authorization;
Left := 45;
Top := 56;
Width := 60;
Height := 21;
TabOrder := 2;
Text := 'Password';
end;
ButtonStart := TButton.Create(Authorization);
with ButtonStart do
begin
Parent := Authorization;
Left := 55;
Top := 104;
Width := 40;
Height := 25;
OnClick := @AuthCheck;
Caption := 'Check!';
TabOrder := 10;
end;
WriteLn('InitForm compiled in ' + IntToStr(GetSystemTime - TimeInitForm) + ' milliseconds!');
end;

procedure SafenitForm;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('DoForm', V);
end;

procedure ShownitForm;
begin
Authorization.ShowModal;
end;

procedure afeShowInitForm;
var
V : TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('ShownitForm', V);
end;

procedure nitForm;
begin
try
SafenitForm;
afeShowInitForm;
finally
FreeForm(Authorization);
except
WriteLn('An error seems to have occurred in: InitForm');
end;
end;

begin
ClearDebug;
GetSelf.WindowState := wsMinimized;
nitForm;
GetSelf.WindowState := wsNormal;
if (EndInitForm) then
TerminateScript
Else
Setup;
end.

Thanks for reading, if you find any bugs, please let me know!
~Sandstorm

* I have not tested this script in a few weeks, so I cannot guarantee that it works, but I believe it does.

Dextima

2009-04-30 04:26:13

Looks good. Nice idea btw. :D

Phran6

2009-04-30 04:38:03

look nice and more stable than mine , mine lag like crazy because of ton of dtm :mad:

Runaway

2009-04-30 04:45:40

I love you. I can't run F.H.'s because it lags my computer up. You are my savior(s)! :)

Sandstorm

2009-04-30 05:08:20

Thanks guys, but I'm sorry say, mine lags to, as far as I can tell.

@Francis, I think you've done a great job for a color script, I couldn't do anywhere near as well with color. Keep it up, you'll find a way to cut down the lag somehow!

~Sandstorm

NiCbaZ

2009-04-30 05:15:55

Oooooooooo Sweet. :)

P1nky

2009-05-01 05:10:37

cool, hope it still runs like i tested it when it was in BETA

MetalancA

2009-05-01 07:12:26

I
love
you
Guys

I recently made a sw pure and terrifyingly realized there were no sw scripts. I was about to hunker down, grit my teeth, and make a soul wars script. Now there's no need! Thanks a bunch for the the release, I'll post some proggies.\

EDIT: Uhm, SMART isn't working? I logs me in and pretty much terminates, though SCAR still says "running script…". Is it this script, SMART, or Reflection?

(P.S. Don't call me a noob I looked under SMART Q&A, Reflection, and I searched for the error, and I couldn't find anything :p)

hello world

2009-05-01 09:23:00

asks me for auth :o

senrath

2009-05-01 09:52:33

From: hello world
asks me for auth :o


It says really early on in the first post that the name is "hi" and the pass is "hi1"

faster789

2009-05-01 15:05:12

InitForm compiled in 0 milliseconds!
Invalid Username or Password!
Your auth was typed incorrectly, or it is no longer in use. Please contact me if you think there is a mistake. Remember, it is case sensitive!
An error seems to have occurred in: InitForm
[Runtime Error] : Out Of Range in line 1799 in script C:\Documents and Settings\OWNER\My Documents\Grade 7\SCAR 3.20\Scripts\Soulwars.scar

Hmm?

hello world

2009-05-01 17:31:17

From: senrath
It says really early on in the first post that the name is "hi" and the pass is "hi1"


thank you. i must be a fucking retrd

Heavenzeyez1

2009-05-01 18:11:01

From: hello world
thank you. i must be a fucking retrd


Not really. :)
~Eerik~

jakeyboy29

2009-05-01 19:33:25

attatch as an attachment pls.

Starbridge

2009-05-01 23:33:57

I know this sounds like a stupid question, but where do I start it?

yourock12345

2009-05-01 23:43:51

sweet script, will test, proggy soon :)
doesnt even work… just sitys there and doesnt enter a game

Sandstorm

2009-05-02 03:45:53

Either the script is outdated, or it's reflection. If it's not reflection, I'll have to look into why it isn't working.

Edit:

It's a bit of both. I believe Jagex changed the tiles. Problem? My tiles are outdated. I don't want to update them, as they were a bitch to get the first time. Anyone want to help?

~Sandstorm

MetalancA

2009-05-02 08:04:13

From: Sandstorm
Either the script is outdated, or it's reflection. If it's not reflection, I'll have to look into why it isn't working.

Edit:

It's a bit of both. I believe Jagex changed the tiles. Problem? My tiles are outdated. I don't want to update them, as they were a bitch to get the first time. Anyone want to help?

~Sandstorm


I would if I knew anything about reflection :rolleyes:

senrath

2009-05-02 08:48:43

I'd get them if I had a members account to check on.

Sandstorm

2009-05-02 18:59:25

Senrath, that can be arranged. Send me a PM when you feel like it :).

~Sandstorm

joeyfeduka

2009-05-04 03:59:40

Does anyone know, if this is faster XP than the novice boat for PC? Also, I have a few members accounts you guys could use.

Phran6

2009-05-05 00:52:38

probably same because you dont fight.

enidraj

2009-05-06 11:47:36

how do i even get the script into scar?
when i copy and paste it doesnt work?
lol im noob

Dark Arcana

2009-05-06 12:17:31

From: enidraj
how do i even get the script into scar?
when i copy and paste it doesnt work?
lol im noob


Here you go.

Smitty

2009-05-06 13:05:22

From: enidraj
how do i even get the script into scar?
when i copy and paste it doesnt work?
lol im noob


lol copy and paste ftl this time :p

enidraj

2009-05-06 14:53:23

thanks but now i get
Failed when compiling
Line 161: [Error] (16777:15): Unknown identifier 'GetMyPos' in script

:S ?
do i need to have reflection?

senrath

2009-05-06 14:56:54

Yeah, you need reflection. But the script needs to have some parts of it updated anyway. Hopefully what I sent Sandstorm is what he needs to do so.

Dark Arcana

2009-05-06 15:09:23

From: enidraj
thanks but now i get
Failed when compiling
Line 161: [Error] (16777:15): Unknown identifier 'GetMyPos' in script

:S ?
do i need to have reflection?


Try using widget's reflection installer to download reflection here.

enidraj

2009-05-06 15:26:32

ok so i tried to install reflection pretty sure it didnt work and just fucked things up
now i get an error in like core srl or something :/

Runaway

2009-05-13 02:56:01

Sandstorm you should update this!
It's a really good script but I can't update it myself cause I have no clue how to use reflection :confused:

Phran6

2009-05-13 04:32:17

i dont know if sandstorm will update it but i think ill update mine soon so patience :)

Sandstorm

2009-05-14 01:10:11

Hey guys, sorry I haven't been working on it! I'm going to update it now.

~Sandstorm

Mjordan

2009-05-14 03:48:24

Just a warning, Jmods go there now and mass ban botters that are AFK'ing. So be very careful.

Runaway

2009-05-16 20:44:09

From: Sandstorm
Hey guys, sorry I haven't been working on it! I'm going to update it now.

~Sandstorm


Yay! please do!
I have 650 zeal to go, and I really don't want to get that many on my own :(

FNM

2009-05-25 02:14:56

Can you please just fucking upload it!:(
I can't get it to paste..

senrath

2009-05-25 02:21:33

From: FNM
Can you please just fucking upload it!:(
I can't get it to paste..


As far as I know, this script hasn't been updated yet, so it won't work.

Sandstorm

2009-05-25 18:44:08

Yea, I haven't updated it yet. I keep forgetting to. The next time I get an updated copy of Reflection (the tiles were messed up last time I tried), I'll update it. Just want to confirm Senrath's tiles. Could have changed again for all we know.

~Sandstorm

kylescoulter

2009-05-28 01:20:30

From: MetalancA
I
love
you
Guys

I recently made a sw pure and terrifyingly realized there were no sw scripts. I was about to hunker down, grit my teeth, and make a soul wars script. Now there's no need! Thanks a bunch for the the release, I'll post some proggies.\

EDIT: Uhm, SMART isn't working? I logs me in and pretty much terminates, though SCAR still says "running script…". Is it this script, SMART, or Reflection?

(P.S. Don't call me a noob I looked under SMART Q&A, Reflection, and I searched for the error, and I couldn't find anything :p)


I am having the same problem. Will the update be any time soon?

josh81193

2009-05-28 17:49:56

well you cant afk anymore due to the status/activity bar thingy.. but theres alot of people that just sit at the bandages and heal each other

Sandstorm

2009-05-29 23:01:43

Does running around cause it to refill?

~Sandstorm

Runaway

2009-05-29 23:12:04

From: Sandstorm
Does running around cause it to refill?

~Sandstorm


No, the only refills are:

-Collecting or burying bones
-Using bandages on other people
-Fighting

Sandstorm

2009-05-30 07:16:28

Grr… Well, I guess once I update it, it's fighting only :/. The fighting isn't flawless either :(.

~Sandstorm

Shuttleu

2009-06-10 03:41:06

anybody know if this still works?

~shut

senrath

2009-06-10 05:32:20

From: Shuttleu
anybody know if this still works?

~shut


Yeah, it doesn't right now.

davidwang

2009-06-10 05:34:44

Aww =(. Good idea of getting rid of the bar: Take bandages from table and heal other people around you or bury any bones. Those tasks are good for raising the activity bar.

southpaw63

2009-07-18 05:59:15

Does this still work?

senrath

2009-07-18 06:28:34

From: southpaw63
Does this still work?


No, it doesn't.