АОС?StealthOCS wrote: свой шард.
Наследство от Edred-а
Moderators: Murderator+, Murderator
-
StealthOCS
- Posts: 32
- Joined: 2006-03-24 02:40:24
- Location: Odintsovo, Russia
- Contact:
AOS. Middle-Earth ( http://www.middle-earth.ru или http://middle-earth.netron.ru )SLAK wrote:АОС?StealthOCS wrote: свой шард.
Qui quaerit, reperit
Пример:StealthOCS wrote: AOS. Middle-Earth ( http://www.middle-earth.ru или http://middle-earth.netron.ru )
number asmMapGetTile(number X, number Y, number Map)
последний параметр "number Map" у тя в примере равен нулю, а это обычно миры Фелюка и Траммел, поиграйся с этим параметром
-
StealthOCS
- Posts: 32
- Joined: 2006-03-24 02:40:24
- Location: Odintsovo, Russia
- Contact:
У меня как раз Felucca или Trammel. Пробую в Миноке
- пишет номер (Dec), соответственно в Resource.map он есть (hex).
А вот - никогда не поисходит 
Вот мой пример:
Code: Select all
UO.Print(STR(UO.asmMapGetTile(INT(x), INT(y), 0)))А вот
Code: Select all
if UO.asmWaitTargetMapTile( 'rock ',INT(x), INT(y) , 0 ) then
uo.Print('ok')
endifВот мой пример:
Code: Select all
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
Qui quaerit, reperit
-
StealthOCS
- Posts: 32
- Joined: 2006-03-24 02:40:24
- Location: Odintsovo, Russia
- Contact:
Пробую вот такую конструкцию:
в той же процедуре (см.выше) - пишет, что rock, но if UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ) then - все равно не срабатывает 
Вторая ночь - разбор полета
Code: Select all
uo.print((UO.asmTLMapGetLogic(UO.asmMapGetTile(INT(x), INT(y), 0))))
Вторая ночь - разбор полета
Qui quaerit, reperit
Code: Select all
if UO.asmWaitTargetMapTile( 'rock ',INT(x), INT(y) , 0 ) then-
StealthOCS
- Posts: 32
- Joined: 2006-03-24 02:40:24
- Location: Odintsovo, Russia
- Contact:
-
StealthOCS
- Posts: 32
- Joined: 2006-03-24 02:40:24
- Location: Odintsovo, Russia
- Contact:
Я лично еще последнюю длл не тестил. Обязательно буду, но когда - вот в чем вопрос. Времени не хватает катастрофически...StealthOCS wrote:Жаль, но у меня не работает именно UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ).
У кого нить это работает???
ЗЫ: Попробуй аналогичную команду на статику, в лесу, в простом скрипте на ламбер. Просто интересно, это все кардинально или только с картой связано.
Такаяже проблема возникла и у меня, на дрв. Пробовал и скартой и со статикой.
Выдаёт всё нормально, совпадает с тем что есть в Resource_map.dat(конечно после перевода в hex).
А вот
и
Выдают 0.
Code: Select all
UO.Print(STR(UO.asmMapGetTile(INT(x), INT(y), 0))) А вот
Code: Select all
UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ).
и
Code: Select all
UO.asmWaitTargetStaticTile('tree', X, Y, 0) Выдают 0.
-
StealthOCS
- Posts: 32
- Joined: 2006-03-24 02:40:24
- Location: Odintsovo, Russia
- Contact:
Edred wrote:Я лично еще последнюю длл не тестил. Обязательно буду, но когда - вот в чем вопрос. Времени не хватает катастрофически...StealthOCS wrote:Жаль, но у меня не работает именно UO.asmWaitTargetMapTile( 'rock',INT(x), INT(y) , 0 ).
У кого нить это работает???
ЗЫ: Попробуй аналогичную команду на статику, в лесу, в простом скрипте на ламбер. Просто интересно, это все кардинально или только с картой связано.
Это не баг, это фича...
Дополнительные ловушки прицелов:
В 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: Select all
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Это ты про что? Версию, которой можно пользоваться, я выложил, работу с ини-файлами она поддерживает. Теперь собираю статистику работы по ней, сам буду еще тестить. Потом все замечания передам АГРСу, он поправит и тогда уже будет релиз. Чем меньше вы даете инфы о том, что работает или не работает, тем позже будет финальная версия.Koh wrote:так когда появится долгожданная версия асма???
-
StealthOCS
- Posts: 32
- Joined: 2006-03-24 02:40:24
- Location: Odintsovo, Russia
- Contact:
Приношу свои извинения по поводу поста о неработающих функциях в АСМ'е!!!
Все решилось после написания следующего кода (см.ниже)
1. Необходимо удалить лишние пробелы в файлах с ресурсами - и все встает на свои места.
2. MapGetTile смотрит на тайл находящийся на высоте MapGetZ, т.е. если вы в пещере - то он смотрит на верх горы (грубо говоря)
3. А amsWaitTargetMapTile, как я понял смотрит не на высоту MapGetZ, а на текущую, из-за этого хоть и TLMapGetLogic возвращает 'rock', но прицел не устанавливается.
ВСЕМ ОГРОМНОЕ СПАСИБО
Все решилось после написания следующего кода (см.ниже)
1. Необходимо удалить лишние пробелы в файлах с ресурсами - и все встает на свои места.
2. MapGetTile смотрит на тайл находящийся на высоте MapGetZ, т.е. если вы в пещере - то он смотрит на верх горы (грубо говоря)
3. А amsWaitTargetMapTile, как я понял смотрит не на высоту MapGetZ, а на текущую, из-за этого хоть и TLMapGetLogic возвращает 'rock', но прицел не устанавливается.
ВСЕМ ОГРОМНОЕ СПАСИБО
Code: Select all
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
Qui quaerit, reperit