SRL Archive - OSR Help

"Lodestoneteleport" Slow Clicking?


NoUserName

2012-06-05 19:14:19

Hey all been using Lodestoneteleport('Draynor Village'); but it seams to take forever to actually teleport like a min (just the clicking off the location on the loadestone screen but it just hovers over it and keeps jerking as if it wants to click (mouseclick2 kind off jerking) but it dose not finish its task if your with me

anyone else get this?

below is my teleport procedure


procedure tel(Location : string);
var
HomeDTM, x, y, i, p, t: Integer;
begin
if (GameTab(28) = False) then
begin
GameTab(28);
end;
MarkTime(t);
HomeDTM := DTMFromString('m1gAAAHic42JgYGhnhuAJUNwL5TcDcR0QN0DFtjMyMKwD4q1AvBOI9wLxASDeD8Q7gHgTEG8E4n1HPjG0zblBEIswEAcYicQIAAA5ASEJ');
repeat
If LodestoneScreen then
begin
repeat
Lodestoneteleport(Location);
Wait(RandomRange(500, 500));
DebugText('[Debug Message]- Teleporting!');
if FindSymbol(x, y,'lodestone') then
begin
p:=p+1;
DebugText('[Debug Message]- Load Stone Found!');
exit;
end;
until(p=1)
if TimeFromMark(t) > 20000 then
begin
repeat
if (FindSymbol(x, y,'lodestone')) then
begin
if FindDTM(HomeDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
mmouse (x, y, 7, 7);
ClickMouse2(mouse_left);
Writeln('Found Home Redo!');
Wait(RandomRange(100, 100));
end;
end;
until(LodestoneScreen) or (FindSymbol(x, y,'lodestone'))
end;
end else
if FindDTM(HomeDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
if (FindSymbol(x, y,'lodestone')) then
begin
exit;
end;
mmouse (x, y, 7, 7);
ClickMouse2(mouse_left);
Writeln('Found Home!');
Wait(RandomRange(100, 100));
end else
begin
Writeln('Error Finding Home DTM');
i:=i+1;
end;
until(i=4)or (p=1);
FreeDTM(HomeDTM);
end;

Mezzanine

2012-06-27 22:47:58

I tried using the LodestoneTeleport and it seems to be broken for me as well, so I figured I'd make a procedure that did it.

procedure DraynorHomeTele;
begin
GameTab(tab_Magic)
Mouse(575, 229, 5, 5, mouse_left)
Repeat
Wait(100)
Until(LodestoneScreen)
Mouse(308, 208, 5, 5, mouse_left)
end;

Just using on-screen coords since the two icons are static. If you still wanted to check that you were in Draynor you could use an objectDTM and just make the area around the Lodestone at Draynor.

Element17

2012-06-28 01:17:26

I'm not sure what your asking? Sorry if I missed something, but a way to check if you teleported is SPS_GetMyPos.

This is part of a function that should work…untested but it compiles.

Function SPS_InArea: Boolean;
var
MyPos: TPointArray;
i: Integer;
Begin
MyPos := [Point(290,850)]; //Put SPS Points in here
Writeln(SPS_GetMyPos);
If MyPos[i] = SPS_GetMyPos Then
Result := True;
Exit;
End;

x[Warrior]x3500

2012-06-28 01:26:24

this is what i used to use:


program new;
{$DEFINE SMART}
{$I SRL/SRL.simba}
{$I SRL/SRL/Skill/magic.simba}

function homeTeleport(loc:String):boolean;
var
locBox: TBox;
x, y, DTM, failSafeTime: integer;
arP: TPointArray;
begin
result:=false;
DTM := DTMFromString('mggAAAHicY2NgYDBgZmAwAWJdINaB0iCx50C5R1D8DIjfAvEHIFZWVmC49+gJCjbT12GQAMqxY8EsQMyEBUMAAI1dEnE=');
case loc of
'Bandit Camp': locBox:=inttoBox(315, 287, 335, 301);
'Al Kharid': locBox:=inttoBox(353, 215, 371, 238);
'Varrock': locBox:=inttoBox(339, 170, 353, 189);
'Lumbridge': locBox:=inttoBox(319, 233, 335, 248);
'Draynor Village': locBox:=inttoBox(300, 201, 316, 217);
'Edgeville': locBox:=inttoBox(284, 146, 299, 170);
'Port Sarim': locBox:=inttoBox(266, 236, 284, 260);
'Falador': locBox:=inttoBox(269, 193, 285, 212);
'Taverley': locBox:=inttoBox(242, 167, 261, 188);
'Burthorpe': locBox:=inttoBox(244, 133, 259, 157);
'Catherby': locBox:=inttoBox(214, 170, 231, 189);
'Seers Village': locBox:=inttoBox(182, 149, 199, 168);
'Ardougne': locBox:=inttoBox(158, 200, 177, 220);
'Yanille': locBox:=inttoBox(150, 250, 169, 273);
'Lunar Isle': locBox:=inttoBox(35, 68, 55, 86);
end;
cast('lumbridge home teleport',false);
markTime(failSafeTime);
repeat
wait(50+random(100));
until(CountColor(12378347, MSX1, MSY1, MSX2, MSY2) > 400) or (timeFromMark(failSafeTime)>10000);
wait(600+random(400));
if(CountColor(12378347, MSX1, MSY1, MSX2, MSY2) > 400)then
begin
if(not(finddtm(dtm, x, y,locBox.x1, locBox.y1, locBox.x2, locBox.y2))) then
begin
mouse((locBox.x2+locBox.x1)/2,(locBox.y2+locBox.y1)/2,3,3,true);
result:=true;
end else
mousebox(495,31,501,37,mouse_Left);
end;
freeDtm(dtm);
end;

begin
Smart_Server := 87;
setupsrl;
homeTeleport('Yanille');

end.

ssshhhaaa

2012-06-28 02:50:40

I use this to use the previous button on the lodestone button. This has never failed me, works 100%.
This function teleports to the previous place you teleported to using the lodestone teleport, so just teleport to Draynor once, then use this function and it will teleport to draynor, its much faster than opening the lodestone screen.


function TeleportingLodestone: Boolean;
var
x, y, Home:Integer;

begin
Home := DTMFromString('mwQAAAHic42RgYLBjYmBwZoLQllDaBcq2AmJHIH7KAMGvoPR9IH4BxC+B+CEQPwDifUc+Mfho1jM4KCWD6UKvIobiosMMWZEHGIIDQsGYH6iOEGYkAsMBAIEUFk0=');

begin
GameTab(Tab_Magic);
end;

If FindDTM(Home, x, y, MIX1, MIY1, MIX2, MIY2) Then
Begin
MMouse(x, y, 0, 0);
Wait(500);
end;
FreeDTM(Home);
if IsUpText('Cast') then
begin
Mouse(X, Y, 0, 0, false);
Wait(500);
WaitOption ('Previous-des', 3000)
end;
end;

xtrapsp

2012-06-28 03:59:28

When using the inbuilt procedure, you need to realise it was chucked in about a week… so things would have changed.

I often make DTMS for each icon, However they need changing a lot (Graphical updates)