Beispiel #1
0
    private void OnRemoveSceneObj(KProtoBuf buffer)
    {
        S2C_REMOVE_SCENE_OBJ respond = buffer as S2C_REMOVE_SCENE_OBJ;

        Debug.LogWarningFormat("====》删除UId为{0}的实体", respond.objID);

        if (DropItemManager.Instance.CheckDropItemPickUpSuccess(respond.objID))
        {
            //Debug.LogErrorFormat("OnRemoveSceneObj 1 {0}", respond.objID);
            DropItemManager.Instance.DestoryChestGameObject(respond.objID);
            UIManager.Instance.StartCoroutine(DelayToRemoveEntityBecauseOfDropItem(respond.objID));
        }
        else
        {
            BaseEntity     baseEntity     = m_EntityManager.GetEntityById <BaseEntity>(respond.objID);
            ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;
            shipItemsProxy.RemoveShipItems(respond.objID);
            if (baseEntity == null)
            {
                Debug.LogErrorFormat("客户端无法找到UID为{0}的实体", respond.objID);
                return;
            }
            ulong uid = 0;
            if (baseEntity.GetHeroType() == KHeroType.htPlayer)
            {
                uid = baseEntity.GetPlayerId();
            }
            //NetworkManager.Instance.GetDropItemController().GetDropItemManager().AddDestroyEffect(respond.objID);
            m_EntityManager.RemoveEntity(respond.objID);
            GameFacade.Instance.SendNotification(NotificationName.MSG_TEAM_BATTLE_UPDATE, uid);            //发送组队队员离开
        }
    }
Beispiel #2
0
    /// <summary>
    /// 获取其他玩家的信息
    /// </summary>
    /// <param name="id"></param>
    private void GetShipData(ulong id)
    {
        //Debug.LogError("收到玩家信息"+id);
        ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;
        // 飞船的
        IShip ship = shipItemsProxy.GetCurrentWarShip(id);

        if (ship != null)
        {
            FriendInfoVO vO = m_FriendProxy.GetFriend(id);
            if (vO != null)
            {
                MsgPlayerInfo msgPlayerInfo = new MsgPlayerInfo();
                msgPlayerInfo.Name = vO.Name;
                msgPlayerInfo.Tid  = vO.TID;
                msgPlayerInfo.UID  = vO.UID;
                msgPlayerInfo.Ship = ship;
                m_LeftSelectIndex  = (int)m_SocialSubClass;

                //OwnerView.OpenChildPanel(UIPanel.EscWatchPanel, msgPlayerInfo);
            }
        }
        else
        {
            Debug.Log("船的信息为空");
        }
    }
Beispiel #3
0
        /// <summary>
        /// 好友当前状态
        /// </summary>
        /// <param name="buf">协议内容</param>
        private void OnSyncPlayerInfoBack(KProtoBuf buf)
        {
            S2C_SYNC_PLAYERINFO msg = buf as S2C_SYNC_PLAYERINFO;

            ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;

            shipItemsProxy.InitShipItemsByByRespond(msg);
        }
