diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-06-07 15:27:31 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-06-07 15:27:31 +0000 |
commit | e84ac0585ad0164b228684372e16c71c07ccf6df (patch) | |
tree | 936bba2502e0ee4177d94a2c368a1d1d6cc87e2b /src | |
parent | 7825f436c4b59d2a38a46a208f7d604c7be21dbe (diff) | |
download | hercules-e84ac0585ad0164b228684372e16c71c07ccf6df.tar.gz hercules-e84ac0585ad0164b228684372e16c71c07ccf6df.tar.bz2 hercules-e84ac0585ad0164b228684372e16c71c07ccf6df.tar.xz hercules-e84ac0585ad0164b228684372e16c71c07ccf6df.zip |
- Adjusted status resistances and durations taking as base Viccious's info from the kro guidebook.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7034 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/status.c | 57 |
1 files changed, 32 insertions, 25 deletions
diff --git a/src/map/status.c b/src/map/status.c index e8af8aa6b..afc1f2290 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3828,17 +3828,6 @@ int status_get_sc_def(struct block_list *bl, int type) status = status_get_status_data(bl); 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_POISON: case SC_DPOISON: @@ -3846,11 +3835,26 @@ int status_get_sc_def(struct block_list *bl, int type) case SC_BLEEDING: sc_def = 300 +100*status->vit +10*status->luk; break; - case SC_BLIND: - sc_def = 300 +100*status->int_ +10*status->vit; + case SC_SLEEP: + 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; 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; default: 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) tick += tick / 10; break; - case SC_STONE: - rate = -200*status->mdef; - break; - case SC_FREEZE: - rate = 100*status->mdef; - break; - case SC_STUN: case SC_DPOISON: case SC_POISON: - rate = 100*status->vit + 20*status->luk; - break; + case SC_STUN: case SC_BLEEDING: case SC_SILENCE: - case SC_CONFUSION: case SC_CURSE: rate = 100*status->vit; break; + case SC_SLEEP: + rate = 100*status->int_; + break; + case SC_STONE: + rate = -200*status->mdef; + break; + case SC_FREEZE: + rate = 100*status->mdef; + break; 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; case SC_SWOO: if (status->mode&MD_BOSS) |