wbaititu - коэффициент, ну или по простому число на которое умножают исходное значение, в нашем случае это ~АТК, если коэфф равный 1 значит что с исходным значением ничего делать не надо, ибо при умножении на 1 какбэ получается исходное значение. Ну а в эмуляторе в связи с тем что в игре используются % решили тоже в написании формул использовать %, которые уже при вычислениях преобразуются в коэффициенты. В конечном счёте эти формулы идентичны, просто визуализированы по разному для удобства в разных ситуёвинах. В общем если вычесть из коэффа вот так"-.5" значит тоже самое что и "-50%", я выделял там цветом. А это значит что проблема в другом месте....................................................
Не обязательно. Это может означать, что в исходниках эмулятора, которые вы смотрите, проблемы нет. Просто эти исходники не совпадают с тем, что работает у Икса на сервере.
Изначально я писал что проверял в исходниках 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 хита? втф) Ну раз минус в эмуляторе убираете - тогда и в калькуляторе давайте убирать........ У Икса? Или таки у нас?)
У вас в табличке две ошибки: в строчках для калькулятора и еафины вы забыли про начальное значение, которое 1 и 100 соответственно. А в коде еафины и калькулятора вы проглядели оператор "+=". С учётом этого получаем одинаковые формулы в кальке, в еафине и на ировики. И в коментарии Икса в той теме. Но это ничего не доказывает, т.к. мы не можем утверждать, что у Икса на сервере работает именно та еафина, рафина или геркулес которую мы берём с гитхаба. Что возвращает нас в начало: "Вот симптомы. Икся, проверь!"
ниможет быть, я ж идеален Не вижу ошибку. Не знаю как ещё объяснить, итоговый коэффициент wbairitu в кальке мы умножаем на АТК, а итоговые проценты skillratio в эмуляторе мы прибавляем к АТК. Начальные значения wbairitu=1, skillratio=0. вы явно не программист) такое элементарное пропускать прогеру смертельно)) однако даже я, не считающий себя прогером, этого не пропустил! Ну никто же не запрещает порассуждать нимнога и получить немнога опыта. Просто если я прав - это значит что несоответствие калькулятора с эмулем гдето вне формулы скилла(а там модификаторов ещё огого)....и вместо халтурного решения проблемы методом "подтяжки" формулы скилла стоило бы найти причину, в идеале) но т.к. всётаки нет ничего идеального)) конечно я пойму если на данном этапе и схалтурить. Но чур нимношк
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. Больше она нигде не меняется, пока не доходит до модификации в ветке скилла. Вот и я был очень сильно удивлён. В идеале стоило бы собрать и запустить эту еафину, убедиться, что в ней ошибка проявляется и только потом искать её в исходниках. Пока же мы обсуждаем ошибку на одном сервере на примере исходников другого, на котором проявление этой ошибки экспериментально не доказано. И кстати, что это за "решение проблемы методом "подтяжки" формулы скилла"? Насколько я вижу, пока в этой теме никто никаких решений не предлагал.
Что такое прибавление процентов? АТК+20% = АТК+(АТК\100*20) = АТК*((100+20)\100) = АТК*(1+(20\100))3 формулы, я подумал что в эмуляторе используется 1 как самый идеологически правильный, по факту 2 оптимизированный (наверное программисткая фишка в том что процессору в этом случае легче считается, меньше операций надо), в калькуляторе же используется 3 (ну ваще скоростя так и прут ). Ну чтож, тут моя ошибка, немного миснул, но всёравно результат всех 3 формул одинаков. Это понятно, но с чего вы взяли что ошибка в афине а не в калькуляторе?)) Надо и то и то приводить в соответствие...эхх ктоб это сделал)) Ну ап чтобы не лежал там внизу, на дне)) Как неактуальные скилы подтягивают чтобы жили методом увеличения или посовывания коэффа или процентика.. Решение то я поищу, но чувствую не найду, по крайней мере в ближайшее время, такчто пока lets go халтура
Конечно хочется, чтобы формула в калькуляторе была правильной, там такие приятные цифры получаются =)) Но пока мистер Икс не скажет, в чем на самом деле проблема, смешной снайп будет простаивать, а мы тут рассуждать в пустую.
Икс может починить. Но только в меньшую сторону. Ты же не хочешь чтобы бистрейфер 150кккккккк эксп в наносекунду делал? То то же. Икс тоже этого не хочет. В идеале подбить так, чтобы не было разницы или порингов дублить агидексом, или лунатиков бистрейфить аги-стр-дексом.