diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/skill.c | 13 | ||||
-rw-r--r-- | src/map/unit.c | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 4d901236a..bb3b11218 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -10686,6 +10686,19 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui } status_change_end(src, SC_HIDING, INVALID_TIMER); break; + case SU_LOPE: + { + if (map->list[src->m].flag.noteleport && !(map->list[src->m].flag.battleground || map_flag_gvg2(src->m))) { + x = src->x; + y = src->y; + } + clif->skill_nodamage(src, src, SU_LOPE, skill_lv, 1); + if(!map->count_oncell(src->m, x, y, BL_PC | BL_NPC | BL_MOB, 0) && map->getcell(src->m, src, x, y, CELL_CHKREACH)) { + clif->slide(src, x, y); + unit->movepos(src, x, y, 1, 0); + } + } + break; case AM_SPHEREMINE: case AM_CANNIBALIZE: { diff --git a/src/map/unit.c b/src/map/unit.c index bb43bdf82..d652df07e 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1544,7 +1544,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui } break; case GD_EMERGENCYCALL: //Emergency Call double cast when the user has learned Leap [Daegaladh] - if( sd && pc->checkskill(sd,TK_HIGHJUMP) ) + if (sd && (pc->checkskill(sd,TK_HIGHJUMP) || pc->checkskill(sd,SU_LOPE) >= 3)) casttime *= 2; break; case RA_WUGDASH: |