root/src/map/skill.h @ 19

Revision 19, 26.2 kB (checked in by jinshiro, 17 years ago)

Now Compiles with Cygwin GCC

RevLine 
[1]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
[10]323int skill_additem(struct block_list* src, struct block_list *bl, int itemid, int amount); // Item giver func [Brain]
324
[19]325
[1]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,
[19]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,
[1]971
[19]972<<<<<<< .mine
973        NC_PHYLACTERY, //710
974        NC_UNDEAD,
975        NC_DEATHHAND,
976        NC_GHOULTOUCH,
977        NC_SKELETON,
978        NC_ZOMBIE,
979        NC_ARCHER,
980        NC_MUMMY,
981        NC_GHOST,
982        NC_SHADOW,
983        NC_WRAITH,
984        NC_REQUIEM,
985        NC_DARKMOON,
986        NC_PWSUFFER,
987        NC_DECREPIFY,
988        NC_DRAINLIFE,
989        NC_DEATHPACT,
990=======
[13]991        //Custom Jobs (blackmagic)
992        AD_PWBLIND = 700,       // Custom Skills [Brainstorm]
993        AD_PWFEAR,
994        AD_DARKHEAL,
995        AD_BLOODPACT,
996        AD_LUST,
997        AD_FERVOR,
998        AD_PROFANE,
999        AD_DARKFAITH,
1000        AD_FAMILIAR,
1001        AD_SUMMONS,
1002
1003        NC_PHYLACTERY, //710
1004        NC_UNDEAD,
1005        NC_DEATHHAND,
1006        NC_GHOULTOUCH,
1007        NC_SKELETON,
1008        NC_ZOMBIE,
1009        NC_ARCHER,
1010        NC_MUMMY,
1011        NC_GHOST,
1012        NC_SHADOW,
1013        NC_WRAITH,
1014        NC_REQUIEM,
1015        NC_DARKMOON,
1016        NC_PWSUFFER,
1017        NC_DECREPIFY,
1018        NC_DRAINLIFE,
1019        NC_DEATHPACT,
1020
1021        ALL_ATFIELD, //GM SKILL
1022
1023        WL_CURSETONGUES =732, //732
1024        WL_CURSEDOOM,
1025        WL_CURSEEXHAUST,
1026        WL_CURSEWEAKNESS,
1027        WL_SEARING,
1028        WL_HELLFIRE,
1029        WL_CONFLAGRATE,
1030        WL_IMMOLATE,
1031        WL_SHADOWBOLT,
1032        WL_SHADOWBURN,
1033        WL_HOWLOFPAIN,
1034        WL_DEMONOLOGY,
1035        WL_HOWLOFTERROR,
1036        WL_PWAGONY,
1037        WL_OVERWHELMING,
1038        WL_SOULSTEAL,
1039        WL_DRAINSOUL,
1040        WL_CORRUPTION, //749
1041// STOP! Cant use 800 (homun skills) NOR 900 (guild skills)
[10]1042       
1043        //Custom Job End
[19]1044>>>>>>> .r18
[10]1045
[19]1046        ALL_ATFIELD, //GM SKILL
[10]1047
[19]1048        WL_CURSETONGUES, //732
1049        WL_CURSEDOOM,
1050        WL_CURSEEXHAUST,
1051        WL_CURSEWEAKNESS,
1052        WL_SEARING,
1053        WL_HELLFIRE,
1054        WL_CONFLAGRATE,
1055        WL_IMMOLATE,
1056        WL_SHADOWBOLT,
1057        WL_SHADOWBURN,
1058        WL_HOWLOFPAIN,
1059        WL_DEMONOLOGY,
1060        WL_HOWLOFTERROR,
1061        WL_PWAGONY,
1062        WL_OVERWHELMING,
1063        WL_SOULSTEAL,
1064        WL_DRAINSOUL,
1065        WL_CORRUPTION, //749
1066
1067
[1]1068        KN_CHARGEATK = 1001,
1069        CR_SHRINK,
1070        AS_SONICACCEL,
1071        AS_VENOMKNIFE,
1072        RG_CLOSECONFINE,
1073        WZ_SIGHTBLASTER,
1074        SA_CREATECON,
1075        SA_ELEMENTWATER,
1076        HT_PHANTASMIC,
1077        BA_PANGVOICE,
1078        DC_WINKCHARM,
1079        BS_UNFAIRLYTRICK,
1080        BS_GREED,
1081        PR_REDEMPTIO,
1082        MO_KITRANSLATION,
1083        MO_BALKYOUNG,
1084        SA_ELEMENTGROUND,
1085        SA_ELEMENTFIRE,
1086        SA_ELEMENTWIND,
1087
1088        HLIF_HEAL = 8001,
1089        HLIF_AVOID,
1090        HLIF_BRAIN,
1091        HLIF_CHANGE,
1092        HAMI_CASTLE,
1093        HAMI_DEFENCE,
1094        HAMI_SKIN,
1095        HAMI_BLOODLUST,
1096        HFLI_MOON,
1097        HFLI_FLEET,
1098        HFLI_SPEED,
1099        HFLI_SBR44,
1100        HVAN_CAPRICE,
1101        HVAN_CHAOTIC,
1102        HVAN_INSTRUCT,
1103        HVAN_EXPLOSION,
1104};
1105
1106enum {
1107        UNT_SAFETYWALL = 0x7e,
1108        UNT_FIREWALL,
1109        UNT_WARP_WAITING,
1110        UNT_WARP_ACTIVE,
1111        //0x82
1112        UNT_SANCTUARY = 0x83,
1113        UNT_MAGNUS,
1114        UNT_PNEUMA,
1115        UNT_ATTACK_SKILLS, //These show no effect on the client, therefore can be used for attack skills.
1116        UNT_FIREPILLAR_WAITING,
1117        UNT_FIREPILLAR_ACTIVE,
1118        //0x89
1119        //0x8a
1120        //0x8b
1121        UNT_USED_TRAPS = 0x8c,
1122        UNT_ICEWALL,
1123        UNT_QUAGMIRE,
1124        UNT_BLASTMINE,
1125        UNT_SKIDTRAP,
1126        UNT_ANKLESNARE,
1127        UNT_VENOMDUST,
1128        UNT_LANDMINE,
1129        UNT_SHOCKWAVE,
1130        UNT_SANDMAN,
1131        UNT_FLASHER,
1132        UNT_FREEZINGTRAP,
1133        UNT_CLAYMORETRAP,
1134        UNT_TALKIEBOX,
1135        UNT_VOLCANO,
1136        UNT_DELUGE,
1137        UNT_VIOLENTGALE,
1138        UNT_LANDPROTECTOR,
1139        UNT_LULLABY,
1140        UNT_RICHMANKIM,
1141        UNT_ETERNALCHAOS,
1142        UNT_DRUMBATTLEFIELD,
1143        UNT_RINGNIBELUNGEN,
1144        UNT_ROKISWEIL,
1145        UNT_INTOABYSS,
1146        UNT_SIEGFRIED,
1147        UNT_DISSONANCE,
1148        UNT_WHISTLE,
1149        UNT_ASSASSINCROSS,
1150        UNT_POEMBRAGI,
1151        UNT_APPLEIDUN,
1152        UNT_UGLYDANCE,
1153        UNT_HUMMING,
1154        UNT_DONTFORGETME,
1155        UNT_FORTUNEKISS,
1156        UNT_SERVICEFORYOU,
1157        UNT_GRAFFITI,
1158        UNT_DEMONSTRATION,
1159        UNT_CALLFAMILY,
1160        UNT_GOSPEL,
1161        UNT_BASILICA,
1162        UNT_MOONLIT,//0xb5 //I HOPE this one doesn't shows any effects
1163        UNT_FOGWALL = 0xb6,
1164        UNT_SPIDERWEB,
1165        UNT_GRAVITATION,
1166        UNT_HERMODE,
1167        UNT_DESPERADO, //0xba //Temporary setting until correct value is found.
1168        UNT_SUITON = 0xbb,
1169        UNT_TATAMIGAESHI,
1170        UNT_KAENSIN,
1171        UNT_GROUNDDRIFT_WIND,
1172        UNT_GROUNDDRIFT_DARK,
1173        UNT_GROUNDDRIFT_POISON,
1174        UNT_GROUNDDRIFT_WATER,
1175        UNT_GROUNDDRIFT_FIRE,
1176        //0xc3 ?
1177        //0xc4 ?
1178        //0xc5 ?
1179        //0xc6 ?
1180        UNT_EVILLAND = 0xc7,
1181};
1182
1183#endif /* _SKILL_H_ */
Note: See TracBrowser for help on using the browser.