⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 battle.h

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 H
📖 第 1 页 / 共 2 页
字号:
	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);int BATTLE_TargetCheckDead(	int battleindex, int defNo);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 + -