Page 1 of 1

вопрос по WaitTargetTile

Posted: 2009-06-14 22:54:19
by Georg IV
Граждане, разобраться хочу первый параметр WaitTargetTile - который tilenum. Это вообще тип я так понял поверхности или что?
И нет ли универсалього значения этого tilenum?

Posted: 2009-06-15 03:55:00
by Destruction
Есть - 0.

Только в некоторых случаях он может не работать.

Posted: 2009-06-15 09:03:47
by Georg IV
то-то я смотрю все наши "рудокопы" тут пишут там или 0 или -1....чисто в эксперементальных целях залез в шахту пробовал...нифига.
Но есть ещё товарищи, которые указывают конкретный тайл этого дела, помоему 1393, или что-то в этом роде...залез пробовал...мне кажется находит но не всё...видимо там всё же пол шахты предсталвен несколькими разновидностями....в таких случаях навернео целесообразно применять массив тайлов, и в цикле крутить их на всякое движение рудокопа к тому или иному куску местности...ну это мои измышления.

Posted: 2009-06-15 09:25:39
by Savage

Code: Select all

sub DigItStay(MaxWeight,MaxDistance,BaseX,BaseY)
   VAR x,y,TempX,TempY
   VAR Last=0,LastTimer, ContFlag=1
   VAR MaxTimer=160,Count=1
   VAR TileB=1339
   VAR TileE=1359
   Var Tile

   For x=-MaxDistance to MaxDistance
      For y=-MaxDistance to MaxDistance

         Tile=-1
         Tile=TileB
         While NOT UO.PrivateGetTile(UO.GetX()+x,UO.GetY()+y,-1,Tile,Tile) AND Tile<TileE
            Tile=Tile+1
         Wend

         If Tile<TileE Then

Установка патчей на клеточки в шахте приводит к неработоспособности функции приватгеттайл.

Posted: 2009-06-15 09:32:27
by Georg IV
Тоесть ты хочешь сказать, что тайлы на полу шахты всегда находятся в пределах
от 1339 до 1359

Posted: 2009-06-15 09:42:48
by Savage
На ранке так. На поле вроде тоже так же, не помню уже. На сфере 1 тип тайла в шахте.

Posted: 2009-06-15 10:11:38
by Georg IV
ну тогда все более мене просто, не нужно отдельно массивы формировать, циклом можно обойтись.
Тоесть более мене унификация для копания земли достигнута.
А как быть с камнями, или с кажем с песком на предмет песка?

Posted: 2009-06-15 15:53:49
by Mirage

Code: Select all

Sub HarvestTiles(X,Y)
var i
if UO.PrivateGetTile(X, Y, -1, 616, 618) then
 for i=616 to 618
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
if UO.PrivateGetTile(X, Y, -1, 1339, 1363) then
 for i=1339 to 1363
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
if UO.PrivateGetTile(X, Y, -1, 2272, 2282) then
 for i=2272 to 2282
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
if UO.PrivateGetTile(X, Y, -1, 4963, 4973) then
 for i=4963 to 4973
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
if UO.PrivateGetTile(X, Y, -1, 6001, 6012) then
 for i=6001 to 6012
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
if UO.PrivateGetTile(X, Y, -1, 13121, 13369) then
 for i=13121 to 13369
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
if UO.PrivateGetTile(X, Y, -1, 13446, 13455) then
 for i=13446 to 13455
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
if UO.PrivateGetTile(X, Y, -1, 13484, 13492) then
 for i=13484 to 13492
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
if UO.PrivateGetTile(X, Y, -1, 13625, 13628) then
 for i=13625 to 13628
  if UO.PrivateGetTile(X, Y, -1, i, i) then
   return i
  end if
 next
end if
return 0; No Harvest Tiles
end sub

:roll:

Posted: 2009-06-15 20:27:56
by Georg IV
Я хренею на глазах...
а что это за PrivateGetTile?
Что-то я у Ёко в хелпе такого не вижу....