?? battle.h
字號:
BATTLE_RET_END}BATTLE_RET;#define BC_FLG_NEW (1<<0)#define BC_FLG_DEAD (1<<1)#define BC_FLG_PLAYER (1<<2)#define BC_FLG_POISON (1<<3)#define BC_FLG_PARALYSIS (1<<4)#define BC_FLG_SLEEP (1<<5)#define BC_FLG_STONE (1<<6)#define BC_FLG_DRUNK (1<<7)#define BC_FLG_CONFUSION (1<<8)#define BC_FLG_HIDE (1<<9)#define BC_FLG_REVERSE (1<<10)#ifdef _MAGIC_WEAKEN#define BC_FLG_WEAKEN (1<<11) // 虛弱#endif#ifdef _MAGIC_DEEPPOISON#define BC_FLG_DEEPPOISON (1<<12) // 劇毒#endif#ifdef _MAGIC_BARRIER#define BC_FLG_BARRIER (1<<13) // 魔障#endif#ifdef _MAGIC_NOCAST#define BC_FLG_NOCAST (1<<14) // 沉默#endif#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延#define BC_FLG_SARS (1<<15) // 毒煞#endif#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能#define BC_FLG_DIZZY (1<<16) // 暈眩 #define BC_FLG_ENTWINE (1<<17) // 樹根纏繞#define BC_FLG_DRAGNET (1<<18) // 天羅地網 #define BC_FLG_ICECRACK (1<<19) // 冰爆術 #define BC_FLG_OBLIVION (1<<20) // 遺忘#define BC_FLG_ICEARROW (1<<21) // 冰箭#define BC_FLG_BLOODWORMS (1<<22) // 嗜血蠱#define BC_FLG_SIGN (1<<23) // 一針見血#define BC_FLG_CARY (1<<24) // 挑撥#define BC_FLG_F_ENCLOSE (1<<25) // 火附體#define BC_FLG_I_ENCLOSE (1<<26) // 冰附體#define BC_FLG_T_ENCLOSE (1<<27) // 雷附體#ifdef _PROFESSION_ADDSKILL#define BC_FLG_WATER (1<<28) // 水附體#define BC_FLG_FEAR (1<<29) // 恐懼#endif#ifdef _PETSKILL_LER#define BC_FLG_CHANGE (1<<30) // 雷爾變身#endif#endif#define BP_FLG_JOIN (1<<0)#define BP_FLG_PLAYER_MENU_OFF (1<<1)#define BP_FLG_BOOMERANG (1<<2)#define BP_FLG_PET_MENU_OFF (1<<3)#define BP_FLG_ENEMY_SURPRISAL (1<<4)#define BP_FLG_PLAYER_SURPRISAL (1<<5)#define CHAR_BATTLEFLG_ULTIMATE (1<<0)#define CHAR_BATTLEFLG_AIBAD (1<<1)#define CHAR_BATTLEFLG_REVERSE (1<<2)#define CHAR_BATTLEFLG_GUARDIAN (1<<3)#define CHAR_BATTLEFLG_NORETURN (1<<4)#define CHAR_BATTLEFLG_RECOVERY (1<<5)#define CHAR_BATTLEFLG_ABIO (1<<6)#define CHAR_BATTLEFLG_NODUCK (1<<7)#define GETITEM_MAX 3typedef struct{ int attacker;}INVADER;typedef struct{ int charaindex; int bid; int escape; int flg; int guardian; int duelpoint; int getitem[GETITEM_MAX];}BATTLE_ENTRY;#define BENT_FLG_ULTIMATE (1<<0)typedef struct{ int type; int flg; int common_dp; BATTLE_ENTRY Entry[BATTLE_ENTRY_MAX];}BATTLE_SIDE;#define BSIDE_FLG_SURPRISE ( 1 << 0 )#define BSIDE_FLG_HELP_OK ( 1 << 1 )typedef struct _Battle{ BOOL use; /* 銀勻化中月井升丹井 */ int battleindex; /* 田玄伙 寞 */ int mode; /* 蜇箕及爵 乒□玉 */ int type; /* 爵 正奶皿 (0:騷橘)(1:DUEL)(2:示旦爵) */ int dpbattle; /* DP田玄伙井" */ int norisk; /* 韶氏匹手伉旦弁及 中田玄伙井" */ int turn; /* 正□件醒 */ int timer; /* 它巨奶玄羈卞銀丹正奶穴 */ int leaderindex; /* 巨件市它件玄毛粟仇仄兇平乓仿及奶件犯永弁旦 */ int winside; /* 厙仄兇扔奶玉 */ int field_att; /* 白奴□伙玉及簞嶺 */ int att_count; /* 白奴□伙玉及簞嶺 祭 及正奶穴 */ int att_pow; /* 白奴□伙玉及簞嶺 祭 及由伐□ */ int field_no; int flg; /* 備潘白仿弘 */ BATTLE_SIDE Side[2];#ifdef _BATTLE_TIMESPEED unsigned int CreateTime; unsigned int EndTime; unsigned int PartTime; int flgTime; #endif#ifdef _PROFESSION_ADDSKILL //冰爆術存放 int ice_count;//暫存數量 int ice_bout[20];//回合計數 BOOL ice_use[20];//是否使用 int ice_toNo[20];//對象 int ice_level[20];//攻擊力 int ice_array[20]; int ice_charaindex[20]; int ice_attackNo[20];#endif#ifdef _DEATH_CONTEND int menum; int tonum;#endif#ifdef _ACTION_BULLSCR int enemynum;#endif int iEntryBack[BATTLE_ENTRY_MAX*2]; // 蟆正□件瓚 今木化中兇丟件田□ int iEntryBack2[BATTLE_ENTRY_MAX*2]; // 蟆正□件瓚 今木化中兇丟件田□ int createindex; /* 仇及爵 毛綜曰請仄兇平乓仿奶件犯永弁旦(NPC卅升) */ int (*WinFunc)( int battleindex, int charaindex );#ifdef _DEATH_CONTEND//計算勝敗func int (*PkFunc)( int menum, int tonum, int winside, int battlemap); int battlemap;#endif struct _Battle *pNext; // 戚及棋爵弘伙□皿 struct _Battle *pBefore; // 蟆及棋爵弘伙□皿}BATTLE;#define BATTLE_FLG_FREEDP ( 1 << 0 ) // 仆化手 蛹日卅中#define BATTLE_FLG_CHARALOST ( 1 << 1 ) // 平乓仿互韶氏分曰 仃兇曰仄化中月enum{ // 曉及field_att 卞 木月襖 BATTLE_ATTR_NONE = 0, // 簞嶺 BATTLE_ATTR_EARTH, // 嘩 BATTLE_ATTR_WATER, // BATTLE_ATTR_FIRE, // 紹 BATTLE_ATTR_WIND, // 氘 BATTLE_ATTR_END};//krynn 2001/12/28enum{ BATTLE_SIDE_RIGHT, // 戰斗中右側 right side of battle BATTLE_SIDE_LEFT, // 戰斗中左側 left side of battle BATTLE_SIDE_WATCH, // 觀戰 watch battle player};//krynn end#define TARGET_SIDE_0 20 // 惘礎 扔奶玉ㄟ 隙爛#define TARGET_SIDE_1 21 // 爾礎 扔奶玉ㄠ 隙爛#define TARGET_ALL 22 // 蟈 隙爛#ifdef __ATTACK_MAGIC#define TARGET_SIDE_0_B_ROW 26 // 右下後一列#define TARGET_SIDE_0_F_ROW 25 // 右下前一列#define TARGET_SIDE_1_F_ROW 24 // 左上前一列#define TARGET_SIDE_1_B_ROW 23 // 左上後一列// won add#define TARGER_THROUGH 27#endifextern int gItemCrushRate; // 莽 犯白巧伙玄extern BATTLE *BattleArray; /* 爵 正旦弁 */extern int BATTLE_battlenum; /* 及醒 */extern char szAllBattleString[BATTLE_STRING_MAX]; /* 爵 卞銀丹戊穴件玉 儂 */extern char *pszBattleTop, *pszBattleLast; /* 爵 卞銀丹 儂 及匏 */extern char szBadStatusString[]; // 旦 □正旦唱橘迕 儂 extern int gWeponType; // 蜇箕及 湛及潘 extern float gDamageDiv; // 母丟□斥坌喃#define BATTLE_CHECKINDEX( a ) ( ((a)>=BATTLE_battlenum || (a)<0 )?(FALSE):(TRUE) )#define BATTLE_CHECKSIDE( a ) ( ((a)>=2 || (a)<0)?(FALSE):( TRUE) )#define BATTLE_CHECKNO( a ) ( ((a)>=20 || (a)<0 )?(FALSE):(TRUE) )#define BATTLE_CHECKADDRESS( a ) ((&BattleArray[0])<=(a) && (a)<=(&BattleArray[BATTLE_battlenum-1] )?(TRUE):(FALSE) ) #define IsBATTLING( a ) (CHAR_getWorkInt((a),CHAR_WORKBATTLEMODE)?(TRUE):(FALSE))#define STRCPY_TAIL( _pszTop, _pszLast, _szBuffer) { int _len = strlen( _szBuffer ); ( _pszTop + _len < (_pszLast)-1 )?( memcpy( _pszTop, _szBuffer, _len ), _pszTop += _len, _pszTop[0] = 0):(0); }#define BATTLESTR_ADD( _szBuffer ){ int _len = strlen( _szBuffer ); ( pszBattleTop + _len < ( pszBattleLast)-1 )?( memcpy( pszBattleTop, _szBuffer, _len ), pszBattleTop += _len, pszBattleTop[0] = 0):(0); }#define BATTLE_MAP_MAX 219#define CH_FIX_PLAYERLEVELUP (+2) // 皿伊奶乩□及伊矛伙互失永皿#define CH_FIX_PLAYERDEAD (-2) // 皿伊奶乩□互騷橘韶#define CH_FIX_PLAYEULTIMATE (-4) // 皿伊奶乩□互失伙 奴丟永玄韶#define CH_FIX_PETESCAPE (-1) // 矢永玄互 仆兇#define AI_FIX_PETLEVELUP (+5*100) // 矢永玄互伊矛伙失永皿#define AI_FIX_PETWIN (+1) // 矢永玄互襯毛邐仄兇#define AI_FIX_PETGOLDWIN (+2*10) // 矢永玄互伊矛伙及嫖中襯毛邐仄兇#define AI_FIX_PETRECOVERY (+10) // 爵 卞莢汊仄化手日勻兇#define AI_FIX_PETRESSURECT (+3*100) // 爵 卞汊唾仄化手日勻兇//#define AI_FIX_PETRECOVERY (+50) // 爵 卞莢汊仄化手日勻兇#define AI_FIX_SEKKAN (-2*100) // 憤坌及矢永玄毛 猾#define AI_FIX_PLAYERULTIMATE (-10*100) // 憤坌及潛諦互失伙 奴丟永玄韶#define AI_FIX_PETULTIMATE (-10*100) // 矢永玄互失伙 奴丟永玄韶#define AI_FIX_PLAYERDEAD (-1*100) // 憤坌及潛諦互竣濮#define AI_FIX_PETDEAD (-5*100) // 矢永玄互竣濮#ifdef _Item_ReLifeActint BATTLE_getBattleDieIndex( int battleindex, int bid );#endifint BATTLE_No2Index( int battleindex, int No);int BATTLE_Index2No( int battleindex, int charaindex);BOOL BATTLE_initBattleArray( int battlenum);int BATTLE_CreateBattle( void );int BATTLE_DeleteBattle( int battleindex);int BATTLE_NewEntry( int charaindex, int battleindex, int side);#define BATTLE_Exit( charaindex, battleindex) _BATTLE_Exit( __FILE__, __LINE__, charaindex, battleindex)INLINE int _BATTLE_Exit( char *file, int line, int charaindex ,int battleindex);#define BATTLE_ExitAll( battleindex) _BATTLE_ExitAll( __FILE__, __LINE__, battleindex)INLINE void _BATTLE_ExitAll( char *file, int line, int battleindex);int BATTLE_CreateVsPlayer( int charaindex0, int charaindex1);int BATTLE_CreateVsEnemy( int charaindex, int mode, int npcindex);int BATTLE_CountEntry( int battleindex, int side);int BATTLE_Loop( void );int BATTLE_FinishSet( int battleindex );int BATTLE_StopSet( int battleindex );int BATTLE_RescueEntry( int charaindex, int toindex);int BATTLE_PetDefaultExit( int charaindex, int battleindex);int BATTLE_PetDefaultEntry( int charaindex, // 矢永玄毛 勻化中月皿伊奶乩□及 int battleindex,// 田玄伙奶件犯永弁旦 int side);BOOL BATTLE_RescueTry( int charaindex);BOOL BATTLE_RescueParentTry( int charaindex, int pindex );int BATTLE_DefaultAttacker( int battleindex, int side);BOOL BATTLE_IsThrowWepon( int itemindex);void BATTLE_BadStatusString( int defNo, int status );int BATTLE_MultiList( int battleindex, int toNo, int ToList[] );BOOL BATTLE_IsCharge( int com );BOOL BATTLE_CanMoveCheck( int charaindex );int BATTLE_TargetCheck( int battleindex, int defNo);char *BATTLE_CharTitle( int charaindex );void BATTLE_EscapeDpSend( int battleindex, int charaindex );int BATTLE_GetDuelPoint( int battleindex, int side, int num);void BATTLE_MultiListDead( int battleindex, int toNo, int ToList[] );BOOL BATTLE_WatchTry( int charaindex);int BATTLE_WatchEntry( int charaindex, int toindex);void BATTLE_WatchStop( int charaindex );int BATTLE_WatchUnLink( int battleindex );void BATTLE_BpSendToWatch( BATTLE *pBattle, char *pszBcString);int BATTLE_GetWepon( int charaindex );#ifdef _ITEM_EQUITSPACEint BATTLE_GetEqShield( int charaindex );#endifint BATTLE_GetAttackCount( int charaindex );int DoujyouRandomWeponSet( int charaindex );void BATTLE_AttReverse( int charaindex );void BATTLE_BadStatusAllClr( int charaindex );#define CHAR_GETWORKINT_HIGH( index, pos ) ( CHAR_getWorkInt( (index), (pos) ) >> 16 )#define CHAR_SETWORKINT_HIGH( index, pos, set ) { int iTmp = CHAR_getWorkInt( (index), (pos) ) & 0xFFFF, work = (set); CHAR_setWorkInt( (index), (pos), (work << 16)|iTmp ); }#define CHAR_GETWORKINT_LOW( index, pos ) ( CHAR_getWorkInt( (index), (pos) ) & 0xFFFF )#define CHAR_SETWORKINT_LOW( index, pos, set ) { int iTmp = CHAR_getWorkInt( index, pos ) & 0xFFFF0000, work = (set); CHAR_setWorkInt( (index), (pos), (work & 0x0000FFFF) | iTmp ); }int Battle_getTotalBattleNum();#ifdef _TYPE_TOXICATIONvoid CHAR_ComToxicationHp( int charaindex);#endif#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能void BATTLE_ProfessionStatus_init( int battleindex, int charaindex );void BATTLE_ProfessionStatusSeq( int battleindex, int charaindex);#endif#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -