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

📄 net_face.cpp

📁 网页游戏赤壁
💻 CPP
📖 第 1 页 / 共 4 页
字号:
//							GAME.nMe=0;
//////////////////////////////////////////
						}
					if((DH_CurrentCtrlPlayer!=1)&&(GAME.nMe==1))
						{
							//李海军的函数进行选择是删除玩家还是从新试过
							if(((CB_Counter==0)||(CB_Counter==1))&&((timeGetTime()-NW_BeginTime)>60000))
								{
									SendMessage( hwndGame, WM_COMMAND, INNER_PLAYER_LOSE, DH_CurrentCtrlPlayer );
									Send_Destroy_Other(DH_CurrentCtrlPlayer);
									DH_CurrentCtrlPlayer=1;
									Game_Ctrl_Status=DH_CTRL;
									NW_BeginTime=timeGetTime();
								}
							if((CB_Counter!=0)&&(CB_Counter!=1))
								{
									SendMessage( hwndGame, WM_COMMAND, INNER_PLAYER_LOSE, DH_CurrentCtrlPlayer );
									Send_Destroy_Other(DH_CurrentCtrlPlayer);
									DH_CurrentCtrlPlayer=1;
									Game_Ctrl_Status=DH_CTRL;
									NW_BeginTime=timeGetTime();
								}

						}
				}
///////////////////////////////////////////////
			while(DH_ReceiveMessage()!=-1);
////////////////////////////////////
					if(DH_GoNextLevel==DH_ACCEPT_GO)
						{
//							WriteLogFile( "NetErr1.log", "c:" );
//							WriteErrorFile( "NetErr1.log", CB_Counter );
//							WriteErrorFile( "NetErr1.log", Game_Ctrl_Status );
						}
////////////////////////////////////
			if(Game_Ctrl_Status==DH_NO_CTRL)
				{continue;}
////////////////////////////////////
			if(TaskFlag==DH_NO_SEND_TASK)
				{
					for(i=0;i<GAME_PLAYER_MAX;i++)
						{
							for(j=0;j<CTRL_TASK_LIST_MAX+CTRL_TASK_LIST_MAX;j++)
								{
									if(i!=GAME.nMe)
										{break;}
//									if(CTRL_TaskList[i][CTRL_nTaskHeader[GAME.nMe]].nTaskID==0){break;}
									if(CTRL_TaskList[i][j].nTaskID==0)
										{continue;}
									if(DH_ComputerTaskNum[j]!=0)
										{continue;}
									TaskFlag=DH_ALREADY_SEND_TASK;
									wsprintf((char *)DP_SendMessageBuff,"%d %d %d %d %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld %d",DP_MESSAGE,
																										  GAME.nMe,
																										  CB_Counter,
																										  j,
																										  CTRL_TaskList[i][j].bDone,
																										  CTRL_TaskList[i][j].nID,
																										  CTRL_TaskList[i][j].nLevel,
																										  CTRL_TaskList[i][j].bIRQ,
																										  CTRL_TaskList[i][j].nTaskID,
																										  CTRL_TaskList[i][j].nTaskIDEx,
																										  CTRL_TaskList[i][j].nTaskIDEx2,
																										  CTRL_TaskList[i][j].nParam1,
																										  CTRL_TaskList[i][j].nParam2,
																										  CTRL_TaskList[i][j].nParam3,
																										  CTRL_TaskList[i][j].nParam4,
																										  CTRL_nTaskTail[i]);//,(char *)pTask);
									for(Answer=0;Answer<GAME_PLAYER_MAX;Answer++)
										{
											if(Answer==GAME.nMe){continue;}
											if(DH_JoinPlayer[Answer]==DH_NOPLAY)
												{
													Games_Status[Answer]=0;
													continue;
												}
											DH_TaskAnswer[Answer][j]=-1;//在客户端应该为DH_TaskAnswer[2][j]=-1;
				//							Game_Syn_Status[Answer]=1;
										}
									TaskStatus=0;
									{ 
/*										char	test32[255];
										wsprintf(test32,"=========%d=======\n",CB_Counter);
										WriteLogFile("Test_message.log",(char *)test32);
										wsprintf(test32,"%s\n",(char *)DP_SendMessageBuff);
										WriteLogFile("Test_message.log",(char *)test32);*/
									}
									if(DP_NetworkInterface(DP_SEND_MESSAGE,NULL)!=OK)
										{
											#ifdef	NETWORK
											MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
											#endif
										}
									memset(DP_SendMessageBuff,0,sizeof(DP_SendMessageBuff));
								}
						}
				}
/////////////////////////////////////
			if(TaskStatus==0)
				{ 
					while(DH_ReceiveAnswer!=0)
						{
							if((timeGetTime()-NW_BeginTime)>1000)
								{
									DH_ReceiveAnswer=0;
								}
							while(DH_ReceiveMessage()!=-1);
////////////////////////////////////
					if(DH_GoNextLevel==DH_ACCEPT_GO)
						{
//							WriteLogFile( "NetErr1.log", "d:" );
						}
////////////////////////////////////

						}
				}
			else{
					while(DH_ReceiveMessage()!=-1);
////////////////////////////////////
					if(DH_GoNextLevel==DH_ACCEPT_GO)
						{
//							WriteLogFile( "NetErr1.log", "e:" );
						}
////////////////////////////////////

				}
////////////////////////////////////
			AllAnswer=0;
			if(TaskStatus==0)
				{
					for(i=0;i<GAME_PLAYER_MAX;i++)
						{
							for(j=0;j<CTRL_TASK_LIST_MAX+CTRL_TASK_LIST_MAX;j++)
								{
									if(i==GAME.nMe)
										{break;}
									if(DH_TaskAnswer[i][j]!=0){AllAnswer=-1;DH_ReceiveAnswer=-1;break;}
								}
							if(AllAnswer==-1){break;}
						}
				}
////////////////////////////////////
			if(AllAnswer==0)
				{

					//发送令牌的部分
					int	DH_LookForNextPlay;
					for(DH_LookForNextPlay=GAME.nMe+1;DH_LookForNextPlay<GAME_PLAYER_MAX;DH_LookForNextPlay++)
						{
							if(DH_JoinPlayer[DH_LookForNextPlay]==DH_PLAY)
								{
									memset(DP_SendMessageBuff,0,sizeof(DP_SendMessageBuff));
									wsprintf((char *)DP_SendMessageBuff,"%d %d %d %d",DP_CTRL_SEND,GAME.nMe,DH_LookForNextPlay,CB_Counter);
									if(DP_NetworkInterface(DP_SEND_MESSAGE,NULL)!=OK)
										{
											//#ifdef	NETWORK
//											MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
										/*
											WriteLogFile( "NetErr.log", "Send Error! ++" );
											WriteErrorFile( "NetErr.log", GAME.nMe );
											WriteLogFile( "NetErr.log", ":" );
											WriteErrorFile( "NetErr.log", DH_LookForNextPlay );
											WriteLogFile( "NetErr.log", "\n" );
										*/
											//#endif
										}
									/*
									WriteLogFile( "NetErr.log", "-------------------------\n" );
									WriteErrorFile( "NetErr.log", GAME.nMe );
									WriteErrorFile( "NetErr.log", DH_LookForNextPlay );
									WriteErrorFile( "NetErr.log", CB_Counter );
									*/
									Game_Ctrl_Status=DH_NO_CTRL;
////////////////////////////////////////////////////////////////
									DH_CurrentCtrlPlayer=DH_LookForNextPlay;
////////////////////////////////////////////////////////////////
									break;
								}
						}
					if(DH_LookForNextPlay>=GAME_PLAYER_MAX)
						{
							memset(DP_SendMessageBuff,0,sizeof(DP_SendMessageBuff));
							wsprintf((char *)DP_SendMessageBuff,"%d %d %d %d",DP_CTRL_SEND,GAME.nMe,1,CB_Counter);
							if(DP_NetworkInterface(DP_SEND_MESSAGE,NULL)!=OK)
								{
									#ifdef	NETWORK
									MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
									#endif
								}
							/*
							WriteLogFile( "NetErr.log", "-------------------------\n" );
							WriteErrorFile( "NetErr.log", GAME.nMe );
							WriteErrorFile( "NetErr.log", DH_LookForNextPlay );
							WriteErrorFile( "NetErr.log", CB_Counter );
							*/
							Game_Ctrl_Status=DH_NO_CTRL;
							DH_GoNextLevel=DH_ACCEPT_GO;
////////////////////////////////////////////////////////
							DH_CurrentCtrlPlayer=1;
							continue;
////////////////////////////////////////////////////////
						}
				}
			else{
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
					for(j=0;j<CTRL_TASK_LIST_MAX+CTRL_TASK_LIST_MAX;j++)
						{
							int		AlreadySend=-1;
							for(i=0;i<GAME_PLAYER_MAX;i++)
								{
									if(i==GAME.nMe){continue;}
									if(DH_TaskAnswer[i][j]!=0)
										{
/////////////////////////////////////////////////////
											wsprintf((char *)DP_SendMessageBuff,"%d %d %d %d %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld %d",DP_MESSAGE,
																												  GAME.nMe,
																												  CB_Counter,
																												  j,
																												  CTRL_TaskList[GAME.nMe][j].bDone,
																												  CTRL_TaskList[GAME.nMe][j].nID,
																												  CTRL_TaskList[GAME.nMe][j].nLevel,
																												  CTRL_TaskList[GAME.nMe][j].bIRQ,
																												  CTRL_TaskList[GAME.nMe][j].nTaskID,
																												  CTRL_TaskList[GAME.nMe][j].nTaskIDEx,
																												  CTRL_TaskList[GAME.nMe][j].nTaskIDEx2,
																												  CTRL_TaskList[GAME.nMe][j].nParam1,
																												  CTRL_TaskList[GAME.nMe][j].nParam2,
																												  CTRL_TaskList[GAME.nMe][j].nParam3,
																												  CTRL_TaskList[GAME.nMe][j].nParam4,
																												  CTRL_nTaskTail[GAME.nMe]);//,(char *)pTask);
											if(DP_NetworkInterface(DP_SEND_MESSAGE,NULL)!=OK)
												{
													#ifdef	NETWORK
													MessageBox(NULL,"Send Counter message error!!!","Error",MB_OK);
													#endif
												}
											AlreadySend=0;
											memset(DP_SendMessageBuff,0,sizeof(DP_SendMessageBuff));
/////////////////////////////////////////////////////
											break;
										}
									if(AlreadySend==0){break;}
								}
						}
				}
		}
