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

Замерить время между ударами
http://forum.yoko.com.ua/viewtopic.php?f=17&t=11935
Page 1 of 1

Author:  ArNeithen [ 2007-05-10 16:17:12 ]
Post subject:  Замерить время между ударами

Ммм... Дело вот в чём:
нужно проверить эффективность параметра DEX > 100 в рамках шарда DRW.

Идея заключается в создании скрипта, замеряющего время между ударами (получением целью повреждений?)
и выводящего эту величину в численном виде в окне, что-то вроде

Code:
uo.TextOpen() 
uo.TextPrint('Время между ударами '+ Время)


Для эффективности имело бы смысл замерять и выводить 3-4 удара подряд.



Был бы очень благодарен за подобную штуку...

Author:  Question_GimFlex [ 2007-05-11 06:25:58 ]
Post subject: 

берем и на голом чаре (которого бьем) запускаем
погрешность 1 милисекунда ( ну еще всего полно) :)
может не пахать
первое число не считается
расчитано на то что ты всегда попадаешь по голому чару
Code:
sub questiongim()
var n=0,p=0,p1=0,hepe=uo.life
uo.TextOpen()
while n<>6
 wait(1)
 p=p+1
 if uo.life<>hepe then
  hepe=uo.life
  uo.textprint(str(p-p1))
  p1=p
  n=n+1
 endif
wend
endsub
 

Author:  ArNeithen [ 2007-05-11 10:32:47 ]
Post subject: 

О!! Великолепно! Огромное спасибо, похоже что работает ))

Я немного модифицировал: не всегда есть голый чар с инжектом под рукой...
Так что для работы с монстрой (кому вдруг тоже нужно будет):

Code:
sub HitTime() 
var n=0,p=0,p1=0
var HP=uo.GetHP('laststatus')
uo.TextOpen()
while n<>6
 wait(1)
 p=p+1
if uo.GetHP('laststatus')<>HP then
  HP=uo.GetHP('laststatus')
  uo.textprint('время между ударами '+str(p-p1))
  p1=p
  n=n+1
 endif
wend
endsub



Ещё раз спасибо )
Ушёл тестить ловкость

Author:  Nmy [ 2007-05-11 12:28:03 ]
Post subject: 

Code:
if uo.GetHP('laststatus')<>HP then 

если у моба или противника регенирируется хп, если оно поднимется хоть на 1 еденицу, то инжа это запишет как удар- некоректно

Author:  ArNeithen [ 2007-05-11 12:33:20 ]
Post subject: 

Mr Nmy wrote:
Code:
if uo.GetHP('laststatus')<>HP then 

если у моба или противника регенирируется хп, если оно поднимется хоть на 1 еденицу, то инжа это запишет как удар- некоректно


В принципе согласен - нужно соответствующе выбирать мобов.
Есть ли у вас предложения по оптимизации в расчёте на указанный недостаток?

Можно, например, поставить разницу при сравнении hp в несколько пунктов...


.

Author:  Nmy [ 2007-05-11 13:29:06 ]
Post subject: 

нет надо просто зделать так:
Code:
if uo.GetHP('laststatus')<HP then

Author:  Sanch [ 2007-05-11 15:13:16 ]
Post subject: 

;Вилы 36, 35, 36, 36, 35, 35, 35
;Пика 28, 27, 27, 28, 27, 27, 27
;Барчич 28, 27, 26, 26, 27, 26, 28
;Викинг 27, 26, 27, 27, 27, 27, 26
;Вар Мейс 28, 26, 26, 28, 27, 26, 26
;Хелбард 35, 35, 35, 34, 34, 35, 36

;Найт 5, 5, 5, 5, 5, 4

Показатели времени удара, 1 ед. = 0.1 сек, это при 90 декс, я играю на дрв, 90 у тебя дексы или 120 значения не имеет, скорость одна и та же, при 89 скорость ниже становится.

Author:  Question_GimFlex [ 2007-05-11 15:56:51 ]
Post subject: 

Mr Nmy wrote:
Code:
if uo.GetHP('laststatus')<>HP then 

если у моба или противника регенирируется хп, если оно поднимется хоть на 1 еденицу, то инжа это запишет как удар- некоректно

я думаю скорость регенерации равняется в среднем как минимум больше чем 3 удара с учетом быстрого оружия если оружие двуручное и долгое то серию замеров надо увеличить примерно на 10-20 тогда мы сможем исключить замеры связаные с регенерацией тут уже неважно как ты замерял на самом деле главное правильно обработать результат :wink:

