Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
[Способность] Мощный удар щитом

Упомянутые в теме пользователи:

Показано с 1 по 12 из 523

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Ветеран форума Аватар для Zhekich
    Регистрация
    05.01.2012
    Адрес
    Россия, Чувашия, г.Чебоксары
    Сообщений
    621
    Поблагодарил(а)
    58
    Получено благодарностей: 352 (сообщений: 247).
    Репутация: 356
    Цитата Сообщение от Зороастр Посмотреть сообщение
    В игре тултип показателя блокирования реагирует на умение, талант, символ?
    Конечно.

  2. #2
    Q.E.D. Аватар для Зороастр
    Регистрация
    13.02.2012
    Адрес
    Измаил, Украина
    Сообщений
    3,234
    Поблагодарил(а)
    149
    Получено благодарностей: 1,377 (сообщений: 910).
    Репутация: 1597
    Цитата Сообщение от Zhekich Посмотреть сообщение
    Конечно.
    Тогда в кодде аддона ошибка, поскольку он

    if ActiveAuras["Shield Block"] then
    local mult = self.MetaGem_BlockBonus + (Talents["Shield Mastery"] or 0) + (ActiveAuras["Glyph of Blocking"] and 0.1 or 0)
    bonus = bv / (2 + mult)
    bv = bonus * (1 + mult)

    Т.е. идет повторное применение модификаторов к уже имеющемуся bv при расчете дополнительного урона Мощного удара щитом от показателя блокирования (это составляющие bonus, bv). Вообще вся структура кода аддона довольно сомнительна.

    - - - Updated - - -

    После полного фиаско аддона с нормализацией следует искать еще источники информации.Опиратся только на аддон неприемлимо.
    Оригинальные профили на форуме - Зороастр и Зоро. Остальные похожие профили являются плагиатом.

  3. #3
    Дедушка форума Аватар для ciklopper
    Регистрация
    12.01.2012
    Адрес
    SPb
    Сообщений
    6,452
    Поблагодарил(а)
    669
    Получено благодарностей: 1,531 (сообщений: 896).
    Репутация: 2666
    Цитата Сообщение от Зороастр Посмотреть сообщение
    После полного фиаско аддона с нормализацией следует искать еще источники информации.Опиратся только на аддон неприемлимо.
    Это понятно, я что то подумал это симкрафт... Ладно еще покапаю, а то патчноты, кап с форума времен офа и формула Доктора маловато.. Но таких сумасшедших цифр, как у нас нет..
    Фигово, что к кате этот скилл был полностью переписан((
    Мой канал: https://www.youtube.com/c/CiklopperPlay
    Есть вопросы по игровой механике, подозрение на баг? Тогда тебе сюда Мастерская.

    Циклоппер x300 Ршам

    Этот мир спасёт шаман танк!

  4. #4
    Chaotic Good Аватар для Jester
    Регистрация
    31.01.2012
    Адрес
    Dark Side
    Сообщений
    4,145
    Поблагодарил(а)
    541
    Получено благодарностей: 865 (сообщений: 436).
    Репутация: 867
    Цитата Сообщение от Зороастр Посмотреть сообщение
    Вообще вся структура кода аддона довольно сомнительна.
    Щас Зороастр тут насчитает, что урон еще и занижен
    Вот смеху-то будет..

  5. #5
    Q.E.D. Аватар для Зороастр
    Регистрация
    13.02.2012
    Адрес
    Измаил, Украина
    Сообщений
    3,234
    Поблагодарил(а)
    149
    Получено благодарностей: 1,377 (сообщений: 910).
    Репутация: 1597
    Цитата Сообщение от Jester Посмотреть сообщение
    Щас Зороастр тут насчитает, что урон еще и занижен
    Вот смеху-то будет..
    Пока что я всего лишь пытаюсь разобратся в коде аддона. А про завышение/занижение мы сможем говорить только при выполнении двух условий:
    а) полного понимания как должен расчитыватся урон;
    б) предоставления практических наблюдений того, каков урон на самом деле.

    - - - Updated - - -

    Цитата Сообщение от Зороастр Посмотреть сообщение
    Тогда в кодде аддона ошибка, поскольку он

    if ActiveAuras["Shield Block"] then
    local mult = self.MetaGem_BlockBonus + (Talents["Shield Mastery"] or 0) + (ActiveAuras["Glyph of Blocking"] and 0.1 or 0)
    bonus = bv / (2 + mult)
    bv = bonus * (1 + mult)

    Т.е. идет повторное применение модификаторов к уже имеющемуся bv при расчете дополнительного урона Мощного удара щитом от показателя блокирования (это составляющие bonus, bv). Вообще вся структура кода аддона довольно сомнительна.
    Здесь я все таки ошибся. bonus = bv / (2 + mult) и bv = bonus * (1 + mult) - это две составляющие изначального bv, в сумме они как раз его и дают. Похоже аддон выделяет отдельно базовую часть показателя блокирования и отдельно ту его часть которая получена за счет модификаторов. И в дальнейшем работает с ними по разному. Вот только под базовую часть больше подходит bonus = bv / (2 + mult), но ее аддон называет бонусной.
    Оригинальные профили на форуме - Зороастр и Зоро. Остальные похожие профили являются плагиатом.

  6. #6
    Chaotic Good Аватар для Jester
    Регистрация
    31.01.2012
    Адрес
    Dark Side
    Сообщений
    4,145
    Поблагодарил(а)
    541
    Получено благодарностей: 865 (сообщений: 436).
    Репутация: 867
    Цитата Сообщение от Зороастр Посмотреть сообщение
    полного понимания как должен расчитыватся урон
    Опять ты сущности плодишь..

    Вопросов то всего два: почему ШБ повышает кап (хотя по описанию не должен) и должны ли идти модификаторы мультипликативно или же аддитивно. Ты помнится утверждал что все глифы аддитивно идут..

  7. #7
    Q.E.D. Аватар для Зороастр
    Регистрация
    13.02.2012
    Адрес
    Измаил, Украина
    Сообщений
    3,234
    Поблагодарил(а)
    149
    Получено благодарностей: 1,377 (сообщений: 910).
    Репутация: 1597
    Цитата Сообщение от Jester Посмотреть сообщение
    Опять ты сущности плодишь..

    Вопросов то всего два: почему ШБ повышает кап (хотя по описанию не должен) и должны ли идти модификаторы мультипликативно или же аддитивно. Ты помнится утверждал что все глифы аддитивно идут..
    Буду плодить "сущности". Сразу отвечу на первый вопрос: потому что дополнительный показатель блокирования от умения Блок щитом диминишингу не подвергается (парадокс, но получается что если Блок щитом увеличит показатель на значение больше капа, например на 4к, то все 4 к прибавятся в урон Мощного удара щитом в полном объеме).

    Итак, у нас два кода расчета урона Мощного удара щитом.

    DrDamage

    self.Calculation["Shield Slam"] = function( calculation, ActiveAuras, Talents )
    local dr = 24.5 * calculation.playerLevel --1960 at level 80
    local cap = 39.5 * calculation.playerLevel --3160 at level 80
    local bv = calculation.blockValue
    local bonus = 0
    if ActiveAuras["Shield Block"] then
    local mult = self.MetaGem_BlockBonus + (Talents["Shield Mastery"] or 0) + (ActiveAuras["Glyph of Blocking"] and 0.1 or 0)
    bonus = bv / (2 + mult)
    bv = bonus * (1 + mult)
    --TODO: Improve this?
    if Talents["Shield Mastery"] and bv > dr then
    bonus = bonus * (1 + math_min(0.13,(bv - dr) * 0.055))
    end
    end
    if bv > dr then
    --At level 80 true bonus is 2072 with 3160 blockvalue. 112 effective block value from 1200 block value.
    bv = math_min(cap, bv)
    bv = dr + (bv - dr) * (112/1200)
    end
    calculation.minDam = calculation.minDam + bv + bonus
    calculation.maxDam = calculation.maxDam + bv + bonus
    calculation.coeff = (bv + bonus) / calculation.blockValue
    calculation.coeffv = calculation.blockValue
    if self:GetSetAmount("T7 - Prot") >= 2 then
    calculation.dmgM_Add = calculation.dmgM_Add + 0.1
    end
    if self:GetSetAmount( "T10 - Prot" ) >= 2 then
    calculation.dmgM_Add = calculation.dmgM_Add + 0.2
    end
    end
    [свернуть]


    http://evanskikassaddons.googlecode.com/svn/trunk/addons/DrDamage/Data/Warrior.lua

    self.Calculation["Shield Slam"] = function( calculation, ActiveAuras, Talents )
    local dr = 24.5 * calculation.playerLevel --1960 at level 80
    local cap = 39.5 * calculation.playerLevel --3160 at level 80
    local bv = calculation.blockValue
    local bonus = 0
    if ActiveAuras["Shield Block"] then
    local mult = (Talents["Shield Mastery"] or 0) + (self:HasGlyph(58375) and 0.1 or 0) + self.MetaGem_BlockBonus
    local bonus = bv / (2 + mult)
    bv = bonus * (1 + mult)
    end
    --TODO: Fix this to 3.3.2 values, for now assuming linear diminishing returns
    if bv > dr then
    --At level 80 true bonus is 2072 with 3160 blockvalue
    bv = math_min(cap, bv)
    local c = (bv - dr)/(cap - dr) * (2072/3160)
    bv = dr + (bv - dr) * (1 - c)
    end
    calculation.minDam = calculation.minDam + bv + bonus
    calculation.maxDam = calculation.maxDam + bv + bonus
    if self:GetSetAmount("T7 - Prot") >= 2 then
    calculation.dmgM_Add = calculation.dmgM_Add + 0.1
    end
    if self:GetSetAmount( "T10 - Prot" ) >= 2 then
    calculation.dmgM_Add = calculation.dmgM_Add + 0.2
    end
    end
    [свернуть]


    Оба кода почти идентичны. Однако в первом коде есть странная часть

    if Talents["Shield Mastery"] and bv > dr then
    bonus = bonus * (1 + math_min(0.13,(bv - dr) * 0.055))
    end

    Как и Zhekich'а наверное, меня интересует откуда она вообще взялась. Это первое наблюдение.

    Теперь пройдемся по тому, что дают нам оба кода.

    Умение Блок щитом увеличивает базовый показатель блокирования на 100% (т.е. до применения таланта, символа, метакамня) - другими словами, талант, символ и умение аддитивны, и этот дополнительный показатель блокирования не подвергается диминишингу при переводе в урон Мощного удара щитом (т.е. сохраняется коэф. перевода 1). Вместе с тем диминишингу подвергается дополнительный показатель блокирования от таланта, символа или метакамня. На это указывают вот какие строки обоих кодов:

    if ActiveAuras["Shield Block"] then
    local mult = (Talents["Shield Mastery"] or 0) + (self:HasGlyph(58375) and 0.1 or 0) + self.MetaGem_BlockBonus
    local bonus = bv / (2 + mult)
    bv = bonus * (1 + mult)
    end

    В данном алгоритме bonus как раз и есть дополнительный показатель блокирования, полученный от умения Блок щитом. Допустим у нас 3160 базового показателя блокирования. Если наше предположение верно, то итоговый показатель блокирования при наличии таланта, символа и активном умении будет равен 3160*(1+0,3+0,1+1) = 7584. Это значение будет входящим в алгоритм bv.

    local mult = 0,3+0,1+0 = 0,4
    local bonus = 7584/(2+0,4) = 3160
    bv = 3160*(1+0,4)

    В дальнейшем этот бонус не подвергается никаким операциям (кроме той, на которую я указал в самом начале) и прибавляется в полном объеме к урону Мощного удара щитом.

    calculation.minDam = calculation.minDam + bv + bonus
    calculation.maxDam = calculation.maxDam + bv + bonus

    А вот оставшаяся часть общего показателя блокирования, в которую входит базовое его значение и полученное от таланта, символа или метакамня - это у нас bv = bonus * (1 + mult), уже подвергается диминишингу. Который в коде как раз и не диминишинг

    Всем известно, что диминишинг - это спадающая эффективность прироста показателя. Т..е. каждая следующая его единица дает все меньший прирост итогового показателя. Однако достоверно неизвестно, какова изначальная формула димишинга перевода показателя блокирования в урон Мощного удара щитом, поэтому игроками проводились попытки на основе имеющихся данных построить уравнение регресси (т.е. предположить, какова эта функция на самом деле). В данном случае, для обоих кодов данная функция была предположена как линейная, на что кстати намекает --TODO: Fix this to 3.3.2 values, for now assuming linear diminishing returns в коде. Вот часть кода, которая и содержит эту функцию.

    if bv > dr then
    --At level 80 true bonus is 2072 with 3160 blockvalue
    bv = math_min(cap, bv)
    local c = (bv - dr)/(cap - dr) * (2072/3160)
    bv = dr + (bv - dr) * (1 - c)
    end

    Здесь игрокам были известны две определяющие точки функции (показатель блокирования; дополнительный урон Мощного удара щитом): (1960;1960) и (3160;2072). Как заметил Zhekich, функция составлена неточно, поскольку из ее выпадает точка (3160;2072). Скорее всего авторы кода ошиблись в построении этой функции. Как и в следующем - для линейной функции димишинга не существует, каждая единица ее аргумента дает постоянный прирост значения функции.

    А вот еще один источник информации.

    http://www.tankspot.com/showthread.p...lam-DR-Formula

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

    X * (Block-1960) - Y * (Block-1960)^2

    З.Ы. Я могу и ошибатся в аддитивности умения Блок щитом при расчете показателя блокирования. Вполне возможно, что он все таки действительно увеличивает уже имеющися показатель блокирования в два раза (т.е. мультипликативен), но та чать урона Мощного удара щитом, которую он добавляет, согласно обоим кодам будет равна все таки именно базовому показателю блокирования и у нее нет ни диминишнга, ни капа.
    Оригинальные профили на форуме - Зороастр и Зоро. Остальные похожие профили являются плагиатом.

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 18.03.2013, 16:24
  2. Моя маленькая параноя
    от adouls в разделе Архив
    Ответов: 12
    Последнее сообщение: 26.03.2012, 19:31

Ваши права

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