📄 message.c
字号:
send_card_request=1; draw_flower(buf[3],buf[4]); broadcast_msg(player_id,buf); break; case 530: /* others epk a card */ gettimeofday(&before, (struct timezone *) 0); turn=player[buf[3]].sit; display_point(turn); if(buf[4]==12) { for(i=0;i<pool[turn].out_card_index;i++) if(pool[turn].out_card[i][0]==2 && pool[turn].out_card[i][1]==buf[5]) { pool[turn].out_card[i][0]=12; pool[turn].out_card[i][4]=buf[5]; pool[turn].out_card[i][5]=0; break; } } else { for(i=0;i<=3;i++) pool[turn].out_card[pool[turn].out_card_index][i]=buf[i+4]; if(buf[4]==3 || buf[4]==11) /* 杠牌 */ { pool[turn].out_card[pool[turn].out_card_index][4]=buf[7]; pool[turn].out_card[pool[turn].out_card_index][5]=0; } else pool[turn].out_card[pool[turn].out_card_index][4]=0; pool[turn].out_card_index++; } draw_epk(buf[3],buf[4],buf[5],buf[6],buf[7]); broadcast_msg(player_id,buf); return_cursor(); switch(buf[4]) { case 2: for(i=0;i<pool[turn].num;i++) if(pool[turn].card[i]==buf[6]) { pool[turn].card[i]=pool[turn].card[pool[turn].num-1]; pool[turn].card[i+1]=pool[turn].card[pool[turn].num-2]; break; } pool[turn].num-=3; sort_pool(turn); break; case 3: case 11: for(i=0;i<pool[turn].num;i++) if(pool[turn].card[i]==buf[6]) { pool[turn].card[i]=pool[turn].card[pool[turn].num-1]; pool[turn].card[i+1]=pool[turn].card[pool[turn].num-2]; pool[turn].card[i+2]=pool[turn].card[pool[turn].num-3]; break; } pool[turn].num-=3; sort_pool(turn); break; case 7: case 8: case 9: pool[turn].card[search_card(turn,buf[5])] =pool[turn].card[pool[turn].num-1]; pool[turn].card[search_card(turn,buf[7])] =pool[turn].card[pool[turn].num-2]; pool[turn].num-=3; sort_pool(turn); break; } break; default: break; } break; case (FROM_SERV): read_msg(table_sockfd,buf+3); switch(msg_id) { case 101: send_gps_line(buf+3); break; case 102: display_comment(buf+3); break; case 200: write_msg(gps_sockfd,"205"); close(table_sockfd); FD_CLR(table_sockfd,&afds); in_join=0; input_mode=TALK_MODE; init_global_screen(); break; case 201: /* get the new comer's info */ strcpy(player[buf[3]].name,buf+5); player[buf[3]].in_table=1; player[buf[3]].sit=buf[4]; sprintf(msg_buf,"%s 加入此桌",player[buf[3]].name); send_gps_line(msg_buf); player_in_table++; if(player[buf[3]].sit) table[player[buf[3]].sit]=buf[3]; break; case 202: strcpy(msg_buf,buf+4); *(msg_buf+5)=0; player[buf[3]].id=atoi(msg_buf); player[buf[3]].money=atol(buf+9); break; case 203: /* get others info */ strcpy(player[buf[3]].name,buf+5); player[buf[3]].sit=buf[4]; player[buf[3]].in_table=1; player_in_table++; table[buf[4]]=buf[3]; break; case 204: for(i=1;i<=4;i++) { table[i]=buf[2+i]-'0'; if( table[i]) { player[table[i]].sit=i; on_seat++; } } break; case 205: /* NOTICE: need player_in_table++ ? */ /* NOTICE: did he get table[]???? */ my_id=buf[3]; strcpy(player[my_id].name,buf+5); my_sit=buf[4]; player[my_id].sit=my_sit; player[my_id].in_table=1; player[my_id].id=my_gps_id; player[my_id].money=my_money; table[my_sit]=my_id; break; case 206: if(player_in_table==4) { init_global_screen(); input_mode=TALK_MODE; } sprintf(msg_buf,"%s 离开此桌",player[buf[3]].name); display_comment(msg_buf); player[buf[3]].in_table=0; player_in_table--; break; case 290: opening(); break; case 300: if(screen_mode==GLOBAL_SCREEN_MODE) { init_playing_screen(); } opening(); break; case 301: /* change card */ change_card(buf[3],buf[4]); break; case 302: /* get 16 cards */ for(i=0;i<16;i++) pool[my_sit].card[i]=buf[i+3]; sort_card(0); break; case 303: /* can get a card */ play_mode=GET_CARD; attron(A_REVERSE); show_card(10,INDEX_X+16*2+1,INDEX_Y+1,1); attroff(A_REVERSE); wrefresh(stdscr); beep1(); return_cursor(); break; case 304: /* get a card */ process_new_card(my_sit,buf[3]); break; case 305: card_owner=buf[3]; if(card_owner!=my_sit) show_cardmsg(card_owner,0); break; case 306: /* others got a card ---> change the card number */ card_point=buf[3]; show_num(2,70,144-card_point-16,2); return_cursor(); break; case 308: /* sort cards */ sort_card(buf[3]-'0'); break; case 310: /* Player pointer --- point to new player */ turn=buf[3]; display_point(buf[3]); return_cursor(); break; case 312: pool[buf[3]].time=atof(buf+4); display_time(buf[3]); break; case 314: /* process new cardback */ show_newcard(buf[3],buf[4]); return_cursor(); break; case 330: /* 海底流局 */ for(i=1;i<=4;i++) { if(table[i] && i!=my_sit) { show_allcard(i); show_kang(i); } } info.cont_dealer++; clear_screen_area(THROW_Y,THROW_X,8,34); wmvaddstr(stdscr,THROW_Y+3,THROW_X+12,"海 底 流 局"); return_cursor(); wait_a_key(PRESS_ANY_KEY_TO_CONTINUE); break; case 402: /* others throw a card */ in_kang=0; pool[player[buf[3]].sit].first_round=0; show_cardmsg(player[buf[3]].sit,buf[4]); current_card=buf[4]; throw_card(buf[4]); return_cursor(); current_id=buf[3]; break; case 501: /* ask for check card */ go_to_check=0; for(i=1;i<=4;i++) { check_flag[my_sit][i]=buf[2+i]-'0'; if(check_flag[my_sit][i]) go_to_check=1; } if(go_to_check) init_check_mode(); go_to_check=0; break; case 518: for(i=1;i<=4;i++) pool[i].door_wind=buf[2+i]; wmvaddstr(stdscr,2,64,sit_name[pool[my_sit].door_wind]); return_cursor(); break; case 520: process_epk(buf[3]); break; case 521: for(i=0;i<pool[1].num;i++) pool[1].card[i]=buf[3+i]; for(i=0;i<pool[2].num;i++) pool[2].card[i]=buf[19+i]; for(i=0;i<pool[3].num;i++) pool[3].card[i]=buf[35+i]; for(i=0;i<pool[4].num;i++) pool[4].card[i]=buf[51+i]; break; case 522: process_make(buf[3],buf[4]); break; case 525: draw_flower(buf[3],buf[4]); break; case 530: /* from server */ turn=player[buf[3]].sit; card_owner=turn; display_point(turn); if(buf[4]==12) { for(i=0;i<pool[turn].out_card_index;i++) if(pool[turn].out_card[i][1]==buf[5] && pool[turn].out_card[i][2]==buf[6]) { pool[turn].out_card[i][0]=12; pool[turn].out_card[i][4]=buf[5]; pool[turn].out_card[i][5]=0; } draw_epk(buf[3],buf[4],buf[5],buf[6],buf[7]); } else { for(i=0;i<=3;i++) pool[turn].out_card[pool[turn].out_card_index][i]=buf[i+4]; if(buf[4]==3 || buf[4]==11) { pool[turn].out_card[pool[turn].out_card_index][4]=buf[7]; pool[turn].out_card[pool[turn].out_card_index][5]=0; } else pool[turn].out_card[pool[turn].out_card_index][4]=0; draw_epk(buf[3],buf[4],buf[5],buf[6],buf[7]); pool[turn].out_card_index++; pool[turn].num-=3; } return_cursor(); break; default: break; } break; default: break; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -