Yoko

All sides of Injection
It is currently 2026-02-07 13:52:04

All times are UTC+02:00




Post new topic  Reply to topic  [ 17 posts ] 
Author Message
PostPosted: 2009-02-15 16:00:38 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Code:
; explosion on last target
; Hotkeys- Add new hotkey- Command ,exec exp

sub exp()
   var i,k
   
   uo.set('blocktargets', 1)   ; выключаем отображение таргетов клиента
   
   uo.deletejournal()
   
   uo.useobject('0x74D73B0C') ;explosion potion (,info)
   
   wait(100)
   
   if uo.injournal("Select a target") then  ; проверка
      wait(2000)  ;  2,7sec                       ; время до того, как кинуть банку
      uo.target(0x00000004, 'lasttarget')  ; вот тут скорее всего проблема
      wait(100)
      uo.set('blocktargets', 0)               ; отблочиваем таргеты
      wait(17000)
      for i = 0 to 10    ; с этим отсчетом проблем нет
         k=10-i
         uo.print(str(k)) ; ots4et
         wait(1000)
      next
   end if
   uo.set('blocktargets', 0)     ; поставит таргеты на место
end sub



Скрипт, собственно, юзает экспоужен бутылку, ждет определенное время и кидает ее в супостата. И все бы ничего, если бы скрипт не имел две пренепреятнейшие особенности, иногда вместо исполнения своих обязанностей скрипт или пишет You can't see that! (стоя напротив цели) в то время как кидается target(), либо, в крайнем случае, пишет Warning! Error in command после чего успешно взрывает владельца, при этом слайд эффектом идет заедание таргета, и приходится писать ,info и на чем- нибудь щелкать, чтобы эффект данный прошел.
Проблема судя по всему в uo.target(). Lasttargetkey 0x00000004 получен с помощью команды 0x00000004 uo.print(uo.getserial('lasttarget')).
Также хочу заметить, что от замены 'lasttarget' на 'laststatus' ничего не меняется.

В итоге мне хотелось бы узнать, что необходимо исправить в скрипте, чтобы он вел себя более вменяемо.


Top
   
 Post subject:
PostPosted: 2009-02-15 17:56:11 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
юзай бомбу не по ID, а по типу, серийник у всех предметов разный, то есть ты одну бомбу бахнул, у следующей уже серийник другой, и целиться попробуй чуть по другому
Code:
; explosion on last target 
; Hotkeys- Add new hotkey- Command ,exec exp

sub exp()
   uo.deletejournal()
    uo.usetype('0x????') ;explosion potion (,info) тут тип пропиши, в инфо следующая цифра после ID
    uo.deletejournal()
         repeat
             wait(100)
         until uo.injournal("Select a target") ; проверка
      wait(2000)  ;  2,7sec                       ; время до того, как кинуть банку
      uo.waittargetobject('laststatus')
      wait(17000)
      for var i = 10 to 0    ; с этим отсчетом проблем нет
         uo.print(str(i)) ; ots4et
         wait(1000)
      next
end sub


P.S. не тестил


Last edited by Millerbeer on 2009-02-15 19:59:33, edited 1 time in total.

Top
   
 Post subject:
PostPosted: 2009-02-15 18:01:55 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Заменил на uo.usetype('0x0F0E','0x069A') , но все равно. Тем более не менялся id раньше, но юзтайп все равно лучше. Пока проблема сузилась до 'lasttarget' он почему- то глючит. То есть если предварительно спел кинуть по waittargetlast(), то скрипт вроде работает стабильно.
По waittargetobject задержку поставить, по крайней мере я так считаю, невозможно.


Top
   
 Post subject:
PostPosted: 2009-02-15 18:08:32 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
ну там ловушка стоит в ластстатус, на цель левой кнопкой мыши жмёшь и тащишь, чтоб ластстатус получить и потом скрипт запускаешь


Top
   
 Post subject:
PostPosted: 2009-02-15 18:42:07 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Ничего не меняет.


Top
   
 Post subject:
PostPosted: 2009-02-15 18:47:30 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
А ты мой вариант пробуешь? или свой?


Top
   
 Post subject:
PostPosted: 2009-02-15 19:01:40 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Millerbeer wrote:
А ты мой вариант пробуешь? или свой?

У твоего есть одна небольшая проблема, waittarget должен использоваться до usetype по правилам.


Top
   
 Post subject:
PostPosted: 2009-02-15 19:04:14 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
по идее да, но на практике вроде пофиг, что ловушку ставишь до юза, что юзанешь, появится прицел, потом ставишь ловушку и она нормально срабатывает


Top
   
 Post subject:
PostPosted: 2009-02-15 19:29:19 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Millerbeer wrote:
по идее да, но на практике вроде пофиг, что ловушку ставишь до юза, что юзанешь, появится прицел, потом ставишь ловушку и она нормально срабатывает

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

Проблема вроде определилась, каким- то образом сбивается ласттаргет, не смотря на то, что сериал таргета не меняется.
Каким- то образом если кастануть спел по waittargetlast до юза эксплоужена то все работает (пока как часы).
Каким- то образом если юзнуть скил с таргетом на цель (вместо спела), то все равно багует.
А значит необходимо эмулировать каст спела, желательно при этом его не кастуя и быстро это сделать.
Вопрос, как эмулировать каст спела или как еще можно добится желаемого результата?


Top
   
 Post subject:
PostPosted: 2009-02-15 20:20:07 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
Потестил у нас на шарде, у нас взрывчатка кидается на пол, поэтому пришлось мудрить с киркой и ласт тайлом, для чистоты эксперимента в начале скрипта впихнул канселтаргет и чр27, это чтоб ты не думал, что срабатывает не с первого, а со второго раза и выводы следующие:
если ты юзанул чегото и прицел появился, можешь сделать паузу, какую тебе надо, потом кинуть ловушку, какой-нить вейт таргет, всё замечательно сработает именно на первый прицел, не на второй не на третий не на 28, миф подтверждён :D вот скрипт
Code:
sub exp()
   if uo.waiting() then
      uo.canceltarget()
   endif
   if uo.targeting() then
      uo.say(chr(27))
   endif
   uo.print('покажь цель')
   uo.usetype('0x0E85')
      while uo.targeting()
         wait(300)
      wend
      wait(3000)
    uo.usetype('0x0F0D','0x0B99')
    uo.deletejournal()
         repeat
             wait(100)
         until uo.injournal('Where do')
      wait(1000)  ;  2,7sec       
      uo.waittargettile('lasttile') 
      for var i=0 to 10   
         uo.print(str(10-i)) ; ots4et
         wait(500)
      next
end sub


Top
   
 Post subject:
PostPosted: 2009-02-15 20:51:05 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Code:
sub exp()
uo.useskill('Anatomy')
wait(500)
uo.waittargetobject('self')
end sub


У меня даже такой скрипт не работает.


Top
   
 Post subject:
PostPosted: 2009-02-15 21:57:46 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
ндя, такое и у меня не работает :D


Top
   
 Post subject:
PostPosted: 2009-02-15 22:35:47 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Как объяснить, что этот скрипт работает,


Code:
sub exp()
   var i,k
   if uo.waiting() or uo.targeting() then
      uo.canceltarget()
      uo.say(chr(27))
   end if
   uo.deletejournal()
   uo.waittargetlast()
   uo.cast('Poison')
   repeat
      wait(50)
   until uo.injournal('eval_damage=')
   uo.set('blocktargets', 1)
   uo.usetype('0x0F0E','0x069A')
   repeat
      wait(50)
   until uo.injournal('Select a target') or uo.injournal('You cannot use this yet!')
   if uo.injournal("Select a target") then
      wait(2600)
      uo.target(0x00000004, 'lasttarget')
      wait(100)
      uo.set('blocktargets', 0)
      wait(17000)
      for i = 0 to 10
         k=10-i
         uo.print(str(k)) ; ots4et
         wait(1000)
      next
   end if
   uo.set('blocktargets', 0)
end sub


а этот не работает?

Code:
sub exp()
   var i,k
   if uo.waiting() or uo.targeting() then
      uo.canceltarget()
      uo.say(chr(27))
   end if
   uo.deletejournal()
   uo.waittargetlast()
   uo.cast('Magic Arrow')
   repeat
      wait(50)
   until UO.injournal('eval_damage=')
   uo.set('blocktargets', 1)
   uo.usetype('0x0F0E','0x069A')
   repeat
      wait(50)
   until uo.injournal('Select a target') or uo.injournal('You cannot use this yet!')
   if uo.injournal("Select a target") then
      wait(2600)
      uo.target(0x00000004, 'lasttarget')
      wait(100)
      uo.set('blocktargets', 0)
      wait(17000)
      for i = 0 to 10
         k=10-i
         uo.print(str(k)) ; ots4et
         wait(1000)
      next
   end if
   uo.set('blocktargets', 0)
end sub


Если я не ошибаюсь, отличие в скриптах только одно, в первом кастуется пойзон, во втором стрелка. Причем если вместо стрелки кастуется фаербол (тоже 3уровень магии как и пойзон), то все равно не работает.
То есть кастуется спел, а когда бутылку надо кидать пишет you can't see that.
Проверка проходила так- я реколился вторым чаром куда-нибудь и реколился обратно. Если в скрипте кастовался пойзон по нему, то потом кидалась бомба. Если кастовалась стрелка или фаербол, то you cant see that и бомба не кидалась.
Что это за полтергейст? И можно ли как нибудь без пойзона кидать экспоужен?


Top
   
 Post subject:
PostPosted: 2009-02-16 06:59:13 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
А если просто uo.lclick, юзанул бомбу, выдержал паузу и левый клик по цели


Top
   
 Post subject:
PostPosted: 2009-02-16 15:16:19 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Millerbeer wrote:
А если просто uo.lclick, юзанул бомбу, выдержал паузу и левый клик по цели


Что написать нужно в uo.click?
Сейчас кстати попробовал уошным ласттаргетом кидать бомбу, и нифига, не видит цель, хотя скилы и спелы работают. В чем то тут может быть проблема?


Top
   
 Post subject:
PostPosted: 2009-02-16 15:51:23 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
Не, uo.lclick не покатит, там аргументы ток координаты, указатели не принимаются, а какой именно уошный ласттаргет, что за скрипт вообще?


Top
   
 Post subject:
PostPosted: 2009-02-16 16:39:42 
Offline

Joined: 2009-02-15 15:38:29
Posts: 10
Millerbeer wrote:
Не, uo.lclick не покатит, там аргументы ток координаты, указатели не принимаются, а какой именно уошный ласттаргет, что за скрипт вообще?


lasttarget в уо макросе


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 17 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited