SRL Archive - OSR Help

Unfinished Script- Compiles But Doesn't Work


Joe

2012-05-15 21:09:26

So I made this to see if making a crafting script was my thing, but unfortunately it's not. The scripting is just too… wierd?
I just don't like the feel of it, and after spending a bit of time on it, I just dislike it even more. It's just not my thing. If you want to finish it, change it, borrow something from it- anything! Go ahead! Just give credit. So yeah here it is. If you know the error (which I'm pretty sure is just the DTMs I used) then go ahead and post it, but I don't think I'm going to be pursuing this much further.

For those of you who may think I got members and became a leech, this is what I have been doing (along with a different script as well).

program JOEbotsUrns;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i ObjectDTM\ObjDTMInclude.simba} // Primary Walking Function
{$i sps/sps.simba} // Backup Walking System - Except in Rockwalk

{
*******************************************************************************
* REQUIREMENTS *
* 1. 40 Crafting Level or higher *
* 2. Brown Apron equipped (Or the script can't do anything) *
* 3. A pickaxe in the INVENTORY *
* 4. Clan vexillum wielded *
* 5. Ring of Kinship equipped *
* 6. ODTM Include downloaded *
*******************************************************************************
}

// This is my first dry run in the Crafting Guild, after this I'll be reviving cause's Crafting Guild script
// This script is 100% JOEbot- feel free to use anything as long as you give credit
// This script makes Clay Urns in the Rimmington Crafting Guild and Banks them in Daemonheim
// Please post anything related to the script on the original thread

const
Which = 'Mining';
Kind = 'Cracked'; // Right now only Normal Urn Support

{================================ ! FILL THIS OUT ! ==========================================}
{=============================================================================================}
{_____________________________________________________________________________________________}
{=============================================================================================}
{=============================================================================================}
procedure DeclarePlayers; // Login information. You want to play, dont you? Fancy Shmancy
begin
HowManyPlayers := 2; // You can add more if you want, Just copy and paste a Player Section and write a different number in the [0], [1], [2] Box
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // Starts at Players[0]


with Players[0] do
begin
Name := ''; // Enter your username in the blue things
Pass := ''; // Enter your password in the blue things
Nick := '';
Pin := '';
Active := True;
BoxRewards := ['Xp', 'ostume', 'aphire'];
end;

with Players[1] do // Multiplayer!
begin
Name := ''; // Enter your username in the blue things
Pass := ''; // Enter your password in the blue things
Nick := '';
Pin := '';
Active := True;
BoxRewards := ['Xp', 'ostume'];
end;
end;
{=============================================================================================}
{=============================================================================================}
{_____________________________________________________________________________________________}
{=============================================================================================}
{=============================================================================================}

procedure NewAntiBanJoe; // This is a new, completely original, custom antiban by me- JOEbot
begin
if(not LoggedIn) then Exit;
case Random(500) of // For increased randomness

'10' :
begin
TypeSend('Mining lvls?');
end;

'25' :
begin
TypeSend('Craft lvls?');
end;

'31' :
begin
TypeSend('Crafting levels?');
end;

'32' :
begin
TypeSend('Mining levels?');
end;

'47' :
begin
TypeSend('What are you crafting? Im making urns');
end;

'54' :
begin
TypeSend('lolol');
end;

'400' :
begin
TypeSend('My Crafting Level is 99.');
end;

end;
end;


procedure iNotBanned;
begin
if(not LoggedIn) then Exit;
case Random(250) of

10:
begin
SetAngle(SRL_ANGLE_HIGH);
Hoverskill('Mining', False);
wait(1551+Random(2111));
end;

20:
begin
SetAngle(SRL_ANGLE_HIGH);
Hoverskill ('Crafting', False);
wait(1661+Random(2221));
end;

30:
begin
Hoverskill ('Magic', False);
wait(1771+Random(2331));
end;

40: RandomRClick;


50: PickUpMouse;


end;
end;

procedure AntiRandoms;
begin
FindNormalRandoms;
LampSkill := 'Crafting';
LevelUp;
end;

// Thanks to PatDuffy (D.U.R.P Urns) and Kyle Undefined for the function!
function FindSelection(text: String): Boolean;
var
x, y : Integer;
begin
if FindTextTpaEx(2070783, 0, MCX1, MCY1, MCX2, MCY2, x, y, text, statchars, Nothing) then
begin
Mouse(x, y, 5, 5, mouse_Left);
Wait(RandomRange(150, 350));
Result := True;
end;
end;

// Idea derived from PatDuffy's D.U.R.P Urns
procedure CraftSetup;
begin
case Which of
'Mining' :
begin
FindSelection('inin');
end;

'Smithing' :
begin
FindSelection('melt');
end;

'Fishing' :
begin
FindSelection('ishi');
end;

'Woodcutting' :
begin
FindSelection('Woo');
end;

'Prayer' :
begin
FindSelection('raye');
end;

end;
end;

procedure UrnTypeSetup;
begin
case Kind of
'Cracked' :
begin
FindSelection('rack');
end;

'Fragile' :
begin
FindSelection('ragi');
end;

{'Normal' :
begin
NormalUrn; // Needs a DTM or seperate Procedure
end;}

end;
end;

procedure SinkWalk; // Walks from the "Mine" to the Sink
var
myPath:TPointArray;
cx, cy: Integer;

begin
if(not(LoggedIn))then Exit;
iNotBanned;
AntiRandoms;
if ObjDTM_Find ('63:93:4:0:7:52:84:5:7:81:101:5:7:85:66:1:7:105:81:5:35:74:97:43:127:84:87:120:35:111', cx, cy, True) then
begin
WriteLn('Walking to the Sink [ODTM]');
ObjDTM_Walk('63:93:4:0:7:52:84:5:7:81:101:5:7:85:66:1:7:105:81:5:35:74:97:43:127:84:87:120:35:111', 2, 102, 8, True);
end else

begin
WriteLn('Walking to the Sink [SPS]');
SPS_Setup(RUNESCAPE_SURFACE, ['8_8']);
myPath := [Point(3594, 3529), Point(3584, 3530), Point(3574, 3534)];
end;
end;

procedure WheelWalk; // Walks from the Sink to the Wheel
var
myPath:TPointArray;
cx, cy: Integer;

begin
if(not(LoggedIn))then Exit;
iNotBanned;
AntiRandoms;
if ObjDTM_Find ('72:63:4:0:7:52:84:1:7:105:81:5:7:81:101:5:7:85:66:6:33:71:80:43:117:64:117:101:87:129:43:129', cx, cy, True) then
begin
WriteLn('Walking to the Sink [ODTM]');
ObjDTM_Walk('72:63:4:0:7:52:84:1:7:105:81:5:7:81:101:5:7:85:66:6:33:71:80:43:117:64:117:101:87:129:43:129', 2, 102, 8, True);
end else

begin
WriteLn('Walking to the Sink [SPS]');
SPS_Setup(RUNESCAPE_SURFACE, ['8_8']);
myPath := [Point(3571, 3536), Point(3574, 3528), Point(3577, 3519), Point(3583, 3502)];
end;
end;

procedure FurnaceWalk; // Walks from the Wheel to the Furnace
var
myPath:TPointArray;
cx, cy: Integer;

begin
if(not(LoggedIn))then Exit;
iNotBanned;
AntiRandoms;
if ObjDTM_Find ('46:62:4:0:7:52:84:1:7:51:37:1:7:73:32:1:7:85:35:5:32:33:86:19:104:53:59:106:26:70', cx, cy, True) then
begin
WriteLn('Walking to the Furnace [ODTM]');
ObjDTM_Walk('46:62:4:0:7:52:84:1:7:51:37:1:7:73:32:1:7:85:35:5:32:33:86:19:104:53:59:106:26:70', 2, 102, 8, True);
end else

begin
WriteLn('Walking to the Furnace [SPS]');
SPS_Setup(RUNESCAPE_SURFACE, ['8_8']);
myPath := [Point(3583, 3502), Point(3580, 3513), Point(3573, 3518), Point(3560, 3513), Point(3554, 3500)];
end;
end;

procedure BankerWalk; // From the default Daemonheim Teleport to the Fremenik Banker
var
myPath:TPointArray;
cx, cy: Integer;

begin
if(not(LoggedIn))then Exit;
iNotBanned;
AntiRandoms;
if ObjDTM_Find ('104:35:3:10:7:57:66:10:7:73:66:5:7:47:70:4:91:28:26:73:103:79:116:28', cx, cy, True) then
begin
WriteLn('Walking to the Fremenik Banker [ODTM]');
ObjDTM_WalkPath(['104:35:3:10:7:57:66:10:7:73:66:5:7:47:70:4:91:28:26:73:103:79:116:28','79:34:4:6:7:56:38:6:7:105:39:10:7:73:24:10:7:90:24:4:46:15:111:11:128:57:28:65'], 2, 102, 8, True, True);
end else

begin
WriteLn('Walking to the Fremenik Banker [SPS]');
SPS_Setup(RUNESCAPE_SURFACE, ['14_4']);
myPath := [Point(5638, 1796), Point(5636, 1783), Point(5633, 1773), Point(5631, 1764)];
end;
end;

procedure GuildWalk; // From the default Vexillum Teleport to the Crafting Guild
var
myPath:TPointArray;
cx, cy: Integer;

begin
if(not(LoggedIn))then Exit;
iNotBanned;
AntiRandoms;
begin
if ObjDTM_Find ('25:35:5:10:7:87:54:10:7:62:41:1:7:23:68:1:7:11:89:1:7:62:125:5:21:32:81:40:113:76:62:147:8:97', cx, cy, True) then
begin
WriteLn('Walking to the Crafting Guild [ODTM]');
ObjDTM_WalkPath (['25:35:5:10:7:87:54:10:7:62:41:1:7:23:68:1:7:11:89:1:7:62:125:5:21:32:81:40:113:76:62:147:8:97', '10:59:5:10:7:120:89:5:7:23:104:1:7:44:55:1:7:61:33:1:7:24:71:4:8:56:67:18:134:95:17:118', '71:111:4:1:7:62:92:1:7:86:87:1:7:99:90:5:7:98:123:5:52:96:53:70:118:75:114:135:49:131'], 2, 102, 8, True, True);
end else

begin
WriteLn('Walking to the Crafting Guild [SPS]')
SPS_Setup(RUNESCAPE_SURFACE, ['9_8','8_8']);
myPath := [Point(3696, 3508), Point(3671, 3510), Point(3658, 3500), Point(3643, 3481), Point(3629, 3469), Point(3615, 3449), Point(3594, 3449), Point(3579, 3458), Point(3569, 3469), Point(3572, 3481), Point(3569, 3497)];
end;
end;
end;

procedure RockWalk; // Walks from the Crafting Guild door to the centre of the "Mine"
var
myPath:TPointArray;
cx, cy: Integer;

begin
if(not(LoggedIn))then Exit;
iNotBanned;
AntiRandoms;
if ObjDTM_Find ('82:82:5:0:7:51:84:1:7:110:63:1:7:106:82:5:7:85:66:5:7:81:94:5:35:75:96:41:128:71:119:114:46:117', cx, cy, True) then
begin
WriteLn('Walking to the Rocks [ODTM]');
ObjDTM_Walk('82:82:5:0:7:51:84:1:7:110:63:1:7:106:82:5:7:85:66:5:7:81:94:5:35:75:96:41:128:71:119:114:46:117', 2, 102, 8, True);
end else

begin
WriteLn('Walking to the Rocks [SPS]')
SPS_Setup(RUNESCAPE_SURFACE, ['8_8']);
myPath := [Point(3568, 3510), Point(3571, 3517), Point(3578, 3526), Point(3598, 3525)];
end;
end;

procedure Miner; // TPA to find and click the Clay
var
tmpCTS, CTS, I, x ,y: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;

begin
if(not(LoggedIn))then Exit;
if (InvFull) then Exit;
begin
GameTab(Tab_Inv);
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.09, 2.86);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 7058906, MSX1, MSY1, MSX2, MSY2, 14);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 3, 3);