//	DH_WriteLogFile();
}
 
void	DH_NetworkInit()
{
	Bak_Game_Message.bDone=0;
	Bak_Game_Message.nID=0;
	Bak_Game_Message.nLevel=0;
	Bak_Game_Message.bIRQ=0;
	Bak_Game_Message.nTaskID=QUXIAO;
	Bak_Game_Message.nTaskIDEx=0;
	Bak_Game_Message.nTaskIDEx2=0;
	Bak_Game_Message.nParam1=0;
	Bak_Game_Message.nParam2=0;
	Bak_Game_Message.nParam3=0;
	Bak_Game_Message.nParam4=0;
	if(GAME_bNetwork==1)
		{
			DH_ServerInit();
			while(DP_PlayerInformation[1].DP_dcoID==0)
				{DH_ReceiveMessage();}
			Games_Status[0]=0;
			Games_Status[1]=0;
			Games_Status[2]=-1;
			Games_Status[3]=0;
			Games_Status[4]=-1;
		}
	if(GAME_bNetwork==2)
		{
			DH_ClientInit();
			while(DP_PlayerInformation[1].DP_dcoID==0)
				{DH_ReceiveMessage();}
			Games_Status[0]=0;
			Games_Status[1]=0;
			Games_Status[2]=-1;
			Games_Status[3]=0;
			Games_Status[4]=-1;
		}
}

void DH_ReceiveInit()
{
	if(GAME_bNetwork!=0)
		{
			if(CB_Counter==0)
				{
					DH_SendCounterMessage(CB_Counter);
					Games_Status[GAME.nMe]=0;
					while((Games_Status[0]!=0)||(Games_Status[1]!=0)||(Games_Status[2]!=0)||(Games_Status[3]!=0)||(Games_Status[4]!=0))
						{DH_ReceiveMessage();}
				}
		}

}


void DH_WriteLogFile()
{
	int		i,j;

	// release, Dec.9.1997, Liu Gang
	return ;

	char	test32[255];
	wsprintf((char *)test32,"================================%d!!!================================\n",CB_Counter);
	WriteLogFile("Test_task.log",(char *)test32);
	for(i=0;i<GAME_PLAYER_MAX;i++)
		{
			for(j=0;j<CTRL_TASK_LIST_MAX+CTRL_TASK_LIST_MAX;j++)
				{
					if(CTRL_TaskList[i][j].nTaskID==0)
						{continue;}
					char	test32[255];
					wsprintf((char *)test32,"%d %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld (%d , %d) \n",j,CTRL_TaskList[i][j].bDone,
																						  CTRL_TaskList[i][j].nID,
																						  CTRL_TaskList[i][j].nLevel,
																						  CTRL_TaskList[i][j].bIRQ,
																						  CTRL_TaskList[i][j].nTaskID,
																						  CTRL_TaskList[i][j].nTaskIDEx,
																						  CTRL_TaskList[i][j].nTaskIDEx2,
																						  CTRL_TaskList[i][j].nParam1,
																						  CTRL_TaskList[i][j].nParam2,
																						  CTRL_TaskList[i][j].nParam3,
																						  CTRL_TaskList[i][j].nParam4,//,(char *)pTask);
																						  CTRL_nTaskHead[i],CTRL_nTaskTail[i]);

					WriteLogFile("Test_task.log",(char *)test32);
				}
		}

}


// 网络游戏开始
BOOL GAME_Network_Begin(void)
{

// 初始化数据
	// initialize game players data
//	GAME_InitGamePlayers();

	// initialize battle map data, ground, unit, region
	MAP_InitGUR();
	SHADOW_Clear();

	// reset mouse state
	MOUSE_SetState( MOUSE_STATE_NONE, TRUE );

	// reset control
	CTRL_InitCtrl();

	// reset other
	OTHER_InitOther();

	// -- TY
	//君主AI初始化函数。
	TY_EmprerorAIPosClear();
	// -- TY

	// 清除命令组
	FACE_ShowCommandUnit( COMMANDUNIT_NONE, 0xFFFF );
	// initialize command units
	CTRL_TASK_saveCmdUnit.Cmd = COMMANDUNIT_NONE;
	CTRL_TASK_saveCmdUnit.Ex = 0xFFFFFFFF;

⌨️ 快捷键说明

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