- Adjusted status resistances and durations taking as base Viccious's info from the kro guidebook.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7034 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-06-07 15:27:31 +00:00
parent 200032c28b
commit 17d6fd86cc
2 changed files with 35 additions and 26 deletions

View File

@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/06/07 2006/06/07
* Adjusted status resistances and durations taking as base Viccious's info
from the kro guidebook. [Skotlex]
* Moved souldrain code from skill_counter_additional_effect to mob_dead. It * Moved souldrain code from skill_counter_additional_effect to mob_dead. It
should display the skill animation correctly now. [Skotlex] should display the skill animation correctly now. [Skotlex]
* Adjusted several sc rate/time reductions as pointed out by Playtester. * Adjusted several sc rate/time reductions as pointed out by Playtester.

View File

@ -3828,17 +3828,6 @@ int status_get_sc_def(struct block_list *bl, int type)
status = status_get_status_data(bl); status = status_get_status_data(bl);
switch (type) switch (type)
{ {
//Note that stats that are *100/3 were simplified to *33
case SC_STONE:
case SC_FREEZE:
case SC_DECREASEAGI:
case SC_COMA:
sc_def = 300 +100*status->mdef +10*status->luk;
break;
case SC_SLEEP:
case SC_CONFUSION:
sc_def = 300 +100*status->int_ +10*status->luk;
break;
case SC_STUN: case SC_STUN:
case SC_POISON: case SC_POISON:
case SC_DPOISON: case SC_DPOISON:
@ -3846,11 +3835,26 @@ int status_get_sc_def(struct block_list *bl, int type)
case SC_BLEEDING: case SC_BLEEDING:
sc_def = 300 +100*status->vit +10*status->luk; sc_def = 300 +100*status->vit +10*status->luk;
break; break;
case SC_BLIND: case SC_SLEEP:
sc_def = 300 +100*status->int_ +10*status->vit; sc_def = 300 +100*status->int_ +10*status->luk;
break;
case SC_STONE:
case SC_FREEZE:
case SC_DECREASEAGI:
case SC_COMA:
sc_def = 300 +100*status->mdef +10*status->luk;
break; break;
case SC_CURSE: case SC_CURSE:
sc_def = 300 +100*status->luk +10*status->vit; if (status->luk > status_get_lv(bl))
sc_def = 10000; //Special property: inmunity when luk is greater than level
else
sc_def = 300 +100*status->luk;
break;
case SC_BLIND: //TODO: These 50/50 factors are guessed. Need to find actual value.
sc_def = 300 +50*status->vit +50*status->int_ +10*status->luk;
break;
case SC_CONFUSION:
sc_def = 300 +50*status->str +50*status->int_ +10*status->luk;
break; break;
default: default:
return 0; //Effect that cannot be reduced? Likely a buff. return 0; //Effect that cannot be reduced? Likely a buff.
@ -3903,25 +3907,28 @@ int status_get_sc_tick(struct block_list *bl, int type, int tick)
if(sd && pc_checkskill(sd,BS_HILTBINDING)>0) if(sd && pc_checkskill(sd,BS_HILTBINDING)>0)
tick += tick / 10; tick += tick / 10;
break; break;
case SC_DPOISON:
case SC_POISON:
case SC_STUN:
case SC_BLEEDING:
case SC_SILENCE:
case SC_CURSE:
rate = 100*status->vit;
break;
case SC_SLEEP:
rate = 100*status->int_;
break;
case SC_STONE: case SC_STONE:
rate = -200*status->mdef; rate = -200*status->mdef;
break; break;
case SC_FREEZE: case SC_FREEZE:
rate = 100*status->mdef; rate = 100*status->mdef;
break; break;
case SC_STUN:
case SC_DPOISON:
case SC_POISON:
rate = 100*status->vit + 20*status->luk;
break;
case SC_BLEEDING:
case SC_SILENCE:
case SC_CONFUSION:
case SC_CURSE:
rate = 100*status->vit;
break;
case SC_BLIND: case SC_BLIND:
rate = 10*status_get_lv(bl) + 7*status->int_; rate = 50*status->vit +50*status->int_;
break;
case SC_CONFUSION:
rate = 50*status->str +50*status->int_;
break; break;
case SC_SWOO: case SC_SWOO:
if (status->mode&MD_BOSS) if (status->mode&MD_BOSS)