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

📄 net_face.cpp

📁 网页游戏赤壁
💻 CPP
📖 第 1 页 / 共 4 页
字号:
									Diff_Ally_Status=Temp_Ally[Ally_Use];
									break;
								}*/
						}
					sscanf((char *)DP_ReadMessage ,"%d %d %s %d %d %d %d %d %d %d %d %d %d %d %s",&MessageType,&Game_Boy_Num,DP_NetPlayerInfor[j].PlayerName,
													   &DP_NetPlayerInfor[j].MasterNO,&DP_NetPlayerInfor[j].Ally_Infor[0],
													   &DP_NetPlayerInfor[j].Ally_Infor[1],&DP_NetPlayerInfor[j].Ally_Infor[2],
													   &DP_NetPlayerInfor[j].Ally_Infor[3],&DP_NetPlayerInfor[j].Ally_Infor[4],
													   &GAME_bNetPlayerOK[0],&GAME_bNetPlayerOK[1],&GAME_bNetPlayerOK[2],
													   &GAME_bNetPlayerOK[3],&GAME_bNetPlayerOK[4],
													   DP_NetPlayerInfor[j].Map_Name);
					strcpy( GAME.strPathMED, "netmeds\\" ) ;
					strcpy(GAME.strNameMED,DP_NetPlayerInfor[1].Map_Name);
/*					if(Diff_Ally_NO!=0)
						{
							GAME_SetAlly(Game_Boy_Num,Diff_Ally_NO,Diff_Ally_Status);
						}*/
//					GAME.Players[j].nID=DP_NetPlayerInfor[j].MasterNO;
//					GAME.Players[j].nAllies[0]=DP_NetPlayerInfor[j].Ally_Infor[0];
//					GAME.Players[j].nAllies[1]=DP_NetPlayerInfor[j].Ally_Infor[1];
//					GAME.Players[j].nAllies[2]=DP_NetPlayerInfor[j].Ally_Infor[2];
//					GAME.Players[j].nAllies[3]=DP_NetPlayerInfor[j].Ally_Infor[3];
//					GAME.Players[j].nAllies[4]=DP_NetPlayerInfor[j].Ally_Infor[4];

					// to send a message for to update the set message of the network game
					SendMessage( hwndGame, WM_COMMAND, NET_UPDATESETTING, 0 );}
					break;
			case	DP_START_GAME:
						{
							memset((char *)DH_JoinPlayer,DH_NOPLAY,sizeof(DH_JoinPlayer));
							for(int	j=0;j<5;j++)
								{
									if(DP_PlayerInformation[j].DP_dcoID!=0)
										{DH_JoinPlayer[j+1]=DH_PLAY;}
									else{DH_JoinPlayer[j+1]=DH_NOPLAY;}
								}
							for(int	Players=0;Players<GAME_PLAYER_MAX;Players++)
								{
									if(DH_JoinPlayer[Players]==DH_NOPLAY){continue;}
									if(GAME_bNetPlayerOK[Players]!=TRUE)
										{break;}
								}
							if(Players<GAME_PLAYER_MAX){break;}
							GAME_bNetwork=1;
							if(GAME.nMe==1){Game_Ctrl_Status=DH_CTRL;}
							else{Game_Ctrl_Status=DH_NO_CTRL;}
							CB_Counter=0;
							PostMessage(hwndGame,WM_COMMAND,BUTTON_MENU_MAIN_NETWORK_NEWGAME_OK, 1);
						}
					break;
			case	DP_CTRL_SEND:
						{
							int		DH_CtrlSendFrom,DH_CtrlSendTo;
							DH_CtrlSendFrom=0;
							DH_CtrlSendTo=0;
							Game_Boy_Syn_Num=0;
							sscanf((char *)DP_ReadMessage ,"%d %d %d %d",&MessageType,&DH_CtrlSendFrom,&DH_CtrlSendTo,&Game_Boy_Syn_Num);
////////////////////////////////////////////////////////
							DH_CurrentCtrlPlayer=DH_CtrlSendTo;
////////////////////////////////////////////////////////
							if(DH_CtrlSendTo==1)
								{
									if(Game_Boy_Syn_Num==CB_Counter)
										{
/*											memset(DP_SendMessageBuff,0,sizeof(DP_SendMessageBuff)-1);
											wsprintf((char *)DP_SendMessageBuff,"%d %d %d %d",DP_CTRL_RETURN,GAME.nMe,DH_CtrlSendFrom,Game_Boy_Syn_Num);
											if(DP_NetworkInterface(DP_SEND_MESSAGE,NULL)!=OK)
												{
													#ifdef	NETWORK
													MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
													#endif
												}*/
//											if(GAME.nMe==1)
//												{Game_Ctrl_Status=DH_CTRL;}
											DH_GoNextLevel=DH_ACCEPT_GO;
////////////////////////////////////
/*
			WriteLogFile( "NetErr1.log", "b:" );
			WriteErrorFile( "NetErr1.log", CB_Counter );
			WriteErrorFile( "NetErr1.log", Game_Boy_Syn_Num );
			WriteErrorFile( "NetErr1.log", DH_GoNextLevel );
*/
////////////////////////////////////
											memset((void *)DP_ReadMessage,0x00,sizeof(DP_ReadMessage)-1);
											return(-1);
											break;
										}
								}
							if(DH_CtrlSendTo==GAME.nMe)
								{
////////////////////////////////////
/*
			WriteLogFile( "NetErr1.log", "-------------------------\n" );
			WriteLogFile( "NetErr1.log", "a:" );
			WriteErrorFile( "NetErr1.log", CB_Counter );
			WriteErrorFile( "NetErr1.log", Game_Boy_Syn_Num );
*/
////////////////////////////////////

									if(Game_Boy_Syn_Num==CB_Counter)
										{
/*											memset(DP_SendMessageBuff,0,sizeof(DP_SendMessageBuff)-1);
											wsprintf((char *)DP_SendMessageBuff,"%d %d %d %d",DP_CTRL_ANSWER,GAME.nMe,DH_CtrlSendFrom,Game_Boy_Syn_Num);
											if(DP_NetworkInterface(DP_SEND_MESSAGE,NULL)!=OK)
												{
													#ifdef	NETWORK
													MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
													#endif
												}*/
											Game_Ctrl_Status=DH_CTRL;
											break;
										}
								}
						}
					break;
			case	DP_CTRL_ANSWER:
						{
							if(Game_Ctrl_Status==DH_CTRL)
								{Game_Ctrl_Status=DH_NO_CTRL;}
						}
					break;
			case	DP_CTRL_RETURN:
						{
							int		DH_ReturnSendFrom;
							DH_ReturnSendFrom=0;
							sscanf((char *)DP_ReadMessage ,"%d %d ",&MessageType,&DH_ReturnSendFrom);
							Game_Return_Status[DH_ReturnSendFrom]=DH_ALREADY_RETURN;
							break;
						}
					break;
