Ошибка в скилле Meteor Storm
-
обратите внимание вот на это:
в функции status_change_start (statuc.c) есть интересное место:
[code:okbtrnf7]
case SC_STAN:
scdef=3+status_get_vit(bl)+status_get_luk(bl)/3;
break;
[/code:okbtrnf7]и далее:[code:okbtrnf7]
if(scdef>=100)
return 0;[/code:okbtrnf7]т.е. если я правильно понимаю.. если суммарный дефенс от статуса превышает 100.. статус просто не накладывается вообще
Мистикал, бррр.. не заметил ваш пост
-
То что в теории по механике так должно быть, еще не говорит однозначно, что именно так работает на оффе.
Нужен либо оригинальные код либо тесты.Кстати утверждая, что вит не влияет на эффект от метеора - вы немного грешите. Потому как вит-деф (вит и лак) влияют на продолжительность нахождения в стане. Если базовая продолжительность мала, то вся эта система вполне имеет определенный баланс.
Кстати, а что по поводу конкретного вопроса на форуме "там"? -
deathband,
[code:1e1ddhgi]
scdef=3+status_get_vit(bl)+status_get_luk(bl)/3;[/code:1e1ddhgi]
это формула длительности стана -
@"Darth-Crusher":
deathband, это формула длительности станапростите, но если у нас 0ая длительно... разве это не есть защита?
или должен быть ещё некий иммунитет?меня лично, очень интересуют настоящие (не старые) формулы оффа.
-
Вот именно так оно и реализовано сейчас. Да должен быть иммунитет. устал
Вопрос там ничего не решит, - никто оригинальный код не покажет, если уж сказать четко про азуру не смогли, то что уж говорить о шансе наложения стана под метеором.
-
@"deathband":
@"Darth-Crusher":
deathband, это формула длительности станапростите, но если у нас 0ая длительно... разве это не есть защита?
или должен быть ещё некий иммунитет?меня лично, очень интересуют настоящие (не старые) формулы оффа.
есть разница между вероятностью появления эффекта и его длительностью. Это легко проиллюстрировать на примере статусов curse или sleep
-
@"Darth-Crusher":
deathband, это формула длительности станаНет, формула длительности стана это:
[code:2scjnyg1] case SC_STAN: /* âXâ^âôüival2é╔â~âèòbâZâbâgüj */
if(!(flag&2)) {
int sc_def = 100 - (status_get_vit(bl) + status_get_luk(bl)/3);
tick = tick * sc_def / 100;
}
break; [/code:2scjnyg1]А того что запостил деатхбанд я не нашёл в эмуляторе, напишите поточней какой номер строки в status.c?
-
Мистикал, именно.
мой пример. строки: 2227 и 2245
после проверки на 2245 функция просто вылетает по ретурну со значением 0. -
Этот топик хороший пример того, почему я не ввожу ничего "по логике" без доказательств:
<!-- m --><a class="postlink" href="http://www.ragnainfo.net/forums/viewtopic.php?p=463860#463860">http://www.ragnainfo.net/forums/viewtop ... 860#463860</a><!-- m -->
According to the recent update in the kRO website, MS stun rate is at 30% and LoV blind rate is at 40% which is practically 100% since there are multiple hits for both spells
-
Мдя, а я только хотел написать что в лоВе тоже ошибка (там тоже нет проверки на инт_деф) :))))
Поиду попрошу, что бы буржуйские магоцефалы написали это в описании скиллов))
-
Кому верить: рагнаинфо или разработчикам еАфины?
На рагнаинфо нашел две забавные цитатки
<пропущено>
из описания МШFuture Update: Since they are huge meteors landing on people, this skill will receive a small chance to stun per level.
что говорит о том, что шанс стана зависит от уровня шторма, как сейчас и работает жАфина.
теперь смотрим код еАфины
[code:3c8cj19m] case WZ_METEOR:
if(rand()%100 < sc_def_vit)
skill_status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0);[/code:3c8cj19m]
тут шанс зависит только от виты.что-то тут не чисто...
или Трояноцефал не учил инглиш? -
@"deathband":
мой пример. строки: 2227 и 2245.Ага...
[code:3n2ueffe] switch(type){
case SC_STONE:
case SC_FREEZE:
scdef=3+status_get_mdef(bl)+status_get_luk(bl)/3;
break;
case SC_STAN:
case SC_SILENCE:
case SC_POISON:
case SC_DPOISON:
scdef=3+status_get_vit(bl)+status_get_luk(bl)/3;
break;
case SC_SLEEP:
case SC_BLIND:
scdef=3+status_get_int(bl)+status_get_luk(bl)/3;
break;
case SC_CURSE:
scdef=3+status_get_luk(bl);
break;// case SC_CONFUSION:
default:
scdef=0;
}
if(scdef>=100)
return 0;[/code:3n2ueffe]Это проверка на полный иммунитет объекта против того или иного статуса, никакой проверки вероятности срабатывания тут нету.
**
Баг есть, доказано. -
какой баг?
до того как вызывать эту функцию, производится проверка вероятности.
а уже в этой функции проверяется иммунитет.
не надо выдергивать из контекста. -
[code:1g6sxptj] case WZ_METEOR:
if(rand()%100 < sc_def_vit)
skill_status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0);[/code:1g6sxptj]Лооооооооооооооооооооооол, это вообще нонсенс, шанс срабатывания стана у метеора = 100%. Где же снижение шанса по данным рагинфо?
:lol: :lol: :lol: :lol: :lol:
@"Furcube":
какой баг?до того как вызывать эту функцию, производится проверка вероятности.
а уже в этой функции проверяется иммунитет.
не надо выдергивать из контекста.Проводится неправильнная проверка вероятности, в этом и весь баг.
Читай весь топик и не выдёргивай из контекста, после констатации неправильности провеки вероятности
@"Throyanec":
Не учитывается вит/лак резист, отсутсвует множитель sc_def_vit/100
приводит к значительно большиму шансу наложения стана, проблемам с прохождением дефа и воплям на форумеследовала проверка на наличие последующей проверик вероятности внутри функции status_change_start()
@"Sasha-san":
Throyanec, а ты проверил, может там ещё внутри функции status_change_start() проверка вит/лак?Вот:
@"Мистикал":
Нет, внутри функции проверок на вит лак нету, проверка происходит до включения статуса.С запуском функции status_change_start() происходит смена статуса объекта.
Там есть только установка времени работы эффекта.
-
Furcube, именно!
@"Мистикал":
Это проверка на полный иммунитет объекта против того или иного статуса, никакой проверки вероятности срабатывания тут нету.
вот:
[code:3h0bm99a]if(rand()%100 < 3*skilllv)[/code:3h0bm99a]м?
шанс преспокойно зависит от уровня скилла
-
eAthena'e я бы точно доверять не стал - там такие чудеса бывают))
Чтото вы увлеклись - не увидели поста выше?)
-
увидели, просто тема интересная и актуальная
-
Я еще раз прошу обратить внимание на мой вариант, раз вы его не увидели:
[code:1oq5gnse]
if(rand()%100 < 3skilllvsc_def_vit/100 )
[/code:1oq5gnse] -
Да, это 100% правильный варинт!!
Зависит от уровня метеора. Зависит от параметров объекта. То что доктор прописал!
-
Darth Crusher, осталось лишь найти доказательство правильности этого варианта
может, статус, полученный от магических атак, изначально должен игнорить ваш витдеф? а вот время "лежания" - от вит зависить.