소스 검색

Fixed a bug where Storm Gust and other miscellaneous skills were not sending the packets to the client; prior to this revision, if you used, SG for example, you wouldn't see the mobs push until you @refresh. Storm Gust was also not pushing mobs as per the official mechanic (randomly) as it was pushing one cell backwards (prior to this revision). bugreport:6225

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16477 54d463be-8e91-2dee-dedb-b68131a5f0ec
cookiecrumbs 13 년 전
부모
커밋
4f997e2b75
1개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 2
      src/map/skill.c

+ 5 - 2
src/map/skill.c

@@ -2038,7 +2038,7 @@ int skill_blown(struct block_list* src, struct block_list* target, int count, in
 		dy = -diry[direction];
 	}
 
-	return unit_blown(target, dx, dy, count, flag&0x1);
+	return unit_blown(target, dx, dy, count, flag);	// send over the proper flag
 }
 
 
@@ -2520,7 +2520,6 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
 		int direction = -1; // default
 		switch(skillid) {//direction
 			case MG_FIREWALL:
-			case WZ_STORMGUST:
 			case PR_SANCTUARY:
 			case SC_TRIANGLESHOT:
 			case LG_OVERBRAND:
@@ -2529,6 +2528,10 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
 			case EL_FIRE_MANTLE:				
 				direction = unit_getdir(bl);// backwards
 				break;
+			// This ensures the storm randomly pushes instead of exactly a cell backwards per official mechanics.
+			case WZ_STORMGUST:
+				direction = rand()%8;
+				break;
 			case WL_CRIMSONROCK:
 				direction = map_calc_dir(bl,skill_area_temp[4],skill_area_temp[5]);
 				break;