SRL Archive - JM Competition Judging

mike-gee420


BraK

2012-11-06 11:57:24

Well, I have been working on this for about a month now,


What it Does
This script makes all f2p gold stuff at the edgeville and al-khirad furnaces.
It (strings the ammys), enchants them, and Alc's them.
(Only 14 gold amulets each stringing run, not 28(Makes 14 and banks 14)).


Requirements
-Lv 8 Crafting
-Amulet Mold
-Gold Bars
Optional
-Lv 40 Smith( For making Gold Bars )
-Lv 24+ Crafting( For Sapphire ammys and up ).
-Lv 7+ Magic( For Lv 1 Enchant and up ).
-lv 55 Magic for high Alc ( Low alc would be to useless )
-Ores,
-Gems,
-wool,
-Staff.


How to Setup
(If your in edgeville, stand right beside the northern banker)
(If your in al-khirad, stan infront of bankers anywhere)
-Gold bars(Ores optional) in 1st bank slot.
-Gems in 2nd bank slot.
-Balls of wool in 3rd bank slot.
-Cosmic runes in 4th bank slot.
-Nature runes in 5th bank slot.
-Fire runes in 6th bank slot.(Unless useing rubys)
Note*: If no Cosmic runes or wool, but you still want to alc,
put something grey here.
( Optional) Staff for enchant spell.(Need staff to enchant.)
-( Optional) Runes for spells.

-Setup 'al-khirad' or 'edgeville'.
-setup 'make' or 'use' bars.
-setup 'gold' or 'gems'.
-setup 'yes' or 'no for Alch.
-Setup GemType For Proggy.
-Set XP bar to Crafting.
optional XP Setup: ( Crafting, Magic, Smelting)
In That Order.
-setup what your making( for Proggy ).



Thanks to NKN for his help with proggys and antiban,
and everyone else who wrote tuts(I read allot figuring out little stuff).


Here it is!

program MikeysHardcoreF2PGoldCrafter;  // V 5.0

{$DEFINE SMART}
{$DEFINE SRL5}
{$i SRL/srl.simba}
// To Test: bankwalk Tol
Var
x, y, sx, sy, ex, ey, rx, ry, dx, dy, nx, ny, Ammy, GoldBar, GoldAmmy, Nature,
AmmysStrung, SpellsCast, OreSmelt, XpStart, XpCraft, XpSmelt, XpMage: integer;

const
AmmysToMake = 1000; // How many bars to use//
RunAtEnergy = 70; // % to run at //
WhatFurnace = 'edgeville'; // 'al-khirad' or 'edgeville'//
WhatToCraft = 'ammy'; //'ammy', 'ring', 'necklace'//
MakeOrUse = 'make'; // 'make' or 'use' bars? //
GoldOrGems = 'gems'; // Use 'gold' bars, or 'gems' //
WantToAlc = 'yes'; // 'yes' or 'no' //
WhatYouMakin = ''; // used for Proggy, you can put anything here //

Procedure DeclarePlayers;
begin
HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name := ''; //Edit this
Pass := ''; //Edit this
BoxRewards := ['amp'];
LampSkill := SKILL_PRAYER; // Maybe this?
Pin := ''; // And this
Active := True;
end;
/////////////////////////Next Account////////////////////////////////////
with Players[1] do
begin
Name := '';
Pass := '';
BoxRewards := ['amp'];
LampSkill := SKILL_PRAYER;
Pin := '';
Active := True;
end;
end;
//////////////////VERY DELLICATE SCRIPT DON'T TOUCH BELOW THIS//////////////////
procedure SetupStuff;
begin
GoldBar := DTMFromString('m1gAAAHic42JgYKhjZmDoBuIeIO4E4lYgbgDiCiAuBuIiKNuJkYHBFoidgdgNiL2A2B+IfYHYG4hdgNgOiBc1iAFNZSKI4xmIA4xEYgQAAEl0CZk=');
GoldAmmy := DTMFromString('mWAAAAHicY2FgYJgFxDOBeBoQzwdiZ0YGBjsgdoLiHYekGbZvlQTTDXVCDLOBaviRMCMaBgEAIF0KAQ==');
Nature := DTMFromString('mlwAAAHicY2dgYHBmYmDwB+IAIPYAYksgNgViEyAWZ2RgEARiSSBWAWJlIJYFYjGQeIUwUDcTVpzMgBsw4sFQAACkegO2');
end;

Procedure FreeTheStuff;
begin
FreeDTM(GoldBar);
FreeDTM(GoldAmmy);
FreeDTM(Nature);
end;

