XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Drulia_san
Великий Дрюля жив.
offline
Опыт: 8,569
Активность:
Формула скорости атаки
Я не понимаю, у меня сплошная лажа...
Я вычитал, что период между атаками это 1 / (1 + (PAB/100)) / BAT), где PAB это бонус к ускорению в процентах, а BAT - базовое КД атаки. Но сколько не считай, получается какое-то говно, то 1 ровно, то еще какие-то левые числа, а то что нужно получить не могу... Как вычислить нужное мне число?! Если к примеру у юнита базовое КД атаки(BAT) это 1.75, у него есть 13 ловкости (1 ед. ловкости = 2% бонуса к скорости атаки) и может лежат в инвентаре перчатки, которые добавляют еще +15%. Вопрос, как вычислить его новое кд атаки? Время которое будет между каждой его атакой. Если было скажем 1.75, а стало приблизительно 1.38. Вот эти 1.38 мне нужно вычислить по какой-то формуле, как будет выглядеть эта формула?
Старый 19.03.2014, 17:45
ScorpioT1000
Работаем
offline
Опыт: отключен
с минусом, потому что кулдаун = снижение времени между атаками
2% бонуса к скорости атаки = -(кулдаун*0,02) = -0,035
+15% к скорости атаки = -(кулдаун*0,15) = -0,2625
складываем с кулдауном 1,75 -0,035 -0,2625 = 1.4525
Старый 19.03.2014, 17:59
ZLOY5

offline
Опыт: 912
Активность:
100% скорости атаки не дает нам кд в 0 сек
Старый 19.03.2014, 18:05
Drulia_san
Великий Дрюля жив.
offline
Опыт: 8,569
Активность:
ScorpioT1000, вроде то, что нужно. Хотя странно, если слишком большое ускорение задать период и вовсе отрицательным станет, чего в природе быть не может. Ведь с бонусами всякими по 250% все равно получается 0.3 где-то или типа того, оно за 0 не заходит, может формула похитрее как-то выглядит?

Можно посмотреть на скрин, такое ведь в природе невозможно
Миниатюры
Кликните на картинку для увеличения
Название:  screen.png
Просмотров: 69
Размер:  66.6 Кбайт  

Отредактировано Drulia_san, 19.03.2014 в 18:17.
Старый 19.03.2014, 18:11
ScorpioT1000
Работаем
offline
Опыт: отключен
значит, скорость атаки - не работа с кулдауном
либо там другая арифметика немного
скиньте 3-5 примеров что было и что стало реальных, я подберу формулу
Старый 19.03.2014, 18:17
Drulia_san
Великий Дрюля жив.
offline
Опыт: 8,569
Активность:
ScorpioT1000, тогда как вычислять этот период в атаках?

Drulia_san добавил:
ScorpioT1000, сейчас в этот пост вброшу примеры из доты 2. В ней ведь используется идентичная система скорости атаки и там отображается то самое время.
Старый 19.03.2014, 18:22
ScorpioT1000
Работаем
offline
Опыт: отключен
2% бонуса к скорости атаки = 1 / (1 + 0,02) = 0.980...
15% к скорости атаки = 1 / (1 + 0,15) = 0,869...
перемножаем и получаем кулдаун 1,75 * 0,980 * 0,869 = 1.490335
тем самым если бонус к скорости атаки 100%, то кулдаун 1.75 * (1 / (1 + 1)) = 0.875
Старый 19.03.2014, 18:28
ZLOY5

offline
Опыт: 912
Активность:
unction AniSpeed takes integer AtSpeed,real AnSpeed returns real 
    local integer l = 0 
    local real data = AnSpeed 
    local real temp = AnSpeed 
    if AtSpeed > 0 then 
        loop 
            set temp = data - ( temp * ( 0.01 * l ) ) 
            set l = l + 1 
            exitwhen l > AtSpeed 
        endloop 
    endif 
    return temp 
 endfunction
вот что нашел
находит скорость анимации взависимости от скорости атаки
Старый 19.03.2014, 18:29
Drulia_san
Великий Дрюля жив.
offline
Опыт: 8,569
Активность:
Вот, 5 случаев с некоторыми героями с подробным описанием, я так понимаю в варкрафте всё идентично.

