diff options
author | Dastgir Pojee <dastgirp@gmail.com> | 2016-10-02 21:13:46 +0530 |
---|---|---|
committer | hemagx <ibrahem.h.basyone@gmail.com> | 2016-10-22 02:21:53 +0200 |
commit | af8ecd8af6a33b598844decff9b021bd07c931ce (patch) | |
tree | 60bb0b925f397a4e05a7f2e3d9d12adb4f4c574c /src/map | |
parent | 72cd2379541e67f1fbb3fd88132cbabb61874647 (diff) | |
download | hercules-af8ecd8af6a33b598844decff9b021bd07c931ce.tar.gz hercules-af8ecd8af6a33b598844decff9b021bd07c931ce.tar.bz2 hercules-af8ecd8af6a33b598844decff9b021bd07c931ce.tar.xz hercules-af8ecd8af6a33b598844decff9b021bd07c931ce.zip |
Implemented SU_LOPE Skill.
Skill Cannot be Used on GvG/Battlegrounds.
Cast time of Emergency Call doubles.
Moves to Another Position by performing High Jump:
Lv 1: Move 6 cells
Lv 2: Move 10 cells
Lv 3: Move 14 cells
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: |