Procedure ClickFurnace;
var
fx, fy : integer;
begin
If (Not LoggedIn) Then Exit;
Case Lowercase(WhatFurnace) of 'al-khirad':
begin
If FindObjCustom(fx, fy, ['urn', 'nace'], [6140882, 11254214, 9279908, 9028528], 5) Then
Wait(100 + random(300));
IsUpText('urnace');
Mouse(fx, fy, 2, 2, True);
Writeln('Clicked the furnace');
end;
end;
////////////////////////////////////////////////////////////////////////////////
Case Lowercase(WhatFurnace) of 'edgeville':
begin
wait(1500 + Random(200));
MouseBox(243, 103, 261, 105, Mouse_Right);
WaitOption('urnace', 200);
Writeln('Clicked the furnace');
end;
end;
end;

Procedure BankScreenClick;
var
bx, by : integer;
begin
If Not (LoggedIn) Then TerminateScript;
GameTab(tab_Inv);
If BankScreen Then Exit;
FindSpinTicket;

Case Lowercase(WhatFurnace) of 'al-khirad':
begin
repeat
If FindObjCustom(bx, by, ['ank bo', 'nk booth'], [3951438, 9943523, 5595247, 5397867], 3) Then
Wait(500 + Random(100));
IsUpTextMultiCustom(['ank bo', 'nk booth']);
Mouse(bx, by, -1, 1, True);
Wait(3000 + Random(400));
Until Bankscreen;
end;
end;
/////////////////////////////////////////////////////////////////////
Case Lowercase(WhatFurnace) of 'edgeville':
begin
MouseBox(277, 163, 297, 181, Mouse_Left);
Wait(1800 + Random(200));
If Not Bankscreen Then
repeat
If FindObjCustom(bx, by, ['alk-to', 'ounter'], [4082768, 3885646, 3951438], 4) Then
WaitUpTextMulti(['alk-to', 'ounter'], Random(200));
If IsUpTextMultiCustom(['ank', 'ounter']) Then
Mouse(bx, by, 2, -1, True);
Wait(2300 + Random(200));
If IsUpText('alk-to') Then
Mouse(bx, by,1, 1, False);
WaitOption('ank Ban', 200);
Wait(2300 + Random(200));
Until Bankscreen;
end;
end;
FindNormalRandoms;
end;

Procedure GemsNGold;
var
bx, by, MakeGold : integer;
begin
MakeGold := DTMFromString('mbQAAAHicY2VgYChiZmAoAOJKIE4B4lIglmViYNAEYgUglgFiMSC+tFwWqJoJBUsyYAJGLBgMAHu8BKc=');
Writeln('about to click stuff');

Case Lowercase(MakeOrUse) of 'use':
begin
repeat
InvMouse(1, Mouse_Left);
ClickFurnace;
Wait(3500 + Random(200));
Until FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);
end;
end;

Case Lowercase(MakeOrUse) of 'make':
begin
repeat
ClickFurnace;
Wait(1800 + Random(200));
Writeln('About to make bar');
Until FindDTM(MakeGold, x, y, MCX1, MCY1, MCX2, MCY2);
If FindDTM(MakeGold, x, y, MCX1, MCY1, MCX2, MCY2) Then
repeat
FindDTM(MakeGold, x, y, MCX1, MCY1, MCX2, MCY2);
Mouse(x, y, 2, 2, True);

Case Lowercase(GoldOrGems) of 'gold':
begin
OreSmelt := OreSmelt + 28
Wait(71000 + Random(500));
end;
end;

case Lowercase(GoldOrGems) of 'gems':
begin
OreSmelt := OreSmelt + 14
WriteLn('Made Bars');
Wait(37500 + Random(500));
end;
end;
Until FindDTM(GoldBar, x, y, MIX1, MIY1, MIX2, MIY2);
repeat
InvMouse(1, Mouse_Left);
ClickFurnace;
Wait(2000 + Random(200));
Until FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);
end;
end;
FreeDTM(MakeGold);
end;

Procedure ClickAmmy;
Var
SAmmy, EAmmy, RAmmy, DAmmy : integer;
begin
SAmmy := DTMFromString('mbQAAAHicY2VgYJjBxMAwHYjnAvEkIJ4NxNGMDAwpQJwExHGMEL6k3E6G2zflGDwdTBge3pcH03JA/VxomBELBgMAGl4LTg==');
EAmmy := DTMFromString('mWAAAAHicY2FgYFjBxMCwHIjXAvESILZgZGCwh2IrIJbcIsvw6oUiw7o1EmDaCKhHEgkzomEQAAAyEApk');
RAmmy := DTMFromString('mWAAAAHicY2FgYBBnZGCQAGJZIBYGYlEgloSyhYD4g6ESw+2b8gyLF4kz3LsjzzAbqIcLiFmhmBENgwAAaN0HvQ==');
DAmmy := DTMFromString('mbQAAAHicY2VgYDBkZmDQZobQFlA6hRGCM6B0HBD//fSJ4cM7ZYYH9xQYPOyMwVgSqJ8fDTNiwWAAAOzEC44=');

