summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorcsnv <ctt@csnv.es>2015-05-24 19:39:31 +0200
committercsnv <ctt@csnv.es>2015-05-24 19:39:31 +0200
commit958f7027636f9af722a1e0e060c765fd310e45eb (patch)
tree068962b0b97ff376a8eea91cbaa512291a7a14dc /src/map/skill.c
parentb2e53cca3b50f8daef0cb1f9f44d3d8989ea8d4a (diff)
downloadhercules-958f7027636f9af722a1e0e060c765fd310e45eb.tar.gz
hercules-958f7027636f9af722a1e0e060c765fd310e45eb.tar.bz2
hercules-958f7027636f9af722a1e0e060c765fd310e45eb.tar.xz
hercules-958f7027636f9af722a1e0e060c765fd310e45eb.zip
Fixes ninja skill Final Strike sliding. Bug report 8618: http://hercules.ws/board/tracker/issue-8618-final-strike/
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 58dbe2472..3db83fb6f 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3833,9 +3833,16 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
if( dir > 2 && dir < 6 ) y = -i;
else if( dir == 7 || dir < 2 ) y = i;
else y = 0;
- if( (mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground) ) // only NJ_ISSEN don't have slide effect in GVG
- && unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1)
- ) {
+ if ((mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground))) { // only NJ_ISSEN don't have slide effect in GVG
+ if (!(unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1))) {
+ // The cell is not reachable (wall, object, ...), move next to the target
+ if (x > 0) x = -1;
+ else if (x < 0) x = 1;
+ if (y > 0) y = -1;
+ else if (y < 0) y = 1;
+
+ unit->movepos(src, bl->x+x, bl->y+y, 1, 1);
+ }
clif->slide(src, src->x, src->y);
clif->fixpos(src);
clif->spiritball(src);