Browse Source

- Changed the order of packets in TK_HIGHJUMP, may fix the reports of getting stuck when jumping into a warp.
- Changed a bit the code of marionette control, where a redefined local variable may be the cause of mob-targetted Marionette Control stacking stats up.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8857 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 18 years ago
parent
commit
c9f213bc82
3 changed files with 22 additions and 16 deletions
  1. 6 0
      Changelog-Trunk.txt
  2. 1 1
      src/map/skill.c
  3. 15 15
      src/map/status.c

+ 6 - 0
Changelog-Trunk.txt

@@ -3,6 +3,12 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 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/09/25
+	* Changed the order of packets in TK_HIGHJUMP, may fix the reports of
+	  getting stuck when jumping into a warp. [Skotlex]
+	* Changed a bit the code of marionette control, where a redefined local
+	  variable may be the cause of mob-targetted Marionette Control stacking
+	  stats up. [Skotlex]
 2006/09/24
 2006/09/24
 	* When the code auto-guesses that a skill should require ammo, it will
 	* When the code auto-guesses that a skill should require ammo, it will
 	  accept any type of ammo for using it instead of only arrows. Fixes Magnum
 	  accept any type of ammo for using it instead of only arrows. Fixes Magnum

+ 1 - 1
src/map/skill.c

@@ -4688,8 +4688,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			
 			
 			clif_skill_nodamage(src,bl,TK_HIGHJUMP,skilllv,1);
 			clif_skill_nodamage(src,bl,TK_HIGHJUMP,skilllv,1);
 			if(map_getcell(src->m,x,y,CELL_CHKPASS)) {
 			if(map_getcell(src->m,x,y,CELL_CHKPASS)) {
-				unit_movepos(src, x, y, 1, 0);
 				clif_slide(src,x,y);
 				clif_slide(src,x,y);
+				unit_movepos(src, x, y, 1, 0);
 			}
 			}
 		}
 		}
 		break;
 		break;

+ 15 - 15
src/map/status.c

@@ -5262,38 +5262,38 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 					stat =max-sd->status.luk;
 					stat =max-sd->status.luk;
 				val4 |= stat;
 				val4 |= stat;
 			} else {
 			} else {
-				struct status_data *status = status_get_base_status(bl);
-				if (!status) return 0;
+				struct status_data *b_status = status_get_base_status(bl);
+				if (!b_status) return 0;
 				max = 0xFF; //Assume a 256 max parameter
 				max = 0xFF; //Assume a 256 max parameter
 				//Str
 				//Str
 				stat = (psc->data[SC_MARIONETTE].val3>>16)&0xFF;
 				stat = (psc->data[SC_MARIONETTE].val3>>16)&0xFF;
-				if (status->str+stat > max)
-					stat = max - status->str;
+				if (b_status->str+stat > max)
+					stat = max - b_status->str;
 				val3 |= stat<<16;
 				val3 |= stat<<16;
 				//Agi
 				//Agi
 				stat = (psc->data[SC_MARIONETTE].val3>>8)&0xFF;
 				stat = (psc->data[SC_MARIONETTE].val3>>8)&0xFF;
-				if (status->agi+stat > max)
-					stat = max - status->agi;
+				if (b_status->agi+stat > max)
+					stat = max - b_status->agi;
 				val3 |= stat<<8;
 				val3 |= stat<<8;
 				//Vit
 				//Vit
 				stat = psc->data[SC_MARIONETTE].val3&0xFF;
 				stat = psc->data[SC_MARIONETTE].val3&0xFF;
-				if (status->vit+stat > max)
-					stat = max - status->vit;
+				if (b_status->vit+stat > max)
+					stat = max - b_status->vit;
 				val3 |= stat;
 				val3 |= stat;
 				//Int
 				//Int
 				stat = (psc->data[SC_MARIONETTE].val4>>16)&0xFF;
 				stat = (psc->data[SC_MARIONETTE].val4>>16)&0xFF;
-				if (status->int_+stat > max)
-					stat = max - status->int_;
+				if (b_status->int_+stat > max)
+					stat = max - b_status->int_;
 				val4 |= stat<<16;
 				val4 |= stat<<16;
 				//Dex
 				//Dex
 				stat = (psc->data[SC_MARIONETTE].val4>>8)&0xFF;
 				stat = (psc->data[SC_MARIONETTE].val4>>8)&0xFF;
-				if (status->dex+stat > max)
-					stat = max - status->dex;
+				if (b_status->dex+stat > max)
+					stat = max - b_status->dex;
 				val4 |= stat<<8;
 				val4 |= stat<<8;
 				//Luk
 				//Luk
 				stat = psc->data[SC_MARIONETTE].val4&0xFF;
 				stat = psc->data[SC_MARIONETTE].val4&0xFF;
-				if (status->luk+stat > max)
-					stat = max - status->luk;
+				if (b_status->luk+stat > max)
+					stat = max - b_status->luk;
 				val4 |= stat;
 				val4 |= stat;
 			}
 			}
 			tick = 1000;
 			tick = 1000;
@@ -5488,7 +5488,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 			val2 = (status_get_lv(bl) + status->dex + status->luk)/2; //def increase
 			val2 = (status_get_lv(bl) + status->dex + status->luk)/2; //def increase
 			break;
 			break;
 		case SC_MOON_COMFORT:
 		case SC_MOON_COMFORT:
-			val2 = (status_get_lv(bl) + status->dex + status->luk)/10; //luk increase
+			val2 = (status_get_lv(bl) + status->dex + status->luk)/10; //flee increase
 			break;
 			break;
 		case SC_STAR_COMFORT:
 		case SC_STAR_COMFORT:
 			val2 = (status_get_lv(bl) + status->dex + status->luk); //Aspd increase
 			val2 = (status_get_lv(bl) + status->dex + status->luk); //Aspd increase