浏览代码

- 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 年之前
父节点
当前提交
c9f213bc82
共有 3 个文件被更改,包括 22 次插入16 次删除
  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.
 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
 	* 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

+ 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);
 			if(map_getcell(src->m,x,y,CELL_CHKPASS)) {
-				unit_movepos(src, x, y, 1, 0);
 				clif_slide(src,x,y);
+				unit_movepos(src, x, y, 1, 0);
 			}
 		}
 		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;
 				val4 |= stat;
 			} 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
 				//Str
 				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;
 				//Agi
 				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;
 				//Vit
 				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;
 				//Int
 				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;
 				//Dex
 				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;
 				//Luk
 				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;
 			}
 			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
 			break;
 		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;
 		case SC_STAR_COMFORT:
 			val2 = (status_get_lv(bl) + status->dex + status->luk); //Aspd increase