stylen
2007-06-05 12:57:45
<!– BEGIN TEMPLATE: formanswers –>
stylen - SRL Member Application Form
stylen
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
I'm still learning but - PHP, C# and Visual Basics
Other Communitys
Clan Leader/Server Tech of a Enemy Territory Clan - http://www.bcclan.com
How Long have You Played Runescape
Year and a bit, on and off
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Just started SCAR scripting less then two weeks ago. I've come up with the attached script so far and have big plans on improving it.
My favourite bit of programming is creating forms. I love them too bits especially when you have 1 that just works without a hitch.
I like putting in a lot of validation when I code. The better your code the better the reports and less noob questions.
I've just started with coding and am a beginner with all languages :( but working hard to get to where I want.
Wasn't going to submit this script as its a very simple script that just teleports. Doesn't have some of the advanced stuff like walking and stuff.
But seeing as though this is my first script and I'm not starting my next one, which will have most of the advanced stuff, until I'm fully satisfied with this one I'm just going to submit this and see how it goes.
Thanks for reading :D
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Haven't had the chance to give credit where needed.
Will do very soon. :redface:
I can't attach my script so am going to have to post it.
——————————————————
<!– END TEMPLATE: formanswers –>
stylen - SRL Member Application Form
stylen
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
I'm still learning but - PHP, C# and Visual Basics
Other Communitys
Clan Leader/Server Tech of a Enemy Territory Clan - http://www.bcclan.com
How Long have You Played Runescape
Year and a bit, on and off
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Just started SCAR scripting less then two weeks ago. I've come up with the attached script so far and have big plans on improving it.
My favourite bit of programming is creating forms. I love them too bits especially when you have 1 that just works without a hitch.
I like putting in a lot of validation when I code. The better your code the better the reports and less noob questions.
I've just started with coding and am a beginner with all languages :( but working hard to get to where I want.
Wasn't going to submit this script as its a very simple script that just teleports. Doesn't have some of the advanced stuff like walking and stuff.
But seeing as though this is my first script and I'm not starting my next one, which will have most of the advanced stuff, until I'm fully satisfied with this one I'm just going to submit this and see how it goes.
Thanks for reading :D
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Haven't had the chance to give credit where needed.
Will do very soon. :redface:
I can't attach my script so am going to have to post it.
program PowerTeleporter;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/Magic.scar}
var
TeleportTo, TeleportUntil : String;
runScript, jobDone : Boolean;
CurrentLevel, CurrentXP, Achieve : Integer;
var
frmDesign : TForm;
Title1Label : TLabel;
Title2Label : TLabel;
PlayerDetails : TGroupBox;
UsernameLabel : TLabel;
PasswordLabel : TLabel;
NickLabel : TLabel;
ActiveLabel : TLabel;
UsernameEdit : TEdit;
PasswordEdit : TEdit;
NickEdit : TEdit;
ActiveCheckBox : TCheckBox;
Teleportation : TGroupBox;
TeleportToLabel : TLabel;
TeleportUntilLabel : TLabel;
AchieveLabel : TLabel;
TeleportToComboBox : TComboBox;
TeleportUntilComboBox : TComboBox;
AchieveEdit : TEdit;
StartButton : TButton;
CancelButton : TButton;
PlayerManager : TGroupBox;
FirstPlayerButton : TButton;
PreviousPlayerButton : TButton;
AddPlayerButton : TButton;
PlayerIDLabel : TLabel;
DeletePlayerButton : TButton;
NextPlayerButton : TButton;
LastPlayerButton : TButton;
procedure PlayerSetup;
begin
TeleportTo := Players[CurrentPlayer].String1;
TeleportUntil := Players[CurrentPlayer].String2;
Achieve := Players[CurrentPlayer].Integer1;
end;
function FindFastRandoms: Boolean; //By WT-Fakawi.
var
i: Integer;
begin
for i := 1 to 8 do
begin
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
end;
procedure MyAntiBan; // Based of WT-Fakawi's AntiBan
var
DBanMe: Integer;
begin
DBanMe := Random(8);
case DBanMe of
0: RandomRClick;
1: HoverSkill('Magic', False);
2: AlmostLogout
3: PickUpMouse;
4: BoredHuman;
5: Wait2(10000 + Random(20000), True);
6: FTWait(40 + Random(80));
7: DragItem(1, 1 + Random(18));
8: GameTab(1 + Random(12));
9: MouseBox(MSX1, MMY1, MMX2, MMY2, 3);
10: IdleTime(1000 + Random(350),500,1.0);
end;
end;
Function ScanMiniMap(iFrom, iTo, Distance: Integer): Integer; // By Wizzup
Var
I, iX,iY: Integer;
Begin
For I := iFrom To ITo Do
Begin
iX := Round(Distance * Sin(I * Pi / 180)) + 648;
iY := Round(-Distance * Cos(I * Pi / 180)) + 80;
If GetColor(iX, iY) = 0 Then
Begin
Result := Result + 1;
End;
End;
End;
Function InAbyss: Boolean; // by Wizzup
Var
A : Integer;
Begin
A := ScanMiniMap(0, 359, 50);
WriteLn('In Abyss gave '+IntToStr(A)+'.');
If A = 360 Then
Begin
Result := True;
End
End;
Function GuessAbyssRandom: Boolean; // by Wizzup
Var
AbyssalMark, iX, iY, I, ChosenColor, Tol, Tries: Integer;
WeirdColors: Array [0..3] Of Integer;
Operate: TPoint;
Begin
WeirdColors[0] := 13751777;
WeirdColors[1] := 4953873;
WeirdColors[2] := 2509833;
Repeat
Case Random(4) Of
0: Begin Operate.X := 252; Operate.Y := 150; End;
1: Begin Operate.X := 278; Operate.Y := 170; End;
2: Begin Operate.X := 238; Operate.Y := 200; End;
3: Begin Operate.X := 215; Operate.Y := 166; End;
End;
For I := 0 To 2 Do
Begin
Tol := 0;
Repeat
Tol := Tol + 1;
iX := MSCX;
iY := MSCY;
If FindColorSpiralTolerance(iX, iY, WeirdColors[I], MSX1, MSY1, MSX2, MSY2, Tol) Then
Begin
ChosenColor := WeirdColors[I];
If (Distance (iX, iY, MSCX, MSCY) < 120) Then Break;
End;
If ChosenColor <> 0 Then Break;
Until Tol > 9;
End;
If ChosenColor <> 0 Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsUpText('perate') Then
Begin
GetMousePos(iX, iY);
Mouse(iX, iY, 0, 0, True);
End;
End;
Wait(5000+Random(500));
If Not InAbyss Then
Begin
ReportVars[11] := ReportVars[11] + 1;
Result := True;
Wait(1000);
ClickToContinue;
SRLRandomsReport;
Exit;
End;
Tries := Tries + 1;
If TimeFromMark(AbyssalMark) > 60000 * 5 Then Break;
Until Tries > 30;
Tries := 0;
If InAbyss Then
Begin
Repeat
Case Random(4) Of
0: Begin Operate.X := 252; Operate.Y := 150; End;
1: Begin Operate.X := 278; Operate.Y := 170; End;
2: Begin Operate.X := 238; Operate.Y := 200; End;
3: Begin Operate.X := 215; Operate.Y := 166; End;
End;
iX := Operate.X;
iY := Operate.Y;
If FindColorSpiralTolerance(iX, iY, 3393, MSX1, MSY1, MSX2, MSY2, Tol)
Or FindColorSpiralTolerance(iX, iY, 2040150, MSX1, MSY1, MSX2, MSY2, Tol) Then
Begin
If (Distance (iX, iY, MSCX, MSCY) < 80) Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsUpText('perate') Then
Begin
GetMousePos(iX, iY);
Mouse(iX, iY, 0, 0, True);
Wait(5000+ Random(500));
If Not InAbyss Then
Begin
ReportVars[11] := ReportVars[11] + 1;
Result := True;
ClickToContinue;
SRLRandomsReport;
Exit;
End;
End;
End;
End;
Tries := Tries + 1;
Tol := Tol + 2;
If Tol > 20 Then Tol := 2;
Until Tries > 50;
End;
LogOut;
ReportVars[12] := ReportVars[12] + 1;
Players[CurrentPlayer].Loc := 'Abyss';
SRLRandomsReport;
WriteLn('Abyss Random Event.');
End;
procedure checkLvlXP;
begin
CurrentLevel := GetSkillLevel('Magic');
wait(500 + random(500));
CurrentXP := GetXP('Magic');
wait(100);
case TeleportUntil of
'Certain Level' : if CurrentLevel >= Achieve then jobDone := True;
'Certain XP' : if CurrentXP >= Achieve then jobDone := True;
end;
end;
procedure Teleport;
var
i : integer;
begin
i := 0
repeat
if (Cast(TeleportTo + ' Teleport')) then
begin
wait(100);
Players[CurrentPlayer].Integer2 := Players[CurrentPlayer].Integer2 + 1;
wait(100);
i := i + 1;
ReportVars[1] := ReportVars[1] + 1;
case TeleportTo of
'Varrock' : begin
ReportVars[0] := ReportVars[0] + 35;
ReportVars[3] := ReportVars[3] + 35;
ReportVars[5] := ReportVars[5] + 1;
end;
'Lumbridge' : begin
ReportVars[0] := ReportVars[0] + 41;
ReportVars[3] := ReportVars[3] + 41;
ReportVars[6] := ReportVars[6] + 1;
end;
'Falador' : begin
ReportVars[0] := ReportVars[0] + 48;
ReportVars[3] := ReportVars[3] + 48;
ReportVars[7] := ReportVars[7] + 1;
end;
'Camelot' : begin
ReportVars[0] := ReportVars[0] + 55;
ReportVars[3] := ReportVars[3] + 55;
ReportVars[8] := ReportVars[8] + 1;
end;
end;
wait(2500 + random(1000));
end else
begin
if (FindFastRandoms) or (FindNormalRandoms) then
begin
NextPlayer(False);
end else
JobDone := True;
NextPlayer(False);
end;
until(i >= 5 + random(5));
end;
procedure ProgressReport;
var
i, TotalTeleported : Integer;
TeleportXP, TotalXP : Extended;
begin
For i := 0 to (HowManyPlayers - 1) do
TotalTeleported := TotalTeleported + Players[i].Integer2;
For i := 0 to (HowManyPlayers - 1) do
begin
Case TeleportTo of
'Varrock' : TeleportXP := 35.0;
'Lumbridge' : TeleportXP := 41.0;
'Falador' : TeleportXP := 48.0;
'Camelot' : TeleportXP := 55.5;
end;
TotalXP := TotalXP + (TeleportXP * Players[i].Integer2);
end;
writeln('');
writeln('--------------------------------------------');
writeln('| PowerTeleporter By STYLEN |');
writeln('--------------------------------------------');
writeln(' Total Time Running : ' + TimeRunning );
writeln(' Total Times Teleported : ' + IntToStr(TotalTeleported));
writeln(' Total Magic Xp Earned : ' + FloatToStr(TotalXP));
writeln('--------------------------------------------');
writeln(' Current Player Name : ' + Players[CurrentPlayer].Name);
writeln(' Teleport Location : ' + Players[CurrentPlayer].String1);
writeln(' Player Running Time : ' + IntToStr(Players[CurrentPlayer].Worked) + ' Minutes');
writeln(' Times Teleported : ' + IntToStr(Players[CurrentPlayer].Integer2));
writeln(' Magic XP Gained : ' + FloatToStr(Players[CurrentPlayer].Integer2 * TeleportXP));
writeln('--------------------------------------------');
For i := 0 to HowManyPlayers - 1 do
begin
Case Players[i].String1 of
'Varrock' : TeleportXP := 35.0;
'Lumbridge' : TeleportXP := 41.0;
'Falador' : TeleportXP := 48.0;
'Camelot' : TeleportXP := 55.5;
end;
Writeln(' ' + IntToStr(i) + ' : ' + Players[i].Name + ' = ' + BoolToStr(Players[i].Active) +
', Teleport To: ' + Players[i].String1 + ', ' + 'TeleportUntil: ' + Players[i].String2 + ', ' +
'Worked For : ' + IntToStr(Players[i].Worked) + ' Minutes, Teleported: ' + IntToStr(Players[i].Integer2)
+ ', ' + 'Xp Earned: ' + FloatToStr(Players[i].Integer2 * TeleportXP));
end;
writeln('-------------------------------------------');
end;
{------------------------------------------------------------------------------]
[ Start Of Forms ]
[------------------------------------------------------------------------------}
procedure SetupForm;
begin
if UsernameEdit.Text = '' then UsernameEdit.Text := 'Username';
if PasswordEdit.Text = '' then PasswordEdit.Text := 'Password';
if NickEdit.Text = '' then NickEdit.Text := 'Nick';
if TeleportToComboBox.Text = '' then TeleportToComboBox.Text := 'Please Select...';
if TeleportUntilComboBox.Text = '' then TeleportUntilComboBox.Text := 'Please Select...';
case TeleportUntilComboBox.Text of
'Certain Level' : begin
AchieveLabel.Caption := 'Level To Achieve:';
if AchieveEdit.Text = '' then AchieveEdit.Text := 'Enter Level to Teleport Until';
Teleportation.Height := 200;
end;
'Certain XP' : begin
AchieveLabel.Caption := 'XP To Achieve:';
if AchieveEdit.Text = '' then AchieveEdit.Text := 'Enter XP to Teleport Until';
Teleportation.Height := 200;
end;
'No More Runes' : begin
AchieveLabel.Caption := 'No More Runes';
AchieveEdit.Text := '';
Teleportation.Height := 135;
end;
else begin
Teleportation.Height := 135;
end;
end;
end;
procedure ResetForm;
begin
UsernameEdit.Text := 'Username';
PasswordEdit.Text := 'Password';
NickEdit.Text := 'Nick';
ActiveCheckBox.State := cbChecked;
TeleportToComboBox.Text := 'Please Select...';
TeleportUntilComboBox.Text := 'Please Select...';
AchieveEdit.Text := '';
end;
function BadUserDetails: Boolean;
begin
if UsernameEdit.Text = 'Username' then Result := True;
if PasswordEdit.Text = 'Password' then Result := True;
if NickEdit.Text = 'Nick' then Result := True;
case TeleportToComboBox.Text of
'Varrock' : Result := False;
'Lumbridge' : Result := False;
'Falador' : Result := False;
'Camelot' : Result := False;
else Result := True;
end;
case TeleportUntilComboBox.Text of
'Certain Level' : Result := False;
'Certain XP' : Result := False;
'No More Runes' : Result := False;
else Result := True;
end;
case TeleportUntilComboBox.Text of
'Certain Level' : begin
Result := False;
if AchieveEdit.Text = 'Enter Level to Teleport Until' then Result := True;
try
if StrToInt(AchieveEdit.Text) > 99 then Result := True;
if StrToInt(AchieveEdit.Text) <= 0 then Result := True;
except
Result := True;
end
end;
'Certain XP' : begin
Result := False;
if AchieveEdit.Text = 'Enter XP to Teleport Until' then Result := True;
try
if StrToInt(AchieveEdit.Text) <= 0 then Result := True;
except
Result := True;
end;
end;
'No More Runes' : begin
if AchieveEdit.Text = '' then Result := False;
if AchieveEdit.Text = IntToStr(0) then Result := False;
end;
end;
if Result = True then ShowMessage('Details Entered Incorrectly.' + #13#10 + 'Please Check and Re-Enter.');
end;
{------------------------------------------------------------------------------]
[ Player Manager ]
[------------------------------------------------------------------------------}
function SavePlayersInForm : Boolean; //Based of Yakman's UserManager (SRL/Core/Users.SCAR)
begin
if (BadUserDetails) then
begin
Result := False;
end else
begin
Result := True;
Players[CurrentPlayer].Name := UsernameEdit.Text;
Players[CurrentPlayer].Pass := PasswordEdit.Text;
Players[CurrentPlayer].Nick := NickEdit.Text;
Players[CurrentPlayer].Skill := 'Magic';
Players[CurrentPlayer].Active := ActiveCheckBox.Checked;
Players[CurrentPlayer].String1 := TeleportToComboBox.Text;
Players[CurrentPlayer].String2 := TeleportUntilComboBox.Text;
Players[CurrentPlayer].Integer1 := StrToIntDef(AchieveEdit.Text, 0);
end;
end;
procedure LoadPlayersInForm; //Based of Yakman's UserManager (SRL/Core/Users.SCAR)
begin
UsernameEdit.Text := Players[CurrentPlayer].Name;
PasswordEdit.Text := Players[CurrentPlayer].Pass;
NickEdit.Text := Players[CurrentPlayer].Nick;
ActiveCheckBox.Checked := Players[CurrentPlayer].Active;
TeleportToComboBox.Text := Players[CurrentPlayer].String1;
TeleportUntilComboBox.Text := Players[CurrentPlayer].String2;
if Players[CurrentPlayer].Integer1 = 0 then
begin
AchieveEdit.Text := '';
end else
begin
AchieveEdit.Text := IntToStr(Players[CurrentPlayer].Integer1);
end;
end;
function CountPlayers2(CharsStr:String): Integer; //Based of Yakman's UserManager (SRL/Core/Users.SCAR)
var
f: Integer;
FailSafe: LongInt;
begin
FailSafe:= GetSystemTime;
repeat
if (Pos('----Player ' + IntToStr(f) + ' ----', CharsStr) = 0) then
begin
Result := f;
break;
end
f := f + 1
until (GetSystemTime-FailSafe>10000);
end;
procedure SaveUs2; //Based of Yakman's UserManager (SRL/Core/Users.SCAR)
var
f, CharsFile: Integer;
begin
CharsFile := RewriteFile(ScriptPath + 'PowerTeleporter.dat', False);
for f := 0 to GetArrayLength(Players) - 1 do
begin
WriteFileString(CharsFile, '----Player ' + IntToStr(f) + ' ----' + Chr(13));
WriteFileString(CharsFile, IntToStr(f) + '.Name = ' + Players[f].Name + Chr(13));
WriteFileString(CharsFile, IntToStr(f) + '.Pass = ' + Players[f].Pass + Chr(13));
WriteFileString(CharsFile, IntToStr(f) + '.Nick = ' + Players[f].Nick + Chr(13));
WriteFileString(CharsFile, IntToStr(f) + '.Active = ' + BoolToStr(Players[f].Active) + Chr(13));
WriteFileString(CharsFile, IntToStr(f) + '.Teleport To = ' + Players[f].String1 + Chr(13));
WriteFileString(CharsFile, IntToStr(f) + '.Teleport Until = ' + Players[f].String2 + Chr(13));
WriteFileString(CharsFile, IntToStr(f) + '.Achieve = ' + IntToStr(Players[f].Integer1) + Chr(13));
WriteFileString(CharsFile, Chr(13));
end;
CloseFile(CharsFile);
end;
procedure LoadUs2; //Based of Yakman's UserManager (SRL/Core/Users.SCAR)
var
f, CharsFile: Integer;
CharsFileString: String;
begin
CharsFile := OpenFile(ScriptPath + 'PowerTeleporter.dat', False);
if (CharsFile < 0) then
begin
SaveUs2;
CharsFile := OpenFile(ScriptPath + 'PowerTeleporter.dat', False);
if (CharsFile < 0) then
begin
WriteLn('Error Loading Chars');
Exit;
end
end
ReadFileString(CharsFile, CharsFileString, FileSize(CharsFile));
CloseFile(CharsFile);
if CountPlayers2(CharsFileString) = 0 then
begin
SetArrayLength(Players, 1);
end else
begin
SetArrayLength(Players, CountPlayers2(CharsFileString));
end
HowManyPlayers := GetArrayLength(players);
for f := 0 to GetArrayLength(players) - 1 do
begin
Players[f].Name := Between(IntToStr(f) + '.Name = ' , chr(13), CharsFileString);
Players[f].Pass := Between(IntToStr(f) + '.Pass = ' , chr(13), CharsFileString);
Players[f].Nick := Between(IntToStr(f) + '.Nick = ' , chr(13), CharsFileString);
Players[f].Active := StrToBool(Between(IntToStr(f) + '.Active = ' , chr(13), CharsFileString));
Players[f].String1 := Between(IntToStr(f) + '.Teleport To = ' , chr(13), CharsFileString);
Players[f].String2 := Between(IntToStr(f) + '.Teleport Until = ', chr(13), CharsFileString);
Players[f].Integer1 := StrToIntDef(Between(IntToStr(f) + '.Achieve = ' , chr(13), CharsFileString), 0);
end
CloseFile(CharsFile);
end;
{------------------------------------------------------------------------------]
[ Player Manager Events ]
[------------------------------------------------------------------------------}
procedure FormShow(sender: TObject);
begin
LoadUs2;
LoadPlayersInForm;
SetupForm;
PlayerIDLabel.Caption := IntToStr(CurrentPlayer);
end;
procedure FormClose2(sender: TObject; var CanClose: Boolean);
begin
if (SavePlayersInForm) then
begin
SaveUs2;
HowManyPlayers := GetArrayLength(Players);
CanClose := True;
end else
begin
CanClose := False;
end;
end;
procedure FirstPlayerButton_Click(sender: TObject);
begin
if (SavePlayersInForm) then
begin
CurrentPlayer := 0;
PlayerIDLabel.Caption := IntToStr(CurrentPlayer);
LoadPlayersInForm;
SetupForm;
end;
end;
procedure PreviousPlayerButton_Click(sender: tobject); //Based of Yakman's UserManager (SRL/Core/Users.SCAR)
begin
if (CurrentPlayer <> 0) then
begin
if (SavePlayersInForm) then
begin
CurrentPlayer := CurrentPlayer - 1;
PlayerIDLabel.Caption := IntToStr(CurrentPlayer);
LoadPlayersInForm;
SetupForm;
end;
end
end;
procedure AddPlayerButton_Click(sender: Tobject); //Based of Yakman's UserManager (SRL/Core/Users.SCAR)
begin
if (SavePlayersInForm) then
begin
SetArrayLength(Players, GetArrayLength(Players) + 1);
CurrentPlayer := GetArrayLength(Players) - 1;
PlayerIDLabel.Caption := IntToStr(CurrentPlayer);
ResetForm;
SetupForm;
end;
end;
procedure DeletePlayerButton_Click(sender: tobject);
var
d : Integer;
begin
if (GetArrayLength(players) = 1) then
begin
ResetForm;
Exit;
end;
for d := CurrentPlayer to GetArrayLength(Players) - 2 do
begin
Players[d].Name := Players[d + 1].Name;
Players[d].Pass := Players[d + 1].Pass;
Players[d].Nick := Players[d + 1].Nick;
Players[d].Active := Players[d + 1].Active;
Players[d].String1 := Players[d + 1].String1;
Players[d].String2 := Players[d + 1].String2;
Players[d].Integer1 := Players[d + 1].Integer1;
end;
SetArrayLength(Players, GetArrayLength(Players) - 1);
if CurrentPlayer = GetArrayLength(Players) then
begin
CurrentPlayer := CurrentPlayer - 1;
PlayerIDLabel.Caption := IntToStr(CurrentPlayer);
end;
LoadPlayersInForm;
SetupForm;
end;
procedure NextPlayerButton_Click(sender: TObject); //Based of Yakman's UserManager (SRL/Core/Users.SCAR)
begin
try
Players[CurrentPlayer + 1].Name := Players[CurrentPlayer + 1].Name;
except
Exit;
end
if (SavePlayersInForm) then
begin
CurrentPlayer := CurrentPlayer + 1;
PlayerIDLabel.Caption := IntToStr(CurrentPlayer);
LoadPlayersInForm;
SetupForm;
end;
end;
procedure LastPlayerButton_Click(sender: TObject);
begin
if (SavePlayersInForm) then
begin
CurrentPlayer := GetArrayLength(Players) - 1 ;
PlayerIDLabel.Caption := IntToStr(CurrentPlayer);
LoadPlayersInForm;
SetupForm;
end;
end;
{------------------------------------------------------------------------------]
[ End Of Player Manager ]
[------------------------------------------------------------------------------}
{------------------------------------------------------------------------------]
[ Form Events Handlers ]
[------------------------------------------------------------------------------}
procedure UserNameEdit_Click(senter: TObject);
begin
if UsernameEdit.Text = 'Username' then UsernameEdit.Text := '';
end;
procedure UsernameEdit_Exit(senter: TObject);
begin
if UsernameEdit.Text = '' then UsernameEdit.Text := 'Username';
end;
procedure PasswordEdit_Click(senter: TObject);
begin
if PasswordEdit.Text = 'Password' then PasswordEdit.Text := '';
end;
procedure PasswordEdit_Exit(senter: TObject);
begin
if PasswordEdit.Text = '' then PasswordEdit.Text := 'Password';
end;
procedure NickEdit_Click(senter: TObject);
begin
if NickEdit.Text = 'Nick' then NickEdit.Text := '';
end;
procedure NickEdit_Exit(senter: TObject);
begin
if NickEdit.Text = '' then NickEdit.Text := 'Nick';
end;
procedure TeleportUntilComboBox_Click(senter: TObject);
begin
case TeleportUntilComboBox.Text of
'Certain Level' : begin
AchieveLabel.Caption := 'Level To Achieve:';
AchieveEdit.Text := 'Enter Level to Teleport Until';
Teleportation.Height := 200;
end;
'Certain XP' : begin
AchieveLabel.Caption := 'XP To Achieve:';
AchieveEdit.Text := 'Enter XP to Teleport Until';
Teleportation.Height := 200;
end;
'No More Runes' : begin
AchieveLabel.Caption := 'No More Runes';
AchieveEdit.Text := '';
Teleportation.Height := 135;
end
end;
end;
procedure AchieveEdit_Click(senter: TObject);
begin
if AchieveEdit.Text = 'Enter Level to Teleport Until' then AchieveEdit.Text := '';
if AchieveEdit.Text = 'Enter XP to Teleport Until' then AchieveEdit.Text := '';
if AchieveEdit.Text = 'Enter Level/XP to Teleport Until' then AchieveEdit.Text := '';
end;
procedure AchieveEdit_Exit(senter: TObject);
begin
if AchieveEdit.Text = '' then
case TeleportUntilComboBox.Text of
'Certain Level' : AchieveEdit.Text := 'Enter Level to Teleport Until';
'Certain XP' : AchieveEdit.Text := 'Enter XP to Teleport Until';
end;
end;
procedure StartButton_Click(sender: TObject);
begin
runScript := True;
frmDesign.ModalResult:= mrOk;
end;
procedure CancelButton_Click(sender: TObject);
begin
runScript := False;
frmDesign.ModalResult:= mrCancel;
end;
{------------------------------------------------------------------------------]
[ End Of Form Events Handlers ]
[------------------------------------------------------------------------------}
procedure InitForm;
begin
frmDesign := CreateForm;
frmDesign.Left := 260;
frmDesign.Top := 135;
frmDesign.Width := 478;
frmDesign.Height := 404;
frmDesign.Caption := 'STYLEN'#39's Power Teleporter For Magic Training';
frmDesign.Color := clBtnFace;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.Visible := False;
frmDesign.PixelsPerInch := 96;
Title1Label := TLabel.Create(frmDesign);
Title1Label.Parent := frmDesign;
Title1Label.Left := 0;
Title1Label.Top := 0;
Title1Label.Width := 470;
Title1Label.Height := 25;
Title1Label.Alignment := taCenter;
Title1Label.AutoSize := False;
Title1Label.Caption := 'STYLEN'#39's Power Teleporter';
Title1Label.Font.Color := clBlue;
Title1Label.Font.Height := -20;
Title1Label.Font.Name := 'MS Sans Serif';
Title1Label.Font.Style := [fsBold];
Title1Label.ParentFont := False;
Title2Label := TLabel.Create(frmDesign);
Title2Label.Parent := frmDesign;
Title2Label.Left := 40;
Title2Label.Top := 25;
Title2Label.Width := 400;
Title2Label.Height := 16;
Title2Label.Alignment := taRightJustify;
Title2Label.AutoSize := False;
Title2Label.Caption := 'For Magic Training';
Title2Label.Font.Color := clBlue;
Title2Label.Font.Height := -13;
Title2Label.Font.Name := 'MS Sans Serif';
Title2Label.Font.Style := [fsBold];
Title2Label.ParentFont := False;
PlayerDetails := TGroupBox.Create(frmDesign);
PlayerDetails.Parent := frmDesign;
PlayerDetails.Left := 9;
PlayerDetails.Top := 105;
PlayerDetails.Width := 200;
PlayerDetails.Height := 200;
PlayerDetails.Caption := 'Player Details';
PlayerDetails.TabOrder := 0;
UsernameLabel := TLabel.Create(PlayerDetails);
UsernameLabel.Parent := PlayerDetails;
UsernameLabel.Left := 15;
UsernameLabel.Top := 30;
UsernameLabel.Width := 48;
UsernameLabel.Height := 13;
UsernameLabel.Caption := 'Username';
PasswordLabel := TLabel.Create(PlayerDetails);
PasswordLabel.Parent := PlayerDetails;
PasswordLabel.Left := 15;
PasswordLabel.Top := 60;
PasswordLabel.Width := 46;
PasswordLabel.Height := 13;
PasswordLabel.Caption := 'Password';
NickLabel := TLabel.Create(PlayerDetails);
NickLabel.Parent := PlayerDetails;
NickLabel.Left := 15;
NickLabel.Top := 90;
NickLabel.Width := 22;
NickLabel.Height := 13;
NickLabel.Caption := 'Nick';
ActiveLabel := TLabel.Create(PlayerDetails);
ActiveLabel.Parent := PlayerDetails;
ActiveLabel.Left := 15;
ActiveLabel.Top := 120;
ActiveLabel.Width := 30;
ActiveLabel.Height := 13;
ActiveLabel.Caption := 'Active';
UsernameEdit := TEdit.Create(PlayerDetails);
UsernameEdit.Parent := PlayerDetails;
UsernameEdit.Left := 80;
UsernameEdit.Top := 28;
UsernameEdit.Width := 100;
UsernameEdit.Height := 21;
UsernameEdit.TabOrder := 0;
UsernameEdit.Text := 'Username';
PasswordEdit := TEdit.Create(PlayerDetails);
PasswordEdit.Parent := PlayerDetails;
PasswordEdit.Left := 80;
PasswordEdit.Top := 58;
PasswordEdit.Width := 100;
PasswordEdit.Height := 21;
PasswordEdit.TabOrder := 1;
PasswordEdit.Text := 'Password';
PasswordEdit.PasswordChar := '*';
NickEdit := TEdit.Create(PlayerDetails);
NickEdit.Parent := PlayerDetails;
NickEdit.Left := 80;
NickEdit.Top := 88;
NickEdit.Width := 100;
NickEdit.Height := 21;
NickEdit.TabOrder := 2;
NickEdit.Text := 'Nick';
ActiveCheckBox := TCheckBox.Create(PlayerDetails);
ActiveCheckBox.Parent := PlayerDetails;
ActiveCheckBox.Left := 80;
ActiveCheckBox.Top := 119;
ActiveCheckBox.Width := 15;
ActiveCheckBox.Height := 17;
ActiveCheckBox.Checked := True;
ActiveCheckBox.State := cbChecked;
ActiveCheckBox.TabOrder := 3;
Teleportation := TGroupBox.Create(frmDesign);
Teleportation.Parent := frmDesign;
Teleportation.Left := 260;
Teleportation.Top := 105;
Teleportation.Width := 200;
Teleportation.Height := 135;
Teleportation.Caption := 'Teleportation';
Teleportation.TabOrder := 1;
TeleportToLabel := TLabel.Create(Teleportation);
TeleportToLabel.Parent := Teleportation;
TeleportToLabel.Left := 10;
TeleportToLabel.Top := 20;
TeleportToLabel.Width := 58;
TeleportToLabel.Height := 13;
TeleportToLabel.Caption := 'Teleport To:';
TeleportUntilLabel := TLabel.Create(Teleportation);
TeleportUntilLabel.Parent := Teleportation;
TeleportUntilLabel.Left := 10;
TeleportUntilLabel.Top := 80;
TeleportUntilLabel.Width := 66;
TeleportUntilLabel.Height := 13;
TeleportUntilLabel.Caption := 'Teleport Until:';
AchieveLabel := TLabel.Create(Teleportation);
AchieveLabel.Parent := Teleportation;
AchieveLabel.Left := 10;
AchieveLabel.Top := 140;
AchieveLabel.Width := 106;
AchieveLabel.Height := 13;
AchieveLabel.Caption := 'Level/XP To Achieve:';
TeleportToComboBox := TComboBox.Create(Teleportation);
TeleportToComboBox.Parent := Teleportation;
TeleportToComboBox.Left := 10;
TeleportToComboBox.Top := 40;
TeleportToComboBox.Width := 180;
TeleportToComboBox.Height := 21;
TeleportToComboBox.ItemHeight := 13;
TeleportToComboBox.TabOrder := 0;
TeleportToComboBox.Text := 'Please Select...';
TeleportToComboBox.Items.Add('Varrock');
TeleportToComboBox.Items.Add('Lumbridge');
TeleportToComboBox.Items.Add('Falador');
TeleportToComboBox.Items.Add('Camelot');
TeleportUntilComboBox := TComboBox.Create(Teleportation);
TeleportUntilComboBox.Parent := Teleportation;
TeleportUntilComboBox.Left := 10;
TeleportUntilComboBox.Top := 100;
TeleportUntilComboBox.Width := 180;
TeleportUntilComboBox.Height := 21;
TeleportUntilComboBox.ItemHeight := 13;
TeleportUntilComboBox.TabOrder := 1;
TeleportUntilComboBox.Text := 'Please Select...';
TeleportUntilComboBox.Items.Add('Certain Level');
TeleportUntilComboBox.Items.Add('Certain XP');
TeleportUntilComboBox.Items.Add('No More Runes');
AchieveEdit := TEdit.Create(Teleportation);
AchieveEdit.Parent := Teleportation;
AchieveEdit.Left := 10;
AchieveEdit.Top := 160;
AchieveEdit.Width := 180;
AchieveEdit.Height := 21;
AchieveEdit.TabOrder := 2;
AchieveEdit.Text := 'Enter XP/Level to Teleport Until';
StartButton := TButton.Create(frmDesign);
StartButton.Parent := frmDesign;
StartButton.Left := 125;
StartButton.Top := 335;
StartButton.Width := 100;
StartButton.Height := 25;
StartButton.Caption := 'Start';
StartButton.TabOrder := 2;
CancelButton := TButton.Create(frmDesign);
CancelButton.Parent := frmDesign;
CancelButton.Left := 275;
CancelButton.Top := 335;
CancelButton.Width := 100;
CancelButton.Height := 25;
CancelButton.Caption := 'Cancel';
CancelButton.TabOrder := 3;
PlayerManager := TGroupBox.Create(frmDesign);
PlayerManager.Parent := frmDesign;
PlayerManager.Left := 10;
PlayerManager.Top := 50;
PlayerManager.Width := 450;
PlayerManager.Height := 40;
PlayerManager.Caption := 'Player Manager';
PlayerManager.TabOrder := 4;
FirstPlayerButton := TButton.Create(PlayerManager);
FirstPlayerButton.Parent := PlayerManager;
FirstPlayerButton.Left := 35;
FirstPlayerButton.Top := 14;
FirstPlayerButton.Width := 50;
FirstPlayerButton.Height := 20;
FirstPlayerButton.Caption := '<<';
FirstPlayerButton.TabOrder := 0;
PreviousPlayerButton := TButton.Create(PlayerManager);
PreviousPlayerButton.Parent := PlayerManager;
PreviousPlayerButton.Left := 85;
PreviousPlayerButton.Top := 14;
PreviousPlayerButton.Width := 50;
PreviousPlayerButton.Height := 20;
PreviousPlayerButton.Caption := '<';
PreviousPlayerButton.TabOrder := 1;
AddPlayerButton := TButton.Create(PlayerManager);
AddPlayerButton.Parent := PlayerManager;
AddPlayerButton.Left := 135;
AddPlayerButton.Top := 14;
AddPlayerButton.Width := 75;
AddPlayerButton.Height := 20;
AddPlayerButton.Caption := 'Add Player';
AddPlayerButton.TabOrder := 2;
PlayerIDLabel := TLabel.Create(PlayerManager);
PlayerIDLabel.Parent := PlayerManager;
PlayerIDLabel.Left := 210;
PlayerIDLabel.Top := 15;
PlayerIDLabel.Width := 25;
PlayerIDLabel.Height := 23;
PlayerIDLabel.Alignment := taCenter;
PlayerIDLabel.AutoSize := False;
PlayerIDLabel.Font.Color := clWindowText;
PlayerIDLabel.Font.Height := -13;
PlayerIDLabel.Font.Name := 'MS Sans Serif';
PlayerIDLabel.Font.Style := [];
PlayerIDLabel.ParentFont := False;
DeletePlayerButton := TButton.Create(PlayerManager);
DeletePlayerButton.Parent := PlayerManager;
DeletePlayerButton.Left := 235;
DeletePlayerButton.Top := 14;
DeletePlayerButton.Width := 75;
DeletePlayerButton.Height := 20;
DeletePlayerButton.Caption := 'Delete Player';
DeletePlayerButton.TabOrder := 4;
NextPlayerButton := TButton.Create(PlayerManager);
NextPlayerButton.Parent := PlayerManager;
NextPlayerButton.Left := 310;
NextPlayerButton.Top := 14;
NextPlayerButton.Width := 50;
NextPlayerButton.Height := 20;
NextPlayerButton.Caption := '>';
NextPlayerButton.TabOrder := 5;
LastPlayerButton := TButton.Create(PlayerManager);
LastPlayerButton.Parent := PlayerManager;
LastPlayerButton.Left := 360;
LastPlayerButton.Top := 14;
LastPlayerButton.Width := 50;
LastPlayerButton.Height := 20;
LastPlayerButton.Caption := '>>';
LastPlayerButton.TabOrder := 6;
{------------------------------------------------------------------------------]
[ Define Events ]
[------------------------------------------------------------------------------}
frmDesign.OnShow := @FormShow;
frmDesign.OnCloseQuery := @FormClose2;
UsernameEdit.OnClick := @UsernameEdit_Click;
UsernameEdit.OnExit := @UsernameEdit_Exit;
PasswordEdit.OnClick := @PasswordEdit_Click;
PasswordEdit.OnExit := @PasswordEdit_Exit;
NickEdit.OnClick := @NickEdit_Click;
NickEdit.OnExit := @NickEdit_Exit;
TeleportUntilComboBox.OnClick := @TeleportUntilComboBox_Click;
AchieveEdit.OnClick := @AchieveEdit_Click;
AchieveEdit.OnExit := @AchieveEdit_Exit;
StartButton.OnClick := @StartButton_Click;
CancelButton.OnClick := @CancelButton_Click;
FirstPlayerButton.OnClick := @FirstPlayerButton_Click;
PreviousPlayerButton.OnClick := @PreviousPlayerButton_Click;
AddPlayerButton.OnClick := @AddPlayerButton_Click;
DeletePlayerButton.OnClick := @DeletePlayerButton_Click;
NextPlayerButton.OnClick := @NextPlayerButton_Click;
LastPlayerButton.OnClick := @LastPlayerButton_Click;
{------------------------------------------------------------------------------]
[ End Of Define Events ]
[------------------------------------------------------------------------------}
end;
procedure SafeInitForm;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('InitForm', v);
end;
procedure ShowFormModal;
begin
frmDesign.ShowModal;
end;
procedure SafeShowFormModal;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;
{------------------------------------------------------------------------------]
[ End Of Forms ]
[------------------------------------------------------------------------------}
procedure SetupScript;
begin
SetupSRL;
ScriptID := '177';
end;
begin
SafeInitForm;
SafeShowFormModal;
FreeForm(frmDesign);
if not (runScript) then TerminateScript;
SetupScript;
repeat;
PlayerSetup;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars)
If not(Loggedin) then LoginPlayer;
HighestAngle;
FindFastRandoms;
FindNormalRandoms;
checkLvlXP;
repeat
Teleport;
wait(100);
FindFastRandoms;
wait(100);
FindNormalRandoms;
wait(100);
MyAntiBan;
wait(100);
checkLvlXP;
wait(100);
SrlRandomsReport;
ProgressReport;
wait(100);
until(jobDone);
NextPlayer(False);
SrlRandomsReport;
ProgressReport;
until(False);
end.
——————————————————
<!– END TEMPLATE: formanswers –>