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

Наследство от Edred-а
http://forum.yoko.com.ua/viewtopic.php?f=20&t=6903
Page 7 of 11

Author:  SLAK [ 2006-05-01 18:58:46 ]
Post subject: 

StealthOCS wrote:
свой шард.

АОС?

Author:  StealthOCS [ 2006-05-01 22:47:24 ]
Post subject: 

SLAK wrote:
StealthOCS wrote:
свой шард.

АОС?

AOS. Middle-Earth ( http://www.middle-earth.ru или http://middle-earth.netron.ru )

Author:  Edred [ 2006-05-02 00:07:45 ]
Post subject: 

Проверь содержание файлов Resource_Map.dat и Resource_Static.dat. Чем черт не шутит, я на АоСе очень давно играл, может там другие типы тайлов у вас в шахтах... Я и АГРС эти файлы на Сфере делали, на Цитадели и на ДРВ.

Author:  SLAK [ 2006-05-02 12:32:44 ]
Post subject: 

StealthOCS wrote:

Пример:
number asmMapGetTile(number X, number Y, number Map)
последний параметр "number Map" у тя в примере равен нулю, а это обычно миры Фелюка и Траммел, поиграйся с этим параметром :wink: Мне в свое время помогло...

Author:  StealthOCS [ 2006-05-02 23:42:41 ]
Post subject: 

У меня как раз Felucca или Trammel. Пробую в Миноке :(
Code:
UO.Print(STR(UO.asmMapGetTile(INT(x), INT(y), 0)))
- пишет номер (Dec), соответственно в Resource.map он есть (hex).
А вот
Code:
if UO.asmWaitTargetMapTile( 'rock ',INT(x), INT(y) , 0 ) then
   uo.Print('ok')
   endif
- никогда не поисходит :(
Вот мой пример:
Code:
sub Test()
var x,y
While true
   UO.asmTLMapClear()
   UO.asmTLMapOpen('Resource_Map.dat')
   UO.asmTLStaticClear()
   x=UO.GetX()
   y=UO.GetY()
   UO.Print(STR(UO.asmMapGetTile(INT(x), INT(y), 0)))
   if UO.asmWaitTargetMapTile( 'rock ',INT(x), INT(y) , 0 ) then
     uo.Print('ok')
   endif

   While UO.GetX()==x and UO.GetY()==y
    if uo.InJournal('stop') then
      DeleteJournal('stop')
     end if
      Wait(500)
   Wend

Wend
end sub

Author:  omi4 [ 2006-05-02 23:50:11 ]
Post subject: 

На RunUO фокус с Z равный 0 не проходит, указывай настоящее значение Z. Это не Сфера.

Author:  StealthOCS [ 2006-05-03 02:42:59 ]
Post subject: 

Пробую вот такую конструкцию:
Code:
uo.print((UO.asmTLMapGetLogic(UO.asmMapGetTile(INT(x), INT(y), 0))))

в той же процедуре (см.выше) - пишет, что rock, но if UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ) then - все равно не срабатывает :(

Вторая ночь - разбор полета :(

Author:  SLAK [ 2006-05-03 07:34:44 ]
Post subject: 

А какая у тебя версия АСМа? Там в некоторых версиях кажись эти команды не пашут... попробуй версию 412.25 чтоли.

Author:  Edred [ 2006-05-03 09:34:02 ]
Post subject: 

Code:
if UO.asmWaitTargetMapTile( 'rock ',INT(x), INT(y) , 0 ) then


А почему 'rock '? Пробел-то зачем тут? :shock: Ты две ночи не можешь найти пробел??? :shock: :shock: :shock: :shock:

Author:  StealthOCS [ 2006-05-03 21:18:42 ]
Post subject: 

Без пробела :)
Это при редактировании видимо пробел нажал :)

Author:  Edred [ 2006-05-03 22:25:55 ]
Post subject: 

Ну что ж, мне нужна статистика. На АоС я не пойду, клиент ставить не хочу, но все же хотел бы услышать еще от кого-нибудь, работает ли у него новая длл-ка с файлами карты. На других клиентах. Насчет АоСа передам АГРСу, но тут решения быстрее всего просто не будет, так что экспериментируй, пробуй.

Author:  StealthOCS [ 2006-05-03 23:43:53 ]
Post subject: 

Жаль, но у меня не работает именно UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ).
:(
У кого нить это работает???

Author:  Edred [ 2006-05-03 23:56:37 ]
Post subject: 

StealthOCS wrote:
Жаль, но у меня не работает именно UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ).
:(
У кого нить это работает???


Я лично еще последнюю длл не тестил. Обязательно буду, но когда - вот в чем вопрос. Времени не хватает катастрофически... :cry:

ЗЫ: Попробуй аналогичную команду на статику, в лесу, в простом скрипте на ламбер. Просто интересно, это все кардинально или только с картой связано.

Author:  Fransua [ 2006-05-04 00:56:31 ]
Post subject: 

Такаяже проблема возникла и у меня, на дрв. Пробовал и скартой и со статикой.

Code:
 UO.Print(STR(UO.asmMapGetTile(INT(x), INT(y), 0))) 

Выдаёт всё нормально, совпадает с тем что есть в Resource_map.dat(конечно после перевода в hex).
А вот
Code:
 UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ). 

и
Code:
UO.asmWaitTargetStaticTile('tree', X, Y, 0) 

Выдают 0.

Author:  StealthOCS [ 2006-05-04 02:07:17 ]
Post subject: 

Вот, вот...
Я не один :(

Author:  Diablik [ 2006-05-04 06:51:32 ]
Post subject: 

Сам макрос запускается, но работает ужасно медленно и деревья не видит. Шаг, 10 секунд пауза.

Author:  omi4 [ 2006-05-04 07:52:17 ]
Post subject: 

Edred wrote:
StealthOCS wrote:
Жаль, но у меня не работает именно UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ).
:(
У кого нить это работает???


Я лично еще последнюю длл не тестил. Обязательно буду, но когда - вот в чем вопрос. Времени не хватает катастрофически... :cry:

ЗЫ: Попробуй аналогичную команду на статику, в лесу, в простом скрипте на ламбер. Просто интересно, это все кардинально или только с картой связано.



Это не баг, это фича...


Quote:
Дополнительные ловушки прицелов:
В ASM реализованы несколько дополнительных ловушек прицелов. Практически все их можно заменить громоздкими функциями, но делать это следует только в том случае если вас не устраивает их функциональность. Такое может быть на некоторых шардах. Но лучше не быть эгоистом и предварительно обсудить со мной возможности их модернизации.

number asmWaitTragetMapTile(string LogicType, number X, number Y, number Map)
Если ячейка карты Map в координатах X,Y принадлежит логическому типу LogicType по таблице карты, функция установит ловушку прицела UO.WaitTargetTile('0',STR(X),STR(Y),STR(UO.asmMapGetZ(X,Y))) и вернет 1. В противном случае функция вернет 0.
Функция не будет работать в тех местах, где персонаж находится ниже уровня карты и всегда будет возвращать 0. Например в шахтах. Это сделано для вашей собственной безопасности, поскольку ни один трезвый ГМ не пройдет мимо персонажа, копающего потолок в шахте.

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


Code:
if UO.asmTLMapGetLogic(UO.asmMapGetTile(X,Y,0))=='water' then; Если у нас тут водичка
   UO.WaitTargetTile(STR(0),STR(X),STR(Y),STR(UO.asmMapGetZ(X,Y)); Устанавливаем на нее прицел
   UO.UseType(FishingPole); Используем удочку
   wait(5000); Ждем клева :)
endif

Author:  Koh [ 2006-05-04 22:02:29 ]
Post subject: 

так когда появится долгожданная версия асма???

Author:  Edred [ 2006-05-05 08:09:50 ]
Post subject: 

Koh wrote:
так когда появится долгожданная версия асма???


Это ты про что? Версию, которой можно пользоваться, я выложил, работу с ини-файлами она поддерживает. Теперь собираю статистику работы по ней, сам буду еще тестить. Потом все замечания передам АГРСу, он поправит и тогда уже будет релиз. Чем меньше вы даете инфы о том, что работает или не работает, тем позже будет финальная версия.

Author:  StealthOCS [ 2006-05-05 16:26:31 ]
Post subject: 

Приношу свои извинения по поводу поста о неработающих функциях в АСМ'е!!!
Все решилось после написания следующего кода (см.ниже)
1. Необходимо удалить лишние пробелы в файлах с ресурсами - и все встает на свои места.
2. MapGetTile смотрит на тайл находящийся на высоте MapGetZ, т.е. если вы в пещере - то он смотрит на верх горы (грубо говоря)
3. А amsWaitTargetMapTile, как я понял смотрит не на высоту MapGetZ, а на текущую, из-за этого хоть и TLMapGetLogic возвращает 'rock', но прицел не устанавливается.

ВСЕМ ОГРОМНОЕ СПАСИБО

Code:
sub testMAP()
    var X,Y,dx,dy,mgz,mgt,CanMine,nmap
    UO.asmTLMapOpen('Resource_Map.dat')
    UO.asmTLStaticOpen('Resource_Static.dat')
    While not uo.Dead()
    X=UO.GetX()
    Y=uo.GetY()
    dx=uo.GetX()
    dy=uo.GetY()
    mgz=uo.asmMapGetZ( X, Y, 0)
    mgt=uo.asmMapGetTile( X, Y, 0)
    UO.Print('--------------------------------')
    UO.Print('asmMapGetZ = '+str(mgz))
    UO.Print('asmMapGetTile = '+str(mgt))
    UO.Print('asmTLMapGetLogic = -'+uo.asmTLMapGetLogic(mgt)+'-')
        For nmap=0 to 3
            CanMine=UO.asmWaitTargetMapTile('rock',UO.GetX(),UO.GetY(),nmap)
                if CanMine Then
                    uo.Print('!asmWaitTargetMapTile'+str(nmap)+' - Ok')
                    uo.canceltarget()
                else
                    ;uo.Print('asmWaitTargetMapTile'+str(nmap)+' - Error')
                endif
            CanMine=UO.asmWaitTargetMapTile('rock ',UO.GetX(),UO.GetY(),nmap)
                if CanMine Then
                    uo.Print('!asmWaitTargetMapTile with space'+str(nmap)+' - Ok')
                    uo.canceltarget()
                else
                    ;uo.Print('asmWaitTargetMapTile with space'+str(nmap)+' - Error')
                endif
            CanMine=UO.asmWaitTargetStaticTile('rock',UO.GetX(),UO.GetY(),nmap)
               if CanMine Then
                    uo.Print('!!asmWaitTargetStaticTile'+str(nmap)+' - Ok')
                    uo.canceltarget()
                else
                    ;uo.Print('asmWaitTargetStaticTile'+str(nmap)+' - Error')
                endif
            CanMine=UO.asmWaitTargetStaticTile('rock ',UO.GetX(),UO.GetY(),nmap)
               if CanMine Then
                    uo.Print('!!asmWaitTargetStaticTile with space'+str(nmap)+' - Ok')
                    uo.canceltarget()
                else
                    ;uo.Print('asmWaitTargetStaticTile with space'+str(nmap)+' - Error')
                endif
        Next
    UO.Print('--------------------------------')
        while dx==X and dy==Y
        wait(100)
        dx=uo.GetX()
        dy=uo.GetY()
        WEnd
    WEnd


end sub

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