Пример #1
0
    // Use this for initialization
    void Start()
    {
        state = SkillBridge.Message.CharacterState.Idle;
        if (this.character == null)
        {
            DataManager.Instance.Load();
            NCharacterInfo cinfo = new NCharacterInfo();
            cinfo.Id                 = 1;
            cinfo.Name               = "Test";
            cinfo.ConfigId           = 1;
            cinfo.Entity             = new NEntity();
            cinfo.Entity.Position    = new NVector3();
            cinfo.Entity.Direction   = new NVector3();
            cinfo.Entity.Direction.X = 0;
            cinfo.Entity.Direction.Y = 100;
            cinfo.Entity.Direction.Z = 0;
            cinfo.attrDynamic        = new NAttributeDynamic();
            this.character           = new Character(cinfo);

            if (entityController != null)
            {
                entityController.entity = this.character;
            }
        }
        if (agent == null)
        {
            agent = this.gameObject.AddComponent <NavMeshAgent>();
            agent.stoppingDistance = 0.3f;
            agent.updatePosition   = false;//---
        }
    }
Пример #2
0
 public void UpdateInfo(NCharacterInfo info)
 {
     this.SetEntityData(info.Entity);
     this.Info = info;
     this.Attributes.Init(this.Define, this.Info.Level, this.GetEquips(), this.Info.attrDynamic);
     this.SkillMgr.UpdateSkills();
 }
Пример #3
0
    // Start is called before the first frame update
    void Start()
    {
        //get and init fields
        mState            = CharacterState.Idle;
        mRigidbody        = GetComponentInChildren <Rigidbody>();
        mEntityController = GetComponent <EntityController>();

        //if mcharacter hasnt been assigned value, load data and create a temp cha
        if (character == null)
        {
            DataManager.Instance.LoadData();
            NCharacterInfo cinfo = new NCharacterInfo();
            cinfo.Id                 = 1;
            cinfo.Name               = "Test";
            cinfo.Tid                = 1;
            cinfo.Entity             = new NEntity();
            cinfo.Entity.Position    = new NVector3();
            cinfo.Entity.Direction   = new NVector3();
            cinfo.Entity.Direction.X = 0;
            cinfo.Entity.Direction.Y = 100;
            cinfo.Entity.Direction.Z = 0;
            character                = new Character(cinfo);
        }

        mLastPos = mRigidbody.transform.position;
    }
Пример #4
0
        void SendCharacterEnterMap(NetConnection <NetSession> conn, NCharacterInfo character)
        {
            conn.Session.Response.mapCharacterEnter       = new MapCharacterEnterResponse();
            conn.Session.Response.mapCharacterEnter.mapId = this.Define.ID;
            conn.Session.Response.mapCharacterEnter.Characters.Add(character);

            conn.SendResponse();
        }
Пример #5
0
        void OnCharacterEnter(object sender, MapCharacterEnterResponse response)
        {
            Debug.LogFormat("OnCharacterEnter::{0}", response.mapId);
            NCharacterInfo nCharacterInfo = response.Characters[0];

            User.Instance.CurrentCharacter = nCharacterInfo;
            SceneManager.Instance.LoadScene(DataManager.Instance.Maps[response.mapId].Resource);
        }
Пример #6
0
 private void UpdateFriendInfo(NCharacterInfo info, int status)
 {
     if (AllFriends.ContainsKey(info.Id))
     {
         AllFriends[info.Id].Status = status;
     }
     Dirty = true;
 }
Пример #7
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);
        }
Пример #8
0
 NCharacterInfo GetBasicInfo(NCharacterInfo info)
 {
     return(new NCharacterInfo()
     {
         Id = info.Id,
         Name = info.Name,
         Class = info.Class,
         Level = info.Level,
     });
 }
Пример #9
0
 public Creature(NCharacterInfo info) : base(info.Entity)
 {
     this.Info       = info;
     this.Define     = DataManager.Instance.Characters[info.ConfigId];
     this.Attributes = new Attributes();
     this.Attributes.Init(this.Define, this.Info.Level, this.GetEquips(), this.Info.attrDynamic);
     this.SkillMgr  = new SkillManager(this);
     this.BuffMgr   = new BuffManager(this);
     this.EffectMgr = new EffectManager(this);
 }
Пример #10
0
        private void OnCharacterEnter(object sender, MapCharacterEnterResponse message)
        {
            Debug.LogFormat("MapCharacterEnterRequest:{0}", message.mapId);
            NCharacterInfo info = message.Characters[0];

            if (User.Instance.CurrentCharacter == null)
            {
                User.Instance.CurrentCharacter = info;
            }
            // SceneManager.Instance.LoadScene(DataManager.Instance.Maps[message.mapId].Resource);
        }
Пример #11
0
 public CharacterBase(CharacterType type, int tid, int level, Vector3Int pos, Vector3Int dir) :
     base(pos, dir)
 {
     this.Info        = new NCharacterInfo();
     this.Info.Type   = type;
     this.Info.Level  = level;
     this.Info.Tid    = tid;
     this.Info.Entity = this.EntityData;
     //this.Define = DataManager.Instance.Characters[this.Info.Tid];
     this.Info.Name = this.Define.Name;
 }
Пример #12
0
 public CharacterBase(CharacterType type, int config, int level, Vector3Int pos, Vector3Int dir) :
     base(pos, dir)
 {
     this.Info          = new NCharacterInfo();
     this.Info.Type     = type;
     this.Info.Level    = level;
     this.Info.ConfigId = config;
     this.Info.Entity   = this.EntityData;
     this.Info.EntityId = this.entityId;
     this.Define        = DataManager.Instance.Characters[this.Info.ConfigId];
     this.Info.Name     = this.Define.Name;
 }
Пример #13
0
 public void UpdateFriendInfo(NCharacterInfo friendInfo, int status)
 {
     foreach (var f in this.friends)
     {
         if (f.friendInfo.Id == friendInfo.Id)
         {
             f.Status = status;
             break;
         }
     }
     this.friendChanged = true;
 }
Пример #14
0
        public void AddCharacter(NCharacterInfo nCharacterInfo)
        {
            Debug.Log($"CharacterManager.AddCharacter ID:{ nCharacterInfo.Id} { nCharacterInfo.EntityId}");
            Character character = new Character(nCharacterInfo);

            this.Characters.Add(nCharacterInfo.EntityId, character);

            if (OnCharacterEnter != null)
            {
                OnCharacterEnter(character);
            }
        }
Пример #15
0
    /// <summary>
    /// 向字典中增加角色
    /// </summary>
    /// <param name="nCharacterInfo">网络协议传输角色信息</param>
    public void AddCharacter(NCharacterInfo nCharacterInfo)
    {
        Debug.LogFormat("AddCharacter:{0}:{1} Map:{2} Entity:{3}", nCharacterInfo.Id, nCharacterInfo.Name, nCharacterInfo.mapId, nCharacterInfo.Entity.ToString());
        Character character = new Character(nCharacterInfo);

        this.Characters[nCharacterInfo.Id] = character;

        if (OnCharacterEnter != null)
        {
            OnCharacterEnter(character);
        }
    }
Пример #16
0
        void SendCharacterEnterMap(NetConnection <NetSession> conn, NCharacterInfo character)
        {
            NetMessage message = new NetMessage();

            message.Response = new NetMessageResponse();

            message.Response.mapCharacterEnter       = new MapCharacterEnterResponse();
            message.Response.mapCharacterEnter.mapId = this.Define.ID;
            message.Response.mapCharacterEnter.Characters.Add(character);

            byte[] data = PackageHandler.PackMessage(message);
            conn.SendData(data, 0, data.Length);
        }
Пример #17
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);
            }
        }
Пример #18
0
 public void SetMemberInfo(int idx, NCharacterInfo item, bool isLeader)
 {
     this.idx  = idx;
     this.Info = item;
     if (this.nickName != null)
     {
         this.nickName.text = this.Info.Level.ToString().PadRight(4) + this.Info.Name;
     }
     // if (this.classIcon != null) this.classIcon.overrideSprite = SpriteManager.Instance.classIcons[(int)this.Info.Class-1];
     if (this.leaderIcon != null)
     {
         this.leaderIcon.gameObject.SetActive(isLeader);
     }
 }
Пример #19
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();
        }
Пример #20
0
        void OnLogin(NetConnection <NetSession> sender, UserLoginRequest request)
        {
            NetMessage message = new NetMessage();

            message.Response           = new NetMessageResponse();
            message.Response.userLogin = new UserLoginResponse();
            //从数据库查询账号信息
            //注意:这里要从数据库拿到User对应的Players和Characters
            TUser user = DBService.Instance.Entities.Users.Where(
                u => u.Username == request.User).FirstOrDefault();

            if (user != null)
            {
                //验证密码
                if (user.Password != request.Passward)
                {
                    message.Response.userLogin.Result   = Result.Failed;
                    message.Response.userLogin.Errormsg = "密码不正确";
                }
                else
                {
                    sender.Session.User = user;
                    message.Response.userLogin.Result             = Result.Success;
                    message.Response.userLogin.Errormsg           = "none";
                    message.Response.userLogin.Userinfo           = new NUserInfo();
                    message.Response.userLogin.Userinfo.Id        = (int)user.ID;
                    message.Response.userLogin.Userinfo.Player    = new NPlayerInfo();
                    message.Response.userLogin.Userinfo.Player.Id = user.Player.ID;

                    foreach (var c in user.Player.Characters)
                    {
                        NCharacterInfo info = new NCharacterInfo();
                        info.Id    = c.ID;
                        info.Name  = c.Name;
                        info.Class = (CharacterClass)c.Class;
                        info.Tid   = c.TID;
                        message.Response.userLogin.Userinfo.Player.Characters.Add(info);
                    }
                }
            }
            else
            {
                message.Response.userLogin.Result   = Result.Failed;
                message.Response.userLogin.Errormsg = "用户不存在";
            }
            sender.SendData(message);
        }
Пример #21
0
        void OnLogin(NetConnection <NetSession> sender, UserLoginRequest request)
        {
            Log.InfoFormat("UserLoginRequest: User:{0}  Pass:{1}", request.User, request.Passward);

            NetMessage message = new NetMessage();

            message.Response           = new NetMessageResponse();
            message.Response.userLogin = new UserLoginResponse();

            TUser user = DBService.Instance.Entities.Users.Where(u => u.Username == request.User).FirstOrDefault();

            if (user == null)
            {
                message.Response.userLogin.Result   = Result.Failed;
                message.Response.userLogin.Errormsg = "用户不存在,请进行注册!";
            }
            else if (user.Password != request.Passward)
            {
                message.Response.userLogin.Result   = Result.Failed;
                message.Response.userLogin.Errormsg = "密码错误,请重新输入!";
            }
            else
            {
                sender.Session.User = user;

                message.Response.userLogin.Result   = Result.Success;
                message.Response.userLogin.Errormsg = "登录成功";

                message.Response.userLogin.Userinfo    = new NUserInfo();
                message.Response.userLogin.Userinfo.Id = 1;

                message.Response.userLogin.Userinfo.Player    = new NPlayerInfo();
                message.Response.userLogin.Userinfo.Player.Id = user.Player.ID;

                foreach (var CharacterInfo in user.Player.Characters)
                {
                    NCharacterInfo info = new NCharacterInfo();
                    info.Id    = CharacterInfo.ID;
                    info.Name  = CharacterInfo.Name;
                    info.Class = (CharacterClass)CharacterInfo.Class;
                    message.Response.userLogin.Userinfo.Player.Characters.Add(info);
                }
            }

            byte[] data = PackageHandler.PackMessage(message);
            sender.SendData(data, 0, data.Length);
        }
Пример #22
0
        void OnLogin(NetConnection <NetSession> sender, UserLoginRequest request)
        {
            Log.InfoFormat("UserLoginRequest: User:{0}  Pass:{1}", request.User, request.Passward);

            //NetMessage message = new NetMessage();
            //message.Response = new NetMessageResponse();
            //message.Response.userLogin = new UserLoginResponse();
            sender.Session.Response.userLogin = new UserLoginResponse();

            TUser user = DBService.Instance.Entities.Users.Where(u => u.Username == request.User).FirstOrDefault();

            if (user == null)
            {
                sender.Session.Response.userLogin.Result   = Result.Failed;
                sender.Session.Response.userLogin.Errormsg = "用户不存在";
            }
            else if (user.Password != request.Passward)
            {
                sender.Session.Response.userLogin.Result   = Result.Failed;
                sender.Session.Response.userLogin.Errormsg = "密码错误";
            }
            else
            {
                sender.Session.User = user;

                sender.Session.Response.userLogin.Result             = Result.Success;
                sender.Session.Response.userLogin.Errormsg           = "None";
                sender.Session.Response.userLogin.Userinfo           = new NUserInfo();
                sender.Session.Response.userLogin.Userinfo.Id        = (int)user.ID;
                sender.Session.Response.userLogin.Userinfo.Player    = new NPlayerInfo();
                sender.Session.Response.userLogin.Userinfo.Player.Id = user.Player.ID;
                foreach (var c in 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.userLogin.Userinfo.Player.Characters.Add(info);
                }
            }
            //byte[] data = PackageHandler.PackMessage(message);
            //sender.SendData(data, 0, data.Length);
            sender.SendResponse();
        }
