diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 25063712a..ba4c51cc0 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2047,14 +2047,6 @@ 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: @@ -5641,7 +5633,9 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data) if(md) { if(tid != -1) //Set afterskill delay. - md->last_thinktime=tick + md->status.amotion; + md->last_thinktime=tick +md->status.amotion; + else + md->last_thinktime=tick +md->status.adelay; if(battle_config.mob_ai&0x200) { //pass on delay to same skill. int i; for (i = 0; i < md->db->maxskill; i++) @@ -5832,6 +5826,8 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data) if(md) { if (tid != -1) md->last_thinktime=tick +md->status.amotion; + else + md->last_thinktime=tick +md->status.adelay; if(battle_config.mob_ai&0x200) { //pass on delay to same skill. int i; for (i = 0; i < md->db->maxskill; i++) @@ -8537,7 +8533,8 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t clif_skill_fail(sd,skill,0,0); return 0; } - if(itemid[i] >= 715 && itemid[i] <= 717 && sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_WIZARD) + if(itemid[i] >= 715 && itemid[i] <= 717 && skill != HW_GANBANTEIN && + sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_WIZARD) index[i] = -1; //Gemstones are checked, but not substracted from inventory. } } |