/// <summary>
		/// Deserializes the packet.
		/// </summary>
		/// <returns><c>true</c>, if packet was deserialized, <c>false</c> otherwise.</returns>
		/// <param name="payload">Payload.</param>
		public static bool DeserializePacket (ByteArray payload)
		{        
			CPacket __msg = new CPacket ();
			if (payload.Count < __msg.GetHeaderLength ()) {
				return false;
			}

			__msg.ReadHeader (payload);
           
			byte[] b = __msg.ReadData (payload);
			WebLog.Log (__msg.GetID ());
			switch (__msg.GetID ()) {
			case (int)Login.eLOGIN_ANSWER.LOGIN_ANSWER_CONNECT_AUTH:
				LoginSeverInterface.DeserializeLOGIN_ANSWER_CONNECT_AUTH (b);
				break;
			case (int)Login.eLOGIN_ANSWER.LOGIN_ANSWER_LOGIN_AUTH:
				LoginSeverInterface.DeserializeLOGIN_ANSWER_LOGIN_AUTH (b);
				break;

			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_CONNECT_AUTH:
				LobbySeverInterface.DeserializeGAME_ANSWER_CONNECT_AUTH (b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_LOGIN_AUTH:
				LobbySeverInterface.DeserializeGAME_ANSWER_LOGIN_AUTH (b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_USER_INFO:
				LobbySeverInterface.DeserializeGAME_ANSWER_USER_INFO (b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_CASH_INFO:
				LobbySeverInterface.DeserializeGAME_ANSWER_CASH_INFO (b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_CHAR_INFO:
				LobbySeverInterface.DeserializeGAME_ANSWER_CHAR_INFO (b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GIFT_NEW:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GIFT_NEW (b);
				break;
			case (int)Lobby.eMSG_NOTIFY.MSG_NOTIFY_CLUB_AUTH_LEVEL_NAME:
				LobbySeverInterface.DeserializeMSG_NOTIFY_CLUB_AUTH_LEVEL_NAME (b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_MYHOUSINGITEM_LIST:
				LobbySeverInterface.DeserializeGAME_ANSWER_MYHOUSINGITEM_LIST (b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_ABILITY_CARD_STAT:
				LobbySeverInterface.DeserializeGAME_ANSWER_ABILITY_CARD_STAT (b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_MYITEM_LIST:
				LobbySeverInterface.DeserializeGAME_ANSWER_MYITEM_LIST (b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_ENTER_LOBBY:
				LobbySeverInterface.DeserializeGAME_ANSWER_ENTER_LOBBY (b);
				break;
			case (int)Lobby.eRELAY_ECHO.RELAY_ECHO_PING:
				LobbySeverInterface.DeserializeRELAY_ECHO_PING (b);
				break;

			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_EVENT_LIST:
				LobbySeverInterface.DeserializeGAME_ANSWER_EVENT_LIST(b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_ROOM_LIST:
				LobbySeverInterface.DeserializeGAME_ANSWER_ROOM_LIST(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_LIST_PAGE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_LIST_PAGE(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_LIST_ADD:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_LIST_ADD(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_LIST_DELETE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_LIST_DELETE(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_LIST_UPDATE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_LIST_UPDATE(b);
				break;

			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_ROOM_QUICKJOIN:
				LobbySeverInterface.DeserializeGAME_ANSWER_ROOM_QUICKJOIN(b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_ROOM_CREATE:
				LobbySeverInterface.DeserializeGAME_ANSWER_ROOM_CREATE(b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_ROOM_JOIN:
				LobbySeverInterface.DeserializeGAME_ANSWER_ROOM_JOIN(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_READY:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_READY(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_JOIN:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_JOIN(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_MAX_JOINER_NUM_CHANGE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_MAX_JOINER_NUM_CHANGE(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_SETTING:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_SETTING(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_ROOM_STRIKEATTACK_INFO_CHANGE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_ROOM_STRIKEATTACK_INFO_CHANGE(b);
				break;

			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_MODE_SELECT:
				LobbySeverInterface.DeserializeGAME_ANSWER_MODE_SELECT(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_LEAVE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_LEAVE(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_TEAMCHANGE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_TEAMCHANGE(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_HOUSINGITEM_CHANGE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_HOUSINGITEM_CHANGE(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_KICKOUT:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_KICKOUT(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_MAPSELECT:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_MAPSELECT(b);
				break;

			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_GAME_START_COUNT:
				LobbySeverInterface.DeserializeGAME_ANSWER_GAME_START_COUNT(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_START_COUNT:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_START_COUNT(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_COUNT_STOP:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_COUNT_STOP(b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_ROOM_START:
				LobbySeverInterface.DeserializeGAME_ANSWER_ROOM_START(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_LOADING_WAIT:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_LOADING_WAIT(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_ROOM_START:
				LobbySeverInterface.DeserializeGAME_NOTIFY_ROOM_START(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_LOADING_PROGRESS_VALUE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_LOADING_PROGRESS_VALUE(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_LOADED:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_LOADED(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_LOADING_END:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_LOADING_END(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_START:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_START(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_SP_CHANGE:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_SP_CHANGE(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_MAX_COMBO_USER:
				LobbySeverInterface.DeserializeGAME_NOTIFY_MAX_COMBO_USER(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_EVENTOBJECT:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_EVENTOBJECT(b);
				break;
			case (int)Lobby.eLOBBY_ANSWER.GAME_ANSWER_GAME_CHANGE_SERVER_SP:
				LobbySeverInterface.DeserializeGAME_ANSWER_GAME_CHANGE_SERVER_SP(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_CHECKPOINT:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_CHECKPOINT(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_STATUS_START:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_STATUS_START(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_STATUS_STOP:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_STATUS_STOP(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_GOALIN:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_GOALIN(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_FINISH:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_FINISH(b);
				break;
			case (int)Lobby.eGAME_NOTIFY.GAME_NOTIFY_GAME_RESULT:
				LobbySeverInterface.DeserializeGAME_NOTIFY_GAME_RESULT(b);
				break;

			//同步玩家位置
			case (int)Lobby.eRELAY_ECHO.RELAY_ECHO_POSITION:
				LobbySeverInterface.DeserializeRELAY_ECHO_POSITION(b);
				break;

			default:
				{
					WebLog.Log("未进行处理的消息: " + __msg.GetID ());
				}
				break;
			}

			return true;
		}