Немного инфы с гохи
1.) Механика работы Кансела и ему подобных скиллов, включая стил дивинити и баны.
Эти скиллы снимают баффы с цели. С каким шансом какой бафф падает - это мы сейчас и узнаем.
Кансел работает по следующему принципу: он проходит по списку баффов, начиная с конца (разумеется, дебаффы кансел не трогает, делать ему больше нечего) и просчитывает вероятность того, снимется ли бафф или нет. Когда число снятых баффов достигло предела у скилла - то просчет останавливается. Скажем, стил дивинити не может скансельнуть больше 7 баффов, хотя из формулы будет ясно, что шанс установлен в 100% и смысла просчитывать как бы и нету.
Тач оф дез, крашер у ДА, талик на кансел и на бафф-стил - все имеет идентичную природу.
Варриор баны и меджик баны(включая массовые) просчитывают только те баффы, которые имеют abnormal_type, равный соответствующей характеристике. То есть акумен, хаст, эмп, комбик на шилд + майт, скролы, эмп саммону - это все имеет определенный abnormal_type.
Сперва считается предварительный шанс удаления дебаффов
prelim_chance = (2 * dml + cancel_chance_adder + buff_duration / 120) * cancel_res_multiplier
dml - разница magic_level Кансел-подобного скилла и уровнем текущего баффа, для которого введется расчет. Скажем, ТОД +0 - имеет меджик левел, равный 78, меджик бан - 77 и так далее. Это понятно каждому, кто играет в линейку и знает скиллы своего персонажа. Infinity Spear имеет меджик левел, равный 80. Кансел-пвп бонус, скилл пантеры и талик - пока не определено.
cancel_chance_adder - константа.
Cancel - 25
Touch of Death/Insane Crusher - 25
Mage/Warrior Bane - 80
Mass Mage/Warrior Bane - 40
Infinity Spear - 10
Для стилов как-бы это не важно -).
buff_duration - время баффа в секундах. Деление - целочисленное, то есть округляется вниз, как вообще все в линейке (поэтому часто ЛС +0.2 еваги поднимает ее на единичку, ведь у вас было округление не самое удачное). Заточили на время - больше шанс потерять бафф. Точим кисс оф еву? Возможно. Но заточка поднимает и меджик левел баффа, так что в тоже время его шанс его отмены падает - что перевесит, считать вам. На каком уровне скилл прокачали - примерно таков его и меджик левел.
Возрастание уровня скилла от заточки:
Для второпрофных: +1..+3 - 76, +4..+6 - 77, +7..+9 - 78, +10..+12 - 79, +13..+15 - 80, +16..+18 - 81, +19..+21 - 82, +22..+24 - 83, +25..+27 - 84, +28..+30 - 85.
Для третьепрофных: +1..+3 - 81, +4..+6 - 82, +7..+9 - 83, +10..+12 - 84, +13..+15 - 85.
cancel_res_multiplier - резисты. По умолчанию равен 1. Разные скиллы (на них написано) уменьшают вероятность отмены каждого из конкретных баффов.
Arcane Protection: 0.7
Chant of Spirit: 0.7
Zealot: 0.6
И так далее. Бафф снижает шанс отмены положительных эффектов на 30%? Значит, получаем число (1 - 30%/100%) = 0.7. Это для тех, кто уже решил шпилить прямо из детского садика.
Если баффов несколько - то мы просто перемножаем эти числа. Получаем одно число и это и есть cancel_res_multiplier.
Важный момент: если кансел снял бафф-резист от кансела, то бафф-резист по прежнему продолжает действовать на остальные баффы. Так что не важно, куда его бафать - в конец или в начало, если вашей целью стоит максимизировать кансел-резист.
После prelim_chance считаем реальный шанс удаления баффа.
1) Для Cancel и других не бан и не стил скиллов (включая кансел стик):
Если prelim_chance < 25 то real_chance = 25
Если prelim_chance > 75 то real_chance = 75
Если 25 < prelim_chance < 75 то real_chance = prelim_chance
Реальный шанс для Cancel не может быть меньше 25 и больше 75.
2) Для Bane-скиллов:
Если prelim_chance < 40 то real_chance = 40
Если prelim_chance > 95 то real_chance = 95
Если 40 < prelim_chance < 95 то real_chance = prelim_chance
То есть реальный шанс для bane-скилла не может быть меньше 40 и больше 95. Сюда же входят и всевозможные блоки, но эта информация пока не точная, возможно подредактирую.
Меньше здесь - меньше или равно для нытиков. И больше тоже для самых-самых.
Есть баффы, у которых magic_level = -1, то есть канселом не снимаются. Сами знаем какие - хиро УД, валор, бафф с пристов, некоторые эвент-баффы и все такое. Нобл понятное дело после ввода Эпилога на ура падает.
У стилов cancel_chance_adder = 100 и вообще бафф падает со 100%-ой вероятностью. Удивительная находка, не правда ли?
Выводы:
1.) Кансел начинает просчет с конца. Дискотека, потом уже 24, 23, ... 2, 1 слоты. Тогл (аура) - это не бафф ^^. Поэтому если в конец засунуть ерунду, а самые приятные баффы будут первыми - то вероятность кансела первых баффов НАМНОГО меньше, чем последних. Поэтому это выгодно.
2.) Кансел-резист, по-сути, бесполезен. Скажем, предел баффов от Кансела - 5. Набафали кучу резиста. Шанс меньше 25% не упадет. В результате в среднем каждый четвертый бафф будет падать. То есть есть реальные шансы потерять один из первых баффов. И если не поднимать Кансел-резист, не точить всякие регенерашионы и кисс оф Евы (идеально вообще иметь первый уровень скилла - вот и будет 75% шанс его потерять и уменьшить счетчик, но кто же это знал) - то можно грамотно защититься от Кансела. И теперь каждый ЕЕ на олли подумает, а стоит ли бафать от сорка аркану протекшион и потерять акумен или эмп из-за этого. Не говоря уже и про такой лоу-левел скилл, как Френзи. Вот и проблема с зилом. Так что Вешаем фризу в самые первые баффы, ребаффая дестру после прокаста вообще все, что возможно.
3.) Баны тоже не всегда снимают соответствующий бафф. Особенно с резистом канселу, особенно хай-левел бафф.