Формула Beast Strafe

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

  1. Red King

    Red King Read Only

    На форуме с:
    14 авг 2015
    Сообщения:
    3,030
    Справедливости ради стоит сказать, что даже так как работает сейчас - очень даже ничего.
  2. paratrupper

    paratrupper Игрок

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

    Sapa Игрок

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

    paratrupper Игрок

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

    paratrupper Игрок

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

    Sapa Игрок

    На форуме с:
    1 июл 2017
    Сообщения:
    9
    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 Игрок

    На форуме с:
    15 май 2011
    Сообщения:
    371
  9. paratrupper

    paratrupper Игрок

    На форуме с:
    1 май 2011
    Сообщения:
    284
    Что такое прибавление процентов?
    АТК+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 Игрок

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

    Sapa Игрок

    На форуме с:
    1 июл 2017
    Сообщения:
    9
    Простейший тест - рассчёт вручную по формуле, указанной Иксом, и написанной на Ировики.
    AsheGentle нравится это.
  12. paratrupper

    paratrupper Игрок

    На форуме с:
    1 май 2011
    Сообщения:
    284
    ладно посмотрим что там было, ожыдаем
    AsheGentle нравится это.
  13. Sapa

    Sapa Игрок

    На форуме с:
    1 июл 2017
    Сообщения:
    9
  14. AsheGentle

    AsheGentle Игрок

    На форуме с:
    12 янв 2017
    Сообщения:
    21
    Может на волне последних патчей мистер Икс и бист стрейф починит?
  15. Red King

    Red King Read Only

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