private void CreateFriendCreatureIcon() { _vFriend vFriends = UserInfo.Instance.FriendInfo.vFriends; if (vFriends == null) { return; } DestroyFriendCreatureIcon(); for (int i = 0; i < vFriends.Count; ++i) { CFriend friendInfo = vFriends[i]; if (friendInfo == null) { continue; } DATA_CREATURE_NEWVER pCreatureData = CDATA_CREATURE_NEWVER.Get(friendInfo.kCreatureID); if (pCreatureData.m_iGrade < (int)m_DispatchTableData.RequireGrade) // 필요등급 검사 { continue; } DispatchTeamItemFriend friendItem = UIResourceMgr.CreatePrefab <DispatchTeamItemFriend>(BUNDLELIST.PREFABS_UI_DISPATCH, m_FriendListGrid.transform, "DispatchTeamItemFriend"); friendItem.Init(friendInfo, pCreatureData); UIEventListener.Get(friendItem.gameObject).onClick = OnClickFriendItem; _FriendList.Add(friendItem); } FriendListResetPosition(); }
void GetData() { string sData = ""; List <CBaseObject> lstObj = m_User.FriendMgr.GetList(); foreach (CBaseObject obj in lstObj) { CFriend Friend = (CFriend)obj; string sRow = ""; sRow += string.Format("\"id\":\"{0}\",", Friend.Id); sRow += string.Format("\"Friend_id\":\"{0}\",", Friend.Friend_id); CUser UF = (CUser)Global.GetCtx(Session["TopCompany"].ToString()).UserMgr.Find(Friend.Friend_id); if (UF == null) { continue; } string sIcon = string.Format("<img src='../images/{0}' width='16' height='16'/> ", UF.IsOnline()?"on.png":"off.png"); sRow += string.Format("\"Friend\":\"{0}{1}\",", sIcon, UF.Name); sRow += string.Format("\"group\":\"{0}\",", Friend.IsStrange?"陌生人":"我的好友"); sRow = "{" + sRow + "},"; sData += sRow; } sData = sData.TrimEnd(",".ToCharArray()); sData = "[" + sData + "]"; string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}" , sData, lstObj.Count); Response.Write(sJson); }
void Add() { string fid = Request["fid"]; if (string.IsNullOrEmpty(fid)) { Response.Write("请选择用户!"); return; } Guid guidFid = new Guid(fid); if (guidFid == m_User.Id) { Response.Write("不能添加自己为好友!"); return; } CFriend Friend = m_User.FriendMgr.FindByFriendId(guidFid); if (Friend != null) //可能是从陌生人变成好友 { Friend.IsStrange = false; m_User.FriendMgr.Update(Friend); if (!m_User.FriendMgr.Save(true)) { Response.Write("添加失败!"); return; } } else { Friend = new CFriend(); Friend.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); Friend.B_User_id = m_User.Id; Friend.Friend_id = guidFid; Friend.IsStrange = false; m_User.FriendMgr.AddNew(Friend); if (!m_User.FriendMgr.Save(true)) { Response.Write("添加失败!"); return; } } }
//获取好友状态及消息数 public void GetFriendState() { CMessageMgr MessageMgr = Global.GetCtx(Session["TopCompany"].ToString()).MessageMgr; string sData = ""; List <CBaseObject> lstObj = m_User.FriendMgr.GetList(); bool bHasNewMsg = false; foreach (CBaseObject obj in lstObj) { CFriend Friend = (CFriend)obj; string sRow = ""; sRow += string.Format("\"id\":\"{0}\",", Friend.Id); sRow += string.Format("\"Friend_id\":\"{0}\",", Friend.Friend_id); CUser UF = (CUser)Global.GetCtx(Session["TopCompany"].ToString()).UserMgr.Find(Friend.Friend_id); if (UF == null) { continue; } string sIcon = string.Format("<img src='../images/{0}' width='16' height='16'/> ", UF.IsOnline()?"on.png":"off.png"); string sCount = ""; int iCount = MessageMgr.GetNewCount(UF.Id, m_User.Id); if (iCount > 0) { bHasNewMsg = true; sCount = string.Format("({0})", iCount); } sRow += string.Format("\"Friend\":\"{0}{1}{2}\",", sIcon, UF.Name, sCount); sRow += string.Format("\"group\":\"{0}\",", Friend.IsStrange?"陌生人":"我的好友"); sRow = "{" + sRow + "},"; sData += sRow; } sData = sData.TrimEnd(",".ToCharArray()); sData = "[" + sData + "]"; string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\",\"HasNewMsg\":\"{2}\"}}" , sData, lstObj.Count, bHasNewMsg?"1":"0"); Response.Write(sJson); }
//发送消息 void Send() { string sMsg = Request["msg"]; if (string.IsNullOrEmpty(sMsg)) { return; } //消息处理 sMsg = sMsg.Replace("\n", "<br>"); string sHead = "<span style='color:Blue'>" + m_User.Name + " " + DateTime.Now.ToString() + "</span><br>"; sMsg = sHead + sMsg; CMessage msg = new CMessage(); msg.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); msg.Content = sMsg; msg.Sender = m_User.Id; msg.Receiver = m_FriendUser.Id; CMessageMgr MessageMgr = Global.GetCtx(Session["TopCompany"].ToString()).MessageMgr; if (!MessageMgr.AddNew(msg, true)) { } //如果发送者不在接收者的好友里,则添加到接收者的陌生人里 if (m_FriendUser.FriendMgr.FindByFriendId(m_User.Id) == null) { CFriend Friend = new CFriend(); Friend.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); Friend.B_User_id = m_FriendUser.Id; Friend.Friend_id = m_User.Id; Friend.IsStrange = true; m_FriendUser.FriendMgr.AddNew(Friend, true); } }
//=================================================================================== // // Default Method // //=================================================================================== //=================================================================================== // // Method // //=================================================================================== public void Init(CFriend friendInfo, DATA_CREATURE_NEWVER pCreatureData) { m_FriendInfo = friendInfo; _vCharNo UsedFriendKeyList = UserInfo.Instance.DispatchInfoAck.vUsedFriendKey; bDispatching = false; m_CoolTimeObj.SetActive(false); for (int i = 0; i < UsedFriendKeyList.Count; ++i) { if (friendInfo.kFriendCharNo == UsedFriendKeyList[i]) { // 쿨타임 표시. bDispatching = true; m_CoolTimeObj.SetActive(true); break; } } m_CreatureIcon.SetIcon(friendInfo.kCreatureID, enCreatureIcon_Type.Dispatch); //m_CreatureIcon.m_OnClickEvent += evt; m_CreatureIcon.m_IsNew = false; //icon.m_kCreatureKey = kCreatureKey; m_CreatureIcon.m_iGrade = pCreatureData.m_iGrade; m_CreatureIcon.m_szName = StringTableManager.GetData(pCreatureData.iCreatureName); //icon.m_Reinforce = pMy.GetForceCount(); m_CreatureIcon.m_iCreatureTID = pCreatureData.m_iCreatureTID; m_CreatureIcon.m_szIcon = pCreatureData.m_szIcon; //icon.m_iLevel = pMy.GetItemLV(); m_CreatureIcon.m_enCreatureArmy = pCreatureData.m_enCreatureArmy; //병과 m_CreatureIcon.m_SellCheck = false; m_CreatureIcon.m_iSellCost = pCreatureData.m_iSellCost; m_CreatureIcon.m_kLock = 0; // vip정보 셋팅. { if (CDATA_VIP.GetCount() < 1) { CDATA_VIP.Load(); } DATA_VIP vipData = CDATA_VIP.Get(friendInfo.kVIPLevel); if (vipData == null) { return; } m_VipSprite.spriteName = vipData.szGradeImg; m_VipLabel.text = string.Format(StringTableManager.GetData(4984), (int)friendInfo.kVIPLevel); } // 친구 레벨, 아이디 셋팅. { m_UserLevelLabel.text = string.Format("{0}{1}", StringTableManager.GetData(12), friendInfo.kCharLevel); m_UserNameLabel.text = friendInfo.kCharName; } // 접속시간 셋팅. { if (friendInfo.kFriendState == _enFriendState.eFriendState_OnLine) { m_LastLoginTimeLabel.text = StringTableManager.GetData(3473); } else if (friendInfo.kFriendState == _enFriendState.eFriendState_OffLine) { TimeSpan ts = TimeManager.Instance.GetServerTime() - friendInfo.kGameLastLogonTime.GetDateTime(); int iDay = ts.Days; int iHour = ts.Hours; int iMin = ts.Minutes; if (iDay > 0) { m_LastLoginTimeLabel.text = string.Format(StringTableManager.GetData(3470), iDay, StringTableManager.GetData(3472), StringTableManager.GetData(3483)); } else if (iHour > 0) { m_LastLoginTimeLabel.text = string.Format(StringTableManager.GetData(3470), iHour, StringTableManager.GetData(3471), StringTableManager.GetData(3483)); } else if (iMin > 0) { m_LastLoginTimeLabel.text = string.Format(StringTableManager.GetData(3470), iMin, StringTableManager.GetData(3482), StringTableManager.GetData(3483)); } else { // 1분전접속. m_LastLoginTimeLabel.text = string.Format(StringTableManager.GetData(3470), 1, StringTableManager.GetData(3482), StringTableManager.GetData(3483)); } } //TimeSpan ts = TimeManager.Instance.GetServerTime() - friendInfo.kGameLastLogonTime.GetDateTime(); //int iDay = ts.Days; //int iHour = ts.Hours; //int iMin = ts.Minutes; //if (iDay > 0) // m_LastLoginTimeLabel.text = string.Format(StringTableManager.GetData(3470), iDay, StringTableManager.GetData(3472), StringTableManager.GetData(3483)); //else if (iHour > 0) // m_LastLoginTimeLabel.text = string.Format(StringTableManager.GetData(3470), iHour, StringTableManager.GetData(3471), StringTableManager.GetData(3483)); //else if (iMin > 0) // m_LastLoginTimeLabel.text = string.Format(StringTableManager.GetData(3470), iMin, StringTableManager.GetData(3482), StringTableManager.GetData(3483)); //else //{ // m_LastLoginTimeLabel.text = StringTableManager.GetData(3473); //} } SetActiveSelect(false); }