for I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
begin
clickMouse2(false);
chooseoption('ine');
if (DidRedClick) then
Wait(2000 + Random(500)); // You should be able to get Clay by this time
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.22, 0.22);
end;
end;
end;
end;

procedure WetClay; // Makes wet Clay
var
x,y, Sink, dClay: Integer;
GetIt: Extended;

begin
Sink := DTMFromString('mGQAAAHicY2RgYPgBxM+BuGfTfwYmIM0IxAwAPmEEIQ==');
dClay := DTMFromString('mLgAAAHicY2JgYHBgYmCwB2JORgYGNiCeUhvE0FPqxQADjFDMwAAAVYoDRw==');
if(not(LoggedIn))then Exit;
begin
SinkWalk;
if (FindSymbol(x,y,'fountain')) then
GameTab(Tab_Inv);
if FindDTMRotated(Sink, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, GetIt) then
begin
FindDTMRotated(dClay, x, y, MIX1, MIY1, MIX2, MIY2, -Pi/4, Pi/4, Pi/60, GetIt);
MMouse(x,y,1,1);
ClickMouse2(False);
ChooseOption('se');
FindDTMRotated(Sink, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, GetIt);
MMouse(x,y,1,1);
ClickMouse2(True);
end;
end;
end;

// Right now only makes Normal Urns- no cracked or fragiles
procedure Craft; // Makes Urns at the Pottery Wheel
var
x,y, Wheel, BoxUrn: Integer;
GetIt: Extended;

