Simba Code:
program TehAlch;
{$DEFINE SMART} { tAlch }
{$i SRL/srl.simba}
var
Count, Mxph, Magic_XP, AR, Slot1, i, StartTime: integer;
User1, Pass1, StatsUser1, StatsPass1, World1, AlchType: string;
Accs: Array of string;
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := User1;
Pass := Pass1;
BoxRewards := ['amp', 'Xp'];
LampSkill := SKILL_MAGIC;
Active := True;
end;
end;
Var
LoadCount, AHI, Runs: integer;
frmDesign: TForm;
BeginButton, SaveButton: TButton;
TitleLabel, UserLabel, PassLabel, InventoryLabel, StatsUserLabel,
StatsPassLabel, AlchLabel, InvNumLabel, WNumLabel, AccLabel, EocLabel: TLabel;
User, Pass, Inventory, StatsUser, StatsPass, InvNum, WNum: TEdit;
Acc, Eoc, ListAlch: TComboBox;
ImageAH: TImage;
RefTime: TTimer;
Procedure Run;
begin
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
SetupSRL;
SetupSRLStats(1009, StatsUser1, StatsPass1);
DeclarePlayers;
if not LoggedIn then
begin
repeat
LoginPlayerToLob;
until LobbyScreen;
OpenWorldScreen;
if not WorldScreen then
OpenWorldScreen;
if WorldScreen then
begin
Writeln('Selecting world: ' +(World1));
SelectWorld(StrToInt(World1));
LoginPlayer;
end;
end;
if LoggedIn then
begin
ClickNorth(SRL_ANGLE_HIGH);
ExitSquealOfFortune;
SetChat('off', CHAT_ASSIST);
SetChat('off', CHAT_PUBLIC);
Setchat('off', CHAT_PRIVATE);
FTab(tab_Inv);
end;
if FindNormalRandoms or FindNonInventoryRandoms then
Exit;
if not ExistsItem(1) then
begin
Writeln('Place your nature runes in the first inventory slot. Logging out and terminating the script.');
Logout;
TerminateScript;
end;
if not ExistsItem(Slot1) then
begin
Writeln('Place your item in the inventory slot that you specified. Slot = (' + IntToStr(Slot1) +') Logging out and terminating the script.');
Logout;
TerminateScript;
end;
MouseSpeed := RandomRange(8, 15);
end;
Procedure ButtonClick(Sender: TObject);
begin
frmDesign.ModalResult := mrOk;
if (Acc.TEXT <> '') then
begin
if not FileExists('C:\Simba\TehScripts\Accounts\' + Acc.TEXT) or not FileExists('C:\Simba\TehScripts\tAlch\' + Acc.TEXT) then
begin
Writeln('Could not locate your player information.. Terminating script.');
TerminateScript;
end;
User1 := ReadINI('Name', 'Name', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
Pass1 := ReadINI('Pass', 'Pass', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
StatsUser1 := ReadINI('StatsName', 'StatsName', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
StatsPass1 := ReadINI('StatsPass', 'StatsPass', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
World1 := ReadINI('World', 'World', 'C:\Simba\TehScripts\tAlch\' + Acc.TEXT);
Runs := StrToIntDef(ReadINI('Times Run', 'Times Run', 'C:\Simba\TehScripts\Stats\tAlch.txt'), 0);
Slot1 := StrToIntDef(ReadINI('InvSlot', 'InvSlot', 'C:\Simba\TehScripts\tAlch\' + Acc.TEXT), -1);
AlchType := (ReadINI('AlchType', 'AlchType', 'C:\Simba\TehScripts\tAlch\' + Acc.TEXT));
LoadCount := StrToIntDef(ReadINI('Total Loads', 'Total Loads', 'C:\Simba\TehScripts\tAlch\' + Acc.TEXT), -1);
end else
begin
User1 := User.TEXT;
Pass1 := Pass.TEXT;
StatsUser1 := StatsUser.TEXT;
StatsPass1 := StatsPass.TEXT;
World1 := WNum.TEXT;
Runs := StrToIntDef(ReadINI('Times Run', 'Times Run', 'C:\Simba\TehScripts\Stats\tAlch.txt'), 0);
Slot1 := StrToInt(InvNum.TEXT);
AlchType := ListAlch.TEXT;
LoadCount := StrToInt(Inventory.TEXT);
end;
Wait(2000 + RandomRange(-500, 600));
ClearDebug;
WriteLn('Thanks for using Teh''s Alchemy. Please leave some feedback.');
FreeBitmap(AHI);
end;
Procedure ButtonClick2(Sender: TObject); //saves player info
begin
ClearDebug;
if FileExists(AppPath + 'TehScripts\Accounts\' + (User.TEXT)+ '.txt') then
DeleteFile(AppPath + 'TehScripts\Accounts\' + (User.TEXT)+ '.txt');
if FileExists(AppPath + 'TehScripts\tAlch\'+ (User.TEXT)+ '.txt') then
DeleteFile(AppPath + 'TehScripts\tAlch\'+ (User.TEXT)+ '.txt');
if (User.TEXT <> '') then
begin
WriteINI('Name', 'Name', User.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
WriteINI('Pass', 'Pass', Pass.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
WriteINI('StatsName', 'StatsName', StatsUser.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
WriteINI('StatsPass', 'StatsPass', StatsPass.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
Acc.Items.Add(User.TEXT + '.txt');
WriteINI('AlchType', 'AlchType', (ListAlch.TEXT), 'C:\Simba\TehScripts\tAlch\' + (User.TEXT) + '.txt');
WriteINI('Total Loads', 'Total Loads', Inventory.TEXT,'C:\Simba\TehScripts\tAlch\' + (User.TEXT) + '.txt');
WriteINI('World', 'World', WNum.TEXT,'C:\Simba\TehScripts\tAlch\' + (User.TEXT) + '.txt');
WriteINI('InvSlot', 'InvSlot', InvNum.TEXT,'C:\Simba\TehScripts\tAlch\' + (User.TEXT) + '.txt');
end else
Writeln('Please enter a username to save your information.');
WriteLn('Info saved to Simba\TehScripts.');
end;
Procedure OnTimer(Sender: TObject);
begin
if (Acc.TEXT <> '') then
begin
User.TEXT := ReadINI('Name', 'Name', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
Pass.TEXT := ReadINI('Pass', 'Pass', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
StatsUser.TEXT := ReadINI('StatsName', 'StatsName', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
StatsPass.TEXT := ReadINI('StatsPass', 'StatsPass', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
WNum.TEXT := ReadINI('World', 'World', 'C:\Simba\TehScripts\tAlch\' + Acc.TEXT);
InvNum.TEXT := ReadINI('InvSlot', 'InvSlot', 'C:\Simba\TehScripts\tAlch\' + Acc.TEXT);
ListAlch.TEXT := (ReadINI('AlchType', 'AlchType', 'C:\Simba\TehScripts\tAlch\' + Acc.TEXT));
Inventory.TEXT := ReadINI('Total Loads', 'Total Loads', 'C:\Simba\TehScripts\tAlch\' + Acc.TEXT);
end;
end;
Procedure FinishStats;
var
CurrXP, CurrTime: integer;
begin
if (Runs < 1) then
WriteINI('Times Run', 'Times Run', IntToStr(1), 'C:\Simba\TehScripts\Stats\tAlch.txt')
else
WriteINI('Times Run', 'Times Run', IntToStr(Runs + 1), 'C:\Simba\TehScripts\Stats\tAlch.txt');
CurrTime := StrToIntDef(ReadINI('Time Running (sec)', 'Time Running (sec)', 'C:\Simba\TehScripts\Stats\tAlch.txt'), 0);
CurrXP := StrToIntDef(ReadINI('Total XP Gained', 'Total XP Gained', 'C:\Simba\TehScripts\Stats\tAlch.txt'), 0);
WriteINI('Time Running (sec)', 'Time Running (sec)', IntToStr(CurrTime + Round(TimeFromMark(StartTime)/1000)), 'C:\Simba\TehScripts\Stats\tAlch.txt');
WriteINI('Total XP Gained', 'Total XP Gained', IntToStr(Magic_XP + CurrXP), 'C:\Simba\TehScripts\Stats\tAlch.txt');
end;
Procedure CreateFolders();
begin
ClearDebug;
if not DirectoryExists(AppPath + 'TehScripts') then
begin
CreateDirectory(AppPath + 'TehScripts');
CreateDirectory(AppPath + 'TehScripts\tSuperheat');
CreateDirectory(AppPath + 'TehScripts\tAlch');
CreateDirectory(AppPath + 'TehScripts\tTeleport');
CreateDirectory(AppPath + 'TehScripts\tAgility');
CreateDirectory(AppPath + 'TehScripts\tVial');
CreateDirectory(AppPath + 'TehScripts\tQuest');
CreateDirectory(AppPath + 'TehScripts\tWoodcutting');
CreateDirectory(AppPath + 'TehScripts\Accounts');
CreateDirectory(AppPath + 'TehScripts\Stats');
Writeln('Successfully created the directories that are used in my scripts.');
end else
Writeln('Please delete the TehScripts directory in your Simba folder and try again.');
end;
Procedure InitForm;
begin
frmDesign := TForm.Create(nil);;
frmDesign.Left := 270;
frmDesign.Top := 50;
frmDesign.Width := 800;
frmDesign.Height := 500;
frmDesign.Caption := 'Teh''s Alchemy';
frmDesign.Font.Color := ClBlack;
frmDesign.Font.Name := 'Calibri';
frmDesign.Color := ClNavy;
BeginButton := TButton.Create(FrmDesign);
BeginButton.Parent := frmDesign;
BeginButton.Left := 650;
BeginButton.Top := 400;
BeginButton.Height := 30;
BeginButton.Width := 105;
BeginButton.Caption := 'Begin Script';
BeginButton.OnClick := @ButtonClick;
SaveButton := TButton.Create(FrmDesign);
SaveButton.Parent := FrmDesign;
SaveButton.Left := 650;
SaveButton.Top := 350;
SaveButton.Height := 30;
SaveButton.Width := 105;
SaveButton.Caption := 'Save Info';
SaveButton.OnClick := @ButtonClick2;
TitleLabel := TLabel.Create(FrmDesign);
TitleLabel.Parent := FrmDesign;
TitleLabel.Left := 275;
TitleLabel.Top := 10;
TitleLabel.Caption := 'Teh''s Alchemy';
TitleLabel.Font.Size := 30;
TitleLabel.Font.Color := ClWhite;
TitleLabel.Font.Name := 'Calibri';
User := TEdit.Create(FrmDesign);
User.Parent := FrmDesign;
User.Top := 100;
User.Left := 200;
User.Width := 140;
User.Height := 20;
UserLabel := TLabel.Create(FrmDesign);
UserLabel.Parent := FrmDesign;
UserLabel.Top := 100;
UserLabel.Left := 80;
UserLabel.Caption := 'Username';
UserLabel.FONT.Color := ClWhite;
StatsUser := TEdit.Create(FrmDesign);
StatsUser.Parent := FrmDesign;
StatsUser.Top := 200;
StatsUser.Left := 200;
StatsUser.Width := 140;
StatsUser.Height := 20;
StatsUser.Text := '';
StatsUserLabel := TLabel.Create(FrmDesign);
StatsUserLabel.Parent := FrmDesign;
StatsUserLabel.Top := 200;
StatsUserLabel.Left := 80;
StatsUserLabel.Caption := 'Stats User';
StatsUserLabel.FONT.Color := ClWhite;
StatsPass := TEdit.Create(FrmDesign);
StatsPass.Parent := FrmDesign;
StatsPass.Top := 250;
StatsPass.Left := 200;
StatsPass.Width := 140;
StatsPass.Height := 20;
StatsPass.Text := '';
StatsPassLabel := TLabel.Create(FrmDesign);
StatsPassLabel.Parent := FrmDesign;
StatsPassLabel.Top := 250;
StatsPassLabel.Left := 80;
StatsPassLabel.Caption := 'Stats Pass';
StatsPassLabel.FONT.Color := ClWhite;
WNum := TEdit.Create(FrmDesign);
WNum.Parent := FrmDesign;
WNum.Top := 200;
WNum.Left := 450;
WNum.Width := 140;
WNum.Height := 20;
WNum.Text := '44';
WNum.MAXLENGTH := 3;
WNumLabel := TLabel.Create(FrmDesign);
WNumLabel.Parent := FrmDesign;
WNumLabel.Top := 200;
WNumLabel.Left := 370;
WNumLabel.Caption := 'RS World';
WNumLabel.FONT.Color := ClWhite;
Pass := TEdit.Create(FrmDesign);
Pass.Parent := FrmDesign;
Pass.Top := 150;
Pass.Left := 200;
Pass.Width := 140;
Pass.Height := 20;
PassLabel := TLabel.Create(FrmDesign);
PassLabel.Parent := FrmDesign;
PassLabel.Top := 150;
PassLabel.Left := 80;
PassLabel.Caption := 'Password';
PassLabel.FONT.Color := ClWhite;
Inventory := TEdit.Create(FrmDesign);
Inventory.Parent := FrmDesign;
Inventory.Top := 150;
Inventory.Left := 450;
Inventory.Width := 140;
Inventory.Height := 20;
Inventory.TEXT := '75';
Inventory.MAXLENGTH := 4;
InventoryLabel := TLabel.Create(FrmDesign);
InventoryLabel.Parent := FrmDesign;
InventoryLabel.Top := 150;
InventoryLabel.Left := 370;
InventoryLabel.Caption := '# of Invs';
InventoryLabel.FONT.Color := ClWhite;
InvNum := TEdit.Create(FrmDesign);
InvNum.Parent := FrmDesign;
InvNum.Top := 100;
InvNum.Left := 450;
InvNum.Width := 140;
InvNum.Height := 20;
InvNum.TEXT := '2';
InvNum.MAXLENGTH := 2;
InvNumLabel := TLabel.Create(FrmDesign);
InvNumLabel.Parent := FrmDesign;
InvNumLabel.Top := 100;
InvNumLabel.Left := 370;
InvNumLabel.Caption := 'Alch slot';
InvNumLabel.FONT.Color := ClWhite;
ListAlch := TComboBox.Create(FrmDesign);
ListAlch.Parent := FrmDesign;
ListAlch.Top := 350;
ListAlch.Left := 450;
ListAlch.Width := 140;
ListAlch.Height := 42;
ListAlch.Items.Add('High');
ListAlch.Items.Add('Low');
AlchLabel := TLabel.Create(FrmDesign);
AlchLabel.Parent := FrmDesign;
AlchLabel.Top := 350;
AlchLabel.Left := 370;
AlchLabel.Caption := 'Type?';
AlchLabel.FONT.Color := ClWhite;
Eoc := TComboBox.Create(FrmDesign);
Eoc.Parent := FrmDesign;
Eoc.Top := 250;
Eoc.Left := 450;
Eoc.Width := 140;
Eoc.Height := 150;
Eoc.Items.Add('Yes');
Eoc.Items.Add('No');
EocLabel := TLabel.Create(FrmDesign);
EocLabel.Parent := FrmDesign;
EocLabel.Top := 250;
EocLabel.Left := 370;
EocLabel.Caption := 'EoC?';
EocLabel.FONT.Color := ClWhite;
Accs := GetFiles(AppPath + 'TehScripts\Accounts\', 'txt');
Acc := TComboBox.Create(FrmDesign);
Acc.Parent := FrmDesign;
Acc.Top := 350;
Acc.Left := 200;
Acc.Width := 140;
Acc.Height := 150;
for i := 0 to high(Accs) do
Acc.Items.Add(Accs[i]);
AccLabel := TLabel.Create(FrmDesign);
AccLabel.Parent := FrmDesign;
AccLabel.Top := 350;
AccLabel.Left := 80;
AccLabel.Caption := 'Account?';
AccLabel.FONT.Color := ClWhite;
RefTime := TTimer.Create(FrmDesign);
RefTime.Interval := 200;
RefTime.OnTimer := @OnTimer;
RefTime.Enabled := True;
ImageAH := TImage.Create(FrmDesign);
ImageAH.Parent := FrmDesign;
ImageAH.Left := 643;
ImageAH.Top := 100;
ImageAH.Width := 120;
ImageAH.Height := 186;
AHI := BitmapFromString(135, 219, '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');
DrawBitmap(AHI, ImageAH.canvas, 0, 0);
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;
Function WaitFindBitmap(Bitmap: integer; var x, y: integer; xs, ys, xe, ye, Tolerance, WaitPerLoop, MaxTime: integer): boolean;
var
t: integer;
begin
t := (getSystemTime + MaxTime);
while (getSystemTime < t) do
begin
if (FindBitmapToleranceIn(Bitmap, x, y, xs, ys, xe, ye, Tolerance)) then
begin
result := true;
break;
end;
wait(WaitPerLoop);
end;
end;
Procedure Alch;
var
HighAlch, LowAlch, Skills, SkillsTab, x, y, Failed, rX, rY, RuneArrow,
Time, Failure, FailDrag, MTabC, MTabU: Integer;
begin
HighAlch := BitmapFromString(24, 28, 'meJx9le1PW1Ucx9/qmxkw0ck2sFBb+nx729ve3qdegSIwBm2BwXjYugEFCuOpKMIkmW5MoCUyHrbBRGcWiRJUNJDpjAJ7UEBmYqLRF8oSX/rKP8Hv7RmXwojJNzfnnJ7zOb/fOd/zq9XtpfgcG/eq1SNDaKBrdXvtUi4t5UOe3ELSoEWfXczDTxYsEXLtQh66GFR+EvLNjGB2S0Ynn67RHcvIMjp4I82Bhsm05HtCkPLtog9ryXYW1mty8GRTi1uysjImGOws4yvtnLsbXfkXQoPJKzG5RMzBjmokgGBhsKpudubG5NRUPD46MT7ur6g2MQJQNlbGqsBnv5mub1gW/4DQQJdyexAkEiRhIxgblxOsqn20+SNlsx5KeR6irJb15Tl/+SmzS0RIeSOfY62w8Cu+prEl0sAgxSZCAsGDbx7SD4XObW38sHxrguj2zWtXB7pZQcZPVtb7hEA0tqS2j2W+gkRIaqBh8olAxd+/3P9oZnKwt/VCuKatviZcWcZ4hARHRi5AkYyISDftZW0yB3kh/suDV9Yf3h/ubb8YbQlXMIWs10CzGKfEXGPvHEEREeBLzcPZlJvklThqH8Xn4jybW9u2Njdj/ecv97T1NVa7PZzRwVlcEkyidYrkkAmHhIRB9ZxxPhDuy8JK4ZZWcEb6z1/a4ZicPPjYS29zaRmJRAUCHYkpXYcyAZYDwcLK+KKNNBubIz9tbAz3te3lKNNMDK+zMVkmKvW5VAgNdDGonF5iAsXlKDS3F0ta2rvAGehs6esIR0+UJnOwNSyU7EOK5Ug8JkYkSSnX4RIx2BRpu7f6/UBHc197I+GQ80n2oSriQ72dtSQMpkDcUgIrNISbwOmJ1Ksc3JeNVbLe9SHMs+NDX/Rj3BfxvPKCPDLaI7H45vo6OK+31neFKhsqmLoy//HCIoSEq9/1YYKjWjEtQ4vHaGZEk1OgOfne2tpfW6t/rtz5bnkxPvj2QFdTZ3HJ6bLAudqT9dVnzU5OfVaqn0k3LSMLy5EOzcsrKyvfLn2x/Wj1n+3ft1e/WZgehRWjZ6vOlAdOl/kRFVC4cZJX8gOBD41ODhZCwFfeHVq9Mf1g5ubjn9fAebx2d/H9sXd6Is2hU6GKIFCEpnVJ6nPY9SEjoZ6Ak213f7XwydAb7beGe+88ePPrh4ra17oLvvSKUwZFkwa6IfNM0IVTynKKyT5EV29jjLQHBS1YWTP5XkycMGBh6NMGEPDdheyIbszEvez4MCX1UIpGb9GaaAyCD85obKS/I0yHNfsW7oGENTrmBYODdfn8e3zoZhGPgfZA4NS+5tUxL9KNGkdYQz8lEBRI+rMoqgf6ECHhiJpaIpeireD8D0TR0aMH+hCDeuWVCbzsuz0+JLEOoDD/AEIiGB1zeE8RS66H6VngQPPz83UFXsI5QEeOgBPIl/dVHrUegmNOPAqENH39GmY+jTKkPwOIyDpgoX31kEAwqLwvJ4+SiNfR2//WBxcvJFCH1VwAARmQUHmgsKAIpY88DRUCYRD+weNCTYABsu2uQOnJD2dnu+sjoGEtFMyXodqgH38Z2RSDS9EmfKhGojjcJZI6hrzMTt5o47JtjN5MV5VVx2Pxjo6ukqLi4sLjnOjVme1GOwv9B8oPu88=');
LowAlch := BitmapFromString(31, 24, 'meJx9lt1TG1UYxm/1H9DO8NGB0GU3m4/NZjf7kSyJLZavNgmhSEtaEhICUiqlTS2lLVJEnCGg44iF4aZ603aw6KAWwToIqIww3urohdPee+Wf4HP2hCUNhJlnds6Ss7/znOe87y6CflIoLacassZu7Q3eV+eQAy2R2O87219MDU/eHLjTG7+Sjmc62ryqjp9cagjTCp8qBcSAqhBul/ycqI2+N7az/cvU8OC9bH+mXW5U6hhBcfgMCj/CrcUvujqUIOT01bEe9a3Orq2N9enb70xkB0YynbKq2b26XQq4tUPghQ4PXYuKwJUgK2pdiW7Ap0auvG/CFU3nJb9dNg61XZRAqQl41qUEeSlwKZEE/O7Vt28NZqhzwLGuBbeApUIuXIuOyWERuD+RTFnw7NkInGM7fIHzgz4P+rcCx1OQ3WsgWGTe3Z3e2lzP9qdG9uD5zPdmHuSTVOXgoVEToVRkgxV1xu1Lp3t+3vwpezl1LdlB4Zyocl6/iyST5xeZLHVrkTmTPD4+sbvz24+ra+8OpAHvaZcvxiLNjU2mecLP19WRh2iVN2YiT86rO2X/2urKPxtr698vr68sz0yOj17rGzoT7mprvRiLpi4kHZKOaie9tsc/uuAxB63BoRhk/8rT79aXPn+++cO/z//CdWnhI/RRtvt84lzrpbYolO7sRouhFyi/yGSh6OrI0IxaGx0dezyXe7Iw88KEv9h69mD+0/Eb/X3JC8lzreB3mfzmxmZeDmCn1Pk+UA3BJEIjxUxC9jvMAXZaKyjfPnl8d6gv8TC9+uuttW2iwa3rjd8Ejfsc0Wec2FOdiPmS8fZaj4rKwTHR84I9l9naePmgjCEMWC8pXbuZdrS9MzcxZswSTnKxh2qfvCcxUw3/kh5EjLwJBxmtAZpd1FlBKausrjhuwwC32CAKDJl8MPnhULJD7K0qor1E7q1i5Ncib4bC4TD8uFSSucsk47UmnQoPPXqW3fgPwkBQNM6jomWwzZlcLt4QxLNipgqQg8JPEFf5ahTwCIFT50gDJuX6cOtXf/Lzu87lv3GFcOtWVJtDxLqpVA+akZFfJ/wSZKLycsBDpxpYIQ8n8QpKfe5rAANLfxDyJ0/pAH+scUpoHC1YP/txzlC9lG8tsY81bTPyMZSNUybdROE4vkrbCdAsz4DnB/O7FZU2wGvc0peLi8jTgherrAzw1tMhlDrr0exygNY5hYP8Et/cBW7LKqqROSP4lLqTC3Nzhiod5HOVr4CMfaFUnKKGGuB9+TckjcU+/IjyLeHWPvwQP7HmfFxvjtx5cO92lPg/ZkUBMpYDGYE0NDTxXj+xvdeh9EBrJAM0i0/HNm8Ath2yQb9ujFuKhtvvz85eT19GAgBCsdMhKB6L+PxBVpDx+qLtCT9WKaLqwIdVy7NNMlAnZI+0lUSt1qkyLqnWIZ5v65zOTV8dHDrb3HKmqUU3gozDw7okVvBhGg2clw5povLqGuiEW4ZnSqafAPP/CoOXdM6jMLyPdcuM00uAbplDqi58o9HRAfrKpeT/ARwJcuM=');
RuneArrow := BitmapFromString(14, 13, 'meJxjZGDITAy0MtXR0VRkRGUDUXF2BJALRBBufISni70JEEFUwtlAxMQnCWFAEIeaC4QhL6+PKQ4RNDfWgnMhIsnRXnA23EB7KwN9bRVkZRBdSZHOyBYhuweoLDrYEe4ANAOBWiCeQjMQmQ1hwLUApaKCbPAYCGcQaSCQjWwgpiyaFmIMxFRGuYFABQAAYC/T');
Skills := BitmapFromString(21, 14, 'meJyTlIQCERGRj7NkXF1djY2NhYSEBAUFBQQE+Pj4eHl4uNnYgQjIAHIF+PkFwKCppqIkI04St3Z+fn49a+eCZTuL938AIiBDQ0+XH0l7mIMZUBemdojVulZOgWuvak0/CUdAroauDkR7REhgfW4KVttB2vn5XTrXArXYrLmiNWELEIEY008CBSEOUFNRmd/biEs7Pz8vUL3OhhtQq4EmwNzAx80NccCSRfORtb+fgqIdqBdoAsRSCIIYCNeupqKMSzvQ8ZrlS+EmQBCQCxQESglCgIAATu0CAjJahkD1cBMgbKAgUAqoQAisBln7uwno8Q5UDLQObi9CLwQICuLSDjcB6FRgOAARJMEg9IIBVu1GYGBoaGhgYKCvr68HBkAGkAsUNEICcO2ioqIvm0VdSQSQVAckgS6Z7s/9qlnkTY8M8aguRBaCqgJlinykstwlMl1JQAC3EOMG');
SkillsTab := BitmapFromString(30, 31, 'meJyNlttTU1cUxp96sSiHAI6QsZ1QAsRwCUlEiyRIoFouSQgmhhDAVkICWERuAkVG1MYqTG0zFKTqTHWstdMLrZ1ipShQqlJpfehD2+m0Qx/61rf+Cf1ylme7cxIb1nyc2Xtn8TsrK2vtvY1Go0E0vV5fWFio0+kKRMMAUywaJDNKnuRM/uQjc2OWLJpCoUiCCUJiQgKEAWZYTI5lCjI4iD4yt5SUFEYmbP6u8u7r3/Yt/QthgGlMOFZ2m81T74y/PXYmeGJ0/OxpTHk3RmbYuplftdOreTd+hzDAVJOfJ4NjXGoyPVxd0eaonxINgwc3r2ORuUWQBeHlsRnQTJ//gqc2NEsDLOIjGdlRUwnyzSsTpA8vTYVGejTZWTHJgrDpEZMUmmXj5zZskJGLdxb9/fP3V96fCB49NOxveL2lwe+uy1S98CQyMgA45YFE02gy8jM00L9yb/mt/kPHu/1+l9GSq+OTJsvGtsGPCE6iV6S1nZVlI1kk1zsdqysrwV7f6OHWIZ9Hk/UiFpNjkpOStmr19PMRmcLGYnR5YLq/zg7ymz0txzt9g776HHUGH7Cs6gRB2JproMjB1HeMYypwAcOfkV0O24OV+6e6D66HjNgSExM3bdyY8PQzEAaYyrLHyB73fpAHAs39bc29Nda4MReUVPCdoinIF2RJlmJwOx1Ld+YHAgeIrFFn8HmGxewUpid1ClZctdbvFuYPt3j62w+EyeIvyLvRBiLvFBSz1Cl7+q7xtUHY0ZHhH+7dRcxdvoZOr8PnNNbXvGIuMvJwRo7oFJHMmiVcz9K2k562ZfH2/J8/LvxxZ/b21zNjJ4690Xmwq6raa6tqdtm8tn3IMMF5MtsuWA/SFGQKJi1ty/zcrbkbn639tPjP2m9ri998en7sdF/HkaZ9XntVg7XSY6302p0Ex77Kdwplg29zdIogbqewY0MDC5OTy9PTaw+XQP5rae6Li+dGewKtjc6m2upGezhy8M07jBFkqVNkcOoUsi8/vhrsbf/gzNFbdwfn7g9BXcu9lV+Vmqc0Yb2n0beoGm2FjU4rnHEixO0UwlrKykJjQdOEBqjXPmkFE8/HWEn6VhUiz8zIwJEUp1Mk8qmRIRSYwa8yT2pkNCZDQJW1fbO1rNhiegnnXdxOYWR32Q78I+BhBeTCR5Dm+WdBLpfIcTsF5nHVYVvLMkrkSBE2LKUS5ILcXMrG/3QKFinsbLX68rmTJUU6IsRgigGrjZtRJyh7RqZOkdUzKXyOi3bt6uUGy04eFSGlEmR7eUlTrUsh1QZ/pvDFTO9i5Gx15lToXZtlVzQWTKhkuw6FoUxPi+4U/kwhLBZp36DbRUdb4OJwH+D41jwT+QcWeSg2FMItYkcSO4UanGGhx2eK6IOHpdh04fzkkVf9+OJIO1RbUQK5q/fmZKnpNsTIrJ7BQZAsWvlRhYGQim0BfzWWPcGTo+1+/96y3RWl5jztttSURwY/npzM3b6Qcyjm7Uuchh3pFbxhhS5l/C66zhuj7K6o4yz63ghLj2eposlW1uP8H8h8q+A=');
MTabU := BitmapFromString(39, 15, 'meJzFk8tu00AUhps4dYLt2EmstJaVRa+hJBgag5xbq5a4RVXaihJUSLhIrZpCVUSTKkUIJUhsCgsIC9gAXbAqFeqOBQ+AxI5H4GH45YGRa4egSEgc/RqNZ8453zkz471yavtKUhRF2WaRSEQSxYDfP2ck97dK75qVgyc3bzx/NfLxx/2jr/nacdDHxdXYHVPPTi+Njjbj2RLmbxfO18zKg0JZSyR4nkcS+aSBsmfhdlcn3VBBELQR5Utj8Vtr5XNZe6wPrhvq1MtDNpoXGAYTn1dPJ5uFtaOM8Sad2oiFrw4oMfgADS60Wd0Ih8NuKMF1hGIbxO/V1AdTgQCdUrjco7vb+4elF5+GNusE2mofF4qvMQEUjRfjcvq0upg/t6oaO2Ylf2lOdpkd6tg6O6y0zHGAUDyEbJgPScxlcxaHPJgxcLwArSzdxvEOKBewC5+xaAgjKoTQ7K17uz11yrLsghVOoaQLcHG8GO0iRAieT+fHoXazvtZ4H42p3Tt1QDmOY7xe0imS4IUclCccwjqlkBXcfnvn+sNGPbe8zolySJK6QLeWEw4o3gBWAoEA29/v9XhUOUTbAQJ37RBwWMdtxseGOe4UohD+p4cEXO2a5oZGLEOUJOHXEfH+/SzrYxgUQCTzPG4QQjEoCWfu6euDA/4yOCOKxLuhBIdmq8UzHaHUQA9ZRmoIwgQBEqwxaBl2w7+NBrqhBAduRyhGki3isl+prTIIgoxwpslpErpCjOAolJjDp1f7ayzBPfsfNpkrEOkz82SiZWYhuu747K6enP9VHuLpqNntlryYp9IyMyc/p+l8Qs/at+xybNk/Me8Y+BMS6lYe');
MTabC := BitmapFromString(39, 23, 'meJy9lFtPE1EQx6Hl0m5pd5dtt2tTDbRQsQ1VMGm5BkOREC4G8UJrMELAisqlsRow1EtiiA9aE/VFbAI+FInhSR988snENz+CH8Z/d3Sz7qUUHpxMTs7OmXN+Z+bMbHE9XFwPC4IgqcTr9dKoCBxsNtu3tYmfCx1zMR90NOTuk5gWkWtirRgZxs4wjMfjIX/JSHBIUcYV/4UKsjTKgr2iKLrdbqfTiQOdtbWfk+07CamQbHt6vrXEjfsxAtpgLXGtFouzoQFblKuaQT/cb4NqVmkLz3Gsy8XY7c0ebnrgzHDi3NSLT+nsE8QIBe5hpwQFbmD8Qm7xEow+gbPbbGbxAko4UnV6MYc/IgVuKBbZXJzayqUKj65NP38V+Pjr7t733tV9Zw0T8vmvJzq7+8eDwY1Q9xTm70ZOryZSy4PJaCSC2x4KCuFYNhr0fc2O/chNfkm2IxzE1fdyt87Ti0xiUmPpjEc2Bmf3umJv4x3zfv6iVyqlGmhwoemFecR7KKiH40BEzeAFoYCiZnrW0nc2d5HhppsZguby+4OjbzABFIEjvfGTvrHe6BVfbCWR6k8M62tJDdUsIczcUCtA6kJFweBZkWSpK4b0AjQ5PoP0itJZrMIHj4uRHhrBzty6d6hIbfX1I/J2BUpRUKFiVCsRqbRQ1dD8RmY2+957wl8+Ug0UPWK1WilSHIIKQZtolLqGKGTB6+dXrj7IZnom5hysgF4zg26vhqHUnsoSeq2R5x0Mg5At1dVoBCUcIPDWGgUOdrxmqKUZf4n6ujoUP8/z+vQSjpQsykhdBjT9KFwuF35HNQjeYsEdoILDgReE4jK4EnJeXVUFB3QZnEtNJ5ZEYSmHE66wBD2luRL9jhTBdtQ/x3HYhTORfE4WlmUx8vIcyYQbLwvtwiH6SAm3dTsE1axSXys/Q42IdAlZxL+ipijp0kMJZxip2s3MrikD/aqhnXDbmXBhOYzkHDMXs1WNXf+pWGiCESwQ6VkVh/L0I4j62BJ06Q8RSTa7bYXHVp4KelCMr+eCZAwEAgeiDZf0mTR0gIBFxPyNABHJn9DluQeizTaCBeKzVBO0wvzolyp0CMiCiQbnVol6i9pi6HwEeXz5+P9XzeUNAylj1KfIzK7+/A2AxK8X');
case Lowercase(AlchType) of
'high':
begin
if not WaitFindBitmap(MTabC, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
if WaitFindBitmap(MTabU, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
Mouse(x+12, y-5, 10, 10, mouse_Left);
if not WaitFindBitmap(Skills, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
if WaitFindBitmap(SkillsTab, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
Mouse(x+10, y+15, 10, 10, mouse_Left);
if WaitFindBitmap(HighAlch, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
begin
Mouse(x+5, y+10, 17, 17, mouse_left);
Wait(200 + RandomRange(-100, 200));
if WaitUpTextMulti(['ast', 'igh', 'evel'], 2000) then
begin
if ExistsItem(Slot1) then
begin
MMouseItem(Slot1);
if WaitUpTextMulti(['ast', 'igh', 'evel'], 1300) then
begin
ClickMouse2(True);
IncEx(Magic_XP, 65);
stats_IncVariable('High Level Alchs', 1);
end;
end else
Inc(Failed);
end;
end else
FTab(tab_Magic);
end;
'low':
begin
if not WaitFindBitmap(MTabC, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
if WaitFindBitmap(MTabU, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
Mouse(x+12, y-5, 10, 10, mouse_Left);
if not WaitFindBitmap(Skills, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
if WaitFindBitmap(SkillsTab, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
Mouse(x+10, y+15, 10, 10, mouse_Left);
if WaitFindBitmap(LowAlch, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
begin
Mouse(x+5, y, 17, 17, mouse_left);
Wait(200 + RandomRange(-100, 200));
if WaitUpTextMulti(['ow', 'ast', 'evel'], 2000) then
begin
if ExistsItem(Slot1) then
begin
MMouseItem(Slot1);
if WaitUpTextMulti(['ow', 'ast', 'evel'], 1300) then
begin
ClickMouse2(True);
IncEx(Magic_XP, 31);
stats_IncVariable('Low Level Alchs', 1);
end;
end else
Inc(Failed);
end;
end else
FTab(tab_Magic);
end;
end;
if (Failed = 1) then
begin
WriteLn('Might have equipped arrows. Checking your equipment.');
MarkTime(Time);
repeat
FTab(tab_Equip);
until FTab(tab_Equip) or (TimeFromMark(Time) > 6000);
if (TimeFromMark(Time) > 6000) then
begin
Logout;
TerminateScript;
end else
MarkTime(Time);
if WaitFindBitmap(RuneArrow, x, y, MIX1, MIY1, MIX2, MIY2, 5, 500, 3000) then
begin
repeat
MMouse(rX, rY, 10, 10);
if WaitUpTextMulti(['Rune', 'une', 'arrow', 'rro', 'Remov', 'move'], 1000) then
ClickMouse2(True);
Inc(Failure);
until not FindBitmap(RuneArrow, x, y) or (Failure = 3) or (TimeFromMark(Time) > 8000);
if (Failure = 3) or (TimeFromMark(Time) > 8000) then
begin
Logout;
TerminateScript;
end else
Writeln('The arrows were equipped.');
repeat
FTab(tab_Inv);
MMouseItem(2);
DragItem(2, Slot1);
Inc(FailDrag);
until ExistsItem(Slot1) or (FailDrag = 6);
if (FailDrag = 6) then
begin
Logout;
TerminateScript;
end else
Writeln('Ready to continue alching.');
end;
Failed := 0;
end;
FreeBitmap(HighAlch);
FreeBitmap(LowAlch);
FreeBitmap(RuneArrow);
FreeBitmap(Skills);
FreeBitmap(SkillsTab);
FreeBitmap(MTabU);
FreeBitmap(MTabC);
end;
Procedure Proggy;
begin
Mxph := Round((Magic_XP) / (GetTimeRunning / 3600000.0));
ClearDebug;
WriteLn('-=-=-=-=-=-=-=- Alcher by Tehq -=-=-=-=-=-=-=-');
WriteLn(' Time Running: '+TimeRunning);
WriteLn(' Magic XP Gained: ' +IntToStr(Magic_XP));
Writeln(' Magic XP/Hour: ' +IntToStr(Mxph));
WriteLn('-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=');
//Stats_Commit;
end;
Procedure AntiRandoms;
begin
Inc(AR);
if (AR = 15) then
begin
Proggy;
AR := 0;
MouseSpeed := RandomRange(8, 15);
end;
end;
begin
CreateFolders;
MarkTime(StartTime);
SafeInitForm;
SafeShowFormModal;
Freeform(frmdesign);
Run;
repeat
AddOnTerminate('FinishStats');
Alch;
if FindBlackChatMessage('nough') then
Exit;
Inc(Count);
AntiRandoms;
until (Count = LoadCount) or not LoggedIn;
end.