diff options
Diffstat (limited to 'src/map/skill.h')
-rw-r--r-- | src/map/skill.h | 270 |
1 files changed, 58 insertions, 212 deletions
diff --git a/src/map/skill.h b/src/map/skill.h index a8bf30e3c..67d7a906c 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -1,10 +1,10 @@ -// $Id: skill.h,v 1.5 2004/11/26 5:47:12 PM Celestia Exp $ +// $Id: skill.h,v 1.5 2004/12/23 7:43:16 PM Celestia $ #ifndef _SKILL_H_ #define _SKILL_H_ #include "map.h" -#define MAX_SKILL_DB 515 +#define MAX_SKILL_DB 750 #define MAX_SKILL_PRODUCE_DB 150 #define MAX_PRODUCE_RESOURCE 7 #define MAX_SKILL_ARROW_DB 150 @@ -23,7 +23,14 @@ struct skill_db { 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; + int unit_interval; + int unit_target; + int unit_flag; }; extern struct skill_db skill_db[MAX_SKILL_DB]; @@ -34,6 +41,24 @@ struct skill_name_db { }; extern const struct skill_name_db skill_names[]; +#define MAX_SKILL_UNIT_LAYOUT 50 +#define MAX_SQUARE_LAYOUT 5 // 11*11�̃��j�b�g�z�u���ő� +#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 �ݒ��BCT_NOENEMY�ɐ�ւ� + UF_NOREITERATION = 0x0002, // �d���u���֎~ + UF_NOFOOTSET = 0x0004, // �����u���֎~ + UF_NOOVERLAP = 0x0008, // ���j�b�g���ʂ��d�����Ȃ� + UF_DANCE = 0x0100, // �_���X�X�L�� + UF_ENSEMBLE = 0x0200, // ���t�X�L�� +}; + // �A�C�e���쐬�f?�^�x?�X struct skill_produce_db { int nameid, trigger; @@ -57,6 +82,9 @@ struct skill_abra_db { }; 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; @@ -86,6 +114,7 @@ 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_tree_get_max( int id, int b_class ); // Celest // �X�L���̎g�p @@ -109,9 +138,6 @@ 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 skill_delunitgroup(struct skill_unit_group *group); -struct skill_unit_group_tickset *skill_unitgrouptickset_search( - struct block_list *bl,int group_id); -int skill_unitgrouptickset_delete(struct block_list *bl,int group_id); int skill_clear_unitgroup(struct block_list *src); int skill_unit_ondamaged(struct skill_unit *src,struct block_list *bl, @@ -119,21 +145,25 @@ int skill_unit_ondamaged(struct skill_unit *src,struct block_list *bl, int skill_castfix( struct block_list *bl, int time ); int skill_delayfix( struct block_list *bl, int time ); -int skill_check_unit_range(int m,int x,int y,int range,int skillid); -int skill_check_unit_range2(int m,int x,int y,int range); +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 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); struct skill_unit_group *skill_check_dancing( struct block_list *src ); void skill_stop_dancing(struct block_list *src, int flag); +// Guild skills [celest] +int skill_guildaura_sub (struct block_list *bl,va_list ap); + // �r���L�����Z�� int skill_castcancel(struct block_list *bl,int type); int skill_gangsterparadise(struct map_session_data *sd ,int type); +int skill_check_moonlit (struct block_list *bl, int dx, int dy); void skill_brandishspear_first(struct square *tc,int dir,int x,int y); void skill_brandishspear_dir(struct square *tc,int dir,int are); int skill_autospell(struct map_session_data *md,int skillid); @@ -142,19 +172,13 @@ void skill_devotion2(struct block_list *bl,int crusader); int skill_devotion3(struct block_list *bl,int target); void skill_devotion_end(struct map_session_data *md,struct map_session_data *sd,int target); -#define skill_calc_heal(bl,skill_lv) (( battle_get_lv(bl)+battle_get_int(bl) )/8 *(4+ skill_lv*8)) +#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); -int skill_type_cloaking(struct block_list *bl); -int skill_is_danceskill(int id); // �X�e?�^�X�ُ� -int skill_status_change_start(struct block_list *bl,int type,int val1,int val2,int val3,int val4,int tick,int flag); -int skill_status_change_timer(int tid, unsigned int tick, int id, int data); -int skill_encchant_eremental_end(struct block_list *bl, int type); -int skill_status_change_end( struct block_list* bl , int type,int tid ); -int skill_status_change_clear(struct block_list *bl,int type); +int skill_enchant_elemental_end(struct block_list *bl, int type); int skillnotok(int skillid, struct map_session_data *sd); // �A�C�e���쐬 @@ -180,201 +204,6 @@ enum { ST_RECOV_WEIGHT_RATE,ST_MOVE_ENABLE,ST_WATER, }; -enum { // struct map_session_data �� status_change�̔�?�e?�u�� -// SC_SENDMAX��?�̓N���C�A���g�ւ̒ʒm����B -// 2-2���E�̒l�͂Ȃ߂��Ⴍ������ۂ��̂Ŏb��B���Ԃ�?�X����܂��B - SC_SENDMAX =128, - SC_PROVOKE = 0, - SC_ENDURE = 1, - SC_TWOHANDQUICKEN = 2, - SC_CONCENTRATE = 3, - SC_HIDING = 4, - SC_CLOAKING = 5, - SC_ENCPOISON = 6, - SC_POISONREACT = 7, - SC_QUAGMIRE = 8, - SC_ANGELUS = 9, - SC_BLESSING =10, - SC_SIGNUMCRUCIS =11, - SC_INCREASEAGI =12, - SC_DECREASEAGI =13, - SC_SLOWPOISON =14, - SC_IMPOSITIO =15, - SC_SUFFRAGIUM =16, - SC_ASPERSIO =17, - SC_BENEDICTIO =18, - SC_KYRIE =19, - SC_MAGNIFICAT =20, - SC_GLORIA =21, - SC_AETERNA =22, - SC_ADRENALINE =23, - SC_WEAPONPERFECTION =24, - SC_OVERTHRUST =25, - SC_MAXIMIZEPOWER =26, - SC_RIDING =27, - SC_FALCON =28, - SC_TRICKDEAD =29, - SC_LOUD =30, - SC_ENERGYCOAT =31, - SC_HALLUCINATION =34, - SC_WEIGHT50 =35, - SC_WEIGHT90 =36, - SC_SPEEDPOTION0 =37, - SC_SPEEDPOTION1 =38, - SC_SPEEDPOTION2 =39, - SC_STRIPWEAPON =50, - SC_STRIPSHIELD =51, - SC_STRIPARMOR =52, - SC_STRIPHELM =53, - SC_CP_WEAPON =54, - SC_CP_SHIELD =55, - SC_CP_ARMOR =56, - SC_CP_HELM =57, - SC_AUTOGUARD =58, - SC_REFLECTSHIELD =59, - SC_DEVOTION =60, - SC_PROVIDENCE =61, - SC_DEFENDER =62, - SC_AUTOSPELL =65, - SC_SPEARSQUICKEN =68, - SC_EXPLOSIONSPIRITS =86, - SC_STEELBODY =87, - SC_COMBO =89, - SC_FLAMELAUNCHER =90, - SC_FROSTWEAPON =91, - SC_LIGHTNINGLOADER =92, - SC_SEISMICWEAPON =93, - SC_AURABLADE =103, /* �I?���u��?�h */ - SC_PARRYING =104, /* �p���C���O */ - SC_CONCENTRATION =105, /* �R���Z���g��?�V���� */ - SC_TENSIONRELAX =106, /* �e���V���������b�N�X */ - SC_BERSERK =107, /* �o?�T?�N */ - SC_ASSUMPTIO =110, /* �A�V�����v�e�B�I */ - SC_MAGICPOWER =113, /* ���@��?�� */ - SC_TRUESIGHT =115, /* �g�D��?�T�C�g */ - SC_WINDWALK =116, /* �E�C���h�E�H?�N */ - SC_MELTDOWN =117, /* �����g�_�E�� */ - SC_CARTBOOST =118, /* �J?�g�u?�X�g */ - SC_REJECTSWORD =120, /* ���W�F�N�g�\?�h */ - SC_MARIONETTE =121, /* �}���I�l�b�g�R���g��?�� */ - SC_HEADCRUSH =124, /* �w�b�h�N���b�V�� */ - SC_JOINTBEAT =125, /* �W���C���g�r?�g */ - - SC_STONE =128, - SC_FREEZE =129, - SC_STAN =130, - SC_SLEEP =131, - SC_POISON =132, - SC_CURSE =133, - SC_SILENCE =134, - SC_CONFUSION =135, - SC_BLIND =136, - SC_DIVINA = SC_SILENCE, - - SC_SAFETYWALL =140, - SC_PNEUMA =141, - SC_WATERBALL =142, - SC_ANKLE =143, - SC_DANCING =144, - SC_KEEPING =145, - SC_BARRIER =146, - - SC_MAGICROD =149, - SC_SIGHT =150, - SC_RUWACH =151, - SC_AUTOCOUNTER =152, - SC_VOLCANO =153, - SC_DELUGE =154, - SC_VIOLENTGALE =155, - SC_BLADESTOP_WAIT =156, - SC_BLADESTOP =157, - SC_EXTREMITYFIST =158, - SC_GRAFFITI =159, - - SC_LULLABY =160, - SC_RICHMANKIM =161, - SC_ETERNALCHAOS =162, - SC_DRUMBATTLE =163, - SC_NIBELUNGEN =164, - SC_ROKISWEIL =165, - SC_INTOABYSS =166, - SC_SIEGFRIED =167, - SC_DISSONANCE =168, - SC_WHISTLE =169, - SC_ASSNCROS =170, - SC_POEMBRAGI =171, - SC_APPLEIDUN =172, - SC_UGLYDANCE =173, - SC_HUMMING =174, - SC_DONTFORGETME =175, - SC_FORTUNE =176, - SC_SERVICE4U =177, - - SC_SPIDERWEB =180, /* �X�p�C�_?�E�F�b�u */ - SC_MEMORIZE =181, /* �������C�Y */ -// SC_DPOISON =182, /* �ғ� */ - -// SC_EDP =183, /* �G�t�F�N�g������������ړ� */ - - SC_WEDDING =187, //�����p(�����ߏւɂȂ���?���̂�?���Ƃ�) - SC_NOCHAT =188, //�ԃG��?�� - SC_SPLASHER =189, /* �x�i���X�v���b�V��? */ - SC_SELFDESTRUCTION =190, /* ���� */ - - -// Used by English Team - SC_BROKNARMOR =32, - SC_BROKNWEAPON =33, - SC_SLOWDOWN =45, // for skill slowdown - SC_SIGHTTRASHER =73, -// SC_BASILICA =125, // 125 is the same id as joint break - SC_BASILICA =102, // temporarily use this before an actual id is found [celest] - SC_EDP =114, // - SC_MARIONETTE2 =122, // Marionette target - SC_ENSEMBLE =159, - SC_FOGWALL =178, - SC_GOSPEL =179, - SC_LANDPROTECTOR =182, - SC_ADAPTATION =183, - SC_CHASEWALK =184, - SC_ATKPOT =185, // [Valaris] - SC_MATKPOT =186, // [Valaris] - SC_MINDBREAKER =191, - SC_SPELLBREAKER =192, - SC_DPOISON =193, /* �ғ� */ - SC_BLOCKSKILL =194, // for disallowing the use of a skill for a time period - -// [Celest] - SC_BLEEDING = 124, // Temporarily same id as headcrush - SC_MOONLIT = 195, - SC_LEADERSHIP = 196, - SC_GLORYWOUNDS = 197, - SC_SOULCOLD = 198, - SC_HAWKEYES = 199, - SC_BATTLEORDERS = 200, - SC_REGENERATION = 201, - SC_PRESERVE = 202, - -// -- testing various SC effects -// SC_AURABLADE =81, -// SC_CONCENTRATION =83, -// SC_TENSIONRELAX =84, -// SC_BERSERK =85, -// SC_CALLSPIRITS =100, -// SC_PARRYING =100, -// SC_FREECAST =101, -// SC_ABSORBSPIRIT =102, -// SC_ASSUMPTIO =114, -// SC_SHARPSHOOT =127, -// SC_GANGSTER =184, -// SC_CANNIBALIZE =186, -// SC_SPHEREMINE =187, -// SC_METEOSTORM =189, -// SC_CASTCANCEL =190, -// SC_SPIDERWEB =191, -}; -extern int SkillStatusChangeTable[]; - enum { NV_BASIC = 1, @@ -737,6 +566,22 @@ enum { NPC_SELFDESTRUCTION2 = 331, ITM_TOMAHAWK = 337, NPC_DARKCROSS = 338, + NPC_DARKGRANDCROSS, + NPC_DARKSOULSTRIKE, + NPC_DARKJUPITEL, + // temporary names for mob skills [Celest] + NPC_BIND, + NPC_BREAKWEAPON, + NPC_BREAKARMOR, + NPC_BREAKHELM, + NPC_BREAKSHIELD, + NPC_UNDEADATTACK, + + NPC_RUNAWAY = 348, + NPC_EXPLOSIONSPIRITS, + NPC_INCAGI, + + NPC_RECALL = 354, LK_AURABLADE = 355, LK_PARRYING, @@ -794,7 +639,8 @@ enum { WE_BABY, WE_CALLPARENT, WE_CALLBABY, - TK_RUN, + + TK_RUN = 411, TK_READYSTORM, TK_STORMKICK, TK_READYDOWN, |