Esempio n. 1
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,
                MapID   = 1,
                MapPosX = 5000,
                MapPosY = 4000,
                MapPosZ = 820,
            };


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

            NetMessage message = new NetMessage();

            message.Response                     = new NetMessageResponse();
            message.Response.createChar          = new UserCreateCharacterResponse();
            message.Response.createChar.Result   = Result.Success;
            message.Response.createChar.Errormsg = "None";

            byte[] data = PackageHandler.PackMessage(message);
            sender.SendData(data, 0, data.Length);
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        private void OnCreatCharacter(NetConnection <NetSession> sender, UserCreateCharacterRequest message)
        {
            NetMessage rsp = new NetMessage();

            rsp.Response            = new NetMessageResponse();
            rsp.Response.createChar = new UserCreateCharacterResponse();

            if (sender.Session.User == null)
            {
                rsp.Response.createChar.Result   = Result.Failed;
                rsp.Response.createChar.Errormsg = "未登录,请重新登录";
            }
            else
            {
                if (/*Illegal(message.Class)*/ false)
                {
                    rsp.Response.createChar.Result   = Result.Failed;
                    rsp.Response.createChar.Errormsg = $"职业错误,不含职业Id{message.Class}";
                }
                else if (/*illegal(message.Name)*/ false)
                {
                    rsp.Response.createChar.Result   = Result.Failed;
                    rsp.Response.createChar.Errormsg = $"命名非法";
                }
                else
                {
                    rsp.Response.createChar.Result = Result.Success;
                    TCharacter character = new TCharacter();
                    character.Name    = message.Name;
                    character.Class   = (int)message.Class;
                    character.TID     = (int)message.Class;
                    character.MapID   = 1;
                    character.MapPosX = 5000;
                    character.MapPosY = 5000;
                    character.MapPosZ = 5000;
                    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    = c.ID;
                        info.Name  = c.Name;
                        info.Class = (CharacterClass)c.Class;
                        rsp.Response.createChar.Characters.Add(info);
                    }
                }
                byte[] mes = PackageHandler.PackMessage(rsp);
                sender.SendData(mes, 0, mes.Length);
            }
        }
Esempio n. 4
0
        void OnCharacterCreate(NetConnection <NetSession> sender, UserCreateCharacterRequest request)
        {
            sender.Session.Response.createChar = new UserCreateCharacterResponse();

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

            if (character == null)
            {
                character = new TCharacter()
                {
                    Name         = request.Name,
                    Class        = (int)request.Class,
                    TID          = (int)request.Class,
                    MapID        = 1,
                    MapPosX      = 32508,
                    MapPosY      = 39126,
                    MapPosZ      = 2233,
                    MapDirection = 9000,
                    Equiped      = new byte[sizeof(int) * 10],
                    Gold         = 10000,
                    Level        = 1,
                    CGMsgID      = 0
                };
                character = DBService.Instance.Entities.Characters.Add(character);
                sender.Session.TUser.Player.Characters.Add(character);
                DBService.Instance.Entities.SaveChanges();
                sender.Session.Response.createChar.Result   = Result.Success;
                sender.Session.Response.createChar.Errormsg = "None";
                foreach (TCharacter chr in sender.Session.TUser.Player.Characters)
                {
                    NCharacterInfo nCharacterInfo = new NCharacterInfo()
                    {
                        Id    = chr.ID,
                        Name  = chr.Name,
                        Class = chr.Class,
                        Level = chr.Level
                    };
                    sender.Session.Response.createChar.Characters.Add(nCharacterInfo);
                }
            }
            else
            {
                sender.Session.Response.createChar.Result   = Result.Failed;
                sender.Session.Response.createChar.Errormsg = "重复的角色名";
            }

            sender.SendResponse();
        }
Esempio n. 5
0
        void OnCreateCharacter(NetConnection <NetSession> sender, UserCreateCharacterRequest request)
        {
            NetMessage message = new NetMessage();

            message.Response            = new NetMessageResponse();
            message.Response.createChar = new UserCreateCharacterResponse();

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

            if (character != null)
            {
                message.Response.createChar.Result   = Result.Failed;
                message.Response.createChar.Errormsg = "角色名已存在";
                sender.SendData(message);
                return;
            }
            Log.InfoFormat("OnCreateCharacter:昵称{0},角色职业{1}", request.Name, request.Class);
            character         = new TCharacter();
            character.Name    = request.Name;
            character.TID     = (int)request.Class;
            character.MapID   = 1;
            character.Class   = (int)request.Class;
            character.MapPosX = 4700;
            character.MapPosY = 4500;
            character.MapPosZ = 800;
            character         = DBService.Instance.Entities.Characters.Add(character);
            sender.Session.User.Player.Characters.Add(character);
            DBService.Instance.Entities.SaveChanges();

            message.Response.createChar.Result   = Result.Success;
            message.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.Tid   = c.TID;
                message.Response.createChar.Characters.Add(info);
            }
            sender.SendData(message);
        }
Esempio n. 6
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();
        }
        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();
        }
Esempio n. 8
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();
        }