private void HandleOnlineAward(OperationResponse response)
    {
        GameAward gameAward = null;

        if (response.Parameters.ContainsKey((byte)ParameterCode.GameAward))
        {
            byte[] data = (byte[])response[(byte)ParameterCode.GameAward];
            gameAward = Serialization.LoadStruct <GameAward>(data);
            byte[] itemData = (byte[])response[(byte)ParameterCode.UserItems];

            UserItem[] userItems = Serialization.LoadArray <UserItem>(itemData, true);
            if (userItems != null)
            {
                foreach (UserItem item in userItems)
                {
                    item.GameItem = (GameItem)GameManager.GameItems[item.ItemId];
                }

                GameManager.GameUser.UserItems.Clear();
                GameManager.GameUser.UserItems.AddRange(userItems);
            }
        }

        byte[]            userData = (byte[])response[(byte)ParameterCode.UserBase];
        GameUser.UserBase userBase = Serialization.LoadStruct <GameUser.UserBase>(userData);
        GameManager.GameUser.Base = userBase;


        _uiManager.OnResponseOnlineReward(gameAward);
    }
示例#2
0
    private void HandleChargeCash(OperationResponse response)
    {
        byte[] userData   = (byte[])response[(byte)ParameterCode.UserBase];
        int    cardAmount = (int)response[(byte)ParameterCode.CardAmount];
        int    goldAdd    = (int)response[(byte)ParameterCode.ChargeGold];
        int    silverAdd  = (int)response[(byte)ParameterCode.ChargeSilver];

        if (userData != null)
        {
            GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData);
            GameManager.GameUser.Base = miniUser;
        }
        _uiShopManager.OnResponseCashCard(cardAmount, goldAdd, silverAdd);
    }
    private void OnReciveLand(OperationResponse response)
    {
        byte[] landData = (byte[])response.Parameters[(byte)ParameterCode.UserLand];
        byte[] userData = (byte[])response[(byte)ParameterCode.UserBase];

        UserLand userLand = Serialization.Load <UserLand>(landData);

        GameManager.GameUser.Land = userLand;
        _manager.curLand          = userLand;

        if (userData != null)
        {
            GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData);
            GameManager.GameUser.Base = miniUser;
        }
    }
    private void OnHandleCheckBank(OperationResponse response)
    {
        byte[] landData = (byte[])response.Parameters[(byte)ParameterCode.UserLand];
        byte[] userData = (byte[])response[(byte)ParameterCode.UserBase];

        float oldSilver = GameManager.GameUser.Base.Silver;
        float newSilver = GameManager.GameUser.Base.Silver;

        if (userData != null)
        {
            GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData);
            GameManager.GameUser.Base = miniUser;
            newSilver = GameManager.GameUser.Base.Silver;
        }

        UserLand userLand = Serialization.Load <UserLand>(landData);

        GameManager.GameUser.Land = userLand;


        _manager.OnResponseCheckBank(newSilver - oldSilver);
    }
    public override void OnResponse(OperationResponse response)
    {
        base.OnResponse(response);
        _waitServer = false;
        OperationCode opCode  = (OperationCode)response.OperationCode;
        ErrorCode     errCode = (ErrorCode)response.ReturnCode;

        if (errCode != ErrorCode.Success)
        {
            Debug.Log(string.Format("ResponseReceived, OperationCode = {0}, ReturnCode = {1}, DebugMsg = {2}", opCode, errCode, response.DebugMessage));
            this.HandleErrorCode(errCode);
            return;
        }

        switch (opCode)
        {
        case OperationCode.ShopBuy:
            if (errCode == ErrorCode.Success)
            {
                byte[] userData = (byte[])response[(byte)ParameterCode.UserBase];
                int    itemKind = (int)response[(byte)ParameterCode.ItemKind];
                byte[] objData  = (byte[])response[(byte)ParameterCode.ShopItem];

                GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData);

                GameManager.GameUser.Base.Gold   = miniUser.Gold;
                GameManager.GameUser.Base.Silver = miniUser.Silver;

                if (itemKind == (int)ItemKind.Hero)
                {
                    UserRole userRole = Serialization.Load <UserRole>(objData);
                    userRole.GameRole = (GameRole)GameManager.GameHeroes[userRole.Base.RoleId];
                    GameManager.GameUser.UserRoles.Add(userRole);
                }
                _manager.OnResponseBuyHero();
            }
            break;

        case OperationCode.UserUpdate:
        {
            SubCode subCode = (SubCode)response.Parameters[(byte)ParameterCode.SubCode];

            if (errCode == ErrorCode.Success)
            {
                switch (subCode)
                {
                case SubCode.CheckCash:
                {
                    byte[]            userData = (byte[])response[(byte)ParameterCode.UserBase];
                    GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData);
                    GameManager.GameUser.Base = miniUser;
                    _manager.OnRefreshGold();
                }
                break;
                }
            }
        }
        break;

        default: break;
        }
    }