root/src/map/skill.h @ 23

Revision 22, 25.3 kB (checked in by jinshiro, 17 years ago)
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
323int skill_additem(struct block_list* src, struct block_list *bl, int itemid, int amount); // Item giver func [Brain]
324
325
326// mobƒXƒLƒ‹‚Ì‚œ‚ß
327int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
328int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
329int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skilllv,unsigned int tick,int flag);
330int skill_blockpc_start (struct map_session_data*,int,int);     // [celest]
331int skill_blockmerc_start (struct homun_data*,int,int); //[orn]
332
333// ƒXƒLƒ‹U?ˆêЇ?—
334int 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 );
335
336void skill_reload(void);
337
338enum {
339        ST_NONE,
340        ST_HIDING,
341        ST_CLOAKING,
342        ST_HIDDEN,
343        ST_RIDING,
344        ST_FALCON,
345        ST_CART,
346        ST_SHIELD,
347        ST_SIGHT,
348        ST_EXPLOSIONSPIRITS,
349        ST_CARTBOOST,
350        ST_RECOV_WEIGHT_RATE,
351        ST_MOVE_ENABLE,
352        ST_WATER,
353};
354
355enum s_skill {
356        NV_BASIC = 1,
357
358        SM_SWORD,
359        SM_TWOHAND,
360        SM_RECOVERY,
361        SM_BASH,
362        SM_PROVOKE,
363        SM_MAGNUM,
364        SM_ENDURE,
365
366        MG_SRECOVERY,
367        MG_SIGHT,
368        MG_NAPALMBEAT,
369        MG_SAFETYWALL,
370        MG_SOULSTRIKE,
371        MG_COLDBOLT,
372        MG_FROSTDIVER,
373        MG_STONECURSE,
374        MG_FIREBALL,
375        MG_FIREWALL,
376        MG_FIREBOLT,
377        MG_LIGHTNINGBOLT,
378        MG_THUNDERSTORM,
379
380        AL_DP,
381        AL_DEMONBANE,
382        AL_RUWACH,
383        AL_PNEUMA,
384        AL_TELEPORT,
385        AL_WARP,
386        AL_HEAL,
387        AL_INCAGI,
388        AL_DECAGI,
389        AL_HOLYWATER,
390        AL_CRUCIS,
391        AL_ANGELUS,
392        AL_BLESSING,
393        AL_CURE,
394
395        MC_INCCARRY,
396        MC_DISCOUNT,
397        MC_OVERCHARGE,
398        MC_PUSHCART,
399        MC_IDENTIFY,
400        MC_VENDING,
401        MC_MAMMONITE,
402
403        AC_OWL,
404        AC_VULTURE,
405        AC_CONCENTRATION,
406        AC_DOUBLE,
407        AC_SHOWER,
408
409        TF_DOUBLE,
410        TF_MISS,
411        TF_STEAL,
412        TF_HIDING,
413        TF_POISON,
414        TF_DETOXIFY,
415
416        ALL_RESURRECTION,
417
418        KN_SPEARMASTERY,
419        KN_PIERCE,
420        KN_BRANDISHSPEAR,
421        KN_SPEARSTAB,
422        KN_SPEARBOOMERANG,
423        KN_TWOHANDQUICKEN,
424        KN_AUTOCOUNTER,
425        KN_BOWLINGBASH,
426        KN_RIDING,
427        KN_CAVALIERMASTERY,
428
429        PR_MACEMASTERY,
430        PR_IMPOSITIO,
431        PR_SUFFRAGIUM,
432        PR_ASPERSIO,
433        PR_BENEDICTIO,
434        PR_SANCTUARY,
435        PR_SLOWPOISON,
436        PR_STRECOVERY,
437        PR_KYRIE,
438        PR_MAGNIFICAT,
439        PR_GLORIA,
440        PR_LEXDIVINA,
441        PR_TURNUNDEAD,
442        PR_LEXAETERNA,
443        PR_MAGNUS,
444
445        WZ_FIREPILLAR,
446        WZ_SIGHTRASHER,
447        WZ_FIREIVY,
448        WZ_METEOR,
449        WZ_JUPITEL,
450        WZ_VERMILION,
451        WZ_WATERBALL,
452        WZ_ICEWALL,
453        WZ_FROSTNOVA,
454        WZ_STORMGUST,
455        WZ_EARTHSPIKE,
456        WZ_HEAVENDRIVE,
457        WZ_QUAGMIRE,
458        WZ_ESTIMATION,
459
460        BS_IRON,
461        BS_STEEL,
462        BS_ENCHANTEDSTONE,
463        BS_ORIDEOCON,
464        BS_DAGGER,
465        BS_SWORD,
466        BS_TWOHANDSWORD,
467        BS_AXE,
468        BS_MACE,
469        BS_KNUCKLE,
470        BS_SPEAR,
471        BS_HILTBINDING,
472        BS_FINDINGORE,
473        BS_WEAPONRESEARCH,
474        BS_REPAIRWEAPON,
475        BS_SKINTEMPER,
476        BS_HAMMERFALL,
477        BS_ADRENALINE,
478        BS_WEAPONPERFECT,
479        BS_OVERTHRUST,
480        BS_MAXIMIZE,
481
482        HT_SKIDTRAP,
483        HT_LANDMINE,
484        HT_ANKLESNARE,
485        HT_SHOCKWAVE,
486        HT_SANDMAN,
487        HT_FLASHER,
488        HT_FREEZINGTRAP,
489        HT_BLASTMINE,
490        HT_CLAYMORETRAP,
491        HT_REMOVETRAP,
492        HT_TALKIEBOX,
493        HT_BEASTBANE,
494        HT_FALCON,
495        HT_STEELCROW,
496        HT_BLITZBEAT,
497        HT_DETECTING,
498        HT_SPRINGTRAP,
499
500        AS_RIGHT,
501        AS_LEFT,
502        AS_KATAR,
503        AS_CLOAKING,
504        AS_SONICBLOW,
505        AS_GRIMTOOTH,
506        AS_ENCHANTPOISON,
507        AS_POISONREACT,
508        AS_VENOMDUST,
509        AS_SPLASHER,
510
511        NV_FIRSTAID,
512        NV_TRICKDEAD,
513        SM_MOVINGRECOVERY,
514        SM_FATALBLOW,
515        SM_AUTOBERSERK,
516        AC_MAKINGARROW,
517        AC_CHARGEARROW,
518        TF_SPRINKLESAND,
519        TF_BACKSLIDING,
520        TF_PICKSTONE,
521        TF_THROWSTONE,
522        MC_CARTREVOLUTION,
523        MC_CHANGECART,
524        MC_LOUD,
525        AL_HOLYLIGHT,
526        MG_ENERGYCOAT,
527
528        NPC_PIERCINGATT,
529        NPC_MENTALBREAKER,
530        NPC_RANGEATTACK,
531        NPC_ATTRICHANGE,
532        NPC_CHANGEWATER,
533        NPC_CHANGEGROUND,
534        NPC_CHANGEFIRE,
535        NPC_CHANGEWIND,
536        NPC_CHANGEPOISON,
537        NPC_CHANGEHOLY,
538        NPC_CHANGEDARKNESS,
539        NPC_CHANGETELEKINESIS,
540        NPC_CRITICALSLASH,
541        NPC_COMBOATTACK,
542        NPC_GUIDEDATTACK,
543        NPC_SELFDESTRUCTION,
544        NPC_SPLASHATTACK,
545        NPC_SUICIDE,
546        NPC_POISON,
547        NPC_BLINDATTACK,
548        NPC_SILENCEATTACK,
549        NPC_STUNATTACK,
550        NPC_PETRIFYATTACK,
551        NPC_CURSEATTACK,
552        NPC_SLEEPATTACK,
553        NPC_RANDOMATTACK,
554        NPC_WATERATTACK,
555        NPC_GROUNDATTACK,
556        NPC_FIREATTACK,
557        NPC_WINDATTACK,
558        NPC_POISONATTACK,
559        NPC_HOLYATTACK,
560        NPC_DARKNESSATTACK,
561        NPC_TELEKINESISATTACK,
562        NPC_MAGICALATTACK,
563        NPC_METAMORPHOSIS,
564        NPC_PROVOCATION,
565        NPC_SMOKING,
566        NPC_SUMMONSLAVE,
567        NPC_EMOTION,
568        NPC_TRANSFORMATION,
569        NPC_BLOODDRAIN,
570        NPC_ENERGYDRAIN,
571        NPC_KEEPING,
572        NPC_DARKBREATH,
573        NPC_DARKBLESSING,
574        NPC_BARRIER,
575        NPC_DEFENDER,
576        NPC_LICK,
577        NPC_HALLUCINATION,
578        NPC_REBIRTH,
579        NPC_SUMMONMONSTER,
580
581        RG_SNATCHER,
582        RG_STEALCOIN,
583        RG_BACKSTAP,
584        RG_TUNNELDRIVE,
585        RG_RAID,
586        RG_STRIPWEAPON,
587        RG_STRIPSHIELD,
588        RG_STRIPARMOR,
589        RG_STRIPHELM,
590        RG_INTIMIDATE,
591        RG_GRAFFITI,
592        RG_FLAGGRAFFITI,
593        RG_CLEANER,
594        RG_GANGSTER,
595        RG_COMPULSION,
596        RG_PLAGIARISM,
597
598        AM_AXEMASTERY,
599        AM_LEARNINGPOTION,
600        AM_PHARMACY,
601        AM_DEMONSTRATION,
602        AM_ACIDTERROR,
603        AM_POTIONPITCHER,
604        AM_CANNIBALIZE,
605        AM_SPHEREMINE,
606        AM_CP_WEAPON,
607        AM_CP_SHIELD,
608        AM_CP_ARMOR,
609        AM_CP_HELM,
610        AM_BIOETHICS,
611        AM_BIOTECHNOLOGY,
612        AM_CREATECREATURE,
613        AM_CULTIVATION,
614        AM_FLAMECONTROL,
615        AM_CALLHOMUN,
616        AM_REST,
617        AM_DRILLMASTER,
618        AM_HEALHOMUN,
619        AM_RESURRECTHOMUN,
620
621        CR_TRUST,
622        CR_AUTOGUARD,
623        CR_SHIELDCHARGE,
624        CR_SHIELDBOOMERANG,
625        CR_REFLECTSHIELD,
626        CR_HOLYCROSS,
627        CR_GRANDCROSS,
628        CR_DEVOTION,
629        CR_PROVIDENCE,
630        CR_DEFENDER,
631        CR_SPEARQUICKEN,
632
633        MO_IRONHAND,
634        MO_SPIRITSRECOVERY,
635        MO_CALLSPIRITS,
636        MO_ABSORBSPIRITS,
637        MO_TRIPLEATTACK,
638        MO_BODYRELOCATION,
639        MO_DODGE,
640        MO_INVESTIGATE,
641        MO_FINGEROFFENSIVE,
642        MO_STEELBODY,
643        MO_BLADESTOP,
644        MO_EXPLOSIONSPIRITS,
645        MO_EXTREMITYFIST,
646        MO_CHAINCOMBO,
647        MO_COMBOFINISH,
648
649        SA_ADVANCEDBOOK,
650        SA_CASTCANCEL,
651        SA_MAGICROD,
652        SA_SPELLBREAKER,
653        SA_FREECAST,
654        SA_AUTOSPELL,
655        SA_FLAMELAUNCHER,
656        SA_FROSTWEAPON,
657        SA_LIGHTNINGLOADER,
658        SA_SEISMICWEAPON,
659        SA_DRAGONOLOGY,
660        SA_VOLCANO,
661        SA_DELUGE,
662        SA_VIOLENTGALE,
663        SA_LANDPROTECTOR,
664        SA_DISPELL,
665        SA_ABRACADABRA,
666        SA_MONOCELL,
667        SA_CLASSCHANGE,
668        SA_SUMMONMONSTER,
669        SA_REVERSEORCISH,
670        SA_DEATH,
671        SA_FORTUNE,
672        SA_TAMINGMONSTER,
673        SA_QUESTION,
674        SA_GRAVITY,
675        SA_LEVELUP,
676        SA_INSTANTDEATH,
677        SA_FULLRECOVERY,
678        SA_COMA,
679
680        BD_ADAPTATION,
681        BD_ENCORE,
682        BD_LULLABY,
683        BD_RICHMANKIM,
684        BD_ETERNALCHAOS,
685        BD_DRUMBATTLEFIELD,
686        BD_RINGNIBELUNGEN,
687        BD_ROKISWEIL,
688        BD_INTOABYSS,
689        BD_SIEGFRIED,
690        BD_RAGNAROK,
691
692        BA_MUSICALLESSON,
693        BA_MUSICALSTRIKE,
694        BA_DISSONANCE,
695        BA_FROSTJOKER,
696        BA_WHISTLE,
697        BA_ASSASSINCROSS,
698        BA_POEMBRAGI,
699        BA_APPLEIDUN,
700
701        DC_DANCINGLESSON,
702        DC_THROWARROW,
703        DC_UGLYDANCE,
704        DC_SCREAM,
705        DC_HUMMING,
706        DC_DONTFORGETME,
707        DC_FORTUNEKISS,
708        DC_SERVICEFORYOU,
709
710        NPC_RANDOMMOVE,
711        NPC_SPEEDUP,
712        NPC_REVENGE,
713
714        WE_MALE,
715        WE_FEMALE,
716        WE_CALLPARTNER,
717
718        ITM_TOMAHAWK,
719
720        NPC_DARKCROSS,
721        NPC_GRANDDARKNESS,
722        NPC_DARKSTRIKE,
723        NPC_DARKTHUNDER,
724        NPC_STOP,
725        NPC_WEAPONBRAKER,
726        NPC_ARMORBRAKE,
727        NPC_HELMBRAKE,
728        NPC_SHIELDBRAKE,
729        NPC_UNDEADATTACK,
730        NPC_CHANGEUNDEAD,
731        NPC_POWERUP,
732        NPC_AGIUP,
733        NPC_SIEGEMODE,
734        NPC_CALLSLAVE,
735        NPC_INVISIBLE,
736        NPC_RUN,
737
738        LK_AURABLADE,
739        LK_PARRYING,
740        LK_CONCENTRATION,
741        LK_TENSIONRELAX,
742        LK_BERSERK,
743        LK_FURY,
744        HP_ASSUMPTIO,
745        HP_BASILICA,
746        HP_MEDITATIO,
747        HW_SOULDRAIN,
748        HW_MAGICCRASHER,
749        HW_MAGICPOWER,
750        PA_PRESSURE,
751        PA_SACRIFICE,
752        PA_GOSPEL,
753        CH_PALMSTRIKE,
754        CH_TIGERFIST,
755        CH_CHAINCRUSH,
756        PF_HPCONVERSION,
757        PF_SOULCHANGE,
758        PF_SOULBURN,
759        ASC_KATAR,
760        ASC_HALLUCINATION,
761        ASC_EDP,
762        ASC_BREAKER,
763        SN_SIGHT,
764        SN_FALCONASSAULT,
765        SN_SHARPSHOOTING,
766        SN_WINDWALK,
767        WS_MELTDOWN,
768        WS_CREATECOIN,
769        WS_CREATENUGGET,
770        WS_CARTBOOST,
771        WS_SYSTEMCREATE,
772        ST_CHASEWALK,
773        ST_REJECTSWORD,
774        ST_STEALBACKPACK,
775        CR_ALCHEMY,
776        CR_SYNTHESISPOTION,
777        CG_ARROWVULCAN,
778        CG_MOONLIT,
779        CG_MARIONETTE,
780        LK_SPIRALPIERCE,
781        LK_HEADCRUSH,
782        LK_JOINTBEAT,
783        HW_NAPALMVULCAN,
784        CH_SOULCOLLECT,
785        PF_MINDBREAKER,
786        PF_MEMORIZE,
787        PF_FOGWALL,
788        PF_SPIDERWEB,
789        ASC_METEORASSAULT,
790        ASC_CDP,
791        WE_BABY,
792        WE_CALLPARENT,
793        WE_CALLBABY,
794
795        TK_RUN,
796        TK_READYSTORM,
797        TK_STORMKICK,
798        TK_READYDOWN,
799        TK_DOWNKICK,
800        TK_READYTURN,
801        TK_TURNKICK,
802        TK_READYCOUNTER,
803        TK_COUNTER,
804        TK_DODGE,
805        TK_JUMPKICK,
806        TK_HPTIME,
807        TK_SPTIME,
808        TK_POWER,
809        TK_SEVENWIND,
810        TK_HIGHJUMP,
811        SG_FEEL,
812        SG_SUN_WARM,
813        SG_MOON_WARM,
814        SG_STAR_WARM,
815        SG_SUN_COMFORT,
816        SG_MOON_COMFORT,
817        SG_STAR_COMFORT,
818        SG_HATE,
819        SG_SUN_ANGER,
820        SG_MOON_ANGER,
821        SG_STAR_ANGER,
822        SG_SUN_BLESS,
823        SG_MOON_BLESS,
824        SG_STAR_BLESS,
825        SG_DEVIL,
826        SG_FRIEND,
827        SG_KNOWLEDGE,
828        SG_FUSION,
829        SL_ALCHEMIST,
830        AM_BERSERKPITCHER,
831        SL_MONK,
832        SL_STAR,
833        SL_SAGE,
834        SL_CRUSADER,
835        SL_SUPERNOVICE,
836        SL_KNIGHT,
837        SL_WIZARD,
838        SL_PRIEST,
839        SL_BARDDANCER,
840        SL_ROGUE,
841        SL_ASSASIN,
842        SL_BLACKSMITH,
843        BS_ADRENALINE2,
844        SL_HUNTER,
845        SL_SOULLINKER,
846        SL_KAIZEL,
847        SL_KAAHI,
848        SL_KAUPE,
849        SL_KAITE,
850        SL_KAINA,
851        SL_STIN,
852        SL_STUN,
853        SL_SMA,
854        SL_SWOO,
855        SL_SKE,
856        SL_SKA,
857
858        SM_SELFPROVOKE,
859        NPC_EMOTION_ON, 
860        ST_PRESERVE,
861        ST_FULLSTRIP,
862        WS_WEAPONREFINE,
863        CR_SLIMPITCHER,
864        CR_FULLPROTECTION,
865        PA_SHIELDCHAIN,
866        HP_MANARECHARGE,
867        PF_DOUBLECASTING,
868        HW_GANBANTEIN,
869        HW_GRAVITATION,
870        WS_CARTTERMINATION,
871        WS_OVERTHRUSTMAX,
872        CG_LONGINGFREEDOM,
873        CG_HERMODE,
874        CG_TAROTCARD,
875        CR_ACIDDEMONSTRATION,
876        CR_CULTIVATION,
877        ITEM_ENCHANTARMS,
878        TK_MISSION,
879        SL_HIGH,
880        KN_ONEHAND,
881        AM_TWILIGHT1,
882        AM_TWILIGHT2,
883        AM_TWILIGHT3,
884        HT_POWER,
885        GS_GLITTERING,
886        GS_FLING,
887        GS_TRIPLEACTION,
888        GS_BULLSEYE,
889        GS_MADNESSCANCEL,
890        GS_ADJUSTMENT,
891        GS_INCREASING,
892        GS_MAGICALBULLET,
893        GS_CRACKER,
894        GS_SINGLEACTION,
895        GS_SNAKEEYE,
896        GS_CHAINACTION,
897        GS_TRACKING,
898        GS_DISARM,
899        GS_PIERCINGSHOT,
900        GS_RAPIDSHOWER,
901        GS_DESPERADO,
902        GS_GATLINGFEVER,
903        GS_DUST,
904        GS_FULLBUSTER,
905        GS_SPREADATTACK,
906        GS_GROUNDDRIFT,
907        NJ_TOBIDOUGU,
908        NJ_SYURIKEN,
909        NJ_KUNAI,
910        NJ_HUUMA,
911        NJ_ZENYNAGE,
912        NJ_TATAMIGAESHI,
913        NJ_KASUMIKIRI,
914        NJ_SHADOWJUMP,
915        NJ_KIRIKAGE,
916        NJ_UTSUSEMI,
917        NJ_BUNSINJYUTSU,
918        NJ_NINPOU,
919        NJ_KOUENKA,
920        NJ_KAENSIN,
921        NJ_BAKUENRYU,
922        NJ_HYOUSENSOU,
923        NJ_SUITON,
924        NJ_HYOUSYOURAKU,
925        NJ_HUUJIN,
926        NJ_RAIGEKISAI,
927        NJ_KAMAITACHI,
928        NJ_NEN,
929        NJ_ISSEN,
930
931        NPC_EARTHQUAKE = 653,
932        NPC_FIREBREATH,
933        NPC_ICEBREATH,
934        NPC_THUNDERBREATH,
935        NPC_ACIDBREATH,
936        NPC_DARKNESSBREATH,
937        NPC_DRAGONFEAR,
938        NPC_BLEEDING,
939        NPC_PULSESTRIKE,
940        NPC_HELLJUDGEMENT,
941        NPC_WIDESILENCE,
942        NPC_WIDEFREEZE,
943        NPC_WIDEBLEEDING,
944        NPC_WIDESTONE,
945        NPC_WIDECONFUSE,
946        NPC_WIDESLEEP,
947        NPC_WIDESIGHT,
948        NPC_EVILLAND,
949        NPC_MAGICMIRROR,
950        NPC_SLOWCAST,
951        NPC_CRITICALWOUND,
952        NPC_EXPULSION,
953        NPC_STONESKIN,
954        NPC_ANTIMAGIC,
955        NPC_WIDECURSE,
956        NPC_WIDESTUN,
957        NPC_VAMPIRE_GIFT,
958        NPC_WIDESOULDRAIN,
959
960        ALL_INCCARRY = 681,
961        AD_PWBLIND = 700,       // Custom Skills [Brainstorm]
962        AD_PWFEAR,
963        AD_DARKHEAL,
964        AD_BLOODPACT,
965        AD_LUST,
966        AD_FERVOR,
967        AD_PROFANE,
968        AD_DARKFAITH,
969        AD_FAMILIAR,
970        AD_SUMMONS,
971
972        NC_PHYLACTERY, //710
973        NC_UNDEAD,
974        NC_DEATHHAND,
975        NC_GHOULTOUCH,
976        NC_SKELETON,
977        NC_ZOMBIE,
978        NC_ARCHER,
979        NC_MUMMY,
980        NC_GHOST,
981        NC_SHADOW,
982        NC_WRAITH,
983        NC_REQUIEM,
984        NC_DARKMOON,
985        NC_PWSUFFER,
986        NC_DECREPIFY,
987        NC_DRAINLIFE,
988        NC_DEATHPACT,
989
990        ALL_ATFIELD, //GM SKILL
991
992        WL_CURSETONGUES, //732
993        WL_CURSEDOOM,
994        WL_CURSEEXHAUST,
995        WL_CURSEWEAKNESS,
996        WL_SEARING,
997        WL_HELLFIRE,
998        WL_CONFLAGRATE,
999        WL_IMMOLATE,
1000        WL_SHADOWBOLT,
1001        WL_SHADOWBURN,
1002        WL_HOWLOFPAIN,
1003        WL_DEMONOLOGY,
1004        WL_HOWLOFTERROR,
1005        WL_PWAGONY,
1006        WL_OVERWHELMING,
1007        WL_SOULSTEAL,
1008        WL_DRAINSOUL,
1009        WL_CORRUPTION, //749
1010
1011
1012        KN_CHARGEATK = 1001,
1013        CR_SHRINK,
1014        AS_SONICACCEL,
1015        AS_VENOMKNIFE,
1016        RG_CLOSECONFINE,
1017        WZ_SIGHTBLASTER,
1018        SA_CREATECON,
1019        SA_ELEMENTWATER,
1020        HT_PHANTASMIC,
1021        BA_PANGVOICE,
1022        DC_WINKCHARM,
1023        BS_UNFAIRLYTRICK,
1024        BS_GREED,
1025        PR_REDEMPTIO,
1026        MO_KITRANSLATION,
1027        MO_BALKYOUNG,
1028        SA_ELEMENTGROUND,
1029        SA_ELEMENTFIRE,
1030        SA_ELEMENTWIND,
1031
1032        HLIF_HEAL = 8001,
1033        HLIF_AVOID,
1034        HLIF_BRAIN,
1035        HLIF_CHANGE,
1036        HAMI_CASTLE,
1037        HAMI_DEFENCE,
1038        HAMI_SKIN,
1039        HAMI_BLOODLUST,
1040        HFLI_MOON,
1041        HFLI_FLEET,
1042        HFLI_SPEED,
1043        HFLI_SBR44,
1044        HVAN_CAPRICE,
1045        HVAN_CHAOTIC,
1046        HVAN_INSTRUCT,
1047        HVAN_EXPLOSION,
1048};
1049
1050enum {
1051        UNT_SAFETYWALL = 0x7e,
1052        UNT_FIREWALL,
1053        UNT_WARP_WAITING,
1054        UNT_WARP_ACTIVE,
1055        //0x82
1056        UNT_SANCTUARY = 0x83,
1057        UNT_MAGNUS,
1058        UNT_PNEUMA,
1059        UNT_ATTACK_SKILLS, //These show no effect on the client, therefore can be used for attack skills.
1060        UNT_FIREPILLAR_WAITING,
1061        UNT_FIREPILLAR_ACTIVE,
1062        //0x89
1063        //0x8a
1064        //0x8b
1065        UNT_USED_TRAPS = 0x8c,
1066        UNT_ICEWALL,
1067        UNT_QUAGMIRE,
1068        UNT_BLASTMINE,
1069        UNT_SKIDTRAP,
1070        UNT_ANKLESNARE,
1071        UNT_VENOMDUST,
1072        UNT_LANDMINE,
1073        UNT_SHOCKWAVE,
1074        UNT_SANDMAN,
1075        UNT_FLASHER,
1076        UNT_FREEZINGTRAP,
1077        UNT_CLAYMORETRAP,
1078        UNT_TALKIEBOX,
1079        UNT_VOLCANO,
1080        UNT_DELUGE,
1081        UNT_VIOLENTGALE,
1082        UNT_LANDPROTECTOR,
1083        UNT_LULLABY,
1084        UNT_RICHMANKIM,
1085        UNT_ETERNALCHAOS,
1086        UNT_DRUMBATTLEFIELD,
1087        UNT_RINGNIBELUNGEN,
1088        UNT_ROKISWEIL,
1089        UNT_INTOABYSS,
1090        UNT_SIEGFRIED,
1091        UNT_DISSONANCE,
1092        UNT_WHISTLE,
1093        UNT_ASSASSINCROSS,
1094        UNT_POEMBRAGI,
1095        UNT_APPLEIDUN,
1096        UNT_UGLYDANCE,
1097        UNT_HUMMING,
1098        UNT_DONTFORGETME,
1099        UNT_FORTUNEKISS,
1100        UNT_SERVICEFORYOU,
1101        UNT_GRAFFITI,
1102        UNT_DEMONSTRATION,
1103        UNT_CALLFAMILY,
1104        UNT_GOSPEL,
1105        UNT_BASILICA,
1106        UNT_MOONLIT,//0xb5 //I HOPE this one doesn't shows any effects
1107        UNT_FOGWALL = 0xb6,
1108        UNT_SPIDERWEB,
1109        UNT_GRAVITATION,
1110        UNT_HERMODE,
1111        UNT_DESPERADO, //0xba //Temporary setting until correct value is found.
1112        UNT_SUITON = 0xbb,
1113        UNT_TATAMIGAESHI,
1114        UNT_KAENSIN,
1115        UNT_GROUNDDRIFT_WIND,
1116        UNT_GROUNDDRIFT_DARK,
1117        UNT_GROUNDDRIFT_POISON,
1118        UNT_GROUNDDRIFT_WATER,
1119        UNT_GROUNDDRIFT_FIRE,
1120        //0xc3 ?
1121        //0xc4 ?
1122        //0xc5 ?
1123        //0xc6 ?
1124        UNT_EVILLAND = 0xc7,
1125};
1126
1127#endif /* _SKILL_H_ */
Note: See TracBrowser for help on using the browser.