root/src/map/skill.h @ 10

Revision 10, 25.4 kB (checked in by jinshiro, 17 years ago)

Finished Draft for Adept, Necro and Warlock.

Line 
1// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
2// For more information, see LICENCE in the main folder
3
4#ifndef _SKILL_H_
5#define _SKILL_H_
6
7#include "../common/mmo.h" // MAX_SKILL, struct square
8#include "map.h" // struct block_list
9struct map_session_data;
10struct homun_data;
11struct skill_unit;
12struct skill_unit_group;
13struct status_change_entry;
14
15#define MAX_SKILL_DB                    MAX_SKILL
16#define MAX_SKILL_PRODUCE_DB    150
17#define MAX_PRODUCE_RESOURCE    12
18#define MAX_SKILL_ARROW_DB              150
19#define MAX_ARROW_RESOURCE              5
20#define MAX_SKILL_ABRA_DB               350
21
22#define MAX_SKILL_LEVEL 100
23
24//Constants to identify the skill's inf value:
25#define INF_ATTACK_SKILL 1
26#define INF_GROUND_SKILL 2
27// Skills casted on self where target is automatically chosen:
28#define INF_SELF_SKILL 4
29#define INF_SUPPORT_SKILL 16
30#define INF_TARGET_TRAP 32
31
32//Constants to identify a skill's nk value (damage properties)
33//The NK value applies only to non INF_GROUND_SKILL skills
34//when determining skill castend function to invoke.
35#define NK_NO_DAMAGE 0x01
36#define NK_SPLASH (0x02|0x04) // 0x4 = splash & split
37#define NK_SPLASHSPLIT 0x04
38#define NK_NO_CARDFIX_ATK 0x08
39#define NK_NO_ELEFIX 0x10
40#define NK_IGNORE_DEF 0x20
41#define NK_IGNORE_FLEE 0x40
42#define 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#define INF2_QUEST_SKILL 1
47//NPC skills are those that players can't have in their skill tree.
48#define INF2_NPC_SKILL 0x2
49#define INF2_WEDDING_SKILL 0x4
50#define INF2_SPIRIT_SKILL 0x8
51#define INF2_GUILD_SKILL 0x10
52#define INF2_SONG_DANCE 0x20
53#define INF2_ENSEMBLE_SKILL 0x40
54#define INF2_TRAP 0x80
55//Refers to ground placed skills that will target the caster as well (like Grandcross)
56#define INF2_TARGET_SELF 0x100
57#define INF2_NO_TARGET_SELF 0x200
58#define INF2_PARTY_ONLY 0x400
59#define INF2_GUILD_ONLY 0x800
60#define INF2_NO_ENEMY 0x1000
61
62//Walk intervals at which chase-skills are attempted to be triggered.
63#define WALK_SKILL_INTERVAL 5
64
65// Flags passed to skill_attack/skill_area_sub
66#define SD_LEVEL     0x1000 // skill_attack will send -1 instead of skill level (affects display of some skills)
67#define SD_ANIMATION 0x2000 // skill_attack will use '5' instead of the skill's 'type' (this makes skills show an animation)
68#define SD_SPLASH    0x4000 // skill_area_sub will count targets in skill_area_temp[2]
69#define SD_PREAMBLE  0x8000 // skill_area_sub will transmit a 'magic' damage packet (-30000 dmg) for the first target selected
70
71// ƒXƒLƒ‹ƒf?ƒ^ƒx?ƒX
72struct s_skill_db {
73        char name[NAME_LENGTH];
74        char desc[40];
75        int range[MAX_SKILL_LEVEL],hit,inf,element[MAX_SKILL_LEVEL],nk,splash[MAX_SKILL_LEVEL],max;
76        int num[MAX_SKILL_LEVEL];
77        int cast[MAX_SKILL_LEVEL],walkdelay[MAX_SKILL_LEVEL],delay[MAX_SKILL_LEVEL];
78        int upkeep_time[MAX_SKILL_LEVEL],upkeep_time2[MAX_SKILL_LEVEL];
79        int castcancel,cast_def_rate;
80        int inf2,maxcount[MAX_SKILL_LEVEL],skill_type;
81        int blewcount[MAX_SKILL_LEVEL];
82        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];
83        int weapon,ammo,ammo_qty[MAX_SKILL_LEVEL],state,spiritball[MAX_SKILL_LEVEL];
84        int itemid[10],amount[10];
85        int castnodex[MAX_SKILL_LEVEL], delaynodex[MAX_SKILL_LEVEL];
86        int nocast;
87        int unit_id[2];
88        int unit_layout_type[MAX_SKILL_LEVEL];
89        int unit_range[MAX_SKILL_LEVEL];
90        int unit_interval;
91        int unit_target;
92        int unit_flag;
93};
94extern struct s_skill_db skill_db[MAX_SKILL_DB];
95
96struct skill_name_db { 
97        int id; // skill id
98        char *name;     // search strings
99        char *desc;     // description that shows up for searches
100};
101
102#define MAX_SKILL_UNIT_LAYOUT   50
103#define MAX_SQUARE_LAYOUT               5       // 11*11‚̃†ƒjƒbƒg”z’u‚ªÅ‘å
104#define MAX_SKILL_UNIT_COUNT ((MAX_SQUARE_LAYOUT*2+1)*(MAX_SQUARE_LAYOUT*2+1))
105struct s_skill_unit_layout {
106        int count;
107        int dx[MAX_SKILL_UNIT_COUNT];
108        int dy[MAX_SKILL_UNIT_COUNT];
109};
110
111#define MAX_SKILLTIMERSKILL 15
112struct 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
123#define MAX_SKILLUNITGROUP 25
124struct skill_unit_group {
125        int src_id;
126        int party_id;
127        int guild_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
134        short skill_id,skill_lv;
135        int val1,val2,val3;
136        char *valstr;
137        int unit_id;
138        int group_id;
139        int unit_count,alive_count;
140        struct skill_unit *unit;
141        struct {
142                unsigned ammo_consume : 1;
143                unsigned magic_power : 1;
144                unsigned song_dance : 2; //0x1 Song/Dance, 0x2 Ensemble
145        } state;
146};
147
148struct skill_unit {
149        struct block_list bl;
150
151        struct skill_unit_group *group;
152
153        int limit;
154        int val1,val2;
155        short alive,range;
156};
157
158#define MAX_SKILLUNITGROUPTICKSET 25
159struct skill_unit_group_tickset {
160        unsigned int tick;
161        int id;
162};
163
164
165enum {
166        UF_DEFNOTENEMY   = 0x0001,      // If 'defunit_not_enemy' is set, the target is changed to 'friend'
167        UF_NOREITERATION = 0x0002,      // Spell cannot be stacked
168        UF_NOFOOTSET     = 0x0004,      // Spell cannot be cast near/on targets
169        UF_NOOVERLAP     = 0x0008,      // Spell effects do not overlap
170        UF_PATHCHECK     = 0x0010,      // Only cells with a shootable path will be placed
171        UF_NOPC          = 0x0020,      // May not target players
172        UF_NOMOB         = 0x0040,      // May not target mobs
173        UF_SKILL         = 0x0080,      // May target skills
174        UF_DANCE         = 0x0100,      // Dance
175        UF_ENSEMBLE      = 0x0200,      // Duet
176        UF_SONG          = 0x0400,      // Song
177        UF_DUALMODE      = 0x0800,      // Spells should trigger both ontimer and onplace/onout/onleft effects.
178};
179
180// ƒAƒCƒeƒ€ì¬ƒf?ƒ^ƒx?ƒX
181struct s_skill_produce_db {
182        int nameid, trigger;
183        int req_skill,req_skill_lv,itemlv;
184        int mat_id[MAX_PRODUCE_RESOURCE],mat_amount[MAX_PRODUCE_RESOURCE];
185};
186extern struct s_skill_produce_db skill_produce_db[MAX_SKILL_PRODUCE_DB];
187
188// –îì¬ƒf?ƒ^ƒx?ƒX
189struct s_skill_arrow_db {
190        int nameid, trigger;
191        int cre_id[MAX_ARROW_RESOURCE],cre_amount[MAX_ARROW_RESOURCE];
192};
193extern struct s_skill_arrow_db skill_arrow_db[MAX_SKILL_ARROW_DB];
194
195// ƒAƒuƒ‰ƒJƒ_ƒuƒ‰ƒf?ƒ^ƒx?ƒX
196struct s_skill_abra_db {
197        int skillid;
198        int req_lv;
199        int per;
200};
201extern struct s_skill_abra_db skill_abra_db[MAX_SKILL_ABRA_DB];
202
203extern int enchant_eff[5];
204extern int deluge_eff[5];
205
206int do_init_skill(void);
207int do_final_skill(void);
208
209//Returns the cast type of the skill: ground cast, castend damage, castend no damage
210enum { CAST_GROUND, CAST_DAMAGE, CAST_NODAMAGE };
211int skill_get_casttype(int id); //[Skotlex]
212// ƒXƒLƒ‹ƒf?ƒ^ƒx?ƒX‚ւ̃AƒNƒZƒT
213//
214int skill_get_index( int id );
215int     skill_get_type( int id );
216int     skill_get_hit( int id );
217int     skill_get_inf( int id );
218int     skill_get_ele( int id , int lv );
219int     skill_get_nk( int id );
220int     skill_get_max( int id );
221int     skill_get_range( int id , int lv );
222int     skill_get_range2(struct block_list *bl, int id, int lv);
223int     skill_get_splash( int id , int lv );
224int     skill_get_hp( int id ,int lv );
225int     skill_get_mhp( int id ,int lv );
226int     skill_get_sp( int id ,int lv );
227int     skill_get_state(int id);
228int     skill_get_zeny( int id ,int lv );
229int     skill_get_num( int id ,int lv );
230int     skill_get_cast( int id ,int lv );
231int     skill_get_delay( int id ,int lv );
232int     skill_get_walkdelay( int id ,int lv );
233int     skill_get_time( int id ,int lv );
234int     skill_get_time2( int id ,int lv );
235int     skill_get_castnodex( int id ,int lv );
236int     skill_get_castdef( int id );
237int     skill_get_weapontype( int id );
238int     skill_get_ammotype( int id );
239int     skill_get_ammo_qty( int id, int lv );
240int     skill_get_nocast( int id );
241int     skill_get_unit_id(int id,int flag);
242int     skill_get_inf2( int id );
243int     skill_get_castcancel( int id );
244int     skill_get_maxcount( int id ,int lv );
245int     skill_get_blewcount( int id ,int lv );
246int     skill_get_unit_flag( int id );
247int     skill_get_unit_target( int id );
248int     skill_tree_get_max( int id, int b_class );      // Celest
249const char*     skill_get_name( int id );       // [Skotlex]
250const char*     skill_get_desc( int id );       // [Skotlex]
251
252int skill_name2id(const char* name);
253
254int skill_isammotype(struct map_session_data *sd, int skill);
255int skill_castend_id(int tid, unsigned int tick, int id, intptr data);
256int skill_castend_pos(int tid, unsigned int tick, int id, intptr data);
257int skill_castend_map( struct map_session_data *sd,short skill_num, const char *map);
258
259int skill_cleartimerskill(struct block_list *src);
260int 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);
261
262// ’ljÁ?‰Ê
263int skill_additional_effect( struct block_list* src, struct block_list *bl,int skillid,int skilllv,int attack_type,unsigned int tick);
264int skill_counter_additional_effect( struct block_list* src, struct block_list *bl,int skillid,int skilllv,int attack_type,unsigned int tick);
265int skill_blown(struct block_list* src, struct block_list* target, int count, int direction, int flag);
266int skill_break_equip(struct block_list *bl, unsigned short where, int rate, int flag);
267int skill_strip_equip(struct block_list *bl, unsigned short where, int rate, int lv, int time);
268// ƒ†ƒjƒbƒgƒXƒLƒ‹
269struct skill_unit_group *skill_unitsetting(struct block_list* src, short skillid, short skilllv, short x, short y, int flag);
270struct skill_unit *skill_initunit (struct skill_unit_group *group, int idx, int x, int y, int val1, int val2);
271int skill_delunit(struct skill_unit *unit);
272struct skill_unit_group *skill_initunitgroup(struct block_list* src, int count, short skillid, short skilllv, int unit_id, int limit, int interval);
273int skill_delunitgroup(struct block_list *src, struct skill_unit_group *group);
274int skill_clear_unitgroup(struct block_list *src);
275int skill_clear_group(struct block_list *bl, int flag);
276
277int skill_unit_ondamaged(struct skill_unit *src,struct block_list *bl,int damage,unsigned int tick);
278
279int skill_castfix( struct block_list *bl, int skill_id, int skill_lv);
280int skill_castfix_sc( struct block_list *bl, int time);
281int skill_delayfix( struct block_list *bl, int skill_id, int skill_lv);
282int skill_check_condition( struct map_session_data *sd, short skill, short lv, int type);
283int skill_check_pc_partner(struct map_session_data *sd, short skill_id, short* skill_lv, int range, int cast_flag);
284// -- moonsoul  (added skill_check_unit_cell)
285int skill_check_unit_cell(int skillid,int m,int x,int y,int unit_id);
286int skill_unit_out_all( struct block_list *bl,unsigned int tick,int range);
287int skill_unit_move(struct block_list *bl,unsigned int tick,int flag);
288int skill_unit_move_unit_group( struct skill_unit_group *group, int m,int dx,int dy);
289
290struct skill_unit_group *skill_check_dancing( struct block_list *src );
291void skill_stop_dancing(struct block_list *src);
292
293// Guild skills [celest]
294int skill_guildaura_sub (struct block_list *bl,va_list ap);
295
296// ‰r¥ƒLƒƒƒ“ƒZƒ‹
297int skill_castcancel(struct block_list *bl,int type);
298
299int skill_sit (struct map_session_data *sd, int type);
300void skill_brandishspear_first(struct square *tc,int dir,int x,int y);
301void skill_brandishspear_dir(struct square *tc,int dir,int are);
302void skill_repairweapon(struct map_session_data *sd, int idx);
303void skill_identify(struct map_session_data *sd,int idx);
304void skill_weaponrefine(struct map_session_data *sd,int idx); // [Celest]
305int skill_autospell(struct map_session_data *md,int skillid);
306
307int skill_calc_heal(struct block_list *src, struct block_list *target, int skill_lv);
308
309bool skill_check_cloaking(struct block_list *bl, struct status_change_entry *sce);
310
311// ƒXƒe?ƒ^ƒXˆÙí
312int skill_enchant_elemental_end(struct block_list *bl, int type);
313int skillnotok(int skillid, struct map_session_data *sd);
314int skillnotok_hom (int skillid, struct homun_data *hd) ;       //[orn]
315int skill_chastle_mob_changetarget(struct block_list *bl,va_list ap);   //[orn]
316
317// ƒAƒCƒeƒ€ì¬
318int skill_can_produce_mix( struct map_session_data *sd, int nameid, int trigger, int qty);
319int skill_produce_mix( struct map_session_data *sd, int skill_id, int nameid, int slot1, int slot2, int slot3, int qty );
320
321int skill_arrow_create( struct map_session_data *sd,int nameid);
322
323//Custom Jobs (blackmagic)
324int skill_additem(struct block_list* src, struct block_list *bl, int itemid, int amount); // Item giver func [Brain]
325//Custom Job End
326
327// mobƒXƒLƒ‹‚Ì‚œ‚ß
328int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
329int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
330int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skilllv,unsigned int tick,int flag);
331int skill_blockpc_start (struct map_session_data*,int,int);     // [celest]
332int skill_blockmerc_start (struct homun_data*,int,int); //[orn]
333
334// ƒXƒLƒ‹U?ˆêЇ?—
335int 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 );
336
337void skill_reload(void);
338
339enum {
340        ST_NONE,
341        ST_HIDING,
342        ST_CLOAKING,
343        ST_HIDDEN,
344        ST_RIDING,
345        ST_FALCON,
346        ST_CART,
347        ST_SHIELD,
348        ST_SIGHT,
349        ST_EXPLOSIONSPIRITS,
350        ST_CARTBOOST,
351        ST_RECOV_WEIGHT_RATE,
352        ST_MOVE_ENABLE,
353        ST_WATER,
354};
355
356enum s_skill {
357        NV_BASIC = 1,
358
359        SM_SWORD,
360        SM_TWOHAND,
361        SM_RECOVERY,
362        SM_BASH,
363        SM_PROVOKE,
364        SM_MAGNUM,
365        SM_ENDURE,
366
367        MG_SRECOVERY,
368        MG_SIGHT,
369        MG_NAPALMBEAT,
370        MG_SAFETYWALL,
371        MG_SOULSTRIKE,
372        MG_COLDBOLT,
373        MG_FROSTDIVER,
374        MG_STONECURSE,
375        MG_FIREBALL,
376        MG_FIREWALL,
377        MG_FIREBOLT,
378        MG_LIGHTNINGBOLT,
379        MG_THUNDERSTORM,
380
381        AL_DP,
382        AL_DEMONBANE,
383        AL_RUWACH,
384        AL_PNEUMA,
385        AL_TELEPORT,
386        AL_WARP,
387        AL_HEAL,
388        AL_INCAGI,
389        AL_DECAGI,
390        AL_HOLYWATER,
391        AL_CRUCIS,
392        AL_ANGELUS,
393        AL_BLESSING,
394        AL_CURE,
395
396        MC_INCCARRY,
397        MC_DISCOUNT,
398        MC_OVERCHARGE,
399        MC_PUSHCART,
400        MC_IDENTIFY,
401        MC_VENDING,
402        MC_MAMMONITE,
403
404        AC_OWL,
405        AC_VULTURE,
406        AC_CONCENTRATION,
407        AC_DOUBLE,
408        AC_SHOWER,
409
410        TF_DOUBLE,
411        TF_MISS,
412        TF_STEAL,
413        TF_HIDING,
414        TF_POISON,
415        TF_DETOXIFY,
416
417        ALL_RESURRECTION,
418
419        KN_SPEARMASTERY,
420        KN_PIERCE,
421        KN_BRANDISHSPEAR,
422        KN_SPEARSTAB,
423        KN_SPEARBOOMERANG,
424        KN_TWOHANDQUICKEN,
425        KN_AUTOCOUNTER,
426        KN_BOWLINGBASH,
427        KN_RIDING,
428        KN_CAVALIERMASTERY,
429
430        PR_MACEMASTERY,
431        PR_IMPOSITIO,
432        PR_SUFFRAGIUM,
433        PR_ASPERSIO,
434        PR_BENEDICTIO,
435        PR_SANCTUARY,
436        PR_SLOWPOISON,
437        PR_STRECOVERY,
438        PR_KYRIE,
439        PR_MAGNIFICAT,
440        PR_GLORIA,
441        PR_LEXDIVINA,
442        PR_TURNUNDEAD,
443        PR_LEXAETERNA,
444        PR_MAGNUS,
445
446        WZ_FIREPILLAR,
447        WZ_SIGHTRASHER,
448        WZ_FIREIVY,
449        WZ_METEOR,
450        WZ_JUPITEL,
451        WZ_VERMILION,
452        WZ_WATERBALL,
453        WZ_ICEWALL,
454        WZ_FROSTNOVA,
455        WZ_STORMGUST,
456        WZ_EARTHSPIKE,
457        WZ_HEAVENDRIVE,
458        WZ_QUAGMIRE,
459        WZ_ESTIMATION,
460
461        BS_IRON,
462        BS_STEEL,
463        BS_ENCHANTEDSTONE,
464        BS_ORIDEOCON,
465        BS_DAGGER,
466        BS_SWORD,
467        BS_TWOHANDSWORD,
468        BS_AXE,
469        BS_MACE,
470        BS_KNUCKLE,
471        BS_SPEAR,
472        BS_HILTBINDING,
473        BS_FINDINGORE,
474        BS_WEAPONRESEARCH,
475        BS_REPAIRWEAPON,
476        BS_SKINTEMPER,
477        BS_HAMMERFALL,
478        BS_ADRENALINE,
479        BS_WEAPONPERFECT,
480        BS_OVERTHRUST,
481        BS_MAXIMIZE,
482
483        HT_SKIDTRAP,
484        HT_LANDMINE,
485        HT_ANKLESNARE,
486        HT_SHOCKWAVE,
487        HT_SANDMAN,
488        HT_FLASHER,
489        HT_FREEZINGTRAP,
490        HT_BLASTMINE,
491        HT_CLAYMORETRAP,
492        HT_REMOVETRAP,
493        HT_TALKIEBOX,
494        HT_BEASTBANE,
495        HT_FALCON,
496        HT_STEELCROW,
497        HT_BLITZBEAT,
498        HT_DETECTING,
499        HT_SPRINGTRAP,
500
501        AS_RIGHT,
502        AS_LEFT,
503        AS_KATAR,
504        AS_CLOAKING,
505        AS_SONICBLOW,
506        AS_GRIMTOOTH,
507        AS_ENCHANTPOISON,
508        AS_POISONREACT,
509        AS_VENOMDUST,
510        AS_SPLASHER,
511
512        NV_FIRSTAID,
513        NV_TRICKDEAD,
514        SM_MOVINGRECOVERY,
515        SM_FATALBLOW,
516        SM_AUTOBERSERK,
517        AC_MAKINGARROW,
518        AC_CHARGEARROW,
519        TF_SPRINKLESAND,
520        TF_BACKSLIDING,
521        TF_PICKSTONE,
522        TF_THROWSTONE,
523        MC_CARTREVOLUTION,
524        MC_CHANGECART,
525        MC_LOUD,
526        AL_HOLYLIGHT,
527        MG_ENERGYCOAT,
528
529        NPC_PIERCINGATT,
530        NPC_MENTALBREAKER,
531        NPC_RANGEATTACK,
532        NPC_ATTRICHANGE,
533        NPC_CHANGEWATER,
534        NPC_CHANGEGROUND,
535        NPC_CHANGEFIRE,
536        NPC_CHANGEWIND,
537        NPC_CHANGEPOISON,
538        NPC_CHANGEHOLY,
539        NPC_CHANGEDARKNESS,
540        NPC_CHANGETELEKINESIS,
541        NPC_CRITICALSLASH,
542        NPC_COMBOATTACK,
543        NPC_GUIDEDATTACK,
544        NPC_SELFDESTRUCTION,
545        NPC_SPLASHATTACK,
546        NPC_SUICIDE,
547        NPC_POISON,
548        NPC_BLINDATTACK,
549        NPC_SILENCEATTACK,
550        NPC_STUNATTACK,
551        NPC_PETRIFYATTACK,
552        NPC_CURSEATTACK,
553        NPC_SLEEPATTACK,
554        NPC_RANDOMATTACK,
555        NPC_WATERATTACK,
556        NPC_GROUNDATTACK,
557        NPC_FIREATTACK,
558        NPC_WINDATTACK,
559        NPC_POISONATTACK,
560        NPC_HOLYATTACK,
561        NPC_DARKNESSATTACK,
562        NPC_TELEKINESISATTACK,
563        NPC_MAGICALATTACK,
564        NPC_METAMORPHOSIS,
565        NPC_PROVOCATION,
566        NPC_SMOKING,
567        NPC_SUMMONSLAVE,
568        NPC_EMOTION,
569        NPC_TRANSFORMATION,
570        NPC_BLOODDRAIN,
571        NPC_ENERGYDRAIN,
572        NPC_KEEPING,
573        NPC_DARKBREATH,
574        NPC_DARKBLESSING,
575        NPC_BARRIER,
576        NPC_DEFENDER,
577        NPC_LICK,
578        NPC_HALLUCINATION,
579        NPC_REBIRTH,
580        NPC_SUMMONMONSTER,
581
582        RG_SNATCHER,
583        RG_STEALCOIN,
584        RG_BACKSTAP,
585        RG_TUNNELDRIVE,
586        RG_RAID,
587        RG_STRIPWEAPON,
588        RG_STRIPSHIELD,
589        RG_STRIPARMOR,
590        RG_STRIPHELM,
591        RG_INTIMIDATE,
592        RG_GRAFFITI,
593        RG_FLAGGRAFFITI,
594        RG_CLEANER,
595        RG_GANGSTER,
596        RG_COMPULSION,
597        RG_PLAGIARISM,
598
599        AM_AXEMASTERY,
600        AM_LEARNINGPOTION,
601        AM_PHARMACY,
602        AM_DEMONSTRATION,
603        AM_ACIDTERROR,
604        AM_POTIONPITCHER,
605        AM_CANNIBALIZE,
606        AM_SPHEREMINE,
607        AM_CP_WEAPON,
608        AM_CP_SHIELD,
609        AM_CP_ARMOR,
610        AM_CP_HELM,
611        AM_BIOETHICS,
612        AM_BIOTECHNOLOGY,
613        AM_CREATECREATURE,
614        AM_CULTIVATION,
615        AM_FLAMECONTROL,
616        AM_CALLHOMUN,
617        AM_REST,
618        AM_DRILLMASTER,
619        AM_HEALHOMUN,
620        AM_RESURRECTHOMUN,
621
622        CR_TRUST,
623        CR_AUTOGUARD,
624        CR_SHIELDCHARGE,
625        CR_SHIELDBOOMERANG,
626        CR_REFLECTSHIELD,
627        CR_HOLYCROSS,
628        CR_GRANDCROSS,
629        CR_DEVOTION,
630        CR_PROVIDENCE,
631        CR_DEFENDER,
632        CR_SPEARQUICKEN,
633
634        MO_IRONHAND,
635        MO_SPIRITSRECOVERY,
636        MO_CALLSPIRITS,
637        MO_ABSORBSPIRITS,
638        MO_TRIPLEATTACK,
639        MO_BODYRELOCATION,
640        MO_DODGE,
641        MO_INVESTIGATE,
642        MO_FINGEROFFENSIVE,
643        MO_STEELBODY,
644        MO_BLADESTOP,
645        MO_EXPLOSIONSPIRITS,
646        MO_EXTREMITYFIST,
647        MO_CHAINCOMBO,
648        MO_COMBOFINISH,
649
650        SA_ADVANCEDBOOK,
651        SA_CASTCANCEL,
652        SA_MAGICROD,
653        SA_SPELLBREAKER,
654        SA_FREECAST,
655        SA_AUTOSPELL,
656        SA_FLAMELAUNCHER,
657        SA_FROSTWEAPON,
658        SA_LIGHTNINGLOADER,
659        SA_SEISMICWEAPON,
660        SA_DRAGONOLOGY,
661        SA_VOLCANO,
662        SA_DELUGE,
663        SA_VIOLENTGALE,
664        SA_LANDPROTECTOR,
665        SA_DISPELL,
666        SA_ABRACADABRA,
667        SA_MONOCELL,
668        SA_CLASSCHANGE,
669        SA_SUMMONMONSTER,
670        SA_REVERSEORCISH,
671        SA_DEATH,
672        SA_FORTUNE,
673        SA_TAMINGMONSTER,
674        SA_QUESTION,
675        SA_GRAVITY,
676        SA_LEVELUP,
677        SA_INSTANTDEATH,
678        SA_FULLRECOVERY,
679        SA_COMA,
680
681        BD_ADAPTATION,
682        BD_ENCORE,
683        BD_LULLABY,
684        BD_RICHMANKIM,
685        BD_ETERNALCHAOS,
686        BD_DRUMBATTLEFIELD,
687        BD_RINGNIBELUNGEN,
688        BD_ROKISWEIL,
689        BD_INTOABYSS,
690        BD_SIEGFRIED,
691        BD_RAGNAROK,
692
693        BA_MUSICALLESSON,
694        BA_MUSICALSTRIKE,
695        BA_DISSONANCE,
696        BA_FROSTJOKER,
697        BA_WHISTLE,
698        BA_ASSASSINCROSS,
699        BA_POEMBRAGI,
700        BA_APPLEIDUN,
701
702        DC_DANCINGLESSON,
703        DC_THROWARROW,
704        DC_UGLYDANCE,
705        DC_SCREAM,
706        DC_HUMMING,
707        DC_DONTFORGETME,
708        DC_FORTUNEKISS,
709        DC_SERVICEFORYOU,
710
711        NPC_RANDOMMOVE,
712        NPC_SPEEDUP,
713        NPC_REVENGE,
714
715        WE_MALE,
716        WE_FEMALE,
717        WE_CALLPARTNER,
718
719        ITM_TOMAHAWK,
720
721        NPC_DARKCROSS,
722        NPC_GRANDDARKNESS,
723        NPC_DARKSTRIKE,
724        NPC_DARKTHUNDER,
725        NPC_STOP,
726        NPC_WEAPONBRAKER,
727        NPC_ARMORBRAKE,
728        NPC_HELMBRAKE,
729        NPC_SHIELDBRAKE,
730        NPC_UNDEADATTACK,
731        NPC_CHANGEUNDEAD,
732        NPC_POWERUP,
733        NPC_AGIUP,
734        NPC_SIEGEMODE,
735        NPC_CALLSLAVE,
736        NPC_INVISIBLE,
737        NPC_RUN,
738
739        LK_AURABLADE,
740        LK_PARRYING,
741        LK_CONCENTRATION,
742        LK_TENSIONRELAX,
743        LK_BERSERK,
744        LK_FURY,
745        HP_ASSUMPTIO,
746        HP_BASILICA,
747        HP_MEDITATIO,
748        HW_SOULDRAIN,
749        HW_MAGICCRASHER,
750        HW_MAGICPOWER,
751        PA_PRESSURE,
752        PA_SACRIFICE,
753        PA_GOSPEL,
754        CH_PALMSTRIKE,
755        CH_TIGERFIST,
756        CH_CHAINCRUSH,
757        PF_HPCONVERSION,
758        PF_SOULCHANGE,
759        PF_SOULBURN,
760        ASC_KATAR,
761        ASC_HALLUCINATION,
762        ASC_EDP,
763        ASC_BREAKER,
764        SN_SIGHT,
765        SN_FALCONASSAULT,
766        SN_SHARPSHOOTING,
767        SN_WINDWALK,
768        WS_MELTDOWN,
769        WS_CREATECOIN,
770        WS_CREATENUGGET,
771        WS_CARTBOOST,
772        WS_SYSTEMCREATE,
773        ST_CHASEWALK,
774        ST_REJECTSWORD,
775        ST_STEALBACKPACK,
776        CR_ALCHEMY,
777        CR_SYNTHESISPOTION,
778        CG_ARROWVULCAN,
779        CG_MOONLIT,
780        CG_MARIONETTE,
781        LK_SPIRALPIERCE,
782        LK_HEADCRUSH,
783        LK_JOINTBEAT,
784        HW_NAPALMVULCAN,
785        CH_SOULCOLLECT,
786        PF_MINDBREAKER,
787        PF_MEMORIZE,
788        PF_FOGWALL,
789        PF_SPIDERWEB,
790        ASC_METEORASSAULT,
791        ASC_CDP,
792        WE_BABY,
793        WE_CALLPARENT,
794        WE_CALLBABY,
795
796        TK_RUN,
797        TK_READYSTORM,
798        TK_STORMKICK,
799        TK_READYDOWN,
800        TK_DOWNKICK,
801        TK_READYTURN,
802        TK_TURNKICK,
803        TK_READYCOUNTER,
804        TK_COUNTER,
805        TK_DODGE,
806        TK_JUMPKICK,
807        TK_HPTIME,
808        TK_SPTIME,
809        TK_POWER,
810        TK_SEVENWIND,
811        TK_HIGHJUMP,
812        SG_FEEL,
813        SG_SUN_WARM,
814        SG_MOON_WARM,
815        SG_STAR_WARM,
816        SG_SUN_COMFORT,
817        SG_MOON_COMFORT,
818        SG_STAR_COMFORT,
819        SG_HATE,
820        SG_SUN_ANGER,
821        SG_MOON_ANGER,
822        SG_STAR_ANGER,
823        SG_SUN_BLESS,
824        SG_MOON_BLESS,
825        SG_STAR_BLESS,
826        SG_DEVIL,
827        SG_FRIEND,
828        SG_KNOWLEDGE,
829        SG_FUSION,
830        SL_ALCHEMIST,
831        AM_BERSERKPITCHER,
832        SL_MONK,
833        SL_STAR,
834        SL_SAGE,
835        SL_CRUSADER,
836        SL_SUPERNOVICE,
837        SL_KNIGHT,
838        SL_WIZARD,
839        SL_PRIEST,
840        SL_BARDDANCER,
841        SL_ROGUE,
842        SL_ASSASIN,
843        SL_BLACKSMITH,
844        BS_ADRENALINE2,
845        SL_HUNTER,
846        SL_SOULLINKER,
847        SL_KAIZEL,
848        SL_KAAHI,
849        SL_KAUPE,
850        SL_KAITE,
851        SL_KAINA,
852        SL_STIN,
853        SL_STUN,
854        SL_SMA,
855        SL_SWOO,
856        SL_SKE,
857        SL_SKA,
858
859        SM_SELFPROVOKE,
860        NPC_EMOTION_ON, 
861        ST_PRESERVE,
862        ST_FULLSTRIP,
863        WS_WEAPONREFINE,
864        CR_SLIMPITCHER,
865        CR_FULLPROTECTION,
866        PA_SHIELDCHAIN,
867        HP_MANARECHARGE,
868        PF_DOUBLECASTING,
869        HW_GANBANTEIN,
870        HW_GRAVITATION,
871        WS_CARTTERMINATION,
872        WS_OVERTHRUSTMAX,
873        CG_LONGINGFREEDOM,
874        CG_HERMODE,
875        CG_TAROTCARD,
876        CR_ACIDDEMONSTRATION,
877        CR_CULTIVATION,
878        ITEM_ENCHANTARMS,
879        TK_MISSION,
880        SL_HIGH,
881        KN_ONEHAND,
882        AM_TWILIGHT1,
883        AM_TWILIGHT2,
884        AM_TWILIGHT3,
885        HT_POWER,
886        GS_GLITTERING,
887        GS_FLING,
888        GS_TRIPLEACTION,
889        GS_BULLSEYE,
890        GS_MADNESSCANCEL,
891        GS_ADJUSTMENT,
892        GS_INCREASING,
893        GS_MAGICALBULLET,
894        GS_CRACKER,
895        GS_SINGLEACTION,
896        GS_SNAKEEYE,
897        GS_CHAINACTION,
898        GS_TRACKING,
899        GS_DISARM,
900        GS_PIERCINGSHOT,
901        GS_RAPIDSHOWER,
902        GS_DESPERADO,
903        GS_GATLINGFEVER,
904        GS_DUST,
905        GS_FULLBUSTER,
906        GS_SPREADATTACK,
907        GS_GROUNDDRIFT,
908        NJ_TOBIDOUGU,
909        NJ_SYURIKEN,
910        NJ_KUNAI,
911        NJ_HUUMA,
912        NJ_ZENYNAGE,
913        NJ_TATAMIGAESHI,
914        NJ_KASUMIKIRI,
915        NJ_SHADOWJUMP,
916        NJ_KIRIKAGE,
917        NJ_UTSUSEMI,
918        NJ_BUNSINJYUTSU,
919        NJ_NINPOU,
920        NJ_KOUENKA,
921        NJ_KAENSIN,
922        NJ_BAKUENRYU,
923        NJ_HYOUSENSOU,
924        NJ_SUITON,
925        NJ_HYOUSYOURAKU,
926        NJ_HUUJIN,
927        NJ_RAIGEKISAI,
928        NJ_KAMAITACHI,
929        NJ_NEN,
930        NJ_ISSEN,
931
932        NPC_EARTHQUAKE = 653,
933        NPC_FIREBREATH,
934        NPC_ICEBREATH,
935        NPC_THUNDERBREATH,
936        NPC_ACIDBREATH,
937        NPC_DARKNESSBREATH,
938        NPC_DRAGONFEAR,
939        NPC_BLEEDING,
940        NPC_PULSESTRIKE,
941        NPC_HELLJUDGEMENT,
942        NPC_WIDESILENCE,
943        NPC_WIDEFREEZE,
944        NPC_WIDEBLEEDING,
945        NPC_WIDESTONE,
946        NPC_WIDECONFUSE,
947        NPC_WIDESLEEP,
948        NPC_WIDESIGHT,
949        NPC_EVILLAND,
950        NPC_MAGICMIRROR,
951        NPC_SLOWCAST,
952        NPC_CRITICALWOUND,
953        NPC_EXPULSION,
954        NPC_STONESKIN,
955        NPC_ANTIMAGIC,
956        NPC_WIDECURSE,
957        NPC_WIDESTUN,
958        NPC_VAMPIRE_GIFT,
959        NPC_WIDESOULDRAIN,
960
961        ALL_INCCARRY = 681,
962
963        //Custom Jobs (blackmagic)
964        AD_PWBLIND = 700,       // Custom Skills [Brainstorm]
965        AD_PWFEAR,
966        AD_DARKHEAL,
967        AD_BLOODPACT,
968        AD_LUST,
969        AD_FERVOR,
970        AD_PROFANE,
971        AD_DARKFAITH,
972        AD_FAMILIAR,
973        AD_SUMMONS,
974
975        NC_PHYLACTERY, //710
976        NC_UNDEAD,
977        NC_DEATHHAND,
978        NC_GHOULTOUCH,
979        NC_SKELETON,
980        NC_ZOMBIE,
981        NC_ARCHER,
982        NC_MUMMY,
983        NC_GHOST,
984        NC_SHADOW,
985        NC_WRAITH,
986        NC_REQUIEM,
987        NC_DARKMOON,
988        NC_PWSUFFER,
989        NC_DECREPIFY,
990        NC_DRAINLIFE,
991        NC_DEATHPACT,
992
993        ALL_ATFIELD, //GM SKILL
994
995        WL_CURSETONGUES =732, //732
996        WL_CURSEDOOM,
997        WL_CURSEEXHAUST,
998        WL_CURSEWEAKNESS,
999        WL_SEARING,
1000        WL_HELLFIRE,
1001        WL_CONFLAGRATE,
1002        WL_IMMOLATE,
1003        WL_SHADOWBOLT,
1004        WL_SHADOWBURN,
1005        WL_HOWLOFPAIN,
1006        WL_DEMONOLOGY,
1007        WL_HOWLOFTERROR,
1008        WL_PWAGONY,
1009        WL_OVERWHELMING,
1010        WL_SOULSTEAL,
1011        WL_DRAINSOUL,
1012        WL_CORRUPTION, //749
1013// STOP! Cant use 800 (homun skills) NOR 900 (guild skills)
1014       
1015        //Custom Job End
1016
1017
1018        KN_CHARGEATK = 1001,
1019        CR_SHRINK,
1020        AS_SONICACCEL,
1021        AS_VENOMKNIFE,
1022        RG_CLOSECONFINE,
1023        WZ_SIGHTBLASTER,
1024        SA_CREATECON,
1025        SA_ELEMENTWATER,
1026        HT_PHANTASMIC,
1027        BA_PANGVOICE,
1028        DC_WINKCHARM,
1029        BS_UNFAIRLYTRICK,
1030        BS_GREED,
1031        PR_REDEMPTIO,
1032        MO_KITRANSLATION,
1033        MO_BALKYOUNG,
1034        SA_ELEMENTGROUND,
1035        SA_ELEMENTFIRE,
1036        SA_ELEMENTWIND,
1037
1038        HLIF_HEAL = 8001,
1039        HLIF_AVOID,
1040        HLIF_BRAIN,
1041        HLIF_CHANGE,
1042        HAMI_CASTLE,
1043        HAMI_DEFENCE,
1044        HAMI_SKIN,
1045        HAMI_BLOODLUST,
1046        HFLI_MOON,
1047        HFLI_FLEET,
1048        HFLI_SPEED,
1049        HFLI_SBR44,
1050        HVAN_CAPRICE,
1051        HVAN_CHAOTIC,
1052        HVAN_INSTRUCT,
1053        HVAN_EXPLOSION,
1054};
1055
1056enum {
1057        UNT_SAFETYWALL = 0x7e,
1058        UNT_FIREWALL,
1059        UNT_WARP_WAITING,
1060        UNT_WARP_ACTIVE,
1061        //0x82
1062        UNT_SANCTUARY = 0x83,
1063        UNT_MAGNUS,
1064        UNT_PNEUMA,
1065        UNT_ATTACK_SKILLS, //These show no effect on the client, therefore can be used for attack skills.
1066        UNT_FIREPILLAR_WAITING,
1067        UNT_FIREPILLAR_ACTIVE,
1068        //0x89
1069        //0x8a
1070        //0x8b
1071        UNT_USED_TRAPS = 0x8c,
1072        UNT_ICEWALL,
1073        UNT_QUAGMIRE,
1074        UNT_BLASTMINE,
1075        UNT_SKIDTRAP,
1076        UNT_ANKLESNARE,
1077        UNT_VENOMDUST,
1078        UNT_LANDMINE,
1079        UNT_SHOCKWAVE,
1080        UNT_SANDMAN,
1081        UNT_FLASHER,
1082        UNT_FREEZINGTRAP,
1083        UNT_CLAYMORETRAP,
1084        UNT_TALKIEBOX,
1085        UNT_VOLCANO,
1086        UNT_DELUGE,
1087        UNT_VIOLENTGALE,
1088        UNT_LANDPROTECTOR,
1089        UNT_LULLABY,
1090        UNT_RICHMANKIM,
1091        UNT_ETERNALCHAOS,
1092        UNT_DRUMBATTLEFIELD,
1093        UNT_RINGNIBELUNGEN,
1094        UNT_ROKISWEIL,
1095        UNT_INTOABYSS,
1096        UNT_SIEGFRIED,
1097        UNT_DISSONANCE,
1098        UNT_WHISTLE,
1099        UNT_ASSASSINCROSS,
1100        UNT_POEMBRAGI,
1101        UNT_APPLEIDUN,
1102        UNT_UGLYDANCE,
1103        UNT_HUMMING,
1104        UNT_DONTFORGETME,
1105        UNT_FORTUNEKISS,
1106        UNT_SERVICEFORYOU,
1107        UNT_GRAFFITI,
1108        UNT_DEMONSTRATION,
1109        UNT_CALLFAMILY,
1110        UNT_GOSPEL,
1111        UNT_BASILICA,
1112        UNT_MOONLIT,//0xb5 //I HOPE this one doesn't shows any effects
1113        UNT_FOGWALL = 0xb6,
1114        UNT_SPIDERWEB,
1115        UNT_GRAVITATION,
1116        UNT_HERMODE,
1117        UNT_DESPERADO, //0xba //Temporary setting until correct value is found.
1118        UNT_SUITON = 0xbb,
1119        UNT_TATAMIGAESHI,
1120        UNT_KAENSIN,
1121        UNT_GROUNDDRIFT_WIND,
1122        UNT_GROUNDDRIFT_DARK,
1123        UNT_GROUNDDRIFT_POISON,
1124        UNT_GROUNDDRIFT_WATER,
1125        UNT_GROUNDDRIFT_FIRE,
1126        //0xc3 ?
1127        //0xc4 ?
1128        //0xc5 ?
1129        //0xc6 ?
1130        UNT_EVILLAND = 0xc7,
1131};
1132
1133#endif /* _SKILL_H_ */
Note: See TracBrowser for help on using the browser.