// 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;//--- } }
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(); }
// 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; }
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(); }
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); }
private void UpdateFriendInfo(NCharacterInfo info, int status) { if (AllFriends.ContainsKey(info.Id)) { AllFriends[info.Id].Status = status; } Dirty = true; }
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); }
NCharacterInfo GetBasicInfo(NCharacterInfo info) { return(new NCharacterInfo() { Id = info.Id, Name = info.Name, Class = info.Class, Level = info.Level, }); }
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); }
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); }
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; }
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; }
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; }
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); } }
/// <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); } }
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); }
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); } }
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); } }
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(); }
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); }
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); }
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(); }
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(); }); }); }
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); } } }
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(); }
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; }
/// <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(); }
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); }
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(); }
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(); }