diff --git a/db/pre-re/skill_require_db.txt b/db/pre-re/skill_require_db.txt index acdd754366..5f84ec620c 100644 --- a/db/pre-re/skill_require_db.txt +++ b/db/pre-re/skill_require_db.txt @@ -139,7 +139,7 @@ 110,0,0,10,0,0,0,1:2:6:7:8,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_HAMMERFALL 111,0,0,20:23:26:29:32,0,0,0,6:7:8,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_ADRENALINE 112,0,0,18:16:14:12:10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_WEAPONPERFECT -113,0,0,18:16:14:12:10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_OVERTHRUST +113,0,0,18:16:14:12:10,0,0,0,1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_OVERTHRUST 114,0,0,10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_MAXIMIZE //**** diff --git a/db/re/skill_require_db.txt b/db/re/skill_require_db.txt index b6b6c1ae69..2390abed38 100644 --- a/db/re/skill_require_db.txt +++ b/db/re/skill_require_db.txt @@ -139,7 +139,7 @@ 110,0,0,10,0,0,0,1:2:6:7:8,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_HAMMERFALL 111,0,0,20:23:26:29:32,0,0,0,6:7:8,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_ADRENALINE 112,0,0,18:16:14:12:10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_WEAPONPERFECT -113,0,0,18:16:14:12:10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_OVERTHRUST +113,0,0,18:16:14:12:10,0,0,0,1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_OVERTHRUST 114,0,0,10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //BS_MAXIMIZE //**** diff --git a/src/map/skill.c b/src/map/skill.c index ace73dd9ca..889943229d 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6806,8 +6806,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case BS_WEAPONPERFECT: case BS_OVERTHRUST: if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) { - clif_skill_nodamage(bl,bl,skill_id,skill_lv, - sc_start2(src,bl,type,100,skill_lv,(src == bl)? 1:0,skill_get_time(skill_id,skill_lv))); + int weapontype = skill_get_weapontype(skill_id); + if (!weapontype || pc_check_weapontype(dstsd, weapontype)) { + clif_skill_nodamage(bl, bl, skill_id, skill_lv, + sc_start2(src, bl, type, 100, skill_lv, (src == bl) ? 1 : 0, skill_get_time(skill_id, skill_lv))); + } } else if (sd) { party_foreachsamemap(skill_area_sub, sd,skill_get_splash(skill_id, skill_lv), diff --git a/src/map/status.c b/src/map/status.c index 1bd46a16a9..a863463e81 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -7902,8 +7902,6 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty return 0; // Overthrust and Overthrust Max cannot be used on Mado Gear [Ind] break; case SC_ADRENALINE: - if(sd && !pc_check_weapontype(sd,skill_get_weapontype(BS_ADRENALINE))) - return 0; if (sc->data[SC_QUAGMIRE] || sc->data[SC_DECREASEAGI] || sc->data[SC_ADORAMUS] || @@ -7912,8 +7910,6 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty return 0; break; case SC_ADRENALINE2: - if(sd && !pc_check_weapontype(sd,skill_get_weapontype(BS_ADRENALINE2))) - return 0; if (sc->data[SC_QUAGMIRE] || sc->data[SC_DECREASEAGI] || sc->data[SC_ADORAMUS] @@ -9304,17 +9300,21 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty val2 = 20*val1; // Power increase break; case SC_OVERTHRUST: - // val2 holds if it was casted on self, or is bonus received from others - val3 = 5*val1; // Power increase - if(sd && pc_checkskill(sd,BS_HILTBINDING)>0) - tick += tick / 10; - break; case SC_ADRENALINE2: case SC_ADRENALINE: - val3 = (val2) ? 300 : 200; // aspd increase case SC_WEAPONPERFECTION: - if(sd && pc_checkskill(sd,BS_HILTBINDING)>0) - tick += tick / 10; + { + struct map_session_data * s_sd = BL_CAST(BL_PC, src); + if (type == SC_OVERTHRUST) { + // val2 holds if it was casted on self, or is bonus received from others + val3 = (val2) ? 5 * val1 : 5; // Power increase + } + else if (type == SC_ADRENALINE2 || type == SC_ADRENALINE) { + val3 = (val2) ? 300 : 200; // Aspd increase + } + if (s_sd && pc_checkskill(s_sd, BS_HILTBINDING) > 0) + tick += tick / 10; //If caster has Hilt Binding, duration increases by 10% + } break; case SC_CONCENTRATION: val2 = 5*val1; // Batk/Watk Increase