Case Lowercase(GoldOrGems) of 'gold':
begin
repeat
If FindDTM(GoldAmmy, nx, ny, MSX1, MSY1, MSX2, MSY2)Then
FindDTM(GoldAmmy, nx, ny, MSX1, MSY1, MSX2, MSY2);
Mouse(x, y, 1, 1, False);
Wait(400 + Random(150));
ChooseOption('ll Gold Amm');
Wait(800 + Random(100));
Until Not FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);
Wait(52000 + Random (1000));
end;
end;

Case Lowercase(GoldOrGems) of 'gems' :
begin
repeat
begin
If FindDTM(SAmmy, sx, sy, MSX1, MSY1, MSX2, MSY2)Then
Mouse(sx, sy, 1, 1, False);

If FindDTM(EAmmy, ex, ey, MSX1, MSY1, MSX2, MSY2)Then
Mouse(ex, ey, 1, 1, False);

If FindDTM(RAmmy, rx, ry, MSX1, MSY1, MSX2, MSY2)Then
Mouse(rx, ry, 1, 1, False);

If FindDTM(DAmmy, dx, dy, MSX1, MSY1, MSX2, MSY2)Then
Mouse(dx, dy, 1, 1, False);
end;
ChooseOption('All');
Wait(900 + Random(100));
Until Not FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);
Wait(26000 + Random (500));
end;
end
FreeDTM(SAmmy);
FreeDTM(EAmmy);
FreeDTM(RAmmy);
FreeDTM(DAmmy);
end;

Procedure ClickRing;
var
GoldRing, SRing, ERing, RRing, DRing : integer;
begin
GoldRing := DTMFromString('mbQAAAHicY2VgYJBmZGCQAWIRIFYEYikgvgoUvwDEVxgg7FtA7OFgzHDvgALD+3NKDCfWyDI8PKzAYA4UZ0XDjFgwGAAALS0Mtg==');
SRing := DTMFromString('mbQAAAHicY2VgYPBiZGBwAWJvIA4EYl8gvgoUvwLEtxgg7DNA7OFgzLB6sgTDtR3yDKfXyzLIKZ1nkASKsyJhcyBmxILBAABCNgxu');
ERing := DTMFromString('mWAAAAHicY2FgYOhjZGBoB+IpQDwZiM8wQPAFID4ExJ4OJgx/b6kwrJgowSC1VY5BEijGCsXmQMyIhkEAAGB2CsM=');
RRing := DTMFromString('mWAAAAHicY2FgYNjDyMCwBYj3A/EBID7FAMEXgPggEHs6mDD8uqHCcHe/AsMXY2UGSaAYKxSbAzEjGgYBALYCDDQ=');
DRing := DTMFromString('mWAAAAHicY2FgYHjJyMDwCIjfAPFbID4DFDsJxBeA+BAQezqYMBxeIcNwd78Cw99PnxgkgWKsUGwOxIxoGAQAFmQOEw==');

Case Lowercase(GoldOrGems) of 'gold':
begin
repeat
If FindDTM(GoldRing, nx, ny, MSX1, MSY1, MSX2, MSY2)Then
Mouse(nx, ny, 1, 1, False);
Wait(400 + Random(150));
ChooseOption('ll Gold Ring');
Wait(800 + Random(100));
Until Not FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);
Wait(52000 + Random (1000));
end;
end;

Case Lowercase(GoldOrGems) of 'gems' :
begin
repeat
begin
If FindDTM(SRing, sx, sy, MSX1, MSY1, MSX2, MSY2)Then
Mouse(sx, sy, 1, 1, False);

If FindDTM(ERing, ex, ey, MSX1, MSY1, MSX2, MSY2)Then
Mouse(ex, ey, 1, 1, False);

If FindDTM(RRing, rx, ry, MSX1, MSY1, MSX2, MSY2)Then
Mouse(rx, ry, 1, 1, False);

If FindDTM(DRing, dx, dy, MSX1, MSY1, MSX2, MSY2)Then
Mouse(dx, dy, 1, 1, False);
end;
ChooseOption('All');
Wait(900 + Random(100));
Until Not FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);
Wait(26000 + Random (500));
end;
end;
FreeDTM(SRing);
FreeDTM(ERing);
FreeDTM(RRing);
FreeDTM(DRing);
FreeDTM(GoldRing);
end;

Procedure ClickNeck;
var
GNeck, SNeck, ENeck, RNeck, DNeck : integer;
begin
GNeck := DTMFromString('mWAAAAHicY2FgYJgKxIuAeBIQzwJIfkYGhl9AmhtI8wLx9Z1yDIeWSzPc3SfPcGqdDIMRUE4SiFmhmBENgwAAN38KZQ==');
SNeck := DTMFromString('mWAAAAHicY2FgYDgOxGeB+BgQXwViXkYI5gDi30C+pOwWhiMrpRn2LZZiuLFLjkEZKMYKxfxAzIiGQQAAO04KMQ==');
ENeck := DTMFromString('mWAAAAHicY2FgYPgBxYyMDAxsQMwLxOxAzAXEv4HiEutlGLbPk2TYt1iK4e0ZRQZloBgrFPOD9KFhEAAA5HIJAA==');
RNeck := DTMFromString('mWAAAAHicY2FgYNBmZGDQAmIDILYAYj4gZgdibiD+DZS/pyvPsHO+FMOZDTIM784qMpgDxViRMCMaBgEAlLMIPg==');
DNeck := DTMFromString('mWAAAAHicY2FgYIhlhOBUIM4HYh4g5gRibiD+B5T//OIFw/E1MgyHlkszfL6oxGAOFGOFYn4gZkTDIAAAKikKyA==');

Case Lowercase(GoldOrGems) of 'gold':
begin
repeat
If FindDTM(GNeck, nx, ny, MSX1, MSY1, MSX2, MSY2) Then
Mouse(nx, ny, 1, 1, False);
Wait(400 + Random(300));
ChooseOption('ll Gold Ring');
Wait(800 + Random(100));
Until Not FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);
Wait(52000 + Random (1000));
end;
end;

Case LowerCase(GoldOrGems) of 'gems' :
begin
repeat
begin
If FindDTM(SNeck, sx, sy, MSX1, MSY1, MSX2, MSY2)Then
Mouse(sx, sy, 1, 1, False);

If FindDTM(ENeck, ex, ey, MSX1, MSY1, MSX2, MSY2)Then
Mouse(ex, ey, 1, 1, False);

If FindDTM(RNeck, rx, ry, MSX1, MSY1, MSX2, MSY2)Then
Mouse(rx, ry, 1, 1, False);

If FindDTM(DNeck, dx, dy, MSX1, MSY1, MSX2, MSY2)Then
Mouse(dx, dy, 1, 1, False);
end;
ChooseOption('All');
Wait(900 + Random(100));
Until Not FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);
Wait(26000 + Random (500));
end;
end;
FreeDTM(GNeck);
FreeDTM(SNeck);
FreeDTM(ENeck);
FreeDTM(RNeck);
FreeDTM(DNeck);
end;

Procedure GetGems;
var
AGem, GoldOre : integer;
begin
AGem := DTMFromString('mlwAAAHicY2dgYPBkYmAIBWJ/IPYGYicgdoTSRYwMDNVAXA/ETUDcAMS1QFwGxAsnLgbqZsKKzRlwA0Y8GAoAPIcHmg==');
GoldOre := DTMFromString('mbQAAAHicY2VgYEhkYmDIA+JsII4E4kAgtmRkYDACYkcgdgFiCyDeOVkaqJoJBc9mwASMWDAYAACQcwUw');

BankScreenClick;
If Not BankScreen Then Logout;

Case LowerCase(MakeOrUse) of 'use':
begin
Wait(1000 + Random(200));
If FindDTM(GoldBar, x, y, MBX1, MBY1, MBX2, MBY2) Then
repeat
Case Lowercase(GoldOrGems) of 'gold' :
begin
If BankScreen Then
DepositAll;
Withdraw(0, 0, 28);
Wait(1000 + Random(200));
WriteLn('Got some Gold');
end;
end;

Case Lowercase(GoldOrGems) of 'gems' :
begin
If Not FindDTM(AGem, x, y, MBX1, MBY1, MBX2, MBY2) Then Logout;
If BankScreen Then
DepositAll;
Withdraw(0, 0, 14);
Wait(500 + Random(200));
Withdraw(1, 0, 14);
WriteLn('Got some gems');
end
end;
until FindDTM(GoldBar, x, y, MIX1, MIY1, MIX2, MIY2);
CloseBank;
end;
end;

Case Lowercase(MakeOrUse) of 'make':
begin
repeat
If Not FindDTM(GoldOre, x, y, MBX1, MBY1, MBX2, MBY2) Then Logout;
If Not FindDTM(GoldOre, x, y, MIX1, MIY1, MIX2, MIY2) Then

Case Lowercase(GoldOrGems) of 'gold' :
begin
If BankScreen Then
DepositAll;
Withdraw(0, 0, 28);
Wait(1000 + Random(200));
WriteLn('Got some Ores');
end;
end;

Case Lowercase(GoldOrGems) of 'gems' :
begin
If Not FindDTM(AGem, x, y, MBX1, MBY1, MBX2, MBY2) Then Logout;
If BankScreen Then
DepositAll;
Withdraw(0, 0, 14);
Wait(300 + Random(200));
Withdraw(1, 0, 14);
WriteLn('Got some gems');
end;
end;
Until FindDTM(GoldOre, x, y, MIX1, MIY1, MIX2, MIY2);
CloseBank;
end;
end;
FindNormalRandoms;
FreeDTM(AGem);
FreeDTM(GoldOre);
end;

