ok how will i be able to add a radial walking procedure to my karamja fisher that walks from the dock to the store and back again?
and how will i add failsafes instead of using time to do it...?
ok how will i be able to add a radial walking procedure to my karamja fisher that walks from the dock to the store and back again?
and how will i add failsafes instead of using time to do it...?
Use Yakmans Radialroadwalk aid.
Radial road walk doesnt need failsafes.
Radial road walk procedure=
function RadialRoadWalk(TheColor: Integer; StartRadial, EndRadial: Integer; Radius: Integer; Xmod, Ymod: Integer): Boolean;
By: WT-Fakawi & Wizzup?
Description:
Walks TheColor from StartRadial to EndRadial for Radius Distance
Valid Arguments:
TheColor:= RoadColor. RoadColor will be dynamically updated.
StartRadial/EndRadial := Any number between 0-1440. 0=N,90=E,180=S,270=W. DO NOT USE NUMBERS UNDER 0 or ABOVE 1440
Radius:= Distance from the centre of minimap, i.e. how far away the mouse clicks. Use numbers 20-72
XMod, YMod := deviation from MouseFindFlag. -2 to 2.
RadialWalking Aid=
SCAR Code:program RadialWalkerAid;
{
RADIAL WALKER AID by YAKMAN
This is a utility which helps people use Radial Walk.
There are Four Functions of this script.
The first function shows the Radial and Radius of a point
when you move the mouse over the MiniMap. It will also show the Radial
with 360 added, so it can be used for walking upwards.
For Example, when you move the mouse above the center, it will show
a radial of 0 and a radius of around 40.
The second function Draws the Path which RadialWalk takes when you input
the StartRadial, EndRadial, Radius and press the 'Show Path' Button
For Example, if you put StartRadial=90 EndRadial=180 and Radius=50
it will draw a arc in the lower right 50 pixels from the center
moving inwards until it reaches the center.
Both these Functions can have their color changed using the DropDown
Menu, the choises are Red, Blue and Green.
Pressing the 'Clear Box' button will remove all the marks and leave
an empty minimap.
The first Function can be Disabled by UnChecking the 'Drawing Radial'
checkbox.
The thrid function is used by clicking the 'Capture From Client' button
it copys the area from the RS Minimap and displays it on the form.
This can be used now with the first and second functions.
The fourth function is activated by checking the Dynamic Capture
checkbox, it means that the script will capture the client minimap
repeatedly, the frame rate is decided by the drop-down menu
labeled 'DCapture Frame Rate'.
Enjoy!
Yakman.
Before i released this, i sent it to a few people
they all found it VERY useful and a good piece of work
(it also looks really cool when you make it draw the path)
'omg that is soooooooooo
cooooooooooooooool'
Sumilion
'wow, thats great!'
Freddy1990
'WOWAWAWEWA'
WT-Fakawi
}
const
DebugAll = False; //If you really want to see the script working
//Nothing Below needs to be edited
var
bmpBlank_Map:integer;
working:boolean;
//this global boolean shows if radial path is begin drawn
var
bmpCapture:integer;
Capture:TCanvas;
Captured:boolean;
FoundRS:boolean;
var
i,StartRadial,EndRadial,Color,Radius:integer;
//radial path drawing globals
var
frmDesign : TForm;
Label1 : TLabel; //form variables
Label2 : TLabel;
Label3 : TLabel;
Label4 : TLabel;
Label5 : TLabel;
Label6 : TLabel;
Label7 : TLabel;
Label8 : TLabel;
Label9 : TLabel;
Label10 : TLabel;
Button1 : TButton;
Button2 : TButton;
ComboBox1 : TComboBox;
ComboBox2 : TComboBox;
CheckBox2 : TCheckBox;
CheckBox1 : TCheckBox;
Button3 : TButton;
Button4 : TButton;
Button5 : TButton;
Edit1 : TEdit;
Edit2 : TEdit;
Edit3 : TEdit;
Timer2 : TTimer;
Timer3 : TTimer;
//constants, dont change these unless RS updates
const
FormX = 190; //where to copy to the form
FormY = 100;
const
ClientX = 573; //where to copy from the clint
ClientY = 3;
const
Height = 150; //dimentions
Width = 157;
const
CenterX = 266; //center of the form image
CenterY = 179;
procedure ClearMap;
begin
if(captured)then
SafeCopyCanvas(capture,frmDesign.canvas,0,0,Width,Height,FormX,FormY,FormX+Width,FormY+Height)
else
SafeCopyCanvas(getbitmapcanvas(bmpBlank_Map),frmDesign.canvas,0,0,Width,Height,FormX,FormY,FormX+Width,FormY+Height);
end;
procedure DrawBlankMap(sender:TObject);
begin
frmDesign.RePaint;
end;
function Distance(x1, y1, x2, y2: Integer): Integer;
// By PPLSUQBAWLZ edit BenLand100
begin
Result := Round(Sqrt(Sqr(x1 - x2) + Sqr(y1 - y2)));
end;
function FindRadial(x,y,radius:integer):integer;
var x1,y1,r:integer; //this finds the radial at your mouse by
begin //checking every radial of the radius and seeing if your
if(working)then exit; //mouse is close to there
for r:=0 to 360 do
begin
x1:= Round(Radius*Sin(r * pi / 180))+CenterX;
y1:= Round(-Radius*Cos(r * pi / 180))+CenterY;
if(DebugAll)then
frmDesign.Canvas.Pixels[x1,y1] := 16777215;
if(Distance(x1,y1,x,y)<=1)then
begin
result:=r;
exit;
end
end
writeln('Failed to get radial');
end;
procedure DrawRadial(x,y,Thecolor:integer);
var Radius,Radial:integer;
begin
if(working)then exit;
Radius := Distance(CenterX,CenterY,x,y);
Radial := FindRadial(x,y,Radius);
if(not DebugAll)then
ClearMap;
frmDesign.Canvas.Pen.Color := TheColor;
frmDesign.Canvas.MoveTo(CenterX,CenterY);
frmDesign.Canvas.LineTo(x,y);
Label1.Caption := 'Radial = '+inttostr(Radial);
Label2.Caption := 'Radius = '+inttostr(Radius);
Label10.Caption := 'Radial2 = '+inttostr(Radial+360);
end;
procedure SafeDrawRadial(x,y,color:integer);
var t:TVariantArray;
begin
t:= [x,y,color];
ThreadSafeCall('DrawRadial',t);
end;
//event called when the mouse if moved
procedure MouseMove(Sender:TObject;Shirt:TShiftState;x,y:integer);
var fillcolor:integer;
begin
if(working)then exit;
if(DebugAll)then
writeln('Mouse Move Event - Mouse at '+inttostr(x)+','+inttostr(y));
if(not CheckBox1.Checked)then exit;
if(not ((x>FormX)and(x<FormX+Width-6)and(y>FormY)and(y<FormY+Height)))then exit;
case ComboBox1.Text of
'Red':fillcolor:=255;
'Blue':fillcolor:=16711680;
'Green':fillcolor:=65280;
end
SafeDrawRadial(x,y,fillcolor);
end;
//event called by Timer3
procedure DrawRadialStep(sender:TObject);
var x1,y1:integer;
begin //draws on step of the radial path, then changes global variables
Working:=true; //for the next time it is called
case ComboBox1.Text of
'Red':color:=255;
'Blue':color:=16711680;
'Green':color:=65280;
end
x1:= Round(Radius * Sin(i*pi/180))+CenterX;
y1:= Round(Radius * Cos(i*pi/180))+CenterY;
frmDesign.Canvas.Pixels[x1,y1]:=Color;
if(DebugAll)then
writeln('x1 = '+inttostr(x1)+' y1='+inttostr(y1));
if(i=EndRadial)then
begin
i:=StartRadial;
Radius:=Radius-4;
end
if(Radius<=1)then
begin
Timer3.Enabled := False;
working:=false;
Button3.Caption:='Show Path';
exit;
end
if(StartRadial < EndRadial)then
i:=i+1
else
i:=i-1;
if(DebugAll)then
writeln('i='+inttostr(i)+' radius='+inttostr(radius)+' sr='+inttostr(startradial)+' er='+inttostr(endradial));
end;
//called by pressing Button3
procedure OnRadialPath(Sender:TObject);
begin
if(not Working)then
begin
try
StartRadial:=StrToInt(Edit1.text);
EndRadial:=StrToInt(Edit2.Text);
Radius:=StrToInt(Edit3.text);
except
edit1.text:='0';
edit2.text:='0';
edit3.text:='0';
if(DebugAll)then
writeln('Numbers Only!');
end
ClearMap;
if(Radius > 80)then exit;
StartRadial:= StartRadial + 180;
EndRadial:= EndRadial + 180;//all this because SCAR's sin uses radians
StartRadial := 360 - StartRadial;
EndRadial := 360 - EndRadial;
case ComboBox1.Text of
'Red':color:=255;
'Blue':color:=16711680;
'Green':color:=65280;
end
i:=StartRadial
Timer3.Enabled:=True;
Button3.Caption:='Stop';
end
else
begin
Timer3.Enabled:= False;
Button3.Caption:='Show Path';
working:=false;
end
end;
//called by clicking the mouse
procedure MouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
if(working)then exit;
if(not ((x>FormX)and(x<FormX+Width-6)and(y>FormY)and(y<FormY+Height)))then exit;
CheckBox1.Checked:=not CheckBox1.Checked;
end; //simply freezes the radial display
procedure Paint(Sender:TObject);
begin
ClearMap;
end;
procedure PrintProc(sender:TObject);
var sRadial,eRadial,Radius:integer;
begin
if(working)then exit;
try
sRadial:=StrToInt(Edit1.Text);
eRadial:=StrToInt(Edit2.Text);
Radius:=StrToInt(Edit3.Text);
except
edit1.text:='0';
edit2.text:='0';
edit3.text:='0';
if(DebugAll)then
writeln('Numbers Only!');
end
writeln('');
writeln('RadialWalk( {TheColor} , '+inttostr(sRadial)+', '+inttostr(eRadial)+', '+inttostr(Radius)+', {Xmod}, {Ymod});');
writeln('RadialRoadWalk(RoadColor, '+inttostr(sRadial)+', '+inttostr(eRadial)+', '+inttostr(Radius)+', {Xmod}, {Ymod});');
writeln('');
end;
procedure FindClient;
begin //finds the RS window by size
if(working)then exit;
if(FindWindowBySize(766,504))then
label8.caption:='RS Handle = '+Inttostr(GetClientWindowHandle)
else
label8.caption:='RS Handle = 0';
end;
procedure CaptureFromClient;
begin
try //frees an older bitmap if it exists
FreeBitmap(bmpCapture);
except
//there was no older bitmap to free
end
bmpCapture:=BitmapFromString(Width,Height,'');
Capture:=GetBitmapCanvas(bmpCapture);
if(not FoundRS)then
FindClient
if(Label8.Caption = 'RS Handle = 0')then
exit;
try
SafeCopyCanvas(GetClientCanvas,Capture,ClientX,ClientY,ClientX+Width,ClientY+height,0,0,Width,Height);
SafeCopyCanvas(Capture,frmDesign.canvas,0,0,Width,Height,FormX,FormY,FormX+Width,FormY+Height);
except
CheckBox2.Checked:=false;
end
Captured:=true;
end;
//called by pressing button
procedure ClientCapture(sender:TObject);
begin
CaptureFromClient;
end;
//called by Timer2
procedure DynamicCapture(sender:TObject);
begin
if(working)then exit;
CaptureFromClient;
end;
//called by changing CheckBox2
procedure StartDCapture(sender:TObject);
begin
if(working)then exit;
if(CheckBox2.Checked)then
begin
Timer2.Interval:= StrToInt(ComboBox2.Text);
Timer2.Enabled:= True;
end
else
begin
Timer2.Enabled:= False;
end
end;
//called by pressing button
procedure FindRS(sender:TObject);
begin
if(working)then exit;
FindClient;
end;
procedure Form;
begin //constructs the form
frmDesign.Left := 353;
frmDesign.Top := 115;
frmDesign.BorderIcons := [biSystemMenu, biMinimize];
frmDesign.BorderStyle := bsSingle;
frmDesign.Caption := 'Radial Walking Aid - Yakman';
frmDesign.ClientHeight := 412;
frmDesign.ClientWidth := 525;
frmDesign.Color := clBtnFace;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.PixelsPerInch := 96;
frmDesign.OnMouseMove:= @MouseMove;
frmDesign.OnPaint:= @Paint;
frmDesign.OnMouseDown:=@MouseDown;
Label1 := TLabel.Create(frmDesign);
Label1.Parent := frmDesign;
Label1.Left := 24;
Label1.Top := 40;
Label1.Width := 48;
Label1.Height := 13;
Label1.Caption := 'Radial = ';
Label2 := TLabel.Create(frmDesign);
Label2.Parent := frmDesign;
Label2.Left := 24;
Label2.Top := 88;
Label2.Width := 48;
Label2.Height := 13;
Label2.Caption := 'Radius = ';
Label3 := TLabel.Create(frmDesign);
Label3.Parent := frmDesign;
Label3.Left := 64;
Label3.Top := 256;
Label3.Width := 55;
Label3.Height := 13;
Label3.Caption := 'Start Radial';
Label4 := TLabel.Create(frmDesign);
Label4.Parent := frmDesign;
Label4.Left := 64;
Label4.Top := 288;
Label4.Width := 52;
Label4.Height := 13;
Label4.Caption := 'End Radial';
Label5 := TLabel.Create(frmDesign);
Label5.Parent := frmDesign;
Label5.Left := 64;
Label5.Top := 320;
Label5.Width := 33;
Label5.Height := 13;
Label5.Caption := 'Radius';
Label6 := TLabel.Create(frmDesign);
Label6.Parent := frmDesign;
Label6.Left := 192;
Label6.Top := 16;
Label6.Width := 265;
Label6.Height := 13;
Label6.Caption := 'Move Your Mouse Over the MiniMap To Display Radials';
Label7 := TLabel.Create(frmDesign);
Label7.Parent := frmDesign;
Label7.Left := 168;
Label7.Top := 40;
Label7.Width := 332;
Label7.Height := 13;
Label7.Caption :=
'Input '#39'StartRadial'#39' '#39'EndRadial'#39' and '#39'Radius'#39' to Display RadialWa' +
'lk Path';
Label8 := TLabel.Create(frmDesign);
Label8.Parent := frmDesign;
Label8.Left := 376;
Label8.Top := 168;
Label8.Width := 64;
Label8.Height := 13;
Label8.Caption := 'RS Handle = 0';
Label9 := TLabel.Create(frmDesign);
Label9.Parent := frmDesign;
Label9.Left := 376;
Label9.Top := 240;
Label9.Width := 103;
Label9.Height := 13;
Label9.Caption := 'DCapture Frame Rate';
Label10 := TLabel.Create(frmDesign);
Label10.Parent := frmDesign;
Label10.Left := 24;
Label10.Top := 64;
Label10.Width := 48;
Label10.Height := 13;
Label10.Caption := 'Radial2 = ';
Button1 := TButton.Create(frmDesign);
Button1.Parent := frmDesign;
Button1.Left := 16;
Button1.Top := 344;
Button1.Width := 100;
Button1.Height := 25;
Button1.Caption := 'Print Procedure';
Button1.TabOrder := 15;
Button1.OnClick:= @PrintProc;
Button1.OnMouseDown:=@MouseDown;
Button2 := TButton.Create(frmDesign);
Button2.Parent := frmDesign;
Button2.Left := 16;
Button2.Top := 112;
Button2.Width := 118;
Button2.Height := 25;
Button2.Caption := 'Clear Map';
Button2.TabOrder := 8;
Button2.OnClick := @DrawBlankMap;
Button2.OnMouseDown:=@MouseDown;
Button3 := TButton.Create(frmDesign);
Button3.Parent := frmDesign;
Button3.Left := 16;
Button3.Top := 208;
Button3.Width := 75;
Button3.Height := 25;
Button3.Caption := 'Show Path';
Button3.TabOrder := 11;
Button3.OnClick:= @OnRadialPath;
Button3.OnMouseDown:=@MouseDown;
Button4 := TButton.Create(frmDesign);
Button4.Parent := frmDesign;
Button4.Left := 376;
Button4.Top := 104;
Button4.Width := 106;
Button4.Height := 25;
Button4.Caption := 'Capture From Client';
Button4.TabOrder := 16;
Button4.OnClick := @ClientCapture;
Button5 := TButton.Create(frmDesign);
Button5.Parent := frmDesign;
Button5.Left := 376;
Button5.Top := 136;
Button5.Width := 75;
Button5.Height := 25;
Button5.Caption := 'Find RS';
Button5.TabOrder := 17;
Button5.OnClick := @FindRS;
ComboBox1 := TComboBox.Create(frmDesign);
ComboBox1.Parent := frmDesign;
ComboBox1.Left := 16;
ComboBox1.Top := 144;
ComboBox1.Width := 118;
ComboBox1.Height := 21;
ComboBox1.ItemHeight := 13;
ComboBox1.TabOrder := 9;
ComboBox1.Text := 'Red';
ComboBox1.Items.Add('Red');
ComboBox1.Items.Add('Blue');
ComboBox1.Items.Add('Green');
CheckBox1 := TCheckBox.Create(frmDesign);
CheckBox1.Parent := frmDesign;
CheckBox1.Left := 16;
CheckBox1.Top := 176;
CheckBox1.Width := 97;
CheckBox1.Height := 17;
CheckBox1.Caption := 'Drawing Radial';
CheckBox1.TabOrder := 10;
CheckBox1.Checked:=True;
CheckBox1.OnMouseDown:=@MouseDown;
Edit1 := TEdit.Create(frmDesign);
Edit1.Parent := frmDesign;
Edit1.Left := 16;
Edit1.Top := 248;
Edit1.Width := 39;
Edit1.Height := 21;
Edit1.TabOrder := 12;
Edit1.Text := '0';
Edit1.OnMouseDown:=@MouseDown;
Edit2 := TEdit.Create(frmDesign);
Edit2.Parent := frmDesign;
Edit2.Left := 16;
Edit2.Top := 280;
Edit2.Width := 39;
Edit2.Height := 21;
Edit2.TabOrder := 13;
Edit2.Text := '0';
Edit2.OnMouseDown:=@MouseDown;
Edit3 := TEdit.Create(frmDesign);
Edit3.Parent := frmDesign;
Edit3.Left := 16;
Edit3.Top := 312;
Edit3.Width := 39;
Edit3.Height := 21;
Edit3.TabOrder := 14;
Edit3.Text := '0';
Edit3.OnMouseDown:=@MouseDown;
CheckBox2 := TCheckBox.Create(frmDesign);
CheckBox2.Parent := frmDesign;
CheckBox2.Left := 376;
CheckBox2.Top := 264;
CheckBox2.Width := 111;
CheckBox2.Height := 17;
CheckBox2.Caption := 'Dynamic Capture';
CheckBox2.TabOrder := 18;
CheckBox2.OnClick := @StartDCapture;
ComboBox2 := TComboBox.Create(frmDesign);
ComboBox2.Parent := frmDesign;
ComboBox2.Left := 376;
ComboBox2.Top := 216;
ComboBox2.Width := 87;
ComboBox2.Height := 21;
ComboBox2.ItemHeight := 13;
ComboBox2.TabOrder := 19;
ComboBox2.Text := '500';
ComboBox2.Items.Add('10');
ComboBox2.Items.Add('100');
ComboBox2.Items.Add('250');
ComboBox2.Items.Add('500');
ComboBox2.Items.Add('1000');
Timer3 := TTimer.Create(frmDesign);
Timer3.Interval:=2;
Timer3.Enabled:=False;
Timer3.OnTimer := @DrawRadialStep;
Timer2 := TTimer.Create(frmDesign);
Timer2.Interval := 10;
Timer2.Enabled:= False;
Timer2.OnTimer := @DynamicCapture;
frmDesign.ShowModal;
end;
procedure SafeForm;
var T:TVariantArray;
begin
ThreadSafeCall('Form',t);
end;
procedure LoadBMP;
begin //loads the bitmap of the blank map
Writeln('Loading Bitmap');
bmpBlank_Map:= BitmapFromString(150, 157, 'z78DAED9D5B72E3380' +
'C45B7644B7627F399EE71F6BFA4F184991AA620C0972F49B6CE4D' +
'15BBCB71FCA078744110944E27D4AAE9FE73BE79EDE53CFF9E2F9' +
'78FCB3C7FA4F6D7E93A5FAEA94D8FDCFFF77139A547E257EBD5A6' +
'F74AEFEB7DAAEFF6EBF33FF88ED9F3D36BC6EDB7CED90F42CDF47' +
'D8FE7445CC65D3ECE53AB3032DFE6EBF436A255DEDD3295F398DA' +
'F4B8F20AB6FD41224285F228FBE120D96FC75136DDA6F7E9DCB98' +
'DDD3CFB5ED649D36F3DD263AF4428F6B8F87CAEB85B1A99F9281D' +
'4ED3602AF39EB15EEFF9BE8DCC714614CFECECD9BE3D86DC801AF' +
'BDBF891AE6CC6F35CCB23E390399D327E729ABA91158EEAD1B923' +
'B76DFE16F63CA6CF25199FAFCDDD8F2C8A33C7691A8DA67DC1DCA' +
'FCC633C77F6A84CBF65C4BEB6D3D9FC7C3171764C7672AE27A352' +
'EE2BBB2EA3B8243C3E7146C564D4F3B5B08568B3304A3C0271C53' +
'D2F9FB5ECB1B0AB3CF4F6338E81EF3CA493A973E9935BFAB9D82B' +
'05675CA810C85A6FD5837EDEDBFCCEB610F7042E196672BC9663B' +
'44FFA6C6C534A1FBDBA319561A46AD9E4D86DA5F80CA9578571EC' +
'769DE77132AB38E3B68AAB9E14D7BB9F6A3F4F7FE8C9A7F147214' +
'6B5A30212C7D157CA5D222E6FE9C9D770C678CE4815DCE8C813EE' +
'E0B1348783EA549A5D813B7874D71CA97F1B401F7E874A49CC6B0' +
'0E83D853EAF7209FA9042A25DB162B6A8CCFB98EBA175E68CEC61' +
'D4E9833BD4374655D6198F469F579D0B7D680489790D7F7EFE3F2' +
'689D6FB2C77D087D6CFDB1C615DC35694411F5A9FC76356C1D9C8' +
'13E2D0C62486D1A91DB1CF3EFBA38613ED93446FF78D77C5E3679' +
'FF7411FDA278971A58D2571FF2BFE4AD6859180F6C6A34E627EE5' +
'0DE843683489F13EE2FDF0087DE838247AD1E9563C421F223ADD8' +
'A446F8F030CA2D72051894B151247F0087D88B8B4D4137B91E8ED' +
'F2833E744C37B4F76A1CC760BCC716FA106E386E8618EFB1853E7' +
'41C12BDBA9AF88AFD2D0C421F420A89364BD3BEA6AFD307830812' +
'FB56B8C5B501D087507CCF85D80DE3578EF717137F22E4B9E1C2E' +
'EA7C29D17F1AE46E8434871C385EB471937ACA30F0611D2DD5027' +
'31DECB8F0322D4EE865EBE34BE93110E88D06837D419843E84BAC' +
'D0D85963508847A91A873E76550A10FA196B8D4C69CD6EF3C0671' +
'4084DA4954E67D5ED614FA10EAC6604662CC20512842A323D278B' +
'502FA101AED861E83382042EBB861CC20F42134DA0DE399200C22' +
'343C22352B14F36DBE4E6F3088D06806136B3F484C0E789BDEA73' +
'30C22347C56F8C59ABDBE13F421B441444A2E14A1ADDC30231106' +
'11DA1B83AF74DF6D849E85411C10A1F549643D02A1BD3148148AD' +
'0FA1169CE203D83100C22744C06894211DA8ABEADEE5C8FD031D5' +
'EB4E4C08A1760647DFA71E21A43398F6122284466BE15AF730881' +
'00C2204833088100C22048308A18D18A44E06A175E45DEF170611' +
'5A93C1DC0D611021184475FA34A24F6010C1208AE9F3188444184' +
'46B3A200C22B41F06894811DA6A2668EFC4048308C12042476690' +
'8A3584C6C9BBEB2E756B08ADE3801E6B6466105A3F0A854184601' +
'0211884418460102118844184B662305EA9874484C63168EFC38B' +
'1B22B455146AEFFF0283088D7640EB7DDE239088500B7D0A6B44A' +
'4086D1585C6B5A33088D0B60C52BF8D503B83CA4A443C4F844484' +
'EAE471E431881B22B4A603DA7DBBB82142A3E9F376CD7B6EE8E55' +
'4E9678474063D9A2C83FA3A3E2422E4D16789D3E9531864B502A1' +
'98C19C91710C4222421E7DA50CFEFAF7DFAB47A217D9C220428A0' +
'3C6572FD419C40D116A71C01606E3CC0C3B0D11F4792CE85168DE' +
'B6BB2124A263D2D7E2800A838A1B129722E2CFD25CA865D092185' +
'7DAC020C201952CA81285D6B9217129823E657FAEEE803A83B11B' +
'E289E808F42973C05207F4188C49543E21CE889E973B7D6CEBF53' +
'075242A73C385FBFC7E5CE6F923B5F8237A1679A357CFC0D445A1' +
'E3E2522255F42CDEA78FDEBA3D11ED0CD65D237121E3FA756E214' +
'645FB8939ADDFE96BE523E86B7743EFACE2BD2624A23DB85E3C3E' +
'EB1CB085BEBA2C8DB277D87B7D723868FD1C8B1D8DA5A37A9C038' +
'E2031FEEEF088D6CC6D2A5E309ABE9675C311242A3C32BA904E5F' +
'6995662FFADA992A7D7E7B745ADA3FF0885A5C6F5CE4595C11EAA' +
'C8028B1E2084FD43F3924A2D8F574F719419FE229DFF4E5AB8A32' +
'8FBDA2D37855B1944478C4F5EAE853AE43581A79BA5C6494D9F78' +
'D49CC5FB96FC6A674B6C89C11FA7A9DB747D0A7C49C2E7D86C1F5' +
'3DD173C63A12E1F1C8AEE7D1178FBAE1DEA730E890E839633B897' +
'11CDE9EDD82C7D7E0AE3DA3AE8CB496ACCB03EE74FA0A3D51A931' +
'506ABFF51835FF24FA7900125F23DA54467E4BCC599775A99CF7D' +
'5B5328FE348D4D75BC9E1BCD2CA425D5DC738FA56E5AED91F4B49' +
'8CDFDDEDE7C26819129F6B65C1CBEA2BDC2963AC037755F4299FB' +
'965CED8CB07751EF39E6175E395722C5E9CD93266EA48EC36D72B' +
'1CF9EE73BA92D8DEA6CF39DFE6EBF4C6EAC62BAD2CA463DAE41A6' +
'1DBD7F50A22BADBF43E9D5BE2E7D82587E76F07AF6E40CD56D52C' +
'A52B0B7DE7500BF56C8523B320BF91180C496CF17DFD0E17A35DB' +
'E65750382D69FF129B9CD113326AF9AB4657EE4FDF68EDCE7E9CF' +
'0F061D12E37D8BDE3A8EB743B9A0C6661889FAE781C4D1F4D5AD2' +
'C8C733DEB7DD2081776D95BFAF236265127CEE3A8C315A5BA92D8' +
'B29B0CB246D0D79E6969A97C5672B0FA75D5625E2C7D0F487478A' +
'CCBE2B6EC1DB60CA6197A2F1EBDD58DF4489E0D80449DBEEF63E4' +
'F46AAF99CEC278902BBB5AF6F729D5200A77A5248E26AEB4EA35F' +
'57C5F1EE3F782C402FA1C22FA723782BE762AEBE87BC0A3701F99' +
'BEDFB794C411AB1BDE718744893EA7DF7A1DA998BE11E350D925A' +
'438E0E9FCFF8F446218EBAE4962D37E904EF1AA65F0C824DA7EC8' +
'B9E836BFABDA67B72683968B5EF4E50CE6FF5776E0AED91BF9517' +
'0336385C4D96F9D8F317B563F1A89F6BBDB9EF1FAB0804AE708AE' +
'3FD2F45DC096C19CBBF4E37965FC4CD70DC3D9E2881E28C8A086A' +
'B1BF1DC59791C0647F464BCAE17673BD79C03E62BEC0A7DF179DE' +
'6330FE5B2F361BE7897DAB6ABDF841F144EF158ECC60AF9EECB53' +
'767387D4EEC5DEA65317DF92B3C7081C2558C6ED7FA96CF8A719E' +
'B3B40221BE1BE371E88B57A2F555ECD2DCA6B7D231EEFE0E0BDFC' +
'B3860CE60BCBA679F1FFFE8F183BE76AF5CA3A6E03E5042364CC9' +
'E49456EB1D33222D3D6B3DE8E1C26B352CAC1A779A272AF4C5599' +
'105FA0630A8CC89BCE7B45F0BCE9D0B1766C6FA56E1C26053857F' +
'556ED35BEB6FB9E692429F1745AFC36069654ECC6CCB7572E273E' +
'9B8AB5DE90CBE2089665ED381C1AE47ADAE0AB1B4CAC58D7CF2B9' +
'5B57061708CA5E39F665C53D4B6B6F1E1CDF86DDFD31890F465DD' +
'8CFAFBA0E68E7444A5FB5645DF45D7B2DE3CA1BBDF959A857141A' +
'3318D36719D4D7281557553CF741CD924C65E9EE8C7847583C8B7' +
'C76EEEAFAA1EE6CA91C17AF26A76E5CC5EBE996C1F6285462C4AB' +
'1DCD18F422E4D21A805E6DE93E32650D515F3BF646D77391F8A07' +
'A36FFD60229A56B7FA57ED7DE2AAB031E836E145AC59DCEA0F77C' +
'BD5E6E1D1E0BA8D4F74157ED037DAEFB9C96EE39AACB36EBB54C2' +
'346859E0F89E7C275AB81C5635E6650A91BD75F6DE1338CA67270' +
'066FCFD169E9CEEB7115BCDD2873C6CC0235664C7A642D9C51DB1' +
'9D4C77618857A9FB060D7B0C2E3D773BCBAC4E11EDACCE03EF705' +
'7B47B02F83A38FD48F516146B5C25D4C5F3CC24B6BD22A633FD90' +
'1F55D54F17C5377B1CA33A4F0EE7A26415FC3DA8F1B4AE71FF92A' +
'915275AE3DBE8559C4D2F1A070E7D1E73960A91B3E9A7F9D7F9FA' +
'F52FBF7743D7F9CFE3ABD9FDEF2769AEE64DEAEF76335FFB16DFA' +
'6D6A17FEF6EB35DD36FD6DFE19BE1EB94CF7A8EED3B6F97B3D686' +
'FD3C77479D066CF5F78C7DFF77FAFF6FBFE9AEEFF5E539B3F9EFE' +
'6A7E9FA7E9AFBCB59FCD3E27B5DE2BD4B5CAFBA67754BEDDF777F' +
'CEA9307C745E8ED85D68C016524A43176BEDE47FA7FAF138E376F' +
'6C2B237CE16FBF3E6D7A77AF4DCFFC07272E4F07');
writeln('Bitmap Loaded');
end;
procedure SetSelfWindowState(State:TWindowState);
begin
GetSelf.WindowState :=State;
end; //sets the SCAR main form window state
procedure SafeSetSelfWindowState(State:TWindowState);
var t:TVariantArray;
begin
t:= [state];
ThreadSafeCall('SetSelfWindowState',t);
end;
begin
ClearDebug;
writeln('Successfully compiled');
LoadBMP;
if(not DebugAll)then
SafeSetSelfWindowState(wsMinimized);
frmDesign:= CreateForm; //this is already thread safe
SafeForm;
SafeSetSelfWindowState(wsNormal);
FreeBitmap(bmpBlank_Map);
try
FreeBitmap(bmpCapture);
except
end
end.
junkj i already tried that....
the script has trouble walking since there are no roadcolors from the karamja dock to the karamja general store...
thats what im having trouble with and the main reason my script will not work...


