📄 net_face.cpp
字号:
// 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 + -