Beispiel #4
0
    private void OnSyncFightShipItems(KProtoBuf buf)
    {
        S2C_SYNC_FIGHTSHIP_VISIBLE_ITEM_LIST msg = buf as S2C_SYNC_FIGHTSHIP_VISIBLE_ITEM_LIST;

        Debug.Log("OnSyncFightShipItems");

        ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;

        shipItemsProxy.InitShipItemsByByRespond(msg);
    }
    /// <summary>
    /// 获取其他玩家的信息
    /// </summary>
    /// <param name="id"></param>
    private void GetShipData(ulong id)
    {
        //Debug.LogError("收到玩家信息"+id);
        ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;
        // 飞船的
        IShip ship = shipItemsProxy.GetCurrentWarShip(id);

        if (ship != null)
        {
            IWeaponContainer weaponContainer = ship.GetWeaponContainer();
            if (weaponContainer != null)
            {
                IWeapon[] weapons = weaponContainer.GetWeapons();
                //Debug.LogError("weapons==="+weapons.Length);
                if (weapons != null)
                {
                    for (int i = 0; i < weapons.Length; i++)
                    {
                        IWeapon weapon = weapons[i];
                        m_Weapons[i].text = TableUtil.GetItemName((int)weapon.GetBaseConfig().Id);
                    }
                }
            }

            IEquipmentContainer equipmentContainer = ship.GetEquipmentContainer();
            if (equipmentContainer != null)
            {
                IEquipment[] equipments = ship.GetEquipmentContainer().GetEquipments();
                for (int i = 0; i < equipments.Length; i++)
                {
                    IEquipment equipment = equipments[i];
                    m_EquipMents[i].text = TableUtil.GetItemName((int)equipment.GetBaseConfig().Id);
                }
            }
            IReformer ireformer = ship.GetReformerContainer().GetReformer();
            if (ireformer != null)
            {
                m_Converter.text = TableUtil.GetItemName((int)ireformer.GetBaseConfig().Id);
            }
        }
        else
        {
            Debug.LogError("船的信息为空");
        }
    }
        /// <summary>
        /// 是否是武器技能
        /// </summary>
        /// <returns></returns>
        private bool IsWeapon(int skllId)
        {
            ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;
            IShip          ship           = shipItemsProxy.GetCurrentWarShip(m_ISpacecraftSkillProperty.EntityId());

            if (ship != null)
            {
                IWeapon[] weapons = ship.GetWeaponContainer().GetWeapons();
                for (int i = 0; i < weapons.Length; i++)
                {
                    if (weapons[i].GetBaseConfig().SkillId == (ulong)skllId)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Beispiel #7
0
    public override void Execute(INotification notification)
    {
        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        ShipItemsProxy   shipItemsProxy   = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;

        shipItemsProxy.ClearShipItems();

        SceneShipProxy sceneShipProxy = GameFacade.Instance.RetrieveProxy(ProxyName.SceneShipProxy) as SceneShipProxy;

        if (cfgEternityProxy.GetMapByKey(cfgEternityProxy.GetCurrentGamingMapId()).Value.GamingType == 2)
        {
            sceneShipProxy.ShowShip();
        }
        else
        {
            sceneShipProxy.HideShip();
        }

        //设置输入模式
        InputManager.Instance.SceneInputMap = cfgEternityProxy.IsSpace() ? HotKeyMapID.SHIP : HotKeyMapID.HUMAN;

        //设置HUD
        if (cfgEternityProxy.IsSpace())
        {
            OpenHudByShip();
        }
        else
        {
            OpenHudByHuman();
            //进入手表升级场景打开屏蔽hud
            if ((uint)notification.Body == 1100)
            {
                UIManager.Instance.OpenPanel(UIPanel.HudBlockKeyPanel);
            }
            else
            {
                UIManager.Instance.ClosePanel(UIPanel.HudBlockKeyPanel);
            }
        }

        //音效场景切换背景音乐
        WwiseManager.Instance.SceneSwitchEnd(cfgEternityProxy.GetCurrentGamingMapId());
    }
        /// <summary>
        /// 获取武器射速by SkillID
        /// </summary>
        /// <param name="skllId"></param>
        /// <returns></returns>
        private float GetWeaponFireInterval(int skllId)
        {
            if (m_ISpacecraftSkillProperty.GetHeroType() == KHeroType.htPlayer)
            {
                ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;
                IShip          ship           = shipItemsProxy.GetCurrentWarShip(m_ISpacecraftSkillProperty.EntityId());
                if (ship != null)
                {
                    IWeapon[] weapons = ship.GetWeaponContainer().GetWeapons();
                    for (int i = 0; i < weapons.Length; i++)
                    {
                        if (weapons[i].GetBaseConfig().SkillId == (ulong)skllId)
                        {
                            return(WeaponAndCrossSightFactory.CalculateFireInterval((SpacecraftEntity)m_ISpacecraftSkillProperty.GetOwner(),
                                                                                    weapons[i].GetConfig().TypeDateSheetld,
                                                                                    weapons[i].GetUID(),
                                                                                    (WeaponAndCrossSight.WeaponAndCrossSightTypes)weapons[i].GetConfig().Reticle));
                        }
                    }
                }
            }

            return(1.0f);
        }