/*			case	DP_SYN_ANSWER:
					{
						sscanf((char *)DP_ReadMessage,"%d %d %d",&MessageType,&Game_Boy_Num,&Game_Boy_Syn_Num);
						if(Game_Boy_Syn_Num==CB_Counter)
							{
								Game_Syn_Status[Game_Boy_Num]=0;
							}

					}
					break;*/
			case	DP_DESTROY_PLAYER:
					{
						int		Destroy_Num;
						sscanf((char *)DP_ReadMessage,"%d %d",&MessageType,&Game_Boy_Num);
						GAME_bNetPlayerOK[Game_Boy_Num]=FALSE;
						if((Game_Boy_Num==GAME.nMe)||(Game_Boy_Num==1))
							{
//							if(FACE_GetProgramState() == PROGRAM_STATE_PLAY){DH_GoNextLevel=DH_AGAINST_GO;}
								GAME_bNetPlayerOK[0]=FALSE;
								GAME_bNetPlayerOK[1]=FALSE;
								GAME_bNetPlayerOK[2]=FALSE;
								GAME_bNetPlayerOK[3]=FALSE;
								GAME_bNetPlayerOK[4]=FALSE;
								if(DP_NetworkInterface(DP_DESTROY_GAME,NULL)!=OK)
									{
										#ifdef	NETWORK
//										MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
										#endif
									}
								if(Game_Boy_Num==1)
									{
//										for(Destroy_Num=0;Destroy_Num<MAX_NAME_LENGTH;Destroy_Num++)
//											{
//												GAME.Players[Destroy_Num].nType = PLAYER_TYPE_NONE;
//											}
//										GAME.nMe=0;
									}
//								else{GAME.Players[Game_Boy_Num].nType = PLAYER_TYPE_NONE;}
								if(FACE_GetProgramState() != PROGRAM_STATE_PLAY)
									{PostMessage(hwndGame, WM_COMMAND, BUTTON_MENU_MAIN_NETWORK_IPX_SETNET_EXIT, BUTTON_MENU_MAIN_NETWORK_IPX_CREATE_EXIT1) ;}
								if((FACE_GetProgramState() == PROGRAM_STATE_PLAY)&&(Game_Boy_Num==1)&&(IF_GoBackMain==NO_GO_BAK))
									{PostMessage(hwndGame, WM_COMMAND, SHOW_BATTLE_RESULT, 0) ;IF_GoBackMain=ALREADY_GO_BAK;}
								//send exit message
								//PostMessage();
							}
						DH_JoinPlayer[Game_Boy_Num]=DH_NOPLAY;
						if(GAME.nMe==1)
							{
								DH_CurrentCtrlPlayer=1;
								Game_Ctrl_Status=DH_CTRL;
								NW_BeginTime=timeGetTime();
							}
						for(Destroy_Num=0;Destroy_Num<GAME_PLAYER_MAX;Destroy_Num++)
							{
								GAME_SetAlly(Destroy_Num,Game_Boy_Num,DP_NO_ALLY);
							}
						DP_PlayerInformation[Game_Boy_Num-1].DP_dcoID=0;
						for(Destroy_Num=0;Destroy_Num<MAX_NAME_LENGTH;Destroy_Num++)
							{
								DP_PlayerInformation[Game_Boy_Num-1].DP_NickName[Destroy_Num]='\0';
							}
						if((Game_Boy_Num!=GAME.nMe)&&(Game_Boy_Num!=1))
							{
								GAME.Players[Game_Boy_Num].nType = PLAYER_TYPE_NONE;
								if(FACE_GetProgramState() != PROGRAM_STATE_PLAY)
									{SendMessage( hwndGame, WM_COMMAND, NET_UPDATESETTING, 0 );}
							}
//						if(Game_Boy_Num==GAME.nMe){GAME.nMe=0;}
					}
					break;
			default:
//					MessageBox(NULL,"Message Type error!!!"," Error",MB_OK);
					break;
		}

	memset((void *)DP_ReadMessage,0x00,sizeof(DP_ReadMessage)-1);
	return(OK);
}


int	DH_SendCounterMessage(int Counter)
{

	memset(DP_SendMessageBuff,0,sizeof(DP_SendMessageBuff));
	wsprintf((char *)DP_SendMessageBuff,"%d %d %d",DP_MESSAGE_SYN,GAME.nMe,Counter);
	if(DP_NetworkInterface(DP_SEND_MESSAGE,NULL)!=OK)
		{
			#ifdef	NETWORK
			MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
			#endif
		}
	return(OK);
}


 

int	DH_ServerInit()
{
	DP_NetworkInterface(DP_INIT_NETWORK_STEP_1,hwndGame);
	DP_ProviderNO=0;
	DP_NetworkInterface(DP_INIT_NETWORK_STEP_2,NULL);
	DP_FullName=new char[20];//创建Session部分开始
	DP_NickName=new char[20];
	strcpy(DP_FullName,"Session1");
	strcpy(DP_NickName,"server");
	DP_NetworkInterface(DP_CREATE_SESSION,NULL);//创建Session部分结束
	return(OK);
}
 
int	DH_ClientInit()
{

	DP_NetworkInterface(DP_INIT_NETWORK_STEP_1,hwndGame);
	DP_ProviderNO=0;
	DP_NetworkInterface(DP_INIT_NETWORK_STEP_2,NULL);
	DP_NetworkInterface(DP_GET_SESSION,NULL);//联接Session部分开始
	DP_SessionNO=0;
	DP_NickName=new char[20];
	strcpy(DP_NickName,"client1");
	DP_NetworkInterface(DP_CONNECT_SESSION,NULL);//联接Session部分结束
	return(OK);
}


