summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/mob.c4
-rw-r--r--src/map/skill.c4
-rw-r--r--src/map/status.c4
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);