summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--db/Changelog.txt2
-rw-r--r--db/skill_cast_db.txt18
-rw-r--r--src/map/status.c14
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: