コード例 #1
0
        private void OnGameEnter(NetConnection <NetSession> sender, UserGameEnterRequest message)
        {
            TCharacter chooseChar = sender.Session.User.Player.Characters.ElementAt(message.characterIdx);

            Log.InfoFormat("UserGameEnterRequest: Name:{0}  index:{1} CharacterName:{2}", sender.Session.User.ID, message.characterIdx, chooseChar.Name);
            sender.Session.Character = Managers.CharacterManager.Instance.AddCharacter(chooseChar);
            Managers.MapManager.Instance[chooseChar.MapID].CharacterEnter(sender, sender.Session.Character);
            SkillBridge.Message.NetMessage rsp = new NetMessage();
            rsp.Response                  = new NetMessageResponse();
            rsp.Response.gameEnter        = new UserGameEnterResponse();
            rsp.Response.gameEnter.Result = Result.Success;
            byte[] data = PackageHandler.PackMessage(rsp);
            //sender.SendData(data, 0, data.Length);
        }
コード例 #2
0
        private void OnGameEnter(NetConnection <NetSession> sender, UserGameEnterRequest message)
        {
            TCharacter dbCharacter = sender.Session.User.Player.Characters.ElementAt(message.characterIdx);

            Log.InfoFormat("UserGameEnterRequest: characterId:{0}:{1} Map:{2}", dbCharacter.ID, dbCharacter.Name, dbCharacter.MapID);



            Character character = CharacterManager.Instance.AddCharacter(dbCharacter); //角色管理器添加角色

            sender.Session.Character     = character;                                  //在会话中绑定当前角色
            sender.Session.PostResponser = character;
            SessionManager.Instance.AddSession(character.Id, sender);
            MapManager.Instance[dbCharacter.MapID].CharacterEnter(sender, character);//调用Map类的角色进入

            sender.Session.Response.gameEnter          = new UserGameEnterResponse();
            sender.Session.Response.gameEnter.Result   = Result.Success;
            sender.Session.Response.gameEnter.Errormsg = "None";



            sender.Session.Response.gameEnter.Character = character.Info;//道具消息

            /* #region 道具测试用例
             * int itemID = 1;
             * bool hasItem = character.ItemManager.HasItem(itemID);
             * Log.InfoFormat("HasItem[{0}]{1}", itemID, hasItem);
             * if (hasItem)
             * {
             *   //character.ItemManager.RemoveItem(itemID, 1);
             * }
             * else
             * {
             *   character.ItemManager.AddItem(1,200);
             *   character.ItemManager.AddItem(2, 100);
             *   character.ItemManager.AddItem(3, 30);
             *   character.ItemManager.AddItem(4, 120);
             * }
             * // Models.Item item = character.ItemManager.GetItem(itemID);
             * // Log.InfoFormat("Item:[{0}][{1}]", itemID, item);
             #endregion*/

            sender.SendResponse();
        }
コード例 #3
0
ファイル: UserSerevice.cs プロジェクト: Lenzan/newmmo
        void OnGameEnter(NetConnection <NetSession> sender, UserGameEnterRequest request)
        {
            TCharacter dbchar = sender.Session.User.Player.Characters.ElementAt(request.characterIdx);

            Log.InfoFormat("UserGameEnterRequest: characterID:{0}:{1} Map:{2}", dbchar.ID, dbchar.Name, dbchar.MapID);
            Character character = CharacterManager.Instance.AddCharacter(dbchar);

            SessionManager.Instance.AddSession(character.Id, sender);
            sender.Session.Response.gameEnter          = new UserGameEnterResponse();
            sender.Session.Response.gameEnter.Result   = Result.Success;
            sender.Session.Response.gameEnter.Errormsg = "None";
            //进入成功发送初始角色信息
            sender.Session.Character     = character;
            sender.Session.PostResponser = character;
            sender.Session.Response.gameEnter.Character = character.Info;
            sender.SendResponse();

            MapManager.Instance[dbchar.MapID].CharacterEnter(sender, character);
        }
