Странная хрень у меня на РанУО

Ask for help

Moderators: Murderator+, Murderator

grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

Incorrect User wrote:И саму задержку в принципе межно перенести сразу за строку
.

Хаха! Вот финальная версия

Code: Select all

sub mineAroundSelf()
   VAR x,y,z='0',TileNum , iTileNum
   VAR  Counter, PickAxeType
   VAR  MaxCount=10  , startTime
   uo.concolor('0x1234')
   UO.FindType('0x0E86',-1,'my')
   If Uo.FindCount() Then
      PickAxetype='0x0E86'
   Else
      PickAxetype='0x0F39'
   Endif
   
   ## cliloc# 0x7AD03 You loosen some rocks
   ## cliloc# 0x7A2DE Too far away
   ## cliloc# 0x7AD00 There is no metal to mine
   ## cliloc# 0x7A867 Can't mine that
   For x=-2 to 2
      For y=-2 to 2
         iTileNum = uo.Hex2Int( uo.IsMineTile(UO.GetX()+x, UO.GetY()+Y) )
         TileNum = str(iTileNum)
         #uo.print('x=' + str(x) + ', y=' + str(y) + ', tileType=' + tileNum)
         if  iTileNum > 1338 AND iTileNum < 1360  then
            Counter=0
            uo.deletejournal()
            Repeat
               startTime = now()
               UO.WaitTargetTile(TileNum, UO.GetX() + x, UO.GetY() + Y, z)
               UO.UseType(PickAxeType)
               uo.WaitingForJournalText(startTime,3000,"You put some|There is no metal|0x7AD03|0x7A2DE|0x7A867|0x7AD00|0x7A197")
               wait(500)
               Counter=Counter+1
            Until UO.InJournal("7AD00|You can't mine") > 0  OR Counter > MaxCount
         endif
      Next
   Next
end sub

Вообще ни разу не было, чтобы не получил ответ.
Уменьшаю задержку до 300, и получаю периодичекое "You must wait to perfom another action"
Уменьшаю до 100, и эта массгага валиться постоянно.
Уменьшаю до 0, и начинается ад :)
Last edited by grundick on 2014-06-02 01:03:31, edited 4 times in total.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Странная хрень у меня на РанУО

Post by Incorrect User »

:wink: Только

Code: Select all

uo.WaitingForJournalText(startTime,1000
1000 наверное маловато?)
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

Да не, хватает. Проблем не возникает.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Странная хрень у меня на РанУО

Post by Incorrect User »

Как, у вас так быстро копает? у нас минимум 5-6 секунд. + сейв я ставлю 15 сек(15000) всегда в таких скриптах.
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

Да, здесь такая тема. Самому по началу непривычно было. За один взмах либо выкапывает, либо другую мессагу получаешь.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Странная хрень у меня на РанУО

Post by Incorrect User »

Ну таймер ставить оптимально время копки + время сейва с небольшим запасом. Иначе на сейве слетит и может сбиться будет кирку юзать бесконечно из за незаконченного действия.
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

Ну это уже когда на стелсе начну автономный писать :)

Кстати, когда в последнем варианте пытался убрать проверку на тайл и вернуться к первоначальному WaitTargetTile( ... , '1339', ... )
получал ошибку Target cannot be seen.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Странная хрень у меня на РанУО

Post by Incorrect User »

Это потому что номера разные, и похоже на вашем сервере нужно указывать точный номер. На нашем, к примеру, можно -1 поставить и будет копать.
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

Вообщем ,парни, видимо я вчера перебрал с алкоголем и наркотиками.
Реально проблема оказалась в WaitTargetTile, точнее, значении типа тайла. Проверил на БЕСТУО ради интереса, там пофигу какое значение ставить.
А вот где сейчас играю - нужно вставлять правильный тип тайла, иначе ответа от сервера не приходит.
В этом и была проблема.

Ещё вопрос по поводу IsMineTile. Эта функция как-то учитывает разницу в Z координатах чара и найденного тайла? А то я тут в пещере нашёл какой-то тайл 6006.
Это не скалистая крыша пещеры? :)
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Странная хрень у меня на РанУО

Post by Juicy Fruit »

Нет, поиск ведется без учета Z координаты.
Список тайлов где-то в теме с обновлением давал, ща лень искать)

