summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 320c50149..d930dd301 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -2037,6 +2037,15 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
case KN_AUTOCOUNTER:
case NPC_CRITICALSLASH:
+ case NPC_WATERATTACK:
+ case NPC_GROUNDATTACK:
+ case NPC_FIREATTACK:
+ case NPC_WINDATTACK:
+ case NPC_POISONATTACK:
+ case NPC_HOLYATTACK:
+ case NPC_DARKNESSATTACK:
+ case NPC_TELEKINESISATTACK:
+ case NPC_SPLASHATTACK:
case TF_DOUBLE:
case GS_CHAINACTION:
case SN_SHARPSHOOTING:
@@ -7789,7 +7798,9 @@ int skill_isammotype (TBL_PC *sd, int skill)
return (
(sd->status.weapon == W_BOW || (sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE)) &&
skill != HT_PHANTASMIC && skill != GS_MAGICALBULLET &&
- skill_get_type(skill) == BF_WEAPON && !(skill_get_nk(skill)&NK_NO_DAMAGE)
+ skill_get_type(skill) == BF_WEAPON &&
+ !(skill_get_nk(skill)&NK_NO_DAMAGE) &&
+ !skill_get_spiritball(skill,1) //Assume spirit spheres are used as ammo instead.
);
}
@@ -8599,7 +8610,7 @@ int skill_delayfix (struct block_list *bl, int skill_id, int skill_lv)
// instant cast attack skills depend on aspd as delay [celest]
if (time == 0) {
- if (skill_get_type(skill_id) == BF_WEAPON && !(skill_get_nk(skill_id)&NK_NO_DAMAGE))
+ if (skill_get_type(skill_id)&(BF_WEAPON|BF_MISC) && !(skill_get_nk(skill_id)&NK_NO_DAMAGE))
time = status_get_adelay(bl); //Use attack delay as default delay.
else
time = battle_config.default_skill_delay;