diff options
author | Playtester <Playtester@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-05-18 20:45:44 +0000 |
---|---|---|
committer | Playtester <Playtester@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-05-18 20:45:44 +0000 |
commit | 9ccaf9b439bb3254733c65d92ffc33e4e984b56c (patch) | |
tree | 482bca2ebf3e855856ab7d75915895f32d6cc2a3 | |
parent | b98423cf76290dfd3b6ee8e0fc32bbf78068b382 (diff) | |
download | hercules-9ccaf9b439bb3254733c65d92ffc33e4e984b56c.tar.gz hercules-9ccaf9b439bb3254733c65d92ffc33e4e984b56c.tar.bz2 hercules-9ccaf9b439bb3254733c65d92ffc33e4e984b56c.tar.xz hercules-9ccaf9b439bb3254733c65d92ffc33e4e984b56c.zip |
* Item-bonuses and NPC skills now use the official default durations for status changes
- you gain Curse immunity if you have 0 Luk (seems buggy but is official)
- our status defense stats are already fully correct :-)
- thanks to ultramage for testing this
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13790 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-Trunk.txt | 1 | ||||
-rw-r--r-- | db/Changelog.txt | 2 | ||||
-rw-r--r-- | db/skill_cast_db.txt | 18 | ||||
-rw-r--r-- | src/map/status.c | 14 |
4 files changed, 19 insertions, 16 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index d988fbde5..56bdfb2b1 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,7 @@ 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. 09/05/18 + * Item-bonuses now use the official default durations for status changes [Playtester] * status calc code cleanup [ultramage] - Inverted the status calc code order, so that status_calc_bl optionally invokes status_calc_pc/mob/whatever instead of every status_calc_* calling status_calc_bl. - Inlined functions status_calc_bl_sub_pc, status_calc_bl_sub_hom and status_calc_bl_sub_mer into status_calc_bl. diff --git a/db/Changelog.txt b/db/Changelog.txt index d95f6bf70..97948a7c0 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -37,6 +37,8 @@ 2385 Recuvative_Armor Should trigger HP/SP return with magical kills as well. ======================= +2009/05/18 + * NPC skills now use the official default durations for status changes [Playtester] 2009/05/15 * Rev. 13784 Updated walk speed and aspd of Okolnir mobs, also fixed the flower mob modes. [L0ne_W0lf] * Rev. 13779 Minor database updates related to the Falicious Okolnir dungeon. [L0ne_W0lf] diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt index 021aab280..fefed608d 100644 --- a/db/skill_cast_db.txt +++ b/db/skill_cast_db.txt @@ -309,7 +309,7 @@ 173,0,0,0,3500,0 //-- NPC_POISON -176,0,0,0,0,30000 +176,0,0,0,0,60000 //-- NPC_BLINDATTACK 177,0,0,0,0,30000 //-- NPC_SILENCEATTACK @@ -317,7 +317,7 @@ //-- NPC_STUNATTACK 179,0,0,0,0,5000 //-- NPC_PETRIFYATTACK -180,0,0,0,0,30000 +180,0,0,0,0,20000 //-- NPC_CURSEATTACK 181,0,0,0,0,30000 //-- NPC_SLEEPATTACK @@ -927,23 +927,23 @@ //===== New Monster Skills ================= //-- NPC_ICEBREATH -655,0,0,0,0,30000 +655,0,0,0,0,12000 //-- NPC_ACIDBREATH -657,0,0,0,0,30000 +657,0,0,0,0,60000 //-- NPC_DRAGONFEAR (Upkeep2 times are duration of: Stun(lv1), Curse(lv2), Silence(lv3) and Bleeding (lv4)) -659,0,0,0,0,5000:30000:30000:60000 +659,0,0,0,0,5000:30000:30000:120000 //-- NPC_BLEEDING -660,0,0,0,0,60000 +660,0,0,0,0,120000 //-- NPC_HELLJUDGEMENT 662,0,0,0,0,30000 //-- NPC_WIDESILENCE 663,0,0,0,0,30000 //-- NPC_WIDEFREEZE -664,0,0,0,0,30000 +664,0,0,0,0,12000 //-- NPC_WIDEBLEEDING -665,0,0,0,0,60000 +665,0,0,0,0,120000 //-- NPC_WIDESTONE -666,0,0,0,0,30000 +666,0,0,0,0,20000 //-- NPC_WIDECONFUSE 667,0,0,0,0,30000 //-- NPC_WIDESLEEP diff --git a/src/map/status.c b/src/map/status.c index 619da9bd6..8f09203d4 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -122,16 +122,16 @@ void initChangeTables(void) memset(StatusChangeFlagTable, 0, sizeof(StatusChangeFlagTable)); //First we define the skill for common ailments. These are used in skill_additional_effect through sc cards. [Skotlex] - set_sc( MG_STONECURSE , SC_STONE , SI_BLANK , SCB_DEF_ELE|SCB_DEF|SCB_MDEF ); - set_sc( MG_FROSTDIVER , SC_FREEZE , SI_BLANK , SCB_DEF_ELE|SCB_DEF|SCB_MDEF ); + set_sc( NPC_PETRIFYATTACK , SC_STONE , SI_BLANK , SCB_DEF_ELE|SCB_DEF|SCB_MDEF ); + set_sc( NPC_WIDEFREEZE , SC_FREEZE , SI_BLANK , SCB_DEF_ELE|SCB_DEF|SCB_MDEF ); set_sc( NPC_STUNATTACK , SC_STUN , SI_BLANK , SCB_NONE ); set_sc( NPC_SLEEPATTACK , SC_SLEEP , SI_BLANK , SCB_NONE ); set_sc( NPC_POISON , SC_POISON , SI_BLANK , SCB_DEF2|SCB_REGEN ); set_sc( NPC_CURSEATTACK , SC_CURSE , SI_BLANK , SCB_LUK|SCB_BATK|SCB_WATK|SCB_SPEED ); set_sc( NPC_SILENCEATTACK , SC_SILENCE , SI_BLANK , SCB_NONE ); - set_sc( DC_WINKCHARM , SC_CONFUSION , SI_BLANK , SCB_NONE ); + set_sc( NPC_WIDECONFUSE , SC_CONFUSION , SI_BLANK , SCB_NONE ); set_sc( NPC_BLINDATTACK , SC_BLIND , SI_BLANK , SCB_HIT|SCB_FLEE ); - set_sc( LK_HEADCRUSH , SC_BLEEDING , SI_BLEEDING , SCB_REGEN ); + set_sc( NPC_BLEEDING , SC_BLEEDING , SI_BLEEDING , SCB_REGEN ); set_sc( NPC_POISON , SC_DPOISON , SI_BLANK , SCB_DEF2|SCB_REGEN ); //The main status definitions @@ -4535,14 +4535,14 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti 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)) + //Special property: inmunity when luk is greater than level or zero + if (status->luk > status_get_lv(bl) || status->luk == 0) 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. + case SC_BLIND: sc_def = 3 +(status->vit + status->int_)/2; break; case SC_CONFUSION: |