瀏覽代碼

- Fixed (?) the Family recall warp skills.
- Fixed pc_percentheal giving life when the rates are negative.
- Fixed resetting stats losing the +52 bonus on high classes.


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

skotlex 19 年之前
父節點
當前提交
c1b97d2cec
共有 3 個文件被更改,包括 11 次插入7 次删除
  1. 3 0
      Changelog-Trunk.txt
  2. 6 5
      src/map/pc.c
  3. 2 2
      src/map/skill.c

+ 3 - 0
Changelog-Trunk.txt

@@ -4,6 +4,9 @@ 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/03/28
+	* Fixed the Family recall warp skills. [Skotlex]
+	* Fixed pc_percentheal giving life when the rates are negative. [Skotlex]
+	* Fixed resetting stats losing the +52 bonus on high classes. [Skotlex]
 	* Fixed Wedding support skills healing yourself instead of partner.
 	  [Skotlex]
 	* Added a check to prevent knocking back the Emperium at all costs.

+ 6 - 5
src/map/pc.c

@@ -4430,7 +4430,8 @@ int pc_resetstate(struct map_session_data* sd)
 		int stat;
 		stat = statp[sd->status.base_level];
 		if (sd->class_&JOBL_UPPER)
-			sd->status.status_point+=52;	// extra 52+48=100 stat points
+			stat+=52;	// extra 52+48=100 stat points
+		
 		if (stat > USHRT_MAX)
 			sd->status.status_point = USHRT_MAX;
 		else
@@ -5374,11 +5375,11 @@ int pc_percentheal(struct map_session_data *sd,int hp,int sp)
 		}
 		else { //hp < 0
 			hp = sd->status.max_hp*hp/100;
-			if (sd->status.hp <= hp) {
+			if (sd->status.hp <= -hp) {
 				sd->status.hp = 0;
 				pc_damage(NULL,sd,1);
 			} else
-				sd->status.hp -= hp;
+				sd->status.hp += hp;
 		}
 	}
 	if(sp) {
@@ -5394,10 +5395,10 @@ int pc_percentheal(struct map_session_data *sd,int hp,int sp)
 				sd->status.sp += sp;
 		} else { //sp < 0
 			sp = sd->status.max_sp*sp/100;
-			if (sd->status.sp <= sp)
+			if (sd->status.sp <= -sp)
 				sd->status.sp = 0;
 			else
-				sd->status.sp -= sp;
+				sd->status.sp += sp;
 		}
 	}
 	if(hp)

+ 2 - 2
src/map/skill.c

@@ -7276,10 +7276,10 @@ int skill_unit_onlimit(struct skill_unit *src,unsigned int tick)
 	case UNT_CALLFAMILY:	/* ‚ ‚È‚½‚É?‚¢‚½‚¢ */
 		{
 			struct map_session_data *sd = NULL;
-			if(src->val1 && (sd = map_charid2sd(src->val1))
+			if(sg->val1 && (sd = map_charid2sd(sg->val1))
 				&& !map[sd->bl.m].flag.nowarp)
 				pc_setpos(sd,map[src->bl.m].index,src->bl.x,src->bl.y,3);
-			if(src->val2 && (sd = map_charid2sd(src->val2))
+			if(sg->val2 && (sd = map_charid2sd(sg->val2))
 				&& !map[sd->bl.m].flag.nowarp)
 				pc_setpos(sd,map[src->bl.m].index,src->bl.x,src->bl.y,3);
 		}