public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
 {
     if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain)
     {
         LogManager.Log("Receive GCDetailBuff Packet");
         GCDetailBuff detailBuffPacket = (GCDetailBuff)pPacket;
         if (detailBuffPacket.Enable != 0)
         {
             _BUFF_IMPACT_INFO infoBuffImpact = new _BUFF_IMPACT_INFO();
             infoBuffImpact.m_nReceiverID       = (uint)detailBuffPacket.RecieverID;
             infoBuffImpact.m_nSenderID         = (uint)detailBuffPacket.SenderID;
             infoBuffImpact.m_nBuffID           = detailBuffPacket.BuffID;
             infoBuffImpact.m_nSkillID          = detailBuffPacket.SkillID;
             infoBuffImpact.m_nSenderLogicCount = detailBuffPacket.SenderLogicCount;
             infoBuffImpact.m_nSN    = detailBuffPacket.SN;
             infoBuffImpact.m_nTimer = detailBuffPacket.Continuance;
             // 接口未实现
             CDataPool.Instance.BuffImpact_Add(infoBuffImpact);
         }
         else
         {
             // 接口未实现
             CDataPool.Instance.BuffImpact_Remove((int)detailBuffPacket.SN);
         }
     }
     return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
 }
    public int                                  BuffImpact_GetTimeByIndex(int nIndex)
    {
        _BUFF_IMPACT_INFO BuffImpactInfo = BuffImpact_GetByIndex(nIndex);

        if (BuffImpactInfo != null)
        {
            return(BuffImpactInfo.m_nTimer);
        }
        else
        {
            return(-1);
        }
    }
    public bool                                 BuffImpact_DispelByIndex(int nIndex)
    {
        _BUFF_IMPACT_INFO BuffImpactInfo = BuffImpact_GetByIndex(nIndex);

        if (BuffImpactInfo != null)
        {
            CGDispelBuffReq msgDispelBuffReq = new CGDispelBuffReq();
            msgDispelBuffReq.SN = (int)BuffImpactInfo.m_nSN;
            NetManager.GetNetManager().SendPacket(msgDispelBuffReq);
            return(true);
        }
        return(false);
    }
    public string               BuffImpact_GetIconNameByIndex(int nIndex)
    {
        _BUFF_IMPACT_INFO pBuffImpactInfo = BuffImpact_GetByIndex(nIndex);

        if (pBuffImpactInfo != null)
        {
            _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU(pBuffImpactInfo.m_nBuffID);
            if (pBuffImpact != null)
            {
                return(pBuffImpact.m_szIconName);
            }
        }
        return("");
    }
    public string                           BuffImpact_GetToolTips(int nSN)
    {
        _BUFF_IMPACT_INFO pBuffImpactInfo = BuffImpact_Get(nSN);

        if (pBuffImpactInfo != null)
        {
            _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU(pBuffImpactInfo.m_nBuffID);
            if (pBuffImpact != null)
            {
                return(pBuffImpact.m_pszInfo);
            }
        }
        return("");
    }
Пример #6
0
 public void OnClick()
 {
     if (type_ == ENUM_BUFFER_TYPE.AVATAR)
     {
         //先不做是否能取消buff的判定
         _BUFF_IMPACT_INFO pBuffImpactInfo = CDataPool.Instance.BuffImpact_GetByIndex(index_);
         if (pBuffImpactInfo != null)
         {
             CGDispelBuffReq msgDispelBuffReq = new CGDispelBuffReq();
             msgDispelBuffReq.SN = (int)pBuffImpactInfo.m_nSN;
             NetManager.GetNetManager().SendPacket(msgDispelBuffReq);
         }
     }
 }
    public bool                                 BuffImpact_Add(_BUFF_IMPACT_INFO pBuffImpact)
    {
        if (pBuffImpact == null)
        {
            return(false);
        }

        int nSN = (int)pBuffImpact.m_nSN;

        if (!m_mapBuffImpact.ContainsKey(nSN))
        {
            m_mapBuffImpact.Add(nSN, pBuffImpact);
        }
        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_IMPACT_SELF_UPDATE);
        return(true);
    }
    public bool                                 BuffImpact_Dispel(int nSN)
    {
        _BUFF_IMPACT_INFO BuffImpactInfo = BuffImpact_Get(nSN);

        if (BuffImpactInfo != null)
        {
            CGDispelBuffReq msgDispelBuffReq = new CGDispelBuffReq();
            msgDispelBuffReq.SN = (int)nSN;
            NetManager.GetNetManager().SendPacket(msgDispelBuffReq);
            return(true);
        }
        else
        {
            return(false);
        }
    }