begin
BoxUrn := DTMFromString('mLgAAAHicY2JgYEhlZGAoB+JZUHxtlgTDnEIBBhhghGIGBgCI1QS+'); // For Normal Urn
Wheel := DTMFromString('mLgAAAHicY2JgYAhgZGDwAOK9QPZpIJ4zbQpDdaQhAwwwQjEDAwCLrQTy');
if(not(LoggedIn))then Exit;
begin
Wheelwalk;
GameTab(Tab_Inv);
if FindDTMRotated(Wheel, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, GetIt) then
begin
MMouse(x,y,1,1);
ClickMouse2(False);
ChooseOption('orm');
if (DidRedClick) then
Wait(1000 + Random(1500));
FindDTMRotated(BoxUrn, x, y, MCX1, MCY1, MCX2, MCY2, -Pi/4, Pi/4, Pi/60, GetIt);
MMouse(x,y,1,1);
ClickMouse2(True);
Wait(15000 + Random(1500));
end;
end;
end;

procedure Bake; // Fires the Urns
var
x,y, Furnace, wUrn: Integer;
GetIt: Extended;

begin
Furnace := DTMFromString('mLgAAAHicY2JgYBBkZGCQBmJ7INsTiKt9nRgMDQwZYIARihkYAD7NAlc=');
wUrn := DTMFromString('mLgAAAHicY2JgYChmYmDIBOJnQPZbIHYy4GBwMpFggAFGKGZgAAB18APA');
if(not(LoggedIn))then Exit;
begin
FurnaceWalk;
GameTab(Tab_Inv);
if FindDTMRotated(Furnace, x, y, MSX1, MSY1, MIX2, MSY2, -Pi/4, Pi/4, Pi/60, GetIt) then
begin
FindDTMRotated(wUrn, x, y, MIX1, MIY1, MIX2, MIY2, -Pi/4, Pi/4, Pi/60, GetIt);
MMouse(x,y,1,1);
ClickMouse2(False);
ChooseOption('se');
FindDTMRotated(Furnace, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, GetIt)
MMouse(x,y,1,1);
ClickMouse2(True);
if (DidRedClick) then
Wait(15000 + Random(1500));
end;
end;
end;

