Guest User

Untitled

a guest
Jan 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. static int buildin_mobuseskill_sub(struct block_list *bl,va_list ap)
  2. {
  3.     TBL_MOB* md     = (TBL_MOB*)bl;
  4.     struct block_list *tbl;
  5.     int mobid       = va_arg(ap,int);
  6.     int skillid     = va_arg(ap,int);
  7.     int skilllv     = va_arg(ap,int);
  8.     int casttime    = va_arg(ap,int);
  9.     int cancel      = va_arg(ap,int);
  10.     int emotion     = va_arg(ap,int);
  11.     int target      = va_arg(ap,int);
  12.  
  13.     if( md->class_ != mobid )
  14.         return 0;
  15.  
  16.     // 0:self, 1:target, 2:master, default:random
  17.     switch( target )
  18.     {
  19.         case 0: tbl = map_id2bl(md->bl.id); break;
  20.         case 1: tbl = map_id2bl(md->target_id); break;
  21.         case 2: tbl = map_id2bl(md->master_id); break;
  22.         default:tbl = battle_getenemy(&md->bl, DEFAULT_ENEMY_TYPE(md),skill_get_range2(&md->bl, skillid, skilllv)); break;
  23.     }
  24.  
  25.     if( !tbl )
  26.         return 0;
  27.  
  28.     if( md->ud.skilltimer != INVALID_TIMER ) // Cancel the casting skill.
  29.         unit_skillcastcancel(bl,0);
  30.  
  31.     if( skill_get_casttype(skillid) == CAST_GROUND )
  32.         unit_skilluse_pos2(&md->bl, tbl->x, tbl->y, skillid, skilllv, casttime, cancel);
  33.     else
  34.         unit_skilluse_id2(&md->bl, tbl->id, skillid, skilllv, casttime, cancel);
  35.  
  36.     if (emotion >= 0)
  37.         clif_emotion(&md->bl, emotion);
  38.  
  39.     return 0;
  40. }
Add Comment
Please, Sign In to add comment