383 lines
11 KiB
C
383 lines
11 KiB
C
#ifndef __BATTLE_EVENT_H__
|
|
#define __BATTLE_EVENT_H__
|
|
|
|
#define BCC_HIT 'H'
|
|
#define BCC_FIRE 'F'
|
|
|
|
#define BCF_DEATH (1 << 0)
|
|
#define BCF_NORMAL (1 << 1)
|
|
#define BCF_KAISHIN (1 << 2)
|
|
#define BCF_GUARD (1 << 3)
|
|
#define BCF_COUNTER (1 << 4)
|
|
#define BCF_DODGE (1 << 5)
|
|
#define BCF_ULTIMATE_1 (1 << 6)
|
|
#define BCF_ULTIMATE_2 (1 << 7)
|
|
#define BCF_GBREAK (1 << 8)
|
|
#define BCF_GUARDIAN (1 << 9)
|
|
#define BCF_REFRECT (1 << 10)
|
|
#define BCF_ABSORB (1 << 11)
|
|
#define BCF_VANISH (1 << 12)
|
|
#define BCF_CRUSH (1 << 13)
|
|
#define BCF_FALL (1 << 14) //落马术
|
|
#ifdef _SKILL_TOOTH
|
|
#define BCF_TOOTH (1 << 15) //囓齿
|
|
#endif
|
|
#ifdef _PSKILL_MODIFY
|
|
#define BCF_ATTDOUBLE (1 << 16) //属性强化
|
|
#endif
|
|
#ifdef _SKILL_ROAR
|
|
#define BCF_ROAR (1 << 17) //宠技:大吼(克年兽)
|
|
#endif
|
|
|
|
#ifdef _MAGIC_DEFMAGICATT
|
|
#define BCF_DEFMAGICATT (1 << 19)
|
|
#endif
|
|
#ifdef _MAGIC_SUPERWALL
|
|
#define BCF_SUPERWALL (1 << 20)
|
|
#endif
|
|
#ifdef _PSKILL_MDFYATTACK
|
|
#define BCF_MODIFY (1 << 21)
|
|
#endif
|
|
|
|
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
|
#define BCF_F_SKILLACT (1 << 22) //击中前秀图
|
|
#define BCF_TRAP (1 << 25) //陷阱
|
|
#define BCF_NO_DAMAGE (1 << 26) //双重攻击
|
|
#endif
|
|
#define BCF_B_SKILLACT (1 << 23) //击中後秀图
|
|
|
|
|
|
|
|
#ifdef _EQUIT_ARRANGE
|
|
#define BCF_B_ARRANGE (1 << 24) //格挡秀图
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_ACUPUNCTURE
|
|
#define BCF_ACUPUNCTURE (1 << 27)
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_ANTINTER
|
|
#define BCF_ANTINTER (1 << 28)
|
|
#endif
|
|
|
|
#ifdef _OTHER_MAGICSTAUTS
|
|
#ifdef _MAGICSTAUTS_RESIST
|
|
#define MAXSTATUSTYPE 6
|
|
#else
|
|
#define MAXSTATUSTYPE 3
|
|
#endif //_MAGICSTAUTS_RESIST
|
|
extern char MagicStatus[MAXSTATUSTYPE][36];
|
|
extern int MagicTbl[];
|
|
extern int MagicTypeTbl[];
|
|
#endif
|
|
|
|
extern char *aszStatus[];
|
|
extern char *aszStatusFull[];
|
|
extern int StatusTbl[];
|
|
extern int RegTbl[];
|
|
extern int MagicDefTbl[];
|
|
extern char *aszMagicDefFull[];
|
|
extern char *aszMagicDef[];
|
|
|
|
extern char *aszParamChange[];
|
|
extern char *aszParamChangeFull[];
|
|
extern int aParamChangeTbl[];
|
|
|
|
extern float gBattleDamageModyfy;
|
|
extern int gBattleDuckModyfy;
|
|
extern int gBattleStausChange;
|
|
extern int gBattleStausTurn;
|
|
|
|
enum{
|
|
BATTLE_ST_NONE, // 0 "正常",
|
|
BATTLE_ST_POISON, // 1 "毒",
|
|
BATTLE_ST_PARALYSIS, // 2 "麻",
|
|
BATTLE_ST_SLEEP, // 3 "眠",
|
|
BATTLE_ST_STONE, // 4 "石",
|
|
BATTLE_ST_DRUNK, // 5 "醉",
|
|
BATTLE_ST_CONFUSION, // 6 "乱",
|
|
BATTLE_ST_WEAKEN, // 7 "虚"
|
|
BATTLE_ST_DEEPPOISON,// 8 "剧毒"
|
|
BATTLE_ST_BARRIER, // 9 "魔障"
|
|
BATTLE_ST_NOCAST, // 10 "沉默"
|
|
#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延
|
|
BATTLE_ST_SARS, // 11 "煞"
|
|
#endif
|
|
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
|
BATTLE_ST_DIZZY, // 12 "晕"
|
|
BATTLE_ST_ENTWINE, // 13 "缠"
|
|
BATTLE_ST_DRAGNET, // 14 "天罗地网"
|
|
BATTLE_ST_ICECRACK, // 15 "冰爆术"
|
|
BATTLE_ST_OBLIVION, // 16 "遗忘"
|
|
BATTLE_ST_ICEARROW, // 17 "冰箭"
|
|
BATTLE_ST_BLOODWORMS,// 18 "嗜血蛊"
|
|
BATTLE_ST_SIGN, // 19 "一针见血"
|
|
BATTLE_ST_INSTIGATE, // 20 "挑拨"
|
|
BATTLE_ST_F_ENCLOSE, // 21 "火附体"
|
|
BATTLE_ST_I_ENCLOSE, // 22 "冰附体"
|
|
BATTLE_ST_T_ENCLOSE, // 23 "雷附体"
|
|
BATTLE_ST_FOCUS, // 24 "专注战斗"
|
|
BATTLE_ST_RESIST_F, // 25 "火抗"
|
|
BATTLE_ST_RESIST_I, // 26 "冰抗"
|
|
BATTLE_ST_RESIST_T, // 27 "雷抗"
|
|
BATTLE_ST_F_ENCLOSE2, // 28 "火附"
|
|
BATTLE_ST_I_ENCLOSE2, // 29 "冰附"
|
|
BATTLE_ST_T_ENCLOSE2, // 30 "雷附"
|
|
#ifdef _PROFESSION_ADDSKILL
|
|
BATTLE_ST_RESIST_F_I_T, //31 "火冰雷抗"
|
|
//BATTLE_ST_BOUNDARY_F, //32 "火结界
|
|
BATTLE_ST_WATER, //32 "水附体"
|
|
BATTLE_ST_WORKANNEX, //33 "附身"
|
|
BATTLE_ST_FEAR, //34 "恐惧"
|
|
BATTLE_ST_ICECRACK2, // 35 "冰爆术"
|
|
BATTLE_ST_ICECRACK3, // 36
|
|
BATTLE_ST_ICECRACK4, // 37
|
|
BATTLE_ST_ICECRACK5, // 38
|
|
BATTLE_ST_ICECRACK6, // 39
|
|
BATTLE_ST_ICECRACK7, // 40
|
|
BATTLE_ST_ICECRACK8, // 41
|
|
BATTLE_ST_ICECRACK9, // 42
|
|
BATTLE_ST_ICECRACK10, // 43
|
|
#endif
|
|
|
|
#endif
|
|
|
|
BATTLE_ST_END
|
|
};
|
|
|
|
#ifdef _OTHER_MAGICSTAUTS
|
|
enum{
|
|
BATTLE_MST_NONE,
|
|
BATTLE_MST_DEFMAGIC,
|
|
BATTLE_MST_SUPERWALL,
|
|
#ifdef _MAGICSTAUTS_RESIST
|
|
BATTLE_MST_MAGICFIRE,
|
|
BATTLE_MST_MAGICTHUNDER,
|
|
BATTLE_MST_MAGICICE,
|
|
#endif
|
|
BATTLE_MST_END
|
|
};
|
|
#endif
|
|
|
|
enum{
|
|
BATTLE_MD_NONE,
|
|
BATTLE_MD_ABSROB,
|
|
BATTLE_MD_REFLEC,
|
|
BATTLE_MD_VANISH,
|
|
BATTLE_MD_TRAP,
|
|
#ifdef _PETSKILL_ACUPUNCTURE
|
|
BATTLE_MD_ACUPUNCTURE, //针刺外皮
|
|
#endif
|
|
BATTLE_MD_END
|
|
};
|
|
|
|
#ifdef _PETSKILL_RETRACE
|
|
//存放BATTLE_Attack函式执行後的攻击模式
|
|
typedef struct tagBattle_Attack_ReturnData_x1
|
|
{
|
|
int Battle_Attack_ReturnData;
|
|
}Battle_Attack_ReturnData_x1;
|
|
Battle_Attack_ReturnData_x1 Battle_Attack_ReturnData_x;
|
|
|
|
#endif
|
|
|
|
int BATTLE_DamageCalc( int attackindex, int defindex );
|
|
|
|
BOOL BATTLE_Attack( int battleindex, int attackNo, int defNo );
|
|
|
|
BOOL BATTLE_Counter( int battleindex, int attackNo, int defNo );
|
|
|
|
BOOL BATTLE_Capture( int battleindex, int attackNo, int defNo );
|
|
|
|
void BATTLE_Guard( int battleindex, int attackNo );
|
|
|
|
// Nuke 20040112 fix for performance
|
|
#define BATTLE_BroadCast(A,B,C) 0
|
|
#define BATTLE_BroadCastOn(A,B,C) 0
|
|
//int BATTLE_BroadCast( int battleindex, char *pszBuffer, int color );
|
|
//int BATTLE_BroadCastOn( int battleindex, char *pszBuffer, int color );
|
|
|
|
BOOL BATTLE_Escape( int battleindex, int attackNo, int flag);
|
|
|
|
int BATTLE_NoAction( int battleindex, int attackNo );
|
|
|
|
int BATTLE_PetIn( int battleindex, int attackNo );
|
|
|
|
int BATTLE_PetOut( int battleindex, int attackNo );
|
|
|
|
int BATTLE_SurpriseCheck( int battleindex );
|
|
|
|
int BATTLE_Magic( int battleindex, int attackNo );
|
|
|
|
int BATTLE_S_GBreak( int battleindex, int attackNo, int defNo );
|
|
|
|
#ifdef _SKILL_GUARDBREAK2//破除防御2 vincent add 2002/05/20
|
|
int BATTLE_S_GBreak2( int battleindex, int attackNo, int defNo );
|
|
#endif
|
|
|
|
#ifdef _SKILL_SACRIFICE
|
|
int BATTLE_S_Sacrifice( int battleindex, int attackNo, int defNo );
|
|
#endif
|
|
|
|
#ifdef _SKILL_REFRESH
|
|
int BATTLE_S_Refresh( int battleindex, int attackNo, int defNo, int marray );
|
|
#endif
|
|
|
|
#ifdef _SKILL_WEAKEN //vincent宠技:虚弱
|
|
int BATTLE_S_Weaken( int battleindex, int attackNo, int defNo, int marray );
|
|
#endif
|
|
|
|
#ifdef _SKILL_DEEPPOISON //vincent宠技:剧毒
|
|
int BATTLE_S_Deeppoison( int battleindex, int attackNo, int defNo, int marray );
|
|
#endif
|
|
|
|
#ifdef _SKILL_BARRIER //vincent宠技:魔障
|
|
int BATTLE_S_Barrier( int battleindex, int attackNo, int defNo, int marray );
|
|
#endif
|
|
|
|
#ifdef _SKILL_NOCAST //vincent宠技:沉默
|
|
int BATTLE_S_Nocast( int battleindex, int attackNo, int defNo, int marray );
|
|
#endif
|
|
|
|
#ifdef _SKILL_ROAR //vincent宠技:大吼
|
|
int BATTLE_S_Roar( int battleindex, int attackNo, int defNo, int marray );
|
|
#endif
|
|
|
|
int BATTLE_Charge( int battleindex, int attackNo );
|
|
|
|
|
|
int BATTLE_StatusAttackCheck(
|
|
|
|
int attackindex,
|
|
int defindex,
|
|
int status,
|
|
//BATTLE_ST_POISON, 1 "毒",
|
|
//BATTLE_ST_PARALYSIS, 2 "麻",
|
|
//BATTLE_ST_SLEEP, 3 "眠",
|
|
//BATTLE_ST_STONE, 4 "石",
|
|
//BATTLE_ST_DRUNK, 5 "醉",
|
|
//BATTLE_ST_CONFUSION, 6 "乱"
|
|
int PerOffset,
|
|
int Range,
|
|
float Bai,
|
|
int *pPer
|
|
);
|
|
|
|
int BATTLE_Combo( int battleindex, int *pAttackList, int defNo );
|
|
|
|
int BATTLE_EarthRoundHide( int battleindex, int attackNo );
|
|
|
|
int BATTLE_GetDamageReact( int charaindex );
|
|
|
|
void BATTLE_talkToCli( int charaindex, char *pszBuffer, int color );
|
|
|
|
#ifdef _PETSKILL_SETDUCK
|
|
BOOL BATTLE_CheckMySkillDuck( int charaindex );
|
|
#endif
|
|
|
|
BOOL BATTLE_LostEscape( int battleindex, int attackNo );
|
|
|
|
BOOL BATTLE_Abduct( int battleindex, int attackNo, int defNo, int array );
|
|
|
|
void BATTLE_Steal( int battleindex, int attackNo, int defNo );
|
|
|
|
int BATTLE_getReactFlg( int index, int react);
|
|
|
|
#ifdef _BATTLESTEAL_FIX
|
|
void BATTLE_StealMoney( int battleindex, int attackNo, int defNo) ;
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_LER
|
|
void BATTLE_BatFly(int battleindex,int attackNo,int myside);
|
|
void BATTLE_DivideAttack(int battleindex,int attackNo,int myside);
|
|
void BATTLE_LerChange(int battleindex,int charaindex,int no);
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_BATTLE_MODEL
|
|
void BATTLE_BattleModel(int battleindex,int attackNo,int myside);
|
|
#endif
|
|
|
|
// Robin 0727 Ride Pet
|
|
#define ATTACKSIDE 1
|
|
#define DEFFENCESIDE 2
|
|
|
|
float BATTLE_adjustRidePet3A( int charaindex, int petindex, int workindex, int action );
|
|
|
|
int BATTLE_getRidePet( int charaindex );
|
|
|
|
#ifdef _PSKILL_FALLGROUND //落马术
|
|
int BATTLE_S_FallGround( int battleindex, int attackNo, int defNo, int skill_type );
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_PROPERTY
|
|
int BATTLE_S_PetSkillProperty( int battleindex, int attackNo, int skill_type, int skill);
|
|
#endif
|
|
|
|
int BATTLE_S_AttackDamage( int battleindex, int attackNo, int defNo, int skill_type, int skill);
|
|
|
|
#ifdef _MAGIC_SUPERWALL
|
|
int PETSKILL_MagicStatusChange_Battle( int battleindex, int attackNo, int toNo, int marray);
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_SETDUCK
|
|
int PETSKILL_SetDuckChange_Battle( int battleindex, int attackNo, int toNo, int marray);
|
|
#endif
|
|
|
|
#ifdef _MAGICPET_SKILL
|
|
int PETSKILL_SetMagicPet_Battle( int battleindex, int attackNo, int toNo, int marray);
|
|
#endif
|
|
|
|
#ifdef _TAKE_ITEMDAMAGE
|
|
int BATTLE_ItemCrushCheck( int charaindex , int flg);
|
|
int BATTLE_ItemCrush( int charaindex, int ItemEquip, int Damages, int flg);
|
|
#endif
|
|
|
|
#ifdef _PRO_BATTLEENEMYSKILL
|
|
int BATTLE_E_ENEMYREFILE( int battleindex, int attackNo, int defNo, int skill_type );
|
|
|
|
int BATTLE_E_ENEMYREHP( int battleindex, int attackNo, int defNo, int skill_type );
|
|
|
|
int BATTLE_E_ENEMYHELP( int battleindex, int attackNo, int defNo, int skill_type );
|
|
#endif
|
|
|
|
|
|
#ifdef _PREVENT_TEAMATTACK
|
|
int BATTLE_CheckSameSide( int charaindex, int toNo);
|
|
#endif
|
|
|
|
#ifdef _USER_CHARLOOPS
|
|
int CHAR_BattleStayLoop( int charaindex);//原地遇敌
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_PROPERTY
|
|
int PET_PetskillPropertyEvent( int Myindex, int defindex, int *damage, int *T_Pow, int size);
|
|
#endif
|
|
|
|
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
|
int battle_profession_attack_fun(int battleindex, int attackNo, int defNo, int charaindex);
|
|
int battle_profession_attack_magic_fun(int battleindex, int attackNo, int defNo, int charaindex);
|
|
int battle_profession_assist_fun(int battleindex, int attackNo, int defNo, int charaindex);
|
|
int battle_profession_status_chang_fun(int battleindex, int attackNo, int defNo, int charaindex);
|
|
int BATTLE_check_profession_duck( int charaindex, int per );
|
|
int BATTLE_PROFESSION_ATK_PET_DamageSub( int attackindex, int defindex, int *pDamage, int *pPetDamage, int *pRefrect, int skill_level );
|
|
int PROFESSION_BATTLE_StatusAttackCheck( int charaindex, int toindex, int status, int Success );
|
|
int BATTLE_PROFESSION_CONVOLUTE_GET_DAMAGE( int attackindex, int defindex, int skill_level );
|
|
int BATTLE_PROFESSION_THROUGH_ATTACK_GET_DAMAGE( int attackindex, int defindex );
|
|
int BATTLE_PROFESSION_RANG_ATTACK_DAMAGE( int charaindex, int attackNo, int defNo, int skill_type, int status, int turn, int perStatus, int effect, int img1, int img2 );
|
|
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_FIREKILL //火线猎杀专用
|
|
int BATTLE_Attack_FIREKILL( int battleindex, int attackNo, int defNo );
|
|
#endif
|
|
#ifdef _PROFESSION_ADDSKILL
|
|
BOOL BATTLE_BattleUltimate( int battleindex, int bid ); //检查此位罝上是否被打飞
|
|
#endif
|
|
#ifdef _NEED_ITEM_ENEMY
|
|
int need_item_eneny_init();
|
|
#endif
|
|
#ifdef _OFFLINE_SYSTEM
|
|
int OFFLINE_MultiRessurect( int battleindex, int attackNo, int toNo, int HP, int flg);
|
|
#endif
|
|
#endif
|