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

📄 junqi_client.cpp

📁 linux下开发的四国军旗源代码,包括客户端和服务器端
💻 CPP
📖 第 1 页 / 共 5 页
字号:
					}				}			}		}		qiju_draw_show_player();	}	else{		glb_user_list[user_id].qi_ju_index=0;		glb_user_list[user_id].user_state=USER_INFO_STATE_NO_QI_JU;		if(glb_qiju_list[qiju_id].user_flag[player_id]==1){			glb_qiju_list[qiju_id].user_flag[player_id]=0;			glb_qiju_list[qiju_id].user_index[player_id]=0;			glb_qiju_list[qiju_id].user_num--;		}		if(run_flag==RUN_FLAG_SELECT_QIJU){			join_qiju_re_drawall();		}		;//other qiju	}	XFlush(dis);	return 0;}int deal_svr_join_qiju(char *rbuff){        char    para[128];	char    sbuff[1024];	int	user_id;	int	qiju_id;	int	player_id;	int     tid;	int iret;	memset(para,0,sizeof(para));	iret = data_para(rbuff,5,para);	if(iret == 0){		sscanf(para,"%d",&player_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,4,para);	if(iret == 0){		sscanf(para,"%d",&qiju_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,3,para);	if(iret == 0){		sscanf(para,"%d",&user_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,2,para);	if(iret == 0){		sscanf(para,"%d",&tid);	}	else{		return -1;	}	if(qiju_id<=0 || qiju_id>MAX_QI_JU_NUM || user_id<=0 || user_id>MAX_USER_INFO_NUM || player_id<0 || player_id>=4){		return -1;	}	if(qiju_id==self_qiju_id){		if(user_id!=self_userID && player_id+1!=self_player_side){			glb_user_list[user_id].qi_ju_index=qiju_id;			glb_user_list[user_id].user_state=USER_INFO_STATE_INIT_QI_MAP;			glb_qiju_list[qiju_id].user_flag[player_id]=1;			glb_qiju_list[qiju_id].user_index[player_id]=user_id;			glb_qiju_list[qiju_id].user_num++;			//player joined OK.			printf("the player=%d joined OK!\n",player_id);			qiju_draw_show_player();		}	}	else{		;		//#######other qiju;		glb_user_list[user_id].qi_ju_index=qiju_id;		glb_user_list[user_id].user_state=USER_INFO_STATE_INIT_QI_MAP;		glb_qiju_list[qiju_id].user_flag[player_id]=1;		glb_qiju_list[qiju_id].user_index[player_id]=user_id;		glb_qiju_list[qiju_id].user_num++;		if(run_flag==RUN_FLAG_SELECT_QIJU){			join_qiju_re_drawall();		}	}	XFlush(dis);	return 0;}int deal_svr_move_qi(char *rbuff){        char    para[128];	char    sbuff[1024];	int     s_xindex;	int     s_yindex;	int     d_xindex;	int     d_yindex;	int     tid;	int iret;	memset(para,0,sizeof(para));	iret = data_para(rbuff,6,para);	if(iret == 0){		sscanf(para,"%d",&d_yindex);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,5,para);	if(iret == 0){		sscanf(para,"%d",&d_xindex);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,4,para);	if(iret == 0){		sscanf(para,"%d",&s_yindex);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,3,para);	if(iret == 0){		sscanf(para,"%d",&s_xindex);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,2,para);	if(iret == 0){		sscanf(para,"%d",&tid);	}	else{		return -1;	}	qiju_draw_move_qi(s_xindex,s_yindex,d_xindex,d_yindex);	memset(sbuff,0,sizeof(sbuff));	strcpy(sbuff,"Ack ");	strcat(sbuff,para);	strcat(sbuff," S_MoveQi ");	strcat(sbuff,"OK");	strcat(sbuff," ");							 	if(TCP_sockFD>0){        	writenTCP(TCP_sockFD,sbuff,strlen(sbuff));	}	XFlush(dis);	return 0;}int deal_svr_start_game(char *rbuff){	run_flag = RUN_FLAG_PLAY_QI;	XFlush(dis);	return 0;}int deal_svr_player_start(char *rbuff){        char    para[128];	char    sbuff[1024];	int	user_id;	int	qiju_id;	int	player_id;	int     tid;	int iret;	memset(para,0,sizeof(para));	iret = data_para(rbuff,5,para);	if(iret == 0){		sscanf(para,"%d",&player_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,4,para);	if(iret == 0){		sscanf(para,"%d",&qiju_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,3,para);	if(iret == 0){		sscanf(para,"%d",&user_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,2,para);	if(iret == 0){		sscanf(para,"%d",&tid);	}	else{		return -1;	}	if(qiju_id<=0 || qiju_id>MAX_QI_JU_NUM || user_id<=0 || user_id>MAX_USER_INFO_NUM || player_id<0 || player_id>=4){		return -1;	}	if(qiju_id==self_qiju_id){		switch(self_player_side){		case PLAYER_SIDE_A:			if(player_id==1){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_right_qi_map_play_init();			}			else if(player_id==2){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_up_qi_map_play_init();			}			else if(player_id==3){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_left_qi_map_play_init();			}			break;		case PLAYER_SIDE_B:			if(player_id==0){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_left_qi_map_play_init();			}			else if(player_id==2){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_right_qi_map_play_init();			}			else if(player_id==3){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_up_qi_map_play_init();			}			break;		case PLAYER_SIDE_C:			if(player_id==0){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_up_qi_map_play_init();			}			else if(player_id==1){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_left_qi_map_play_init();			}			else if(player_id==3){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_right_qi_map_play_init();			}			break;		case PLAYER_SIDE_D:			if(player_id==0){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_right_qi_map_play_init();			}			else if(player_id==1){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_up_qi_map_play_init();			}			else if(player_id==2){				glb_user_list[user_id].user_state=USER_INFO_STATE_START_PLAY;				qiju_draw_left_qi_map_play_init();			}			break;		default:			break;		}	}	else{		;		//###########other qiju;	}	XFlush(dis);	return 0;}int deal_svr_show_qi(char *rbuff){        char    para[128];	char    sbuff[1024];	int	qi_value;	int	xindex;	int	yindex;	int     tid;	int iret;	memset(para,0,sizeof(para));	iret = data_para(rbuff,5,para);	if(iret == 0){		sscanf(para,"%d",&yindex);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,4,para);	if(iret == 0){		sscanf(para,"%d",&xindex);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,3,para);	if(iret == 0){		sscanf(para,"%d",&qi_value);	}	else{		return -1;	}	map_run[xindex][yindex]=qi_value;	qiju_draw_qi(qi_value%100,xindex*35+18-15,yindex*35+18-10,qi_value/100,0);	XFlush(dis);	return 0;}int deal_svr_ack(char *rbuff){        char    para[128];	char    sbuff[1024];	int	cmd_name;	int	user_id;	int	qiju_id;	int	player_id;	int     tid;	int iret;	memset(para,0,sizeof(para));	iret = data_para(rbuff,3,para);	if(iret==0){		cmd_name=decode_cmd_name(para);		switch(cmd_name){		case CMD_CLI_LOGIN:			deal_svr_ack_login(rbuff);			break;		case CMD_CLI_LOGOUT:			deal_svr_ack_logout(rbuff);			break;		case CMD_CLI_JOIN_QIJU:			deal_svr_ack_join_qiju(rbuff);			break;		case CMD_CLI_START_GAME:			deal_svr_ack_start_game(rbuff);			break;		case CMD_CLI_MOVE_QI:			deal_svr_ack_move_qi(rbuff);			break;		case CMD_CLI_ASK_PEACE:			deal_svr_ack_ask_peace(rbuff);			break;		case CMD_CLI_GIVE_UP:			deal_svr_ack_give_up(rbuff);			break;		case CMD_CLI_LEAVE_QIJU:			deal_svr_ack_leave_qiju(rbuff);			break;		default:			break;		}	}	else{		return -1;	}	return 0;}int deal_svr_ack_login(char *rbuff){        char    para[128];	char    sbuff[1024];	int	user_id;	int iret;	int	result;	memset(para,0,sizeof(para));	iret = data_para(rbuff,5,para);	if(iret==0){		sscanf(para,"%d",&user_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,4,para);	if(iret==0){		if(!strcmp(para,"OK")){			result = 0;		}		else{			result = -1;		}	}	else{		return -1;	}	if(result==0){		self_userID = user_id;		run_flag = RUN_FLAG_SELECT_QIJU;		join_qiju_re_drawall();	}	else{		;//login server error;	}	XFlush(dis);	return 0;}int deal_svr_ack_logout(char *rbuff){	return 0;}int deal_svr_ack_join_qiju(char *rbuff){        char    para[128];	char    sbuff[1024];	int	user_id;	int	user_state;	int	qiju_id;	int	player_id;	int iret;	int	result;	int i,j;	for(i=1;i<=MAX_QI_JU_NUM;i++){		for(j=0;j<4;j++)			printf("The qiju[%d] user_flag[%d]=%d\n",i,j,glb_qiju_list[i].user_flag[j]);	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,4,para);	if(iret==0){		if(!strcmp(para,"OK")){			result = 0;		}		else{			result = -1;		}	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,5,para);	if(iret==0){		sscanf(para,"%d",&user_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,6,para);	if(iret==0){		sscanf(para,"%d",&qiju_id);	}	else{		return -1;	}	memset(para,0,sizeof(para));	iret = data_para(rbuff,7,para);	if(iret==0){		sscanf(para,"%d",&player_id);	}	else{		return -1;	}	printf("The player_id = %d\n",player_id);	if(result==0){		run_flag = RUN_FLAG_INIT_QI;		self_qiju_id = qiju_id;		self_player_side = player_id+1;		glb_qiju_list[qiju_id].user_index[player_id] = self_userID;		glb_qiju_list[qiju_id].user_flag[player_id] = 1;		glb_qiju_list[qiju_id].user_num++;		glb_user_list[user_id].qi_ju_index = qiju_id;		glb_user_list[user_id].user_state = USER_INFO_STATE_INIT_QI_MAP;		qiju_init_draw();		for(int i= 0; i<4;i++){			user_id = 0;			memset(para,0,sizeof(para));			iret = data_para(rbuff,7+i*2+1,para);			if(iret==0){				sscanf(para,"%d",&user_id);			}			memset(para,0,sizeof(para));			iret = data_para(rbuff,7+i*2+2,para);			if(iret==0){				sscanf(para,"%d",&user_state);			}			printf("The data[%d]user_id =%d, user_state=%d,self_userID=%d\n",7+i*2+1,user_id,user_state,self_userID);			if(user_id>0 && user_id!= self_userID){				glb_qiju_list[qiju_id].user_index[i] = user_id;				glb_qiju_list[qiju_id].user_flag[i] = 1;

⌨️ 快捷键说明

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