Переглянути джерело

- 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 роки тому
батько
коміт
d80ed485d0
2 змінених файлів з 11 додано та 0 видалено
  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.
 
 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
 	  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

+ 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))
 			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);
@@ -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.
 			if(val3 < 1) val3 = 1; 
 			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.
 			break;