Формула Beast Strafe

Тема в разделе "Ошибки", создана пользователем AsheGentle, 20 ноя 2018.

  1. Red King

    Red King Read Only

    Справедливости ради стоит сказать, что даже так как работает сейчас - очень даже ничего.
  2. paratrupper

    paratrupper Игрок

    wbaititu - коэффициент, ну или по простому число на которое умножают исходное значение, в нашем случае это ~АТК,
    если коэфф равный 1 значит что с исходным значением ничего делать не надо, ибо при умножении на 1 какбэ получается исходное значение.
    Ну а в эмуляторе в связи с тем что в игре используются % решили тоже в написании формул использовать %, которые уже при вычислениях преобразуются в коэффициенты.
    В конечном счёте эти формулы идентичны, просто визуализированы по разному для удобства в разных ситуёвинах.
    В общем если вычесть из коэффа вот так"-.5" значит тоже самое что и "-50%", я выделял там цветом.:royes:
    А это значит что проблема в другом месте....................................................
    AsheGentle нравится это.
  3. Sapa

    Sapa Игрок

    Не обязательно. Это может означать, что в исходниках эмулятора, которые вы смотрите, проблемы нет. Просто эти исходники не совпадают с тем, что работает у Икса на сервере.
  4. paratrupper

    paratrupper Игрок

    Изначально я писал что проверял в исходниках eA rA Herc с гитхаба, мои предположения о том что иксе в ходе некоторых мероприятий случайно вернул формулу к исходной(предположительно с минусом).
    PHP:
    Calc                         ((- 0.5 0.08 STR × 100)% (сократил для наглядности)
    eAthena rAthena Hercules     (-50 STR×8)%
    Irowiki                      [50 STR × 8]%
    Irowiki Classic              (50% + 8%×STR× ATK × 2 Hits (умножить или разделить на 2 хитавтф)
    Ну раз минус в эмуляторе убираете - тогда и в калькуляторе давайте убирать........
    У Икса? Или таки у нас?)
  5. Sapa

    Sapa Игрок

    У вас в табличке две ошибки: в строчках для калькулятора и еафины вы забыли про начальное значение, которое 1 и 100 соответственно. А в коде еафины и калькулятора вы проглядели оператор "+=". С учётом этого получаем одинаковые формулы в кальке, в еафине и на ировики. И в коментарии Икса в той теме. Но это ничего не доказывает, т.к. мы не можем утверждать, что у Икса на сервере работает именно та еафина, рафина или геркулес которую мы берём с гитхаба. Что возвращает нас в начало: "Вот симптомы. Икся, проверь!"
  6. paratrupper

    paratrupper Игрок

    :roquestion:ниможет быть, я ж идеален:royes:
    Не вижу ошибку.
    Не знаю как ещё объяснить, итоговый коэффициент wbairitu в кальке мы умножаем на АТК,
    а итоговые проценты skillratio в эмуляторе мы прибавляем к АТК.
    Начальные значения wbairitu=1, skillratio=0.
    вы явно не программист) такое элементарное пропускать прогеру смертельно))
    однако даже я, не считающий себя прогером, этого не пропустил!
    Ну никто же не запрещает порассуждать нимнога и получить немнога опыта.:friendly:
    Просто если я прав - это значит что несоответствие калькулятора с эмулем гдето вне формулы скилла(а там модификаторов ещё огого)....и вместо халтурного решения проблемы методом "подтяжки" формулы скилла стоило бы найти причину, в идеале)
    но т.к. всётаки нет ничего идеального)) конечно я пойму если на данном этапе и схалтурить.
    Но чур нимношк :roshy:
  7. Sapa

    Sapa Игрок

    wbairitu = 1
    wbairitu += .08 * n_A_STR - .5
    что эквивалентно
    wbairitu = 1 + .08 * n_A_STR - .5 = .5 + .08 * n_A_STR
    и вот этот "итоговый коэффициент wbairitu в кальке мы умножаем на АТК" а не тот, что вы привели в таблице.

    и для эмулятора (еафины) всё аналогично, только рассчёт ведётся с представлением процентов целыми числами:
    unsigned int skillratio = 100;
    skillratio += -50+8*sstatus->str;
    эквивалентно
    skillratio = 100 + (-50 + 8*sstatus->str) = 50 + 8*sstatus->str;
    и вот этот значение переменной skillratio в макросе ATK_RATE умножается на ATK, там же и приводится от % к коэффициенту.

    Не понимаю, что привело вас к такому выводу, но если бы это было так, мы бы видели разницу в рассчёте для других скиллов, а её нет.

    В eAthena в файле battle.c посмотрите в самое начало функции battle_calc_weapon_attack(), там написано:
    unsigned int skillratio = 100; //Skill dmg modifiers.
    Больше она нигде не меняется, пока не доходит до модификации в ветке скилла.

    Вот и я был очень сильно удивлён.

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

    И кстати, что это за "решение проблемы методом "подтяжки" формулы скилла"? Насколько я вижу, пока в этой теме никто никаких решений не предлагал.
    AsheGentle и paratrupper нравится это.
  8. iseedeadpeople

    iseedeadpeople Игрок

  9. paratrupper

    paratrupper Игрок

    Что такое прибавление процентов?
    АТК+20% =
    АТК+(АТК\100*20) = АТК*((100+20)\100) = АТК*(1+(20\100))
    3 формулы, я подумал что в эмуляторе используется 1 как самый идеологически правильный,
    по факту 2 оптимизированный (наверное программисткая фишка в том что процессору в этом случае легче считается, меньше операций надо),
    в калькуляторе же используется 3 (ну ваще скоростя так и прут :fox_anger:).
    Ну чтож, тут моя ошибка, немного миснул, но всёравно результат всех 3 формул одинаков.:fox_swt:
    Это понятно, но с чего вы взяли что ошибка в афине а не в калькуляторе?)) Надо и то и то приводить в соответствие...эхх ктоб это сделал))
    Ну ап чтобы не лежал там внизу, на дне)) Как неактуальные скилы подтягивают чтобы жили методом увеличения или посовывания коэффа или процентика..
    Решение то я поищу, но чувствую не найду, по крайней мере в ближайшее время, такчто пока lets go халтура :fox_swt:
  10. AsheGentle

    AsheGentle Игрок

    Конечно хочется, чтобы формула в калькуляторе была правильной, там такие приятные цифры получаются =))
    Но пока мистер Икс не скажет, в чем на самом деле проблема, смешной снайп будет простаивать, а мы тут рассуждать в пустую.
    paratrupper нравится это.
  11. Sapa

    Sapa Игрок

    Простейший тест - рассчёт вручную по формуле, указанной Иксом, и написанной на Ировики.
    AsheGentle нравится это.
  12. paratrupper

    paratrupper Игрок

    ладно посмотрим что там было, ожыдаем
    AsheGentle нравится это.
  13. Sapa

    Sapa Игрок

  14. AsheGentle

    AsheGentle Игрок

    Может на волне последних патчей мистер Икс и бист стрейф починит?
  15. Red King

    Red King Read Only

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