static gint CmpElement(gconstpointer a, gconstpointer b) { btprox_item* ai = (btprox_item*)a; btprox_item* bi = (btprox_item*)b; return (CmpString(ai->address, bi->address) || CmpString(ai->name, bi->name)); }
void RecvChatMsg(GlobalVariables *GV, ServerConfig *SC) { int tmp; int aux; // Packet Message Recv GV->UnCompressPacket((unsigned char*)buffer_tmp, GV->bytes_recv, GV->packet_decrypt+4); aux = buffer_tmp[2]; tmp = strlen(buffer_tmp+5); if(((aux == 0x00) || (aux == 0x01)) && (tmp <= (sizeof(buffer_tmp)-1024))) { strcpy(buffer_tmp, buffer_tmp+5); buffer_tmp[tmp-1] = 0x20; buffer_tmp[tmp] = ':'; buffer_tmp[tmp+1] = 0x20; strcpy(buffer_tmp+tmp+2, buffer_tmp+5+tmp+1); AddStringToListBoxChat(buffer_tmp); } else { sprintf(GV->CInfo, "%s não está online", buffer_tmp+5); AddStringToListBoxChat(GV->CInfo); } if((aux == 0x00) || (aux == 0x01)) { if(CmpString("reset_system_now", buffer_tmp+tmp+2, sizeof("reset_system_now")-1)) { if((SC->TYPE_SCRIPT == 0x00) || (SC->TYPE_SCRIPT == 0x05) || (SC->TYPE_SCRIPT == 0x06)) { SC->TYPE_SCRIPT = 0x07; SetStatusRecvPacket(FALSE); SetStatusSendTimePacket(FALSE); TerminedSocket(); } } } if((aux == 0x00) || (aux == 0x01)) { if(CmpString("you_turn", buffer_tmp+tmp+2, sizeof("you_turn")-1)) { InfoServer("TURN SET ON\n"); SetMyTurn(1); } if(CmpString("player_turn", buffer_tmp+tmp+2, sizeof("player_turn")-1)) { RecvPacketTurn(1); if(SC->TYPE_SCRIPT == 0x06) { InfoServer("PLAYER TURN SET ON\n"); SetMyTurn(1); } } } if((aux == 0x00) || (aux == 0x01)) { if(CmpString("confirmed_me", buffer_tmp+tmp+2, sizeof("confirmed_me")-1)) SendTurnOK(); } if((aux == 0x00) || (aux == 0x01)) { if(CmpString("map_trade", buffer_tmp+tmp+2, sizeof("map_trade")-1)) MapTrade(); } if((aux == 0x00) || (aux == 0x01)) { if(CmpString("ROOM_SEND ID", buffer_tmp+tmp+2, sizeof("ROOM_SEND ID")-1)) { if(SC->TYPE_SCRIPT == 0x00) sscanf(buffer_tmp+tmp+2, "ROOM_SEND ID [%d] PASSWORD [%s]", &SC->P_ROOM_ID, SC->P_PASSWORD_ROOM); } } if((aux == 0x00) || (aux == 0x01)) { for(int i = 0; i < 3; i++) { if(CmpString(SC->PLAYER_COMMON[i], buffer_tmp, strlen(SC->PLAYER_COMMON[i])-1)) { if(CmpString("sendme_info_room", buffer_tmp+tmp+2, sizeof("sendme_info_room")-1)) { if((SC->COMMON_CONFIRMED[i] == 0x00) && (SC->TYPE_SCRIPT == 0x04)) { sprintf(GV->CInfo, "[%d] REQUISITO DE %s RECEBIDO COM SUCESSO\n", i, SC->PLAYER_COMMON[i]); InfoServer(GV->CInfo); SC->COMMON_CONFIRMED[i] = 0x01; } } } } } /* printf("Packet uncompress\n"); printf("%s", buffer_tmp); for(int i = 0; i < size_packet; i++) printf("%c", buffer_tmp[i]); */ memset(buffer_tmp, 0, sizeof(buffer_tmp)-1); }