Ошибка в скилле Meteor Storm
-
/src/map/skill.c
case WZ_METEOR: /* ƒƒeƒIƒXƒg[ƒ€ /
if(rand()%100 < 3skilllv)
status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0);
break;Не учитывается вит/лак резист, отсутсвует множитель sc_def_vit/100
приводит к значительно большиму шансу наложения стана, проблемам с прохождением дефа и воплям на форумеАналогии:
case AS_SONICBLOW: /* ƒ\ƒjƒbƒNƒuƒ[ */
if( rand()%100 < (2*skilllv+10)**sc_def_vit/100* ) status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0); break;
case SM_BASH: /* ƒoƒbƒVƒ…i‹}ŠUŒ‚j */
if( sd && (skill=pc_checkskill(sd,SM_FATALBLOW))>0 ){ if( rand()%100 < 6*(skilllv-5)**sc_def_vit/100* ) status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(SM_FATALBLOW,skilllv),0); } break;
case HT_LANDMINE: /* ƒ‰ƒ“ƒhƒ}ƒCƒ“ */
if( rand()%100 < (5*skilllv+30)**sc_def_vit/100* ) status_change_start(bl,SC_STAN,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0); break;
-
по руски напиши, да
-
и приведи доказательства того, что это ошибка. может так оно и задумано.
-
если по русски станит все живое ибо на твой вит и лак ему пох а это ЧИТ=)
-
Сейчас для метеор шторма имеем в коде
[code:cdqv25k2]
if(rand()%100 < 3*skilllv)
[/code:cdqv25k2]Такого рода условие полностью игнорирует наличие вит и лак, что не есть правильно.
А должно быть[code:cdqv25k2]
if(rand()%100 < sc_def_vit)
[/code:cdqv25k2]или же вероятнее всего
[code:cdqv25k2]
if(rand()%100 < 3skilllvsc_def_vit/100 )
[/code:cdqv25k2] -
@Furcube:
и приведи доказательства того, что это ошибка. может так оно и задумано.Есть механика игры и поэтой механике, у статуса должен быть:
- базовый шанс
- иммунитет
- время воздействия
Это должно работать для всех скиллов.
-
прокомментирую последнюю часть кода. Там имеется:
- зависимость базового шанса стуна от уровня скилла, который достигает 30% на 10м левеле
- учёт при этом статов вит и лак жертвы
-
не надо только залезать в еАфину - там многие скилы работают несколько иначе чем в жАфине.
-
@Furcube:
и приведи доказательства того, что это ошибка. может так оно и задумано.Есть механика игры и поэтой механике, у статуса должен быть:
- базовый шанс
- иммунитет
- время воздействия
Это должно работать для всех скиллов.
Несовсем точно, у статуса должны быть:
- базовый шанс, зависящий от воздействующего скилла
- шанс, зависящий от статов персонажа
- иммунитет, зависящий от статов персонажа
- время воздействия, зависящее от статов персонажа
Какраз этот Пункт 2 упущен в формуле рассчёта стана от метеора.
-
- шанс, зависящий от статов персонажа
- иммунитет, зависящий от статов персонажа
В чем разница этих 2х пунктов?)
-
=))))))) Ты прав хотя с точки зрения русского языка слово "шанс" более точно описывает механику процесса. "Иммунитет" как правило означает полную неприкосновенность.
А эмулятор был взят jathena-1178. Т.е. самый последний на текущий момент.
-
Throyanec, а ты проверил, может там ещё внутри функции status_change_start() проверка вит/лак?
-
Мистикал, см. мою последнюю формулу
Sasha-san, нет, та фукнция проверки не включает, поскольку в других скиллах эта же функция употребляется наряду с проверкой на различные статы, т.е. она только меняет статус и ничего более. -
Darth Crusher, тру тру я тожесамое отписал в теме последнего ВоЕ.
Нет, внутри функции проверок на вит лак нету, проверка происходит до включения статуса.
С запуском функции status_change_start() происходит смена статуса объекта.
-
обратите внимание вот на это:
в функции 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