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

📄 battle_magic.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 5 页
字号:
	int attackNo,		// 井仃月谛  寞	int toNo,			// 井仃日木月谛  寞	int power,			// 湘  荚汊袄	int per,			// ⊙井"	int UseEffect,		// 银丹谛及巨白尼弁玄	int RecevEffect		// 井仃日木月谛及巨白尼弁玄)////***********************************************************{	int i, toindex, UpPoint = 0, workhp;	int ToList[SIDE_OFFSET*2+1];	//char szBuffer[256]="";	char szCommand[256];	BATTLE_MultiListDead( battleindex, toNo, ToList );	BATTLE_MagicEffect(		battleindex, 			// 田玄伙奶件犯永弁旦		attackNo, 				// 井仃月谛  寞(ㄟ  ㄠㄨ)		ToList, 				// 井仃日木月谛  寞伉旦玄(ㄟ  ㄠㄨ)		UseEffect, 				// 井仃月谛巨白尼弁玄		RecevEffect				// 井仃日木月谛巨白尼弁玄	);	// 汊唾今六月	for( i = 0; ToList[i] != -1; i ++ ){		// 锹澎及奶件犯永弁旦		toindex = BATTLE_No2Index( battleindex, ToList[i] );		//           反皿伊奶乩□及戏五忒曰  仄		if( BattleArray[battleindex].type == BATTLE_TYPE_P_vs_P		&& CHAR_getInt( toindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER		){			continue;		}		// 竣濮仄化中卅仃木壬汊唾今六卅中		if( CHAR_getFlg( toindex, CHAR_ISDIE ) == FALSE ){			continue;		}		// 公及引引及煌遥		UpPoint = power;		if( per ){			// ⊙煌遥			UpPoint *= CHAR_getWorkInt( toindex, CHAR_WORKMAXHP ) * 0.01;		}		if( power == 0 ){			// 仇及桦宁反敦蝈荚汊			UpPoint = CHAR_getWorkInt( toindex, CHAR_WORKMAXHP );		}else{			// 荚汊汹卞汔毛  凶六月(漆反赝癫)			UpPoint = RAND( (power*0.9), (power*1.1) );		}		//   斓匹手ㄠ		UpPoint = max( 1, UpPoint );		workhp = CHAR_getInt( toindex, CHAR_HP ) + UpPoint;		//     毛译尹卅中方丹卞荚汊		CHAR_setInt( toindex, CHAR_HP,			min( workhp, CHAR_getWorkInt( toindex, CHAR_WORKMAXHP ) ) );		// 汊唾		CHAR_setFlg( toindex, CHAR_ISDIE, 0 );		//snprintf( szBuffer, sizeof(szBuffer),		//	"(%s)恢复意识",		//		CHAR_getUseName( toindex ) );		//   须  煤		//BATTLE_BroadCast( battleindex, szBuffer,		//	(attackNo >= 10)? CHAR_COLORGRAY : CHAR_COLORPURPLE ) ;		// (汊唾)戊穴件玉毛中木月		snprintf( szCommand, sizeof(szCommand),				"BL|r%X|h%X|", ToList[i], CHAR_getInt( toindex, CHAR_HP ) );		//   侬  馨笛		BATTLESTR_ADD( szCommand );/*		{	int Sign, Damage;			Sign = (UpPoint >= 0)?(1):(0);			Damage = ABS( UpPoint );			// (    荚汊)戊穴件玉毛中木月			snprintf( szCommand, sizeof(szCommand),				"BD|r%X|%X|%X|d%X|", ToList[i], 0, Sign, Damage );		}		//   侬  馨笛		BATTLESTR_ADD( szCommand );*/		// 衬午及爵    匹伉旦弁互卅井匀凶日		if( BattleArray[battleindex].norisk == 0		 &&	BattleArray[battleindex].type == BATTLE_TYPE_P_vs_E		 ){			// 仇仇匹矢永玄分匀凶日袄毛皿仿旦允月			if( CHAR_getInt( toindex, CHAR_WHICHTYPE ) == CHAR_TYPEPET ){				CHAR_PetAddVariableAi( toindex, AI_FIX_PETRESSURECT );			}		}	}	return;}#ifdef _Item_ReLifeActvoid BATTLE_MultiReLife( int battleindex, int attackNo, int toNo, 						int power, int RecevEffect ){	int i, toindex, UpPoint = 0, workhp;	int ToList[SIDE_OFFSET*2+1];	//char szBuffer[256]="";	char szCommand[256];	char buf1[256];	memset(szCommand, 0, sizeof(szCommand));	BATTLE_MultiListDead( battleindex, toNo, ToList );	//snprintf( szCommand, sizeof(szCommand),	"Bj|");	for( i = 0; ToList[i] != -1; i ++ ){		toindex = BATTLE_No2Index( battleindex, ToList[i] );		//if( BattleArray[battleindex].type == BATTLE_TYPE_P_vs_P		//&& CHAR_getInt( toindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER ){		//	continue;		//}		if( CHAR_getFlg( toindex, CHAR_ISDIE ) == FALSE ){			continue;		}		UpPoint = power;		workhp = max( 1, UpPoint );		CHAR_setInt( toindex, CHAR_HP, min( workhp, CHAR_getWorkInt( toindex, CHAR_WORKMAXHP ) ) );		CHAR_setFlg( toindex, CHAR_ISDIE, 0 );		//snprintf( szBuffer, sizeof(szBuffer), "(%s)恢复意识", CHAR_getUseName( toindex ) );		snprintf( buf1, sizeof(buf1),			"BJ|a%X|m%X|e%X|e%X|FF|",			ToList[i],			CHAR_getInt( toindex, CHAR_MP ),			RecevEffect, //MyEffect,			0  //ToEffect		);		strcat( szCommand, buf1);		snprintf( buf1, sizeof(buf1),			"BL|r%X|h%X|", ToList[i], CHAR_getInt( toindex, CHAR_HP ) );		strcat( szCommand, buf1);		if( BattleArray[battleindex].norisk == 0		 &&	BattleArray[battleindex].type == BATTLE_TYPE_P_vs_E ){			if( CHAR_getInt( toindex, CHAR_WHICHTYPE ) == CHAR_TYPEPET ){				CHAR_PetAddVariableAi( toindex, AI_FIX_PETRESSURECT );			}		}	}	//strcat( szCommand, "FF|");	BATTLESTR_ADD( szCommand );	return;}#endifvoid BATTLE_MultiStatusChange(	int battleindex, 	// 田玄伙奶件犯永弁旦	int attackNo,		// 井仃月谛  寞	int toNo,			// 井仃日木月谛  寞	int status,			// 旦  □正旦潘  	int turn,			// 正□件醒	int UseEffect,		// 银丹谛及巨白尼弁玄	int RecevEffect,	// 井仃日木月谛及巨白尼弁玄	int Success			// 岳    ){	int i, toindex, charaindex;	int perStatus;	int ToList[SIDE_OFFSET*2+1];	//char szBuffer[256]="";	BATTLE_MultiList( battleindex, toNo, ToList );	BATTLE_MagicEffect(		battleindex, 			// 田玄伙奶件犯永弁旦		attackNo, 				// 井仃月谛  寞(ㄟ  ㄠㄨ)		ToList, 				// 井仃日木月谛  寞伉旦玄(ㄟ  ㄠㄨ)		UseEffect, 				// 井仃月谛巨白尼弁玄		RecevEffect				// 井仃日木月谛巨白尼弁玄	);	charaindex = BATTLE_No2Index( battleindex, attackNo );	for( i = 0; ToList[i] != -1; i ++ ){		toindex = BATTLE_No2Index( battleindex, ToList[i] );		if( BATTLE_StatusAttackCheck( charaindex,			toindex, status, Success, 30, 1.0, &perStatus ) == FALSE ){			//snprintf( szBuffer, sizeof(szBuffer),			//	"(%s)无法将(%s)做成(%s)(%d%%)",			//	CHAR_getUseName( charaindex ),			//	CHAR_getUseName( toindex ),			//	aszStatusFull[status],			//	perStatus			//);			//BATTLE_BroadCast( battleindex, szBuffer,			//	(attackNo >= 10)? CHAR_COLORGRAY : CHAR_COLORPURPLE ) ;		}else{			CHAR_setWorkInt( toindex, StatusTbl[status], turn );			if( status == BATTLE_ST_PARALYSIS			||  status == BATTLE_ST_SLEEP			||  status == BATTLE_ST_STONE			||  status == BATTLE_ST_BARRIER	){				CHAR_setWorkInt( toindex, CHAR_WORKBATTLECOM1, BATTLE_COM_NONE );			}			//snprintf( szBuffer, sizeof(szBuffer),			//	"(%s)将(%s)做成(%s)(%d%%)",			//	CHAR_getUseName( charaindex ),			//	CHAR_getUseName( toindex ),			//	aszStatusFull[status],			//	perStatus			//);			//BATTLE_BroadCast( battleindex, szBuffer,			//	(attackNo >= 10)? CHAR_COLORGRAY : CHAR_COLORPURPLE ) ;			BATTLE_BadStatusString( ToList[i], status );		}	}	return;}#ifdef _OTHER_MAGICSTAUTSvoid BATTLE_MultiMagicStatusChange( int battleindex, int attackNo, int toNo, int status, int turn,	int UseEffect, int RecevEffect, int nums ){	int i, j, toindex, charaindex;	int ToList[SIDE_OFFSET*2+1];	BATTLE_MultiList( battleindex, toNo, ToList );	BATTLE_MagicEffect( battleindex, attackNo, ToList, UseEffect, RecevEffect );	charaindex = BATTLE_No2Index( battleindex, attackNo );	for( i = 0; ToList[i] != -1; i ++ ){		toindex = BATTLE_No2Index( battleindex, ToList[i] );		for( j=1; j<MAXSTATUSTYPE; j++)	{			if( CHAR_getWorkInt( toindex, MagicTbl[j]) <= 0 ) continue;			break;		}		if( j == MAXSTATUSTYPE )	{//			char szBuffer[256]="";			CHAR_setWorkInt( toindex, MagicTbl[status], turn );			CHAR_setWorkInt( toindex, CHAR_OTHERSTATUSNUMS, nums );//			sprintf( szBuffer, "Bm|%X|%X|", ToList[i], status );//			BATTLESTR_ADD( szBuffer );		}	}	return;}#endif//***********************************************************////    芊羁匹  醒及平乓仿弁正□毛旦  □正旦荚汊//void BATTLE_MultiStatusRecovery(	int battleindex, 	// 田玄伙奶件犯永弁旦	int attackNo,		// 井仃月谛  寞	int toNo,			// 井仃日木月谛  寞	int status,			// 旦  □正旦潘  	int UseEffect,		// 银丹谛及巨白尼弁玄	int RecevEffect		// 井仃日木月谛及巨白尼弁玄)////***********************************************************{	int i, j, toindex, charaindex, tostatus;	int ToList[SIDE_OFFSET*2+1];	//char szBuffer[256]="";	BATTLE_MultiList( battleindex, toNo, ToList );	BATTLE_MagicEffect(		battleindex, 			// 田玄伙奶件犯永弁旦		attackNo, 				// 井仃月谛  寞(ㄟ  ㄠㄨ)		ToList, 				// 井仃日木月谛  寞伉旦玄(ㄟ  ㄠㄨ)		UseEffect, 				// 井仃月谛巨白尼弁玄		RecevEffect				// 井仃日木月谛巨白尼弁玄	);	charaindex = BATTLE_No2Index( battleindex, attackNo );	// 旦  □正旦唱橘荚汊今六月	for( i = 0; ToList[i] != -1; i ++ ){		// 锹澎及奶件犯永弁旦		toindex = BATTLE_No2Index( battleindex, ToList[i] );		// 锹澎互升及旦  □正旦井"		tostatus = 0;		//检查异常状态		for( j = 1; j < BATTLE_ST_END; j ++ ){			if( CHAR_getWorkInt( toindex, StatusTbl[j] ) > 0 ){				tostatus = j;			}		}		//======== 仇仇匹岳  井升丹井毛  烂今六月 ==========		if( tostatus == 0 ){//正常			// 撩  凛//	print("\n vincent--很健康");			//snprintf( szBuffer, sizeof(szBuffer),			//	"(%s)很健康",			//	CHAR_getUseName( toindex ) );		}else		// 蝈莒隙烂匹尕麻僖分匀凶日		if( ( status == 0 && tostatus != 0 && tostatus <= CHAR_WORKCONFUSION ) // 蝈莒隙烂匹尕麻僖//找到异常		||	( status == tostatus ) // 唱橘午荚汊椭互穴永民仄凶		){			// 荚汊允月			CHAR_setWorkInt( toindex, StatusTbl[tostatus], 0 );#ifdef _MAGIC_NOCAST			if( StatusTbl[tostatus] == CHAR_WORKNOCAST ){            //print("\nvincent-->lssproto_NC_send");			lssproto_NC_send( getfdFromCharaIndex( toindex ), 0);//沉默解除			}#endif//	print("\n vincent--解除了:%d",tostatus);			// 岳  凛			//snprintf( szBuffer, sizeof(szBuffer),			//	"(%s)解除了(%s)的(%s)",			//	CHAR_getUseName( charaindex ),			//	CHAR_getUseName( toindex ),			//	aszStatusFull[tostatus]			//);			// 仇仇匹旦  □正旦唱橘迕  侬  戊穴件玉毛中木月			BATTLE_BadStatusString( ToList[i], 0 );//解除异常		}else{//	print("\n vincent--不");			// 撩  凛/*			snprintf( szBuffer, sizeof(szBuffer),				"(%s)不(%s)",				CHAR_getUseName( toindex ),				aszStatusFull[status]			);*/		}		//   须  煤		//BATTLE_BroadCast( battleindex, szBuffer,		//	(attackNo >= 10)? CHAR_COLORGRAY : CHAR_COLORPURPLE ) ;	}	return;}//***********************************************************////    芊羁匹  醒及平乓仿弁正□毛  芊  豢//void BATTLE_MultiMagicDef(	int battleindex, 	// 田玄伙奶件犯永弁旦	int attackNo,		// 井仃月谛  寞	int toNo,			// 井仃日木月谛  寞	int kind,			// 升及  芊  豢井	int count,			// 荚醒	int UseEffect,		// 银丹谛及巨白尼弁玄	int RecevEffect		// 井仃日木月谛及巨白尼弁玄)////***********************************************************{	int i, toindex, charaindex;	int ToList[SIDE_OFFSET*2+1];	//char szBuffer[256]="";	BATTLE_MultiList( battleindex, toNo, ToList );	BATTLE_MagicEffect(		battleindex, 			// 田玄伙奶件犯永弁旦		attackNo, 				// 井仃月谛  寞(ㄟ  ㄠㄨ)		ToList, 				// 井仃日木月谛  寞伉旦玄(ㄟ  ㄠㄨ)		UseEffect, 				// 井仃月谛巨白尼弁玄		RecevEffect				// 井仃日木月谛巨白尼

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -