Gensen привет - Страница 4 - Багтрекер - Moonwell
Перейти к содержанию
Moonwell 2.0 ×

Рекомендуемые сообщения

Опубликовано
Только что, r0z1x сказал:

  - Тики дота (бит 19) - Reckoning мимо, как и разбирали раньше.
  - Сам факт наложения дота (бит 17 или 13) — это нормальный спелл-хит, и по флагам он попадает под Reckoning.

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

  • Ответов 77
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано
1 hour ago, r0z1x said:

Вы можете не тагать генсена – на такие вопросы вам отвечать буду я.

To any damage, including campfire/environmental – это формулировка со страницы обсуждения, а не из самой статьи, и относилась она скорее к ванильной крит-версии; написана неточно. Сама статья Wowpedia формулирует аккуратнее, по тултипу: after being hit by any damaging attack – ключевое слово attack.

В движке WoW attack (событие, несущее proc-флаги получения урона) – это прямой удар: мили/рендж-свинг, инстант-спелл, прямой нюк. Периодический урон (DoT-тики) такими флагами не помечен – поэтому он не триггерит on-being-hit проки, к которым относится и Reckoning. То есть наблюдение из видео с офа верное: доты Reckoning не набивают. Это согласуется и с формулировкой таланта в 2.0.1 (TBC): прок навешивает заряды, которые тратятся на следующие weapon swings – вся механика крутится вокруг событий атаки, а не вокруг любого источника урона.

  • Флаги получения урона в движке, periodic – отдельный флаг, не attack.
    Флаг Значение Что это
    PROC_FLAG_TAKE_MELEE_SWING 0x00000008 мили-автоатака
    PROC_FLAG_TAKE_MELEE_ABILITY 0x00000020 мили-способность оружием
    PROC_FLAG_TAKE_RANGED_ATTACK 0x00000080 выстрел
    PROC_FLAG_TAKE_RANGED_ABILITY 0x00000200 рендж-способность
    PROC_FLAG_TAKE_HARMFUL_ABILITY 0x00002000 вредная способность (dmg class none)
    PROC_FLAG_TAKE_HARMFUL_SPELL 0x00020000 прямой вредный спелл
    PROC_FLAG_TAKE_HARMFUL_PERIODIC 0x00080000 бит 19 — DoT/HoT
    PROC_FLAG_TAKE_ANY_DAMAGE 0x00100000 бит 20 — любой урон
  • Колонка procFlags = 139944 (для Reckoning), разбивка на флаги.
    Слагаемое Флаг
    0x00008 TAKE_MELEE_SWING
    0x00020 TAKE_MELEE_ABILITY
    0x00080 TAKE_RANGED_ATTACK
    0x00200 TAKE_RANGED_ABILITY
    0x02000 TAKE_HARMFUL_ABILITY
    0x20000 TAKE_HARMFUL_SPELL
    = 139944 (0x222A8) → Reckoning
  • Побитовая разбивка procFlags = 139944.
    Бит Значение Флаг
    20 0 TAKE_ANY_DAMAGE — не входит
    19 0 TAKE_HARMFUL_PERIODIC — доты не прокают
    18 0
    17 1 TAKE_HARMFUL_SPELL
    16 0
    15 0
    14 0
    13 1 TAKE_HARMFUL_ABILITY
    12 0
    11 0
    10 0
    9 1 TAKE_RANGED_ABILITY
    8 0
    7 1 TAKE_RANGED_ATTACK
    6 0
    5 1 TAKE_MELEE_ABILITY
    4 0
    3 1 TAKE_MELEE_SWING
    2 0
    1 0
    0 0
  • Проверка разменом, вычитаем старшие степени двойки.
    Вычитание Остаток Бит
    139944 − 131072 (2^17) 8872 17
    8872 − 8192 (2^13) 680 13
    680 − 512 (2^9) 168 9
    168 − 128 (2^7) 40 7
    40 − 32 (2^5) 8 5
    8 − 8 (2^3) 0 3
  • Та же логика на пальцах – задача школьной программы.

    Представьте, что 139944 – это кучка денежек, и разменять её можно только купюрами особого вида: 1, 2, 4, 8, 16, 32… (каждая следующая вдвое больше). Каждая така бит. Правило размена: всегда берём самую крупную купюру, которая ещё помещается, откладываем её и смотрим, сколько осталось. С остатком повторяем.

    1. Было 139944. Самая крупная подходящая купюра – 131072. Отложили. Осталось 8872.
    2. Из 8872 берём 8192. Осталось 680.
    3. Из 680 берём 512. Осталось 168.
    4. Из 168 берём 128. Осталось 40.
    5. Из 40 берём 32. Осталось 8.
    6. Из 8 берём 8. Осталось 0 – всё разменяли.

    В итоге 139944 разменялось на купюры: 131072 + 8192 + 512 + 128 + 32 + 8. Каждая купюра означает один включённый флаг (мили-удар, рендж, прямой спелл и т.д.). Н ни купюры any damage (1048576) в наборе Reckoning нет – значит, от дота и от любого урона заряды не набиваются.

У таланта нет флага TAKE_HARMFUL_PERIODIC (0x80000) – DoT-тики – и нет TAKE_ANY_DAMAGE (0x100000) – это сильный абуз и не соответствует видео с офа. Reckoning слушает только прямые удары (мили/рендж свинги и абилки, прямые вредные спеллы), и по битовой разбивке данных не может прокнуть от тика дота. Это ровно то, что видно в видео с офа.

Больше я не буду тратить столько времени на объяснение стороны разработки – талант приведён в рабочее состояние. @Expo @Dromok

Оч интересно но не понятно.. то оно должно прокать то не должно от дот прокать..Надеюсь генерить это помогала не аишка..Ну кароче я понял, мы будем смотреть куда угодно только не на актаульный клиент и версию. Суперхитрые заключения на безе 1.9,2.0, инфы с пиратского бекенда и тд. То есть то что у тебя тоже самое что на офе? А связь то с селфсперлами где? Проще кароче найти людей на офе: ретрика и лока и посмотреть как все работает...хотя даже после этого наверно ничего не измениться)) Удачки. 

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

  • Разработчик
Опубликовано
1 час назад, Expo сказал:

Оч интересно но не понятно.. то оно должно прокать то не должно от дот прокать..Надеюсь генерить это помогала не аишка..Ну кароче я понял, мы будем смотреть куда угодно только не на актаульный клиент и версию. Суперхитрые заключения на безе 1.9,2.0, инфы с пиратского бекенда и тд. То есть то что у тебя тоже самое что на офе? А связь то с селфсперлами где? Проще кароче найти людей на офе: ретрика и лока и посмотреть как все работает...хотя даже после этого наверно ничего не измениться)) Удачки. 

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

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

 

  • r0z1x закрыл тема
Гость
Эта тема закрыта для публикации ответов.

×
×
  • Создать...