BraK
2012-11-06 11:59:02
What this script does: Mines gold then smelts into gold bars using Superheat Item spell. Has banking or alching options for the gold bars.
Where this script works: Crafting Guild
What Skills it trains: Mining, Smithing, Magic
Setup needed: Says in script
I don't know how to attach it so here it is!
Thanks for having this competition, I learned a lot :)
BMWxi
Where this script works: Crafting Guild
What Skills it trains: Mining, Smithing, Magic
Setup needed: Says in script
I don't know how to attach it so here it is!
program MineSmeltAlch;
{$Define smart}
{$i srl/srl.simba}
//////////////////////////////////////////////////////////////////////////////////////////////
// ===================== //
// MineSmeltAlch //
// ===================== //
// //
// Requirements: 40 Crafting //
// 40 Mining //
// 40 Smithing //
// 55 Magic (43 if Banking) //
// Brown Apron (for entering guild) //
// //
// Instructions: Wear Brown Apron and Equip Staff of Fire //
// Put character inside the ring of gold rocks at the crafting guild //
// Have Nature Runes in 1st Slot of Inv, Pickaxe in 2nd, Clan Vexilium in 3rd //
// Fill out DelarePlayers and BankOptions //
// Press Run! //
// //
//////////////////////////////////////////////////////////////////////////////////////////////
Const
BankOptions = '1'; //Valid Options:
//'1' = Alch gold bars in the guild. (Faster XP)
//'2' = Bank gold bars in Port Sarim. (Better Profits)
procedure DeclarePlayers;
begin
HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; // Player username
Pass := ''; // Player password
BoxRewards := ['XP', 'ostume', 'mote', 'oins', 'une', 'ssence'];
LampSkill := Skill_Smithing;
Active := True;
end;
with Players[1] do
begin
Name := ''; // Player username
Pass := ''; // Player password
BoxRewards := ['XP', 'ostume', 'mote', 'oins', 'une', 'ssence'];
LampSkill := Skill_Smithing;
Active := True;
end;
end;
Var
SmeltCounter, AlchCounter, Bars, ItemsAlched, GoldOre: Integer;
procedure StartLogin;
begin
ClearDebug;
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 10;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
DeclarePlayers;
LoginPlayer;
MakeCompass('S');
SetAngle(SRL_ANGLE_HIGH);
end;
Procedure DigGold;
Var
x, y, a, b, OreCounter, PlusOne: Integer;
begin
if not LoggedIn then Exit;
MakeCompass('S');
FindNormalRandoms;
Wait(randomrange(400,600));
PlusOne:= InvCount + 1
If FindObjCustom(x, y, ['old', 'Go'], [5034237, 5231101], 3) Then
Begin
WriteLn('Digging Gold')
Begin
GetMousePos(a, b);
Mouse(a, b, 1, 1, false);
WaitOption('old', 500);
Flag;
MarkTime(OreCounter);
Repeat
wait(100);
If InvCount=PlusOne Then
WriteLn('.');
Until(InvCount=PlusOne) Or (TimeFromMark(OreCounter) > 10000)
End;
GoldOre := GoldOre + 1
End;
End;
Procedure SmeltGold;
var
l, m, k, r, GoldOreDTM, SuperHeatDTM: Integer;
begin
if not LoggedIn then Exit;
GoldOreDTM := DTMFromString('mFQEAAHic42VgYJjAxMDQAMWtQNwNxDOAeC4QzwPi6UA8BYh7gbgNqs6XkYEhAIhDoTgaSnsDsRsQOwKxAxDbQfk+QLyqQxJoGxNJ2IiBdMBIBkYBACrpDOE=');
SuperHeatDTM := DTMFromString('mwQAAAHic42RgYDjKxMBwCIhPAfEZID4JxMeA+DAQ7wPiPUAcyMjAEA7EYUAcDMTeQOwBxC5QdhAQv6lhYrBlhGBdBgj2Z2UE0zAxLgbCgJEIDAcAn3ENIQ==');
begin
FTab(tab_Magic);
Repeat
If FindDTM(SuperHeatDTM, k, r, MIX1, MIY1, MIX2, MIY2) Then
begin;
Mouse(k, r, 4, 4, true);
wait(randomrange(500,700));
begin
If FindDTM(GoldOreDTM, l, m, MIX1, MIY1, MIX2, MIY2) Then
begin
FindNormalRandoms;
Case Random(20) Of
0..19: Mouse(l, m, 10, 10, true);
20: MissMouse(l+random(400),m+random(400));
end;
MMouse(700,241,20,20);
wait(randomrange(1500,1900));
Bars := Bars + 1
end else
begin
HoverSkill(skill_Smithing, False);
WriteLn('Antiban: Smithing XP Check Performed');
exit;
end;
end;
end else
begin
WriteLn('Out of Nature Runes');
LogOut;
end;
Until(TimeFromMark(SmeltCounter) > 85000)
end;
FreeDTM(GoldOreDTM);
FreeDTM(SuperHeatDTM);
end;
Procedure AlchBars;
var
Hx, Hy, Bx, By, GoldBarDTM, HighAlchDTM: Integer;
begin
if not LoggedIn then Exit;
GoldBarDTM := DTMFromString('m1gAAAHic42JgYFBkZWAQAmJJVghbDYh1gVgHiFWAWA6IxYH4GCMDw0UgvgbEN4D4ChCfZYSIH4biU0C8rEUcaCoTQSzCQBxgJBIjAACZUgr5');
HighAlchDTM := DTMFromString('m6wAAAHic42ZgYPBkZWCwBGJHIPYAYj8gDgBiHyD2ZYXIOwGxFRCvYmRgWAPE66F4LRAvB+LFQDwPiOdD+SuA+NACfgYZBkYwxgVh8iIMxANGEjASAACIcAyc');
begin
FTab(tab_Magic);
Repeat
If FindDTM(HighAlchDTM, Hx, Hy, MIX1, MIY1, MIX2, MIY2) Then
begin
Mouse(Hx, Hy, 4, 4, true);
wait(randomrange(500,700));
begin
If FindDTM(GoldBarDTM, Bx, By, MIX1, MIY1, MIX2, MIY2) Then
begin
ItemsAlched := ItemsAlched + 1
FindNormalRandoms;
Case Random(20) Of
0..19: Mouse(Bx, By, 10, 10, true);
20: MissMouse(Bx+random(400),By+random(400));
end;
MMouse(700,241,20,20);
wait(randomrange(1500,1900));
end else
begin
HoverSkill(skill_Magic, False);
WriteLn('Antiban: Magic XP Check Performed');
exit;
end;
end;
end else
begin
WriteLn('Out of Nature Runes')
LogOut;
end;
Until(TimeFromMark(AlchCounter) > 85000);
end;
FreeDTM(GoldBarDTM);
FreeDTM(HighAlchDTM);
end;
Procedure AlchGems;
var
Hx, Hy, Gx, Gy, CutGemDTM, HighAlchDTM: Integer;
begin
if not LoggedIn then Exit;
CutGemDTM := DTMFromString('mAAEAAHiclc07CoBAEIPhuL4aSxEFsVgEPbKdp/BkioIg619MYekGviIzRSpJTyadCChyqYTDRT+w47ZfitZJk/HoUaPDYLcZDUZs68KK+y0oLkmkb149Fwu8');
HighAlchDTM := DTMFromString('m6wAAAHic42ZgYPBkZWCwBGJHIPYAYj8gDgBiHyD2ZYXIOwGxFRCvYmRgWAPE66F4LRAvB+LFQDwPiOdD+SuA+NACfgYZBkYwxgVh8iIMxANGEjASAACIcAyc');
begin
FTab(tab_Magic);
Repeat
If FindDTM(HighAlchDTM, Hx, Hy, MIX1, MIY1, MIX2, MIY2) Then
begin
Mouse(Hx, Hy, 4, 4, true);
wait(randomrange(500,700));
begin
If FindDTM(CutGemDTM, Gx, Gy, MIX1, MIY1, MIX2, MIY2) Then
begin
ItemsAlched := ItemsAlched + 1
FindNormalRandoms;
Case Random(20) Of
0..18: Mouse(Gx, Gy, 10, 10, true);
19: begin
Mouse(Gx, Gy, 10, 10, true);
HoverSkill(skill_Magic, False);
WriteLn('Antiban: Magic XP Check Performed');
end;
20: MissMouse(Gx+random(400),Gy+random(400));
end;
MMouse(700,241,20,20);
wait(randomrange(1500,1900));
end else
begin
WriteLn('No Gems');
exit;
end;
end;
end else
begin
WriteLn('Out of Nature Runes')
LogOut;
end;
Until(TimeFromMark(AlchCounter) > 5000);
end;
FreeDTM(CutGemDTM);
FreeDTM(HighAlchDTM);
end;
Procedure CraftGems;
Var
UncutGemDTM, GemCounter, p, q: Integer;
Begin
if not LoggedIn then Exit;
UncutGemDTM := DTMFromString('mPwEAAHicpc3NCkBQEMXxc72AvKen8bHAQrpCkbIgb8f/1qwsr1O/ZmpOTSqpS6QahSlRoUWPGR6L7RMGNNicNGLGjgMnbnPZDLfVeqHvkWY535Moj+LjfvjkBZZ6FVA=');
If ExistsItemDTM(UncutGemDTM, p, q) then
begin
MarkTime(GemCounter);
Repeat
If FindDTM(UncutGemDTM, p, q, MIX1, MIY1, MIX2, MIY2) Then
begin
FindNormalRandoms;
Mouse(p, q, 4, 4, true);
MMouse(247,410,20,20);
wait(randomrange(200,300))
ClickMouse2(true);
wait(randomrange(200,300))
WriteLn('Crafting a gem');
wait(randomrange(1500,1900));
Mouse(p, q, 4, 4, true);
WaitOption('rop', 500);
end;
Until(TimeFromMark(GemCounter) > 7000);
end;
FreeDTM(UncutGemDTM);
End;
Procedure TeleUrn;
Var
UrnDTM, Ux, Uy: Integer;
Begin
if not LoggedIn then Exit;
UrnDTM := DTMFromString('m1gAAAHic42JgYKhiYmCoB+IcJgi7E4gLoLgZiEuAuB0kzgiUB+IuIJ7KCOHXAfFkKB8k1wDEGlJCQFOZiMDEAUYiMQIAAApFCqo=');
begin
If FindDTM(UrnDTM, Ux, Uy, MIX1, MIY1, MIX2, MIY2) Then
begin
FindNormalRandoms;
Mouse(Ux, Uy, 4, 4, true);
wait(randomrange(1000,1300))
WriteLn('Urn Ported');
end;
end;
FreeDTM(UrnDTM);
End;
Procedure PortTele;
begin
if not LoggedIn then Exit;
FTab(tab_Magic);
wait(randomrange(300,500))
MMouse(620,276,5,5);
ClickMouse2(true)
wait(randomrange(700,1000))
MMouse(270, 237, 5, 5);
ClickMouse2(true);
wait(randomrange(14000,16000));
end;
Procedure WalkToBox;
begin
if not LoggedIn then Exit;
wait(randomrange(300,500))
MMouse(537,16,10,10);
ClickMouse2(true)
SetAngle(SRL_ANGLE_HIGH);
wait(randomrange(500,700))
RadialWalkTolerance(1521477,80,90,70,5,5,10);
RadialWalkTolerance(1521477,5,50,40,5,5,10);
RadialWalkTolerance(1521477,5,50,30,5,5,10);
RadialWalkTolerance(1521477,70,95,60,5,5,10);
RadialWalkTolerance(1521477,90,110,35,5,5,10);
WriteLn('Checking For Box');
wait(randomrange(1200,1800))
end;
Procedure ClanTele;
begin
if not LoggedIn then Exit;
wait(randomrange(500,800));
FTab(tab_Equip);
wait(randomrange(600,900));
MMouse(570,290,30,30);
ClickMouse2(false);
WaitOption('T', 1000);
wait(randomrange(1200,1800));
TypeSend('1');
wait(randomrange(5000,6000))
end;
Procedure WalkToGuild;
begin
if not LoggedIn then Exit;
wait(randomrange(300,500))
MMouse(537,16,10,10);
ClickMouse2(true)
SetAngle(SRL_ANGLE_HIGH);
wait(randomrange(500,700))
RadialWalkTolerance(4935245,280,330,75,5,5,10);
RadialWalkTolerance(4935245,265,285,70,5,5,10);
RadialWalkTolerance(4935245,160,200,35,5,5,10);
WriteLn('Checking For Guild Door');
Wait(randomrange(1000,1200));
end;
Procedure WalkToRocks;
begin
if not LoggedIn then Exit;
MakeCompass('N');
RadialWalkTolerance(3368818,143,148,60,5,5,5);
MouseItem(3, mouse_left);
end;
Procedure BankBox;
Var
Dx, Dy, Bx, By, GoldBarDTM: Integer;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
If FindObjCustom(Dx, Dy, ['Dep', 'osit'], [6056824], 5) Then
Begin
WriteLn('Banking')
Begin
GetMousePos(Dy, Dx);
Mouse(Dy, Dx, 3, 3, false);
WaitOption('osit', 500);
Flag;
wait(randomrange(1300,1700));
End;
end;
begin
GoldBarDTM := DTMFromString('m6wAAAHic42ZgYNjJxMCwEYg3APEuID4IxMeA+DgQHwLifUC8DYhXA7EXIwNDGBB7A7EzELsCsTsQ+wJxEFQuAogDgXhJswTQdCaisBGQJBYzkoCRAABRrg8M');
begin
If FindDTM(GoldBarDTM, Bx, By, MSX1, MSY1, MSX2, MSY2) Then
begin
FindNormalRandoms;
MMouse(Bx, By, 3, 3);
ClickMouse2(false);
WaitOption('All', 500);
end else
begin
WriteLn('Gold Bars not found');
exit;
end;
end;
FreeDTM(GoldBarDTM);
begin
MMouse(432,40,5,5);
wait(randomrange(100,200))
ClickMouse2(true);
wait(randomrange(1300,1700));
end;
end;
MouseItem(3, mouse_left);
end;
Procedure BoxCheck;
Var
Dx, Dy: Integer;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
If FindObjCustom(Dx, Dy, ['Dep', 'osit'], [6056824], 5) Then
Begin
WriteLn('Found Box');
exit;
end else
begin
WriteLn('Box Not Found. Trying Again');
PortTele;
WalkToBox;
BoxCheck;
end;
end;
Procedure OpenDoor;
Var
Doo, oor: Integer;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
If FindObjCustom(Doo, oor, ['Do', 'oor'], [2449020, 2449277], 5) Then
begin
WriteLn('Entering Guild')
begin
Mouse(Doo, oor, 5, 5, false);
WaitOption('pen', 500);
Flag;
end;
end;
end;
Procedure DoorCheck;
Var
Doo, oor: Integer;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
If FindObjCustom(Doo, oor, ['Do', 'oor'], [2449020, 2449277], 5) Then
Begin
WriteLn('Found Door');
exit;
end else
begin
WriteLn('Door Not Found. Trying Again');
ClanTele;
WalkToGuild;
DoorCheck;
end;
end;
Procedure Proggy;
var
GoldBarsPH, MiningXPPH, SmithingXPPH, MagicXPPH, GPPH :Integer;
begin;
if not LoggedIn then Exit;
case Lowercase(BankOptions) of
'2':
begin
GoldBarsPH := Round((Bars * 3600) / (GetTimeRunning / 1000));
MiningXPPH := Round(((GoldOre * 65) * 3600) / (GetTimeRunning / 1000));
SmithingXPPH := Round(((Bars * 22.5) * 3600) / (GetTimeRunning / 1000));
MagicXPPH := Round(((Bars * 53) * 3600) / (GetTimeRunning / 1000));
GPPH := Round(((GoldOre * 130) * 3600) / (GetTimeRunning / 1000));
ClearDebug;
Writeln('~~~~~~~~~~~~~~MineSmeltAlch~~~~~~~~~~~~~');
Writeln(' ');
Writeln('Bars Banked: ' + IntToStr(Bars) + ' (' + IntToStr(GoldBarsPH) + ' P/H)');
Writeln('Mining XP earned: ' + (ToStr(GoldOre * 65)+ ' (' + IntToStr(MiningXPPH)) + ' P/H)');
Writeln('Smithing XP earned: ' + (ToStr(Bars * 22.5))+ ' (' + IntToStr(SmithingXPPH) + ' P/H)');
Writeln('Magic XP earned: ' + (ToStr(Bars * 53) + ' (' + IntToStr(MagicXPPH)) + ' P/H)');
Writeln('GP Earned: ' + IntToStr(GoldOre * 130) + ' (' + IntToStr(GPPH) + ' P/H)');
Writeln('Total Time: ' + TimeRunning);
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
'1':
begin
GoldBarsPH := Round((Bars * 3600) / (GetTimeRunning / 1000));
MiningXPPH := Round(((GoldOre * 65) * 3600) / (GetTimeRunning / 1000));
SmithingXPPH := Round(((Bars * 22.5) * 3600) / (GetTimeRunning / 1000));
MagicXPPH := Round((((Bars * 53)+(ItemsAlched *65)) * 3600) / (GetTimeRunning / 1000));
GPPH := Round(((GoldOre * 69) * 3600) / (GetTimeRunning / 1000));
ClearDebug;
Writeln('~~~~~~~~~~~~~~MineSmeltAlch~~~~~~~~~~~~~');
Writeln(' ');
Writeln('Bars Alched: ' + IntToStr(Bars) + ' (' + IntToStr(GoldBarsPH) + ' P/H)');
Writeln('Mining XP earned: ' + (ToStr(GoldOre * 65)+ ' (' + IntToStr(MiningXPPH)) + ' P/H)');
Writeln('Smithing XP earned: ' + (ToStr(Bars * 22.5))+ ' (' + IntToStr(SmithingXPPH) + ' P/H)');
Writeln('Magic XP earned: ' + (ToStr((Bars * 53) + (ItemsAlched * 65))+ ' (' + IntToStr(MagicXPPH)) + ' P/H)');
Writeln('GP Earned: ' + IntToStr(GoldOre * 69) + ' (' + IntToStr(GPPH) + ' P/H)');
Writeln('Total Time: ' + TimeRunning);
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
end;
end;
procedure YourChoice;
begin
if not LoggedIn then Exit;
case Lowercase (BankOptions) of
'2':
begin
WriteLn('Digging Gold...');
Repeat
DigGold
TeleUrn
Proggy
Until(InvFull);
WriteLn('Finished Digging Gold');
WriteLn('Smelting Gold...');
CraftGems
MarkTime(SmeltCounter);
SmeltGold
AlchGems
PortTele;
WalkToBox;
BoxCheck;
BankBox;
ClanTele;
WalkToGuild;
DoorCheck;
OpenDoor;
WalkToRocks;
Proggy;
WriteLn('Done Banking');
end;
'1':
begin
WriteLn('Digging Gold...');
Repeat
DigGold
HoverSkill(skill_Smithing, False);
WriteLn('Antiban: Smithing XP Check Performed');
TeleUrn
Proggy
Until(InvFull);
WriteLn('Finished Digging Gold');
WriteLn('Smelting Gold...');
CraftGems
MarkTime(SmeltCounter);
SmeltGold
MarkTime(AlchCounter);
AlchBars
AlchGems
Proggy;
WriteLn('Done Alching Gold');
end;
end;
end;
begin
SetupSRL;
DeclarePlayers;
repeat
StartLogin
Proggy
repeat
YourChoice;
until(Not LoggedIn);
NextPlayer(False);
until(AllPlayersInactive);
end. Thanks for having this competition, I learned a lot :)
BMWxi