Code: Select all

{616,  618},
{1339, 1363},
{2272, 2282},
{4963, 4973},
{6001, 6012},
{13121,13369},
{13446,13455},
{13484,13492},
{13625,13628}
Вполне может быть что он нашел верх скалы)
Если кроме этого тайла ничего больше не выдал после разделителя - значит там ничего и нет в статике. Если есть - можно фильтр написать на не интересующие тайлы.
Или юзать

Code: Select all

UO.PrivateGetTile(X,Y,GroundOrStatic,Tile1,Tile2)
Если нашлось что-то в этих координатах от Tile1 до Tile2 - возвращает ИД тайла из диапазона, в противном случае - пустую строку.
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

Понял, спасибо.
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

А что, IsMineTile (равно как и PrivateGetTile) не работают в мирах, отличных от Trammel? Залез в другой мир, а там обе функции возвращают нули на копаемых тайлах. Хотя _infotile возвращает правильный тип...
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Странная хрень у меня на РанУО

Post by Juicy Fruit »

Да, там не большой косяк с определением карты был.
В последнем релизе убрал автоопределение карты, всегда из 0 берет.
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

Juicy Fruit wrote:Или юзать

Code: Select all

UO.PrivateGetTile(X,Y,GroundOrStatic,Tile1,Tile2)
Если нашлось что-то в этих координатах от Tile1 до Tile2 - возвращает ИД тайла из диапазона, в противном случае - пустую строку.

А как насчёт создания расширенной версии, которая дополнительно принимала бы диапазон Z координат (z1, z2) , используемой для фильтрации найденных тайлов и возвращала что-то типа списка структур (хз, возможно ли это в инжекте. Может массив массивов?), где элементами структуры были бы тип тайла, его Z координата, ну и на будущее, флаги тайла ?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Странная хрень у меня на РанУО

Post by Incorrect User »

А что инфотайл не показывает координату? Из него и бери.
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

Incorrect User wrote:А что инфотайл не показывает координату? Из него и бери.

Что-то не совсем представляю, как это реализовать :)
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Странная хрень у меня на РанУО

Post by Incorrect User »

Можно было бы, getword если бы писало в журнал. Похоже нужна функция для определения Z, типа GetTileZ(x,y)
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Странная хрень у меня на РанУО

Post by Juicy Fruit »

grundick wrote:
Juicy Fruit wrote:Или юзать

Code: Select all

UO.PrivateGetTile(X,Y,GroundOrStatic,Tile1,Tile2)
Если нашлось что-то в этих координатах от Tile1 до Tile2 - возвращает ИД тайла из диапазона, в противном случае - пустую строку.

А как насчёт создания расширенной версии, которая дополнительно принимала бы диапазон Z координат (z1, z2) , используемой для фильтрации найденных тайлов и возвращала что-то типа списка структур (хз, возможно ли это в инжекте. Может массив массивов?), где элементами структуры были бы тип тайла, его Z координата, ну и на будущее, флаги тайла ?

viewtopic.php?f=12&t=16689&start=100#p94501
Совсем забыл, что в скрипт.длл тоже есть работа с мулами, но там нужно указывать принудительно путь к папке с УО.
Там же можно получить список всех тайлов с учетом их Z координаты.
Вырвать нужный тайл и его Z простым разбором строки, там дальше в теме есть готовый скрипт который это делает.
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Re: Странная хрень у меня на РанУО

Post by grundick »

А как определять какой мул подгружать? У меня тут с десяток файлов типа map....mul.
Портнулся в другой мир, на тайле 0x053C(-90) (по показаниям _infotile()) выдаёт 0x00A8(-5)

Кстати, а как IsTreeTile работает? Я смотрю деревья из двух тайлов состоят (ствол и листва), причём тайлы разных стволов имеют разные наборы флагов. Ориентироваться по тайлу листвы( (Foliage) ? По факту таргет можно и на листву, и на ствол бросать, однако логи у них общие(то есть если на листве всё вырубил, то и на стволе логов не будет)
Last edited by grundick on 2014-06-22 09:04:38, edited 2 times in total.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Странная хрень у меня на РанУО

Post by Juicy Fruit »

.where должна выдавать X, Y, Z, Map
Вот значение из Map это будет порядковый номер мула.
Post Reply