skill.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950
  1. // Copyright (c) Athena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef _SKILL_H_
  4. #define _SKILL_H_
  5. #include "map.h"
  6. #define MAX_SKILL_DB 1100
  7. #define MAX_SKILL_PRODUCE_DB 150
  8. #define MAX_PRODUCE_RESOURCE 12
  9. #define MAX_SKILL_ARROW_DB 150
  10. #define MAX_SKILL_ABRA_DB 350
  11. //Constants to identify the skill's inf value:
  12. #define INF_ATTACK_SKILL 1
  13. #define INF_GROUND_SKILL 2
  14. // Skills casted on self where target is automatically chosen:
  15. #define INF_SELF_SKILL 4
  16. #define INF_SUPPORT_SKILL 16
  17. #define INF_TARGET_TRAP 32
  18. //Constants to identify a skill's nk value.
  19. //The NK value applies only to non INF_GROUND_SKILL skills.
  20. #define NK_NO_DAMAGE 0x1
  21. #define NK_SPLASH (0x2|0x4) // 0x4 = splash & split
  22. #define NK_SPLASHSPLIT 0x4
  23. //A skill with 3 would be no damage + splash: area of effect.
  24. //Constants to identify a skill's inf2 value.
  25. #define INF2_QUEST_SKILL 1
  26. //NPC skills are those that players can't have in their skill tree.
  27. #define INF2_NPC_SKILL 2
  28. #define INF2_WEDDING_SKILL 4
  29. #define INF2_SPIRIT_SKILL 8
  30. #define INF2_GUILD_SKILL 16
  31. #define INF2_SONG_DANCE 32
  32. #define INF2_ENSEMBLE_SKILL 64
  33. #define INF2_TRAP 128
  34. //Refers to ground placed skills that will target the caster as well (like Grandcross)
  35. #define INF2_TARGET_SELF 256
  36. #define INF2_NO_TARGET_SELF 512
  37. #define INF2_PARTY_ONLY 1024
  38. #define INF2_GUILD_ONLY 2048
  39. //For Party/Guild only skills that can ALSO be used on enemies.
  40. #define INF2_ALLOW_ENEMY 4096
  41. //Walk intervals at which chase-skills are attempted to be triggered.
  42. #define WALK_SKILL_INTERVAL 5
  43. // スキルデ?タベ?ス
  44. struct skill_db {
  45. char *name;
  46. char *desc;
  47. int range[MAX_SKILL_LEVEL],hit,inf,pl,nk,splash[MAX_SKILL_LEVEL],max;
  48. int num[MAX_SKILL_LEVEL];
  49. int cast[MAX_SKILL_LEVEL],walkdelay[MAX_SKILL_LEVEL],delay[MAX_SKILL_LEVEL];
  50. int upkeep_time[MAX_SKILL_LEVEL],upkeep_time2[MAX_SKILL_LEVEL];
  51. int castcancel,cast_def_rate;
  52. int inf2,maxcount,skill_type;
  53. int blewcount[MAX_SKILL_LEVEL];
  54. int hp[MAX_SKILL_LEVEL],sp[MAX_SKILL_LEVEL],mhp[MAX_SKILL_LEVEL],hp_rate[MAX_SKILL_LEVEL],sp_rate[MAX_SKILL_LEVEL],zeny[MAX_SKILL_LEVEL];
  55. int weapon,ammo,ammo_qty[MAX_SKILL_LEVEL],state,spiritball[MAX_SKILL_LEVEL];
  56. int itemid[10],amount[10];
  57. int castnodex[MAX_SKILL_LEVEL];
  58. int delaynodex[MAX_SKILL_LEVEL];
  59. int nocast;
  60. int unit_id[2];
  61. int unit_layout_type[MAX_SKILL_LEVEL];
  62. int unit_range[MAX_SKILL_LEVEL];
  63. int unit_interval;
  64. int unit_target;
  65. int unit_flag;
  66. };
  67. extern struct skill_db skill_db[MAX_SKILL_DB];
  68. struct skill_name_db {
  69. int id; // skill id
  70. char *name; // search strings
  71. char *desc; // description that shows up for search's
  72. };
  73. #define MAX_SKILL_UNIT_LAYOUT 50
  74. #define MAX_SQUARE_LAYOUT 5 // 11*11のユニット配置が最大
  75. #define MAX_SKILL_UNIT_COUNT ((MAX_SQUARE_LAYOUT*2+1)*(MAX_SQUARE_LAYOUT*2+1))
  76. struct skill_unit_layout {
  77. int count;
  78. int dx[MAX_SKILL_UNIT_COUNT];
  79. int dy[MAX_SKILL_UNIT_COUNT];
  80. };
  81. enum {
  82. UF_DEFNOTENEMY = 0x0001, // defnotenemy 設定でBCT_NOENEMYに切り替え
  83. UF_NOREITERATION = 0x0002, // 重複置き禁止
  84. UF_NOFOOTSET = 0x0004, // 足元置き禁止
  85. UF_NOOVERLAP = 0x0008, // ユニット効果が重複しない
  86. UF_NOPC = 0x0010, //May not target players
  87. UF_NOMOB = 0x0020, //May not target mobs
  88. UF_SKILL = 0x0080, //May target skills
  89. UF_DANCE = 0x0100, //Dance
  90. UF_ENSEMBLE = 0x0200, //Duet
  91. UF_SONG = 0x0400, //Song
  92. UF_DUALMODE = 0x0800, //Spells should trigger both ontimer and onplace/onout/onleft effects.
  93. };
  94. // アイテム作成デ?タベ?ス
  95. struct skill_produce_db {
  96. int nameid, trigger;
  97. int req_skill,itemlv;
  98. int mat_id[MAX_PRODUCE_RESOURCE],mat_amount[MAX_PRODUCE_RESOURCE];
  99. };
  100. extern struct skill_produce_db skill_produce_db[MAX_SKILL_PRODUCE_DB];
  101. // 矢作成デ?タベ?ス
  102. struct skill_arrow_db {
  103. int nameid, trigger;
  104. int cre_id[5],cre_amount[5];
  105. };
  106. extern struct skill_arrow_db skill_arrow_db[MAX_SKILL_ARROW_DB];
  107. // アブラカダブラデ?タベ?ス
  108. struct skill_abra_db {
  109. int nameid;
  110. int req_lv;
  111. int per;
  112. };
  113. extern struct skill_abra_db skill_abra_db[MAX_SKILL_ABRA_DB];
  114. extern int enchant_eff[5];
  115. extern int deluge_eff[5];
  116. struct block_list;
  117. struct map_session_data;
  118. struct skill_unit;
  119. struct skill_unit_group;
  120. int do_init_skill(void);
  121. int do_final_skill(void);
  122. //Returns the cast type of the skill: ground cast, castend damage, castend no damage
  123. enum { CAST_GROUND, CAST_DAMAGE, CAST_NODAMAGE };
  124. int skill_get_casttype(int id); //[Skotlex]
  125. // スキルデ?タベ?スへのアクセサ
  126. //
  127. int skill_get_type( int id );
  128. int skill_get_hit( int id );
  129. int skill_get_inf( int id );
  130. int skill_get_pl( int id );
  131. int skill_get_nk( int id );
  132. int skill_get_max( int id );
  133. int skill_get_range( int id , int lv );
  134. int skill_get_range2(struct block_list *bl, int id, int lv);
  135. int skill_get_splash( int id , int lv );
  136. int skill_get_hp( int id ,int lv );
  137. int skill_get_mhp( int id ,int lv );
  138. int skill_get_sp( int id ,int lv );
  139. int skill_get_zeny( int id ,int lv );
  140. int skill_get_num( int id ,int lv );
  141. int skill_get_cast( int id ,int lv );
  142. int skill_get_delay( int id ,int lv );
  143. int skill_get_walkdelay( int id ,int lv );
  144. int skill_get_time( int id ,int lv );
  145. int skill_get_time2( int id ,int lv );
  146. int skill_get_castdef( int id );
  147. int skill_get_weapontype( int id );
  148. int skill_get_ammotype( int id );
  149. int skill_get_ammo_qty( int id, int lv );
  150. int skill_get_nocast( int id );
  151. int skill_get_unit_id(int id,int flag);
  152. int skill_get_inf2( int id );
  153. int skill_get_castcancel( int id );
  154. int skill_get_maxcount( int id );
  155. int skill_get_blewcount( int id ,int lv );
  156. int skill_get_unit_flag( int id );
  157. int skill_get_unit_target( int id );
  158. int skill_tree_get_max( int id, int b_class ); // Celest
  159. const char* skill_get_name( int id ); // [Skotlex]
  160. int skill_isammotype(TBL_PC *sd, int skill);
  161. int skill_castend_id( int tid, unsigned int tick, int id,int data );
  162. int skill_castend_pos( int tid, unsigned int tick, int id,int data );
  163. int skill_castend_map( struct map_session_data *sd,int skill_num, const char *map);
  164. int skill_cleartimerskill(struct block_list *src);
  165. int skill_addtimerskill(struct block_list *src,unsigned int tick,int target,int x,int y,int skill_id,int skill_lv,int type,int flag);
  166. // 追加?果
  167. int skill_additional_effect( struct block_list* src, struct block_list *bl,int skillid,int skilllv,int attack_type,unsigned int tick);
  168. int skill_counter_additional_effect( struct block_list* src, struct block_list *bl,int skillid,int skilllv,int attack_type,unsigned int tick);
  169. int skill_blown( struct block_list *src, struct block_list *target,int count);
  170. int skill_break_equip(struct block_list *bl, unsigned short where, int rate, int flag);
  171. // ユニットスキル
  172. struct skill_unit_group *skill_unitsetting( struct block_list *src, int skillid,int skilllv,int x,int y,int flag);
  173. struct skill_unit *skill_initunit (struct skill_unit_group *group, int idx, int x, int y, int val1, int val2);
  174. int skill_delunit(struct skill_unit *unit);
  175. struct skill_unit_group *skill_initunitgroup(struct block_list *src,
  176. int count,int skillid,int skilllv,int unit_id, int limit, int interval);
  177. int skill_delunitgroup(struct block_list *src, struct skill_unit_group *group);
  178. int skill_clear_unitgroup(struct block_list *src);
  179. int skill_clear_group(struct block_list *bl, int flag);
  180. int skill_unit_ondamaged(struct skill_unit *src,struct block_list *bl,
  181. int damage,unsigned int tick);
  182. int skill_castfix( struct block_list *bl, int skill_id, int skill_lv);
  183. int skill_castfix_sc( struct block_list *bl, int time);
  184. int skill_delayfix( struct block_list *bl, int skill_id, int skill_lv);
  185. int skill_check_condition( struct map_session_data *sd,int skill, int lv, int type);
  186. int skill_check_pc_partner(struct map_session_data *sd, int skill_id, int* skill_lv, int range, int cast_flag);
  187. // -- moonsoul (added skill_check_unit_cell)
  188. int skill_check_unit_cell(int skillid,int m,int x,int y,int unit_id);
  189. int skill_unit_out_all( struct block_list *bl,unsigned int tick,int range);
  190. int skill_unit_move(struct block_list *bl,unsigned int tick,int flag);
  191. int skill_unit_move_unit_group( struct skill_unit_group *group, int m,int dx,int dy);
  192. void skill_setmapcell(struct block_list *src, int skill_num, int skill_lv, int flag);
  193. struct skill_unit_group *skill_check_dancing( struct block_list *src );
  194. void skill_stop_dancing(struct block_list *src);
  195. // Guild skills [celest]
  196. int skill_guildaura_sub (struct block_list *bl,va_list ap);
  197. // 詠唱キャンセル
  198. int skill_castcancel(struct block_list *bl,int type);
  199. int skill_gangsterparadise(struct map_session_data *sd ,int type);
  200. int skill_rest(struct map_session_data *sd ,int type);
  201. void skill_brandishspear_first(struct square *tc,int dir,int x,int y);
  202. void skill_brandishspear_dir(struct square *tc,int dir,int are);
  203. void skill_repairweapon(struct map_session_data *sd, int idx);
  204. void skill_identify(struct map_session_data *sd,int idx);
  205. void skill_weaponrefine(struct map_session_data *sd,int idx); // [Celest]
  206. int skill_autospell(struct map_session_data *md,int skillid);
  207. int skill_calc_heal(struct block_list *bl, int skill_lv);
  208. int skill_check_cloaking(struct block_list *bl, struct status_change *sc);
  209. // ステ?タス異常
  210. int skill_enchant_elemental_end(struct block_list *bl, int type);
  211. int skillnotok(int skillid, struct map_session_data *sd);
  212. int skillnotok_hom (int skillid, struct homun_data *hd) ; //[orn]
  213. int skill_chastle_mob_changetarget(struct block_list *bl,va_list ap); //[orn]
  214. // アイテム作成
  215. int skill_can_produce_mix( struct map_session_data *sd, int nameid, int trigger, int qty);
  216. int skill_produce_mix( struct map_session_data *sd,
  217. int skill_id, int nameid, int slot1, int slot2, int slot3, int qty );
  218. int skill_arrow_create( struct map_session_data *sd,int nameid);
  219. // mobスキルのため
  220. int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
  221. int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
  222. int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skilllv,unsigned int tick,int flag);
  223. int skill_blockpc_start (struct map_session_data*,int,int); // [celest]
  224. int skill_blockmerc_start (struct homun_data*,int,int); //[orn]
  225. // スキル攻?一括?理
  226. int skill_attack( int attack_type, struct block_list* src, struct block_list *dsrc,
  227. struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
  228. void skill_reload(void);
  229. enum {
  230. ST_NONE,ST_HIDING,ST_CLOAKING,ST_HIDDEN,ST_RIDING,ST_FALCON,ST_CART,ST_SHIELD,ST_SIGHT,ST_EXPLOSIONSPIRITS,ST_CARTBOOST,
  231. ST_RECOV_WEIGHT_RATE,ST_MOVE_ENABLE,ST_WATER,
  232. };
  233. enum {
  234. NV_BASIC = 1,
  235. SM_SWORD,
  236. SM_TWOHAND,
  237. SM_RECOVERY,
  238. SM_BASH,
  239. SM_PROVOKE,
  240. SM_MAGNUM,
  241. SM_ENDURE,
  242. MG_SRECOVERY,
  243. MG_SIGHT,
  244. MG_NAPALMBEAT,
  245. MG_SAFETYWALL,
  246. MG_SOULSTRIKE,
  247. MG_COLDBOLT,
  248. MG_FROSTDIVER,
  249. MG_STONECURSE,
  250. MG_FIREBALL,
  251. MG_FIREWALL,
  252. MG_FIREBOLT,
  253. MG_LIGHTNINGBOLT,
  254. MG_THUNDERSTORM,
  255. AL_DP,
  256. AL_DEMONBANE,
  257. AL_RUWACH,
  258. AL_PNEUMA,
  259. AL_TELEPORT,
  260. AL_WARP,
  261. AL_HEAL,
  262. AL_INCAGI,
  263. AL_DECAGI,
  264. AL_HOLYWATER,
  265. AL_CRUCIS,
  266. AL_ANGELUS,
  267. AL_BLESSING,
  268. AL_CURE,
  269. MC_INCCARRY,
  270. MC_DISCOUNT,
  271. MC_OVERCHARGE,
  272. MC_PUSHCART,
  273. MC_IDENTIFY,
  274. MC_VENDING,
  275. MC_MAMMONITE,
  276. AC_OWL,
  277. AC_VULTURE,
  278. AC_CONCENTRATION,
  279. AC_DOUBLE,
  280. AC_SHOWER,
  281. TF_DOUBLE,
  282. TF_MISS,
  283. TF_STEAL,
  284. TF_HIDING,
  285. TF_POISON,
  286. TF_DETOXIFY,
  287. ALL_RESURRECTION,
  288. KN_SPEARMASTERY,
  289. KN_PIERCE,
  290. KN_BRANDISHSPEAR,
  291. KN_SPEARSTAB,
  292. KN_SPEARBOOMERANG,
  293. KN_TWOHANDQUICKEN,
  294. KN_AUTOCOUNTER,
  295. KN_BOWLINGBASH,
  296. KN_RIDING,
  297. KN_CAVALIERMASTERY,
  298. PR_MACEMASTERY,
  299. PR_IMPOSITIO,
  300. PR_SUFFRAGIUM,
  301. PR_ASPERSIO,
  302. PR_BENEDICTIO,
  303. PR_SANCTUARY,
  304. PR_SLOWPOISON,
  305. PR_STRECOVERY,
  306. PR_KYRIE,
  307. PR_MAGNIFICAT,
  308. PR_GLORIA,
  309. PR_LEXDIVINA,
  310. PR_TURNUNDEAD,
  311. PR_LEXAETERNA,
  312. PR_MAGNUS,
  313. WZ_FIREPILLAR,
  314. WZ_SIGHTRASHER,
  315. WZ_FIREIVY,
  316. WZ_METEOR,
  317. WZ_JUPITEL,
  318. WZ_VERMILION,
  319. WZ_WATERBALL,
  320. WZ_ICEWALL,
  321. WZ_FROSTNOVA,
  322. WZ_STORMGUST,
  323. WZ_EARTHSPIKE,
  324. WZ_HEAVENDRIVE,
  325. WZ_QUAGMIRE,
  326. WZ_ESTIMATION,
  327. BS_IRON,
  328. BS_STEEL,
  329. BS_ENCHANTEDSTONE,
  330. BS_ORIDEOCON,
  331. BS_DAGGER,
  332. BS_SWORD,
  333. BS_TWOHANDSWORD,
  334. BS_AXE,
  335. BS_MACE,
  336. BS_KNUCKLE,
  337. BS_SPEAR,
  338. BS_HILTBINDING,
  339. BS_FINDINGORE,
  340. BS_WEAPONRESEARCH,
  341. BS_REPAIRWEAPON,
  342. BS_SKINTEMPER,
  343. BS_HAMMERFALL,
  344. BS_ADRENALINE,
  345. BS_WEAPONPERFECT,
  346. BS_OVERTHRUST,
  347. BS_MAXIMIZE,
  348. HT_SKIDTRAP,
  349. HT_LANDMINE,
  350. HT_ANKLESNARE,
  351. HT_SHOCKWAVE,
  352. HT_SANDMAN,
  353. HT_FLASHER,
  354. HT_FREEZINGTRAP,
  355. HT_BLASTMINE,
  356. HT_CLAYMORETRAP,
  357. HT_REMOVETRAP,
  358. HT_TALKIEBOX,
  359. HT_BEASTBANE,
  360. HT_FALCON,
  361. HT_STEELCROW,
  362. HT_BLITZBEAT,
  363. HT_DETECTING,
  364. HT_SPRINGTRAP,
  365. AS_RIGHT,
  366. AS_LEFT,
  367. AS_KATAR,
  368. AS_CLOAKING,
  369. AS_SONICBLOW,
  370. AS_GRIMTOOTH,
  371. AS_ENCHANTPOISON,
  372. AS_POISONREACT,
  373. AS_VENOMDUST,
  374. AS_SPLASHER,
  375. NV_FIRSTAID,
  376. NV_TRICKDEAD,
  377. SM_MOVINGRECOVERY,
  378. SM_FATALBLOW,
  379. SM_AUTOBERSERK,
  380. AC_MAKINGARROW,
  381. AC_CHARGEARROW,
  382. TF_SPRINKLESAND,
  383. TF_BACKSLIDING,
  384. TF_PICKSTONE,
  385. TF_THROWSTONE,
  386. MC_CARTREVOLUTION,
  387. MC_CHANGECART,
  388. MC_LOUD,
  389. AL_HOLYLIGHT,
  390. MG_ENERGYCOAT,
  391. NPC_PIERCINGATT,
  392. NPC_MENTALBREAKER,
  393. NPC_RANGEATTACK,
  394. NPC_ATTRICHANGE,
  395. NPC_CHANGEWATER,
  396. NPC_CHANGEGROUND,
  397. NPC_CHANGEFIRE,
  398. NPC_CHANGEWIND,
  399. NPC_CHANGEPOISON,
  400. NPC_CHANGEHOLY,
  401. NPC_CHANGEDARKNESS,
  402. NPC_CHANGETELEKINESIS,
  403. NPC_CRITICALSLASH,
  404. NPC_COMBOATTACK,
  405. NPC_GUIDEDATTACK,
  406. NPC_SELFDESTRUCTION,
  407. NPC_SPLASHATTACK,
  408. NPC_SUICIDE,
  409. NPC_POISON,
  410. NPC_BLINDATTACK,
  411. NPC_SILENCEATTACK,
  412. NPC_STUNATTACK,
  413. NPC_PETRIFYATTACK,
  414. NPC_CURSEATTACK,
  415. NPC_SLEEPATTACK,
  416. NPC_RANDOMATTACK,
  417. NPC_WATERATTACK,
  418. NPC_GROUNDATTACK,
  419. NPC_FIREATTACK,
  420. NPC_WINDATTACK,
  421. NPC_POISONATTACK,
  422. NPC_HOLYATTACK,
  423. NPC_DARKNESSATTACK,
  424. NPC_TELEKINESISATTACK,
  425. NPC_MAGICALATTACK,
  426. NPC_METAMORPHOSIS,
  427. NPC_PROVOCATION,
  428. NPC_SMOKING,
  429. NPC_SUMMONSLAVE,
  430. NPC_EMOTION,
  431. NPC_TRANSFORMATION,
  432. NPC_BLOODDRAIN,
  433. NPC_ENERGYDRAIN,
  434. NPC_KEEPING,
  435. NPC_DARKBREATH,
  436. NPC_DARKBLESSING,
  437. NPC_BARRIER,
  438. NPC_DEFENDER,
  439. NPC_LICK,
  440. NPC_HALLUCINATION,
  441. NPC_REBIRTH,
  442. NPC_SUMMONMONSTER,
  443. RG_SNATCHER,
  444. RG_STEALCOIN,
  445. RG_BACKSTAP,
  446. RG_TUNNELDRIVE,
  447. RG_RAID,
  448. RG_STRIPWEAPON,
  449. RG_STRIPSHIELD,
  450. RG_STRIPARMOR,
  451. RG_STRIPHELM,
  452. RG_INTIMIDATE,
  453. RG_GRAFFITI,
  454. RG_FLAGGRAFFITI,
  455. RG_CLEANER,
  456. RG_GANGSTER,
  457. RG_COMPULSION,
  458. RG_PLAGIARISM,
  459. AM_AXEMASTERY,
  460. AM_LEARNINGPOTION,
  461. AM_PHARMACY,
  462. AM_DEMONSTRATION,
  463. AM_ACIDTERROR,
  464. AM_POTIONPITCHER,
  465. AM_CANNIBALIZE,
  466. AM_SPHEREMINE,
  467. AM_CP_WEAPON,
  468. AM_CP_SHIELD,
  469. AM_CP_ARMOR,
  470. AM_CP_HELM,
  471. AM_BIOETHICS,
  472. AM_BIOTECHNOLOGY,
  473. AM_CREATECREATURE,
  474. AM_CULTIVATION,
  475. AM_FLAMECONTROL,
  476. AM_CALLHOMUN,
  477. AM_REST,
  478. AM_DRILLMASTER,
  479. AM_HEALHOMUN,
  480. AM_RESURRECTHOMUN,
  481. CR_TRUST,
  482. CR_AUTOGUARD,
  483. CR_SHIELDCHARGE,
  484. CR_SHIELDBOOMERANG,
  485. CR_REFLECTSHIELD,
  486. CR_HOLYCROSS,
  487. CR_GRANDCROSS,
  488. CR_DEVOTION,
  489. CR_PROVIDENCE,
  490. CR_DEFENDER,
  491. CR_SPEARQUICKEN,
  492. MO_IRONHAND,
  493. MO_SPIRITSRECOVERY,
  494. MO_CALLSPIRITS,
  495. MO_ABSORBSPIRITS,
  496. MO_TRIPLEATTACK,
  497. MO_BODYRELOCATION,
  498. MO_DODGE,
  499. MO_INVESTIGATE,
  500. MO_FINGEROFFENSIVE,
  501. MO_STEELBODY,
  502. MO_BLADESTOP,
  503. MO_EXPLOSIONSPIRITS,
  504. MO_EXTREMITYFIST,
  505. MO_CHAINCOMBO,
  506. MO_COMBOFINISH,
  507. SA_ADVANCEDBOOK,
  508. SA_CASTCANCEL,
  509. SA_MAGICROD,
  510. SA_SPELLBREAKER,
  511. SA_FREECAST,
  512. SA_AUTOSPELL,
  513. SA_FLAMELAUNCHER,
  514. SA_FROSTWEAPON,
  515. SA_LIGHTNINGLOADER,
  516. SA_SEISMICWEAPON,
  517. SA_DRAGONOLOGY,
  518. SA_VOLCANO,
  519. SA_DELUGE,
  520. SA_VIOLENTGALE,
  521. SA_LANDPROTECTOR,
  522. SA_DISPELL,
  523. SA_ABRACADABRA,
  524. SA_MONOCELL,
  525. SA_CLASSCHANGE,
  526. SA_SUMMONMONSTER,
  527. SA_REVERSEORCISH,
  528. SA_DEATH,
  529. SA_FORTUNE,
  530. SA_TAMINGMONSTER,
  531. SA_QUESTION,
  532. SA_GRAVITY,
  533. SA_LEVELUP,
  534. SA_INSTANTDEATH,
  535. SA_FULLRECOVERY,
  536. SA_COMA,
  537. BD_ADAPTATION,
  538. BD_ENCORE,
  539. BD_LULLABY,
  540. BD_RICHMANKIM,
  541. BD_ETERNALCHAOS,
  542. BD_DRUMBATTLEFIELD,
  543. BD_RINGNIBELUNGEN,
  544. BD_ROKISWEIL,
  545. BD_INTOABYSS,
  546. BD_SIEGFRIED,
  547. BD_RAGNAROK,
  548. BA_MUSICALLESSON,
  549. BA_MUSICALSTRIKE,
  550. BA_DISSONANCE,
  551. BA_FROSTJOKE,
  552. BA_WHISTLE,
  553. BA_ASSASSINCROSS,
  554. BA_POEMBRAGI,
  555. BA_APPLEIDUN,
  556. DC_DANCINGLESSON,
  557. DC_THROWARROW,
  558. DC_UGLYDANCE,
  559. DC_SCREAM,
  560. DC_HUMMING,
  561. DC_DONTFORGETME,
  562. DC_FORTUNEKISS,
  563. DC_SERVICEFORYOU,
  564. NPC_RANDOMMOVE,
  565. NPC_SPEEDUP,
  566. NPC_REVENGE,
  567. WE_MALE,
  568. WE_FEMALE,
  569. WE_CALLPARTNER,
  570. ITM_TOMAHAWK,
  571. NPC_DARKCROSS,
  572. NPC_GRANDDARKNESS,
  573. NPC_DARKSTRIKE,
  574. NPC_DARKTHUNDER,
  575. NPC_STOP,
  576. NPC_BREAKWEAPON,
  577. NPC_BREAKARMOR,
  578. NPC_BREAKHELM,
  579. NPC_BREAKSHIELD,
  580. NPC_UNDEADATTACK,
  581. NPC_CHANGEUNDEAD,
  582. NPC_POWERUP,
  583. NPC_AGIUP,
  584. NPC_SIEGEMODE,
  585. NPC_CALLSLAVE,
  586. NPC_INVISIBLE,
  587. NPC_RUN,
  588. LK_AURABLADE,
  589. LK_PARRYING,
  590. LK_CONCENTRATION,
  591. LK_TENSIONRELAX,
  592. LK_BERSERK,
  593. LK_FURY,
  594. HP_ASSUMPTIO,
  595. HP_BASILICA,
  596. HP_MEDITATIO,
  597. HW_SOULDRAIN,
  598. HW_MAGICCRASHER,
  599. HW_MAGICPOWER,
  600. PA_PRESSURE,
  601. PA_SACRIFICE,
  602. PA_GOSPEL,
  603. CH_PALMSTRIKE,
  604. CH_TIGERFIST,
  605. CH_CHAINCRUSH,
  606. PF_HPCONVERSION,
  607. PF_SOULCHANGE,
  608. PF_SOULBURN,
  609. ASC_KATAR,
  610. ASC_HALLUCINATION,
  611. ASC_EDP,
  612. ASC_BREAKER,
  613. SN_SIGHT,
  614. SN_FALCONASSAULT,
  615. SN_SHARPSHOOTING,
  616. SN_WINDWALK,
  617. WS_MELTDOWN,
  618. WS_CREATECOIN,
  619. WS_CREATENUGGET,
  620. WS_CARTBOOST,
  621. WS_SYSTEMCREATE,
  622. ST_CHASEWALK,
  623. ST_REJECTSWORD,
  624. ST_STEALBACKPACK,
  625. CR_ALCHEMY,
  626. CR_SYNTHESISPOTION,
  627. CG_ARROWVULCAN,
  628. CG_MOONLIT,
  629. CG_MARIONETTE,
  630. LK_SPIRALPIERCE,
  631. LK_HEADCRUSH,
  632. LK_JOINTBEAT,
  633. HW_NAPALMVULCAN,
  634. CH_SOULCOLLECT,
  635. PF_MINDBREAKER,
  636. PF_MEMORIZE,
  637. PF_FOGWALL,
  638. PF_SPIDERWEB,
  639. ASC_METEORASSAULT,
  640. ASC_CDP,
  641. WE_BABY,
  642. WE_CALLPARENT,
  643. WE_CALLBABY,
  644. TK_RUN,
  645. TK_READYSTORM,
  646. TK_STORMKICK,
  647. TK_READYDOWN,
  648. TK_DOWNKICK,
  649. TK_READYTURN,
  650. TK_TURNKICK,
  651. TK_READYCOUNTER,
  652. TK_COUNTER,
  653. TK_DODGE,
  654. TK_JUMPKICK,
  655. TK_HPTIME,
  656. TK_SPTIME,
  657. TK_POWER,
  658. TK_SEVENWIND,
  659. TK_HIGHJUMP,
  660. SG_FEEL,
  661. SG_SUN_WARM,
  662. SG_MOON_WARM,
  663. SG_STAR_WARM,
  664. SG_SUN_COMFORT,
  665. SG_MOON_COMFORT,
  666. SG_STAR_COMFORT,
  667. SG_HATE,
  668. SG_SUN_ANGER,
  669. SG_MOON_ANGER,
  670. SG_STAR_ANGER,
  671. SG_SUN_BLESS,
  672. SG_MOON_BLESS,
  673. SG_STAR_BLESS,
  674. SG_DEVIL,
  675. SG_FRIEND,
  676. SG_KNOWLEDGE,
  677. SG_FUSION,
  678. SL_ALCHEMIST,
  679. AM_BERSERKPITCHER,
  680. SL_MONK,
  681. SL_STAR,
  682. SL_SAGE,
  683. SL_CRUSADER,
  684. SL_SUPERNOVICE,
  685. SL_KNIGHT,
  686. SL_WIZARD,
  687. SL_PRIEST,
  688. SL_BARDDANCER,
  689. SL_ROGUE,
  690. SL_ASSASIN,
  691. SL_BLACKSMITH,
  692. BS_ADRENALINE2,
  693. SL_HUNTER,
  694. SL_SOULLINKER,
  695. SL_KAIZEL,
  696. SL_KAAHI,
  697. SL_KAUPE,
  698. SL_KAITE,
  699. SL_KAINA,
  700. SL_STIN,
  701. SL_STUN,
  702. SL_SMA,
  703. SL_SWOO,
  704. SL_SKE,
  705. SL_SKA,
  706. SM_SELFPROVOKE,
  707. NPC_EMOTION_ON,
  708. ST_PRESERVE,
  709. ST_FULLSTRIP,
  710. WS_WEAPONREFINE,
  711. CR_SLIMPITCHER,
  712. CR_FULLPROTECTION,
  713. PA_SHIELDCHAIN,
  714. HP_MANARECHARGE,
  715. PF_DOUBLECASTING,
  716. HW_GANBANTEIN,
  717. HW_GRAVITATION,
  718. WS_CARTTERMINATION,
  719. WS_OVERTHRUSTMAX,
  720. CG_LONGINGFREEDOM,
  721. CG_HERMODE,
  722. CG_TAROTCARD,
  723. CR_ACIDDEMONSTRATION,
  724. CR_CULTIVATION,
  725. //492,missing?
  726. TK_MISSION = 493,
  727. SL_HIGH,
  728. KN_ONEHAND,
  729. AM_TWILIGHT1,
  730. AM_TWILIGHT2,
  731. AM_TWILIGHT3,
  732. HT_POWER,
  733. GS_GLITTERING,
  734. GS_FLING,
  735. GS_TRIPLEACTION,
  736. GS_BULLSEYE,
  737. GS_MADNESSCANCEL,
  738. GS_ADJUSTMENT,
  739. GS_INCREASING,
  740. GS_MAGICALBULLET,
  741. GS_CRACKER,
  742. GS_SINGLEACTION,
  743. GS_SNAKEEYE,
  744. GS_CHAINACTION,
  745. GS_TRACKING,
  746. GS_DISARM,
  747. GS_PIERCINGSHOT,
  748. GS_RAPIDSHOWER,
  749. GS_DESPERADO,
  750. GS_GATLINGFEVER,
  751. GS_DUST,
  752. GS_FULLBUSTER,
  753. GS_SPREADATTACK,
  754. GS_GROUNDDRIFT,
  755. NJ_TOBIDOUGU,
  756. NJ_SYURIKEN,
  757. NJ_KUNAI,
  758. NJ_HUUMA,
  759. NJ_ZENYNAGE,
  760. NJ_TATAMIGAESHI,
  761. NJ_KASUMIKIRI,
  762. NJ_SHADOWJUMP,
  763. NJ_KIRIKAGE,
  764. NJ_UTSUSEMI,
  765. NJ_BUNSINJYUTSU,
  766. NJ_NINPOU,
  767. NJ_KOUENKA,
  768. NJ_KAENSIN,
  769. NJ_BAKUENRYU,
  770. NJ_HYOUSENSOU,
  771. NJ_SUITON,
  772. NJ_HYOUSYOURAKU,
  773. NJ_HUUJIN,
  774. NJ_RAIGEKISAI,
  775. NJ_KAMAITACHI,
  776. NJ_NEN,
  777. NJ_ISSEN,
  778. KN_CHARGEATK = 1001,
  779. CR_SHRINK,
  780. AS_SONICACCEL,
  781. AS_VENOMKNIFE,
  782. RG_CLOSECONFINE,
  783. WZ_SIGHTBLASTER,
  784. SA_CREATECON,
  785. SA_ELEMENTWATER,
  786. HT_PHANTASMIC,
  787. BA_PANGVOICE,
  788. DC_WINKCHARM,
  789. BS_UNFAIRLYTRICK,
  790. BS_GREED,
  791. PR_REDEMPTIO,
  792. MO_KITRANSLATION,
  793. MO_BALKYOUNG,
  794. SA_ELEMENTGROUND,
  795. SA_ELEMENTFIRE,
  796. SA_ELEMENTWIND,
  797. HLIF_HEAL = 8001,
  798. HLIF_AVOID,
  799. HLIF_BRAIN,
  800. HLIF_CHANGE,
  801. HAMI_CASTLE,
  802. HAMI_DEFENCE,
  803. HAMI_SKIN,
  804. HAMI_BLOODLUST,
  805. HFLI_MOON,
  806. HFLI_FLEET,
  807. HFLI_SPEED,
  808. HFLI_SBR44,
  809. HVAN_CAPRICE,
  810. HVAN_CHAOTIC,
  811. HVAN_INSTRUCT,
  812. HVAN_EXPLOSION,
  813. };
  814. enum {
  815. UNT_SAFETYWALL = 0x7e,
  816. UNT_FIREWALL,
  817. UNT_WARP_WAITING,
  818. UNT_WARP_ACTIVE,
  819. //0x82
  820. UNT_SANCTUARY = 0x83,
  821. UNT_MAGNUS,
  822. UNT_PNEUMA,
  823. UNT_ATTACK_SKILLS, //These show no effect on the client, therefore can be used for attack skills.
  824. UNT_FIREPILLAR_WAITING,
  825. UNT_FIREPILLAR_ACTIVE,
  826. //0x89, 0x8a, 0x8b
  827. UNT_USED_TRAPS = 0x8c,
  828. UNT_ICEWALL,
  829. UNT_QUAGMIRE,
  830. UNT_BLASTMINE,
  831. UNT_SKIDTRAP,
  832. UNT_ANKLESNARE,
  833. UNT_VENOMDUST,
  834. UNT_LANDMINE,
  835. UNT_SHOCKWAVE,
  836. UNT_SANDMAN,
  837. UNT_FLASHER,
  838. UNT_FREEZINGTRAP,
  839. UNT_CLAYMORETRAP,
  840. UNT_TALKIEBOX,
  841. UNT_VOLCANO,
  842. UNT_DELUGE,
  843. UNT_VIOLENTGALE,
  844. UNT_LANDPROTECTOR,
  845. UNT_LULLABY,
  846. UNT_RICHMANKIM,
  847. UNT_ETERNALCHAOS,
  848. UNT_DRUMBATTLEFIELD,
  849. UNT_RINGNIBELUNGEN,
  850. UNT_ROKISWEIL,
  851. UNT_INTOABYSS,
  852. UNT_SIEGFRIED,
  853. UNT_DISSONANCE,
  854. UNT_WHISTLE,
  855. UNT_ASSASSINCROSS,
  856. UNT_POEMBRAGI,
  857. UNT_APPLEIDUN,
  858. UNT_UGLYDANCE,
  859. UNT_HUMMING,
  860. UNT_DONTFORGETME,
  861. UNT_FORTUNEKISS,
  862. UNT_SERVICEFORYOU,
  863. UNT_GRAFFITI,
  864. UNT_DEMONSTRATION,
  865. UNT_CALLFAMILY,
  866. UNT_GOSPEL,
  867. UNT_BASILICA,
  868. //0xb5
  869. UNT_FOGWALL = 0xb6,
  870. UNT_SPIDERWEB,
  871. UNT_GRAVITATION,
  872. UNT_HERMODE,
  873. UNT_DESPERADO, //0xba //Temporary setting until correct value is found.
  874. UNT_SUITON = 0xbb,
  875. UNT_TATAMIGAESHI,
  876. UNT_KAENSIN,
  877. //0xbe, 0xc0, 0xc1 //Maybe the other elements of Ground Drift?
  878. UNT_GROUNDDRIFT = 0xc2,
  879. };
  880. #endif