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 :wink:

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')

зачем так если можно:

Code: Select all

UO.UseType('0x0f0d')

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')

зачем так если можно:

Code: Select all

UO.UseType('0x0f0d')


И та , и та конструкции не совершенны.
Дело в том, что не на всех шардах, но возможно такое что типы бутылок могут совпадать. К тому же, еще лучше было бы добавить цвет -а поиск первоначальный в бекпеке оправдывает себя, т.к. 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 юзать то он сначала берет банку из стопки как бы в руку и из руки ее юзает!