Ejemplo n.º 1
0
        private void OnCreateCharacter(NetConnection <NetSession> sender, UserCreateCharacterRequest request)
        {
            Log.InfoFormat(" UserCreateCharacterRequest: name:{0}  class:{1}", request.Name, request.Class);
            NetMessage message = new NetMessage();

            message.Response            = new NetMessageResponse();
            message.Response.createChar = new UserCreateCharacterResponse();
            TCharacter character = new TCharacter()
            {
                Name    = request.Name,
                Class   = (int)request.Class,
                TID     = (int)request.Class,
                MapID   = 1,
                MapPosX = 5000,
                MapPosY = 4000,
                MapPosZ = 820,
                Gold    = 100000,
                Equips  = new byte[28],
            };
            var bag = new TCharacterBag();

            bag.Owner     = character;
            bag.Items     = new byte[0];
            bag.Unlocked  = 20;
            character.Bag = DBService.Instance.Entities.TCharacterBags.Add(bag);

            character.Items.Add(new TCharacterItem()
            {
                Owner     = character,
                IteamID   = 1,
                ItemCount = 20,
            });
            character.Items.Add(new TCharacterItem()
            {
                Owner     = character,
                IteamID   = 2,
                ItemCount = 20,
            });
            character = DBService.Instance.Entities.Characters.Add(character);
            sender.Session.User.Player.Characters.Add(character);
            DBService.Instance.Entities.SaveChanges();
            foreach (var c in sender.Session.User.Player.Characters)
            {
                NCharacterInfo info = new NCharacterInfo();
                info.Id    = 0;
                info.Name  = c.Name;
                info.Type  = CharacterType.Player;
                info.Class = (CharacterClass)c.Class;
                info.Tid   = c.ID;
                message.Response.createChar.Characters.Add(info);
            }

            message.Response.createChar.Result   = Result.Success;
            message.Response.createChar.Errormsg = "None";

            byte[] data = PackageHandler.PackMessage(message);
            sender.SendData(data, 0, data.Length);
        }
Ejemplo n.º 2
0
        void OnCreateCharacter(NetConnection <NetSession> sender, UserCreateCharacterRequest request)
        {
            Log.InfoFormat("UserCreateCharacterRequest: Name: {0}, Class: {1}", request.Name, request.Class);

            sender.Session.Response.createChar = new UserCreateCharacterResponse();

            TCharacter character = DBService.Instance.Entities.Characters.Where((c) => c.Name == request.Name).FirstOrDefault();

            if (character != null)
            {
                sender.Session.Response.createChar.Result   = Result.Failed;
                sender.Session.Response.createChar.Errormsg = "Character name already existed";
            }

            else
            {
                sender.Session.Response.createChar.Result = Result.Success;

                character = new TCharacter()
                {
                    Name    = request.Name,
                    Class   = (int)request.Class,
                    TID     = (int)request.Class,
                    MapID   = 1,        //进入游戏世界时,出现在哪张地图
                    MapPosX = 5000,
                    MapPosY = 4000,
                    MapPosZ = 820,
                    Gold    = 500,
                    Bag     = new TCharacterBag(),
                    Equip   = new TCharacterEquipment()
                };

                //init items
                character.Items.Add(new TCharacterItem()
                {
                    Count  = 20,
                    ItemID = 1,
                    Owner  = character
                });
                character.Items.Add(new TCharacterItem()
                {
                    Count  = 20,
                    ItemID = 2,
                    Owner  = character
                });

                //Init character bag to be empty
                TCharacterBag bag = character.Bag;
                bag.Size  = 30;
                bag.Items = new byte[0];
                bag.Owner = character;

                //Init character equipments to be empty
                TCharacterEquipment equipment = character.Equip;
                equipment.Owner     = character;
                equipment.Weapon    = 0;
                equipment.Accessory = 0;
                equipment.Boots     = 0;
                equipment.Helmet    = 0;
                equipment.Chest     = 0;
                equipment.Pants     = 0;
                equipment.Shoulder  = 0;

                sender.Session.User.Player.Characters.Add(character);   //session即内存中存储的用户信息

                DBService.Instance.Entities.TCharacterBags.Add(bag);
                DBService.Instance.Entities.Characters.Add(character);
                DBService.Instance.Entities.SaveChanges();

                foreach (var c in sender.Session.User.Player.Characters)
                {
                    NCharacterInfo info = new NCharacterInfo();
                    info.Id    = c.ID;
                    info.Name  = c.Name;
                    info.Class = (CharacterClass)c.Class;
                    Log.InfoFormat("{0}", info.Class.ToString());
                    info.Type = CharacterType.Player;

                    sender.Session.Response.createChar.Characters.Add(info);
                }
                sender.Session.Response.createChar.Errormsg = "None";
            }

            sender.SendResponse();
        }
