Пример #1
0
    // 请求侦查城池
    public void RequestDetect(int mapPos)
    {
        PCMInt data = new PCMInt();

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

            WorldCityInfo info = GetCity(mapPos);
            if (info != null)
            {
                info.Deserialize(ret);
            }

            // 刷新地图
            EventDispatcher.TriggerEvent(EventID.EVENT_WORLD_REFRESH_CITY, mapPos);
            UIManager.Instance.RefreshWindow <UIWorldCityInfoView>();
        });
    }
Пример #2
0
    public virtual void Deserialize(PPlayerMapInfo data)
    {
        MapPosition = data.mapPos;

        if (data.mapType == eWorldMapType.PLAYER_CITY_MAP)
        {
            IsNpc = false;
            if (data.simRoleAttr != null)
            {
                UserEntityID = data.simRoleAttr.playerId;
                UserName     = data.simRoleAttr.roleName;
                UserIcon     = data.simRoleAttr.headImage;

                UserLevel       = data.simRoleAttr.level;
                UserPalaceLevel = data.simRoleAttr.mainBuildLevel;
                UserFightScore  = data.simRoleAttr.fighting;
            }
        }
        else if (data.mapType == eWorldMapType.NPC_CITY_MAP)
        {
            IsNpc = true;
            if (data.simRoleAttr != null)
            {
                UserEntityID = data.simRoleAttr.playerId;

                WorldMapConfig cfg = WorldMapConfigLoader.GetConfig((int)UserEntityID);

                UserName = cfg.CityName;
                UserIcon = data.simRoleAttr.headImage;

                if (data.getAssertInfo != null)
                {
                    // 已经侦查
                    UserLevel       = cfg.PlayerLevel;
                    UserPalaceLevel = cfg.CityLevel;
                    UserFightScore  = cfg.BattlePower;
                    HeroInfoList.Clear();
                    AddNpcHero(cfg.DefenseHero1);
                    AddNpcHero(cfg.DefenseHero2);
                    AddNpcHero(cfg.DefenseHero3);
                }
                else
                {
                    // 尚未侦查
                    UserLevel       = 0;
                    UserPalaceLevel = 0;
                    UserFightScore  = -1;
                }
            }
        }

        if (data.getAssertInfo != null)
        {
            RewardMoney = data.getAssertInfo.gold;
            RewardWood  = data.getAssertInfo.wood;
            RewardStone = data.getAssertInfo.stone;
            RewardGold  = data.getAssertInfo.yuanbao;
        }
        else
        {
            // 尚未侦查
            RewardMoney = -1;
            RewardWood  = -1;
            RewardStone = -1;
            RewardGold  = -1;
        }

        if (data.heroInfos != null)
        {
            foreach (var item in data.heroInfos)
            {
                WorldCityHeroInfo info = new WorldCityHeroInfo();
                info.heroCfgID      = item.heroCfgId;
                info.heroLevel      = item.level;
                info.heroQuality    = item.jinjie;
                info.heroStar       = item.heroStar;
                info.heroFightScore = item.fighting;
                HeroInfoList.Add(info);
            }
        }

        RefreshRemainTime.SetTimeMilliseconds(data.refreshLeftTime);
    }