Yoko

All sides of Injection
It is currently 2025-10-21 16:17:41

All times are UTC+02:00




Post new topic  Reply to topic  [ 9 posts ] 
Author Message
 Post subject: Tile
PostPosted: 2007-08-18 22:27:28 
Offline

Joined: 2005-04-13 16:01:09
Posts: 48
Is there a way to check the tile where player is and if its not desired one end script? :)


Top
   
 Post subject:
PostPosted: 2007-08-19 01:20:50 
Offline
User avatar

Joined: 2007-02-21 20:15:57
Posts: 479
Как я понял нужно искать в заданном тайле?
В АСМ это есть вроде:

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


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

_________________
Шард Антарес
Ururu


Top
   
 Post subject:
PostPosted: 2007-08-19 01:31:29 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
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


Top
   
 Post subject:
PostPosted: 2007-08-19 01:48:36 
Offline
User avatar

Joined: 2007-02-21 20:15:57
Posts: 479
а для простых смертных, незнающих языка великого B.G. не переведеш?

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

_________________
Шард Антарес

Ururu


Top
   
 Post subject:
PostPosted: 2007-08-19 02:24:42 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
по этой команде много примеров и описания написано...

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


Top
   
 Post subject:
PostPosted: 2007-08-19 02:48:16 
Offline
User avatar

Joined: 2007-02-21 20:15:57
Posts: 479
Code:
  UO.asmTLMapOpen('TLMapRock.txt'); Загрузим таблицу типов карты для скал 
  UO.asmTLStaticOpen('TLStaticRock.txt'); Загрузим таблицу типов статики для скал


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

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

_________________
Шард Антарес

Ururu


Top
   
 Post subject:
PostPosted: 2007-08-19 03:06:13 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
вот честно бредовые вопросы...
Асму нехватило пару фич для полноты рабьоты с файлами...
Достаточно ьбыло из тайл даты брать флаги проходимости и тд... дальше рисовать ваши бит карты проходимости...

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

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

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

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


Top
   
 Post subject:
PostPosted: 2007-08-19 12:20:39 
Offline

Joined: 2005-04-13 16:01:09
Posts: 48
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


Top
   
 Post subject:
PostPosted: 2007-08-19 12:54:00 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 9 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited