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

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

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 12 из 17
  1. #1
    Инопланетянин Аватар для Gooldark
    Регистрация
    05.01.2012
    Сообщений
    3,916
    Поблагодарил(а)
    264
    Получено благодарностей: 766 (сообщений: 432).
    Репутация: 4437

    Post Зажевывание автотатаки

    Репорт очень важный, так как из-за бага у некоторых классов(с высокой скоростью белой атаки) очень сильно проседает дпс, в некоторых случаях это потеря до 15% белой атаки.


    1. swing time и server delay

    2. из свинг тайма не вычитается серверная задержка, за счет этого происходит зажевывание автоатак

    3. из свинг тайма должна вычитаться серверная задержка

    4. На первом скрине тест с циркуля, 26 * 60 + 5 = 1565 секунд боя
    должно получиться 1565/0,74 = 2114 атаки
    но на деле 2009
    2114/2009 = 1,0522; то есть зажевало 5,2% атак

    И это было где-то в 18:00 по мск, к вечеру задержка еще выше. Так же это не ферал или мути рог, у которых атаки еще выше.

    2114 - 2009 = 105 зажеванных атак в итоге

    105 * 0,74 / 2009 = 0,03867 сек сервер делай, или 38,67 мс была средняя задержка на циркле во время теста



    На втором скрине тест с офа, внизу справа от спелов виден таймер боя - 20 минут, скорость атаки друида была - 1 секунда.
    20*60/1=1200 атак
    на деле же 1195 атак
    5/1195 = 0,0041 сек, то есть серверная задержка 4,1 мс на довольно заселенном сервере, да конечно это 16:10, но 4 мс, это слишком круто для задержки сервера.
    Отсюда можно сделать вывод, что на офе вычитается серверная задержка из свинг таймера.


  2. 16 пользователей сказали cпасибо Gooldark за это полезное сообщение:

    6Grimmjow6 (23.09.2021),Ahues (20.09.2021),Anorver (22.09.2021),astee (27.08.2021),bullbee (27.08.2021),FierceLV (26.09.2021),Kttap (02.09.2021),mandovoxa (01.09.2021),Mercology (26.08.2021),Nahtotter (29.08.2021),Norrexis (28.08.2021),Сан Саныч (26.08.2021),Скворец (27.08.2021),Серо-буро-малиновый (26.08.2021),Хунантан (27.08.2021),антилох (09.09.2021)

  3. #2
    Ветеран форума Аватар для Сан Саныч
    Регистрация
    05.06.2017
    Адрес
    logon x100
    Сообщений
    1,385
    Поблагодарил(а)
    711
    Получено благодарностей: 431 (сообщений: 226).
    Репутация: 2639
    Это ещё очень давняя проблема, но не было понятно из-за чего они теряются при большой нагрузке на сервере


  4. #3
    Инопланетянин Аватар для Gooldark
    Регистрация
    05.01.2012
    Сообщений
    3,916
    Поблагодарил(а)
    264
    Получено благодарностей: 766 (сообщений: 432).
    Репутация: 4437
    технически из скорости каста тоже должна вычитаться задержка, но как это доказать и проверить пока хз
    разве что импа натравить на цель, но он тут через минуту забивает на нее.

  5. #4
    Разработчик
    Регистрация
    12.10.2015
    Сообщений
    6,024
    Поблагодарил(а)
    3,853
    Получено благодарностей: 3,134 (сообщений: 1,849).
    Репутация: 32760
    Цитата Сообщение от Gooldark Посмотреть сообщение
    20*60/1=1200 атак
    на деле же 1195 атак
    Если на оффе тоже теряются атаки, то возможно никакой особой системы и нет?)

    Даже если какая то система есть, то вряд ли должна вычитаться именно серверная задержка, это явно бы заметили на оффе и где нибудь была заметка об этом.

    - - - Updated - - -

    Цитата Сообщение от Gooldark Посмотреть сообщение
    Так же это не ферал или мути рог, у которых атаки еще выше.
    Стоит также отметить, что есть очень мало боев, где идет чистая автоатака больше 20 минут =) Также в бою используются способности, поэтому реальный процент потери атак может быть гораздо ниже.
    Последний раз редактировалось Animagus; 26.08.2021 в 22:29.

  6. #5
    Инопланетянин Аватар для Gooldark
    Регистрация
    05.01.2012
    Сообщений
    3,916
    Поблагодарил(а)
    264
    Получено благодарностей: 766 (сообщений: 432).
    Репутация: 4437
    Цитата Сообщение от Animagus Посмотреть сообщение
    Если на оффе тоже теряются атаки, то возможно никакой особой системы и нет?)

    Даже если какая то система есть, то вряд ли должна вычитаться именно серверная задержка, это явно бы заметили на оффе и где нибудь была заметка об этом.
    Они могут брать % от задержки, чтобы на длительном промежутке времени не получилось больше атак, чем был рассчитан отрезок.

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

    Возможно кончено, что на офе нет этой механики, у них просто сервера не так нагружены.
    Но тогда что остается? Серверную задержку на пиратке так не уменьшить.
    Тут либо все классы с быстрой скоростью атаки будут терять в уроне, либо лепить костыль.


    Цитата Сообщение от Animagus Посмотреть сообщение
    Стоит также отметить, что есть очень мало боев, где идет чистая автоатака больше 20 минут =)
    Так время боя здесь не причем, просто на большом промежутке времени эта разница более заметна, когда зажеванные атаки начинает исчисляться сотнями.
    Предположим 2 минуты боя, какой-нибудь сурок.
    2009/1565 * 120 = 154 атаки, а реально должно быть 120/0,74 = 162.
    Вот итог, за 2 минуты 8 зажеванных атак.

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

    Кончено, 50 мс, при скорости 3сек, это незаметно(1,6% потеря урона), но когда скорость атаки 0,5 сек, это потеря в 10% урона


    Цитата Сообщение от Animagus Посмотреть сообщение
    Также в бою используются способности, поэтому реальный процент потери атак может быть гораздо ниже.
    А причем тут способности? да есть те что влияют на свинг тайм, но таких мало, речь же о миликах, а не о кастерах

    - - - Updated - - -

    вот 2 минуты, должно быть 162 атаки, а получилось 156



    тоже 2 минуты, но скорость атаки 3 секунды, должно быть 40 атак, а получилось 39, разумеется для такой скорости атаки нужно гораздо дольше бить, чтобы заметить разницу



    - - - Updated - - -

    тест на 20 в манекен, должно быть 400 атак, получилось 389
    400 - 389 = 11 зажеванных

    11*3/389 = 0,0848 сек, или 84,8 мс время зажевывания с одной атаки.


  7. 3 пользователей сказали cпасибо Gooldark за это полезное сообщение:

    6Grimmjow6 (30.09.2022),Norrexis (28.08.2021),Сан Саныч (27.08.2021)

  8. #6
    Инопланетянин Аватар для Gooldark
    Регистрация
    05.01.2012
    Сообщений
    3,916
    Поблагодарил(а)
    264
    Получено благодарностей: 766 (сообщений: 432).
    Репутация: 4437
    Вот тема л3, там есть интересное сообщение

    PHP код:
    if (isAttackReady(BASE_ATTACK))
                {
                    if (!
    IsWithinMeleeRange(victim))
                    {
                        
    setAttackTimer(BASE_ATTACK100);
                        if (
    m_swingErrorMsg != 1)               // send single time (client auto repeat)
                        
    {
                            
    SendAttackSwingNotInRange();
                            
    m_swingErrorMsg 1;
                        }
                    }
                    
    //120 degrees of radiant range, if player is not in boundary radius
                    
    else if (!IsWithinBoundaryRadius(victim) && !HasInArc(float(M_PI) / 3victim))
                    {
                        
    setAttackTimer(BASE_ATTACK100);
                        if (
    m_swingErrorMsg != 2)               // send single time (client auto repeat)
                        
    {
                            
    SendAttackSwingBadFacingAttack();
                            
    m_swingErrorMsg 2;
                        }
                    }
                    else
                    {
                        
    m_swingErrorMsg 0;                    // reset swing error state

                        // prevent base and off attack in same time, delay attack at 0.2 sec
                        
    if (haveOffhandWeapon())
                            if (
    getAttackTimer(OFF_ATTACK) < ATTACK_DISPLAY_DELAY)
                                
    setAttackTimer(OFF_ATTACKATTACK_DISPLAY_DELAY);

                        
    // do attack
                        
    AttackerStateUpdate(victimBASE_ATTACK);
                        
    resetAttackTimer(BASE_ATTACK);
                    }
                } 
    Тоесть после готовности таймера автоатаки, сервер делает проверку на возможность атаки ренжа, проверку на лос и наличие цели перед лицом (выделил красным проверки и событие сброса таймера автоатаки), а это все обращения к координатам через базу данных. И только после этого наностися урон и сбрасывается таймер автоатаки. Возможно, данные обращения к координатам и вызывают задержку. Но я все равно не могу понять, почему эта задержка всегда статична и не изменяется от кол-ва онлайна. В общем, надеюсь вы найдете причину задержки и найдете возможность от неё избавиться или по крайней мере снизить до приемлемых значений.
    Честно говоря не понимаю почему сервер обращается к бд при проверке на рейндж и фронт, это как-то нелогично, мб он ошибся, а вот при обращении на возможность лоса вполне может быть.

    В общем сделал такой тест: запустил 4 ака с одного компа, 2 на х5, и 2 на птр, и практически одновременно отправил бить манекен



    Это х5
    28*60=1680 секунд боя
    1680/3=560 должно быть атак со скоростью 3 сек
    получилось 544 и 1551 ударов соостветсвнно
    560-544=16 зажеванных атак
    1680-1551=129 зажеванных атак
    16*3/544=0,08823 сек или 88,23 мс потеря времени при каждой атаке
    129/1551=0,08317 сек или 83,17 мс потеря времени при каждой атаке




    Это птр
    28*60=1680 секунд боя
    1680/3=560должно быть атак со скоростью 3 сек
    получилось 549 и 1642 ударов соостветсвнно
    560-549=11 зажеванных атак
    1680-1642=38 зажеванных атак
    11*3/549=0,06066 сек или 60,66 мс потеря времени при каждой атаке
    38/1642=0,02314 сек или 23,14 мс потеря времени при каждой атаке


    Сложно сказать почему зажеванных атак получилось меньше всего у кота на птр, потом я еще провел пару тестов, и задержка у кота на птр была так же 60 мс.
    Я вначале думал что это из-за приоритетов виндоуса, когда одно окно свернуто, а другое нет, но оказалось это здесь не причем.

    Может действительно дело в обращении ядра к бд при проверке на лос

  9. 2 пользователей сказали cпасибо Gooldark за это полезное сообщение:

    6Grimmjow6 (23.09.2021),Animagus (27.08.2021)

  10. #7
    Разработчик
    Регистрация
    12.10.2015
    Сообщений
    6,024
    Поблагодарил(а)
    3,853
    Получено благодарностей: 3,134 (сообщений: 1,849).
    Репутация: 32760
    Цитата Сообщение от Gooldark Посмотреть сообщение
    Может действительно дело в обращении ядра к бд при проверке на лос
    У нас обращения к БД точно нет в этом месте =) Да и там я не вижу чтобы было...

    Также есть такое понятие как минимальное время обновления мира, но это нужно уточнять, какое значение установлено на конкретном реалме. Может быть такая ситуация, что до атаки осталось 5 мс и в текущее обновление атака не состоялась, а следующее обновление только через 100 мс, поэтому получается что к атаке может добавится лишних 95 мс. Это упрощенно только один из вариантов.
    Последний раз редактировалось Animagus; 27.08.2021 в 22:40.

  11. #8
    Ветеран форума Аватар для Norrexis
    Регистрация
    12.12.2015
    Адрес
    Киев
    Сообщений
    1,351
    Поблагодарил(а)
    604
    Получено благодарностей: 518 (сообщений: 260).
    Репутация: 518
    Цитата Сообщение от Gooldark Посмотреть сообщение
    Предположим 2 минуты боя, какой-нибудь сурок.
    2009/1565 * 120 = 154 атаки, а реально должно быть 120/0,74 = 162.
    Вот итог, за 2 минуты 8 зажеванных атак.
    В реальном бою с орком у комбат разбойника ~250 атак,например.
    И это один из самых быстрых боев в ЦЛК,на других еще больше потерь.

  12. #9
    Инопланетянин Аватар для Gooldark
    Регистрация
    05.01.2012
    Сообщений
    3,916
    Поблагодарил(а)
    264
    Получено благодарностей: 766 (сообщений: 432).
    Репутация: 4437
    Да время боя тут не играет большой роли, тут идет потеря атак в зависимости от ее скорости по сути.

    1/1,3/1,2/1,03=0,62235 - скорость атаки ферала под герой без рейтинга скорости в рейде.

    0,08/0,62235 = 12,85 % атак бы потерялось в рейде, если в среднем каждый удар зажевывает 80мс


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

    Если предположим собрать 30% скорости каста коту, то получиться

    1/1,3/1,2/1,03/1,3=0,47873 сек

    0,08/0,47873 = 16,71 % атак бы потерялось в рейде, если в среднем каждый удар зажевывает 80мс

    Если время боя условных 100 секунд, то в первом случае должно получиться атак
    100/0,62235 = 160
    если учесть зажеванные реальных получиться
    160 * (1 - 0,1285) = 139

    во втором случае должно получиться атак
    100/0,47873 = 208
    если учесть зажеванные реальных получиться
    208 * (1 - 0,1671) = 173

    173/139 = 1,2446 реальный прирост урона вместо 1,3


    может где-то ошибся в расчетах, так как делал на скорую руку, но не суть, цифры будут примерно такими же

    - - - Updated - - -

    Цитата Сообщение от Animagus Посмотреть сообщение
    Также есть такое понятие как минимальное время обновления мира, но это нужно уточнять, какое значение установлено на конкретном реалме. Может быть такая ситуация, что до атаки осталось 5 мс и в текущее обновление атака не состоялась, а следующее обновление только через 100 мс, поэтому получается что к атаке может добавится лишних 95 мс. Это упрощенно только один из вариантов.
    Я думал это и называется задержка сервера



    20*60+30 = 1230 сек
    1230/2,5 = 492
    в реальности же 469
    492 - 469 = 23
    23/469 = 0,04904 сек или 49,04 мс зажевано с каждого каста

    Получается у кастов тоже самое.

    Если бы это всем классам равномерно дпс снижало, я наверное и не писал бы репорт, но тут получается у кого-то теряется 2%, а кто-то 15% теряет.

  13. #10
    Старожил Аватар для decem
    Регистрация
    09.03.2020
    Адрес
    Луносвет
    Сообщений
    294
    Поблагодарил(а)
    78
    Получено благодарностей: 56 (сообщений: 29).
    Репутация: 996
    Наверное это влияет ещё на "Знамение ясности" для фералов

  14. #11
    Инопланетянин Аватар для Gooldark
    Регистрация
    05.01.2012
    Сообщений
    3,916
    Поблагодарил(а)
    264
    Получено благодарностей: 766 (сообщений: 432).
    Репутация: 4437
    ну меньше атак, меньше проков разумеется.
    но больше всего даже не ферал теряет, больше всего теряет мути рог, у него суммарно скорость атаки выше будет с 2-х рук + 40%-ым увеличением скорости атаки, это единственный спел в игре с таким бонусом.
    так же у мутика все яды и реген раги зависит от ударов.

  15. #12
    Ветеран форума Аватар для Norrexis
    Регистрация
    12.12.2015
    Адрес
    Киев
    Сообщений
    1,351
    Поблагодарил(а)
    604
    Получено благодарностей: 518 (сообщений: 260).
    Репутация: 518
    Цитата Сообщение от Gooldark Посмотреть сообщение
    больше всего теряет мути рог, у него суммарно скорость атаки выше будет с 2-х рук + 40%-ым увеличением скорости атаки.
    Да и комбат недалеко уходит,с 2х рук с тем же бафом.В пве он намного популярнее даже.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. [Исправлено после ближайшего обновления] Аптекарь Зама <Королевское фармацевтическое общество>
    от Artur91425 в разделе Исправлено Wotlk
    Ответов: 1
    Последнее сообщение: 12.07.2021, 08:16
  2. [Исправлено после ближайшего обновления] Аптекарь Чанн <Королевское фармацевтическое общество>
    от Darti в разделе Исправлено Cataclysm
    Ответов: 1
    Последнее сообщение: 03.07.2015, 20:29
  3. Ответов: 0
    Последнее сообщение: 06.07.2013, 10:33
  4. Ответов: 0
    Последнее сообщение: 09.06.2013, 00:56
  5. Есть ли на этом сервере ролевые гильдии или ролевые миры?
    от Van Helsing в разделе Вопросы Logon, TBC, Legion, BFa, SL
    Ответов: 4
    Последнее сообщение: 22.02.2013, 23:33

Ваши права

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