procedure Bank; // Banks the Urns
var
x,y, Banker, Urn: Integer;
GetIt: Extended;

begin
Banker := DTMFromString('mLgAAAHicY2JgYLgPxI+BuAeIZwKxoWsyQ5CvFwMMMEIxAwMAk4wErg==');
Urn := DTMFromString('mLgAAAHicY2JgYEhmYmAoAuIXQPZjIM4O1WSYUmrJAAOMUMzAAACNkgTU');
if(not(LoggedIn))then Exit;
begin
BankerWalk;
GameTab(Tab_Inv);
if FindDTMRotated(Banker, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, GetIt) then
repeat
MMouse(x,y,1,1);
ClickMouse2(False);
ChooseOption('ank');
if (DidRedClick) then
Wait(1500 + Random(1500));
until(BankScreen or PinScreen);

if(PinScreen) then
begin
InPin(Players[0].Pin);
end;

if (BankScreen) then
FindDTMRotated(Urn, x, y, MIX1, MIY1, MIX2, MIY2, -Pi/4, Pi/4, Pi/60, GetIt);
MMouse(x,y,1,1);
ClickMouse2(False);
ChooseOption('eposit-all');

CloseBank;
Wait(2000 + Random(1500));
WriteLn('We banked some Urns, now lets do it again');

