SRL Archive - Development

Intelligence procedure


Sir Ducksworthy

2012-02-23 13:36:50

Hey does anyone have any improvements they could add to make functionality better with something like this or has anyone else had any similar procedures they would like to share on the lines of predicting player location through DTM intelligence or whatnot

I want to narrow shit like this down one day to predict an exact tile location if possible or something close to it


procedure intelligence;
{var
region1x,region1y,region2x,region2y,region3x,region3y,region4x,region4y,region1x2,region1y2,region2x2,region2y2,region3x2,region3y2,region4x2,region4y2:integer; }
begin
//Their are 4 regions so far that are layers of distance around minimap player icon, these will be used to find dtms in to find out locations
if not LoggedIn then
Exit;
AntiRandoms;
writeln('Finding banker and opening bank');
writeln('Determining location with Minimap DTM distance to player map icon recognition');
{ //Regions to compare distance to 689, 88 that is the white square dot that represents player
region1x:=679; //10CORDS around player
region1y:=78;
region1x2:=699;
region1y2:=98;
region2x:=669; //20 Cords could this work better if it was split into 5 smaller sections around the 10 cord area 2.5C ea
region2y:=68;
region2x2:=709;
region2y2:=108;
region3x:=659; //30 cords
region3y:=58;
region3x2:=719;
region3y2:=118;
region4x:=649; //40 cord radius
region4y:=48;
region4x2:=729;
region4y2:=128; }
loc:=0;
if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then loc:=1;
if(not(loc=1))then
begin
if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then loc:=2;
end;
if(not(loc=2))then
begin
if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then loc:=3;
end;
if(not(loc=3))then
begin
if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then loc:=4;
end;
if(not(loc=0))then
begin
writeln('Found the bank icon in mini map player icon radius zone ' + IntToStr(loc));
writeln('Radius zone 1 is 10 coords around your white square, 2 is 20, 3 is 30 and 4 is 40');
end;
if(loc=0)then
begin
writeln('was not found in any of the radius zones so we will now search for the foutain icon as you are most likely at the fountain due to an error after making soft clay');
if(findDTMRotatedSE(fountainicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then loc:=1;
if(not(loc=1))then
begin
if(findDTMRotatedSE(fountainicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then loc:=2;
end;
if(not(loc=2))then
begin
if(findDTMRotatedSE(fountainicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then loc:=3;
end;
if(not(loc=3))then
begin
if(findDTMRotatedSE(fountainicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then loc:=4;
end;
if(not(loc=0))then
begin
writeln('You were closest to the fountain artifical intelligence was correct');
writeln('Lets just do a check to see if you have any remainding clay left..');
if(finddtm(clay,x,y,1644,442,1823,696))then
begin
writeln('O shit we havnt finished making soft clay yet and most likely had an error, lets call the fountain fider method..');
fountainfinder;
end;
end;

end;
end;

YoHoJo

2012-02-23 13:42:25

What exacty does this do?
What are the DTMs of? Minimap?
You want a function to find your location on minimap?
Look up SPS 'SRL positioning system'

masterBB

2012-02-23 13:46:46

Spacing is one way to improve ;)
procedure intelligence;
{var
region1x,region1y,region2x,region2y,region3x,regio n3y,region4x,region4y,region1x2,region1y2,region2x 2,region2y2,region3x2,region3y2,region4x2,region4y 2:integer; }
begin
//Their are 4 regions so far that are layers of distance around minimap player icon, these will be used to find dtms in to find out locations
if not LoggedIn then
Exit;
AntiRandoms;
writeln('Finding banker and opening bank');
writeln('Determining location with Minimap DTM distance to player map icon recognition');
{ //Regions to compare distance to 689, 88 that is the white square dot that represents player
region1x:=679; //10CORDS around player
region1y:=78;
region1x2:=699;
region1y2:=98;
region2x:=669; //20 Cords could this work better if it was split into 5 smaller sections around the 10 cord area 2.5C ea
region2y:=68;
region2x2:=709;
region2y2:=108;
region3x:=659; //30 cords
region3y:=58;
region3x2:=719;
region3y2:=118;
region4x:=649; //40 cord radius
region4y:=48;
region4x2:=729;
region4y2:=128; }
loc:=0;
if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then
loc:=1;
if(not(loc=1))then
begin
if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then
loc:=2;
end;
if(not(loc=2))then
begin
if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then
loc:=3;
end;
if(not(loc=3))then
begin
if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then
loc:=4;
end;
if(not(loc=0))then
begin
writeln('Found the bank icon in mini map player icon radius zone ' + IntToStr(loc));
writeln('Radius zone 1 is 10 coords around your white square, 2 is 20, 3 is 30 and 4 is 40');
end;
if(loc=0)then
begin
writeln('was not found in any of the radius zones so we will now search for the foutain icon as you are most likely at the fountain due to an error after making soft clay');
if(findDTMRotatedSE(fountainicon,x,y,679,78,699,98 ,-Pi, Pi, Pi/30, aFound))then
loc:=1;
if(not(loc=1))then
begin
if(findDTMRotatedSE(fountainicon,x,y,679,78,699,98 ,-Pi, Pi, Pi/30, aFound))then
loc:=2;
end;
if(not(loc=2))then
begin
if(findDTMRotatedSE(fountainicon,x,y,679,78,699,98 ,-Pi, Pi, Pi/30, aFound))then
loc:=3;
end;
if(not(loc=3))then
begin
if(findDTMRotatedSE(fountainicon,x,y,679,78,699,98 ,-Pi, Pi, Pi/30, aFound))then
loc:=4;
end;
if(not(loc=0))then
begin
writeln('You were closest to the fountain artifical intelligence was correct');
writeln('Lets just do a check to see if you have any remainding clay left..');
if(finddtm(clay,x,y,1644,442,1823,696))then
begin
writeln('O shit we havnt finished making soft clay yet and most likely had an error, lets call the fountain fider method..');
fountainfinder;
end;
end;
end;
end;

Runaway

2012-02-23 13:48:42

I don't understand… if you're searching for the same DTM with all of the same values in FindDTMRotated, why would they ever be giving different results for Loc?

masterBB

2012-02-23 13:59:55

If you want to know where it is from you char use something like this:

if(findDTMRotatedSE(bankicon,x,y,679,78,699,98,-Pi, Pi, Pi/30, aFound))then
begin
angle := ArcTan2(y-MMCY,x-MMX) * 180 / Pi;
dist := sqrt(pow(y-MMCY,2),pow(x-MMCX,2));
end;