rathena/src/map/skill.h
skotlex 8309da5f58 - Made Magic Crasher a BF_WEAPON attack.
- Made skill_unit_range a per-level setting. meteor and Lov now have their unit range adjusted in the skill_unit_db rather than hardcoded.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5536 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-09 19:14:21 +00:00

936 lines
20 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder
#ifndef _SKILL_H_
#define _SKILL_H_
#include "map.h"
#define MAX_SKILL_DB 1100
#define MAX_SKILL_PRODUCE_DB 150
#define MAX_PRODUCE_RESOURCE 12
#define MAX_SKILL_ARROW_DB 150
#define MAX_SKILL_ABRA_DB 350
//Constants to identify the skill's inf value:
#define INF_ATTACK_SKILL 1
#define INF_GROUND_SKILL 2
// Skills casted on self where target is automatically chosen:
#define INF_SELF_SKILL 4
#define INF_SUPPORT_SKILL 16
#define INF_TARGET_TRAP 32
//Constants to identify a skill's nk value.
//The NK value applies only to non INF_GROUND_SKILL skills.
#define NK_NO_DAMAGE 0x1
#define NK_SPLASH 0x2
//A skill with 3 would be no damage + splash: area of effect.
//Constants to identify a skill's inf2 value.
#define INF2_QUEST_SKILL 1
//NPC skills are those that players can't have in their skill tree.
#define INF2_NPC_SKILL 2
#define INF2_WEDDING_SKILL 4
#define INF2_SPIRIT_SKILL 8
#define INF2_GUILD_SKILL 16
#define INF2_SONG_DANCE 32
#define INF2_ENSEMBLE_SKILL 64
#define INF2_TRAP 128
//Refers to ground placed skills that will target the caster as well (like Grandcross)
#define INF2_TARGET_SELF 256
#define INF2_NO_TARGET_SELF 512
#define INF2_PARTY_ONLY 1024
#define INF2_GUILD_ONLY 2048
// ƒXƒLƒƒf?ƒ^ƒx?ƒX
struct skill_db {
char *name;
char *desc;
int range[MAX_SKILL_LEVEL],hit,inf,pl,nk,splash[MAX_SKILL_LEVEL],max;
int num[MAX_SKILL_LEVEL];
int cast[MAX_SKILL_LEVEL],walkdelay[MAX_SKILL_LEVEL],delay[MAX_SKILL_LEVEL];
int upkeep_time[MAX_SKILL_LEVEL],upkeep_time2[MAX_SKILL_LEVEL];
int castcancel,cast_def_rate;
int inf2,maxcount,skill_type;
int blewcount[MAX_SKILL_LEVEL];
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];
int weapon,state,spiritball[MAX_SKILL_LEVEL];
int itemid[10],amount[10];
int castnodex[MAX_SKILL_LEVEL];
int delaynodex[MAX_SKILL_LEVEL];
int nocast;
int unit_id[2];
int unit_layout_type[MAX_SKILL_LEVEL];
int unit_range[MAX_SKILL_LEVEL];
int unit_interval;
int unit_target;
int unit_flag;
};
extern struct skill_db skill_db[MAX_SKILL_DB];
struct skill_name_db {
int id; // skill id
char *name; // search strings
char *desc; // description that shows up for search's
};
#define MAX_SKILL_UNIT_LAYOUT 50
#define MAX_SQUARE_LAYOUT 5 // 11*11̃†ƒjƒbƒg”zuª<E2809A>Åå
#define MAX_SKILL_UNIT_COUNT ((MAX_SQUARE_LAYOUT*2+1)*(MAX_SQUARE_LAYOUT*2+1))
struct skill_unit_layout {
int count;
int dx[MAX_SKILL_UNIT_COUNT];
int dy[MAX_SKILL_UNIT_COUNT];
};
enum {
UF_DEFNOTENEMY = 0x0001, // defnotenemy <20>ÝèÅBCT_NOENEMYÉ<E2809A>ØèÖ¦
UF_NOREITERATION = 0x0002, // <20>d•¡u«ÖŽ~
UF_NOFOOTSET = 0x0004, // «Œ³u«ÖŽ~
UF_NOOVERLAP = 0x0008, // ƒ†ƒjƒbƒgŒø‰Êª<E2809A>d•¡µÈ¢
UF_NOPC = 0x0010, //May not target players
UF_NOMOB = 0x0020, //May not target mobs
UF_SKILL = 0x0080, //May target skills
UF_DANCE = 0x0100, // ƒ_ƒ“ƒXƒXƒLƒ
UF_ENSEMBLE = 0x0200, // <20>tƒXƒLƒ
UF_DUALMODE = 0x0800, //Spells should trigger both ontimer and onplace/onout/onleft effects.
};
// ƒAƒCƒeƒ€<C692>ì<EFBFBD>¬ƒf?ƒ^ƒx?ƒX
struct skill_produce_db {
int nameid, trigger;
int req_skill,itemlv;
int mat_id[MAX_PRODUCE_RESOURCE],mat_amount[MAX_PRODUCE_RESOURCE];
};
extern struct skill_produce_db skill_produce_db[MAX_SKILL_PRODUCE_DB];
// î<E28093>ì<EFBFBD>¬ƒf?ƒ^ƒx?ƒX
struct skill_arrow_db {
int nameid, trigger;
int cre_id[5],cre_amount[5];
};
extern struct skill_arrow_db skill_arrow_db[MAX_SKILL_ARROW_DB];
// ƒAƒuƒ‰ƒJƒ_ƒuƒ‰ƒf?ƒ^ƒx?ƒX
struct skill_abra_db {
int nameid;
int req_lv;
int per;
};
extern struct skill_abra_db skill_abra_db[MAX_SKILL_ABRA_DB];
extern int enchant_eff[5];
extern int deluge_eff[5];
struct block_list;
struct map_session_data;
struct skill_unit;
struct skill_unit_group;
int do_init_skill(void);
//Returns the cast type of the skill: ground cast, castend damage, castend no damage
enum { CAST_GROUND, CAST_DAMAGE, CAST_NODAMAGE };
int skill_get_casttype(int id); //[Skotlex]
// ƒXƒLƒƒf?ƒ^ƒx?ƒXÖ̃AƒNƒZƒT
int skill_get_hit( int id );
int skill_get_inf( int id );
int skill_get_pl( int id );
int skill_get_nk( int id );
int skill_get_max( int id );
int skill_get_range( int id , int lv );
int skill_get_range2(struct block_list *bl, int id, int lv);
int skill_get_splash( int id , int lv );
int skill_get_hp( int id ,int lv );
int skill_get_mhp( int id ,int lv );
int skill_get_sp( int id ,int lv );
int skill_get_zeny( int id ,int lv );
int skill_get_num( int id ,int lv );
int skill_get_cast( int id ,int lv );
int skill_get_delay( int id ,int lv );
int skill_get_walkdelay( int id ,int lv );
int skill_get_time( int id ,int lv );
int skill_get_time2( int id ,int lv );
int skill_get_castdef( int id );
int skill_get_weapontype( int id );
int skill_get_unit_id(int id,int flag);
int skill_get_inf2( int id );
int skill_get_maxcount( int id );
int skill_get_blewcount( int id ,int lv );
int skill_get_unit_flag( int id );
int skill_get_unit_target( int id );
int skill_tree_get_max( int id, int b_class ); // Celest
const char* skill_get_name( int id ); // [Skotlex]
// ƒXƒLƒÌŽg—p
int skill_use_id( struct map_session_data *sd, int target_id,
int skill_num,int skill_lv);
int skill_use_pos( struct map_session_data *sd,
int skill_x, int skill_y, int skill_num, int skill_lv);
int skill_castend_map( struct map_session_data *sd,int skill_num, const char *map);
int skill_cleartimerskill(struct block_list *src);
int skill_addtimerskill(struct block_list *src,unsigned int tick,int target,int x,int y,int skill_id,int skill_lv,int type,int flag);
// ’ljÁ?‰Ê
int skill_additional_effect( struct block_list* src, struct block_list *bl,int skillid,int skilllv,int attack_type,unsigned int tick);
int skill_counter_additional_effect( struct block_list* src, struct block_list *bl,int skillid,int skilllv,int attack_type,unsigned int tick);
int skill_blown( struct block_list *src, struct block_list *target,int count);
int skill_break_equip(struct block_list *bl, unsigned short where, int rate, int flag);
// ƒ†ƒjƒbƒgƒXƒLƒ
struct skill_unit_group *skill_unitsetting( struct block_list *src, int skillid,int skilllv,int x,int y,int flag);
struct skill_unit *skill_initunit(struct skill_unit_group *group,int idx,int x,int y);
int skill_delunit(struct skill_unit *unit);
struct skill_unit_group *skill_initunitgroup(struct block_list *src,
int count,int skillid,int skilllv,int unit_id, int limit, int interval);
int skill_delunitgroup(struct skill_unit_group *group);
int skill_clear_unitgroup(struct block_list *src);
int skill_clear_element_field(struct block_list *bl);
int skill_unit_ondamaged(struct skill_unit *src,struct block_list *bl,
int damage,unsigned int tick);
int skill_castfix( struct block_list *bl, int skill_id, int skill_lv, int time);
int skill_delayfix( struct block_list *bl, int skill_id, int skill_lv, int time);
int skill_check_unit_range(int m,int x,int y,int skillid, int skilllv);
int skill_check_unit_range2(struct block_list *bl,int m,int x,int y,int skillid, int skilllv);
// -- moonsoul (added skill_check_unit_cell)
int skill_check_unit_cell(int skillid,int m,int x,int y,int unit_id);
int skill_unit_out_all( struct block_list *bl,unsigned int tick,int range);
int skill_unit_move(struct block_list *bl,unsigned int tick,int flag);
int skill_unit_move_unit_group( struct skill_unit_group *group, int m,int dx,int dy);
void skill_setmapcell(struct block_list *src, int skill_num, int skill_lv, int flag);
struct skill_unit_group *skill_check_dancing( struct block_list *src );
void skill_stop_dancing(struct block_list *src);
// Guild skills [celest]
int skill_guildaura_sub (struct block_list *bl,va_list ap);
// ‰r<E280B0>¥ƒLƒƒƒ“ƒZƒ
int skill_castcancel(struct block_list *bl,int type);
int skill_gangsterparadise(struct map_session_data *sd ,int type);
int skill_rest(struct map_session_data *sd ,int type);
void skill_brandishspear_first(struct square *tc,int dir,int x,int y);
void skill_brandishspear_dir(struct square *tc,int dir,int are);
void skill_repairweapon(struct map_session_data *sd, int idx);
void skill_identify(struct map_session_data *sd,int idx);
void skill_weaponrefine(struct map_session_data *sd,int idx); // [Celest]
int skill_autospell(struct map_session_data *md,int skillid);
#define skill_calc_heal(bl,skill_lv) (( status_get_lv(bl)+status_get_int(bl) )/8 *(4+ skill_lv*8))
// ‚»‚Ì‘¼
int skill_check_cloaking(struct block_list *bl);
// ƒXƒe?ƒ^ƒXˆÙ<CB86>í
int skill_enchant_elemental_end(struct block_list *bl, int type);
int skillnotok(int skillid, struct map_session_data *sd);
// ƒAƒCƒeƒ€<C692>ì<EFBFBD>¬
int skill_can_produce_mix( struct map_session_data *sd, int nameid, int trigger, int qty);
int skill_produce_mix( struct map_session_data *sd,
int skill_id, int nameid, int slot1, int slot2, int slot3, int qty );
int skill_arrow_create( struct map_session_data *sd,int nameid);
// mobƒXƒLƒÌ½ß
int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skilllv,unsigned int tick,int flag);
// ƒXƒLƒ<C692>U?ˆêЇ?—<>
int skill_attack( int attack_type, struct block_list* src, struct block_list *dsrc,
struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag );
void skill_reload(void);
enum {
ST_NONE,ST_HIDING,ST_CLOAKING,ST_HIDDEN,ST_RIDING,ST_FALCON,ST_CART,ST_SHIELD,ST_SIGHT,ST_EXPLOSIONSPIRITS,ST_CARTBOOST,
ST_RECOV_WEIGHT_RATE,ST_MOVE_ENABLE,ST_WATER,
};
enum {
NV_BASIC = 1,
SM_SWORD,
SM_TWOHAND,
SM_RECOVERY,
SM_BASH,
SM_PROVOKE,
SM_MAGNUM,
SM_ENDURE,
MG_SRECOVERY,
MG_SIGHT,
MG_NAPALMBEAT,
MG_SAFETYWALL,
MG_SOULSTRIKE,
MG_COLDBOLT,
MG_FROSTDIVER,
MG_STONECURSE,
MG_FIREBALL,
MG_FIREWALL,
MG_FIREBOLT,
MG_LIGHTNINGBOLT,
MG_THUNDERSTORM,
AL_DP,
AL_DEMONBANE,
AL_RUWACH,
AL_PNEUMA,
AL_TELEPORT,
AL_WARP,
AL_HEAL,
AL_INCAGI,
AL_DECAGI,
AL_HOLYWATER,
AL_CRUCIS,
AL_ANGELUS,
AL_BLESSING,
AL_CURE,
MC_INCCARRY,
MC_DISCOUNT,
MC_OVERCHARGE,
MC_PUSHCART,
MC_IDENTIFY,
MC_VENDING,
MC_MAMMONITE,
AC_OWL,
AC_VULTURE,
AC_CONCENTRATION,
AC_DOUBLE,
AC_SHOWER,
TF_DOUBLE,
TF_MISS,
TF_STEAL,
TF_HIDING,
TF_POISON,
TF_DETOXIFY,
ALL_RESURRECTION,
KN_SPEARMASTERY,
KN_PIERCE,
KN_BRANDISHSPEAR,
KN_SPEARSTAB,
KN_SPEARBOOMERANG,
KN_TWOHANDQUICKEN,
KN_AUTOCOUNTER,
KN_BOWLINGBASH,
KN_RIDING,
KN_CAVALIERMASTERY,
PR_MACEMASTERY,
PR_IMPOSITIO,
PR_SUFFRAGIUM,
PR_ASPERSIO,
PR_BENEDICTIO,
PR_SANCTUARY,
PR_SLOWPOISON,
PR_STRECOVERY,
PR_KYRIE,
PR_MAGNIFICAT,
PR_GLORIA,
PR_LEXDIVINA,
PR_TURNUNDEAD,
PR_LEXAETERNA,
PR_MAGNUS,
WZ_FIREPILLAR,
WZ_SIGHTRASHER,
WZ_FIREIVY,
WZ_METEOR,
WZ_JUPITEL,
WZ_VERMILION,
WZ_WATERBALL,
WZ_ICEWALL,
WZ_FROSTNOVA,
WZ_STORMGUST,
WZ_EARTHSPIKE,
WZ_HEAVENDRIVE,
WZ_QUAGMIRE,
WZ_ESTIMATION,
BS_IRON,
BS_STEEL,
BS_ENCHANTEDSTONE,
BS_ORIDEOCON,
BS_DAGGER,
BS_SWORD,
BS_TWOHANDSWORD,
BS_AXE,
BS_MACE,
BS_KNUCKLE,
BS_SPEAR,
BS_HILTBINDING,
BS_FINDINGORE,
BS_WEAPONRESEARCH,
BS_REPAIRWEAPON,
BS_SKINTEMPER,
BS_HAMMERFALL,
BS_ADRENALINE,
BS_WEAPONPERFECT,
BS_OVERTHRUST,
BS_MAXIMIZE,
HT_SKIDTRAP,
HT_LANDMINE,
HT_ANKLESNARE,
HT_SHOCKWAVE,
HT_SANDMAN,
HT_FLASHER,
HT_FREEZINGTRAP,
HT_BLASTMINE,
HT_CLAYMORETRAP,
HT_REMOVETRAP,
HT_TALKIEBOX,
HT_BEASTBANE,
HT_FALCON,
HT_STEELCROW,
HT_BLITZBEAT,
HT_DETECTING,
HT_SPRINGTRAP,
AS_RIGHT,
AS_LEFT,
AS_KATAR,
AS_CLOAKING,
AS_SONICBLOW,
AS_GRIMTOOTH,
AS_ENCHANTPOISON,
AS_POISONREACT,
AS_VENOMDUST,
AS_SPLASHER,
NV_FIRSTAID,
NV_TRICKDEAD,
SM_MOVINGRECOVERY,
SM_FATALBLOW,
SM_AUTOBERSERK,
AC_MAKINGARROW,
AC_CHARGEARROW,
TF_SPRINKLESAND,
TF_BACKSLIDING,
TF_PICKSTONE,
TF_THROWSTONE,
MC_CARTREVOLUTION,
MC_CHANGECART,
MC_LOUD,
AL_HOLYLIGHT,
MG_ENERGYCOAT,
NPC_PIERCINGATT,
NPC_MENTALBREAKER,
NPC_RANGEATTACK,
NPC_ATTRICHANGE,
NPC_CHANGEWATER,
NPC_CHANGEGROUND,
NPC_CHANGEFIRE,
NPC_CHANGEWIND,
NPC_CHANGEPOISON,
NPC_CHANGEHOLY,
NPC_CHANGEDARKNESS,
NPC_CHANGETELEKINESIS,
NPC_CRITICALSLASH,
NPC_COMBOATTACK,
NPC_GUIDEDATTACK,
NPC_SELFDESTRUCTION,
NPC_SPLASHATTACK,
NPC_SUICIDE,
NPC_POISON,
NPC_BLINDATTACK,
NPC_SILENCEATTACK,
NPC_STUNATTACK,
NPC_PETRIFYATTACK,
NPC_CURSEATTACK,
NPC_SLEEPATTACK,
NPC_RANDOMATTACK,
NPC_WATERATTACK,
NPC_GROUNDATTACK,
NPC_FIREATTACK,
NPC_WINDATTACK,
NPC_POISONATTACK,
NPC_HOLYATTACK,
NPC_DARKNESSATTACK,
NPC_TELEKINESISATTACK,
NPC_MAGICALATTACK,
NPC_METAMORPHOSIS,
NPC_PROVOCATION,
NPC_SMOKING,
NPC_SUMMONSLAVE,
NPC_EMOTION,
NPC_TRANSFORMATION,
NPC_BLOODDRAIN,
NPC_ENERGYDRAIN,
NPC_KEEPING,
NPC_DARKBREATH,
NPC_DARKBLESSING,
NPC_BARRIER,
NPC_DEFENDER,
NPC_LICK,
NPC_HALLUCINATION,
NPC_REBIRTH,
NPC_SUMMONMONSTER,
RG_SNATCHER,
RG_STEALCOIN,
RG_BACKSTAP,
RG_TUNNELDRIVE,
RG_RAID,
RG_STRIPWEAPON,
RG_STRIPSHIELD,
RG_STRIPARMOR,
RG_STRIPHELM,
RG_INTIMIDATE,
RG_GRAFFITI,
RG_FLAGGRAFFITI,
RG_CLEANER,
RG_GANGSTER,
RG_COMPULSION,
RG_PLAGIARISM,
AM_AXEMASTERY,
AM_LEARNINGPOTION,
AM_PHARMACY,
AM_DEMONSTRATION,
AM_ACIDTERROR,
AM_POTIONPITCHER,
AM_CANNIBALIZE,
AM_SPHEREMINE,
AM_CP_WEAPON,
AM_CP_SHIELD,
AM_CP_ARMOR,
AM_CP_HELM,
AM_BIOETHICS,
AM_BIOTECHNOLOGY,
AM_CREATECREATURE,
AM_CULTIVATION,
AM_FLAMECONTROL,
AM_CALLHOMUN,
AM_REST,
AM_DRILLMASTER,
AM_HEALHOMUN,
AM_RESURRECTHOMUN,
CR_TRUST,
CR_AUTOGUARD,
CR_SHIELDCHARGE,
CR_SHIELDBOOMERANG,
CR_REFLECTSHIELD,
CR_HOLYCROSS,
CR_GRANDCROSS,
CR_DEVOTION,
CR_PROVIDENCE,
CR_DEFENDER,
CR_SPEARQUICKEN,
MO_IRONHAND,
MO_SPIRITSRECOVERY,
MO_CALLSPIRITS,
MO_ABSORBSPIRITS,
MO_TRIPLEATTACK,
MO_BODYRELOCATION,
MO_DODGE,
MO_INVESTIGATE,
MO_FINGEROFFENSIVE,
MO_STEELBODY,
MO_BLADESTOP,
MO_EXPLOSIONSPIRITS,
MO_EXTREMITYFIST,
MO_CHAINCOMBO,
MO_COMBOFINISH,
SA_ADVANCEDBOOK,
SA_CASTCANCEL,
SA_MAGICROD,
SA_SPELLBREAKER,
SA_FREECAST,
SA_AUTOSPELL,
SA_FLAMELAUNCHER,
SA_FROSTWEAPON,
SA_LIGHTNINGLOADER,
SA_SEISMICWEAPON,
SA_DRAGONOLOGY,
SA_VOLCANO,
SA_DELUGE,
SA_VIOLENTGALE,
SA_LANDPROTECTOR,
SA_DISPELL,
SA_ABRACADABRA,
SA_MONOCELL,
SA_CLASSCHANGE,
SA_SUMMONMONSTER,
SA_REVERSEORCISH,
SA_DEATH,
SA_FORTUNE,
SA_TAMINGMONSTER,
SA_QUESTION,
SA_GRAVITY,
SA_LEVELUP,
SA_INSTANTDEATH,
SA_FULLRECOVERY,
SA_COMA,
BD_ADAPTATION,
BD_ENCORE,
BD_LULLABY,
BD_RICHMANKIM,
BD_ETERNALCHAOS,
BD_DRUMBATTLEFIELD,
BD_RINGNIBELUNGEN,
BD_ROKISWEIL,
BD_INTOABYSS,
BD_SIEGFRIED,
BD_RAGNAROK,
BA_MUSICALLESSON,
BA_MUSICALSTRIKE,
BA_DISSONANCE,
BA_FROSTJOKE,
BA_WHISTLE,
BA_ASSASSINCROSS,
BA_POEMBRAGI,
BA_APPLEIDUN,
DC_DANCINGLESSON,
DC_THROWARROW,
DC_UGLYDANCE,
DC_SCREAM,
DC_HUMMING,
DC_DONTFORGETME,
DC_FORTUNEKISS,
DC_SERVICEFORYOU,
NPC_RANDOMMOVE,
NPC_SPEEDUP,
NPC_REVENGE,
WE_MALE,
WE_FEMALE,
WE_CALLPARTNER,
ITM_TOMAHAWK,
NPC_DARKCROSS,
NPC_GRANDDARKNESS,
NPC_DARKSTRIKE,
NPC_DARKTHUNDER,
NPC_STOP,
NPC_BREAKWEAPON,
NPC_BREAKARMOR,
NPC_BREAKHELM,
NPC_BREAKSHIELD,
NPC_UNDEADATTACK,
NPC_CHANGEUNDEAD,
NPC_POWERUP,
NPC_AGIUP,
NPC_SIEGEMODE,
NPC_CALLSLAVE,
NPC_INVISIBLE,
NPC_RUN,
LK_AURABLADE,
LK_PARRYING,
LK_CONCENTRATION,
LK_TENSIONRELAX,
LK_BERSERK,
LK_FURY,
HP_ASSUMPTIO,
HP_BASILICA,
HP_MEDITATIO,
HW_SOULDRAIN,
HW_MAGICCRASHER,
HW_MAGICPOWER,
PA_PRESSURE,
PA_SACRIFICE,
PA_GOSPEL,
CH_PALMSTRIKE,
CH_TIGERFIST,
CH_CHAINCRUSH,
PF_HPCONVERSION,
PF_SOULCHANGE,
PF_SOULBURN,
ASC_KATAR,
ASC_HALLUCINATION,
ASC_EDP,
ASC_BREAKER,
SN_SIGHT,
SN_FALCONASSAULT,
SN_SHARPSHOOTING,
SN_WINDWALK,
WS_MELTDOWN,
WS_CREATECOIN,
WS_CREATENUGGET,
WS_CARTBOOST,
WS_SYSTEMCREATE,
ST_CHASEWALK,
ST_REJECTSWORD,
ST_STEALBACKPACK,
CR_ALCHEMY,
CR_SYNTHESISPOTION,
CG_ARROWVULCAN,
CG_MOONLIT,
CG_MARIONETTE,
LK_SPIRALPIERCE,
LK_HEADCRUSH,
LK_JOINTBEAT,
HW_NAPALMVULCAN,
CH_SOULCOLLECT,
PF_MINDBREAKER,
PF_MEMORIZE,
PF_FOGWALL,
PF_SPIDERWEB,
ASC_METEORASSAULT,
ASC_CDP,
WE_BABY,
WE_CALLPARENT,
WE_CALLBABY,
TK_RUN,
TK_READYSTORM,
TK_STORMKICK,
TK_READYDOWN,
TK_DOWNKICK,
TK_READYTURN,
TK_TURNKICK,
TK_READYCOUNTER,
TK_COUNTER,
TK_DODGE,
TK_JUMPKICK,
TK_HPTIME,
TK_SPTIME,
TK_POWER,
TK_SEVENWIND,
TK_HIGHJUMP,
SG_FEEL,
SG_SUN_WARM,
SG_MOON_WARM,
SG_STAR_WARM,
SG_SUN_COMFORT,
SG_MOON_COMFORT,
SG_STAR_COMFORT,
SG_HATE,
SG_SUN_ANGER,
SG_MOON_ANGER,
SG_STAR_ANGER,
SG_SUN_BLESS,
SG_MOON_BLESS,
SG_STAR_BLESS,
SG_DEVIL,
SG_FRIEND,
SG_KNOWLEDGE,
SG_FUSION,
SL_ALCHEMIST,
AM_BERSERKPITCHER,
SL_MONK,
SL_STAR,
SL_SAGE,
SL_CRUSADER,
SL_SUPERNOVICE,
SL_KNIGHT,
SL_WIZARD,
SL_PRIEST,
SL_BARDDANCER,
SL_ROGUE,
SL_ASSASIN,
SL_BLACKSMITH,
BS_ADRENALINE2,
SL_HUNTER,
SL_SOULLINKER,
SL_KAIZEL,
SL_KAAHI,
SL_KAUPE,
SL_KAITE,
SL_KAINA,
SL_STIN,
SL_STUN,
SL_SMA,
SL_SWOO,
SL_SKE,
SL_SKA,
SM_SELFPROVOKE,
NPC_EMOTION_ON,
ST_PRESERVE,
ST_FULLSTRIP,
WS_WEAPONREFINE,
CR_SLIMPITCHER,
CR_FULLPROTECTION,
PA_SHIELDCHAIN,
HP_MANARECHARGE,
PF_DOUBLECASTING,
HW_GANBANTEIN,
HW_GRAVITATION,
WS_CARTTERMINATION,
WS_OVERTHRUSTMAX,
CG_LONGINGFREEDOM,
CG_HERMODE,
CG_TAROTCARD,
CR_ACIDDEMONSTRATION,
CR_CULTIVATION,
//492,missing?
TK_MISSION = 493,
SL_HIGH,
KN_ONEHAND,
AM_TWILIGHT1,
AM_TWILIGHT2,
AM_TWILIGHT3,
HT_POWER,
GS_GLITTERING,
GS_FLING,
GS_TRIPLEACTION,
GS_BULLSEYE,
GS_MADNESSCANCEL,
GS_ADJUSTMENT,
GS_INCREASING,
GS_MAGICALBULLET,
GS_CRACKER,
GS_SINGLEACTION,
GS_SNAKEEYE,
GS_CHAINACTION,
GS_TRACKING,
GS_DISARM,
GS_PIERCINGSHOT,
GS_RAPIDSHOWER,
GS_DESPERADO,
GS_GATLINGFEVER,
GS_DUST,
GS_FULLBUSTER,
GS_SPREADATTACK,
GS_GROUNDDRIFT,
NJ_TOBIDOUGU,
NJ_SYURIKEN,
NJ_KUNAI,
NJ_HUUMA,
NJ_ZENYNAGE,
NJ_TATAMIGAESHI,
NJ_KASUMIKIRI,
NJ_SHADOWJUMP,
NJ_KIRIKAGE,
NJ_UTSUSEMI,
NJ_BUNSINJYUTSU,
NJ_NINPOU,
NJ_KOUENKA,
NJ_KAENSIN,
NJ_BAKUENRYU,
NJ_HYOUSENSOU,
NJ_SUITON,
NJ_HYOUSYOURAKU,
NJ_HUUJIN,
NJ_RAIGEKISAI,
NJ_KAMAITACHI,
NJ_NEN,
NJ_ISSEN,
KN_CHARGEATK = 1001,
CR_SHRINK,
AS_SONICACCEL,
AS_VENOMKNIFE,
RG_CLOSECONFINE,
WZ_SIGHTBLASTER,
SA_CREATECON,
SA_ELEMENTWATER,
HT_PHANTASMIC,
BA_PANGVOICE,
DC_WINKCHARM,
BS_UNFAIRLYTRICK,
BS_GREED,
PR_REDEMPTIO,
MO_KITRANSLATION,
MO_BALKYOUNG,
SA_ELEMENTGROUND,
SA_ELEMENTFIRE,
SA_ELEMENTWIND,
HLIF_HEAL = 8001,
HLIF_AVOID,
HLIF_BRAIN,
HLIF_CHANGE,
HAMI_CASTLE,
HAMI_DEFENCE,
HAMI_SKIN,
HAMI_BLOODLUST,
HFLI_MOON,
HFLI_FLEET,
HFLI_SPEED,
HFLI_SBR44,
HVAN_CAPRICE,
HVAN_CHAOTIC,
HVAN_INSTRUCT,
HVAN_EXPLOSION,
};
enum {
UNT_SAFETYWALL = 0x7e,
UNT_FIREWALL,
UNT_WARP_WAITING,
UNT_WARP_ACTIVE,
UNT_SANCTUARY = 0x83,
UNT_MAGNUS,
UNT_PNEUMA,
UNT_MAGIC_SKILLS,
UNT_FIREPILLAR_WAITING,
UNT_FIREPILLAR_ACTIVE,
UNT_USED_TRAPS = 0x8c,
UNT_ICEWALL,
UNT_QUAGMIRE,
UNT_BLASTMINE,
UNT_SKIDTRAP,
UNT_ANKLESNARE,
UNT_VENOMDUST,
UNT_LANDMINE,
UNT_SHOCKWAVE,
UNT_SANDMAN,
UNT_FLASHER,
UNT_FREEZINGTRAP,
UNT_CLAYMORETRAP,
UNT_TALKIEBOX,
UNT_VOLCANO,
UNT_DELUGE,
UNT_VIOLENTGALE,
UNT_LANDPROTECTOR,
UNT_LULLABY,
UNT_RICHMANKIM,
UNT_ETERNALCHAOS,
UNT_DRUMBATTLEFIELD,
UNT_RINGNIBELUNGEN,
UNT_ROKISWEIL,
UNT_INTOABYSS,
UNT_SIEGFRIED,
UNT_DISSONANCE,
UNT_WHISTLE,
UNT_ASSASSINCROSS,
UNT_POEMBRAGI,
UNT_APPLEIDUN,
UNT_UGLYDANCE,
UNT_HUMMING,
UNT_DONTFORGETME,
UNT_FORTUNEKISS,
UNT_SERVICEFORYOU,
UNT_GRAFFITI,
UNT_DEMONSTRATION,
UNT_CALLPARTNER,
UNT_GOSPEL,
UNT_BASILICA,
UNT_FOGWALL = 0xb6,
UNT_SPIDERWEB,
UNT_GRAVITATION,
UNT_HERMODE,
UNT_KAENSIN,
UNT_SUITON,
};
#endif