Author:  Mihail [ 2007-05-18 17:23:20 ]
Post subject: 

удары замерять по сообщениям журналы у кукулы которую бьешь

Author:  Destruction [ 2007-05-18 18:40:10 ]
Post subject: 

При бое с монстром можно ловить по звуку или анимации :)

Author:  Rivory [ 2007-05-18 18:45:18 ]
Post subject: 

это совсем уже для извращенцев. Зачем ? есть методы куда проще )

Author:  1a2a3a4a5a6a [ 2007-05-23 20:11:26 ]
Post subject: 

Sanch wrote:
;Вилы 36, 35, 36, 36, 35, 35, 35
;Пика 28, 27, 27, 28, 27, 27, 27
;Барчич 28, 27, 26, 26, 27, 26, 28
;Викинг 27, 26, 27, 27, 27, 27, 26
;Вар Мейс 28, 26, 26, 28, 27, 26, 26
;Хелбард 35, 35, 35, 34, 34, 35, 36

;Найт 5, 5, 5, 5, 5, 4

Показатели времени удара, 1 ед. = 0.1 сек, это при 90 декс, я играю на дрв, 90 у тебя дексы или 120 значения не имеет, скорость одна и та же, при 89 скорость ниже становится.

А со стрелковыми оружиями как дело обстоит?

Author:  Destruction [ 2007-05-24 09:20:37 ]
Post subject: 

Rivory wrote:
это совсем уже для извращенцев. Зачем ? есть методы куда проще )

Незнаю, я получил нашару премиум на абиса - они мне убрали "флуд" во время боя.

Но сообщения о промахах - мне как бы нужны, я именно через анимацию со звуками всё и возвращал :)

Author:  MacTepeo [ 2007-05-25 11:09:17 ]
Post subject: 

а не проще по журналу? для тестинга сойдёт думаю.

Author:  Destruction [ 2007-05-26 18:22:52 ]
Post subject: 

MacTepeo wrote:
а не проще по журналу? для тестинга сойдёт думаю.

Написал выше ведь..

На абисе не замеришь, если оплачен профпакет :)

Author:  Haxor [ 2007-06-24 00:04:41 ]
Post subject: 

Sanch wrote:
Показатели времени удара, 1 ед. = 0.1 сек, это при 90 декс, я играю на дрв, 90 у тебя дексы или 120 значения не имеет, скорость одна и та же, при 89 скорость ниже становится.

еще актуально ?

Author:  Mihail [ 2007-06-25 15:18:16 ]
Post subject: 

Destruction wrote:
..

а инжект че умеет реагировать на звуки и анимацию? (особенно интересуют звуки)

Author:  to4a [ 2007-06-26 05:10:34 ]
Post subject: 

угу.. от звука и толку больше, просто некоторые стандартные анимации(типа шагов напр.) анимацией и не считаются.
uo.set("soundecho",1)
uo.set("animecho",1)
uo.injournal("0x0000")

Author:  NiFiGaSebe [ 2007-06-26 18:49:20 ]
Post subject: 

мож кому пригодится) процент попаданий вепом

Code:
sub miss()
var times=0,miss=0
UO.DeleteJournal()
uo.TextOpen()
uo.TextClear()
uo.textprint(uo.getname(uo.ObjAtLayer("Rhand"))+':')
while not (UO.InJournal('You Miss') or UO.InJournal('You land') or UO.InJournal('You smash') or UO.InJournal('You knock') or UO.InJournal('You score') or UO.InJournal('You hit'))
wait(1)#чтобы не считался первый удар, на случай еси не одновременно начался бой и скрипт)
wend
UO.DeleteJournal()
while times<100
      while not (UO.InJournal('You Miss') or UO.InJournal('You land') or UO.InJournal('You smash') or UO.InJournal('You knock') or UO.InJournal('You score') or UO.InJournal('You hit'))
      wait(1)
      wend
   if UO.InJournal('You Miss') then
   miss=miss+1
   endif
   times=times+1
   uo.print(str(miss)+' промахов из '+str(times)+' ударов')
   UO.DeleteJournal()
wend
uo.textprint(str(miss)+' промахов из '+str(times)+' ударов')
uo.textprint(str(miss/times*100)+'% попаданий')
uo.print('Готово!')
end sub

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