private void OnPushMessage(PushMessage msg) { var res = FollowerPackageModule.GetFollowerPackages(); var resId = res.Followers.Select(x => x.Id); var result = msg.FollowerList.Where(x => resId.Contains(x.Value)).Select(x => res.GetFollowerById(x.Value, x.Key)); var ftres = msg.FightFollowerList.Where(x => resId.Contains(x)); SyncPlayerInfo(result.ToList(), ftres.ToList(), msg.Exp, msg.Money); foreach (var obj in PlayerObject.Instance.Self.AllFollower.Followers) { FollowerObjectManager.Instance.AddObj(obj.ObjectId, obj); } MessageManager.SendMessage("MessageManager.Login.Success"); }
private void PullMessageImpl(NetIncomingMessage im, MessageBase msg) { var pullMsg = msg as PullMessage; var r = new PushMessage(); if (AdventurePluginDB.PlayerFollower.IsPlayerExist(pullMsg.PlayerId)) { var follower = AdventurePluginDB.PlayerFollower.GetPlayerFollower(pullMsg.PlayerId); r.FollowerList.AddRange(follower.FollowerList.Select(x => { return new KeyValuePair<int, int>(x, AdventurePluginDB.Follower.GetWithObjectId(x)); })); r.FightFollowerList.AddRange(follower.FightingFollowerList); var customer = AdventurePluginDB.Customer.GetPlayerCustomer(pullMsg.PlayerId); if(customer != null) { r.Exp = customer.Exp; r.Money = customer.Money; } } SharedServer.SendMessage(r, im.SenderConnection); }