unit.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // Copyright (c) jAthena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. // Merged originally from jA by Skotlex
  4. #ifndef _UNIT_H_
  5. #define _UNIT_H_
  6. #include "map.h"
  7. // PC, MOB, PET に共通する処理を1つにまとめる計画
  8. // 歩行開始
  9. // 戻り値は、0 ( 成功 ), 1 ( 失敗 )
  10. int unit_walktoxy( struct block_list *bl, int x, int y, int easy);
  11. int unit_walktobl( struct block_list *bl, struct block_list *target, int range, int easy);
  12. int unit_run(struct block_list *bl);
  13. // 歩行停止
  14. // typeは以下の組み合わせ :
  15. // 1: 位置情報の送信( この関数の後に位置情報を送信する場合は不要 )
  16. // 2: ダメージディレイ有り
  17. // 4: 不明(MOBのみ?)
  18. int unit_stop_walking(struct block_list *bl,int type);
  19. int unit_can_move(struct block_list *bl);
  20. int unit_is_walking(struct block_list *bl);
  21. int unit_set_walkdelay(struct block_list *bl, unsigned int tick, int delay, int type);
  22. // 位置の強制移動(吹き飛ばしなど)
  23. int unit_movepos(struct block_list *bl,int dst_x,int dst_y, int easy, int checkpath);
  24. int unit_warp(struct block_list *bl, int map, short x, short y, int type);
  25. int unit_setdir(struct block_list *bl,unsigned char dir);
  26. int unit_getdir(struct block_list *bl);
  27. // そこまで歩行でたどり着けるかの判定
  28. int unit_can_reach_pos(struct block_list *bl,int x,int y,int easy);
  29. int unit_can_reach_bl(struct block_list *bl,struct block_list *tbl, int range, int easy, short *x, short *y);
  30. // 攻撃関連
  31. int unit_stop_attack(struct block_list *bl);
  32. int unit_attack(struct block_list *src,int target_id,int type);
  33. // int unit_setpos( struct block_list *bl, const char* map, int x, int y);
  34. // スキル使用
  35. int unit_skilluse_id(struct block_list *src, int target_id, int skill_num, int skill_lv);
  36. int unit_skilluse_pos(struct block_list *src, int skill_x, int skill_y, int skill_num, int skill_lv);
  37. // スキル使用( 補正済みキャスト時間、キャンセル不可設定付き )
  38. int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int skill_lv, int casttime, int castcancel);
  39. int unit_skilluse_pos2( struct block_list *src, int skill_x, int skill_y, int skill_num, int skill_lv, int casttime, int castcancel);
  40. // 詠唱キャンセル
  41. int unit_skillcastcancel(struct block_list *bl,int type);
  42. int unit_counttargeted(struct block_list *bl,int target_lv);
  43. // unit_data の初期化処理
  44. void unit_dataset(struct block_list *bl);
  45. int unit_fixdamage(struct block_list *src,struct block_list *target,unsigned int tick,int sdelay,int ddelay,int damage,int div,int type,int damage2);
  46. // その他
  47. struct unit_data* unit_bl2ud(struct block_list *bl);
  48. int unit_remove_map(struct block_list *bl, int clrtype);
  49. int unit_free(struct block_list *bl, int clrtype);
  50. int unit_changeviewsize(struct block_list *bl,short size);
  51. // 初期化ルーチン
  52. int do_init_unit(void);
  53. int do_final_unit(void);
  54. extern const int dirx[8];
  55. extern const int diry[8];
  56. #endif /* _UNIT_H_ */