skill.h 21 KB

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