Procedure RadialWalking(FurnaceWalkin: Integer);
begin
If (Not LoggedIn) Then Exit;
Case FurnaceWalkin of
/////////////////////////////////Al-Khirad//////////////////////////////////////
1: RadialWalkTolerance(9547453, 30, 50, 53, 3, 2, 20);
2: RadialWalkTolerance(602204, 27, 40, 60, -5, 5, 20);// Path to furnace
/////////////////////////////////////////////////////////////////////////////////
3: RadialWalkTolerance(9547453, 212, 223, 65, 3, -3, 20);
4: RadialWalkTolerance(12632256, 198, 250, 65, 2, 2, 25); // Path to bank
end;
end;

Procedure FurnaceWalk;
var
i : integer;
begin
If (Not LoggedIn) Then Exit;
RunEnergy(RunAtEnergy);
FindSpinTicket;

Case Lowercase(WhatFurnace) of 'al-khirad':
begin
repeat
GameTab(Tab_Inv);
for i := 1 to 2 do
RadialWalking(i);
Wait(500 + Random(100));
Until FindObjCustom(x, y, ['Furn', 'nace'], [6141140, 10398647, 10596026, 7437187, 6712197], 5);
Wait(500 + Random(100));
end;
end;
//////////////////////////////////////////////////////////////////////
Case Lowercase(WhatFurnace) of 'edgeville':
begin
repeat
RadialWalkTolerance(4080960, 334, 335, 60, 1, 5, 25);
until FindObjCustom(x, y, ['urn', 'nace'], [3817539, 1449880, 7833738], 10);
end;
end;
FindNormalRandoms;
Writeln('Walked to furnace');
end;

Procedure MakeStuff;
begin
GemsNGold;
repeat
If Not FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2) Then Exit;

Case Lowercase(WhatToCraft) of 'ammy': ClickAmmy;
end;

Case Lowercase(WhatToCraft) of 'ring': ClickRing;
end;

Case Lowercase(WhatToCraft) of 'necklace': ClickNeck;
end;

Until Not FindDTM(GoldBar, x, y, MIX1, MIY1, MIX2, MIY2);

Case Lowercase(GoldOrGems) of 'gold': Ammy := Ammy + 28
end;

Case Lowercase(GoldOrGems) of 'gems' : Ammy := Ammy + 14
end;

RunEnergy(RunAtEnergy);
Writeln('We made some Stuff!');
end;

Procedure BankWalk;
var
r : integer;
begin
If (Not LoggedIn) Then Exit;
FindSpinTicket;

Case Lowercase(WhatFurnace) of 'al-khirad':
begin
repeat
RunEnergy(RunAtEnergy);
for r := 3 to 4 do
RadialWalking(r);
Writeln('walked to the Bank');
Wait(500 + Random(100));
FindNormalRandoms;
Until FindObjCustom(x, y, ['ank bo', 'nk booth'], [9087440, 3554889, 6910075, 9548507, 3159871], 12);
end;
end;
/////////////////////////////////////////////////////////////////////////
Case Lowercase(WhatFurnace) of 'edgeville':
begin
RadialWalkTolerance(4082770, 146, 151, 52, 3, 1, 25);
Wait(1300 + Random(100));
end;
end;

end;

Procedure StringAmmy;
var
wx, wy, Amm, Wool, AllAm : integer;
begin
Wool := DTMFromString('mbQAAAHicY2VgYIgH4lwgTgPicCCOAuLZULwMiJcA8QwgfnjjOpBkQsHeDJiAEQsGAwBbkQfp');
Amm := DTMFromString('mWAAAAHicY2FgYPjPCMHsTAwM34G0FZDWA2JrIDYDYm4De6AqJjiWZEAFjGgYBABBdASE');
AllAm := DTMFromString('mWAAAAHicY2FgYPBiYmAIAGJ3IHYG4mRGBoYkIE4D4nggXr5UAqiKCY7NGVABIxoGAQAOPgRk');

If (Not LoggedIn) Then Exit;
Case Lowercase(WhatToCraft) of 'necklace': Exit;
end;

Case Lowercase(WhatToCraft) of 'ring': Exit;
end;

Case Lowercase(WhatToCraft) of 'ammy':
begin
BankScreenClick;
Wait(1000 + Random(50));
If BankScreen Then
repeat

Case Lowercase(GoldOrGems) of 'gold':
begin
Deposit(1, 1, 14);
Withdraw(2, 0, 14);
Wait(1200 + Random(50));
end;
end;

Case Lowercase(GoldOrGems) of 'gems':
begin
If FindDTM(AllAm, x, y, MIX1, MIY1, MIX2, MIY2) Then
Withdraw(2, 0, 14);
Wait(1200 + Random(200));
end;
end;

