コード例 #1
0
ファイル: NetworkMessageManager.cs プロジェクト: xxy1991/cozy
        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");
        }
コード例 #2
0
        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);
        }