Пример #23
0
 private void SetCharacterItem(GameObject item, NCharacterInfo info, int index)
 {
     item.GetComponent <UICharInfo>().info = info;
     item.GetComponent <UICharInfo>().Set();
     item.GetComponent <Button>().onClick.RemoveAllListeners();
     item.GetComponent <Button>().onClick.AddListener(() =>
     {
         characterView.CurrectCharacter = info.Tid;
         play.onClick.RemoveAllListeners();
         play.onClick.AddListener(() =>
         {
             selectCharacterIdx = index;
             User.Instance.CurrentCharacterDbId = User.Instance.Info.Player.Characters[index].Id;
             OnClickPlay();
         });
     });
 }
Пример #24
0
        public void Init(NCharacterInfo nCharacterInfo)
        {
            foreach (var item in nCharacterInfo.Equips)
            {
                Equips.Add(item.Id, new Equip(item));
            }


            for (int i = 0; i < nCharacterInfo.Equiped.Length / sizeof(int); i++)
            {
                Equip equip = null;
                if (Equips.TryGetValue(PointerUtil.ReadInt(nCharacterInfo.Equiped, i), out equip))
                {
                    WearEquip(equip, i);
                }
            }
        }
Пример #25
0
        private void OnLogin(NetConnection <NetSession> sender, UserLoginRequest loginRequest)
        {
            Log.InfoFormat("UserLoginRequest:User{0} Password:{1}", loginRequest.User, loginRequest.Passward);

            sender.Session.Response.userLogin = new UserLoginResponse();

            TUser user = DBService.Instance.Entities.Users.Where(u => u.Username == loginRequest.User).FirstOrDefault();

            if (user != null)
            {
                if (loginRequest.Passward == user.Password)
                {
                    sender.Session.User = user;//当前会话的用户

                    sender.Session.Response.userLogin.Result   = Result.Success;
                    sender.Session.Response.userLogin.Errormsg = "None";
                    //在返回消息中添加用户 角色信息
                    sender.Session.Response.userLogin.Userinfo           = new NUserInfo();
                    sender.Session.Response.userLogin.Userinfo.Id        = (int)user.ID;
                    sender.Session.Response.userLogin.Userinfo.Player    = new NPlayerInfo();
                    sender.Session.Response.userLogin.Userinfo.Player.Id = user.Player.ID;
                    foreach (var character in user.Player.Characters)
                    {
                        NCharacterInfo info = new NCharacterInfo();
                        info.Id       = character.ID;//character.ID;
                        info.Class    = (CharacterClass)character.Class;
                        info.Type     = CharacterType.Player;
                        info.Name     = character.Name;
                        info.ConfigId = character.TID;
                        sender.Session.Response.userLogin.Userinfo.Player.Characters.Add(info);
                    }
                }
                else
                {
                    sender.Session.Response.userLogin.Result   = Result.Failed;
                    sender.Session.Response.userLogin.Errormsg = "密码错误";
                }
            }
            else
            {
                sender.Session.Response.userLogin.Result   = Result.Failed;
                sender.Session.Response.userLogin.Errormsg = "用户名不存在";
            }
            sender.SendResponse();
        }
Пример #26
0
        public Creature(CharacterType type, int configId, int level, Vector3Int pos, Vector3Int dir) :
            base(pos, dir)
        {
            this.Info          = new NCharacterInfo();
            this.Info.Type     = type;
            this.Info.Level    = level;
            this.Info.ConfigId = configId;
            this.Info.Entity   = this.EntityData;
            this.Info.EntityId = this.entityId;
            this.Define        = DataManager.Instance.Characters[configId];
            this.Info.Name     = this.Define.Name;

            InitSkills();
            InitBuffs();
            this.Attributes = new Attributes();
            this.Attributes.Init(this.Define, this.Info.Level, this.GetEquips(), this.Info.attrDynamic);
            this.Info.attrDynamic = this.Attributes.DynamicAttr;
        }
Пример #27
0
 /// <summary>
 /// 任务管理器初始化
 /// </summary>
 /// <param name="character"></param>
 public void QuestInit(NCharacterInfo character)
 {
     foreach (var item in character.Quests)
     {
         QuestDefine define;
         if (DataManager.Instance.Quests.TryGetValue(item.Id, out define))
         {
             QueueQuest.Enqueue(item.Id);
             AddQuest(item);
         }
     }
     foreach (var item in DataManager.Instance.Quests.Where(x => x.Value.PreQuests == null || x.Value.PreQuests.Count == 0))
     {
         QueueQuest.Enqueue(item.Value.ID);
     }
     CheckQuestStatus();
     OnQuestInitComplete?.Invoke();
 }
Пример #28
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);
        }
Пример #29
0
        void OnLogin(NetConnection <NetSession> sender, UserLoginRequest request)


        {
            sender.Session.Response.userLogin = new UserLoginResponse();

            TUser user = DBService.Instance.Entities.Users.Where(u => u.Username == request.User & u.Password == request.Passward).FirstOrDefault();

            if (user == null)
            {
                sender.Session.Response.userLogin.Result   = Result.Failed;
                sender.Session.Response.userLogin.Errormsg = "用户名或密码错误";
            }
            else
            {
                sender.Session.TUser = user;
                sender.Session.Response.userLogin.Result   = Result.Success;
                sender.Session.Response.userLogin.Errormsg = "None";
                sender.Session.Response.userLogin.Userinfo = new NUserInfo
                {
                    Player = new NPlayerInfo
                    {
                        Id = user.Player.ID
                    },
                    Id = (int)user.ID
                };

                foreach (TCharacter character in user.Player.Characters)
                {
                    NCharacterInfo nCharacterInfo = new NCharacterInfo()
                    {
                        Id       = character.ID,
                        Name     = character.Name,
                        Class    = character.Class,
                        Level    = character.Level,
                        ConfigId = character.TID
                    };
                    sender.Session.Response.userLogin.Userinfo.Player.Characters.Add(nCharacterInfo);
                }
            }
            sender.SendResponse();
        }
Пример #30
0
        void OnLogin(NetConnection <NetSession> sender, UserLoginRequest request)
        {
            Log.InfoFormat("UserLoginRequest: User:{0}  Pass:{1}", request.User, request.Passward);

            sender.Session.Response.userLogin = new UserLoginResponse();


            TUser user = DBService.Instance.Entities.Users.Where(u => u.Username == request.User).FirstOrDefault();

            if (user == null)
            {
                sender.Session.Response.userLogin.Result   = Result.Failed;
                sender.Session.Response.userLogin.Errormsg = "User does not exit";
            }
            else if (user.Password != request.Passward)
            {
                sender.Session.Response.userLogin.Result   = Result.Failed;
                sender.Session.Response.userLogin.Errormsg = "Password does not match. Please re-enter.";
            }
            else
            {
                sender.Session.User = user;

                sender.Session.Response.userLogin.Result             = Result.Success;
                sender.Session.Response.userLogin.Errormsg           = "None";
                sender.Session.Response.userLogin.Userinfo           = new NUserInfo();
                sender.Session.Response.userLogin.Userinfo.Id        = (int)user.ID;
                sender.Session.Response.userLogin.Userinfo.Player    = new NPlayerInfo();
                sender.Session.Response.userLogin.Userinfo.Player.Id = user.Player.ID;
                foreach (var c in user.Player.Characters)
                {
                    NCharacterInfo info = new NCharacterInfo();
                    info.Id    = c.ID;
                    info.Name  = c.Name;
                    info.Class = (CharacterClass)c.Class;
                    info.Type  = CharacterType.Player;
                    sender.Session.Response.userLogin.Userinfo.Player.Characters.Add(info);
                }
            }

            sender.SendResponse();
        }