try using finding symbols procedures il find a tut ina min
I dont think you put it right
Get the color of the mini map grass.
Then Capture the client and click where you want to walk on the mini map.
Then copy it down on the radialroadwalk function and put
roadcolorchecker;
My thing never fails.(exept for finding the bank minimap symbol covered by NPC's)


Be intuitive, use everything you can (symbols, various landmarks) to navigate. Split the walking up into sections, with each section starting and ending at a landmark. That way, it's a whole lot easier to debug if the script starts to get lost, because you only have a small procedure to fix, instead of a behemoth piece of code that you have to trace though.
My recommendation: walk along the water for as far as you can, until you come to a road to walk on
Interested in C# and Electrical Engineering? This might interest you.
No I got it!!!
use,
procedure RunWhere(RunDirection: String; RunFar: Boolean);
By: Mutant Squirrle
Description:
Runs to direction.
Last edited by Mr. Doctor; 10-11-2012 at 09:40 PM.
That's usually used for running from randoms, isn't it?
Interested in C# and Electrical Engineering? This might interest you.
No,
runawaydirection('N') is.
my idea exactly!
but there are problems since there it has to walk on 1 color...
i was thinking... is there a way to add tolerence to this?
if so.... how?
@junkj: i used that in the past and it gets you BANNED or it doesnt work at all most of the time since it just keeps going and going and going. its easy to get lost with that .procedure RunWhere(RunDirection: String; RunFar: Boolean);
By: Mutant Squirrle
Description:
Runs to direction.
besides that 1 direction only... the general store is southeast... 2 directions
have the script just go one direction until it gets past the palm trees, then look for colors and find the store?
Interested in C# and Electrical Engineering? This might interest you.
Just can you give me the script so like i can hook it up?
I promise i will try everything i can to walk.
for fflag it measures in pixles. so fflag(5) will wait till you are 5 pixles away from the flag. looking at a map now. ill see if i can find a good way to walk.
this is the way i see it.
- have the user color pick the the color of the tree.(green or brown part)
- script autocolor the dirt road
- walk(radialwalk) along the dirt road till it finds the opening
- radial walk or linear walk(if its not outdated) with the tree color to the dock
- fish
- radial walk or linear walk(if its not outdated) with the tree color to the opening
- radialwalk the dirt color until it finds the bridge
Seince radialroadwalk only clicks in one direction based on color you could possibly use the constant stream of ppl to walk.... or you could just use the trees untill you get to the fence and have it use findbitmap to find the opening in the fence (that is if it shows up on the minimap) other then that you can just have it click in one direction until it gets out of the sandy beach and near the buildings... well i hope i represented some sort of viable solution :-)
Ok so you want it to walk to the genral store and back to the docks?
i thought you said you were going to bank? but to go from dock to store use the trees to walk.
Don't be afraid to use blind clicks!
Just pick a spot on the minimap in that general direction and add a bunch of randomness to it. Do this once or twice until you get to somewhere that you can use as a waypoint, like a road or a symbol.
if i cant walk from the docks to the store... i cant even hope of walking to the bank!![]()
take it one step at a time i say...
@xxcanadaxx: how do i use the trees to walk? they all look the same. wouldnt scar click on the same tree over and over???![]()
@tarajunky: what the heck is that? coordinate clicking or MMouse? i'll consider MMouse but NOT coordinate![]()
Coordinate clicking is not usually a good idea, but think of it like this...
You could click a certain coordinate away from the fishing symbol, which moves around. That way your 'coordinate click' looks totally random.
And if you add a lot of randomness to it, like Mouse(x,y,10,10,true) it's not going to be detectable.
If you're only doing it once to move up the screen until you can find another waypoint it's really not a big deal.
just make sure you dont do something like Mouse(x,y,1,1,true) because it'll be more detectable obviously since it's clicking around the same area each time.
Thick As Blood
There are currently 1 users browsing this thread. (0 members and 1 guests)