Bladeren bron

- Should have fixed being petrified not reducing your defense and increaseing your mdef.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8958 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 18 jaren geleden
bovenliggende
commit
231c36a9c7
3 gewijzigde bestanden met toevoegingen van 7 en 8 verwijderingen
  1. 2 0
      Changelog-Trunk.txt
  2. 2 2
      src/map/script.c
  3. 3 6
      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/09
+	* Should have fixed being petrified not reducing your defense and
+	  increaseing your mdef. [Skotlex]
 	* Fixed SC_NOCHAT printing the "skills are now available" message twice on
 	  natural expiration. [Skotlex]
 2006/10/08

+ 2 - 2
src/map/script.c

@@ -2737,9 +2737,9 @@ void run_script_main(struct script_state *st)
 		if(bk_st) {
 			ShowWarning("Unable to restore stack! Double continuation!\n");
 			//Report BOTH scripts to see if that can help somehow.
-			ShowDebug("Previous script (lost):");
+			ShowDebug("Previous script (lost):\n");
 			report_src(bk_st);
-			ShowDebug("Current script:");
+			ShowDebug("Current script:\n");
 			report_src(st);
 		}
 	} else {

+ 3 - 6
src/map/status.c

@@ -113,7 +113,7 @@ void initChangeTables(void) {
 	StatusSkillChangeTable[SC_DPOISON] =   NPC_POISON;
 
 	//These are the status-change flags for the common ailments.
-	StatusChangeFlagTable[SC_STONE] =     SCB_DEF_ELE;
+	StatusChangeFlagTable[SC_STONE] =     SCB_DEF_ELE|SCB_DEF|SCB_MDEF;
 	StatusChangeFlagTable[SC_FREEZE] =    SCB_DEF_ELE|SCB_DEF|SCB_MDEF;
 //	StatusChangeFlagTable[SC_STUN] =      SCB_NONE;
 //	StatusChangeFlagTable[SC_SLEEP] =     SCB_NONE;
@@ -5007,6 +5007,7 @@ 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.
+			calc_flag = 0; //Actual status changes take effect on petrified state.
 			break;
 
 		case SC_DPOISON:
@@ -5439,10 +5440,6 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 			val4 = gettick(); //Store time at which you started running.
 			break;
 		case SC_KAAHI:
-			if(flag&4) {
-				val4 = -1;
-				break;
-			}
 			val2 = 200*val1; //HP heal
 			val3 = 5*val1; //SP cost 
 			val4 = -1;	//Kaahi Timer.
@@ -6480,7 +6477,7 @@ int status_change_timer(int tid, unsigned int tick, int id, int data)
 			sc->opt1 = OPT1_STONE;
 			clif_changeoption(bl);
 			sc->data[type].timer=add_timer(1000+tick,status_change_timer, bl->id, data );
-			status_calc_bl(bl, SCB_DEF_ELE);
+			status_calc_bl(bl, StatusChangeFlagTable[type]);
 			return 0;
 		}
 		if((--sc->data[type].val3) > 0) {