Yoko
http://forum.yoko.com.ua/

Tile
http://forum.yoko.com.ua/viewtopic.php?f=17&t=12331
Page 1 of 1

Author:  motxu [ 2007-08-18 22:27:28 ]
Post subject:  Tile

Is there a way to check the tile where player is and if its not desired one end script? :)

Author:  Ururu [ 2007-08-19 01:20:50 ]
Post subject: 

Как я понял нужно искать в заданном тайле?
В АСМ это есть вроде:

asmWaitTragetStaticTile(string LogicType, number X, number Y, number Map)

Если на карте Map в координатах X,Y есть статичный объект, принадлежащий логическому типу LogicType по таблице статики, функция установит на него ловушку прицела UO.WaitTargetTile(***) и вернет 1. В противном случае функция вернет 0.

Пример:
Code:
sub main()
Var CanMine
  UO.asmTLMapOpen('TLMapRock.txt'); Загрузим таблицу типов карты для скал
  UO.asmTLStaticOpen('TLStaticRock.txt'); Загрузим таблицу типов статики для скал
  CanMine=UO.asmWaitTargetMapTile('rock',UO.GetX(),UO.GetY(),0); Попытаемся установить прицел на карту
  If CanMine Then; Если получилось
    UO.UseType('0x0E85'); Используем кирку
  Else; Если не получилось
    CanMine=UO.asmWaitTargetStaticTile('rock',UO.GetX(),UO.GetY(),0); Попытаемся установить прицел на статику
    If CanMine Then; Если получилось
      UO.UseType('0x0E85'); Используем кирку
    EndIf
  EndIf
end sub


З.Ы.Хотя фиг знае что ему надо =)
"ту милион доларс ... нипанятна ... фак ю спилберг" ©

Author:  Grin [ 2007-08-19 01:31:29 ]
Post subject: 

easy way to use uo.privategettile(x, y, -1, StartIndex, EndIndex)
Function return number of tiles maching to range StartIndex-EndIndex

example:
Code:
if uo.privategettile(x, y, -1, 1339, 1341) then
uo.print("We have a mine tile!!!")
endif

Author:  Ururu [ 2007-08-19 01:48:36 ]
Post subject: 

а для простых смертных, незнающих языка великого B.G. не переведеш?

Кстати не подскажеш способ занести в таблицу .txt не статику =) Например дома, заборы ... :)

Author:  Grin [ 2007-08-19 02:24:42 ]
Post subject: 

по этой команде много примеров и описания написано...

второй вопрос не корректно сформулирован...

Author:  Ururu [ 2007-08-19 02:48:16 ]
Post subject: 

Code:
  UO.asmTLMapOpen('TLMapRock.txt'); Загрузим таблицу типов карты для скал 
  UO.asmTLStaticOpen('TLStaticRock.txt'); Загрузим таблицу типов статики для скал


Можно такое вытворять с деревьями, скалами и т.д. не выходя из дома.

А реально записать txt с тайлами на которых дома (тоесть любые непроходные тайлы), так же находясь на 1 месте, а не бегая по карте, переписывая все на 10 или 50 тайлов? Тоесть txt уже не с типами, а с координатами. :roll:

Author:  Grin [ 2007-08-19 03:06:13 ]
Post subject: 

вот честно бредовые вопросы...
Асму нехватило пару фич для полноты рабьоты с файлами...
Достаточно ьбыло из тайл даты брать флаги проходимости и тд... дальше рисовать ваши бит карты проходимости...

по твоему вопросу могу ответить следующие...

Любой дом (а именно мультис), есть 1 предмет, это клиент его рисует уже составным... uo.privategettile должен видить все детали мири (куски дома тоже), асм же не в силах по происку среди динамики...

по этому берем инсайд уо, и выписываем диапозоны тайлов которые поподают под определение "не проходимые"... разумно будет жертвовать "проходимыми" тайлами, чтоб не разрывать диапозоны (не дробить на более мелкие)

Дальше скрипт с uo.privategettile покаждому из диапозонов... ну а дальше и так ясно...

Author:  motxu [ 2007-08-19 12:20:39 ]
Post subject: 

thanks guys :)
this is What Ive scripted
Code:
sub pp()
VAR mx, my
VAR tile1 = 5260
VAR tile2 = 3354
mx = UO.GetX("self")
my = UO.GetY("self")
   if mx <> tile1 then
   uo.print ("FUCK WE ARE NOT ON TILE")
   else
   uo.print ("5260 ! !")
   end if
   if my <> tile2 then
   uo.print ("FUCK WE ARE NOT ON TILE")
   else
   uo.print ("3354 ! !")
   end if
end sub

Author:  Grin [ 2007-08-19 12:54:00 ]
Post subject: 

Code:
sub pp() 
VAR mx, my
VAR tile1 = 5260
VAR tile2 = 3354
mx = UO.GetX("self")
my = UO.GetY("self")
   if uo.privategettile(mx, my, -1, tile1, tile1) then
       uo.print ("5260 ! !")
   else
       uo.print ("FUCK WE ARE NOT ON TILE")
   end if
   if uo.privategettile(mx, my, -1, tile2, tile2) then
       uo.print ("3354 ! !")
   else
       uo.print ("FUCK WE ARE NOT ON TILE")
   end if
end sub

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/