Ejemplo n.º 3
0
        private void OnCharacterCrate(NetConnection <NetSession> sender, UserCreateCharacterRequest message)
        {
            Log.InfoFormat("UserCharacterCrateRequset:CharacterName:{0} ChaaracterClass:{1}", message.Name, message.Class);

            sender.Session.Response.createChar = new UserCreateCharacterResponse();

            TCharacter character = new TCharacter()
            {
                Name    = message.Name,
                Class   = (int)message.Class,
                TID     = (int)message.Class,
                Level   = 1,
                MapID   = 1,
                MapPosX = 5000,
                MapPosY = 4000,
                MapPosZ = 820,
                Gold    = 100000,       //初始10万金币
                Equips  = new byte[28], //int4个字节 7个槽位
            };

            TCharacterBag bag = new TCharacterBag();

            bag.Owner     = character;
            bag.Items     = new byte[0];
            bag.Unlocked  = 20;
            character.Bag = DBService.Instance.Entities.TCharacterBags.Add(bag);

            character = DBService.Instance.Entities.Characters.Add(character);

            character.Items.Add(new TCharacterItem()
            {
                Owner     = character,
                ItemID    = 1,
                ItemCount = 20,
            });
            character.Items.Add(new TCharacterItem()
            {
                Owner     = character,
                ItemID    = 2,
                ItemCount = 20,
            });

            sender.Session.User.Player.Characters.Add(character);
            DBService.Instance.Entities.SaveChanges();

            foreach (var cha in sender.Session.User.Player.Characters)
            {
                NCharacterInfo info = new NCharacterInfo();
                //info.Id = cha.ID;
                //info.Class = (CharacterClass)cha.Class;
                //info.Name = cha.Name;
                info.Id       = 0;//character.ID;
                info.Class    = (CharacterClass)cha.Class;
                info.Type     = CharacterType.Player;
                info.Name     = cha.Name;
                info.ConfigId = cha.ID;
                sender.Session.Response.createChar.Characters.Add(info);
            }

            sender.Session.Response.createChar.Result   = Result.Success;
            sender.Session.Response.createChar.Errormsg = "None";

            sender.SendResponse();
        }
Ejemplo n.º 4
0
        private void OnCreateCharacter(NetConnection <NetSession> sender, UserCreateCharacterRequest request)
        {
            Log.InfoFormat("UserCreateCharacterRequest: Name:{0}  Class:{1}", request.Name, request.Class);

            TCharacter character = new TCharacter()
            {
                Name    = request.Name,
                Class   = (int)request.Class,
                TID     = (int)request.Class,
                Level   = 1,
                MapID   = 1,
                MapPosX = 1500,   //初始出生位置X
                MapPosY = 2600,   //初始出生位置Y
                MapPosZ = 820,
                Gold    = 100000, //初始10万金币
                HP      = 100,
                MP      = 50,
                Equips  = new byte[28]
            };
            var bag = new TCharacterBag();

            bag.Owner     = character;
            bag.Items     = new byte[0];
            bag.Unlocked  = 20;
            character.Bag = DBService.Instance.Entities.CharacterBags.Add(bag);

            character = DBService.Instance.Entities.Characters.Add(character);
            character.Items.Add(new TCharacterItem()
            {
                Owner     = character,
                ItemID    = 1,
                ItemCount = 20,
            });
            character.Items.Add(new TCharacterItem()
            {
                Owner     = character,
                ItemID    = 2,
                ItemCount = 20,
            });

            character.TPets.Add(new TPet()
            {
                Owner = character,
                Id    = 1,
                Tid   = 1006,
                Level = 1,
            });
            character.TPets.Add(new TPet()
            {
                Owner = character,
                Id    = 2,
                Tid   = 1006,
                Level = 1,
            });
            sender.Session.User.Player.Characters.Add(character);

            DBService.Instance.Entities.SaveChanges();

            sender.Session.Response.createChar          = new UserCreateCharacterResponse();
            sender.Session.Response.createChar.Result   = Result.Success;
            sender.Session.Response.createChar.Errormsg = "None";

            foreach (var c in sender.Session.User.Player.Characters)
            {
                NCharacterInfo info = new NCharacterInfo();
                info.Id       = c.ID;
                info.Name     = c.Name;
                info.Type     = CharacterType.Player;
                info.Class    = (CharacterClass)c.Class;
                info.ConfigId = c.TID;
                sender.Session.Response.createChar.Characters.Add(info);
            }
            sender.SendResponse();
        }