end;
end;

procedure DaemonheimTele; // Teleports to Daemonheim using the Ring of Kinship
var
x,y, Ring: Integer;
GetIt: Extended;

begin
Ring := DTMFromString('mQwAAAHicY2ZgYNjAxMCwHYj3A3EtIwNDMRCXA7GTjSbD+/MtDP99FRmQASMSBgIAVV8H8w==');
if(not(LoggedIn))then Exit;
if (InvFull) then
begin
GameTab(Tab_Equip);
if FindDTMRotated(Ring, x, y, MIX1, MIY1, MIX2, MIY2, -Pi/4, Pi/4, Pi/60, GetIt) then
begin
MMouse(x,y,1,1);
ClickMouse2(False);
ChooseOption('elepor');
Wait(5000 + Random(1500));
end;
end;
end;

procedure VexTele; // Teleports to the Clan Camp using the Vexillum
var
x,y, Vex: Integer;
GetIt: Extended;

begin
Vex := DTMFromString('mQwAAAHicY2ZgYHBiYmDwAWI3IFZhZGBQA2J9IHbynQLEcxg0dTQZkAEjEgYCAKrqBCk=');
if(not(LoggedIn))then Exit;
if (invEmpty) then
begin
GameTab(Tab_Equip);
if FindDTMRotated(Vex, x, y, MIX1, MIY1, MIX2, MIY2, -Pi/4, Pi/4, Pi/60, GetIt) then
begin
MMouse(x,y,1,1);
ClickMouse2(False);
ChooseOption('elepor');
Typesend('1');
Wait(5000 + Random(1500));
end;
end;
end;

procedure OpenDoor; // Opens the Crafting Guild door
var
x,y, Door: Integer;
GetIt: Extended;

begin
Door := DTMFromString('mQwAAAHicY2ZgYGBhZGD4BqSFgbQ6FKsCcZQjB4OXCQdDcaQiAytQHoYZkTAQAACdFgOx');
if(not(LoggedIn))then Exit;
if (invFull) then Exit;
begin
if FindDTMRotated(Door, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, GetIt) then
begin
MMouse(x,y,1,1);
ClickMouse2(False);
ChooseOption('pen');
if (DidRedClick) then
Wait(5000 + Random(1500));
end;
end;
end;

procedure CraftLoop; // Loop for making Urns
begin
if(not(LoggedIn))then Exit;
if (invFull) then
begin
WetClay;
Craft;
Bake;
end;
end;

procedure BankLoop; // Loop for Banking
begin
if(not(LoggedIn))then Exit;
if (invFull) then
begin
repeat
DaemonheimTele;
BankerWalk;
Bank;
until (invEmpty);
end;
end;

