root/src/map/skill.h @ 1

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