void DH_NetworkReceive()
{
	int	i,j;
//	int	t;
	int	Answer;
	int	AllAnswer=0;
	int	CounterStatus;
	int	TaskStatus;
	int	LastTime;
	int	NowTime;
	int	TimeOut;
	int	Times;
	int	TaskFlag;

	TaskFlag=DH_NO_SEND_TASK;
	TaskStatus=-1;
	CounterStatus=-1;
	AllAnswer=0;
	DH_AnswerStatus=-1;
	IF_GoBackMain=NO_GO_BAK;
	memset(DH_TaskAnswer,0,sizeof(DH_TaskAnswer));
	memset(Game_Return_Status,DH_ALREADY_RETURN,sizeof(Game_Return_Status));
	memset((void *)Games_Status,-1,sizeof(Games_Status));
	for(Answer=0;Answer<GAME_PLAYER_MAX;Answer++)
		{
			if(Answer==GAME.nMe){continue;}
			if(DH_JoinPlayer[Answer]==DH_NOPLAY)
				{
					Games_Status[Answer]=0;
					continue;
				}
		}
	LastTime=0;
	NowTime=0;
	TimeOut=DH_NO_TIMEOUT;
	DH_ReceiveAnswer=-1;
	Times=0;
	for(Answer=0;Answer<GAME_PLAYER_MAX;Answer++)
		{
			if(Answer==GAME.nMe){continue;}
			if(DH_JoinPlayer[Answer]==DH_NOPLAY)
				{continue;}
			Game_Return_Status[Answer]=DH_NO_RETURN;
		}
	DH_GoNextLevel=DH_AGAINST_GO;
//////////////////////////////
	DH_CurrentCtrlPlayer=1;
	NW_BeginTime=timeGetTime();
//////////////////////////////
	if(GAME.nMe==1){Game_Ctrl_Status=DH_CTRL;}
	if(GAME.nMe!=1){Game_Ctrl_Status=DH_NO_CTRL;}
//	while((Games_Status[0]!=0)||(Games_Status[1]!=0)||(Games_Status[2]!=0)||(Games_Status[3]!=0)||(Games_Status[4]!=0)||(DH_AnswerStatus!=0))
	while(DH_GoNextLevel==DH_AGAINST_GO)
		{
			if(GAME.nMe==0){break;}
///////////////////////////////////////////////
			if((timeGetTime()-NW_BeginTime)>OUTTIME)
				{
/*					if((Times==0)&&(CB_Counter!=0))
						{
							char	test32[255];
							wsprintf(test32,"=========%d=======\n",CB_Counter);
							WriteLogFile("Test_message.log",(char *)test32);
							Times=1;
							if(GAME.nMe==1)
								{
									DH_CurrentCtrlPlayer=1;
									NW_BeginTime=timeGetTime();
//									DH_GoNextLevel=DH_AGAINST_GO;
									Game_Ctrl_Status=DH_CTRL;
								}
							else{
									DH_CurrentCtrlPlayer=1;
									NW_BeginTime=timeGetTime();
//									DH_GoNextLevel=DH_AGAINST_GO;
									Game_Ctrl_Status=DH_NO_CTRL;
								}
							continue;
						}*/
					if((DH_CurrentCtrlPlayer==1)&&(CB_Counter!=0)&&(CB_Counter!=1))//{PostMessage();}//send exit message
						{
//////////////////////////////////////////
							GAME_bNetPlayerOK[0]=FALSE;
							GAME_bNetPlayerOK[1]=FALSE;
							GAME_bNetPlayerOK[2]=FALSE;
							GAME_bNetPlayerOK[3]=FALSE;
							GAME_bNetPlayerOK[4]=FALSE;
							if(DP_NetworkInterface(DP_DESTROY_GAME,NULL)!=OK)
								{
									#ifdef	NETWORK
//									MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
									#endif
								}
							if(DH_CurrentCtrlPlayer==1)
								{
									for(int	Destroy_Num=0;Destroy_Num<MAX_NAME_LENGTH;Destroy_Num++)
										{
//											GAME.Players[Destroy_Num].nType = PLAYER_TYPE_NONE;
										}
///									GAME.nMe=0;
								}
							if((FACE_GetProgramState() == PROGRAM_STATE_PLAY)&&(DH_CurrentCtrlPlayer==1)&&(IF_GoBackMain==NO_GO_BAK))
								{PostMessage(hwndGame, WM_COMMAND, SHOW_BATTLE_RESULT, 0) ;IF_GoBackMain=ALREADY_GO_BAK;DH_GoNextLevel=DH_ACCEPT_GO;continue;}
							if(IF_GoBackMain==ALREADY_GO_BAK){DH_GoNextLevel=DH_ACCEPT_GO;continue;}
							DH_JoinPlayer[0]=DH_NOPLAY;
							DH_JoinPlayer[1]=DH_NOPLAY;
							DH_JoinPlayer[2]=DH_NOPLAY;
							DH_JoinPlayer[3]=DH_NOPLAY;
							DH_JoinPlayer[4]=DH_NOPLAY;
							for(int	Destroy_Num=0;Destroy_Num<GAME_PLAYER_MAX;Destroy_Num++)
								{
									GAME_SetAlly(Destroy_Num,1,DP_NO_ALLY);
									GAME_SetAlly(Destroy_Num,2,DP_NO_ALLY);
									GAME_SetAlly(Destroy_Num,3,DP_NO_ALLY);
									GAME_SetAlly(Destroy_Num,4,DP_NO_ALLY);
								}

⌨️ 快捷键说明

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