Ejemplo n.º 1
0
    private void OnMsgLoginServerList(byte[] buffer)
    {
        PRServerList ret = Net.Deserialize <PRServerList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.LOGIN_SERVER_LIST))
        {
            return;
        }

        ServerManager.Instance.LoginServerList.Clear();

        foreach (var item in ret.servers)
        {
            Log.Info("登录服务器: " + item.ip);
            ServerInfo info = new ServerInfo();
            info.id         = item.id;
            info.name       = item.name;
            info.ip         = item.ip;
            info.port       = item.port;
            info.url        = item.url;
            info.statusType = (ServerStatusType)item.type;
            ServerManager.Instance.LoginServerList.Add(info);
        }

        Log.Info("获取登陆服列表成功");

        // 获取登陆服列表成功,登录
        ServerManager.Instance.ConnectToLoginServer();
    }
Ejemplo n.º 2
0
    // 请求攻打城池
    public void RequestAttack(int mapPos, long playerID, bool isNpc, int cost)
    {
        PAttack data = new PAttack();

        data.pos        = new PVector();
        data.pos.x      = mapPos;
        data.pos.y      = (int)(isNpc ? eWorldMapType.NPC_CITY_MAP : eWorldMapType.PLAYER_CITY_MAP);
        data.defenserId = playerID;

        NetworkManager.Instance.Send(eCommand.READY_BT_OCCUPY_CITY, data, (buffer) => {
            PBattlVerify ret = Net.Deserialize <PBattlVerify>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.READY_BT_OCCUPY_CITY))
            {
                return;
            }

            BattleManager.Instance.StartBattle(ret.battleId, LogicBattleType.WORLD);

            UserManager.Instance.CostMoney(cost, PriceType.MONEY);
            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);

            // 刷新地图
            // UIManager.Instance.RefreshWindow<UIWorldView>();
        });
    }
Ejemplo n.º 3
0
    private void OnMsgAthteclicList(byte[] buffer)
    {
        PAthleticsList ret = Net.Deserialize <PAthleticsList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.ATHTECLIC_LIST))
        {
            return;
        }

        PVPManager.Instance.AttackCount = ret.freeTimes;                                 // 剩余次数
        PVPManager.Instance.AttackRemainTime.SetTimeMilliseconds(ret.nextAthlecticTime); // 攻击冷却时间
        PVPManager.Instance.MyRank     = ret.rank;                                       // 我的排名
        PVPManager.Instance.MyHighRank = ret.maxRank;                                    // 我的最高排名

        // 对手
        PVPManager.Instance.PlayerList.Clear();
        foreach (var item in ret.athletics)
        {
            PVPPlayerInfo info = new PVPPlayerInfo();
            info.Deserialize(item);
            PVPManager.Instance.PlayerList.Add(info);
        }

        PVPManager.Instance.SortPlayer();

        // 刷新ui
        UIManager.Instance.RefreshWindow <UIPVPView>();
    }
Ejemplo n.º 4
0
    // 请求取消生产士兵
    public void RequestCancelProduceSoldier(long buildingID, int soldierID)
    {
        TroopBuildingInfo infoSend = GetBuilding(buildingID) as TroopBuildingInfo;

        if (infoSend == null)
        {
            return;
        }

        PCMLongInt data = new PCMLongInt();

        data.arg1 = buildingID;
        data.arg2 = soldierID;

        Net.Send(eCommand.CANCLE_PRODUCT_SOLIDER, data, (buffer) => {
            PBuildInfo ret = Net.Deserialize <PBuildInfo>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.CANCLE_PRODUCT_SOLIDER))
            {
                return;
            }

            infoSend.Deserialize(ret);

            // 请求同步数据(因为士兵有生产过程,所以客户端很难去计算正确的结果)
            UserManager.Instance.RequestSyncRes();
            RefreshUI(buildingID);
        });
    }
Ejemplo n.º 5
0
    private void OnMsgGetBuildInfo(byte[] buffer)
    {
        PBuildList ret = Net.Deserialize <PBuildList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_BUILD_INFO))
        {
            return;
        }

        foreach (var item in ret.buildList)
        {
            BuildingInfo info = GetBuilding(item.buildId);
            if (info == null)
            {
                // 新增建筑
                info = CreateBuilding(item.cfgId);
                BuildingList.Add(info);
            }

            info.Deserialize(item);
        }

        // 更新最大储量
        UpdateMaxStorage();

        // 刷新地图
        UIManager.Instance.RefreshWindow <UICityView>();
    }
Ejemplo n.º 6
0
    private void OnRoleLevelUpgrade(byte[] buffer)
    {
        PRoleList ret = Net.Deserialize <PRoleList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.PUSH_ROLELEVEL_UPGRADE))
        {
            return;
        }

        if (ret.roleAttr != null)
        {
            Deserialize(ret.roleAttr);
        }

        if (ret.heroAttr != null)
        {
            HeroInfo heroInfo = GetHeroInfo(ret.heroAttr.heroId);
            if (heroInfo != null)
            {
                heroInfo.Deserialize(ret.heroAttr, false);
            }
        }

        UIManager.Instance.RefreshWindow <UINewHeroView>();
        EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
    }
Ejemplo n.º 7
0
    // 请求快速升级士兵
    public void RequestQuickTrainSoldier(int soldierCfgID, bool costRes)
    {
        PCMInt data = new PCMInt();

        data.arg = soldierCfgID;

        Net.Send(eCommand.TRAIN_SOLIDER_RIGHT_NOW, data, (buffer) => {
            PBuildInfo ret = Net.Deserialize <PBuildInfo>(buffer);

            if (!Net.CheckErrorCode(ret.errorCode, eCommand.TRAIN_SOLIDER_RIGHT_NOW))
            {
                return;
            }

            TrainBuildingInfo tbinfo = GetBuildingByType(CityBuildingType.TRAIN) as TrainBuildingInfo;
            if (tbinfo != null)
            {
                if (costRes)
                {
                    // 扣去相应资源(先减再升级)
                    UserManager.Instance.CostMoney(tbinfo.GetTrainCost(soldierCfgID), PriceType.MONEY);
                }

                // 无论哪种情况都要把黄金扣了
                UserManager.Instance.CostMoney(tbinfo.GetQuickTrainCost(), PriceType.GOLD);

                tbinfo.Deserialize(ret);
                RefreshUI(tbinfo.EntityID);

                UIManager.Instance.RefreshWindow <UICityTrainSelectView>();
            }
        });
    }
Ejemplo n.º 8
0
    // 请求取消升级建筑
    public void RequestCancelUpgradeBuilding(long buildingID)
    {
        BuildingInfo infoSend = GetBuilding(buildingID);

        if (infoSend == null)
        {
            return;
        }

        PCMLongInt data = new PCMLongInt();

        data.arg1 = buildingID;
        data.arg2 = infoSend.Cfg.BuildingType;

        Net.Send(eCommand.CANCLE_UPGRADE_BUILD, data, (buffer) => {
            CommonAnswer ret = Net.Deserialize <CommonAnswer>(buffer);
            if (!Net.CheckErrorCode(ret.err_code, eCommand.CANCLE_UPGRADE_BUILD))
            {
                return;
            }

            // 返还资源
            UserManager.Instance.AddMoney(Mathf.FloorToInt(infoSend.CfgLevel.CostStone * GameConfig.CITY_BUILDING_CANCEL_BACK), PriceType.STONE);
            UserManager.Instance.AddMoney(Mathf.FloorToInt(infoSend.CfgLevel.CostWood * GameConfig.CITY_BUILDING_CANCEL_BACK), PriceType.WOOD);

            infoSend.LevelUpRemainTime.Reset();

            // TODO 返还资源由服务器推送
            RefreshUI(buildingID);
        });
    }
Ejemplo n.º 9
0
    //  请求锻造装备
    public void RequestCombineEquip(int destCfgID, List <ItemInfo> itemList, bool isLuck, SmithyCost cost)
    {
        List <long> list = new List <long>();

        foreach (var item in itemList)
        {
            list.Add(item.EntityID);
        }
        PCombineEquip data = new PCombineEquip();

        data.destId = destCfgID;
        data.modelId.AddRange(list);
        data.type = isLuck ? eCombineType.COMBINE_LUCK : eCombineType.COMBINE_GOLD;

        Net.Send(eCommand.COMBINE_EQUIP, data, (buffer) =>
        {
            PComItem ret = Net.Deserialize <PComItem>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.COMBINE_EQUIP))
            {
                return;
            }

            ItemInfo info = new ItemInfo();
            info.Deserialize(ret);
            UserManager.Instance.AddItem(info, true);

            // 刷新锻造铺
            UIManager.Instance.RefreshWindow <UISmithyView>();
            UIManager.Instance.OpenWindow <UISmithyGetArmsView>(info);

            UserManager.Instance.Money -= cost.Money;
            UserManager.Instance.Gold  -= cost.Gold;
            foreach (var item in cost.Mold)
            {
                ItemInfo old = UserManager.Instance.GetItem(item.EntityID);
                if (old != null)
                {
                    UserManager.Instance.RemoveItem(old);
                }
            }

            foreach (var item in cost.Material)
            {
                if (item.CfgID == GameConfig.ITEM_CONFIG_ID_WOOD)
                {
                    UserManager.Instance.Wood -= item.Count;
                }
                else if (item.CfgID == GameConfig.ITEM_CONFIG_ID_STONE)
                {
                    UserManager.Instance.Stone -= item.Count;
                }
                else
                {
                    UserManager.Instance.UseItemByConfigID(item.CfgID, item.Count);
                }
            }

            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
        });
    }
Ejemplo n.º 10
0
    // 请求收获
    public void RequestHarvest(long buildingID)
    {
        BuildingInfo infoSend = GetBuilding(buildingID);

        if (infoSend == null)
        {
            return;
        }

        PCMLongInt data = new PCMLongInt();

        data.arg1 = buildingID;
        data.arg2 = infoSend.Cfg.BuildingType;

        Net.Send(eCommand.COLLECT_RESOURCE, data, (byte[] buffer) =>
        {
            PBuildInfo ret = Net.Deserialize <PBuildInfo>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.COLLECT_RESOURCE))
            {
                return;
            }

            DoHarvest(buildingID, ret.addNum);

            // 刷新城池
            EventDispatcher.TriggerEvent(EventID.EVENT_CITY_BUILDING_REFRESH, buildingID);

            // 刷新主界面的数据
            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
        });
    }
Ejemplo n.º 11
0
    // 请求补充士兵
    public void RequestProduceSoldier(long buildingID, int soldierID, int cost)
    {
        PProductSolider data = new PProductSolider();

        data.buildId      = buildingID;
        data.soliderCfgId = soldierID;

        Net.Send(eCommand.PRODUCT_SOLIDERS, data, (buffer) => {
            PBuildInfo ret = Net.Deserialize <PBuildInfo>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.PRODUCT_SOLIDERS))
            {
                return;
            }

            TroopBuildingInfo info = GetBuilding(ret.buildId) as TroopBuildingInfo;
            if (info != null)
            {
                // 扣去相应资源
                UserManager.Instance.CostMoney(cost, PriceType.MONEY);
                info.Deserialize(ret);
                RefreshUI(buildingID);
                UIManager.Instance.CloseWindow <UICitySoldierSelectView>();
                UIManager.Instance.RefreshWindow <UICitySoldierSwitchView>();
            }
        });
    }
Ejemplo n.º 12
0
    public void RequestQuickProduceSoldier(long buildingID, int soldierID)
    {
        TroopBuildingInfo infoSend = GetBuilding(buildingID) as TroopBuildingInfo;

        if (infoSend == null)
        {
            return;
        }

        PCMLongInt data = new PCMLongInt();

        data.arg1 = buildingID;
        data.arg2 = soldierID;

        Net.Send(eCommand.PRODUCT_SOLIDER_RIGHT_NOW, data, (buffer) => {
            PBuildInfo ret = Net.Deserialize <PBuildInfo>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.PRODUCT_SOLIDER_RIGHT_NOW))
            {
                return;
            }

            UserManager.Instance.CostMoney(infoSend.GetQuickProducingCost(), PriceType.GOLD);

            infoSend.Deserialize(ret);
            RefreshUI(buildingID);

            UIManager.Instance.CloseWindow <UICitySoldierSelectView>();
            UIManager.Instance.CloseWindow <UICitySoldierSwitchView>();
        });
    }
Ejemplo n.º 13
0
    private void OnMsgPushBuildStatus(byte[] buffer)
    {
        PBuildInfo ret = Net.Deserialize <PBuildInfo>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.PUSH_BUILD_STATUS))
        {
            return;
        }

        BuildingInfo info = GetBuildingByConfigID(ret.cfgId);

        if (info == null)
        {
            return;
        }

        info.Deserialize(ret);
        info.OnLevelUpFinish();

        if (info.BuildingType == CityBuildingType.PALACE)
        {
            // 如果是主城升级完毕,重新取建筑列表,可能会解锁建筑
            RequestBuildingList();
        }
    }
Ejemplo n.º 14
0
    private void OnMsgGetPlayerInfo(byte[] buffer)
    {
        PPlayerInfo ret = Net.Deserialize <PPlayerInfo>(buffer);

        if (ret.errorCode != 0)
        {
            // 创建新的角色
            if (ret.errorCode == (int)eErrorCode.NO_PLAYER_ERROR)
            {
                UIManager.Instance.OpenWindow <UICreateRoleView>();
                return;
            }
        }

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_PLAYER_INFO))
        {
            return;
        }

        UserManager.Instance.Deserialize(ret);

        if (!Game.Instance.IsInGame)
        {
            // 加入游戏
            UserManager.Instance.JoinGame();
        }
    }
Ejemplo n.º 15
0
    // 请求取消升级士兵
    public void RequestCancelTrainSoldier(int soldierCfgID)
    {
        PCMInt data = new PCMInt();

        data.arg = soldierCfgID;

        Net.Send(eCommand.CANCLE_TRAIN_SOLIDER, data, (buffer) => {
            PBuildInfo ret = Net.Deserialize <PBuildInfo>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.CANCLE_TRAIN_SOLIDER))
            {
                return;
            }

            TrainBuildingInfo tbinfo = GetBuildingByType(CityBuildingType.TRAIN) as TrainBuildingInfo;
            if (tbinfo != null)
            {
                int cost = tbinfo.GetTrainCost(tbinfo.TrainSoldierCfgID);

                // 返还资源
                UserManager.Instance.AddMoney(Mathf.FloorToInt(cost * GameConfig.CITY_BUILDING_CANCEL_BACK), PriceType.MONEY);

                tbinfo.TrainSoldierCfgID = 0;
                tbinfo.TrainRemainTime   = 0;
                tbinfo.TrainSyncTime     = 0;

                RefreshUI(tbinfo.EntityID);
            }
        });
    }
Ejemplo n.º 16
0
    // 出售物品
    public void ReqSellItem(long itemID, int count)
    {
        PUseCommonItem data = new PUseCommonItem();

        data.comItem.Add(new PComItem
        {
            id  = itemID,
            num = count,
        });

        Net.Send(eCommand.SALE_GOOD_TOSYS, data, (buffer) =>
        {
            CommonAnswer ret = Net.Deserialize <CommonAnswer>(buffer);
            if (!Net.CheckErrorCode(ret.err_code, eCommand.SALE_GOOD_TOSYS))
            {
                return;
            }

            ItemInfo info = GetItem(itemID);
            if (info != null)
            {
                AddMoney(info.Cfg.Price * count, PriceType.MONEY);
            }
            UseItem(itemID, count);

            UIManager.Instance.RefreshWindow <UINewBagView>();
        });
    }
