Как посчитать урон в секунду
Перейти к содержимому

Как посчитать урон в секунду

  • автор:

Помогите рассчитать DPS

Всем привет нужна помочь в объяснение как правильно посчитать DPS/ для оружей. По какой формуле.

урон — 4
шанс крита % — 25%
урон крита — 7
скорострельность в сек — 0.4 сек
размер магазина — 7
дальность в м — 100м
время перезарядки в сек — 8 сек

урон — 3
шанс крита % — 10%
урон крита — 6
скорострельность в сек — 0.3 сек
размер магазина — 10
дальность в м — 150м
время перезарядки в сек — 6 сек

#1
19:08, 9 мая 2019

StainBerg
Оружие — метла дворницкая
урон — нэт урона, адын польза!
шанс крита — а не надо махать на того, на кого не надо
урон крита — адын пендаль в жопу
скорострельность в сек — это как махать
размер магазина — магазын — далеко, огненный вада — дорого
дальность в м — отсюда и до обеда
время перезарядки в сек — какой секунд? спакойно сиди, чай наливай.

#2
19:56, 9 мая 2019

gudleifr
Спасибо большое!)) как сам раньше не догадался

  • endeavour_pr
  • Постоялец

#3
20:11, 9 мая 2019

а в чём трудности ?

#4
20:15, 9 мая 2019

Дальность не нужна — она в не учитывается.
А ДПС будет 2 цифры: максимальная — между перезарядками, и средняя — с учётом перезорядок.
А по точным цифрам и правда:
endeavour_pr
> а в чём трудности ?
Вроде всё просто.

#5
20:33, 9 мая 2019

урон — D
шанс крита % — Cch
урон крита — Cd
скорострельность в сек — Ts
размер магазина — V
время перезарядки в сек — Tr

Как-то так. Можно проверить, набросав модель в каком-нибудь Python.
((D + (Cd — D) * Cch) * V) / (Ts * V + Tr)

#6
20:59, 9 мая 2019

По формуле получается:
((4 + (7 — 4) * 0.25) * 7) / (0.4 * 7 + 8) = 3.0787037037

Набросал модель на Python:

import random damage = 4 critChance = 0.25 critDamage = 7 shootDelay = 0.4 volume = 7 reloadDelay = 8 def ComputeMagazineDamage(): damageSumm = 0 for i in range(volume): if random.random() < critChance: damageSumm += critDamage else: damageSumm += damage timeSumm = shootDelay * volume + reloadDelay return damageSumm, timeSumm random.seed() damageSumm = 0.0 timeSumm = 0 for i in range(10000): cDamage, cTime = ComputeMagazineDamage() damageSumm += cDamage timeSumm += cTime print(damageSumm / timeSumm)

По модели получается примерно такой же DPS (плюс-минус 0.01)

#7
21:01, 9 мая 2019

StainBerg
Если придумать, как дальность влияет на урон, то можно и её задействовать.

#8
22:26, 9 мая 2019

Dmitrrr
> Дальность не нужна - она в не учитывается
Васян
> как дальность влияет на урон, то можно и её задействовать.
Учитывается, когда есть значительная "толщина" моба, который бежит к вам (ближний бой).
А так: лишнее время на сближения противников на расстояние работы своего оружия.
Поэтому, дпс будет выше базового, кто раньше начинает стрелять.

StainBerg
> как правильно посчитать DPS/ для оружей
Правильно - это когда скорострельность и урон. Всего два параметра!
Все остальные параметры - вычисления баланса
. поэтому к правильности не имеют отношения:)

#9
1:11, 10 мая 2019

Сразу скажу, что я не балансер, а нарративщик, поэтому могу ошибаться, но у меня получилось вот это. В таблице, по-моему, считать удобнее. Вбил формулу 1 раз, а потом просто меняешь данные - и все. Сама формула в графе DPS.

P.S. Дальность стрельбы здесь вообще ни к чему по-моему. Она нужна или для того, чтобы сбить с толку, или же условия задачи не полные.
P.P.S. Если ошибся в расчетах - поправьте, пожалуйста. :))

Васян
Хм, а у нас разные формулы и результаты получились. Видимо, я все-таки ошибся. Вот эта часть формулы мне вообще не понятна:
> ((4 + (7 - 4) * 0.25) * 7)

#10
7:07, 10 мая 2019

Indoril
> Не разъясните?
урон - D
шанс крита % - Cch
урон крита - Cd
скорострельность в сек - Ts
размер магазина - V
время перезарядки в сек - Tr