Until FindDTM(Wool, x, y, MIX1, MIY1, MIX2, MIY2);
WriteLn('Got some wool');
Closebank;
repeat

Case Lowercase(GoldOrGems) of 'gold':
begin
InvMouse(15, Mouse_Left);
Wait(800 + Random(100));
If FindDTM(Wool, wx, wy, MIX1, MIY1, MIX2, MIY2) Then
InvMouse(14, Mouse_Left);
end;
end;

Case Lowercase(GoldOrGems) of 'gems':
begin
InvMouse(14, Mouse_Left);
Wait(800 + Random(100));
If FindDTM(Wool, wx, wy, MIX1, MIY1, MIX2, MIY2) Then
Mouse(wx, wy, 2, 2, true);
end;
end;

Wait(1200 + Random(200));
If FindDTM(Amm, x, y, MCX1, MCY1, MCX2, MCY2)Then
MMouse(x, y, 2, 2);
ClickMouse2(True);
Wait(10000 + Random(500));
WriteLn('Stung Ammys');
Until Not FindDTM(Wool, x, y, MIX1, MIY1, MIX2, MIY2);
AmmysStrung := AmmysStrung + 14
end;
end;
FreeDTM(Amm);
FreeDTM(Wool);
FreeDTM(AllAm);
end;

Procedure Enchant;
var
L, ex, ey, Enchnt, Circle, Cosmic : integer;
begin
Circle := DTMFromString('mbQAAAHicY2VgYGBiZWBgBGIOIP7FwsDACqQ/A8W/AfFHKH4NxCuWi4NUo2B+BkzAiAWDAQA2QQdg');
Enchnt := DTMFromString('mbQAAAHicY2VgYPBiguAQIPYGYlcgtmNkYLAEYgcg9gBiRyD+/fs3gxQvMwqeDdTPjIYZsWAwAADzpQcS');
Cosmic := DTMFromString('mggAAAHicY2NgYOgE4tlAPBOIJwBxMxDXA/EcqPgyIF4DxCuBeBYQ37yuACSZMHA+A3bAiANDAACIPAlx');

If (Not LoggedIn) Then Exit;
Case Lowercase(GoldOrGems) of 'gold': Exit;
end;

If FindDTM(Circle, x, y, MIX1, MIY1, MIX2, MIY2)Then Exit;
If Not (Bankscreen) Then
BankScreenClick;
Wait(1500 + Random(100));
repeat
If Not FindDTM(Cosmic, x, y, MBX1, MBY1, MBX2, MBY2) Then Exit;
FindDTM(Cosmic, x, y, MBX1, MBY1, MBX2, MBY2);
Mouse(x, y, 2, 2, False);
Chooseoption('14');
Wait(800 + Random(100));
WriteLn('Got Runes');
CloseBank;
Until FindDTM(Cosmic, x, y, MIX1, MIY1, MIX2, MIY2);
Wait(500 + Random(200));
GameTab(Tab_Magic);
Wait(500 + Random(100));
If Not FindDTM(Enchnt, x, y, MIX1, MIY1, MIX2, MIY2) Then Exit;
For L := 1 to 14 do
repeat
If FindDTM(Enchnt, ex, ey, MIX1, MIY1, MIX2, MIY2)Then
Mouse(ex, ey, 2, 2, True);
Wait(700 + Random(100));
InvMouse(L, 1);
Wait(1300 + Random(100));
If Not IsUptext('lvl') Then GameTab(Tab_Magic);
Until Not FindDTM(Cosmic, x, y, MIX1, MIY1, MIX2, MIY2);
WriteLn('Enchanted Stuff');
GameTab(tab_Inv);
Wait(2000 + Random(200));
SpellsCast := SpellsCast + 14
FreeDTM(Cosmic);
FreeDTM(Enchnt);
FreeDTM(Circle);
end;

Procedure Alc;
var
RubySFS : integer;
begin
RubySFS := DTMFromString('mQwAAAHicY2ZgYHBlYmBwA2InIOZlZGAQAmJBIF6iKM6wfZ4Uw55FUgzmQHXKUMyIhIEAAMXrBU0=');

If (Not LoggedIn) Then Exit;
Case Lowercase(GoldOrGems) of 'gold': Exit;
end;

Case Lowercase(WantToAlc) of 'no': Exit;
end;

Case Lowercase(WantToAlc) of 'yes':
begin
BankScreenClick;
Wait(500 + Random(100));
If Not FindDTM(Nature, x, y, MBX1, MBY1, MBX2, MBY2) Then Exit;
Repeat
FindDTM(Nature, x, y, MBX1, MBY1, MBX2, MBY2);
Mouse(x, y, 2, 2, False);
Chooseoption('14');
Wait(1200 + Random(100));
WriteLn('Ready To Alc');
Until FindDTM(Nature, x, y, MIX1, MIY1, MIX2, MIY2);
If FindDTM(RubySFS, x, y, MIX1, MIY1, MIX2, MIY2) Then Exit;
Withdraw(5, 0, 70);
Wait(800 + Random(100));
end;
end;
FreeDTM(RubySFS);
end;

