diff options
-rw-r--r-- | src/map/mob.c | 4 | ||||
-rw-r--r-- | src/map/skill.c | 4 | ||||
-rw-r--r-- | src/map/status.c | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/map/mob.c b/src/map/mob.c index 11d44955f..f4e30e51f 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1160,7 +1160,7 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap) ) { //Rude attacked if (md->state.attacked_count++ >= RUDE_ATTACKED_COUNT && !mobskill_use(md, tick, MSC_RUDEATTACKED) && can_move && - unit_escape(bl, abl, rand()%10 +1)) + !tbl && unit_escape(bl, abl, rand()%10 +1)) { //Escaped. //TODO: Maybe it shouldn't attempt to run if it has another, valid target? md->attacked_id = 0; @@ -2855,7 +2855,7 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event) if (!flag) { //Skill failed. md->skillidx = -1; - return 0; + continue; } if(battle_config.mob_ai&0x200) { //pass on delay to same skill. diff --git a/src/map/skill.c b/src/map/skill.c index 4c3559b9f..ce6f81aaf 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4443,10 +4443,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in break; case AL_TELEPORT: - //Should fail when used on top of Land Protector [Skotlex] - if (map_getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR)) - break; - if(sd) { if (map[bl->m].flag.noteleport) { clif_skill_teleportmessage(sd,0); diff --git a/src/map/status.c b/src/map/status.c index 27faecd05..6847f0233 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -973,6 +973,10 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int if (hide_flag&INF_GROUND_SKILL && skill_get_unit_target(skill_num)&BCT_ENEMY) return 0; } + + //Should fail when used on top of Land Protector [Skotlex] + if (src && skill_num == AL_TELEPORT && map_getcell(src->m, src->x, src->y, CELL_CHKLANDPROTECTOR)) + return 0; if (src) sc = status_get_sc(src); |