コード例 #4
0
        void OnGameEnter(NetConnection <NetSession> sender, UserGameEnterRequest request)
        {
            TCharacter dbchar = sender.Session.User.Player.Characters.ElementAt(request.characterIdx);

            Log.InfoFormat("UserGameEnterRequest: characterID:{0}:{1} Map:{2}", dbchar.ID, dbchar.Name, dbchar.MapID);
            Character character = CharacterManager.Instance.AddCharacter(dbchar);

            NetMessage message = new NetMessage();

            message.Response                    = new NetMessageResponse();
            message.Response.gameEnter          = new UserGameEnterResponse();
            message.Response.gameEnter.Result   = Result.Success;
            message.Response.gameEnter.Errormsg = "None";

            byte[] data = PackageHandler.PackMessage(message);
            sender.SendData(data, 0, data.Length);
            sender.Session.Character = character;
            MapManager.Instance[dbchar.MapID].CharacterEnter(sender, character);
        }
コード例 #5
0
ファイル: UserSerevice.cs プロジェクト: etonix/UnityMMORPG
        void OnGameEnter(NetConnection <NetSession> sender, UserGameEnterRequest request)
        {
            Log.InfoFormat("UserGameEnterRequest: id: {0}", request.characterId);

            TCharacter tCharacter = DBService.Instance.Entities.Characters.Where((c) => c.ID == request.characterId).FirstOrDefault();
            Character  character  = CharacterManager.Instance.AddCharacter(tCharacter);

            character.ItemManager.GetItemList(character.Info.Items);

            sender.Session.Response.gameEnter           = new UserGameEnterResponse();
            sender.Session.Response.gameEnter.Result    = Result.Success;
            sender.Session.Response.gameEnter.Errormsg  = "None";
            sender.Session.Response.gameEnter.Character = character.Info;

            sender.SendResponse();
            sender.Session.Character = character;

            MapManager.Instance[character.Data.MapID].CharacterEnter(sender, character);
        }
コード例 #6
0
        private void OnGameEnter(NetConnection <NetSession> sender, UserGameEnterRequest request)
        {
            TCharacter tchr      = sender.Session.TUser.Player.Characters.ElementAt(request.characterIdx);
            Character  character = CharacterManager.Instance.AddCharacter(tchr);

            // character.itemManager.AddItem(1, 1);

            sender.Session.Response.gameEnter = new UserGameEnterResponse()
            {
                Result    = Result.Success,
                Errormsg  = "None",
                Character = character.Info
            };
            SessionManager.Instance.AddSession(character.Id, sender);
            sender.SendResponse();
            Log.Info($"OnGameEnter Id: {character.Id} EntityId:{character.Info.EntityId}");
            MapManager.Instance[tchr.MapID].CharacterEnter(sender, character);
            sender.Session.Character     = character;
            sender.Session.postProcesser = character;
        }
コード例 #7
0
        void OnGameEnter(NetConnection <NetSession> sender, UserGameEnterRequest request)
        {
            //根据索引找到这个角色
            TCharacter Tchar = sender.Session.User.Player.Characters.ElementAt(request.characterIdx);

            //加入到CharacterManager
            Character  character = CharacterManager.Instance.AddCharacter(Tchar);
            NetMessage message   = new NetMessage();

            message.Response                     = new NetMessageResponse();
            message.Response.gameEnter           = new UserGameEnterResponse();
            message.Response.gameEnter.Result    = Result.Success;
            message.Response.gameEnter.Errormsg  = "none";
            message.Response.gameEnter.Character = character.Info;


            int  itemId  = 1;
            bool hasItem = character.ItemManager.HasItem(itemId);

            Log.InfoFormat("hasItem{0},{1}", itemId, hasItem);

            if (hasItem)
            {
                character.ItemManager.RemoveItem(itemId, 1);
            }
            else
            {
                character.ItemManager.AddItem(itemId, 2);
            }

            Models.Item item = character.ItemManager.GetItem(itemId);
            Log.InfoFormat("item:{0},count{1}", itemId, item.Count);
            sender.Session.Character = character;
            sender.SendData(message);
            MapManager.Instance[Tchar.MapID].CharacterEnter(sender, character);
        }