Drulia_san добавил:
ScorpioT1000, а то есть правильная формула вот такая? Если это то, что дает результат на моем скриншоте, то тогда это то, что мне нужно, спасибо!
Миниатюры
Кликните на картинку для увеличения
Название:  атаки.png
Просмотров: 127
Размер:  1.56 Мбайт  
Старый 19.03.2014, 18:48
Daro

offline
Опыт: 4,792
Активность:
А как собственно отловить скорость атаки в любой момент в игре?
Daro добавил:
Пробовал делать системку с таймером 0.01 ,но получилось туго и велосепедно.1 раз ударил ,походил ударил 2 раз и это он считает скоростью атаки
Старый 19.03.2014, 20:05
Melissa
Я всегда хочу как лучше!
offline
Опыт: 31,596
Активность:
ScorpioT1000:
2% бонуса к скорости атаки = -(кулдаун*0,02) = -0,035
+15% к скорости атаки = -(кулдаун*0,15) = -0,2625
первые 15% добавляют больше всего скорости, с 1.0 до 0.87 где то аж
а вот повышение АС с 350% до 400% ты и не заметишь.
и кстати, если кто не в курсе, максимальное состояние скорости атаки - +400%, минимальное вроде тоже -400%.
Причём +400% означает в 4 раза меньше задержка между атаками чем базовая.
Если надо схитрить и сделать меньше основное кд, но повысить максмально возможную АС - можно дать улучшение на -55% АС например. Тогда при базовом кд 1.00 будет основная скорость атаки примерно 1.65, а максимально возможная - 0.25
Старый 20.03.2014, 01:14
Extremator

offline
Опыт: 39,428
Активность:
Если базовая скорость атаки (перезарядка; BAS) равна 1.00 сек
то это будет 100% скорости атаки юнита
Как известно - максимум +400% и минимум -80%
Считаем с базовым
100% + 400% = 500% ...т.е. он сделает вместо 1 удара 5 за те же 1.00 сек ... 1.00 / 5 = 0.20
100% - 80% = 20% ... т.е. он сделает 1/5 удара (у точнее 1 удар за время увеличенное в 5 раз) ... 1.00 * 5 = 5.00
При повышении скорости атаки на 100% суммарно скорость будет равна 200% ... а это 2 удара за нормальное кд атаки... 2 удара за 1.00 ... 1.00 / 2 = 0.50
если не поняли мою мысль - вот расчёт
при +400% ... 100 + 400 = 500 ... 1 / 5 = 0,2 сек на 1 удар
при +300% ... 100 + 300 = 400 ... 1 / 4 = 0,25 сек на 1 удар
при +200% ... 100 + 200 = 300 ... 1 / 3 = 0,33 сек на 1 удар
при +100% ... 100 + 100 = 200 ... 1 / 2 = 0,50 сек на 1 удар
при +50% ... 100 + 50 = 150 ... 1 / 1,5 = 0,67 сек на 1 удар
при +10% ... 100 + 10 = 110 ... 1 / 1,1 = 0,9 сек на 1 удар
при +5% ... 100 + 5 = 105 ... 1 / 1,05 = 0,95 сек на 1 удар
при +1% ... 100 + 1 = 101 ... 1 / 1,01 = 0,99 сек на 1 удар
при -1% ... 100 + (-1) = 99 ... 1 / 0,99 = 1,01 сек на 1 удар
при -5% ... 100 + (-5) = 95 ... 1 / 0,95 = 1,05 сек на 1 удар
при -10% ... 100 + (-10) = 90 ... 1 / 0,9 = 1,11 сек на 1 удар
при -20% ... 100 + (-20) = 80 ... 1 / 0,8 = 1,22 сек на 1 удар
при -40% ... 100 + (-40) = 60 ... 1 / 0,5 = 1,67 сек на 1 удар
при -60% ... 100 + (-60) = 40 ... 1 / 0,4 = 2,5 сек на 1 удар
при -70% ... 100 + (-70) = 30 ... 1 / 0,3 = 3,33 сек на 1 удар
при -80% ... 100 + (-80) = 20 ... 1 / 0,2 = 5 сек на 1 удар
я проводил тесты - у меня сходилось...
Старый 20.03.2014, 01:21
Drulia_san
Великий Дрюля жив.
offline
Опыт: 8,569
Активность:
Всем огромное спасибо за помощь, научился правильно вычислять скорость атаки! Тему можно закрывать.
Старый 22.03.2014, 22:46
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 22:39.