📄 junqi_client.cpp
字号:
} } } } 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 + -