lucozade
2012-12-12 17:04:53
So title says it all. if u can script for soulsplit please contact me here , or on skype my skype name : super-star-nr-1
2012-12-12 17:04:53
2012-12-12 17:36:10
2012-12-12 17:54:27
2012-12-12 17:56:48
2012-12-12 18:44:46
From: Mr[S]
Rez is private servers like similar to RS? Never played one so you know :$
2012-12-12 18:49:01
From: Silentcore
Private servers are like runescape but you get everything faster. You do have to becareful because they run java and can contain a java driveby which can hack your Rs Acc.
2012-12-12 18:58:47
2012-12-12 19:03:10
From: Mr[S]
Java drive by obviously, that's why I don't play any other games except RS
2012-12-12 19:04:17
From: Mr[S]
Java drive by obviously, that's why I don't play any other games except RS
2012-12-12 19:10:08
2012-12-12 19:45:43
2012-12-12 19:53:36
2012-12-12 20:01:58
From: mounty
Why don't you try to learn how to make your own. Then you could probably adapt most scripts here to work on soulsplit. That's my suggestion anyway. Shouldnt take long to understand it all once you get started.
program EdgevilleCrafter;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i ObjectDTM/ObjDTMInclude.simba}
var
TimeBegan, StartingXP, Stuck, CBXMin, CBXMax, CBYMin, CBYMax, actionsPerRun, runs, goalRuns, UncutGemValue, CutGemValue, GoldOreValue, GoldBarValue, CraftedItemValue, GemDTM, GoldBarDTM, GoldOreDTM, WalkToBankDTM, BankDTM, WalkToFurnaceDTM, FurnaceDTM: integer;
xpPerJewelryAction, xpPerGemAction, xpPerSmeltingAction: Double;
firstRun, leeching, doneRunning, cuttingGems, makingJewelry, smeltingGold, debugMode: Boolean;
CraftingWhat, GemEncrusted: string;
aFound: extended;
//Bounds of the Crafting scroll bar (Crafting Menu Scroll)
const
CMSX1 = 228;
CMSX2 = 231;
CMSY1 = 87;
CMSY2 = 293;
CMSY3 = 205; //Bottom of scroll bar when at top
CMSY4 = 173; //Top of scroll bar when at bottom
//Bounds of the top left selectable crafting box (Crafting Box Position)
const
CBPX1 = 24;
CBPX2 = 63;
CBPY1 = 80;
CBPY2 = 119;
//Distance between crafting boxes (Crafting Box Distance)
const
CBDX = 50;
CBDY = 50;
//Absolute Y value limit for crafting box (Craftin Box Maximum)
const
CBMY = 307;
//Action bar boundaries
const
ABX1 = 97;
ABX2 = 421;
ABY1 = 77;
ABY2 = 165;
///////////////////////////PLAYER SETUP//////////////////////////////////
// Gold bars or ores MUST be visible in bank (of currently open tab)!
// Gems MUST be visible in bank
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Pin := '';
Players[0].Nick := '';
Players[0].Active:=True;
end;
procedure UserSettings;
var
goalActions: integer;
goldSmithingGauntlets: Boolean;
begin
CraftingWhat := 'Bracelet'; //Ring, Amulet, Necklace, Bracelet
GemEncrusted := 'None'; //None, Sapphire, Emerald, Ruby, Diamond, Dragonstone
goalRuns := 1; //How many trips?
goalActions := 0; //How many items? Will change trip amount so if last trip
//would not have a full trip, it won't do it.
//Also leave at 0 to run until all gone.
makingJewelry := True;
cuttingGems := False; //Does nothing for now, will matter soon
smeltingGold := False; //Do you want to smelt gold (will EVENTUALLY be done same trip as making jewelry if both set to true)
goldSmithingGauntlets := False; //Do you have them equipped currently? Future version should withdraw for you if needed.
debugMode := True; //Prints debug info to SMART screen. Use for debugging issues.
//Don't edit below this line!
if(goalActions > 0)then
begin
goalRuns := (goalActions / actionsPerRun);
end else if (goalRuns = 0) then
begin
goalRuns := 100000;
end;
if(smeltingGold = True) then
begin
if(goldSmithingGauntlets = True) then
begin
xpPerSmeltingAction := 56.2;
end else begin
xpPerSmeltingAction := 22.5;
end;
end;
end;
function GetItemValue(id: integer): integer; //Written by SuperIrony
var
s: string;
begin
WriteLn('Getting item''s ' + IntToStr(id) + ' value...');
s := GetPage('http://services.runescape.com/m=itemdb_rs/viewitem.ws?obj=' + IntToStr(id));
s := Copy(s, Pos('guide price', s) + 22, 9);
s := ReplaceRegExpr('[^0-9KkMm\.]', s, '', true);
if (Pos('k', s) > 0) or (Pos('K', s) > 0) then begin
s := Copy(s, 0, Length(s) - 1);
result := Round(StrToFloat(s) * 1000);
end else if (Pos('m', s) > 0) or (Pos('M', s) > 0) then begin
s := Copy(s, 0, Length(s) - 1);
result := Round(StrToFloat(s) * 1000000);
end else begin
result := Round(StrToFloat(s));
end;
WriteLn(IntToStr(result) + 'gp');
end;
procedure SetupVariables;
begin
if(cuttingGems = True) then
begin
WriteLn('Gem cutting is not yet implemented completely! Please don''t try.');
TerminateScript;
end;
doneRunning := false;
firstRun := true;
runs := 0;
if(makingJewelry = True) and (not (GemEncrusted = 'None')) then
begin
actionsPerRun := 14;
end else begin
actionsPerRun := 28;
end;
WalkToBankDTM := DTMFromString('mrAAAAHic42BgYGAFYjUgVgBiNigfBliAWAaIdYFYHiqmCcVKULFAH3sG72IzBqVIITBOjvZleP+XE47/A9XIIWENND4jEDPhwTAAAHpLDRw=');
BankDTM := DTMFromString('m6wAAAHic42ZgYFAD4kgGCNAAYiYg9gRieyAWQKLnATELAypgA2J2IOYAYlYgZoRikDpfT2uGD2/OM1y9uJ3hxdMTYD4ybu/qBWM3DwUGEaB6OSQsgoaRxUHmM0MxE5KdMMwExayoTgUA2PATHg==');
WalkToFurnaceDTM := DTMFromString('mlwAAAHicY2dgYDABYh0g5gZieSA2BWIlBgiQhtJcQGwExK5A7ATEQkD84cF9hsAALzA2ThBmaOudxuBTYMygHMbP8B8oL4eENZDYjEiYCQ1DAQDhRgvs');
FurnaceDTM := DTMFromString('mlwAAAHicY2dgYDBhZGBwAGJ7KO0NxAFAHAHEMxgguAmIVwPxdCCeAsTzgDgtKYKhV1aYwdragsHAQI+hUwbCnikvymAElMeFgcYyMOHAUAAAq60M0g==');
if(makingJewelry = True) then
begin
GoldBarDTM := DTMFromString('mlwAAAHicY2dgYHBiYmCwB2J3IHYFYmcgDgRiEyB+AJR/BsSPgfgWEH8A4odA/AKIFzWIMcR48jJcWi4L5DGhYBEgCcOsaJgRD4YCAN+0DAY=');
GoldBarValue := GetItemValue(2357);
end;
if(smeltingGold = True) then
begin
GoldOreDTM := DTMFromString('mAAEAAHic42FgYPgKxIyMDAz/gfRPIP4MxG+B+BUQPwHil0D8B4g/APEnIJ4HxHOAeBEQLwXi1UC8AsqeD8WLgXg5EM8G4i39kkCSCSeOcDNkWNMpAaYnlYgycDHgB5JomJFEjAwAkOoX9w==');
GoldOreValue := GetItemValue(444);
end;
if(cuttingGems= True) then //Use uncut DTMs
begin
case GemEncrusted of
'Sapphire': begin
GemDTM := DTMFromString('');
xpPerGemAction := 50;
UncutGemValue:= GetItemValue(1623);
end;
'Emerald': begin
GemDTM := DTMFromString('');
xpPerGemAction := 67.5;
UncutGemValue:= GetItemValue(1621);
end;
'Ruby': begin
GemDTM := DTMFromString('');
xpPerGemAction := 85;
UncutGemValue:= GetItemValue(1619);
end;
'Diamond': begin
GemDTM := DTMFromString('');
xpPerGemAction := 107.5;
UncutGemValue:= GetItemValue(1617);
end;
'Dragonstone': begin
GemDTM := DTMFromString('');
xpPerGemAction := 137.5;
end;
end;
end else begin //Cut DTMs
xpPerGemAction := 0;
case GemEncrusted of
'None': begin
CBYMin:= CBPY1;
CBYMax:= CBPY2;
CutGemValue:= 0;
end;
'Sapphire': begin
GemDTM := DTMFromString('mlwAAAHicY2dgYJAAYnkglgJiASDmAWJ+KFsMiIWBWA6IFaBqhKDifAKpQJIJAwuJNjMYMWAHIHFGPBgKAAcXAt8=');
CBYMin:= (CBPY1 + CBDY);
CBYMax:= (CBPY2 + CBDY);
CutGemValue:= GetItemValue(1607);
end;
'Emerald': begin
GemDTM := DTMFromString('mrAAAAHic42BgYHAEYk8gdgViSyA2A2IrIHaB0mJALAzEskAsD8SSQCwIxOJQNm8SP5BkwsAgcaFmUQYjBuzACIoZCWAYAAA/wQUM');
CBYMin:= (CBPY1 + (CBDY * 2));
CBYMax:= (CBPY2 + (CBDY * 2));
CutGemValue:= GetItemValue(1605);
end;
'Ruby': begin
GemDTM := DTMFromString('mrAAAAHic42BgYJgLxEuAeDGUPRmIpwDxNCCeB8TFQJwPxBVAXAPE1VB+CRCXAXGIIA+QZMLAq5LjwXJGDNiBERQzEsAwAACWmAuF');
CBYMin:= (CBPY1 + (CBDY * 3));
CBYMax:= (CBPY2 + (CBDY * 3));
CutGemValue:= GetItemValue(1603);
end;
'Diamond': begin
GemDTM := DTMFromString('mwQAAAHic42RgYOAGYn4gZoViEGABYh4gFgFiYSBmA2J2IOaCynMAsQBUH0iMCYiry8rAeMncuVARTMwFVQ8zBxtgJALDAQCDYQWO');
CBYMin:= (CBPY1 + (CBDY * 4));
CBYMax:= CBMY;
CutGemValue:= GetItemValue(1601);
end;
'Dragonstone': begin
GemDTM := DTMFromString('');
end;
end;
end;
case CraftingWhat of
'Ring':
begin
CBXMin:= CBPX1;
CBXMax:= CBPX2;
case GemEncrusted of
'None': begin
xpPerJewelryAction := 15;
CraftedItemValue:= GetItemValue(1635);
end;
'Sapphire': begin
xpPerJewelryAction := 40;
CraftedItemValue:= GetItemValue(1637);
end;
'Emerald': begin
xpPerJewelryAction := 55;
CraftedItemValue:= GetItemValue(1639);
end;
'Ruby': begin
xpPerJewelryAction := 70;
CraftedItemValue:= GetItemValue(1641);
end;
'Diamond': begin
xpPerJewelryAction := 85;
CraftedItemValue:= GetItemValue(1643);
end;
'Dragonstone': xpPerJewelryAction := 100;
end;
end;
'Necklace':
begin
CBXMin:= (CBPX1 + CBDX);
CBXMax:= (CBPX2 + CBDX);
case GemEncrusted of
'None': begin
xpPerJewelryAction := 20;
CraftedItemValue:= GetItemValue(1654);
end;
'Sapphire': begin
xpPerJewelryAction := 55;
CraftedItemValue:= GetItemValue(1656);
end;
'Emerald': begin
xpPerJewelryAction := 60;
CraftedItemValue:= GetItemValue(1658);
end;
'Ruby': begin
xpPerJewelryAction := 75;
CraftedItemValue:= GetItemValue(1660);
end;
'Diamond': begin
xpPerJewelryAction := 90;
CraftedItemValue:= GetItemValue(1662);
end;
'Dragonstone': xpPerJewelryAction := 105;
end;
end;
'Amulet':
begin
CBXMin:= (CBPX1 + (CBDX * 3));
CBXMax:= (CBPX2 + (CBDX * 3));
case GemEncrusted of
'None': begin
xpPerJewelryAction := 30;
CraftedItemValue:= GetItemValue(1673);
end;
'Sapphire': begin
xpPerJewelryAction := 65;
CraftedItemValue:= GetItemValue(1675);
end;
'Emerald': begin
xpPerJewelryAction := 70;
CraftedItemValue:= GetItemValue(1677);
end;
'Ruby': begin
xpPerJewelryAction := 85;
CraftedItemValue:= GetItemValue(1679);
end;
'Diamond': begin
xpPerJewelryAction := 100;
CraftedItemValue:= GetItemValue(1681);
end;
'Dragonstone': xpPerJewelryAction := 150;
end;
end;
'Bracelet':
begin
CBXMin:= (CBPX1 + (CBDX * 2));
CBXMax:= (CBPX2 + (CBDX * 2));
case GemEncrusted of
'None': begin
xpPerJewelryAction := 25;
CraftedItemValue:= GetItemValue(11069);
end;
'Sapphire': begin
xpPerJewelryAction := 60;
CraftedItemValue:= GetItemValue(11072);
end;
'Emerald': begin
xpPerJewelryAction := 65;
CraftedItemValue:= GetItemValue(11076);
end;
'Ruby': begin
xpPerJewelryAction := 80;
CraftedItemValue:= (11085);
end;
'Diamond': begin
xpPerJewelryAction := 95;
CraftedItemValue:= GetItemValue(11092);
end;
'Dragonstone': xpPerJewelryAction := 110;
end;
end;
end;
end;
procedure AntiBan;
begin
if not(LoggedIn)then
Exit;
case Random(80) of
0: RandomRClick;
1: HoverSkill('Smithing', false);
2: PickUpMouse;
3: begin
RandomMovement;
ClickNorth(SRL_ANGLE_HIGH);
end;
4: HoverSkill('Crafting', false);
5: ExamineInv;
6: RandomRClick;
7: PickUpMouse;
8: RandomMovement;
9: BoredHuman;
10:wait(25000+random(5000));//slight afk, up to 20 seconds after done
end;
end;
procedure RunDebug(Message: String);
begin
if(debugMode=True)then
begin
SMART_DrawTextEx(True, 12,320,LoginChars,Message,3911923);
end;
end;
procedure FreeMyDTMs;
begin
FreeDTM(FurnaceDTM);
FreeDTM(WalkToBankDTM);
FreeDTM(BankDTM);
FreeDTM(WalkToFurnaceDTM);
if(makingJewelry = True) then
begin
FreeDTM(GoldBarDTM);
end;
if(smeltingGold = True) then
begin
FreeDTM(GoldOreDTM);
end;
if not (GemEncrusted = 'None') then
begin
FreeDTM(GemDTM);
end;
end;
procedure FailOutOfCode(message: String);
begin
WriteLn(message);
FreeMyDTMs;
Logout;
TerminateScript;
end;
procedure RunToBank;
var
x, y: integer;
begin
RunDebug('RunToBank method');
if FindDTMRotated(WalkToBankDTM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 2, 2, True);
Wait(1000 + random(50));
while (IsMoving) do (Wait(1));
end;
end;
procedure OpenBankBooth;
var
x, y, Tried: integer;
begin
if (BankScreen)then
begin
Exit;
end;
RunDebug('OpenBankBooth method');
begin
repeat
Inc(Tried);
if(leeching) then
begin
Wait(5000);
end;
//Wait(150 + random(100)); TEMP REMOVAL?
//x := MSCX;
//y := MSCY;
if FindDTMRotated(BankDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 10, 10, True);
Flag;
Wait(1000 + random(100));
end;
until (BankScreen) or (PinScreen) or (Tried > 10);
end;
begin
if PinScreen then
begin
if (Players[CurrentPlayer].Pin <> '')then
begin
InPin(Players[CurrentPlayer].Pin)
end else
begin
FailOutOfCode('No pin given');
end;
end;
end;
end;
function FindEdgeBankerTemp(var fx, fy: Integer): Boolean;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
R, G, B: Integer;
X, Y, Z: Extended;
begin
RunDebug('FindEdgeBankersTemp method');
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.18, 0.63);
if not(FindColorsTolerance(arP, 3745067, MSX1, MSY1, MSX2, MSY2, 13)) then
begin
// Writeln('Failed to find the color, no object found.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
for i := 0 to arL do
begin
ColorToRGB(arC[i], R, G, B);
if (R >= 12) and (R <= 74) and (G >= 9) and (G <= 65) and (B >= 17) and (B <= 96) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 0.36) and (X <= 6.67) and (Y >= 0.33) and (Y <= 5.93) and (Z >= 0.60) and (Z <= 11.63) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
end;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('Banker')) then
begin;
Result := True;
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
begin
// Writeln('FindObject could not find object.');
Exit;
end;
GetMousePos(fx, fy);
end;
function FindEdgeCounterTemp(var fx, fy: Integer): Boolean;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
R, G, B: Integer;
X, Y, Z: Extended;
begin
RunDebug('FindEdgeCountersTemp method');
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.05, 2.21);
if not(FindColorsTolerance(arP, 11721439, MSX1, MSY1, MSX2, MSY2, 12)) then
begin
//Writeln('Failed to find the color, no object found.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
for i := 0 to arL do
begin
ColorToRGB(arC[i], R, G, B);
if (R >= 182) and (R <= 248) and (G >= 179) and (G <= 245) and (B >= 157) and (B <= 215) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 42.00) and (X <= 82.86) and (Y >= 45.16) and (Y <= 89.35) and (Z >= 38.83) and (Z <= 76.50) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
end;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('Counter')) then
begin;
Result := True;
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
begin
//Writeln('FindObject could not find object.');
Exit;
end;
GetMousePos(fx, fy);
end;
procedure OpenBankTemp;
var
x, y: integer;
begin
RunDebug('OpenBankTemp method');
if (FindEdgeBankerTemp(x, y)) then
begin
mouse(x, y, 3, 3, false);
WaitOption('ank B', 500);
FFlag(1);
wait(500+random(150));
if (PinScreen) then InPin(Players[CurrentPlayer].Pin);
end else
begin
if (FindEdgeCounterTemp(x, y)) then
begin
mouse(x, y, 5, 5, true);
FFlag(1);
wait(500+random(150));
if (PinScreen) then InPin(Players[CurrentPlayer].Pin);
end;
end;
wait(500+random(150));
end;
procedure Banking;
var
x, y, Tried, Tried2, InvCountGold: integer;
actionsPerTrip: String;
begin
RunDebug('Banking method');
Tried := 0;
Tried2 := 0;
actionsPerTrip:= IntToStr(actionsPerRun);
repeat
Inc(Tried);
if(Tried > 1) then
begin
ClickNorth(SRL_ANGLE_HIGH);
end;
if(leeching) then
begin
Wait(5000);
end;
OpenBankTemp;
Wait(300 + random(400));
until (BankScreen) or (Tried > 5);
Inc(Tried2);
if(BankScreen)then
begin
DepositAll;
repeat
if (smeltingGold = True) then
begin
if FindDTM(GoldOreDTM, x, y, MBX1, MBY1, MBX2, MBY2)then
begin
Mouse(x, y, 10, 10, false);
Wait(350 + random(150));
end else
begin
FailOutOfCode('Failed to find the gold ores in your bank');
Exit;
end;
end else if(makingJewelry = True) then
begin
if FindDTM(GoldBarDTM, x, y, MBX1, MBY1, MBX2, MBY2)then
begin
Mouse(x, y, 10, 10, false);
Wait(350 + random(150));
end else
begin
FailOutOfCode('Failed to find the gold bars in your bank');
Exit;
end;
end else if (cuttingGems = True) then
begin
if FindDTM(GemDTM, x, y, MBX1, MBY1, MBX2, MBY2)then
begin
Mouse(x, y, 10, 10, false);
Wait(350 + random(150));
end else
begin
FailOutOfCode('Failed to find the gems in your bank');
Exit;
end;
end else
begin
FailOutOfCode('I have no idea what you want to do if not jewelry crafting, gold smelting or gem cutting.');
Exit;
end;
if(firstRun) then
begin
if WaitOptionMulti(['Withdraw-X', 'w-X'], 500) then
begin
ChooseOptionMulti(['Withdraw-X', 'w-X']);
x := 0;
while (x <= 200) and (not (InRange(CountColor(0, 250, 396, 307, 410), 155, 165))) do
begin
Wait(50);
Inc(x);
end;
Wait(100 + random(300));
TypeSend(actionsPerTrip);
end;
firstRun := false;
end else
begin
WaitOptionMulti(['Withdraw-'+actionsPerTrip, 'w-'+actionsPerTrip], 500);
ChooseOptionMulti(['Withdraw-'+actionsPerTrip, 'w-'+actionsPerTrip]);
end;
x:= 0;
while((InvCount = 0) and (x < 100)) do
begin
Wait(50 + random(50));
Inc(x);
end;
until (InvCount > 0) or (Tried2 > 3);
InvCountGold := InvCount;
if(actionsPerRun < 15) then //Only jewelry crafting will grab 2 different items
begin
repeat
if FindDTM(GemDTM, x, y, MBX1, MBY1, MBX2, MBY2)then
begin
Mouse(x, y, 10, 10, false);
Wait(350 + random(150));
end else
begin
FailOutOfCode('Failed to find the gems in your bank');
Exit;
end;
case Random(3) of
0:begin
WaitOptionMulti(['Withdraw-14', 'w-14'], 500);
ChooseOptionMulti(['Withdraw-14', 'w-14']);
end;
1:begin
WaitOptionMulti(['Withdraw-All', 'w-A'], 500);
ChooseOptionMulti(['Withdraw-All', 'w-A']);
end;
2:begin
WaitOptionMulti(['Withdraw-All but', 'l b'], 500);
ChooseOptionMulti(['Withdraw-All but', 'l b']);
end;
3:begin
WaitOptionMulti(['Withdraw-14', 'w-14'], 500);
ChooseOptionMulti(['Withdraw-14', 'w-14']);
end;
end;
x:= 0;
while((InvCount = InvCountGold) and (x < 100)) do
begin
Wait(50);
Inc(x);
end;
until (InvCount > InvCountGold) or (Tried2 > 6);
end;
end;
if(Tried > 5)then
begin
FailOutOfCode('Failed to open bank');
end;
if(Tried2 > 6)then
begin
FailOutOfCode('Failed to find Gold or Gem')
end;
end;
procedure RunToFurnace;
var
x, y: integer;
begin
if not(InvCount = 28)then
begin
Exit;
end;
RunDebug('RunToFurnace method');
if FindDTMRotated(WalkToFurnaceDTM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 2, 2, True);
Wait(1000 + random(100));
while (IsMoving) do (Wait(1));
end;
end;
function BarsInInv: Boolean;
var
x, y: integer;
begin
if(leeching) then
begin
Wait(5000);
end;
if FindDTM(GoldBarDTM, x, y, MIX1, MIY1, MIX2, MIY2)then
begin
Result := True;
end;
end;
function IsWorking: Boolean;
begin
if((CountColor(855309, ABX1, ABY1, ABX2, ABY2) + CountColor(3750201, ABX1, ABY1, ABX2, ABY2)) > 6000) then
begin
Result := True;
end;
end;
procedure SelectFurnace(Count: integer);
var
x, y: integer;
begin
RunDebug('SelectFurnace method');
if(leeching) then
begin
Wait(5000);
end;
if FindDTMRotated(FurnaceDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 10, 10, true);
Wait(1500 + random(100));
while(IsMoving) do (Wait(1));
x:= 0;
while ((x < 200) and (CountColor(3911923, CMSX1, CMSY1, CMSX2, CMSY3) < 80)) Do
begin
wait(50);
Inc(x);
end;
if(x = 200) then begin
if(Count > 2) then begin
FailOutOfCode('Was looking for furnace and failed to open it.');
end;
RunToFurnace;
Inc(Count);
SelectFurnace(Count);
end;
end else
begin
WriteLn('Failed to find furnace, exiting');
Exit;
end;
end;
procedure Craft(Count: integer);
var
x, color: integer;
begin
if(Count > 3) then
begin
FailOutOfCode('Could not complete a crafting attempt.');
Exit;
end;
SelectFurnace(0);
RunDebug('Craft method');
if(GemEncrusted = 'Dragonstone') then
begin
end else begin
x:=0;
if(CountColor(3911923, CMSX1, CMSY1, CMSX2, CMSY3) < 90) then
begin
WriteLn('Crafting screen never opened for some reason');
Exit;
end;
//While bar at bottom, 101 is read on top, 353 read on bottom
//While bar at top, 355 is read on top, 98 read on bottom
while ((CountColor(3911923, CMSX1, CMSY1, CMSX2, CMSY3) < 340) and (x < 200)) Do
begin
Inc(x);
Mouse(RandomRange(CMSX1, CMSX2), (CMSY1 + Random(40)), 0, 0, true);
wait(50);
end;
Mouse(RandomRange(CBXMin, CBXMin), RandomRange(CBYMin, CBYMin), 0, 0, true);
x := 0;
color:= 0;
while ( not (SimilarColors(color, 1290732, 10)) and (x < 100)) do
begin
color:= GetColor(CBXMin, CBYMin);
wait(50+random(50));
Inc(x);
end;
if(x >= 100) then
begin
FailOutOfCode('Could not select desired jewelry craft.');
end;
end;
//Initialize Crafting
Mouse(371, 313, 112, 11, true);
Wait(1000 + random(100));
if (IsWorking)then
begin
repeat
begin
Stuck := 0;
AntiBan;
Wait(2500 + random(1000));
end;
until (IsWorking = False);
end else
begin
RunToFurnace;
SelectFurnace(0);
Inc(Count);
Craft(Count);
end;
end;
procedure Smith(Count: integer);
begin
if(Count > 3) then
begin
FailOutOfCode('Could not complete a smithing attempt.');
Exit;
end;
SelectFurnace(0);
RunDebug('Smith method');
if(CountColor(3911923, CMSX1, CMSY1, CMSX2, CMSY3) < 90) then
begin
WriteLn('Smithing screen never opened for some reason');
Exit;
end;
Mouse(371, 313, 112, 11, true);
Wait(1000 + random(100));
if (IsWorking)then
begin
repeat
begin
Stuck := 0;
AntiBan;
Wait(2500 + random(1000));
end;
until (IsWorking = False);
end else
begin
RunToFurnace;
SelectFurnace(0);
Inc(Count);
Smith(Count);
end;
end;
//Only left clicks your gems, doesn't do anything else yet.
procedure CutGems;
var
x, y: integer;
begin
RunDebug('CutGems method');
if FindDTM(GemDTM, x, y, MIX1, MIY1, MIX2, MIY2)then
begin
Mouse(x, y, 10, 10, true);
Wait(650 + random(150));
end else
begin
WriteLn('Failed to find the gems, exiting');
Exit;
end;
end;
procedure PreggyProgress;
var
CraftExp, SmithExp, SmithExpHr, CraftExpHr, TimeRan, ItemsCrafted, ItemsCraftedHr, GoldLost, GoldEarned, GoldChange, GoldChangeHour: integer;
GemType: String;
CraftExpPerAction: Double;
begin
TimeRan := ((1 + GetSystemTime - TimeBegan) / 1000);
ItemsCrafted := Round(runs * actionsPerRun);
ItemsCraftedHr := Round((ItemsCrafted * 3600) / (TimeRan));
CraftExpPerAction := xpPerJewelryAction + xpPerGemAction;
CraftExp := Round(ItemsCrafted * CraftExpPerAction);
CraftExpHr := Round((CraftExp * 3600) / (TimeRan));
SmithExp := Round(ItemsCrafted * xpPerSmeltingAction);
SmithExpHr := Round((SmithExp * 3600) / (TimeRan));
if(smeltingGold = True)then
begin
GoldLost:= ((GoldOreValue - GoldBarValue) * ItemsCrafted);
end;
if(makingJewelry = True) then
begin
GoldEarned:= ((CraftedItemValue - CutGemValue - GoldBarValue) * ItemsCrafted);
end;
GoldChange:= (GoldEarned - GoldLost);
GoldChangeHour:= Round((GoldChange * 3600) / TimeRan);
if(GemEncrusted = 'None') then
begin
GemType := '';
end else begin
GemType := GemEncrusted + ' ';
end;
ClearDebug;
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*Kevin''s Edgeville Crafter.');
WriteLn('*Time elapsed: ' + TimeRunning);
if(makingJewelry=True) or (cuttingGems=True) then
begin
WriteLn('*We have gained ' + IntToStr(CraftExp) + ' Craft Experience! (' + IntToStr(CraftExpHr) + ' per hour)');
WriteLn('*We have crafted ' + IntToStr(ItemsCrafted) + ' ' + GemType + CraftingWhat + 's! (' + IntToStr(ItemsCraftedHr) + ' per hour)');
WriteLn('*We have earned ' + IntToStr(GoldEarned) + ' gold crafting!');
end;
if(smeltingGold=True) then
begin
WriteLn('*We have gained ' + IntToStr(SmithExp) + ' Smithing Experience! (' + IntToStr(SmithExpHr) + ' per hour)');
WriteLn('*We have smelted ' + IntToStr(ItemsCrafted) + ' gold bars! (' + IntToStr(ItemsCraftedHr) + ' per hour)');
WriteLn('*We have spent ' + IntToStr(GoldLost) + ' gold on smelting!');
end;
WriteLn('*We have gone: ' + IntToStr(runs) + ' trips of a total of ' + IntToStr(goalRuns) + ' goal trips!');
WriteLn('*Our total monetary change is: ' + IntToStr(GoldChange) + ' gold (' + IntToStr(GoldChangeHour) + ' gold per hour)!');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
if(runs >= goalRuns) then
begin
doneRunning := True;
end;
end;
begin
SRL_SixHourFix := True;
Smart_FixSpeed := True;
UserSettings;
SetupVariables;
Addonterminate('FreeMyDTMs');
leeching := True;
SetUpSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
ToggleMoneyPouch(False);
ToggleXPBar(True);
StartingXP := (GetXPBarTotal);
TimeBegan := GetSystemTime;
ExitSquealOfFortune();
ClickNorth(SRL_ANGLE_HIGH);
repeat
if not (LoggedIn)then
begin
TerminateScript;
end;
FindSpinTicket();
Inc(Stuck);
RunToBank;
Banking;
RunToFurnace;
if(smeltingGold = True) then
begin
Smith(0);
end;
if(makingJewelry = True)then
begin
Craft(0);
end;
Inc(runs);
Proggy;
if(leeching = True) then
begin
Wait(5000);
end;
if(doneRunning = True) then
begin
RunDebug('');
FailOutOfCode('Goal accomplished!');
end;
if (Stuck > 3)then
begin
FailOutOfCode('We are stuck on something, logging out')
end;
until(AllPlayersInactive);
end.