Page 1 of 1
GetStaticTilesArray vs GetLandTilesArray
Posted: 26.06.2011 0:08
by Alex
в чем разница между этими функциями?
для тайла 6040 (вода)
GetLandTilesArray возвращает пустой массив, а GetStaticTilesArray возвращает ряд тайлов
в чем заключается статичность тайла?
Re: GetStaticTilesArray vs GetLandTilesArray
Posted: 26.06.2011 0:30
by Alex
закидываю в GetStaticTilesArray поиск тайла 6040
возвращает вот такие координаты (6040, 1720, 1619, -20)
но рыба ловится только при Z = -5
если пробовать ловить в -20 получаю
[23:14:17:553] System: That location is not in your line of sight!
,infotile показывает в ту же точку Tile: 6040 X: 1720Y: 1619 Z: -5
Re: GetStaticTilesArray vs GetLandTilesArray
Posted: 26.06.2011 8:37
by shinma
могу сказать так открой InsideUO. закладка ArtWork. там две закладки Landscape и static. вот для них и созданы две функции. а вот как выдрать ИД
Landscape и Landscape ты не узнаешь через infotile , он будет тебе возвращать ИД тайла =0 и его координаты. если ты можешь выдрать ИД тайла с помощью команды infotile то используй статиктиле. И еще если мне память не изменят то там от берега до океана идет квадратов 10 статик, а потом начинается Лэнд. но это было давно када я карту разбирал британии.
Re: GetStaticTilesArray vs GetLandTilesArray
Posted: 26.06.2011 9:28
by Vizit0r
вода - это почти непредсказуемое дело. в основном это статика, но порой может быть и LandTile.
я бы для верности проходился обоими функциями.
Re: GetStaticTilesArray vs GetLandTilesArray
Posted: 26.06.2011 12:36
by Alex
а по Z координате? GetStaticTilesArray отдает не правильную высоту?
Re: GetStaticTilesArray vs GetLandTilesArray
Posted: 26.06.2011 12:53
by shinma
хз но зачем тебе это. включи воображение.
TargetToXYZ(f_tile.X,f_tile.Y,-5);
к стати да и в шахтах даже хрень Infotile дает один Z
а GetStaticTilesArray находит совсем другой. баг однако. но тебе ничего не мешает самому задать Z. способом выше.
Re: GetStaticTilesArray vs GetLandTilesArray
Posted: 26.06.2011 16:43
by shinma
Обратил внимание
при использовании GetStaticTilesArray
Колво итемов составило 287
а квадратов на поле всего 10 на 10 КАК? откуда он вообще берет это кол-во?
Code: Select all
sum:=0;
arr_sum:=0;
rs:=0;
j:=0 ;
AddToSystemJournal('ЧИСЛО и ВСЕГО '+inttostr(GetArrayLength(MinTile)));
for i:=0 to (GetArrayLength(MinTile)-1) do
begin
AddToSystemJournal('ЧИСЛО и '+inttostr(i));
rs:=GetStaticTilesArray(Xmin,Ymin,Xmax,Ymax,1,MinTile[i],tfta);
if rs>0 then
for k:=0 to rs-1 do temp[arr_sum+k]:=tfta[k];
arr_sum:=arr_sum+rs;
end;
AddToSystemJournal('QuickSort');
QuickSort(temp,arr_sum,start_p);
На выходе arr_sum=287 и это при
Xmin := getx(self)-5;
Xmax := getx(self)+5;
Ymin := gety(self)-5;
Ymax := gety(self)+5;
как такое может быть 10*10=100 и то если все тайлы бы совпали.
Re: GetStaticTilesArray vs GetLandTilesArray
Posted: 26.06.2011 16:52
by Vizit0r
статики порой может быть много, до десятка тайлов на одних координатах, по Z отличается.
это ты бы и увидел, если бы сравнил Z тайлов на совпадающих координатах.