예제 #1
0
        private void HireFollowerMessageImpl(NetIncomingMessage im, MessageBase msg)
        {
            var hireMsg = msg as HireFollowerMessage;
            var r       = new HireResultMessage();

            if (AdventurePluginDB.User.Get(hireMsg.PlayerId) != null)
            {
                r.Result = OkTag;
                var follower = AdventurePluginDB.PlayerFollower.GetPlayerFollower(hireMsg.PlayerId);

                var ObjectIdList = new List <int>();
                foreach (var id in hireMsg.FollowerId)
                {
                    var objId = ObjectId;
                    r.Followers.Add(new KeyValuePair <int, int>(objId, id));
                    ObjectIdList.Add(objId);

                    var info = new FollowerInfo()
                    {
                        FollowerID = id,
                        ObjectID   = objId,
                    };
                    AdventurePluginDB.Follower.Create(info);
                }

                follower.FollowerList.AddRange(ObjectIdList);
                AdventurePluginDB.PlayerFollower.Update(follower);
            }
            else
            {
                r.Result = ErrorTag;
            }
            SharedServer.SendMessage(r, im.SenderConnection);
        }
예제 #2
0
        private void OnHireResultMessage(HireResultMessage msg)
        {
            var res = FollowerPackageModule.GetFollowerPackages();

            if (msg.Result == OkTag)
            {
                foreach (var obj in msg.Followers)
                {
                    var follower = res.GetFollowerById(obj.Value, obj.Key);
                    PlayerObject.Instance.Self.AllFollower.Followers.Add(follower);
                    FollowerObjectManager.Instance.AddObj(follower.ObjectId, follower);
                }
                MessageManager.SendMessage("Message.HireFollower.Success");
            }
            else
            {
                MessageManager.SendMessage("Message.HireFollower.Failed");
            }
        }