Механика статусов и антистатусов на ГВ
-
@"Hypno-Damage":
@"Lex_Divina":
Он дает полный иммунитет (+100% сопротивления) ко всем классическим негативным статусам — стану, керсу, СК, фризу, молчанке, пойзону, дэдли пойзону, хаосу, блидингу, слепоте, слипу. И анклам.
А с каких пор дает иммунитет к анклам? Изменения после последних рестартов?
Нет, давняя фича кода.
status = status_get_status_data(bl);
switch (type)
{
case SC_STUN:
case SC_POISON:
case SC_DPOISON:
case SC_SILENCE:
case SC_BLEEDING:
sc_def = 3 +status->vit;
break;
case SC_SLEEP:
sc_def = 3 +status->int_;
break;
case SC_DECREASEAGI:
if (sd) tick>>=1; //Half duration for players.
case SC_STONE:
case SC_FREEZE:
sc_def = 3 +status->mdef;
break;
case SC_CURSE:
//Special property: inmunity when luk is greater than level
if (status->luk > status_get_lv(bl))
return 0;
else
sc_def = 3 +status->luk;
tick_def = status->vit;
break;
case SC_BLIND: //TODO: These 50/50 factors are guessed. Need to find actual value.
sc_def = 3 +(status->vit + status->int_)/2;
break;
case SC_CONFUSION:
sc_def = 3 +(status->str + status->int_)/2;
break;
case SC_ANKLE:
if(status->mode&MD_BOSS) // Lasts 5 times less on bosses
tick /= 5;
sc_def = status->agi / 2;
break;
case SC_MAGICMIRROR:
case SC_ARMORCHANGE:
if (sd) //Duration greatly reduced for players.
tick /= 15;
//No defense against it (buff).
default:
//Effect that cannot be reduced? Likely a buff.
if (!(rand()%10000 < rate))
return 0;
return tick?tick:1;
}sc = status_get_sc(bl); if (sc && sc->count) {
-
if (sc->data[SC_SCRESIST])*
-
sc_def += sc->data[SC_SCRESIST]->val1; //Status resist* else if (sc->data[SC_SIEGFRIED]) sc_def += sc->data[SC_SIEGFRIED]->val3; //Status resistance.
}
//When no tick def, reduction is the same for both.
if (!tick_def) tick_def = sc_def;//Natural resistance
if (!(flag&8)) {
rate -= rate*sc_def/100;//Item resistance (only applies to rate%) if(sd && SC_COMMON_MIN <= type && type <= SC_COMMON_MAX) { if( sd->reseff[type-SC_COMMON_MIN] > 0 ) rate -= rate*sd->reseff[type-SC_COMMON_MIN]/10000; if( sd->sc.data[SC_COMMONSC_RESIST] ) rate -= rate*sd->sc.data[SC_COMMONSC_RESIST]->val1/100; }
}
if (!(rand()%10000 < rate))
return 0;//Why would a status start with no duration? Presume it has
//duration defined elsewhere.
if (!tick) return 1;//Rate reduction
if (flag&2)
return tick;tick -= tick*tick_def/100;
// Changed to 5 seconds according to recent tests [Playtester]
if (type == SC_ANKLE && tick < 5000) -
tick = 5000;*
return tick<=0?0:tick;
}
Для сервера состояние неподвижности в анкле является точно таким же статусом, как и фриз или стан. И сопротивление к нему рассчитывается через тот же параметр, что и для всех прочих статусов — sc_def, только рассчитывается для анклов он чуть иначе, чем для иных статусов, через аги/2.
Госпельный же антистатус SC_SCRESIST работает, просто добавляя +100 к значению sc_def любого статуса, независимо от того, каким параметром он задается — витой, интой, агилкой или мдефом.
Выделенный последним участок кода отвечает за минимальное время стояния в трапе, т.е. 5 секунд. Я всегда думала, что анклы срабатывают со 100% шансом независимо от аги цели, а параметр sc_def используется лишь для расчета времени стояния tick. Поэтому и полагала, что госпелл обнуляет время стояния в трапе, но затем оно автоматически поднимается до минимального.Однако мои источники сообщают, что периодически замечаются персонажи, игнорящие трапы вовсе. Возможно, при 100% резисте к анклам (достигаемом при 200 аги, либо 100 аги и зигфриде, либо госпельном антистатусе) сервер фиксирует полный иммунитет, и до обсчета времени стояния (а именно после него стоит минимальное ограничение в 5 секунд) дело просто не доходит.
Тестите, чо.
-
-
аккрдин ту зе топикнейм: а что, вне гв как-то по-другому?)
хорошая идея все непонятки и новые техники выносить на суд общественности в явном виде)
-
archer, а это чтобы не приставали с тематикой раздела. Не пали. :x
-
Госпел от трапов не спасает, проверили.
-
Ну, в любом случае он должен давать минимальное время стояния в них.
-
На счет времени не помню, секунд 10-20 стоял точно. Может раза в 2 уменьшилось.
-
Hypno Damage
do it. do it again. -
В чате как-то отображается момент получения этого эффекта?
-
Время стояния не засекала. Оно осталось достаточным, чтобы умереть. Возможно, 5 секунд, но сейчас тестить лень.
-
С помощью скила линкера, вроде кайт, который отражает 2 скила игонорятся трапы. Тесты не проводил, но замечал, что именно под этим линком трапы игнорятся
-
Хотен, проводи и пиши.
-
каите вроде только рефлектит магию?
упд: а каупе торлько 1 удар игнорит -
может имелось ввиду каупе, хотя я тоже не особо шарю )
-
@"archer":
может имелось ввиду каупе, хотя я тоже не особо шарю )
Я про тоже . Знаю, что на мне был линк, но линк этот не лк -
Хотен значок был в кастах или аура как бы?
-
@"Abel_Netroid":
Хотен значок был в кастах или аура как бы?
Аура была, на значок если он и был не обращал внимание. -
если аура то это каите, а каупе имеет значок , только полностью синий
-
Это был баг позиционирования, а не баф от линкера.
-
@"Hypno-Damage":
Это был баг позиционирования, а не баф от линкера.
Нет не баг. Бегал свободно по трапам. -
Если можно, пруф-видео.