[Q] Бард/танцовщица: вопросы, обсуждения.
-
Кажется, отыскала точную формулу браги в исходниках jathena-1735:
case BA_POEMBRAGI: /* ѓuѓ‰ѓM‚МЋЌ */
if(src->type == BL_PC) val1 = pc_checkskill((struct map_session_data *)src,BA_MUSICALLESSON); val2 = ((status_get_dex(src)/10)&0xffff)<<16; val2 |= (status_get_int(src)/5)&0xffff; break;
if(sc_data && sc_data[SC_POEMBRAGI].timer!=-1 )
{
time=time*(100-(sc_data[SC_POEMBRAGI].val13+sc_data[SC_POEMBRAGI].val2
+(sc_data[SC_POEMBRAGI].val3>>16)))/100;
}else if(sc_data && sc_data[SC_POEMBRAGI_].timer!=-1 )
{
time=time(100-(sc_data[SC_POEMBRAGI_].val1*3+sc_data[SC_POEMBRAGI_].val2
+(sc_data[SC_POEMBRAGI_].val3>>16)))/100;
}return (time>0)?time:0;
}if(sc_data && sc_data[SC_POEMBRAGI].timer != -1) {
time = time * (100 - (sc_data[SC_POEMBRAGI].val1 * 5 + sc_data[SC_POEMBRAGI].val2 * 2 + (sc_data[SC_POEMBRAGI].val3 & 0xffff))) / 100;
} else if(sc_data && sc_data[SC_POEMBRAGI_].timer != -1) {
time = time * (100 - (sc_data[SC_POEMBRAGI_].val1 * 5 + sc_data[SC_POEMBRAGI_].val2 * 2
+ (sc_data[SC_POEMBRAGI_].val3 & 0xffff))) / 100;
}return (time>0) ? time : 0;
Итак, урезка задержки будет равняться 3уровень браги + 1уровень лессонов + 2*инт/5 (округленный вниз). Результат, естественно, в процентах. Из нее видно, что сама по себе брага и уроки дают 40% задержки, а оставшиеся 60% набираются на 150 инт.
Откуда же берет начало мнение о том, что золотой брага становится и при меньшем количестве инта? Скорее всего, это связано именно с анимационной задержкой, упомянутой на предыдущих страницах топика. Задержка метеора при 140 инт будет равна 4%*5 = 0,2 секунды, а для виза это нереально быстрое время взмаха. Таким образом, еда на инт для разгона его выше 140 себя не слишком оправдывает.
Но отсюда следует еще один странный вывод. Установка барда с асассин кроссом, поедание визами берсерков и обкаст агиапом должна ощутимо увеличить число выпускаемых метеоров - на 10-20% минимум (естественно, предполагается наличие 140+ интовой браги и хорошего коннекта).
Кроме того, многие из вас должны были замечать явление мультидаблинга - когда команда на посылку следующего попадает в какой-то промежуток времени, в который клиент игнорирует проигрываемую анимацию предыдущего. Выглядит это как два дабла, вылетевших сразу друг за другом, и 4 цифры с моба отлетают также сплошной лесенкой. С лагами это не связано.
Возможно, при нулевой задержке возможно и явление мультиметеоринга (мультиметеоризма?), когда они вылетают сразу друг за другом, хотя аспд виза и не должно этого позволять.Хорошо бы провести тесты метеора из золотой браги сперва дикризнутым незабудочным визом, а потом - агиапнутым, кросснутым и с берсерком. Время взмаха (и частота метеоров) в этом случае должны отчетливо различаться.
-
У визов начало нового каста прерывает анимацию взмаха и запускает ее по новой. Иначе с визовским аспд метеоры бы не кидались более 1 в секунду. Это хорошо видно на любом визе с юпом, у него нулевая задержка и чтобы его начать не нужно чтобы анимация взмаха завершилась.
-
Ку, тогда инстант каст визы из интовой браги будут метеорить с частотой кликов? С трех кнопок, как сакры?
Но это же значит, что все умрут. :roll:
Если у визов не кончится сп. -
откуда 3?.. 2 =)) правая-левая-правая-левая)))
и на мотре всё же свой эмуль, так что формула может отличаться от жтерновской. -
Lex_Divina, ну так и есть вообще-то. :lol:
Fimestian, у нас этот эмуль и стоит. :lol:
-
он разве в чистом виде взят, а не в обработке?.. основые-то части да, но мне казалось что там что-то изменяли в нём. ну впрочем мне как-то не столь важно :roll:
-
Lex_Divina, вы хорошо знакомы с с++?
Рашифруйте мне тогда что значит:
val1 = pc_checkskill((struct map_session_data *)src,BA_MUSICALLESSON);также хочу понять почему вторая цитата относится к задержке, а третья к каст тайму, а не наоборот.
и что значат
sc_data[SC_POEMBRAGI].val2
sc_data[SC_POEMBRAGI].val3 & 0xffff"Откуда же берет начало мнение о том, что" ваше мнение правильное, прежде чем проводить какие то тесты.
-
@"Lex_Divina":
Ку, тогда инстант каст визы из интовой браги будут метеорить с частотой кликов? С трех кнопок, как сакры?Но это же значит, что все умрут. :mrgreen:
Если у визов не кончится сп.:mrgreen: :mrgreen: :mrgreen:
Милая девушка.. вы прелестны )
PS. И по теме. У вас же в ЛЕТах есть инстант-визы. Ну возьмите их, возьмите разных музыкантов, купите берсерков, еды и тестите ))
-
@"Lex_Divina":
Кажется, отыскала точную формулу браги в исходниках jathena-1735:
"Тут произошла типичная подмена понятий"
Отрывок
if(sc_data && sc_data[SC_POEMBRAGI].timer!=-1 ){ time=time*(100-(sc_data[SC_POEMBRAGI].val1*3+sc_data[SC_POEMBRAGI].val2 +(sc_data[SC_POEMBRAGI].val3>>16)))/100; }else if(sc_data && sc_data[SC_POEMBRAGI_].timer!=-1 ) { time=time*(100-(sc_data[SC_POEMBRAGI_].val1*3+sc_data[SC_POEMBRAGI_].val2 +(sc_data[SC_POEMBRAGI_].val3>>16)))/100; } return (time>0)?time:0;
}
Принадлежит функции со странным английским названием int skill_castfix. Что переводится примерно как "Скилла_пофикшенныйкаст".
В то время как функция
if(sc_data && sc_data[SC_POEMBRAGI].timer != -1) {
time = time * (100 - (sc_data[SC_POEMBRAGI].val1 * 5 + sc_data[SC_POEMBRAGI].val2 * 2
+ (sc_data[SC_POEMBRAGI].val3 & 0xffff))) / 100;
} else if(sc_data && sc_data[SC_POEMBRAGI_].timer != -1) {
time = time * (100 - (sc_data[SC_POEMBRAGI_].val1 * 5 + sc_data[SC_POEMBRAGI_].val2 * 2
+ (sc_data[SC_POEMBRAGI_].val3 & 0xffff))) / 100;
}return (time>0) ? time : 0;
Носит не менее странное буржуйское название skill_delayfix. Которое, в свою очередь, можно перевести приблизительно как "Скилла_пофикшенный делэй" ("делэй"-задержка, разг.). Если понимать разницу между этими империалистскими терминами, а именно "делэем" и "кастом", то становится ясно что все дальнейшие рассуждения в корне не верны.
предполагается наличие 140+ интовой браги и хорошего коннекта
Коннект для чистоты экспериментов с брагой при инт выше 120 и кастов с задержкой менее 15 секунд должен напрямую к серверу из соседней комнаты, ну или, на худой конец, время отклика не должно превышать 10-20 мс. В противном случае, разница в "измерениях" будет укладываться в погрешность, тем самым эти измерения не будут нести никакой практической пользы. -
Спасибо, что обратили внимание на мои ошибки, для этого я и отписывалась. Действительно, вторая цитата относится к касттайму, а третья - к задержке, в этом я убедилась, посмотрев, из каких блоков они взяты (int skill_castfix и int skill_delayfix соответственно).
Но тогда формула для меня становится совершенно непонятной:if(sc_data && sc_data[SC_POEMBRAGI].timer != -1) {
time = time * (100 - (sc_data[SC_POEMBRAGI].val1 * 5 + sc_data[SC_POEMBRAGI].val2 * 2 + (sc_data[SC_POEMBRAGI].val3 & 0xffff))) / 100;
sc_data[SC_POEMBRAGI].val2 - значение этой переменной понятно, и берется вот отсюда:
case BA_POEMBRAGI: /* ѓuѓ‰ѓM‚МЋЌ */
if(src->type == BL_PC) *val1 = pc_checkskill((struct map_session_data *)src,BA_MUSICALLESSON)*; val2 = ((status_get_dex(src)/10)&0xffff)<<16; *val2 |= (status_get_int(src)/5)&0xffff*; break;
sc_data[SC_POEMBRAGI].val1 - это, по идее, должен быть уровень лессонов, но где тогда базовая урезка от самого скилла? sc_data[SC_POEMBRAGI].val3? Что же она, равна 1% за уровень браги? В 5 раз меньше, чем от лессонов?
Кто-нибудь может дать расшифровку val1, val2 и val3 в этой формуле?Есть еще один любопытный момент.
int skill_delayfix( struct block_list *bl, int time, int cast )
{
struct status_change *sc_data;nullpo_retr(0, bl);
sc_data = status_get_sc_data(bl);
if(time<=0 && cast<=0)-
return ( status_get_adelay(bl) / 2 *);
Отсюда вообще получается, что при нулевой задержке каст делэю присваивается значение аспд задержки, деленной на 2. В принципе, это объясняет, как визы успевают кидать метеоры чаще, чем должны при их аспд. Но отсюда же следует, что брага, урезающая 99% задержки, будет выгоднее, чем брага, урезающая 100%, поскольку в последней задержка будет принудительно подниматься до половины аспдшной.
Кто что может сказать по этому поводу?
-
-
Lex_Divina, последний кусок никак не относится к браге, он относится к скиллам которые не имеют собственного каст тайма и задежки. Замечу что значение берется изначальное из базы, а не из функции skill_castfix, то есть даже если декс 150 эта формула работать не будет.
Формулу браги из исходников я все таки не понимаю. По ней уроки дают 50%, сама брага 10% и каждые 5 инт по 2%, по ней уже 100 инт дают нулевой делей. В реальности задержка есть и на 130 инт, на 150 же ее обнаружить не удалось.
-
Ку, вот и я ее не понимаю. Теоретически можно перетасовать переменные формулы, получив что-то вроде 5уровень браги+2лессоны+инт/5, и тогда мы получим 100% именно на 150 инт, но чем обосновать такую перестановку?
А буквально из кода получается, что декс вит бардам и клоунам брагу максить вообще незачем, потому что 1% урезки задержки за уровень браги - это вообще смешно сравнительно с 5% от лессонов.
//Еще и каменты на японском, очень остроумно...
-
Ку, Lex_Divina, добавьте лог при проверке каст делая от браги и перекомпильте эмуль, запустите и все узнаете.
-
Aroch, спасибо, но мне бы хотелось понять приципы расшифровки исходников жАфины (для сравнения код браги в еАфине:
case BA_POEMBRAGI:
val1 = 3*skilllv+status->dex/10; // Casting time reduction //For some reason at level 10 the base delay reduction is 50%. val2 = (skilllv<10?3*skilllv:50)+status->int_/10; // After-cast delay reduction if(sd){ val1 += pc_checkskill(sd,BA_MUSICALLESSON); val2 += pc_checkskill(sd,BA_MUSICALLESSON); } break;
- как говорится, почувствуйте разницу), а не заниматься перекомпилированием эмулятора, проведением тестов и сверкой результатов каждый раз, когда мне захочется узнать формулы работы какого-либо навыка.
-
Lex_Divina, принципы "расшифровки" заключаются в изучении такого языка как Си и затем изучения самих исходников, которые ты не изучишь без компиляция и проверки если это не программа в 10 строк грубо говоря. И помоему это уже все оффтоп, сколько нужно инт в нынешних реалях можно и без исходников выяснить из отзывов владельцев 100 и 120 интовых браг. И не забывайте про пинг.
-
всем привет! у меня такой вопрос:
можете подсказать самый быстро качающийся билд барда, что для этого нужно из статов, еквипа, скилов, и как может проходить сам качь, тоетсь до примерно какого лвла и где сидеть?
заранее спасибо
-
Уважаемые гуру, а не подскажите как в каче (слиперы, стинги, котики) будет себя чувствовать вот это чуда (на 99лвл, аги, блес):
STR 3+12=15
AGI 62+28=90
VIT 57+3=60
INT 45+15=60
DeX 95+55=150
luk 1+4
Брага, синкрос, локи,яблоки (3 0_о),шутка,страйк(5)
у еще... почему то по калькулятору у меня получается дамаг с гако(2хПекоЕгг)+7 равен дамагу с композитом с нужными картами или чуть меньше... стоит копить на композит или не замарачаваться и купть гак? -
JukeBox, возьми лучше фрост джоук вместо страйка 5 и яблок на 3. Про статы промолчу ( я сторонник "узкой" специализации - локи значит вит, брага значит инт декс).
Rostiks, инт декс (желательно 99/99)
-
Rostiks, инт декс (желательно 99/99)
а где и как? и что из скилов брать и где качь с какого по какой лвл?
если не сложно распиши все подробно! -
Rostiks, почитай топик с 54 страницы :roll: там всё написано :roll: