Kaynağa Gözat

* 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://svn.code.sf.net/p/rathena/svn/trunk@13790 54d463be-8e91-2dee-dedb-b68131a5f0ec

Playtester 16 yıl önce
ebeveyn
işleme
0affe1454c
4 değiştirilmiş dosya ile 19 ekleme ve 16 silme
  1. 1 0
      Changelog-Trunk.txt
  2. 2 0
      db/Changelog.txt
  3. 9 9
      db/skill_cast_db.txt
  4. 7 7
      src/map/status.c

+ 1 - 0
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.

+ 2 - 0
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]

+ 9 - 9
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

+ 7 - 7
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: