コード例 #1
0
        public static bool IntepretMessage(ByteArray byteArray, IVillageReportClientService clientService)
        {
            byteArray.BypassHeader();
            int  methodID = byteArray.readInt();
            bool mtdrst__ = false;

            switch (methodID)
            {
            case EnumVillageReportMethods.CLIENT_REPORTSTATUS_HASH:
                byteArray.EncryptKey = EnumVillageReportMethods.CLIENT_REPORTSTATUS_HASH;
                byteArray.CRC        = 0;
                byteArray.readDynamicsInt();
                mtdrst__             = OnReportStatus(byteArray, clientService);
                byteArray.EncryptKey = 0;
                return(mtdrst__);

            case EnumVillageReportMethods.CLIENT_REQUESTERROR_HASH:
                byteArray.EncryptKey = EnumVillageReportMethods.CLIENT_REQUESTERROR_HASH;
                byteArray.readDynamicsInt();
                OnClientRequestError__(byteArray, clientService);
                byteArray.EncryptKey = 0;
                return(true);
            }

            if (methodID == EnumVillageReportMethods.CLIENT_REQUESTERROR_HASH)
            {
                return(OnClientRequestError__(byteArray, clientService));
            }
            // recover the header
            byteArray.Rewind();
            return(false);
        }
コード例 #2
0
        private static bool OnClientRequestError__(ByteArray byteArray, IVillageReportClientService clientService)
        {
            int errorCode = byteArray.readDynamicsInt();

            if (ClientRequestErrorHandler__ != null)
            {
                ClientRequestErrorHandler__(errorCode);
            }
            return(true);
        }
コード例 #3
0
        private static bool OnReportStatus(ByteArray byteArray, IVillageReportClientService clientService)
        {
            VillageState status = new VillageState();

            status.ReadFromByteArray(byteArray);

            int crc = byteArray.readIntNCRC();

            if (crc == byteArray.CRC)
            {
                clientService.OnReportStatus(ref status);
            }

            byteArray.Recycle();
            return(true);
        }