Browse Source

- Modified SC_STONE so that the duration of the "petrifying" time is 5 secs reduced by your natural resistance to petrify (which is mdef%)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9047 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 18 years ago
parent
commit
d80ed485d0
2 changed files with 11 additions and 0 deletions
  1. 2 0
      Changelog-Trunk.txt
  2. 9 0
      src/map/status.c

+ 2 - 0
Changelog-Trunk.txt

@@ -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/10/23
 2006/10/23
+	* Modified SC_STONE so that the duration of the "petrifying" time is 5 secs
+	  reduced by your natural resistance to petrify (which is mdef%) [Skotlex]
 	* Modified the meaning of the third column in the skill_require_db. Instead
 	* Modified the meaning of the third column in the skill_require_db. Instead
 	  of MaxHP, this is now called MaxHPTrigger. This column (which was
 	  of MaxHP, this is now called MaxHPTrigger. This column (which was
 	  previously unused by all skills) signals the limit HP% that you can have to
 	  previously unused by all skills) signals the limit HP% that you can have to

+ 9 - 0
src/map/status.c

@@ -4497,6 +4497,10 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 
 
 		if (!(rand()%10000 < rate))
 		if (!(rand()%10000 < rate))
 			return 0;
 			return 0;
+
+	  	//Need to store resistance so the petrifying time can also be reduced. [Skotlex]
+		if (type == SC_STONE)
+			val4 = def;
 	}
 	}
 
 
 	undead_flag=battle_check_undead(status->race,status->def_ele);
 	undead_flag=battle_check_undead(status->race,status->def_ele);
@@ -4993,6 +4997,11 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 			val3 = tick/1000; //Petrified HP-damage iterations.
 			val3 = tick/1000; //Petrified HP-damage iterations.
 			if(val3 < 1) val3 = 1; 
 			if(val3 < 1) val3 = 1; 
 			tick = 5000; //Petrifying time.
 			tick = 5000; //Petrifying time.
+			if (val4)
+			{	//Apply duration resist to petrifying time as well.
+				tick -= tick*val4/10000;
+				val4 = 0; //Is later used as a tick-damage counter.
+			}
 			calc_flag = 0; //Actual status changes take effect on petrified state.
 			calc_flag = 0; //Actual status changes take effect on petrified state.
 			break;
 			break;