فهرست منبع

Fixed required weapon messages. (#2808)

Fixes #2804 

Thanks to @Daegaladh
Daegaladh 7 سال پیش
والد
کامیت
de9b4efd1a
1فایلهای تغییر یافته به همراه20 افزوده شده و 12 حذف شده
  1. 20 12
      src/map/skill.cpp

+ 20 - 12
src/map/skill.cpp

@@ -15672,18 +15672,26 @@ bool skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_i
 			case RA_AIMEDBOLT:
 				break;
 			default:
-				if (require.weapon&(1<<W_REVOLVER))
-					clif_msg(sd, SKILL_NEED_REVOLVER);
-				else if (require.weapon&(1<<W_RIFLE))
-					clif_msg(sd, SKILL_NEED_RIFLE);
-				else if (require.weapon&(1<<W_GATLING))
-					clif_msg(sd, SKILL_NEED_GATLING);
-				else if (require.weapon&(1<<W_SHOTGUN))
-					clif_msg(sd, SKILL_NEED_SHOTGUN);
-				else if (require.weapon&(1<<W_GRENADE))
-					clif_msg(sd, SKILL_NEED_GRENADE);
-				else
-					clif_skill_fail(sd, skill_id, USESKILL_FAIL_THIS_WEAPON, 0);
+				switch((unsigned int)log2(require.weapon)) {
+					case W_REVOLVER:
+						clif_msg(sd, SKILL_NEED_REVOLVER);
+						break;
+					case W_RIFLE:
+						clif_msg(sd, SKILL_NEED_RIFLE);
+						break;
+					case W_GATLING:
+						clif_msg(sd, SKILL_NEED_GATLING);
+						break;
+					case W_SHOTGUN:
+						clif_msg(sd, SKILL_NEED_SHOTGUN);
+						break;
+					case W_GRENADE:
+						clif_msg(sd, SKILL_NEED_GRENADE);
+						break;
+					default:
+						clif_skill_fail(sd, skill_id, USESKILL_FAIL_THIS_WEAPON, 0);
+						break;
+				}
 				return false;
 		}
 	}