procedure BackLoop; // Loop for going back to the Guild
begin
if(not(LoggedIn))then Exit;
if (invEmpty) then
begin
VexTele;
GuildWalk;
OpenDoor;
RockWalk;
end;
end;

begin
Smart_server := 11;
Smart_Signed := TRUE;
Smart_Members := FALSE;
Smart_SuperDetail := FALSE;

SetupSRL;
ObjDTM_Setup;
DeclarePlayers;
LoginPlayer;
Wait(2000);
GameTab(tab_Inv);

if (not(LoggedIn)) then
if Players[CurrentPlayer].Active then
LoginPlayer;

repeat
repeat
Miner;
CraftLoop;
BankLoop;
BackLoop;
until (not LoggedIn);
NextPlayer(Players[CurrentPlayer].Active = False);
until AllPlayersInactive;
end.

// ****************************** ObjDTM Log *****************************************
{'82:82:5:0:7:51:84:1:7:110:63:1:7:106:82:5:7:85:66:5:7:81:94:5:35:75:96:41:128:71:119:114:46:117' // Center Mine
'63:93:4:0:7:52:84:5:7:81:101:5:7:85:66:1:7:105:81:5:35:74:97:43:127:84:87:120:35:111' // Sink
'72:63:4:0:7:52:84:1:7:105:81:5:7:81:101:5:7:85:66:6:33:71:80:43:117:64:117:101:87:129:43:129' // Wheel
'46:62:4:0:7:52:84:1:7:51:37:1:7:73:32:1:7:85:35:5:32:33:86:19:104:53:59:106:26:70' // Furnace
['104:35:3:10:7:57:66:10:7:73:66:5:7:47:70:4:91:28:26:73:103:79:116:28', '79:34:4:6:7:56:38:6:7:105:39:10:7:73:24:10:7:90:24:4:46:15:111:11:128:57:28:65'] // Daemonheim
['25:35:5:10:7:87:54:10:7:62:41:1:7:23:68:1:7:11:89:1:7:62:125:5:21:32:81:40:113:76:62:147:8:97', '10:59:5:10:7:120:89:5:7:23:104:1:7:44:55:1:7:61:33:1:7:24:71:4:8:56:67:18:134:95:17:118', '71:111:4:1:7:62:92:1:7:86:87:1:7:99:90:5:7:98:123:5:52:96:53:70:118:75:114:135:49:131'] // Vex Walk
}

Enjoy!

John

2012-05-16 01:11:39

Are you starting it in the right place? Being your script i'm guessing you are?
Add lots of debug and try run it, It helps Immensely.

J J

2012-05-16 04:25:58

Compiles for me aswell
if ObjDTM_Find ('25:35:5:10:7:87:54:10:7:62:41:1:7:23:68:1:7:11:89:1:7:62:125:5:21:32:81:40:113:76:62:147:8:97', cx, cy, True) then
begin
WriteLn('Walking to the Crafting Guild [ODTM]');
ObjDTM_WalkPath (['25:35:5:10:7:87:54:10:7:62:41:1:7:23:68:1:7:11:89:1:7:62:125:5:21:32:81:40:113:76:62:147:8:97', '10:59:5:10:7:120:89:5:7:23:104:1:7:44:55:1:7:61:33:1:7:24:71:4:8:56:67:18:134:95:17:118', '71:111:4:1:7:62:92:1:7:86:87:1:7:99:90:5:7:98:123:5:52:96:53:70:118:75:114:135:49:131'], 2, 102, 8, True, True);
end else
The spaces after calling ObjDTMFind might mess it up?
That's all I could find when scrolling through the script - script wise. Otherwise it might be something inside the script, using tree's that randomly change position or something like that, it happens thanks to Jagex.

For those of you who may think I got members and became a leech, this is what I have been doing (along with a different script as well).

Don't think you need to worry about that ;)

Anyways, I will check it out when I get back from school after my final exam #3.. and test the actual script running. Who knows xD

punkd

2012-05-16 05:27:30

I'll take a look through this in the morning and send you a fix so You can release it.