//删除好友 public void DeleteFriend(uint playerid, bool deleteparty = true) { RoleData_Friend friend = null; for (int i = 0; i < mList.Count; i++) { if (mList[i].friendid == playerid) { friend = mList[i]; break; } } play.LeftNotice(string.Format("由于彼此间的友谊出现了无法修复的裂痕,【{0}】决定与【{1}】断绝好友关系", play.GetName(), friend.friendname)); friend.id = -1; SendFriendInfo(friend, NetMsg.MsgFriendInfo.TYPE_KILL); if (deleteparty) { PlayerObject target = UserEngine.Instance().FindPlayerObjectToPlayerId((int)playerid); if (target == null) { return; } target.GetFriendSystem().DeleteFriend((uint)play.GetBaseAttr().player_id, false); } }
public void SendFriendInfo(RoleData_Friend info, byte type = NetMsg.MsgFriendInfo.TYPE_FRIEND) { NetMsg.MsgFriendInfo data = new NetMsg.MsgFriendInfo(); data.Create(null, play.GetGamePackKeyEx()); data.playerid = info.friendid; data.type = type; data.name = info.friendname; PlayerObject obj = UserEngine.Instance().FindPlayerObjectToPlayerId((int)info.friendid); if (obj != null) { data.Online = 1; data.level = obj.GetBaseAttr().level; data.fightpower = (uint)obj.GetFightSoul(); } play.SendData(data.GetBuffer()); }
// public void SetFriendTarget(uint typeid) // { // mTargetId = typeid; // } //public uint GetFriendTarget() { return mTargetId; } //添加好友 public void AddFriend(uint playerid, byte type, bool party = true) { PlayerObject target = UserEngine.Instance().FindPlayerObjectToPlayerId((int)playerid); if (target == null) { return; } for (int i = 0; i < mList.Count; i++) { if (mList[i].friendid == (uint)target.GetBaseAttr().player_id&& mList[i].friendtype == type) { if (mList[i].id != -1) //删除标识 { return; } else { mList.RemoveAt(i); break; } } } play.LeftNotice(string.Format("{0},{1}锸血为盟,宣誓从此将生死与共,永不背叛!", play.GetName(), target.GetName())); RoleData_Friend friend = new RoleData_Friend(); friend.id = 0; friend.friendid = (uint)target.GetBaseAttr().player_id; friend.friendtype = type; friend.friendname = target.GetName(); mList.Add(friend); SendFriendInfo(friend); if (party) { target.GetFriendSystem().AddFriend((uint)play.GetBaseAttr().player_id, type, false); } }