コード例 #1
0
        public void CommandApplyReceiveAllMail(int netId)
        {
            var mailList = EM_Mail.s_instance.GetAllMailByNetId(netId);
            var charId   = EM_Character.s_instance.GetCharIdByNetId(netId);
            var bag      = EM_Item.s_instance.GetBag(netId);

            if (mailList == null || charId == -1 || bag == null)
            {
                return;
            }
            for (int i = 0; i < mailList.Count; i++)
            {
                if (mailList[i].m_isReceived)
                {
                    continue;
                }
                if (!bag.CanPutItems(mailList[i].m_itemIdAndNumList))
                {
                    GL_Chat.s_instance.NotifyReceiveMailBagFullSendMessage(netId);
                    continue;
                }
                GL_Wallet.s_instance.NotifyUpdateVirtualCurrencyOnline(netId, charId, mailList[i].m_virtualCy);
                GL_Wallet.s_instance.NotifyUpdateChargeCurrencyOnline(netId, charId, mailList[i].m_chargeCy);
                GL_Item.s_instance.NotifyCharacterGainItems(netId, charId, bag, mailList[i].m_itemIdAndNumList);
                EM_Mail.s_instance.CharacterReceiveMail(netId, mailList[i]);
                m_networkService.SendServerCommand(SC_ApplySelfReceiveMail.Instance(netId, mailList[i].m_id));
            }
        }
コード例 #2
0
        public void CommandApplyReceiveMail(int netId, int mailId)
        {
            var mail   = EM_Mail.s_instance.GetMailByNetIdAndMailId(netId, mailId);
            var charId = EM_Character.s_instance.GetCharIdByNetId(netId);
            var bag    = EM_Item.s_instance.GetBag(netId);

            if (mail == null || charId == -1 || bag == null)
            {
                return;
            }
            if (mail.m_isReceived)
            {
                return;
            }
            // 背包已满, 不可领取
            if (!bag.CanPutItems(mail.m_itemIdAndNumList))
            {
                GL_Chat.s_instance.NotifyReceiveMailBagFullSendMessage(netId);
                return;
            }
            GL_Wallet.s_instance.NotifyUpdateVirtualCurrencyOnline(netId, charId, mail.m_virtualCy);
            GL_Wallet.s_instance.NotifyUpdateChargeCurrencyOnline(netId, charId, mail.m_chargeCy);
            GL_Item.s_instance.NotifyCharacterGainItems(netId, charId, bag, mail.m_itemIdAndNumList);
            EM_Mail.s_instance.CharacterReceiveMail(netId, mail);
            m_networkService.SendServerCommand(SC_ApplySelfReceiveMail.Instance(netId, mailId));
        }