
Tile
Moderators: Murderator+, Murderator
Tile
Is there a way to check the tile where player is and if its not desired one end script? 

Как я понял нужно искать в заданном тайле?
В АСМ это есть вроде:
asmWaitTragetStaticTile(string LogicType, number X, number Y, number Map)
Если на карте Map в координатах X,Y есть статичный объект, принадлежащий логическому типу LogicType по таблице статики, функция установит на него ловушку прицела UO.WaitTargetTile(***) и вернет 1. В противном случае функция вернет 0.
Пример:
З.Ы.Хотя фиг знае что ему надо =)
"ту милион доларс ... нипанятна ... фак ю спилберг" ©
В АСМ это есть вроде:
asmWaitTragetStaticTile(string LogicType, number X, number Y, number Map)
Если на карте Map в координатах X,Y есть статичный объект, принадлежащий логическому типу LogicType по таблице статики, функция установит на него ловушку прицела UO.WaitTargetTile(***) и вернет 1. В противном случае функция вернет 0.
Пример:
Code: Select all
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
Ururu
easy way to use uo.privategettile(x, y, -1, StartIndex, EndIndex)
Function return number of tiles maching to range StartIndex-EndIndex
example:
Function return number of tiles maching to range StartIndex-EndIndex
example:
Code: Select all
if uo.privategettile(x, y, -1, 1339, 1341) then
uo.print("We have a mine tile!!!")
endif
Code: Select all
UO.asmTLMapOpen('TLMapRock.txt'); Загрузим таблицу типов карты для скал
UO.asmTLStaticOpen('TLStaticRock.txt'); Загрузим таблицу типов статики для скал
Можно такое вытворять с деревьями, скалами и т.д. не выходя из дома.
А реально записать txt с тайлами на которых дома (тоесть любые непроходные тайлы), так же находясь на 1 месте, а не бегая по карте, переписывая все на 10 или 50 тайлов? Тоесть txt уже не с типами, а с координатами.

Шард Антарес
Ururu
Ururu
вот честно бредовые вопросы...
Асму нехватило пару фич для полноты рабьоты с файлами...
Достаточно ьбыло из тайл даты брать флаги проходимости и тд... дальше рисовать ваши бит карты проходимости...
по твоему вопросу могу ответить следующие...
Любой дом (а именно мультис), есть 1 предмет, это клиент его рисует уже составным... uo.privategettile должен видить все детали мири (куски дома тоже), асм же не в силах по происку среди динамики...
по этому берем инсайд уо, и выписываем диапозоны тайлов которые поподают под определение "не проходимые"... разумно будет жертвовать "проходимыми" тайлами, чтоб не разрывать диапозоны (не дробить на более мелкие)
Дальше скрипт с uo.privategettile покаждому из диапозонов... ну а дальше и так ясно...
Асму нехватило пару фич для полноты рабьоты с файлами...
Достаточно ьбыло из тайл даты брать флаги проходимости и тд... дальше рисовать ваши бит карты проходимости...
по твоему вопросу могу ответить следующие...
Любой дом (а именно мультис), есть 1 предмет, это клиент его рисует уже составным... uo.privategettile должен видить все детали мири (куски дома тоже), асм же не в силах по происку среди динамики...
по этому берем инсайд уо, и выписываем диапозоны тайлов которые поподают под определение "не проходимые"... разумно будет жертвовать "проходимыми" тайлами, чтоб не разрывать диапозоны (не дробить на более мелкие)
Дальше скрипт с uo.privategettile покаждому из диапозонов... ну а дальше и так ясно...
thanks guys
this is What Ive scripted

this is What Ive scripted
Code: Select all
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
Code: Select all
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