Ejemplo n.º 17
0
    // 设置阵型
    public void ReqSetFormation()
    {
        PSetLineUp data = new PSetLineUp();

        data.lineType = eLineUpType.BT_PVE;
        int index = 0;

        foreach (var item in PVEHeroList)
        {
            ++index;
            data.positionHero.Add(new PPosionInfo
            {
                pos = index,
                arg = item.EntityID,
            });
        }
        Net.Send(eCommand.SET_LINE_UP, data, (buffer) =>
        {
            CommonAnswer ret = Net.Deserialize <CommonAnswer>(buffer);
            if (!Net.CheckErrorCode(ret.err_code, eCommand.SET_LINE_UP))
            {
                return;
            }
        });
    }
Ejemplo n.º 18
0
    private bool Recv()
    {
        if (!IsConnected())
        {
            return(false);
        }

        // 检查消息头(小于HEADER_SIZE,则无法获取到实际消息数据)
        if (_recvSize < HEADER_SIZE)
        {
            return(false);
        }

        // 计算要拷贝的消息的消息头
        int startIndex = _recvStartIndex;
        int msgLength  = NetUtil.ReadIntFromRing(_recieveBuffer, startIndex, RECIEVE_BUFFER_SIZE);

        startIndex = (startIndex + sizeof(int)) % RECIEVE_BUFFER_SIZE;

        // 检查是否有一个消息(小于实际消息长度,则无法获取到实际消息数据)
        if (_recvSize < msgLength)
        {
            return(false);
        }

        // 读取实际消息数据(protobuf数据)
        byte[] buffer = new byte[msgLength];
        NetUtil.ReadByteFromRing(_recieveBuffer, startIndex, RECIEVE_BUFFER_SIZE, buffer, msgLength);

        // 当成功接收完一个消息,则修改缓冲区头的位置
        _recvStartIndex = (startIndex + msgLength) % RECIEVE_BUFFER_SIZE;
        _recvSize      -= (HEADER_SIZE + msgLength);

        // 解析消息为rpc结构
        MemoryStream stream      = new MemoryStream(buffer);
        RPCResponse  msgResponse = ProtoBuf.Serializer.Deserialize <RPCResponse>(stream);

        try {
            // 消息信息提示
            Net.CheckErrorCode(msgResponse.ErrCode, msgResponse.MsgID);

            ProcessMsg(msgResponse);

            Action <RPCResponse> callback;
            if (_messageResponseCallback.TryGetValue(msgResponse.MsgIdentifier, out callback))
            {
                if (callback != null)
                {
                    callback(msgResponse);
                }

                _messageResponseCallback.Remove(msgResponse.MsgIdentifier);
            }
        } catch (Exception e) {
            Log.Exception(e);
        }

        return(true);
    }
Ejemplo n.º 19
0
    private void OnGetSomeHerosInfo(byte[] buffer)
    {
        PPlayerInfo ret = Net.Deserialize <PPlayerInfo>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_SOME_HEROS_INFO))
        {
            return;
        }

        UserManager.Instance.Deserialize(ret);
    }
Ejemplo n.º 20
0
    private void OnMsgOtherHeroInfo(byte[] buffer)
    {
        PPlayerInfo ret = Net.Deserialize <PPlayerInfo>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.OTHER_HERO_INF0))
        {
            return;
        }

        UserManager.Instance.Deserialize(ret);
    }
Ejemplo n.º 21
0
    private void OnGetRoleInfo(byte[] buffer)
    {
        PPlayerInfo ret = Net.Deserialize <PPlayerInfo>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_ROLE_INFO))
        {
            return;
        }

        Deserialize(ret);
    }
Ejemplo n.º 22
0
    private void OnMsgGetAssetInfo(byte[] buffer)
    {
        PAssertAttr ret = Net.Deserialize <PAssertAttr>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_ASSERT_INFO))
        {
            return;
        }

        Deserialize(ret);
    }