Пример #9
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain)
            {
                LogManager.Log("Receive GCDetailImpactListUpdate Packet");
                GCDetailImpactListUpdate Packet = (GCDetailImpactListUpdate)pPacket;
                CDataPool.Instance.BuffImpact_RemoveAll();
                DetailImpactStruct_T[] pImpactList = Packet.Impacts;
                for (short i = 0; i < Packet.NumImpact; i++)
                {
                    _BUFF_IMPACT_INFO infoBuffImpact = new _BUFF_IMPACT_INFO();
                    infoBuffImpact.m_nReceiverID       = (uint)Packet.OwnerID;
                    infoBuffImpact.m_nSenderID         = (uint)pImpactList[i].m_nSenderID;
                    infoBuffImpact.m_nBuffID           = pImpactList[i].m_nBuffID;
                    infoBuffImpact.m_nSkillID          = pImpactList[i].m_nSkillID;
                    infoBuffImpact.m_nSenderLogicCount = -1;
                    infoBuffImpact.m_nSN    = pImpactList[i].m_nSN;
                    infoBuffImpact.m_nTimer = pImpactList[i].m_nContinuance;

                    CDataPool.Instance.BuffImpact_Add(infoBuffImpact);
                }
            }
            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Пример #10
0
 public bool BuffImpact_Add(_BUFF_IMPACT_INFO pBuffImpact)
 {
     return(mPlayerBuffImpact.BuffImpact_Add(pBuffImpact));
 }
Пример #11
0
    public void UpdateTime()
    {
        //CObject_Character pChar = null;
        switch (type_)
        {
        case ENUM_BUFFER_TYPE.AVATAR:
        {
            _BUFF_IMPACT_INFO buff = CDataPool.Instance.BuffImpact_GetByIndex(index_);
            if (buff != null)
            {
                if (buff.m_nBuffID != bufferID_)
                {
                    _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU(buff.m_nBuffID);
                    string           iconName    = "";
                    if (pBuffImpact != null)
                    {
                        iconName = pBuffImpact.m_szIconName;
                    }
                    bufferID_ = buff.m_nBuffID;
                    Texture2D tex = IconManager.Instance.GetIcon(iconName);
                    SetTexture(tex);
                }
                timeStamp_ = GameProcedure.s_pTimeSystem.GetTimeNow();
                Hide(false);
                this.Text = string.Format("{0:F1}", buff.m_nTimer / 1000.0f) + "s";
            }
            else
            {
                Hide(true);
                bufferID_ = 0;
            }
        }
        break;

        case ENUM_BUFFER_TYPE.TARGET:
        {
            bool needHide = true;
            if (CObjectManager.Instance.GetMainTarget() != null)
            {
                CObject_Character obj = CObjectManager.Instance.GetMainTarget() as CObject_Character;
                if (obj != null)
                {
                    SImpactEffect impactEffect = obj.Impact.BuffImpact_GetByIndex(index_);
                    if (impactEffect != null)
                    {
                        if ((short)impactEffect.GetImpactID() != bufferID_)
                        {
                            _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU((int)impactEffect.GetImpactID());
                            string           iconName    = "";
                            if (pBuffImpact != null)
                            {
                                iconName = pBuffImpact.m_szIconName;
                            }
                            bufferID_ = (short)impactEffect.GetImpactID();
                            Texture2D tex = IconManager.Instance.GetIcon(iconName);
                            SetTexture(tex);
                        }
                        needHide = false;
                    }
                }
            }
            if (needHide)
            {
                bufferID_ = 0;
            }
            Hide(needHide);
            this.Text = "";
        }
        break;

        case ENUM_BUFFER_TYPE.TEAM:
            break;
        }
    }