소스 검색

- Added sc_data check for pc_damage
- Corrected error in skill.c

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

celest 20 년 전
부모
커밋
f85d536c8e
3개의 변경된 파일11개의 추가작업 그리고 6개의 파일을 삭제
  1. 1 0
      Changelog.txt
  2. 5 4
      src/map/pc.c
  3. 5 2
      src/map/skill.c

+ 1 - 0
Changelog.txt

@@ -8,6 +8,7 @@ Date	Added
           - Added some new monster skills based on jA mod 1077
         * Changed @job to accept text job names - For example: @job wizard, @job high
           priestess, @job super baby [celest]
+        * Added sc_data check for pc_damage [celest]
 
 12/8
 	* Fixed @rings [MouseJstr]

+ 5 - 4
src/map/pc.c

@@ -5365,11 +5365,12 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
 	}
 
 	// ? いていたら足を止める
-	if(sd->sc_data[SC_ENDURE].timer == -1 && sd->sc_data[SC_BERSERK].timer && !sd->special_state.infinite_endure)
-		pc_stop_walking(sd,3);
-	else if(sd->sc_data[SC_ENDURE].timer != -1 && src->type==BL_MOB)   // [Celest]
-		if((--sd->sc_data[SC_ENDURE].val2) <= 0)
+	if (sd->sc_data) {
+		if (sd->sc_data[SC_ENDURE].timer == -1 && sd->sc_data[SC_BERSERK].timer == -1 && !sd->special_state.infinite_endure)
+			pc_stop_walking(sd,3);
+		else if(sd->sc_data[SC_ENDURE].timer != -1 && src->type==BL_MOB && (--sd->sc_data[SC_ENDURE].val2) <= 0)
 			skill_status_change_end(&sd->bl, SC_ENDURE, -1);
+	}
 	// 演奏/ダンスの中?
 	if(damage > sd->status.max_hp>>2)
 		skill_stop_dancing(&sd->bl,0);

+ 5 - 2
src/map/skill.c

@@ -9958,11 +9958,11 @@ int skill_status_change_start(struct block_list *bl, int type, int val1, int val
 		case SC_BERSERK:
 			calc_flag=1;
 			break;
-*/
 		case SC_ASSUMPTIO:
 			if(sc_data[SC_KYRIE].timer!=-1 )
 				skill_status_change_end(bl,SC_KYRIE,-1);
-				break;
+				break;*/
+
 		case SC_WINDWALK:		/* ウインドウォ?ク */
 			calc_flag = 1;
 			val2 = (val1 / 2); //Flee上昇率
@@ -9982,6 +9982,9 @@ int skill_status_change_start(struct block_list *bl, int type, int val1, int val
 			break;
 
 		case SC_ASSUMPTIO:		/* アスムプティオ */
+			if(sc_data[SC_KYRIE].timer!=-1 )
+				skill_status_change_end(bl,SC_KYRIE,-1);
+				break;
 			*opt3 |= 2048;
 			break;