Ejemplo n.º 23
0
    // 请求购买资源
    public void RequestBuyRes(ResourceType retType, int cost, int resValue)
    {
        PChance data = new PChance();

        data.num       = cost;
        data.priceType = ePriceType.DIAMOND;

        switch (retType)
        {
        case ResourceType.MONEY:
            data.chance = eChance.CHAN_GOLD;
            break;

        case ResourceType.WOOD:
            data.chance = eChance.CHAN_WOOD;
            break;

        case ResourceType.STONE:
            data.chance = eChance.CHAN_STONE;
            break;
        }

        NetworkManager.Instance.Send(eCommand.BUY_CHANCE, data, (buffer) =>
        {
            PChance ret = Net.Deserialize <PChance>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.BUY_CHANCE))
            {
                return;
            }

            switch (ret.chance)
            {
            case eChance.CHAN_GOLD:
                // 购买银两
                Money += ret.num;
                CostMoney(cost, PriceType.GOLD);
                break;

            case eChance.CHAN_WOOD:
                // 购买木材
                Wood += ret.num;
                CostMoney(cost, PriceType.GOLD);
                break;

            case eChance.CHAN_STONE:
                // 购买石材
                Stone += ret.num;
                CostMoney(cost, PriceType.GOLD);
                break;
            }

            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
        });
    }
Ejemplo n.º 24
0
    private void OnMsgReadyAthteclicChallenge(byte[] buffer)
    {
        PBattlVerify ret = Net.Deserialize <PBattlVerify>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.READY_ATHTECLIC_CHALLENGE))
        {
            return;
        }

        BattleManager.Instance.StartBattle(ret.battleId, LogicBattleType.PVP);
    }
Ejemplo n.º 25
0
    private void OnMsgRegister(byte[] buffer)
    {
        AccountAnswer ret = Net.Deserialize <AccountAnswer>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.REGISTER))
        {
            return;
        }

        // 注册成功
        ServerManager.Instance.Login();
    }
Ejemplo n.º 26
0
    // 请求自己的公会数据
    public void RequestGuildInfo()
    {
        Net.Send(eCommand.ADJUST_PLAYER_LEVEL, (buffer) =>
        {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.ADJUST_PLAYER_LEVEL))
            {
                return;
            }

            UIManager.Instance.RefreshWindow <UIGuildInfoView>();
        });
    }
Ejemplo n.º 27
0
    private void OnMsgBuyEnergy(byte[] buffer)
    {
        PRoleEnergy ret = Net.Deserialize <PRoleEnergy>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.BUYE_ENERGY))
        {
            return;
        }

        UserManager.Instance.SP += GameConfig.BUY_SP_GET;
        UserManager.Instance.CostMoney(GameConfig.BUY_SP_COST, PriceType.GOLD);
        EventDispatcher.TriggerEvent(EventID.EVENT_UI_REFRESH_SP);
    }
Ejemplo n.º 28
0
    private void OnMsgSysAddGood(byte[] buffer)
    {
        PComItemList ret = Net.Deserialize <PComItemList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.SYS_ADD_GOOD))
        {
            return;
        }

        UserManager.Instance.AddItem(ret, false);

        // 刷新ui
        UIManager.Instance.RefreshWindow <UINewBagView>();
        EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
    }
Ejemplo n.º 29
0
    private void OnGetSkillPoint(byte[] buffer)
    {
        PSkillPoint ret = Net.Deserialize <PSkillPoint>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_SKILL_POINT))
        {
            return;
        }

        Log.Info("获取玩家技能点信息成功: {0}   {1}", ret.skillPoint, ret.nextTime / 1000.0f);

        UserManager.Instance.SetSkillPoint(ret.skillPoint, ret.nextTime);

        EventDispatcher.TriggerEvent(EventID.EVENT_UI_REFRESH_SKILL_POINT);
    }
Ejemplo n.º 30
0
    // 酒馆抽卡,元宝10次
    public void RequestTavernGoldBuy10()
    {
        NetworkManager.Instance.Send(eCommand.TEN_CONTINUE_DIAMOND_LUCK_DRAW, (buffer) => {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.TEN_CONTINUE_DIAMOND_LUCK_DRAW))
            {
                return;
            }

            OnTavernBuyOK(ret, GameConfig.LUCK_DRAW_GOLD_ITEM_ID, 10, TavernBuyAction.BUY_GOLD_10);
            UserManager.Instance.CostMoney(GameConfig.LUCK_DRAW_GOLD_10_COST, PriceType.GOLD);

            RefreshUI();
        });
    }