skill.h 34 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612
  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 "../common/mmo.h" // MAX_SKILL, struct square
  6. #include "map.h" // struct block_list
  7. struct map_session_data;
  8. struct homun_data;
  9. struct skill_unit;
  10. struct skill_unit_group;
  11. struct status_change_entry;
  12. #define MAX_SKILL_DB MAX_SKILL
  13. #define MAX_SKILL_PRODUCE_DB 170
  14. #define MAX_PRODUCE_RESOURCE 12
  15. #define MAX_SKILL_ARROW_DB 150
  16. #define MAX_ARROW_RESOURCE 5
  17. #define MAX_SKILL_ABRA_DB 350
  18. #define MAX_SKILL_IMPROVISE_DB 50
  19. #define MAX_SKILL_LEVEL 100
  20. //Constants to identify the skill's inf value:
  21. enum e_skill_inf
  22. {
  23. INF_ATTACK_SKILL = 0x01,
  24. INF_GROUND_SKILL = 0x02,
  25. INF_SELF_SKILL = 0x04, // Skills casted on self where target is automatically chosen
  26. // 0x08 not assigned
  27. INF_SUPPORT_SKILL = 0x10,
  28. INF_TARGET_TRAP = 0x20,
  29. };
  30. //Constants to identify a skill's nk value (damage properties)
  31. //The NK value applies only to non INF_GROUND_SKILL skills
  32. //when determining skill castend function to invoke.
  33. enum e_skill_nk
  34. {
  35. NK_NO_DAMAGE = 0x01,
  36. NK_SPLASH = 0x02|0x04, // 0x4 = splash & split
  37. NK_SPLASHSPLIT = 0x04,
  38. NK_NO_CARDFIX_ATK = 0x08,
  39. NK_NO_ELEFIX = 0x10,
  40. NK_IGNORE_DEF = 0x20,
  41. NK_IGNORE_FLEE = 0x40,
  42. NK_NO_CARDFIX_DEF = 0x80,
  43. };
  44. //A skill with 3 would be no damage + splash: area of effect.
  45. //Constants to identify a skill's inf2 value.
  46. enum e_skill_inf2
  47. {
  48. INF2_QUEST_SKILL = 0x0001,
  49. INF2_NPC_SKILL = 0x0002, //NPC skills are those that players can't have in their skill tree.
  50. INF2_WEDDING_SKILL = 0x0004,
  51. INF2_SPIRIT_SKILL = 0x0008,
  52. INF2_GUILD_SKILL = 0x0010,
  53. INF2_SONG_DANCE = 0x0020,
  54. INF2_ENSEMBLE_SKILL = 0x0040,
  55. INF2_TRAP = 0x0080,
  56. INF2_TARGET_SELF = 0x0100, //Refers to ground placed skills that will target the caster as well (like Grandcross)
  57. INF2_NO_TARGET_SELF = 0x0200,
  58. INF2_PARTY_ONLY = 0x0400,
  59. INF2_GUILD_ONLY = 0x0800,
  60. INF2_NO_ENEMY = 0x1000,
  61. INF2_NOLP = 0x2000, // Spells that can ignore Land Protector
  62. INF2_CHORUS_SKILL = 0x4000, // Chorus skill
  63. };
  64. //Walk intervals at which chase-skills are attempted to be triggered.
  65. #define WALK_SKILL_INTERVAL 5
  66. // Flags passed to skill_attack/skill_area_sub
  67. enum e_skill_display
  68. {
  69. SD_LEVEL = 0x1000, // skill_attack will send -1 instead of skill level (affects display of some skills)
  70. SD_ANIMATION = 0x2000, // skill_attack will use '5' instead of the skill's 'type' (this makes skills show an animation)
  71. SD_SPLASH = 0x4000, // skill_area_sub will count targets in skill_area_temp[2]
  72. SD_PREAMBLE = 0x8000, // skill_area_sub will transmit a 'magic' damage packet (-30000 dmg) for the first target selected
  73. };
  74. #define MAX_SKILL_ITEM_REQUIRE 10
  75. struct skill_condition {
  76. int weapon,ammo,ammo_qty,hp,sp,zeny,spiritball,mhp,state;
  77. int itemid[MAX_SKILL_ITEM_REQUIRE],amount[MAX_SKILL_ITEM_REQUIRE];
  78. };
  79. // スキルデ?タベ?ス
  80. struct s_skill_db {
  81. char name[NAME_LENGTH];
  82. char desc[40];
  83. int range[MAX_SKILL_LEVEL],hit,inf,element[MAX_SKILL_LEVEL],nk,splash[MAX_SKILL_LEVEL],max;
  84. int num[MAX_SKILL_LEVEL];
  85. int cast[MAX_SKILL_LEVEL],walkdelay[MAX_SKILL_LEVEL],delay[MAX_SKILL_LEVEL];
  86. int upkeep_time[MAX_SKILL_LEVEL],upkeep_time2[MAX_SKILL_LEVEL],cooldown[MAX_SKILL_LEVEL];
  87. int castcancel,cast_def_rate;
  88. int inf2,maxcount[MAX_SKILL_LEVEL],skill_type;
  89. int blewcount[MAX_SKILL_LEVEL];
  90. 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];
  91. int weapon,ammo,ammo_qty[MAX_SKILL_LEVEL],state,spiritball[MAX_SKILL_LEVEL];
  92. int itemid[MAX_SKILL_ITEM_REQUIRE],amount[MAX_SKILL_ITEM_REQUIRE];
  93. int castnodex[MAX_SKILL_LEVEL], delaynodex[MAX_SKILL_LEVEL];
  94. int nocast;
  95. int unit_id[2];
  96. int unit_layout_type[MAX_SKILL_LEVEL];
  97. int unit_range[MAX_SKILL_LEVEL];
  98. int unit_interval;
  99. int unit_target;
  100. int unit_flag;
  101. };
  102. extern struct s_skill_db skill_db[MAX_SKILL_DB];
  103. #define MAX_SKILL_UNIT_LAYOUT 50
  104. #define MAX_SQUARE_LAYOUT 5 // 11*11のユニット配置が最大
  105. #define MAX_SKILL_UNIT_COUNT ((MAX_SQUARE_LAYOUT*2+1)*(MAX_SQUARE_LAYOUT*2+1))
  106. struct s_skill_unit_layout {
  107. int count;
  108. int dx[MAX_SKILL_UNIT_COUNT];
  109. int dy[MAX_SKILL_UNIT_COUNT];
  110. };
  111. #define MAX_SKILLTIMERSKILL 15
  112. struct skill_timerskill {
  113. int timer;
  114. int src_id;
  115. int target_id;
  116. int map;
  117. short x,y;
  118. short skill_id,skill_lv;
  119. int type; // a BF_ type (NOTE: some places use this as general-purpose storage...)
  120. int flag;
  121. };
  122. #define MAX_SKILLUNITGROUP 25
  123. struct skill_unit_group {
  124. int src_id;
  125. int party_id;
  126. int guild_id;
  127. int bg_id;
  128. int map;
  129. int target_flag; //Holds BCT_* flag for battle_check_target
  130. int bl_flag; //Holds BL_* flag for map_foreachin* functions
  131. unsigned int tick;
  132. int limit,interval;
  133. short skill_id,skill_lv;
  134. int val1,val2,val3;
  135. char *valstr;
  136. int unit_id;
  137. int group_id;
  138. int unit_count,alive_count;
  139. struct skill_unit *unit;
  140. struct {
  141. unsigned ammo_consume : 1;
  142. unsigned magic_power : 1;
  143. unsigned song_dance : 2; //0x1 Song/Dance, 0x2 Ensemble
  144. } state;
  145. };
  146. struct skill_unit {
  147. struct block_list bl;
  148. struct skill_unit_group *group;
  149. int limit;
  150. int val1,val2;
  151. short alive,range;
  152. };
  153. #define MAX_SKILLUNITGROUPTICKSET 25
  154. struct skill_unit_group_tickset {
  155. unsigned int tick;
  156. int id;
  157. };
  158. enum {
  159. UF_DEFNOTENEMY = 0x0001, // If 'defunit_not_enemy' is set, the target is changed to 'friend'
  160. UF_NOREITERATION = 0x0002, // Spell cannot be stacked
  161. UF_NOFOOTSET = 0x0004, // Spell cannot be cast near/on targets
  162. UF_NOOVERLAP = 0x0008, // Spell effects do not overlap
  163. UF_PATHCHECK = 0x0010, // Only cells with a shootable path will be placed
  164. UF_NOPC = 0x0020, // May not target players
  165. UF_NOMOB = 0x0040, // May not target mobs
  166. UF_SKILL = 0x0080, // May target skills
  167. UF_DANCE = 0x0100, // Dance
  168. UF_ENSEMBLE = 0x0200, // Duet
  169. UF_SONG = 0x0400, // Song
  170. UF_DUALMODE = 0x0800, // Spells should trigger both ontimer and onplace/onout/onleft effects.
  171. };
  172. // アイテム作成デ?タベ?ス
  173. struct s_skill_produce_db {
  174. int nameid, trigger;
  175. int req_skill,req_skill_lv,itemlv;
  176. int mat_id[MAX_PRODUCE_RESOURCE],mat_amount[MAX_PRODUCE_RESOURCE];
  177. };
  178. extern struct s_skill_produce_db skill_produce_db[MAX_SKILL_PRODUCE_DB];
  179. // 矢作成デ?タベ?ス
  180. struct s_skill_arrow_db {
  181. int nameid, trigger;
  182. int cre_id[MAX_ARROW_RESOURCE],cre_amount[MAX_ARROW_RESOURCE];
  183. };
  184. extern struct s_skill_arrow_db skill_arrow_db[MAX_SKILL_ARROW_DB];
  185. // アブラカダブラデ?タベ?ス
  186. struct s_skill_abra_db {
  187. int skillid;
  188. int req_lv;
  189. int per;
  190. };
  191. extern struct s_skill_abra_db skill_abra_db[MAX_SKILL_ABRA_DB];
  192. extern int enchant_eff[5];
  193. extern int deluge_eff[5];
  194. int do_init_skill(void);
  195. int do_final_skill(void);
  196. //Returns the cast type of the skill: ground cast, castend damage, castend no damage
  197. enum { CAST_GROUND, CAST_DAMAGE, CAST_NODAMAGE };
  198. int skill_get_casttype(int id); //[Skotlex]
  199. // スキルデ?タベ?スへのアクセサ
  200. //
  201. int skill_get_index( int id );
  202. int skill_get_type( int id );
  203. int skill_get_hit( int id );
  204. int skill_get_inf( int id );
  205. int skill_get_ele( int id , int lv );
  206. int skill_get_nk( int id );
  207. int skill_get_max( int id );
  208. int skill_get_range( int id , int lv );
  209. int skill_get_range2(struct block_list *bl, int id, int lv);
  210. int skill_get_splash( int id , int lv );
  211. int skill_get_hp( int id ,int lv );
  212. int skill_get_mhp( int id ,int lv );
  213. int skill_get_sp( int id ,int lv );
  214. int skill_get_state(int id);
  215. int skill_get_zeny( int id ,int lv );
  216. int skill_get_num( int id ,int lv );
  217. int skill_get_cast( int id ,int lv );
  218. int skill_get_delay( int id ,int lv );
  219. int skill_get_walkdelay( int id ,int lv );
  220. int skill_get_time( int id ,int lv );
  221. int skill_get_time2( int id ,int lv );
  222. int skill_get_castnodex( int id ,int lv );
  223. int skill_get_castdef( int id );
  224. int skill_get_weapontype( int id );
  225. int skill_get_ammotype( int id );
  226. int skill_get_ammo_qty( int id, int lv );
  227. int skill_get_nocast( int id );
  228. int skill_get_unit_id(int id,int flag);
  229. int skill_get_inf2( int id );
  230. int skill_get_castcancel( int id );
  231. int skill_get_maxcount( int id ,int lv );
  232. int skill_get_blewcount( int id ,int lv );
  233. int skill_get_unit_flag( int id );
  234. int skill_get_unit_target( int id );
  235. int skill_tree_get_max( int id, int b_class ); // Celest
  236. const char* skill_get_name( int id ); // [Skotlex]
  237. const char* skill_get_desc( int id ); // [Skotlex]
  238. int skill_name2id(const char* name);
  239. int skill_isammotype(struct map_session_data *sd, int skill);
  240. int skill_castend_id(int tid, unsigned int tick, int id, intptr_t data);
  241. int skill_castend_pos(int tid, unsigned int tick, int id, intptr_t data);
  242. int skill_castend_map( struct map_session_data *sd,short skill_num, const char *map);
  243. int skill_cleartimerskill(struct block_list *src);
  244. 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);
  245. // 追加?果
  246. int skill_additional_effect( struct block_list* src, struct block_list *bl,int skillid,int skilllv,int attack_type,int dmg_lv,unsigned int tick);
  247. int skill_counter_additional_effect( struct block_list* src, struct block_list *bl,int skillid,int skilllv,int attack_type,unsigned int tick);
  248. int skill_blown(struct block_list* src, struct block_list* target, int count, int direction, int flag);
  249. int skill_break_equip(struct block_list *bl, unsigned short where, int rate, int flag);
  250. int skill_strip_equip(struct block_list *bl, unsigned short where, int rate, int lv, int time);
  251. // ユニットスキル
  252. struct skill_unit_group* skill_id2group(int group_id);
  253. struct skill_unit_group *skill_unitsetting(struct block_list* src, short skillid, short skilllv, short x, short y, int flag);
  254. struct skill_unit *skill_initunit (struct skill_unit_group *group, int idx, int x, int y, int val1, int val2);
  255. int skill_delunit(struct skill_unit *unit);
  256. struct skill_unit_group *skill_initunitgroup(struct block_list* src, int count, short skillid, short skilllv, int unit_id, int limit, int interval);
  257. int skill_delunitgroup_(struct skill_unit_group *group, const char* file, int line, const char* func);
  258. #define skill_delunitgroup(group) skill_delunitgroup_(group,__FILE__,__LINE__,__func__)
  259. int skill_clear_unitgroup(struct block_list *src);
  260. int skill_clear_group(struct block_list *bl, int flag);
  261. int skill_unit_ondamaged(struct skill_unit *src,struct block_list *bl,int damage,unsigned int tick);
  262. int skill_castfix( struct block_list *bl, int skill_id, int skill_lv);
  263. int skill_castfix_sc( struct block_list *bl, int time, int skill_id, int skill_lv);
  264. int skill_delayfix( struct block_list *bl, int skill_id, int skill_lv);
  265. // Skill conditions check and remove [Inkfish]
  266. int skill_check_condition_castbegin(struct map_session_data *sd, short skill, short lv);
  267. int skill_check_condition_castend(struct map_session_data *sd, short skill, short lv);
  268. int skill_consume_requirement(struct map_session_data *sd, short skill, short lv, short type);
  269. struct skill_condition skill_get_requirement(struct map_session_data *sd, short skill, short lv);
  270. int skill_check_pc_partner(struct map_session_data *sd, short skill_id, short* skill_lv, int range, int cast_flag);
  271. // -- moonsoul (added skill_check_unit_cell)
  272. int skill_check_unit_cell(int skillid,int m,int x,int y,int unit_id);
  273. int skill_unit_out_all( struct block_list *bl,unsigned int tick,int range);
  274. int skill_unit_move(struct block_list *bl,unsigned int tick,int flag);
  275. int skill_unit_move_unit_group( struct skill_unit_group *group, int m,int dx,int dy);
  276. struct skill_unit_group *skill_check_dancing( struct block_list *src );
  277. // Guild skills [celest]
  278. int skill_guildaura_sub (struct map_session_data* sd, int id, int strvit, int agidex);
  279. // 詠唱キャンセル
  280. int skill_castcancel(struct block_list *bl,int type);
  281. int skill_sit (struct map_session_data *sd, int type);
  282. void skill_brandishspear(struct block_list* src, struct block_list* bl, int skillid, int skilllv, unsigned int tick, int flag);
  283. void skill_repairweapon(struct map_session_data *sd, int idx);
  284. void skill_identify(struct map_session_data *sd,int idx);
  285. void skill_weaponrefine(struct map_session_data *sd,int idx); // [Celest]
  286. int skill_autospell(struct map_session_data *md,int skillid);
  287. int skill_calc_heal(struct block_list *src, struct block_list *target, int skill_id, int skill_lv, bool heal);
  288. bool skill_check_cloaking(struct block_list *bl, struct status_change_entry *sce);
  289. // ステ?タス異常
  290. int skill_enchant_elemental_end(struct block_list *bl, int type);
  291. int skillnotok(int skillid, struct map_session_data *sd);
  292. int skillnotok_hom(int skillid, struct homun_data *hd);
  293. int skillnotok_mercenary(int skillid, struct mercenary_data *md);
  294. int skill_chastle_mob_changetarget(struct block_list *bl,va_list ap);
  295. // アイテム作成
  296. int skill_can_produce_mix( struct map_session_data *sd, int nameid, int trigger, int qty);
  297. int skill_produce_mix( struct map_session_data *sd, int skill_id, int nameid, int slot1, int slot2, int slot3, int qty );
  298. int skill_arrow_create( struct map_session_data *sd,int nameid);
  299. // mobスキルのため
  300. int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
  301. int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
  302. int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skilllv,unsigned int tick,int flag);
  303. int skill_blockpc_start_(struct map_session_data*, int, int, bool);
  304. int skill_blockhomun_start (struct homun_data*,int,int);
  305. int skill_blockmerc_start (struct mercenary_data*,int,int);
  306. #define skill_blockpc_start(sd, skillid, tick) skill_blockpc_start_( sd, skillid, tick, false )
  307. // スキル攻?一括?理
  308. int skill_attack( int attack_type, struct block_list* src, struct block_list *dsrc,struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
  309. void skill_reload(void);
  310. enum {
  311. ST_NONE,
  312. ST_HIDING,
  313. ST_CLOAKING,
  314. ST_HIDDEN,
  315. ST_RIDING,
  316. ST_FALCON,
  317. ST_CART,
  318. ST_SHIELD,
  319. ST_SIGHT,
  320. ST_EXPLOSIONSPIRITS,
  321. ST_CARTBOOST,
  322. ST_RECOV_WEIGHT_RATE,
  323. ST_MOVE_ENABLE,
  324. ST_WATER,
  325. /**
  326. * 3rd States
  327. **/
  328. ST_RIDINGDRAGON,
  329. ST_WUG,
  330. ST_RIDINGWUG,
  331. ST_MADO,
  332. ST_ELEMENTALSPIRIT,
  333. };
  334. enum e_skill {
  335. NV_BASIC = 1,
  336. SM_SWORD,
  337. SM_TWOHAND,
  338. SM_RECOVERY,
  339. SM_BASH,
  340. SM_PROVOKE,
  341. SM_MAGNUM,
  342. SM_ENDURE,
  343. MG_SRECOVERY,
  344. MG_SIGHT,
  345. MG_NAPALMBEAT,
  346. MG_SAFETYWALL,
  347. MG_SOULSTRIKE,
  348. MG_COLDBOLT,
  349. MG_FROSTDIVER,
  350. MG_STONECURSE,
  351. MG_FIREBALL,
  352. MG_FIREWALL,
  353. MG_FIREBOLT,
  354. MG_LIGHTNINGBOLT,
  355. MG_THUNDERSTORM,
  356. AL_DP,
  357. AL_DEMONBANE,
  358. AL_RUWACH,
  359. AL_PNEUMA,
  360. AL_TELEPORT,
  361. AL_WARP,
  362. AL_HEAL,
  363. AL_INCAGI,
  364. AL_DECAGI,
  365. AL_HOLYWATER,
  366. AL_CRUCIS,
  367. AL_ANGELUS,
  368. AL_BLESSING,
  369. AL_CURE,
  370. MC_INCCARRY,
  371. MC_DISCOUNT,
  372. MC_OVERCHARGE,
  373. MC_PUSHCART,
  374. MC_IDENTIFY,
  375. MC_VENDING,
  376. MC_MAMMONITE,
  377. AC_OWL,
  378. AC_VULTURE,
  379. AC_CONCENTRATION,
  380. AC_DOUBLE,
  381. AC_SHOWER,
  382. TF_DOUBLE,
  383. TF_MISS,
  384. TF_STEAL,
  385. TF_HIDING,
  386. TF_POISON,
  387. TF_DETOXIFY,
  388. ALL_RESURRECTION,
  389. KN_SPEARMASTERY,
  390. KN_PIERCE,
  391. KN_BRANDISHSPEAR,
  392. KN_SPEARSTAB,
  393. KN_SPEARBOOMERANG,
  394. KN_TWOHANDQUICKEN,
  395. KN_AUTOCOUNTER,
  396. KN_BOWLINGBASH,
  397. KN_RIDING,
  398. KN_CAVALIERMASTERY,
  399. PR_MACEMASTERY,
  400. PR_IMPOSITIO,
  401. PR_SUFFRAGIUM,
  402. PR_ASPERSIO,
  403. PR_BENEDICTIO,
  404. PR_SANCTUARY,
  405. PR_SLOWPOISON,
  406. PR_STRECOVERY,
  407. PR_KYRIE,
  408. PR_MAGNIFICAT,
  409. PR_GLORIA,
  410. PR_LEXDIVINA,
  411. PR_TURNUNDEAD,
  412. PR_LEXAETERNA,
  413. PR_MAGNUS,
  414. WZ_FIREPILLAR,
  415. WZ_SIGHTRASHER,
  416. WZ_FIREIVY,
  417. WZ_METEOR,
  418. WZ_JUPITEL,
  419. WZ_VERMILION,
  420. WZ_WATERBALL,
  421. WZ_ICEWALL,
  422. WZ_FROSTNOVA,
  423. WZ_STORMGUST,
  424. WZ_EARTHSPIKE,
  425. WZ_HEAVENDRIVE,
  426. WZ_QUAGMIRE,
  427. WZ_ESTIMATION,
  428. BS_IRON,
  429. BS_STEEL,
  430. BS_ENCHANTEDSTONE,
  431. BS_ORIDEOCON,
  432. BS_DAGGER,
  433. BS_SWORD,
  434. BS_TWOHANDSWORD,
  435. BS_AXE,
  436. BS_MACE,
  437. BS_KNUCKLE,
  438. BS_SPEAR,
  439. BS_HILTBINDING,
  440. BS_FINDINGORE,
  441. BS_WEAPONRESEARCH,
  442. BS_REPAIRWEAPON,
  443. BS_SKINTEMPER,
  444. BS_HAMMERFALL,
  445. BS_ADRENALINE,
  446. BS_WEAPONPERFECT,
  447. BS_OVERTHRUST,
  448. BS_MAXIMIZE,
  449. HT_SKIDTRAP,
  450. HT_LANDMINE,
  451. HT_ANKLESNARE,
  452. HT_SHOCKWAVE,
  453. HT_SANDMAN,
  454. HT_FLASHER,
  455. HT_FREEZINGTRAP,
  456. HT_BLASTMINE,
  457. HT_CLAYMORETRAP,
  458. HT_REMOVETRAP,
  459. HT_TALKIEBOX,
  460. HT_BEASTBANE,
  461. HT_FALCON,
  462. HT_STEELCROW,
  463. HT_BLITZBEAT,
  464. HT_DETECTING,
  465. HT_SPRINGTRAP,
  466. AS_RIGHT,
  467. AS_LEFT,
  468. AS_KATAR,
  469. AS_CLOAKING,
  470. AS_SONICBLOW,
  471. AS_GRIMTOOTH,
  472. AS_ENCHANTPOISON,
  473. AS_POISONREACT,
  474. AS_VENOMDUST,
  475. AS_SPLASHER,
  476. NV_FIRSTAID,
  477. NV_TRICKDEAD,
  478. SM_MOVINGRECOVERY,
  479. SM_FATALBLOW,
  480. SM_AUTOBERSERK,
  481. AC_MAKINGARROW,
  482. AC_CHARGEARROW,
  483. TF_SPRINKLESAND,
  484. TF_BACKSLIDING,
  485. TF_PICKSTONE,
  486. TF_THROWSTONE,
  487. MC_CARTREVOLUTION,
  488. MC_CHANGECART,
  489. MC_LOUD,
  490. AL_HOLYLIGHT,
  491. MG_ENERGYCOAT,
  492. NPC_PIERCINGATT,
  493. NPC_MENTALBREAKER,
  494. NPC_RANGEATTACK,
  495. NPC_ATTRICHANGE,
  496. NPC_CHANGEWATER,
  497. NPC_CHANGEGROUND,
  498. NPC_CHANGEFIRE,
  499. NPC_CHANGEWIND,
  500. NPC_CHANGEPOISON,
  501. NPC_CHANGEHOLY,
  502. NPC_CHANGEDARKNESS,
  503. NPC_CHANGETELEKINESIS,
  504. NPC_CRITICALSLASH,
  505. NPC_COMBOATTACK,
  506. NPC_GUIDEDATTACK,
  507. NPC_SELFDESTRUCTION,
  508. NPC_SPLASHATTACK,
  509. NPC_SUICIDE,
  510. NPC_POISON,
  511. NPC_BLINDATTACK,
  512. NPC_SILENCEATTACK,
  513. NPC_STUNATTACK,
  514. NPC_PETRIFYATTACK,
  515. NPC_CURSEATTACK,
  516. NPC_SLEEPATTACK,
  517. NPC_RANDOMATTACK,
  518. NPC_WATERATTACK,
  519. NPC_GROUNDATTACK,
  520. NPC_FIREATTACK,
  521. NPC_WINDATTACK,
  522. NPC_POISONATTACK,
  523. NPC_HOLYATTACK,
  524. NPC_DARKNESSATTACK,
  525. NPC_TELEKINESISATTACK,
  526. NPC_MAGICALATTACK,
  527. NPC_METAMORPHOSIS,
  528. NPC_PROVOCATION,
  529. NPC_SMOKING,
  530. NPC_SUMMONSLAVE,
  531. NPC_EMOTION,
  532. NPC_TRANSFORMATION,
  533. NPC_BLOODDRAIN,
  534. NPC_ENERGYDRAIN,
  535. NPC_KEEPING,
  536. NPC_DARKBREATH,
  537. NPC_DARKBLESSING,
  538. NPC_BARRIER,
  539. NPC_DEFENDER,
  540. NPC_LICK,
  541. NPC_HALLUCINATION,
  542. NPC_REBIRTH,
  543. NPC_SUMMONMONSTER,
  544. RG_SNATCHER,
  545. RG_STEALCOIN,
  546. RG_BACKSTAP,
  547. RG_TUNNELDRIVE,
  548. RG_RAID,
  549. RG_STRIPWEAPON,
  550. RG_STRIPSHIELD,
  551. RG_STRIPARMOR,
  552. RG_STRIPHELM,
  553. RG_INTIMIDATE,
  554. RG_GRAFFITI,
  555. RG_FLAGGRAFFITI,
  556. RG_CLEANER,
  557. RG_GANGSTER,
  558. RG_COMPULSION,
  559. RG_PLAGIARISM,
  560. AM_AXEMASTERY,
  561. AM_LEARNINGPOTION,
  562. AM_PHARMACY,
  563. AM_DEMONSTRATION,
  564. AM_ACIDTERROR,
  565. AM_POTIONPITCHER,
  566. AM_CANNIBALIZE,
  567. AM_SPHEREMINE,
  568. AM_CP_WEAPON,
  569. AM_CP_SHIELD,
  570. AM_CP_ARMOR,
  571. AM_CP_HELM,
  572. AM_BIOETHICS,
  573. AM_BIOTECHNOLOGY,
  574. AM_CREATECREATURE,
  575. AM_CULTIVATION,
  576. AM_FLAMECONTROL,
  577. AM_CALLHOMUN,
  578. AM_REST,
  579. AM_DRILLMASTER,
  580. AM_HEALHOMUN,
  581. AM_RESURRECTHOMUN,
  582. CR_TRUST,
  583. CR_AUTOGUARD,
  584. CR_SHIELDCHARGE,
  585. CR_SHIELDBOOMERANG,
  586. CR_REFLECTSHIELD,
  587. CR_HOLYCROSS,
  588. CR_GRANDCROSS,
  589. CR_DEVOTION,
  590. CR_PROVIDENCE,
  591. CR_DEFENDER,
  592. CR_SPEARQUICKEN,
  593. MO_IRONHAND,
  594. MO_SPIRITSRECOVERY,
  595. MO_CALLSPIRITS,
  596. MO_ABSORBSPIRITS,
  597. MO_TRIPLEATTACK,
  598. MO_BODYRELOCATION,
  599. MO_DODGE,
  600. MO_INVESTIGATE,
  601. MO_FINGEROFFENSIVE,
  602. MO_STEELBODY,
  603. MO_BLADESTOP,
  604. MO_EXPLOSIONSPIRITS,
  605. MO_EXTREMITYFIST,
  606. MO_CHAINCOMBO,
  607. MO_COMBOFINISH,
  608. SA_ADVANCEDBOOK,
  609. SA_CASTCANCEL,
  610. SA_MAGICROD,
  611. SA_SPELLBREAKER,
  612. SA_FREECAST,
  613. SA_AUTOSPELL,
  614. SA_FLAMELAUNCHER,
  615. SA_FROSTWEAPON,
  616. SA_LIGHTNINGLOADER,
  617. SA_SEISMICWEAPON,
  618. SA_DRAGONOLOGY,
  619. SA_VOLCANO,
  620. SA_DELUGE,
  621. SA_VIOLENTGALE,
  622. SA_LANDPROTECTOR,
  623. SA_DISPELL,
  624. SA_ABRACADABRA,
  625. SA_MONOCELL,
  626. SA_CLASSCHANGE,
  627. SA_SUMMONMONSTER,
  628. SA_REVERSEORCISH,
  629. SA_DEATH,
  630. SA_FORTUNE,
  631. SA_TAMINGMONSTER,
  632. SA_QUESTION,
  633. SA_GRAVITY,
  634. SA_LEVELUP,
  635. SA_INSTANTDEATH,
  636. SA_FULLRECOVERY,
  637. SA_COMA,
  638. BD_ADAPTATION,
  639. BD_ENCORE,
  640. BD_LULLABY,
  641. BD_RICHMANKIM,
  642. BD_ETERNALCHAOS,
  643. BD_DRUMBATTLEFIELD,
  644. BD_RINGNIBELUNGEN,
  645. BD_ROKISWEIL,
  646. BD_INTOABYSS,
  647. BD_SIEGFRIED,
  648. BD_RAGNAROK,
  649. BA_MUSICALLESSON,
  650. BA_MUSICALSTRIKE,
  651. BA_DISSONANCE,
  652. BA_FROSTJOKER,
  653. BA_WHISTLE,
  654. BA_ASSASSINCROSS,
  655. BA_POEMBRAGI,
  656. BA_APPLEIDUN,
  657. DC_DANCINGLESSON,
  658. DC_THROWARROW,
  659. DC_UGLYDANCE,
  660. DC_SCREAM,
  661. DC_HUMMING,
  662. DC_DONTFORGETME,
  663. DC_FORTUNEKISS,
  664. DC_SERVICEFORYOU,
  665. NPC_RANDOMMOVE,
  666. NPC_SPEEDUP,
  667. NPC_REVENGE,
  668. WE_MALE,
  669. WE_FEMALE,
  670. WE_CALLPARTNER,
  671. ITM_TOMAHAWK,
  672. NPC_DARKCROSS,
  673. NPC_GRANDDARKNESS,
  674. NPC_DARKSTRIKE,
  675. NPC_DARKTHUNDER,
  676. NPC_STOP,
  677. NPC_WEAPONBRAKER,
  678. NPC_ARMORBRAKE,
  679. NPC_HELMBRAKE,
  680. NPC_SHIELDBRAKE,
  681. NPC_UNDEADATTACK,
  682. NPC_CHANGEUNDEAD,
  683. NPC_POWERUP,
  684. NPC_AGIUP,
  685. NPC_SIEGEMODE,
  686. NPC_CALLSLAVE,
  687. NPC_INVISIBLE,
  688. NPC_RUN,
  689. LK_AURABLADE,
  690. LK_PARRYING,
  691. LK_CONCENTRATION,
  692. LK_TENSIONRELAX,
  693. LK_BERSERK,
  694. LK_FURY,
  695. HP_ASSUMPTIO,
  696. HP_BASILICA,
  697. HP_MEDITATIO,
  698. HW_SOULDRAIN,
  699. HW_MAGICCRASHER,
  700. HW_MAGICPOWER,
  701. PA_PRESSURE,
  702. PA_SACRIFICE,
  703. PA_GOSPEL,
  704. CH_PALMSTRIKE,
  705. CH_TIGERFIST,
  706. CH_CHAINCRUSH,
  707. PF_HPCONVERSION,
  708. PF_SOULCHANGE,
  709. PF_SOULBURN,
  710. ASC_KATAR,
  711. ASC_HALLUCINATION,
  712. ASC_EDP,
  713. ASC_BREAKER,
  714. SN_SIGHT,
  715. SN_FALCONASSAULT,
  716. SN_SHARPSHOOTING,
  717. SN_WINDWALK,
  718. WS_MELTDOWN,
  719. WS_CREATECOIN,
  720. WS_CREATENUGGET,
  721. WS_CARTBOOST,
  722. WS_SYSTEMCREATE,
  723. ST_CHASEWALK,
  724. ST_REJECTSWORD,
  725. ST_STEALBACKPACK,
  726. CR_ALCHEMY,
  727. CR_SYNTHESISPOTION,
  728. CG_ARROWVULCAN,
  729. CG_MOONLIT,
  730. CG_MARIONETTE,
  731. LK_SPIRALPIERCE,
  732. LK_HEADCRUSH,
  733. LK_JOINTBEAT,
  734. HW_NAPALMVULCAN,
  735. CH_SOULCOLLECT,
  736. PF_MINDBREAKER,
  737. PF_MEMORIZE,
  738. PF_FOGWALL,
  739. PF_SPIDERWEB,
  740. ASC_METEORASSAULT,
  741. ASC_CDP,
  742. WE_BABY,
  743. WE_CALLPARENT,
  744. WE_CALLBABY,
  745. TK_RUN,
  746. TK_READYSTORM,
  747. TK_STORMKICK,
  748. TK_READYDOWN,
  749. TK_DOWNKICK,
  750. TK_READYTURN,
  751. TK_TURNKICK,
  752. TK_READYCOUNTER,
  753. TK_COUNTER,
  754. TK_DODGE,
  755. TK_JUMPKICK,
  756. TK_HPTIME,
  757. TK_SPTIME,
  758. TK_POWER,
  759. TK_SEVENWIND,
  760. TK_HIGHJUMP,
  761. SG_FEEL,
  762. SG_SUN_WARM,
  763. SG_MOON_WARM,
  764. SG_STAR_WARM,
  765. SG_SUN_COMFORT,
  766. SG_MOON_COMFORT,
  767. SG_STAR_COMFORT,
  768. SG_HATE,
  769. SG_SUN_ANGER,
  770. SG_MOON_ANGER,
  771. SG_STAR_ANGER,
  772. SG_SUN_BLESS,
  773. SG_MOON_BLESS,
  774. SG_STAR_BLESS,
  775. SG_DEVIL,
  776. SG_FRIEND,
  777. SG_KNOWLEDGE,
  778. SG_FUSION,
  779. SL_ALCHEMIST,
  780. AM_BERSERKPITCHER,
  781. SL_MONK,
  782. SL_STAR,
  783. SL_SAGE,
  784. SL_CRUSADER,
  785. SL_SUPERNOVICE,
  786. SL_KNIGHT,
  787. SL_WIZARD,
  788. SL_PRIEST,
  789. SL_BARDDANCER,
  790. SL_ROGUE,
  791. SL_ASSASIN,
  792. SL_BLACKSMITH,
  793. BS_ADRENALINE2,
  794. SL_HUNTER,
  795. SL_SOULLINKER,
  796. SL_KAIZEL,
  797. SL_KAAHI,
  798. SL_KAUPE,
  799. SL_KAITE,
  800. SL_KAINA,
  801. SL_STIN,
  802. SL_STUN,
  803. SL_SMA,
  804. SL_SWOO,
  805. SL_SKE,
  806. SL_SKA,
  807. SM_SELFPROVOKE,
  808. NPC_EMOTION_ON,
  809. ST_PRESERVE,
  810. ST_FULLSTRIP,
  811. WS_WEAPONREFINE,
  812. CR_SLIMPITCHER,
  813. CR_FULLPROTECTION,
  814. PA_SHIELDCHAIN,
  815. HP_MANARECHARGE,
  816. PF_DOUBLECASTING,
  817. HW_GANBANTEIN,
  818. HW_GRAVITATION,
  819. WS_CARTTERMINATION,
  820. WS_OVERTHRUSTMAX,
  821. CG_LONGINGFREEDOM,
  822. CG_HERMODE,
  823. CG_TAROTCARD,
  824. CR_ACIDDEMONSTRATION,
  825. CR_CULTIVATION,
  826. ITEM_ENCHANTARMS,
  827. TK_MISSION,
  828. SL_HIGH,
  829. KN_ONEHAND,
  830. AM_TWILIGHT1,
  831. AM_TWILIGHT2,
  832. AM_TWILIGHT3,
  833. HT_POWER,
  834. GS_GLITTERING,
  835. GS_FLING,
  836. GS_TRIPLEACTION,
  837. GS_BULLSEYE,
  838. GS_MADNESSCANCEL,
  839. GS_ADJUSTMENT,
  840. GS_INCREASING,
  841. GS_MAGICALBULLET,
  842. GS_CRACKER,
  843. GS_SINGLEACTION,
  844. GS_SNAKEEYE,
  845. GS_CHAINACTION,
  846. GS_TRACKING,
  847. GS_DISARM,
  848. GS_PIERCINGSHOT,
  849. GS_RAPIDSHOWER,
  850. GS_DESPERADO,
  851. GS_GATLINGFEVER,
  852. GS_DUST,
  853. GS_FULLBUSTER,
  854. GS_SPREADATTACK,
  855. GS_GROUNDDRIFT,
  856. NJ_TOBIDOUGU,
  857. NJ_SYURIKEN,
  858. NJ_KUNAI,
  859. NJ_HUUMA,
  860. NJ_ZENYNAGE,
  861. NJ_TATAMIGAESHI,
  862. NJ_KASUMIKIRI,
  863. NJ_SHADOWJUMP,
  864. NJ_KIRIKAGE,
  865. NJ_UTSUSEMI,
  866. NJ_BUNSINJYUTSU,
  867. NJ_NINPOU,
  868. NJ_KOUENKA,
  869. NJ_KAENSIN,
  870. NJ_BAKUENRYU,
  871. NJ_HYOUSENSOU,
  872. NJ_SUITON,
  873. NJ_HYOUSYOURAKU,
  874. NJ_HUUJIN,
  875. NJ_RAIGEKISAI,
  876. NJ_KAMAITACHI,
  877. NJ_NEN,
  878. NJ_ISSEN,
  879. NPC_EARTHQUAKE = 653,
  880. NPC_FIREBREATH,
  881. NPC_ICEBREATH,
  882. NPC_THUNDERBREATH,
  883. NPC_ACIDBREATH,
  884. NPC_DARKNESSBREATH,
  885. NPC_DRAGONFEAR,
  886. NPC_BLEEDING,
  887. NPC_PULSESTRIKE,
  888. NPC_HELLJUDGEMENT,
  889. NPC_WIDESILENCE,
  890. NPC_WIDEFREEZE,
  891. NPC_WIDEBLEEDING,
  892. NPC_WIDESTONE,
  893. NPC_WIDECONFUSE,
  894. NPC_WIDESLEEP,
  895. NPC_WIDESIGHT,
  896. NPC_EVILLAND,
  897. NPC_MAGICMIRROR,
  898. NPC_SLOWCAST,
  899. NPC_CRITICALWOUND,
  900. NPC_EXPULSION,
  901. NPC_STONESKIN,
  902. NPC_ANTIMAGIC,
  903. NPC_WIDECURSE,
  904. NPC_WIDESTUN,
  905. NPC_VAMPIRE_GIFT,
  906. NPC_WIDESOULDRAIN,
  907. ALL_INCCARRY,
  908. NPC_TALK,
  909. NPC_HELLPOWER,
  910. NPC_WIDEHELLDIGNITY,
  911. NPC_INVINCIBLE,
  912. NPC_INVINCIBLEOFF,
  913. NPC_ALLHEAL,
  914. GM_SANDMAN,
  915. CASH_BLESSING,
  916. CASH_INCAGI,
  917. CASH_ASSUMPTIO,
  918. ALL_CATCRY,
  919. ALL_PARTYFLEE,
  920. ALL_ANGEL_PROTECT,
  921. ALL_DREAM_SUMMERNIGHT,
  922. NPC_CHANGEUNDEAD2,
  923. ALL_REVERSEORCISH,
  924. ALL_WEWISH,
  925. ALL_SONKRAN,
  926. KN_CHARGEATK = 1001,
  927. CR_SHRINK,
  928. AS_SONICACCEL,
  929. AS_VENOMKNIFE,
  930. RG_CLOSECONFINE,
  931. WZ_SIGHTBLASTER,
  932. SA_CREATECON,
  933. SA_ELEMENTWATER,
  934. HT_PHANTASMIC,
  935. BA_PANGVOICE,
  936. DC_WINKCHARM,
  937. BS_UNFAIRLYTRICK,
  938. BS_GREED,
  939. PR_REDEMPTIO,
  940. MO_KITRANSLATION,
  941. MO_BALKYOUNG,
  942. SA_ELEMENTGROUND,
  943. SA_ELEMENTFIRE,
  944. SA_ELEMENTWIND,
  945. RK_ENCHANTBLADE = 2001,
  946. RK_SONICWAVE,
  947. RK_DEATHBOUND,
  948. RK_HUNDREDSPEAR,
  949. RK_WINDCUTTER,
  950. RK_IGNITIONBREAK,
  951. RK_DRAGONTRAINING,
  952. RK_DRAGONBREATH,
  953. RK_DRAGONHOWLING,
  954. RK_RUNEMASTERY,
  955. RK_MILLENNIUMSHIELD,
  956. RK_CRUSHSTRIKE,
  957. RK_REFRESH,
  958. RK_GIANTGROWTH,
  959. RK_STONEHARDSKIN,
  960. RK_VITALITYACTIVATION,
  961. RK_STORMBLAST,
  962. RK_FIGHTINGSPIRIT,
  963. RK_ABUNDANCE,
  964. RK_PHANTOMTHRUST,
  965. GC_VENOMIMPRESS,
  966. GC_CROSSIMPACT,
  967. GC_DARKILLUSION,
  968. GC_RESEARCHNEWPOISON,
  969. GC_CREATENEWPOISON,
  970. GC_ANTIDOTE,
  971. GC_POISONINGWEAPON,
  972. GC_WEAPONBLOCKING,
  973. GC_COUNTERSLASH,
  974. GC_WEAPONCRUSH,
  975. GC_VENOMPRESSURE,
  976. GC_POISONSMOKE,
  977. GC_CLOAKINGEXCEED,
  978. GC_PHANTOMMENACE,
  979. GC_HALLUCINATIONWALK,
  980. GC_ROLLINGCUTTER,
  981. GC_CROSSRIPPERSLASHER,
  982. AB_JUDEX,
  983. AB_ANCILLA,
  984. AB_ADORAMUS,
  985. AB_CLEMENTIA,
  986. AB_CANTO,
  987. AB_CHEAL,
  988. AB_EPICLESIS,
  989. AB_PRAEFATIO,
  990. AB_ORATIO,
  991. AB_LAUDAAGNUS,
  992. AB_LAUDARAMUS,
  993. AB_EUCHARISTICA,
  994. AB_RENOVATIO,
  995. AB_HIGHNESSHEAL,
  996. AB_CLEARANCE,
  997. AB_EXPIATIO,
  998. AB_DUPLELIGHT,
  999. AB_DUPLELIGHT_MELEE,
  1000. AB_DUPLELIGHT_MAGIC,
  1001. AB_SILENTIUM,
  1002. WL_WHITEIMPRISON = 2201,
  1003. WL_SOULEXPANSION,
  1004. WL_FROSTMISTY,
  1005. WL_JACKFROST,
  1006. WL_MARSHOFABYSS,
  1007. WL_RECOGNIZEDSPELL,
  1008. WL_SIENNAEXECRATE,
  1009. WL_RADIUS,
  1010. WL_STASIS,
  1011. WL_DRAINLIFE,
  1012. WL_CRIMSONROCK,
  1013. WL_HELLINFERNO,
  1014. WL_COMET,
  1015. WL_CHAINLIGHTNING,
  1016. WL_CHAINLIGHTNING_ATK,
  1017. WL_EARTHSTRAIN,
  1018. WL_TETRAVORTEX,
  1019. WL_TETRAVORTEX_FIRE,
  1020. WL_TETRAVORTEX_WATER,
  1021. WL_TETRAVORTEX_WIND,
  1022. WL_TETRAVORTEX_GROUND,
  1023. WL_SUMMONFB,
  1024. WL_SUMMONBL,
  1025. WL_SUMMONWB,
  1026. WL_SUMMON_ATK_FIRE,
  1027. WL_SUMMON_ATK_WIND,
  1028. WL_SUMMON_ATK_WATER,
  1029. WL_SUMMON_ATK_GROUND,
  1030. WL_SUMMONSTONE,
  1031. WL_RELEASE,
  1032. WL_READING_SB,
  1033. WL_FREEZE_SP,
  1034. RA_ARROWSTORM,
  1035. RA_FEARBREEZE,
  1036. RA_RANGERMAIN,
  1037. RA_AIMEDBOLT,
  1038. RA_DETONATOR,
  1039. RA_ELECTRICSHOCKER,
  1040. RA_CLUSTERBOMB,
  1041. RA_WUGMASTERY,
  1042. RA_WUGRIDER,
  1043. RA_WUGDASH,
  1044. RA_WUGSTRIKE,
  1045. RA_WUGBITE,
  1046. RA_TOOTHOFWUG,
  1047. RA_SENSITIVEKEEN,
  1048. RA_CAMOUFLAGE,
  1049. RA_RESEARCHTRAP,
  1050. RA_MAGENTATRAP,
  1051. RA_COBALTTRAP,
  1052. RA_MAIZETRAP,
  1053. RA_VERDURETRAP,
  1054. RA_FIRINGTRAP,
  1055. RA_ICEBOUNDTRAP,
  1056. NC_MADOLICENCE,
  1057. NC_BOOSTKNUCKLE,
  1058. NC_PILEBUNKER,
  1059. NC_VULCANARM,
  1060. NC_FLAMELAUNCHER,
  1061. NC_COLDSLOWER,
  1062. NC_ARMSCANNON,
  1063. NC_ACCELERATION,
  1064. NC_HOVERING,
  1065. NC_F_SIDESLIDE,
  1066. NC_B_SIDESLIDE,
  1067. NC_MAINFRAME,
  1068. NC_SELFDESTRUCTION,
  1069. NC_SHAPESHIFT,
  1070. NC_EMERGENCYCOOL,
  1071. NC_INFRAREDSCAN,
  1072. NC_ANALYZE,
  1073. NC_MAGNETICFIELD,
  1074. NC_NEUTRALBARRIER,
  1075. NC_STEALTHFIELD,
  1076. NC_REPAIR,
  1077. NC_TRAININGAXE,
  1078. NC_RESEARCHFE,
  1079. NC_AXEBOOMERANG,
  1080. NC_POWERSWING,
  1081. NC_AXETORNADO,
  1082. NC_SILVERSNIPER,
  1083. NC_MAGICDECOY,
  1084. NC_DISJOINT,
  1085. SC_FATALMENACE,
  1086. SC_REPRODUCE,
  1087. SC_AUTOSHADOWSPELL,
  1088. SC_SHADOWFORM,
  1089. SC_TRIANGLESHOT,
  1090. SC_BODYPAINT,
  1091. SC_INVISIBILITY,
  1092. SC_DEADLYINFECT,
  1093. SC_ENERVATION,
  1094. SC_GROOMY,
  1095. SC_IGNORANCE,
  1096. SC_LAZINESS,
  1097. SC_UNLUCKY,
  1098. SC_WEAKNESS,
  1099. SC_STRIPACCESSARY,
  1100. SC_MANHOLE,
  1101. SC_DIMENSIONDOOR,
  1102. SC_CHAOSPANIC,
  1103. SC_MAELSTROM,
  1104. SC_BLOODYLUST,
  1105. SC_FEINTBOMB,
  1106. LG_CANNONSPEAR = 2307,
  1107. LG_BANISHINGPOINT,
  1108. LG_TRAMPLE,
  1109. LG_SHIELDPRESS,
  1110. LG_REFLECTDAMAGE,
  1111. LG_PINPOINTATTACK,
  1112. LG_FORCEOFVANGUARD,
  1113. LG_RAGEBURST,
  1114. LG_SHIELDSPELL,
  1115. LG_EXEEDBREAK,
  1116. LG_OVERBRAND,
  1117. LG_PRESTIGE,
  1118. LG_BANDING,
  1119. LG_MOONSLASHER,
  1120. LG_RAYOFGENESIS,
  1121. LG_PIETY,
  1122. LG_EARTHDRIVE,
  1123. LG_HESPERUSLIT,
  1124. LG_INSPIRATION,
  1125. SR_DRAGONCOMBO,
  1126. SR_SKYNETBLOW,
  1127. SR_EARTHSHAKER,
  1128. SR_FALLENEMPIRE,
  1129. SR_TIGERCANNON,
  1130. SR_HELLGATE,
  1131. SR_RAMPAGEBLASTER,
  1132. SR_CRESCENTELBOW,
  1133. SR_CURSEDCIRCLE,
  1134. SR_LIGHTNINGWALK,
  1135. SR_KNUCKLEARROW,
  1136. SR_WINDMILL,
  1137. SR_RAISINGDRAGON,
  1138. SR_GENTLETOUCH,
  1139. SR_ASSIMILATEPOWER,
  1140. SR_POWERVELOCITY,
  1141. SR_CRESCENTELBOW_AUTOSPELL,
  1142. SR_GATEOFHELL,
  1143. SR_GENTLETOUCH_QUIET,
  1144. SR_GENTLETOUCH_CURE,
  1145. SR_GENTLETOUCH_ENERGYGAIN,
  1146. SR_GENTLETOUCH_CHANGE,
  1147. SR_GENTLETOUCH_REVITALIZE,
  1148. WA_SWING_DANCE = 2350,
  1149. WA_SYMPHONY_OF_LOVER,
  1150. WA_MOONLIT_SERENADE,
  1151. MI_RUSH_WINDMILL = 2381,
  1152. MI_ECHOSONG,
  1153. MI_HARMONIZE,
  1154. WM_LESSON = 2412,
  1155. WM_METALICSOUND,
  1156. WM_REVERBERATION,
  1157. WM_REVERBERATION_MELEE,
  1158. WM_REVERBERATION_MAGIC,
  1159. WM_DOMINION_IMPULSE,
  1160. WM_SEVERE_RAINSTORM,
  1161. WM_POEMOFNETHERWORLD,
  1162. WM_VOICEOFSIREN,
  1163. WM_DEADHILLHERE,
  1164. WM_LULLABY_DEEPSLEEP,
  1165. WM_SIRCLEOFNATURE,
  1166. WM_RANDOMIZESPELL,
  1167. WM_GLOOMYDAY,
  1168. WM_GREAT_ECHO,
  1169. WM_SONG_OF_MANA,
  1170. WM_DANCE_WITH_WUG,
  1171. WM_SOUND_OF_DESTRUCTION,
  1172. WM_SATURDAY_NIGHT_FEVER,
  1173. WM_LERADS_DEW,
  1174. WM_MELODYOFSINK,
  1175. WM_BEYOND_OF_WARCRY,
  1176. WM_UNLIMITED_HUMMING_VOICE,
  1177. SO_FIREWALK = 2443,
  1178. SO_ELECTRICWALK,
  1179. SO_SPELLFIST,
  1180. SO_EARTHGRAVE,
  1181. SO_DIAMONDDUST,
  1182. SO_POISON_BUSTER,
  1183. SO_PSYCHIC_WAVE,
  1184. SO_CLOUD_KILL,
  1185. SO_STRIKING,
  1186. SO_WARMER,
  1187. SO_VACUUM_EXTREME,
  1188. SO_VARETYR_SPEAR,
  1189. SO_ARRULLO,
  1190. SO_EL_CONTROL,
  1191. SO_SUMMON_AGNI,
  1192. SO_SUMMON_AQUA,
  1193. SO_SUMMON_VENTUS,
  1194. SO_SUMMON_TERA,
  1195. SO_EL_ACTION,
  1196. SO_EL_ANALYSIS,
  1197. SO_EL_SYMPATHY,
  1198. SO_EL_CURE,
  1199. SO_FIRE_INSIGNIA,
  1200. SO_WATER_INSIGNIA,
  1201. SO_WIND_INSIGNIA,
  1202. SO_EARTH_INSIGNIA,
  1203. GN_TRAINING_SWORD = 2474,
  1204. GN_REMODELING_CART,
  1205. GN_CART_TORNADO,
  1206. GN_CARTCANNON,
  1207. GN_CARTBOOST,
  1208. GN_THORNS_TRAP,
  1209. GN_BLOOD_SUCKER,
  1210. GN_SPORE_EXPLOSION,
  1211. GN_WALLOFTHORN,
  1212. GN_CRAZYWEED,
  1213. GN_CRAZYWEED_ATK,
  1214. GN_DEMONIC_FIRE,
  1215. GN_FIRE_EXPANSION,
  1216. GN_FIRE_EXPANSION_SMOKE_POWDER,
  1217. GN_FIRE_EXPANSION_TEAR_GAS,
  1218. GN_FIRE_EXPANSION_ACID,
  1219. GN_HELLS_PLANT,
  1220. GN_HELLS_PLANT_ATK,
  1221. GN_MANDRAGORA,
  1222. GN_SLINGITEM,
  1223. GN_CHANGEMATERIAL,
  1224. GN_MIX_COOKING,
  1225. GN_MAKEBOMB,
  1226. GN_S_PHARMACY,
  1227. GN_SLINGITEM_RANGEMELEEATK,
  1228. AB_SECRAMENT=2515,
  1229. WM_SEVERE_RAINSTORM_MELEE,
  1230. SR_HOWLINGOFLION,
  1231. SR_RIDEINLIGHTNING,
  1232. LG_OVERBRAND_BRANDISH,
  1233. LG_OVERBRAND_PLUSATK,
  1234. ALL_ODINS_RECALL = 2533,
  1235. RETURN_TO_ELDICASTES,
  1236. ALL_BUYING_STORE,
  1237. ALL_GUARDIAN_RECALL,
  1238. ALL_ODINS_POWER,
  1239. HLIF_HEAL = 8001,
  1240. HLIF_AVOID,
  1241. HLIF_BRAIN,
  1242. HLIF_CHANGE,
  1243. HAMI_CASTLE,
  1244. HAMI_DEFENCE,
  1245. HAMI_SKIN,
  1246. HAMI_BLOODLUST,
  1247. HFLI_MOON,
  1248. HFLI_FLEET,
  1249. HFLI_SPEED,
  1250. HFLI_SBR44,
  1251. HVAN_CAPRICE,
  1252. HVAN_CHAOTIC,
  1253. HVAN_INSTRUCT,
  1254. HVAN_EXPLOSION,
  1255. MS_BASH = 8201,
  1256. MS_MAGNUM,
  1257. MS_BOWLINGBASH,
  1258. MS_PARRYING,
  1259. MS_REFLECTSHIELD,
  1260. MS_BERSERK,
  1261. MA_DOUBLE,
  1262. MA_SHOWER,
  1263. MA_SKIDTRAP,
  1264. MA_LANDMINE,
  1265. MA_SANDMAN,
  1266. MA_FREEZINGTRAP,
  1267. MA_REMOVETRAP,
  1268. MA_CHARGEARROW,
  1269. MA_SHARPSHOOTING,
  1270. ML_PIERCE,
  1271. ML_BRANDISH,
  1272. ML_SPIRALPIERCE,
  1273. ML_DEFENDER,
  1274. ML_AUTOGUARD,
  1275. ML_DEVOTION,
  1276. MER_MAGNIFICAT,
  1277. MER_QUICKEN,
  1278. MER_SIGHT,
  1279. MER_CRASH,
  1280. MER_REGAIN,
  1281. MER_TENDER,
  1282. MER_BENEDICTION,
  1283. MER_RECUPERATE,
  1284. MER_MENTALCURE,
  1285. MER_COMPRESS,
  1286. MER_PROVOKE,
  1287. MER_AUTOBERSERK,
  1288. MER_DECAGI,
  1289. MER_SCAPEGOAT,
  1290. MER_LEXDIVINA,
  1291. MER_ESTIMATION,
  1292. MER_KYRIE,
  1293. MER_BLESSING,
  1294. MER_INCAGI,
  1295. EL_CIRCLE_OF_FIRE = 8401,
  1296. EL_FIRE_CLOAK,
  1297. EL_FIRE_MANTLE,
  1298. EL_WATER_SCREEN,
  1299. EL_WATER_DROP,
  1300. EL_WATER_BARRIER,
  1301. EL_WIND_STEP,
  1302. EL_WIND_CURTAIN,
  1303. EL_ZEPHYR,
  1304. EL_SOLID_SKIN,
  1305. EL_STONE_SHIELD,
  1306. EL_POWER_OF_GAIA,
  1307. EL_PYROTECHNIC,
  1308. EL_HEATER,
  1309. EL_TROPIC,
  1310. EL_AQUAPLAY,
  1311. EL_COOLER,
  1312. EL_CHILLY_AIR,
  1313. EL_GUST,
  1314. EL_BLAST,
  1315. EL_WILD_STORM,
  1316. EL_PETROLOGY,
  1317. EL_CURSED_SOIL,
  1318. EL_UPHEAVAL,
  1319. EL_FIRE_ARROW,
  1320. EL_FIRE_BOMB,
  1321. EL_FIRE_BOMB_ATK,
  1322. EL_FIRE_WAVE,
  1323. EL_FIRE_WAVE_ATK,
  1324. EL_ICE_NEEDLE,
  1325. EL_WATER_SCREW,
  1326. EL_WATER_SCREW_ATK,
  1327. EL_TIDAL_WEAPON,
  1328. EL_WIND_SLASH,
  1329. EL_HURRICANE,
  1330. EL_HURRICANE_ATK,
  1331. EL_TYPOON_MIS,
  1332. EL_TYPOON_MIS_ATK,
  1333. EL_STONE_HAMMER,
  1334. EL_ROCK_CRUSHER,
  1335. EL_ROCK_CRUSHER_ATK,
  1336. EL_STONE_RAIN,
  1337. };
  1338. /// The client view ids for land skills.
  1339. enum {
  1340. UNT_SAFETYWALL = 0x7e,
  1341. UNT_FIREWALL,
  1342. UNT_WARP_WAITING,
  1343. UNT_WARP_ACTIVE,
  1344. UNT_BENEDICTIO, //TODO
  1345. UNT_SANCTUARY,
  1346. UNT_MAGNUS,
  1347. UNT_PNEUMA,
  1348. UNT_DUMMYSKILL, //These show no effect on the client
  1349. UNT_FIREPILLAR_WAITING,
  1350. UNT_FIREPILLAR_ACTIVE,
  1351. UNT_HIDDEN_TRAP, //TODO
  1352. UNT_TRAP, //TODO
  1353. UNT_HIDDEN_WARP_NPC, //TODO
  1354. UNT_USED_TRAPS,
  1355. UNT_ICEWALL,
  1356. UNT_QUAGMIRE,
  1357. UNT_BLASTMINE,
  1358. UNT_SKIDTRAP,
  1359. UNT_ANKLESNARE,
  1360. UNT_VENOMDUST,
  1361. UNT_LANDMINE,
  1362. UNT_SHOCKWAVE,
  1363. UNT_SANDMAN,
  1364. UNT_FLASHER,
  1365. UNT_FREEZINGTRAP,
  1366. UNT_CLAYMORETRAP,
  1367. UNT_TALKIEBOX,
  1368. UNT_VOLCANO,
  1369. UNT_DELUGE,
  1370. UNT_VIOLENTGALE,
  1371. UNT_LANDPROTECTOR,
  1372. UNT_LULLABY,
  1373. UNT_RICHMANKIM,
  1374. UNT_ETERNALCHAOS,
  1375. UNT_DRUMBATTLEFIELD,
  1376. UNT_RINGNIBELUNGEN,
  1377. UNT_ROKISWEIL,
  1378. UNT_INTOABYSS,
  1379. UNT_SIEGFRIED,
  1380. UNT_DISSONANCE,
  1381. UNT_WHISTLE,
  1382. UNT_ASSASSINCROSS,
  1383. UNT_POEMBRAGI,
  1384. UNT_APPLEIDUN,
  1385. UNT_UGLYDANCE,
  1386. UNT_HUMMING,
  1387. UNT_DONTFORGETME,
  1388. UNT_FORTUNEKISS,
  1389. UNT_SERVICEFORYOU,
  1390. UNT_GRAFFITI,
  1391. UNT_DEMONSTRATION,
  1392. UNT_CALLFAMILY,
  1393. UNT_GOSPEL,
  1394. UNT_BASILICA,
  1395. UNT_MOONLIT,
  1396. UNT_FOGWALL,
  1397. UNT_SPIDERWEB,
  1398. UNT_GRAVITATION,
  1399. UNT_HERMODE,
  1400. UNT_KAENSIN, //TODO
  1401. UNT_SUITON,
  1402. UNT_TATAMIGAESHI,
  1403. UNT_KAEN,
  1404. UNT_GROUNDDRIFT_WIND,
  1405. UNT_GROUNDDRIFT_DARK,
  1406. UNT_GROUNDDRIFT_POISON,
  1407. UNT_GROUNDDRIFT_WATER,
  1408. UNT_GROUNDDRIFT_FIRE,
  1409. UNT_DEATHWAVE, //TODO
  1410. UNT_WATERATTACK, //TODO
  1411. UNT_WINDATTACK, //TODO
  1412. UNT_EARTHQUAKE, //TODO
  1413. UNT_EVILLAND,
  1414. UNT_DARK_RUNNER, //TODO
  1415. UNT_DARK_TRANSFER, //TODO
  1416. UNT_EPICLESIS, //TODO
  1417. UNT_EARTHSTRAIN, //TODO
  1418. UNT_MANHOLE, //TODO
  1419. UNT_DIMENSIONDOOR, //TODO
  1420. UNT_CHAOSPANIC, //TODO
  1421. UNT_MAELSTROM, //TODO
  1422. UNT_BLOODYLUST, //TODO
  1423. UNT_FEINTBOMB, //TODO
  1424. UNT_MAGENTATRAP, //TODO
  1425. UNT_COBALTTRAP, //TODO
  1426. UNT_MAIZETRAP, //TODO
  1427. UNT_VERDURETRAP, //TODO
  1428. UNT_FIRINGTRAP, //TODO
  1429. UNT_ICEBOUNDTRAP, //TODO
  1430. UNT_ELECTRICSHOCKER, //TODO
  1431. UNT_CLUSTERBOMB, //TODO
  1432. UNT_REVERBERATION, //TODO
  1433. UNT_SEVERE_RAINSTORM, //TODO
  1434. UNT_FIREWALK, //TODO
  1435. UNT_ELECTRICWALK, //TODO
  1436. UNT_NETHERWORLD, //TODO
  1437. UNT_PSYCHIC_WAVE, //TODO
  1438. UNT_CLOUD_KILL, //TODO
  1439. UNT_POISONSMOKE, //TODO
  1440. UNT_NEUTRALBARRIER, //TODO
  1441. UNT_STEALTHFIELD, //TODO
  1442. UNT_WARMER, //TODO
  1443. UNT_THORNS_TRAP, //TODO
  1444. UNT_WALLOFTHORN, //TODO
  1445. UNT_DEMONIC_FIRE, //TODO
  1446. UNT_FIRE_EXPANSION_SMOKE_POWDER, //TODO
  1447. UNT_FIRE_EXPANSION_TEAR_GAS, //TODO
  1448. UNT_HELLS_PLANT, //TODO
  1449. UNT_VACUUM_EXTREME, //TODO
  1450. UNT_BANDING, //TODO
  1451. UNT_FIRE_MANTLE, //TODO
  1452. UNT_WATER_BARRIER, //TODO
  1453. UNT_ZEPHYR, //TODO
  1454. UNT_POWER_OF_GAIA, //TODO
  1455. UNT_FIRE_INSIGNIA, //TODO
  1456. UNT_WATER_INSIGNIA, //TODO
  1457. UNT_WIND_INSIGNIA, //TODO
  1458. UNT_EARTH_INSIGNIA, //TODO
  1459. UNT_MAX = 0x190
  1460. };
  1461. /**
  1462. * Skill Cool Downs - load from pc.c when the character logs in
  1463. **/
  1464. void skill_cooldown_load(struct map_session_data * sd);
  1465. /**
  1466. * Warlock
  1467. **/
  1468. #define MAX_SKILL_SPELLBOOK_DB 17
  1469. enum wl_spheres {
  1470. WLS_FIRE = 0x44,
  1471. WLS_WIND,
  1472. WLS_WATER,
  1473. WLS_STONE,
  1474. };
  1475. int skill_spellbook (struct map_session_data *sd, int nameid);
  1476. int skill_stasis_check(struct block_list *bl, int src_id, int skillid);
  1477. /**
  1478. * Guilottine Cross
  1479. **/
  1480. #define MAX_SKILL_MAGICMUSHROOM_DB 22
  1481. struct s_skill_magicmushroom_db {
  1482. int skillid;
  1483. };
  1484. extern struct s_skill_magicmushroom_db skill_magicmushroom_db[MAX_SKILL_MAGICMUSHROOM_DB];
  1485. /**
  1486. * Ranger
  1487. **/
  1488. int skill_detonator(struct block_list *bl, va_list ap);
  1489. bool skill_check_camouflage(struct block_list *bl, struct status_change_entry *sce);
  1490. /**
  1491. * Mechanic
  1492. **/
  1493. int skill_magicdecoy(struct map_session_data *sd, int nameid);
  1494. /**
  1495. * Guiltoine Cross
  1496. **/
  1497. int skill_poisoningweapon( struct map_session_data *sd, int nameid);
  1498. enum gx_poison {
  1499. PO_PARALYSE = 12717,
  1500. PO_LEECHESEND,
  1501. PO_OBLIVIONCURSE,
  1502. PO_DEATHHURT,
  1503. PO_TOXIN,
  1504. PO_PYREXIA,
  1505. PO_MAGICMUSHROOM,
  1506. PO_VENOMBLEED
  1507. };
  1508. #endif /* _SKILL_H_ */