public void ResetMailNeedFlash() { bool bResult = false; foreach (DictionaryEntry info in m_MailList) { string key1 = info.Key.ToString(); HeaderProto.SMailDetail detail = info.Value as HeaderProto.SMailDetail; //存在未读邮件.. if (detail != null && detail.m_ReadTime == 0) { bResult = true; break; } //邮件存在物品未领取.. if (detail != null && detail.m_ItemCount > 0) { bResult = true; break; } //邮件存在金钱未领取.. if (detail != null && detail.m_Money > 0) { bResult = true; break; } } sdUIMailAlphaAnm.bMailNeedFlash = bResult; }
void OnClick() { if (gameObject) { GameObject wnd = sdGameLevel.instance.NGUIRoot; if (wnd) { sdUIMailWnd mailWnd = wnd.GetComponentInChildren <sdUIMailWnd>(); if (mailWnd) { //请求读邮件.. HeaderProto.SMailDetail detail = sdMailMgr.Instance.GetMailInfo(mailUUID); if (detail != null && detail.m_ReadTime == 0) { sdMailMsg.Send_CS_READ_MAIL_REQ(mailUUID); } //弹出邮件界面.. if (detail != null) { sdMailControl.Instance.ActiveMailDetailWnd(null, mailUUID); } } } } }
void OnClickDel() { GameObject wnd = sdGameLevel.instance.NGUIRoot; if (wnd) { sdUIMailDetailWnd mailDetailWnd = wnd.GetComponentInChildren <sdUIMailDetailWnd>(); if (mailDetailWnd) { HeaderProto.SMailDetail detail = sdMailMgr.Instance.GetMailInfo(mailDetailWnd.m_uuMailID); if (detail != null) { HeaderProto.MAIL_ID_LIST mailIDList = new HeaderProto.MAIL_ID_LIST(); mailIDList.m_Count = 1; mailIDList.m_MailIDs[0] = mailDetailWnd.m_uuMailID; sdMailMsg.Send_CS_DELETE_MAIL_REQ(mailIDList); if (sdMailControl.m_UIMailDetailWnd != null) { sdMailControl.Instance.CloseGameWnd(sdMailControl.m_UIMailDetailWnd); } return; } } } }
public void ResetMailList(CliProto.SC_MAIL_LIST_NTF msg) { m_MailList.Clear(); CliProto.SC_MAIL_LIST_NTF refMSG = msg; int iCount = refMSG.m_List.m_Count; for (int i = 0; i < iCount; i++) { UInt64 uuDBID = refMSG.m_List.m_Mails[i].m_UniqueID; if (uuDBID != UInt64.MaxValue) { HeaderProto.SMailDetail info = new HeaderProto.SMailDetail(); info.m_Type = refMSG.m_List.m_Mails[i].m_Type; /// 邮件类型.. info.m_UniqueID = refMSG.m_List.m_Mails[i].m_UniqueID; /// 邮件唯一id.. info.m_Money = refMSG.m_List.m_Mails[i].m_Money; /// 金钱.. info.m_SendTime = refMSG.m_List.m_Mails[i].m_SendTime; /// 发送时间.. info.m_ReadTime = refMSG.m_List.m_Mails[i].m_ReadTime; /// 阅读时间.. info.m_Sender = refMSG.m_List.m_Mails[i].m_Sender; /// 发件人姓名.. info.m_Receiver = refMSG.m_List.m_Mails[i].m_Receiver; /// 收件人姓名.. info.m_Title = refMSG.m_List.m_Mails[i].m_Title; /// 标题.. info.m_Content = refMSG.m_List.m_Mails[i].m_Content; /// 内容.. info.m_ItemCount = refMSG.m_List.m_Mails[i].m_ItemCount; /// 物品数量.. for (int j = 0; j < info.m_ItemCount; j++) { HeaderProto.SXITEM item = new HeaderProto.SXITEM(); info.m_Items[j] = item; info.m_Items[j].m_UID = refMSG.m_List.m_Mails[i].m_Items[j].m_UID; info.m_Items[j].m_TID = refMSG.m_List.m_Mails[i].m_Items[j].m_TID; info.m_Items[j].m_UP = refMSG.m_List.m_Mails[i].m_Items[j].m_UP; info.m_Items[j].m_CT = refMSG.m_List.m_Mails[i].m_Items[j].m_CT; info.m_Items[j].m_EXP = refMSG.m_List.m_Mails[i].m_Items[j].m_EXP; info.m_Items[j].m_LK = refMSG.m_List.m_Mails[i].m_Items[j].m_LK; info.m_Items[j].m_GEMCount = refMSG.m_List.m_Mails[i].m_Items[j].m_GEMCount; for (int k = 0; k < info.m_Items[j].m_GEMCount; k++) { HeaderProto.SXGEM gem = new HeaderProto.SXGEM(); info.m_Items[j].m_GEM[k] = gem; info.m_Items[j].m_GEM[k].m_TID = refMSG.m_List.m_Mails[i].m_Items[j].m_GEM[k].m_TID; } } m_MailList[uuDBID] = info; } } }
public void SetIdAndReflashUI(UInt64 id) { if (id == UInt64.MaxValue) { mailUUID = UInt64.MaxValue; gameObject.SetActive(false); return; } else if (id == 0) { mailUUID = 0; gameObject.SetActive(true); if (bg) { bg.SetActive(true); } if (bgLine) { bgLine.SetActive(false); } return; } gameObject.SetActive(true); mailUUID = id; if (bg) { bg.SetActive(false); } if (bgLine) { bgLine.SetActive(true); } HeaderProto.SMailDetail detail = sdMailMgr.Instance.GetMailInfo(mailUUID); if (detail != null) { string strSender = System.Text.Encoding.UTF8.GetString(detail.m_Sender); string strHead = sdConfDataMgr.Instance().GetMailHeadTex(strSender); if (strHead == "") { strHead = "head3"; } if (head) { head.transform.FindChild("head2").GetComponent <UISprite>().spriteName = strHead; } if (sendv) { sendv.GetComponent <UILabel>().text = strSender; } if (timev) { double dwTime = (double)detail.m_SendTime * 1000; DateTime timeSend = sdConfDataMgr.Instance().ConvertServerTimeToClientTime(dwTime); TimeSpan ts1 = new TimeSpan(timeSend.Ticks); TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks); TimeSpan ts = ts2.Subtract(ts1).Duration(); UInt64 uuPassMinutes = (UInt64)ts.TotalMinutes; UInt64 uuMinutes = 0; if (detail.m_ItemCount > 0) { if (detail.m_ReadTime == 0) { uuMinutes = 129601; } else { uuMinutes = 10081; } } else { if (detail.m_ReadTime == 0) { uuMinutes = 10081; } else { uuMinutes = 1441; } } if (uuPassMinutes > uuMinutes) { timev.GetComponent <UILabel>().text = "可删除"; } else { uuMinutes = uuMinutes - uuPassMinutes; UInt64 uuDays = uuMinutes / 1440; UInt64 uuTemp = uuMinutes % 1440; UInt64 uuHours = uuTemp / 60; uuTemp = uuTemp % 60; if (uuDays > 0) { timev.GetComponent <UILabel>().text = string.Format("{0}天", (int)uuDays); } else { if (uuHours > 0) { timev.GetComponent <UILabel>().text = string.Format("{0}小时", (int)uuHours); } else { timev.GetComponent <UILabel>().text = string.Format("{0}分钟", (int)uuTemp); } } } } if (mailTitle) { mailTitle.GetComponent <UILabel>().text = System.Text.Encoding.UTF8.GetString(detail.m_Title); } item1.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(0, 0); item2.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(0, 0); item3.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(0, 0); item4.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(0, 0); for (int i = 0; i < detail.m_ItemCount && i < 4; i++) { int iItemID = detail.m_Items[i].m_TID; int iCount = detail.m_Items[i].m_CT; if (i == 0) { item1.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(iItemID, iCount); } else if (i == 1) { item2.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(iItemID, iCount); } else if (i == 2) { item3.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(iItemID, iCount); } else if (i == 3) { item4.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(iItemID, iCount); } } if (detail.m_Money > 0) { if (bz) { bz.SetActive(false); } if (btnGetItem) { btnGetItem.SetActive(true); } if (money) { money.SetActive(true); } } else { if (money) { money.SetActive(false); } if (detail.m_ItemCount > 0) { if (bz) { bz.SetActive(false); } if (btnGetItem) { btnGetItem.SetActive(true); } } else { if (detail.m_ReadTime > 0) { if (bz) { bz.GetComponent <UISprite>().spriteName = "yd"; bz.SetActive(true); } } else { if (bz) { bz.SetActive(false); } } if (btnGetItem) { btnGetItem.SetActive(false); } } } } }
public void ShowMailDetailWndUI() { if (m_uuMailID == UInt64.MaxValue) { ResetMailDetailUI(); } else { HeaderProto.SMailDetail detail = sdMailMgr.Instance.GetMailInfo(m_uuMailID); if (detail != null) { string strSender = System.Text.Encoding.UTF8.GetString(detail.m_Sender); string strHead = sdConfDataMgr.Instance().GetMailHeadTex(strSender); if (strHead == "") { strHead = "head3"; } if (head) { head.transform.FindChild("head2").GetComponent <UISprite>().spriteName = strHead; } if (lbTitle) { lbTitle.GetComponent <UILabel>().text = System.Text.Encoding.UTF8.GetString(detail.m_Title); } if (lbDesc) { lbDesc.GetComponent <UILabel>().text = System.Text.Encoding.UTF8.GetString(detail.m_Content); } item1.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(0, 0); item2.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(0, 0); item3.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(0, 0); item4.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(0, 0); for (int i = 0; i < detail.m_ItemCount && i < 4; i++) { int iItemID = detail.m_Items[i].m_TID; int iCount = detail.m_Items[i].m_CT; if (i == 0) { item1.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(iItemID, iCount); } else if (i == 1) { item2.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(iItemID, iCount); } else if (i == 2) { item3.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(iItemID, iCount); } else if (i == 3) { item4.GetComponent <sdUIMailItemIcon>().SetIdAndReflashUI(iItemID, iCount); } } if (fromv) { fromv.GetComponent <UILabel>().text = System.Text.Encoding.UTF8.GetString(detail.m_Sender); } if (timev) { double dwTime = (double)detail.m_SendTime * 1000; DateTime timeSend = sdConfDataMgr.Instance().ConvertServerTimeToClientTime(dwTime); TimeSpan ts1 = new TimeSpan(timeSend.Ticks); TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks); TimeSpan ts = ts2.Subtract(ts1).Duration(); UInt64 uuPassMinutes = (UInt64)ts.TotalMinutes; UInt64 uuMinutes = 0; if (detail.m_ItemCount > 0) { if (detail.m_ReadTime == 0) { uuMinutes = 129601; } else { uuMinutes = 10081; } } else { if (detail.m_ReadTime == 0) { uuMinutes = 10081; } else { uuMinutes = 1441; } } if (uuPassMinutes > uuMinutes) { timev.GetComponent <UILabel>().text = "可删除"; } else { uuMinutes = uuMinutes - uuPassMinutes; UInt64 uuDays = uuMinutes / 1440; UInt64 uuTemp = uuMinutes % 1440; UInt64 uuHours = uuTemp / 60; uuTemp = uuTemp % 60; if (uuDays > 0) { timev.GetComponent <UILabel>().text = string.Format("{0}天", (int)uuDays); } else { if (uuHours > 0) { timev.GetComponent <UILabel>().text = string.Format("{0}小时", (int)uuHours); } else { timev.GetComponent <UILabel>().text = string.Format("{0}分钟", (int)uuTemp); } } } } if (detail.m_Money > 0) { if (btnGetDetailItem) { btnGetDetailItem.SetActive(true); } if (btnDelMail) { btnDelMail.SetActive(true); btnDelMail.transform.localPosition = new Vector3(135, -259, 0); } if (money) { money.SetActive(true); } if (moneyv) { moneyv.GetComponent <UILabel>().text = detail.m_Money.ToString(); } } else { if (money) { money.SetActive(false); } if (moneyv) { moneyv.GetComponent <UILabel>().text = "0"; moneyv.SetActive(false); } if (detail.m_ItemCount > 0) { if (btnGetDetailItem) { btnGetDetailItem.SetActive(true); } if (btnDelMail) { btnDelMail.SetActive(true); btnDelMail.transform.localPosition = new Vector3(135, -259, 0); } } else { if (btnGetDetailItem) { btnGetDetailItem.SetActive(false); } if (btnDelMail) { btnDelMail.SetActive(true); btnDelMail.transform.localPosition = new Vector3(0, -259, 0); } } } } else { ResetMailDetailUI(); } } }
public void UpdateMailList(HeaderProto.MAIL_LIST mailList) { if (mailList.m_Count > 0) { for (int i = 0; i < mailList.m_Count; i++) { UInt64 uuMailID = mailList.m_Mails[i].m_UniqueID; if (m_MailList[uuMailID] != null) { ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Type = mailList.m_Mails[i].m_Type; /// 邮件类型.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_UniqueID = mailList.m_Mails[i].m_UniqueID; /// 邮件唯一id.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Money = mailList.m_Mails[i].m_Money; /// 金钱.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_SendTime = mailList.m_Mails[i].m_SendTime; /// 发送时间.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_ReadTime = mailList.m_Mails[i].m_ReadTime; /// 阅读时间.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Sender = mailList.m_Mails[i].m_Sender; /// 发件人姓名.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Receiver = mailList.m_Mails[i].m_Receiver; /// 收件人姓名.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Title = mailList.m_Mails[i].m_Title; /// 标题.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Content = mailList.m_Mails[i].m_Content; /// 内容.. ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_ItemCount = mailList.m_Mails[i].m_ItemCount; /// 物品数量.. for (int j = 0; j < ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_ItemCount; j++) { ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_UID = mailList.m_Mails[i].m_Items[j].m_UID; ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_TID = mailList.m_Mails[i].m_Items[j].m_TID; ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_UP = mailList.m_Mails[i].m_Items[j].m_UP; ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_CT = mailList.m_Mails[i].m_Items[j].m_CT; ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_EXP = mailList.m_Mails[i].m_Items[j].m_EXP; ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_LK = mailList.m_Mails[i].m_Items[j].m_LK; ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_GEMCount = mailList.m_Mails[i].m_Items[j].m_GEMCount; for (int k = 0; k < ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_GEMCount; k++) { ((HeaderProto.SMailDetail)m_MailList[uuMailID]).m_Items[j].m_GEM[k].m_TID = mailList.m_Mails[i].m_Items[j].m_GEM[k].m_TID; } } } else { HeaderProto.SMailDetail info = new HeaderProto.SMailDetail(); info.m_Type = mailList.m_Mails[i].m_Type; /// 邮件类型.. info.m_UniqueID = mailList.m_Mails[i].m_UniqueID; /// 邮件唯一id.. info.m_Money = mailList.m_Mails[i].m_Money; /// 金钱.. info.m_SendTime = mailList.m_Mails[i].m_SendTime; /// 发送时间.. info.m_ReadTime = mailList.m_Mails[i].m_ReadTime; /// 阅读时间.. info.m_Sender = mailList.m_Mails[i].m_Sender; /// 发件人姓名.. info.m_Receiver = mailList.m_Mails[i].m_Receiver; /// 收件人姓名.. info.m_Title = mailList.m_Mails[i].m_Title; /// 标题.. info.m_Content = mailList.m_Mails[i].m_Content; /// 内容.. info.m_ItemCount = mailList.m_Mails[i].m_ItemCount; /// 物品数量.. for (int j = 0; j < info.m_ItemCount; j++) { HeaderProto.SXITEM item = new HeaderProto.SXITEM(); info.m_Items[j] = item; info.m_Items[j].m_UID = mailList.m_Mails[i].m_Items[j].m_UID; info.m_Items[j].m_TID = mailList.m_Mails[i].m_Items[j].m_TID; info.m_Items[j].m_UP = mailList.m_Mails[i].m_Items[j].m_UP; info.m_Items[j].m_CT = mailList.m_Mails[i].m_Items[j].m_CT; info.m_Items[j].m_EXP = mailList.m_Mails[i].m_Items[j].m_EXP; info.m_Items[j].m_LK = mailList.m_Mails[i].m_Items[j].m_LK; info.m_Items[j].m_GEMCount = mailList.m_Mails[i].m_Items[j].m_GEMCount; for (int k = 0; k < info.m_Items[j].m_GEMCount; k++) { HeaderProto.SXGEM gem = new HeaderProto.SXGEM(); info.m_Items[j].m_GEM[k] = gem; info.m_Items[j].m_GEM[k].m_TID = mailList.m_Mails[i].m_Items[j].m_GEM[k].m_TID; } } m_MailList[uuMailID] = info; } } } }
void OnClick() { if (gameObject.name == "wndClose") { if (sdMailControl.m_UIMailWnd != null) { WndAni.HideWndAni(sdMailControl.m_UIMailWnd, true, "w_black"); } //sdMailControl.Instance.CloseGameWnd(sdMailControl.m_UIMailWnd); } else if (gameObject.name == "detailClose") { if (sdMailControl.m_UIMailDetailWnd != null) { WndAni.HideWndAni(sdMailControl.m_UIMailDetailWnd, false, "bg_grey"); } //sdMailControl.Instance.CloseGameWnd(sdMailControl.m_UIMailDetailWnd); } else if (gameObject.name == "btnGetItem") { UInt64 mailID = gameObject.transform.parent.transform.parent.transform.parent.transform.GetComponent <sdUIMailIcon>().GetId(); HeaderProto.SMailDetail detail = sdMailMgr.Instance.GetMailInfo(mailID); if (detail != null) { if (detail.m_ItemCount > 0) { sdMailMsg.Send_CS_GET_ITEM_FROM_MAIL_REQ(mailID); } if (detail.m_Money > 0) { sdMailMsg.Send_CS_GET_MONEY_FROM_MAIL_REQ(mailID); } if (detail.m_ReadTime == 0) { sdMailMsg.Send_CS_READ_MAIL_REQ(mailID); } } } else if (gameObject.name == "btnDelOld") { Hashtable list = null; list = sdMailMgr.Instance.m_MailList; ushort index = 0; HeaderProto.MAIL_ID_LIST mailIDList = new HeaderProto.MAIL_ID_LIST(); foreach (DictionaryEntry info in list) { UInt64 key1 = UInt64.Parse(info.Key.ToString()); HeaderProto.SMailDetail detail = info.Value as HeaderProto.SMailDetail; if (detail.m_ItemCount == 0 && detail.m_ReadTime > 0) { mailIDList.m_MailIDs[index] = key1; index++; } } mailIDList.m_Count = index; if (index > 0) { sdMailMsg.Send_CS_DELETE_MAIL_REQ(mailIDList); } } else if (gameObject.name == "btnSendMail") { GameObject wnd = sdGameLevel.instance.NGUIRoot; if (wnd) { sdUIMailWnd mailWnd = wnd.GetComponentInChildren <sdUIMailWnd>(); if (mailWnd) { mailWnd.OnSendMail(); } } } else if (gameObject.name == "TabMailList") { GameObject wnd = sdGameLevel.instance.NGUIRoot; if (wnd) { sdUIMailWnd mailWnd = wnd.GetComponentInChildren <sdUIMailWnd>(); if (mailWnd) { mailWnd.ShowMailWndPanel(1); mailWnd.RefreshMailList(); } } } else if (gameObject.name == "TabSendList") { GameObject wnd = sdGameLevel.instance.NGUIRoot; if (wnd) { sdUIMailWnd mailWnd = wnd.GetComponentInChildren <sdUIMailWnd>(); if (mailWnd) { mailWnd.ShowMailWndPanel(2); } } } else if (gameObject.name == "btnGetDetailItem") { GameObject wnd = sdGameLevel.instance.NGUIRoot; if (wnd) { sdUIMailDetailWnd mailDetailWnd = wnd.GetComponentInChildren <sdUIMailDetailWnd>(); if (mailDetailWnd) { HeaderProto.SMailDetail detail = sdMailMgr.Instance.GetMailInfo(mailDetailWnd.m_uuMailID); if (detail != null) { if (detail.m_ItemCount > 0) { sdMailMsg.Send_CS_GET_ITEM_FROM_MAIL_REQ(mailDetailWnd.m_uuMailID); } if (detail.m_Money > 0) { sdMailMsg.Send_CS_GET_MONEY_FROM_MAIL_REQ(mailDetailWnd.m_uuMailID); } if (detail.m_ReadTime == 0) { sdMailMsg.Send_CS_READ_MAIL_REQ(mailDetailWnd.m_uuMailID); } } } } } else if (gameObject.name == "btnDelDetailMail") { GameObject wnd = sdGameLevel.instance.NGUIRoot; if (wnd) { sdUIMailDetailWnd mailDetailWnd = wnd.GetComponentInChildren <sdUIMailDetailWnd>(); if (mailDetailWnd) { HeaderProto.SMailDetail detail = sdMailMgr.Instance.GetMailInfo(mailDetailWnd.m_uuMailID); if (detail != null && detail.m_ItemCount <= 0 && detail.m_Money <= 0) { HeaderProto.MAIL_ID_LIST mailIDList = new HeaderProto.MAIL_ID_LIST(); mailIDList.m_Count = 1; mailIDList.m_MailIDs[0] = mailDetailWnd.m_uuMailID; sdMailMsg.Send_CS_DELETE_MAIL_REQ(mailIDList); if (sdMailControl.m_UIMailDetailWnd != null) { sdMailControl.Instance.CloseGameWnd(sdMailControl.m_UIMailDetailWnd); } return; } if (detail != null && (detail.m_ItemCount > 0 || detail.m_Money > 0)) { sdMsgBox.OnConfirm btn_Delete = new sdMsgBox.OnConfirm(OnClickDel); sdUICharacter.Instance.ShowOkCanelMsg("该邮件存在物品或金钱,确定要删除么?", btn_Delete, null); return; } } } } else if (gameObject.name == "mailBtn") { sdMailControl.Instance.ActiveMailWnd(null); } }