|
@@ -2862,17 +2862,20 @@ static bool is_skill_using_arrow(struct block_list *src, int32 skill_id)
|
|
|
|
|
|
map_session_data *sd = BL_CAST(BL_PC, src);
|
|
|
|
|
|
- if (sd != nullptr && sd->state.arrow_atk)
|
|
|
- return true;
|
|
|
-
|
|
|
- if (sd == nullptr && skill_id != 0) {
|
|
|
- if (skill_get_ammotype(skill_id) != 0)
|
|
|
+ if( sd != nullptr ){
|
|
|
+ if( sd->state.arrow_atk ){
|
|
|
return true;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if( skill_id != 0 && skill_get_ammotype( skill_id ) != AMMO_NONE ){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
status_data* sstatus = status_get_status_data(*src);
|
|
|
|
|
|
- if (sstatus->rhw.range > 3)
|
|
|
+ if( sstatus != nullptr && sstatus->rhw.range > 3 ){
|
|
|
return true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
switch( skill_id ) {
|