Procedure AlchStuff;
var
ax, ay, M, HighAlc : integer;
begin
HighAlc := DTMFromString('mbQAAAHicY2VgYLjDBsGXofQrIO5mZGBoB+IeIO4H4k4gXjeFh0GGgRGMYXA2AyZgxILBAAAAPglc');

If (Not LoggedIn) Then Exit;
If Not FindDTM(Nature, x, y, MIX1, MIY1, MIX2, MIY2) Then Exit;
CloseBank;
GameTab(Tab_Magic);
Wait(1000 + Random(200));
For M := 1 to 14 do
repeat
If FindDTM(HighAlc, ax, ay, MIX1, MIY1, MIX2, MIY2)Then
Mouse(ax, ay, 1, 1, True);
Wait(500 + Random(100));
InvMouse(M, 1);
Wait(1600 + Random(100));
Until Not FindDTM(Nature, x, y, MIX1, MIY1, MIX2, MIY2);
WriteLn('We dont have to sell these!');
Wait(3000 + Random(200));
SpellsCast := SpellsCast + 14
FreeDTM(HighAlc);
end;

Procedure Antiban;
begin
If (Not LoggedIn) Then Exit;
If (Not FindNormalRandoms) Then
Case Random(500) of
0: RandomRClick;
1: PickUpMouse;
2: HoverSkill('Crafting', False);
3: HoverSkill('Random', False);
4: PickUpMouse;
End;
GameTab(Tab_Inv);
End;

procedure Proggy;
var
OrePH, AmmyPH, StrungPH, EnchantPH, XPH, XP, SXPH, SXP, CXPH, CXP,
MXPH, MXP : Integer;
begin
OrePH := Round((OreSmelt * 3600) / (GetTimeRunning / 1000));
AmmyPH := Round((Ammy * 3600) / (GetTimeRunning / 1000));
StrungPH := Round((AmmysStrung * 3600) / (GetTimeRunning / 1000));
EnchantPH := Round((SpellsCast * 3600) / (GetTimeRunning / 1000));
XP := ((GetXPBar(1) + GetXPBar(2) + GetXPBar(3)) - XpStart);
SXP := (GetXPBar(3) - XpSmelt);
CXP := (GetXPBar(1) - XpCraft);
MXP := (GetXPBar(2) - XpMage);
XPH := Round(XP * (3600.0 / (GetTimeRunning / 1000.0)));
SXPH := Round(SXP * (3600.0 / (GetTimeRunning / 1000.0)));
CXPH := Round(CXP * (3600.0 / (GetTimeRunning / 1000.0)));
MXPH := Round(MXP * (3600.0 / (GetTimeRunning / 1000.0)));
If Not LoggedIn Then TerminateScript;
Writeln('*********** Amulet Maker**********');
Writeln('* Proggy Based ~By NKN~ ');
Writeln('*Making: ' + WhatYouMakin + 'Amulets*');
Writeln('*Gold ores smelted: ' + IntToStr(OreSmelt) + ' (' + IntToStr(OrePH) + ' P/H)');
Writeln('*Smithing XP: ' + IntToStr(SXP)+ ' (' + IntToStr(SXPH) + ' XP/H)');
Writeln('*Bars Crafted: ' + IntToStr(Ammy) + ' (' + IntToStr(AmmyPH) + ' P/H)');
Writeln('*Ammys Strung: ' + IntToStr(AmmysStrung) + ' (' + IntToStr(StrungPH) + ' P/H)');
Writeln('*Crafting XP: ' + IntToStr(CXP)+ ' (' + IntToStr(CXPH) + ' XP/H)');
Writeln('*Spells cast: ' + IntToStr(SpellsCast) + ' (' + IntToStr(EnchantPH) + ' P/H)');
Writeln('*Magic XP: ' + IntToStr(MXP)+ ' (' + IntToStr(MXPH) + ' XP/H)');
Writeln('*XP earned: ' + IntToStr(XP)+ ' (' + IntToStr(XPH) + ' XP/H)');
Writeln('*Total Time: ' + TimeRunning);
Writeln('********************************');
FindNormalRandoms;
end;

