Page 1 of 1
kidaem exploishen
Posted: 2006-10-11 23:19:14
by Bangbuss
pomogite sozdat' takoj skript:
v backpacke est exploushen butilki:
nazhimaem 2x na exploushen butilku, zhdom 2,9 sekundi, kidaem v lasttarget.
Spasib zaranee.
Re: kidaem exploishen
Posted: 2006-10-11 23:37:36
by comatoza
Bangbuss wrote:pomogite sozdat' takoj skript:
v backpacke est exploushen butilki:
nazhimaem 2x na exploushen butilku, zhdom 2,9 sekundi, kidaem v lasttarget.
Spasib zaranee.
Code: Select all
sub throw()
uo.usetype('explosion')
while not uo.targeting()
wait(100)
wend
uo.waittargetobject('laststatus;)
end sub
попробуй так
Re: kidaem exploishen
Posted: 2006-10-12 01:27:25
by Edred
comatoza wrote:попробуй так
Если еще не умеешь нормально писать скрипты, то проверяй, прежде чем постить.
Code: Select all
sub throw()
uo.usetype('explosion')
while not uo.targeting()
wait(100)
wend
uo.waittargetobject('laststatus;)
end sub
Этот скрипт не будет работать по определению. Ловушку на прицел надо ставить
перед тем, как юзать объект!!! RTFM.
Posted: 2006-10-12 02:29:32
by Bangbuss
Da, ti prav, nerabotaet

Re: kidaem exploishen
Posted: 2006-10-12 04:14:52
by comatoza
Edred wrote:comatoza wrote:попробуй так
Если еще не умеешь нормально писать скрипты, то проверяй, прежде чем постить.
Code: Select all
sub throw()
uo.usetype('explosion')
while not uo.targeting()
wait(100)
wend
uo.waittargetobject('laststatus;)
end sub
Этот скрипт не будет работать по определению. Ловушку на прицел надо ставить
перед тем, как юзать объект!!! RTFM.
Эд

ты, конечно, прав... по определению... но и тока... он не работает, но не поэтому... а имеено скорее всего из-за таргетинга - писал не проверяя, просто то что в балду пришло....
в обычном случае:
uo.usetype(xxxx)
uo.waittargettype(xxxx)
пока клиент отреагирует таргет успевает....

Re: kidaem exploishen
Posted: 2006-10-12 08:23:32
by Edred
comatoza wrote:в обычном случае:
uo.usetype(xxxx)
uo.waittargettype(xxxx)
пока клиент отреагирует таргет успевает....

Никуда клиент не успевает. Просто у тебя это хозяйство стоит в цикле, вот юзтайп и хавает ловушку, установленную в предыдущем круге исполнения цикла. Что не есть хорошо, точнее, есть весьма не хорошо. Так как у тебя постоянно висит на чаре лишний неиспользованный таргет, который еще и может накапливаться на лагах - вот тут креш клиенте или анхандлед еррор ин парсер практически гарантированы.
Правильная методика:
Code: Select all
if uo.waiting() then
uo.canceltarget()
endif
uo.DeleteJournal()
uo.waittargetobject(объект)
uo.usetype(тип)
k = 0
repeat
wait(100)
k = k + 1
until uo.InJoutrnal(сообщение и физле) or uo.InJoutrnal(сообщение и успехе) or k > лимит_по_времени
Проверок сообщений может быть больше. Или это проверка расхода маны или еще чего. Лимит по времени считается в сотнях миллисекунд с запасом на сейв мира. Делитжурнал лучше заменить на функцию с аналогичным названием, удаляющую отдельную строку из журнала. Но это уже частности. Общий случай же выглядит именно так.
Posted: 2006-10-12 12:01:30
by Scripts Writer
Моё мнение:
Надо забить ловушку на тайл на котором будет стоять цель по ластстатусу в последнюю 0.1 секунды, и держать прицел до этого времени.
Возможно через инфотайл клик в последнюю секунду отсчёта таймера.
Posted: 2006-10-17 12:32:44
by Chico
Я так юзаю
Code: Select all
sub BombDrop()
uo.waittargetobject("Enemy")
var bomb='0x0f0d'
UO.FindType(bomb,'backpack')
UO.UseObject('finditem')
end sub
[/code]
Re: kidaem exploishen
Posted: 2006-10-17 13:44:49
by comatoza
Edred wrote:comatoza wrote:в обычном случае:
uo.usetype(xxxx)
uo.waittargettype(xxxx)
пока клиент отреагирует таргет успевает....

Никуда клиент не успевает. Просто у тебя это хозяйство стоит в цикле, вот юзтайп и хавает ловушку, установленную в предыдущем круге исполнения цикла. Что не есть хорошо, точнее, есть весьма не хорошо. Так как у тебя постоянно висит на чаре лишний неиспользованный таргет, который еще и может накапливаться на лагах - вот тут креш клиенте или анхандлед еррор ин парсер практически гарантированы.
Правильная методика:
Code: Select all
if uo.waiting() then
uo.canceltarget()
endif
uo.DeleteJournal()
uo.waittargetobject(объект)
uo.usetype(тип)
k = 0
repeat
wait(100)
k = k + 1
until uo.InJoutrnal(сообщение и физле) or uo.InJoutrnal(сообщение и успехе) or k > лимит_по_времени
Проверок сообщений может быть больше. Или это проверка расхода маны или еще чего. Лимит по времени считается в сотнях миллисекунд с запасом на сейв мира. Делитжурнал лучше заменить на функцию с аналогичным названием, удаляющую отдельную строку из журнала. Но это уже частности. Общий случай же выглядит именно так.
пасиба... принял к сведению...
Posted: 2006-10-17 14:26:56
by Nmy
Code: Select all
var bomb='0x0f0d'
UO.FindType(bomb,'backpack')
UO.UseObject('finditem')
зачем так если можно:
Posted: 2006-10-17 14:58:10
by Scripts Writer
NMY wrote:Code: Select all
var bomb='0x0f0d'
UO.FindType(bomb,'backpack')
UO.UseObject('finditem')
зачем так если можно:
И та , и та конструкции не совершенны.
Дело в том, что не на всех шардах, но возможно такое что типы бутылок могут совпадать. К тому же, еще лучше было бы добавить цвет -а поиск первоначальный в бекпеке оправдывает себя, т.к. No item found не лучшее завершение боя.
Posted: 2006-10-19 09:30:42
by Don SpiL
Code: Select all
sub explo()
var batla="0x0F0D"
uo.findtype(batla,-1,"my")
uo.setreceivingcontainer("MMM")
uo.grab("1","finditem")
wait(600)
uo.waittargetobject("lastattack")
uo.useobject("finditem")
uo.setreceivingcontainer("backpack")
end sub
Работает кароче так..банки лежат в паке или в сумке,пачькой или по одной разницы нет! Кидает банку на последний атакуемый обьект.
uo.setreceivingcontainer("MMM") - контейнер прописывать НЕ нада...суть как раз в том что этот контейнер не существует. Для чего? для того что на моем шарде
www.nova-uo.com кидать банку можно только если она еденичная т.е. из стопки нельзя,нужно сначала разложить а потом кидать. А если uo.grab юзать то он сначала берет банку из стопки как бы в руку и из руки ее юзает!