viewing paste Unknown #16078 | 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 41 42 43
diff --git a/src/map/skill.c b/src/map/skill.c
index 763af64..002304d 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3710,9 +3710,11 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
                case NJ_ISSEN:
                case MO_EXTREMITYFIST:
                        {
+                               struct unit_data *ud = unit->bl2ud(src);
                                short x, y, i = 2; // Move 2 cells for Issen(from target)
                                struct block_list *mbl = bl;
                                short dir = 0;
+                               int speed;
                               
                                skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
 
@@ -3741,12 +3743,20 @@ 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)
-                               ) {
-                                       clif->slide(src, src->x, src->y);
-                                       clif->fixpos(src);
-                                       clif->spiritball(src);
+
+                               if ((mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground) )
+                                 && 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;
+                                       }
                                }
                        }
                        break;
Viewed 286 times, submitted by unknown.