Begin
ClearDebug;
SRL_SixHourFix := True;
SMART_FixSpeed := True;
If (SRL_SixHourFix) Then
SRL_Procs[srl_OnRSUpdate] := @SixHourFix;
SetupSRL;
DeclarePlayers;
LoginPlayer;
FindNormalRandoms;
ClickNorth(SRL_ANGLE_HIGH);
Case Lowercase(WhatFurnace) of 'edgeville': MakeCompass(90);
end;
XpStart := (GetXPBar(1) + GetXPBar(2) + GetXPBar(3));
XpCraft := (GetXPBar(1));
XpSmelt := (GetXPBar(3));
XpMage := (GetXPBar(2));
begin
repeat
SetupStuff;
RunEnergy(RunAtEnergy);
GetGems;
Proggy;
FurnaceWalk;
MakeStuff;
BankWalk;
StringAmmy;
Enchant;
Alc;
AlchStuff;
AntiBan;
FindNormalRandoms;
FreeTheStuff;
Until(Ammy + 0 = AmmysToMake);
NextPlayer(True);
end;
TerminateScript;
SmartKillClients;
end.

Ashaman88

2012-11-29 23:46:24

Technique (65/100)
-only two unused variables
-lots of infinite loops (see below)
-a couple types of loops used I like

Individuality (70/100)
-You don't use any functions built by you
-IE only procedures used
-Mostly just using include (not horrible

Follow all SRL rules (62/100)
Case Lowercase(WhatFurnace) of 'al-khirad':
begin
If FindObjCustom(fx, fy, ['urn', 'nace'], [6140882, 11254214, 9279908, 9028528], 5) Then
Wait(100 + random(300));
IsUpText('urnace');
Mouse(fx, fy, 2, 2, True);
Writeln('Clicked the furnace');
end;
end;
////////////////////////////////////////////////////////////////////////////////
Case Lowercase(WhatFurnace) of 'edgeville':
begin
wait(1500 + Random(200));
MouseBox(243, 103, 261, 105, Mouse_Right);
WaitOption('urnace', 200);
Writeln('Clicked the furnace');
end;
end;

That could be brought into 1 case statement, you do that several times throughout the script. Also relying on set coords for the edgeville furnace.
-Also in that same snippet, you should use an if statement for the uptext, you have it click regardless of if the uptext is correct. You do that in several procedures

repeat
If FindObjCustom(bx, by, ['alk-to', 'ounter'], [4082768, 3885646, 3951438], 4) Then
WaitUpTextMulti(['alk-to', 'ounter'], Random(200));
If IsUpTextMultiCustom(['ank', 'ounter']) Then
Mouse(bx, by, 2, -1, True);
Wait(2300 + Random(200));
If IsUpText('alk-to') Then
Mouse(bx, by,1, 1, False);
WaitOption('ank Ban', 200);
Wait(2300 + Random(200));
Until Bankscreen;

Potential infinite loop right here, what if you got logged out in the middle of it?

repeat
InvMouse(1, Mouse_Left);
ClickFurnace;
Wait(3500 + Random(200));
Until FindDTM(GoldAmmy, x, y, MSX1, MSY1, MSX2, MSY2);


Another potential endless loop! There are several more of these throughout the script
-Standards are average, but not terrible
-You need better using of begins and ends.


Creativity (75/100)
-Different idea from others
-Love how many different options you put in it
-Actual coding isn't very unique or creative though

Efficiency (60/100)
-Huge thing is the use of cases described above, check out proper usage of that
-Also the infinite loops make this script hard to be stable
-A lot of times you don't utilize the booleans for something like chooseoption below, what if it doesn't successfully chose it? It will keep looping
 WaitOption('ank Ban', 200);



Presentation (84/100)
-Clear intructions
-Not a lot of comments on each function but thats ok
-Not very difficult to read through

Meeting all Requirements (98/100)
-Uses radial walking (although no backups)
-Uses several skills
-Banking
-Multiplayer with instructions
-F2P :)

Added Extras (80/100)
-Like the many different options!

Average (74/100)

NKN

2012-11-30 16:16:37

Technique (70 /100)
+DTM object finding
+Detailed proggy
-Low failsafe
-Bad case usage
Individuality (65/100)
+Lots of options
+DTMS
-+ Some unused variables, but not many
-Basically only used the include
-Bad case usage
-Some parts of procedures will never execute.
Follow all SRL rules (60 /100)
-Case usage wrong(Look at Ashamans post for ways to fix)
-Some things in procedures will never execute
+- Standards are average
-Begin/Ends
-If statements could be better
Creativity ( 80/100)
+More options than most other scripts
+Nice idea
+Two furnaces
+More than one item smithed
+Alching
+The scriting you did isn't that advanced or difficult. Mostly just the SRL Include
Efficiency ( 55/100)
-Case usage… this is a biggy.
-Endless loops
-Low failsafes
-Don't use if statements for functions that return booleans.

Presentation ( 90/100)
+Clear script setup
+Great options for script
+Creditted
-Not enough comments
+- Stardards make it easier to read
Meeting all Requirements ( 95/100)
-No comments
+Everything else
Added Extras ( 85/100)
+Great script options
-One method of walking
Average (75 /100)