Page 1 of 1
Замерить время между ударами
Posted: 2007-05-10 16:17:12
by ArNeithen
Ммм... Дело вот в чём:
нужно проверить эффективность параметра DEX > 100 в рамках шарда DRW.
Идея заключается в создании скрипта, замеряющего время между ударами (получением целью повреждений?)
и выводящего эту величину в численном виде в окне, что-то вроде
Code: Select all
uo.TextOpen()
uo.TextPrint('Время между ударами '+ Время)
Для эффективности имело бы смысл замерять и выводить 3-4 удара подряд.
Был бы очень благодарен за подобную штуку...
Posted: 2007-05-11 06:25:58
by Question_GimFlex
берем и на голом чаре (которого бьем) запускаем
погрешность 1 милисекунда ( ну еще всего полно)
может не пахать
первое число не считается
расчитано на то что ты всегда попадаешь по голому чару
Code: Select all
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
Posted: 2007-05-11 10:32:47
by ArNeithen
О!! Великолепно! Огромное спасибо, похоже что работает ))
Я немного модифицировал: не всегда есть голый чар с инжектом под рукой...
Так что
для работы с монстрой (кому вдруг тоже нужно будет):
Code: Select all
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
Ещё раз спасибо )
Ушёл тестить ловкость
Posted: 2007-05-11 12:28:03
by Nmy
Code: Select all
if uo.GetHP('laststatus')<>HP then
если у моба или противника регенирируется хп, если оно поднимется хоть на 1 еденицу, то инжа это запишет как удар- некоректно
Posted: 2007-05-11 12:33:20
by ArNeithen
Mr Nmy wrote:Code: Select all
if uo.GetHP('laststatus')<>HP then
если у моба или противника регенирируется хп, если оно поднимется хоть на 1 еденицу, то инжа это запишет как удар- некоректно
В принципе согласен - нужно соответствующе выбирать мобов.
Есть ли у вас предложения по оптимизации в расчёте на указанный недостаток?
Можно, например, поставить разницу при сравнении hp в несколько пунктов...
.
Posted: 2007-05-11 13:29:06
by Nmy
нет надо просто зделать так:
Posted: 2007-05-11 15:13:16
by Sanch
;Вилы 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 скорость ниже становится.
Posted: 2007-05-11 15:56:51
by Question_GimFlex
Mr Nmy wrote:Code: Select all
if uo.GetHP('laststatus')<>HP then
если у моба или противника регенирируется хп, если оно поднимется хоть на 1 еденицу, то инжа это запишет как удар- некоректно
я думаю скорость регенерации равняется в среднем как минимум больше чем 3 удара с учетом быстрого оружия если оружие двуручное и долгое то серию замеров надо увеличить примерно на 10-20 тогда мы сможем исключить замеры связаные с регенерацией тут уже неважно как ты замерял на самом деле главное правильно обработать результат

Posted: 2007-05-18 17:23:20
by Mihail
удары замерять по сообщениям журналы у кукулы которую бьешь
Posted: 2007-05-18 18:40:10
by Destruction
При бое с монстром можно ловить по звуку или анимации

Posted: 2007-05-18 18:45:18
by Rivory
это совсем уже для извращенцев. Зачем ? есть методы куда проще )
Posted: 2007-05-23 20:11:26
by 1a2a3a4a5a6a
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 скорость ниже становится.
А со стрелковыми оружиями как дело обстоит?
Posted: 2007-05-24 09:20:37
by Destruction
Rivory wrote:это совсем уже для извращенцев. Зачем ? есть методы куда проще )
Незнаю, я получил нашару премиум на абиса - они мне убрали "флуд" во время боя.
Но сообщения о промахах - мне как бы нужны, я именно через анимацию со звуками всё и возвращал

Posted: 2007-05-25 11:09:17
by MacTepeo
а не проще по журналу? для тестинга сойдёт думаю.
Posted: 2007-05-26 18:22:52
by Destruction
MacTepeo wrote:а не проще по журналу? для тестинга сойдёт думаю.
Написал выше ведь..
На абисе не замеришь, если оплачен профпакет

Posted: 2007-06-24 00:04:41
by Haxor
Sanch wrote:Показатели времени удара, 1 ед. = 0.1 сек, это при 90 декс, я играю на дрв, 90 у тебя дексы или 120 значения не имеет, скорость одна и та же, при 89 скорость ниже становится.
еще актуально ?
Posted: 2007-06-25 15:18:16
by Mihail
Destruction wrote:..
а инжект че умеет реагировать на звуки и анимацию? (особенно интересуют звуки)
Posted: 2007-06-26 05:10:34
by to4a
угу.. от звука и толку больше, просто некоторые стандартные анимации(типа шагов напр.) анимацией и не считаются.
uo.set("soundecho",1)
uo.set("animecho",1)
uo.injournal("0x0000")
Posted: 2007-06-26 18:49:20
by NiFiGaSebe
мож кому пригодится) процент попаданий вепом
Code: Select all
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