Предположим, что у нас есть бесконечное число патронов и мы зажали кнопку стрельбы. Сначала посчитаем время, необходимое на отстрел магазина и перезарядку:
Время на отстрел магазина:
Ts * V
Прибавляем время, необходимое ещё на перезарядку:
Ts * V + Tr
Далее посчитаем урон, нанесенный всеми патронами, что есть в магазине.
Урон одной пули:
D
Вероятность в процентах нанести критический урон:
Cch
Вероятность примем за надбавку урона в процентах (на бесконечном количестве выстрелов это будет работать именно так). Посчитаем разницу между критическим уроном и обычным:
Cd - D
Посчитаем бонус крита с одного выстрела на бесконечном числе выстрелов:
(Cd - D) * Cch
Посчитаем общий урон одной пули, учитывая крит:
D + (Cd - D) * Cch
Если подставить цифры, то получится так:
4 + (7 - 4) * 0.25
Объясняю. С вероятностью 0.25 будет прибавлено 3 к урону. Получается примерно так:
1-й выстрел. Урон = 4
2-й выстрел. Урон = 4
3-й выстрел. Урон = 4
4-й выстрел. Урон = 7
Разумеется, порядок будет разный, но в среднем, каждый 4-й выстрел нанесет на 3 еденицы урона больше.
Разделим эти +3 урона от крита на все выстрелы, посчитав усредненный урон с учётом крита:
1-й выстрел. Урон = 4 + 3/4 = 4.75
2-й выстрел. Урон = 4 + 3/4 = 4.75
3-й выстрел. Урон = 4 + 3/4 = 4.75
4-й выстрел. Урон = 4 + 3/4 = 4.75
Для наших 4-х выстрелов формула урона получилась такая:
D * 4 + (Cd - D)
Найдём усредненный урон, наносимый 1-м выстрелом:
(D * 4 + (Cd - D)) / 4 = D + (Cd - D) / 4
/4 у нас получилось из вероятности нанести крит 0.25 (так как выше мы рассмотрели случай для 4-х выстрелов). Ставим её обратно в формулу:
D + (Cd - D) * 0.25
В общем виде так:
D + (Cd - D) * Cch
Это у нас получился усредненный урон одного выстрела с учетом вероятности нанести крит и урона крита.
Дальше посчитаем урон, сделанный всеми выстрелами. Для этого умножим усредненный урон одного выстрела на число патронов в магазине:
(D + (Cd - D) * Cch) * V
Разделим усредненный урон на общее время, затрачиваемое на отстрел всех патронов и перезарядку:
(D + (Cd - D) * Cch) * V / (Ts * V + Tr)
Как-то так.

Есть ещё нюанс. Можно не считать задержку между выстрелами для последнего выстрела. Например, если у нас при выстреле оружие подбрасывается, то нужно некоторое время для возврата его в исходное положение, чтобы сделать следующий выстрел. Для последнего выстрела это делать не нужно. Тогда формула примет такой вид:
(D + (Cd - D) * Cch) * V / (Ts * (V - 1) + Tr)
Но такое правило применимо не для каждого оружия. Например при стрельбе из помпового, рычажного и bolt-action (хз, как это будет по русски) оружия, после каждого выстрела нужно передергивать помпу/затвор/рычаг для выброса отстреляной гильзы.

#11
7:26, 10 мая 2019

Indoril
> у меня получилось вот это
Что-то там всё странно
> =B6*(B2*0,75+6*0,25)/(B5*B6+B4)
> B2 Урон
> B3 Шанс крита
> B4 Крит. урон
> B5 Скорострельность
> B6 Магазин
> B7 Перезарядка
> B8 DPS

Магазин*(Урон*0.75+6*0.25)/(Скорострельность*Магазин+Крит_Урон)
Наверное, должно быть так:
=B6*(B2*0,75+B4*0,25)/(B5*B6+B7)
Можно заменить все цифры на номера ячеек:
=B6*(B2*(1-B3)+B4*B3)/(B5*B6+B7)
Получается:
7 * (4 * (1 - 0.25) + 7 * 0.25) / (0.4 * 7 + 8)
Вбиваем в поисковую строку гугла. Получается 3.0787037037

#12
13:32, 10 мая 2019

Васян
Indoril
Оружия ведут достаточно аркадно, не какие промежутков между выстрелов нету. Зажав на кнопку огонь, все патроны полетят ровно в цель. грубо говоря если урон от патрона 4 в 0.4 секунды в 1 секунду в цель может попасть 2.5 раза.

Что касается самой дистанции она работает так. Если цель будет находится за пределами 100 метров урон не проходит.

#13
13:39, 10 мая 2019

StainBerg
> как сам раньше не догадался
Потому что не читали про дуэльные модели в #7 из списка ТЕМА #26

#14
20:35, 10 мая 2019

Fantarg
> Учитывается, когда есть значительная "толщина" моба, который бежит к вам
> (ближний бой).
> А так: лишнее время на сближения противников на расстояние работы своего
> оружия.
> Поэтому, дпс будет выше базового, кто раньше начинает стрелять.
Ну это уже не ДПС, а скорее реальная эффективность в реальных условиях боя.
Я не слышал, чтобы это ДПС называли. ДПС - это характеристика оружия, а не тактики на поле боя.

Как посчитать урон в секунду

Текущее время: 07 май 2024, 19:04

УВС урон в секунду

Программирование на Юнити.
Сообщений: 5 • Страница 1 из 1

УВС урон в секунду

Sim4ik 02 авг 2015, 20:15

Доброго времени суток всем. Очень часто в играх жанра MMORPG/RPG, да даже в некоторых FPS присутствует такой термин как урон в секунду с английского DPS (Damage per second). Я прошерстил игровые форумы, но в местном сленге я ничего не понимаю. Некоторые пишут что урон в секунду просто необходим при сравнении двух пушек это с форума world of warplanes, в других играх по другому. По этой теме с точки зрения программирования следующий вопросы.
1) На кой черт он нужен, если у меня есть анимация удара, совмещенная по коллизиям и по идее урон проходит при попадании?
2) Я совсем не понимаю систему работы УВС, формулу конечно я знаю надо взять среднее арифметическое от минимального и максимального значения оружия сложить их и разделить на 2, затем полученное значение умножить на скорость атаки.
Например:
Оружие с уроном [145-178]
Скорость атаки 1.5
(145+178)/2*1.5=242,25 округлим получим 243 ед. урона в секунду и что столько урона мы нанесем за секунду? А как же скорость анимации 1.5?
Зачем вообще нужна эта формула для пытливых умов пользователей? И причем после этого в играх как я заметил при атаке нет урона в 243 то есть постоянно среднего, он постоянно плавает, это не считая прочие модификаторы увеличения урона.

Дорогу осилит идущий.
Sim4ik UNIт Сообщения: 143 Зарегистрирован: 20 апр 2012, 09:58

Re: УВС урон в секунду

cibersant 02 авг 2015, 20:48

Что не понимаешь за чем?
Маркетинговый ход,что бы игроки больше покупали.
cibersant Старожил Сообщения: 938 Зарегистрирован: 14 дек 2011, 01:27

Re: УВС урон в секунду

Dewa1s 03 авг 2015, 05:28

Что не понимаешь за чем?
Маркетинговый ход,что бы игроки больше покупали.

почему маркетинговый ход сразу?
Как еще сравнить медленно стреляющее оружие с большим уроном и быстро стреляющее с маленьким?
Если ты играешь за ДД - тебе просто необходимо знать, какое оружие обеспечит тебе максимальный ДПС в игре.

Sim4ik ,
Считать урон по коллизиям - плохая идея.
Скорость анимации должна зависеть от скорости атаки, но никак не наоборот.
ДПС - средний урон в секунду, есть же еще показатель защиты оппонента, есть формулы урона, есть рандом в конце концов

Dewa1s Старожил Сообщения: 564 Зарегистрирован: 26 дек 2011, 02:12

Re: УВС урон в секунду

Sim4ik 04 авг 2015, 18:20

Счётчик урона

Счётчик урона ( англ. DPS Meter, оф. рус. Счетчик урона) — аксессуар, добавленный в обновлении 1.3.0.1. Можно купить у Странствующего торговца за 5 . Отображает количество урона в секунду, наносимого вашим оружием. Работает, находясь в инвентаре.

Использование в рецептах [ ]

Рецепт
Рабочие места
Мастерская изобретателя
Ингредиенты Кол-во
Металлодетектор 1
Секундомер 1
Счётчик урона 1
Результат
Технология гоблина 1

История [ ]

  • Версия 1.3.0.1: Счётчик урона добавлен в игру.

Форум / Общие вопросы / Подсчет среднего урона за секунду.

чел, у тебя с матиматикой не все в порядке, это не реально высчитать, причем шк к дамагу?ты сложил минимум и максимум дамаг, ты думаеш что делаеш? да еще, у крита 2.2 урон, шк не большой, как ты это высчитаеш?

Посчитай и сравни примерно с игрой, на мой взгляд все правильно. В последнем множителе учел что дамаг делим пополам и шанс крита уменьшаем в 100 раз

Зачем на один умножать -_-

Эральд Коил Зачем на один умножать -_-

ну да это косяк

вот, смысл умножения на 1 я тоже не понял, или там опечатка?

не правильно

Артемий не правильно

сейчас посчитал дамаг который может выдать мой мелкий син, получилось 2532, а на самом деле я бью ~1045

Артемий сейчас посчитал дамаг который.

По данной формуле осуществляется подсчет среднего урона за секунду. Чтобы подсчитать средний урон за удар не нужно умножать на скорость атаки.

БратСадизма По данной формуле осуществляется.

все равно на 130 ошибка))
ни чего не имею против но, смысл?

скрытый ни чего не имею против но, смысл?

Чтоб прикинуть кто быстрее качается или какую стату воткнуть и тд

скрытый ни чего не имею против но, смысл?

На парике дпс решает и если его правильно посчитать то можно сэкономить на многих факторах.

Ne1l На парике дпс решает и если.

ага дпс решает. рас тупонул и считай продул) так же нужно учесть рандом крита, промаха.. сложно тут высчитать кто быстрей кач) имхо

Единственный вопрос, почему умножаем на 0.005? Кстати формула реально рабочая и все точно вычисляет. Поможет для тех, кто думает повышать ему урон или шк. Однозначно плюсище.
Вот решил проверить формулку.

Fischer Единственный вопрос, почему.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *