viewing paste Unknown #16079 | Diff

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
diff --git a/src/map/skill.c b/src/map/skill.c
index 763af64..666b363 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3713,7 +3713,9 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
                short x, y, i = 2; // Move 2 cells for Issen(from target)
                struct block_list *mbl = bl;
                short dir = 0;
-               
+               int speed;
+               struct unit_data *ud = unit->bl2ud(src);
+
                skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
 
                if( skill_id == MO_EXTREMITYFIST ) {
@@ -3741,9 +3743,21 @@ 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 (skill_id == MO_EXTREMITYFIST && unit->walktoxy(src, mbl->x + x, mbl->y + y, 2) && ud) {
+                   //Increase can't walk delay to not alter your walk path
+                   ud->canmove_tick = tick;
+                   speed = status->get_speed(src);
+                   for (i = 0; i < ud->walkpath.path_len; i ++)
+                   {
+                       if(ud->walkpath.path[i]&1)
+                           ud->canmove_tick += 7*speed/5;
+                       else
+                           ud->canmove_tick += speed;
+                   }
+               } else 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))
+               {
                    clif->slide(src, src->x, src->y);
                    clif->fixpos(src);
                    clif->spiritball(src);
Viewed 1373 times, submitted by Guest.