public void AddMember(int characterId, string name, int @class, int leave, GuildTitle title) { DateTime now = DateTime.Now; TGuildMember dbMember = new TGuildMember() { CharacterId = characterId, Name = name, Class = @class, Level = leave, Title = (int)title, JoinTime = now, LastTime = now }; this.Data.Members.Add(dbMember); var character = CharacterManager.Instance.GetCharacter(characterId); if (character != null) { character.Data.GuildId = this.Id; } else { // DBService.Instance.Entities.Database.ExecuteSqlCommand("UPDATE Characters SET GuildId=@p0 Where CharacterId=@p1",this.Id,characterId); TCharacter dbChar = DBService.Instance.Entities.Characters.SingleOrDefault(c => c.ID == characterId); dbChar.GuildId = this.Id; } timestamp = TimeUtil.timestamp; }
public Character AddCharacter(TCharacter cha) { Character character = new Character(CharacterType.Player, cha); this.Characters[cha.ID] = character; return(character); }
public Character(CharacterType type, TCharacter cha) : base(new Core.Vector3Int(cha.MapPosX, cha.MapPosY, cha.MapPosZ), new Core.Vector3Int(cha.MapDirection, 0, 0)) { this.Data = cha; this.Info = new NCharacterInfo(); this.Id = cha.ID; this.Info.Type = type; this.Info.Id = cha.ID; this.Info.EntityId = this.entityId; this.Info.ConfigId = cha.TID; this.Info.Name = cha.Name; this.Info.Level = cha.Level; this.Info.Class = cha.Class; this.Info.mapId = cha.MapID; this.Info.Entity = this.EntityData; this.Info.Gold = this.Gold; this.Info.Equiped = cha.Equiped; this.Define = DataManager.Instance.Characters[cha.TID]; this.itemManager = new ItemManager(this); this.itemManager.GetItemInfo(Info.Items); this.statusManager = new StatusManager(this); this.goodsLimitManager = new GoodsLimitManager(this); this.goodsLimitManager.GetGoodsLimits(Info.goodsLimits); this.equipManager = new EquipManager(this); this.equipManager.GetEquipInfos(Info.Equips); this.questManager = new QuestManager(this); this.questManager.GetQuestInfos(Info.Quests); this.messageManager = new MessageManager(this); this.messageManager.GetMessageInfos(Info.Messages); this.friendManager = new FriendManager(this); this.friendManager.GetFriendsInfo(Info.Friends); }
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); }
public Character(CharacterType type, TCharacter cha) : base(new Core.Vector3Int(cha.MapPosX, cha.MapPosY, cha.MapPosZ), new Core.Vector3Int(100, 0, 0)) { this.Data = cha; this.Info = new NCharacterInfo(); this.Info.Type = type; this.Info.Id = cha.ID; this.Info.Name = cha.Name; this.Info.Level = 10;//cha.Level; this.Info.Tid = cha.TID; this.Info.Class = (CharacterClass)cha.Class; this.Info.mapId = cha.MapID; this.Info.Gold = cha.Gold; this.Info.Entity = this.EntityData; //this.Define = DataManager.Instance.Characters[this.Info.Tid]; ItemManager = new ItemManager(this); this.ItemManager.GetItemInfos(this.Info.Items); this.Info.Bag = new NBagInfo(); this.Info.Bag.Unlocked = this.Data.Bag.Unlocked; this.Info.Bag.Items = this.Data.Bag.Items; this.Info.Equips = this.Data.Equips; this.QuestManager = new QuestManager(this); this.QuestManager.GetQuestInfos(this.Info.Quests); StatusManager = new StatusManager(this); }
public Character(CharacterType type, TCharacter cha) : base(type, cha.TID, cha.Level, new Core.Vector3Int(cha.MapPosX, cha.MapPosY, cha.MapPosZ), new Core.Vector3Int(100, 0, 0)) { this.AI = new AIAgent(this); this.Data = cha; this.Id = cha.ID; this.Info.Id = cha.ID; this.Info.Exp = cha.Exp; this.Info.Class = (CharacterClass)cha.Class; this.Info.mapId = cha.MapID; this.Info.Gold = cha.Gold; this.Info.Ride = 0; this.Info.Name = cha.Name; this.ItemManager = new ItemManager(this); this.ItemManager.GetItemInfos(this.Info.Items); this.Info.Bag = new NBagInfo(); this.Info.Bag.Unlocked = this.Data.Bag.Unlocked; this.Info.Bag.Items = this.Data.Bag.Items; this.Info.Equips = this.Data.Equips; this.QuestManager = new QuestManager(this); this.QuestManager.GetQuestInfos(this.Info.Quests); this.StatusManager = new StatusManager(this); this.FriendManager = new FriendManager(this); this.FriendManager.GetFriendInfos(this.Info.Friends); this.PetManager = new PetManager(this); this.Guild = GuildManager.Instance.GetGuild(this.Data.GuildId); this.Chat = new Chat(this); this.Info.attrDynamic = new NAttributeDynamic(); this.Info.attrDynamic.Hp = cha.HP; this.Info.attrDynamic.Mp = cha.MP; }
public Character(CharacterType type, TCharacter cha) : base(new Core.Vector3Int(cha.MapPosX, cha.MapPosY, cha.MapPosZ), new Core.Vector3Int(100, 0, 0)) { //data为数据库表角色 this.Data = cha; this.Id = cha.ID; this.Info = new NCharacterInfo(); this.Info.Type = type; this.Info.Id = cha.ID; this.Info.EntityId = this.entityId; this.Info.Name = cha.Name; this.Info.Level = 10;//cha.Level; this.Info.ConfigId = cha.TID; this.Info.Gold = cha.Gold; this.Info.Ride = 0; this.Info.Class = (CharacterClass)cha.Class; this.Info.mapId = cha.MapID; this.Info.Entity = this.EntityData; this.Define = DataManager.Instance.Characters[this.Info.ConfigId]; this.ItemManager = new ItemManager(this); this.ItemManager.GetItemInfos(this.Info.Items); this.Info.Bag = new NBagInfo(); this.Info.Bag.Unlocked = this.Data.Bag.Unlocked; this.Info.Bag.Items = this.Data.Bag.Items; this.Info.Equips = this.Data.Equips; this.QuestManager = new QuestManager(this); this.QuestManager.GetQuestInfos(this.Info.Quests); this.StatusManager = new StatusManager(this); this.FriendManager = new FriendManager(this); this.FriendManager.GetFriendInfos(this.Info.Friends); this.Guild = GuildManager.Instance.GetGuild(this.Data.GuildId); }
public void AddMember(int characterId, string name, int @class, int level, GuildTitle title) { DateTime now = DateTime.Now; TGuildMember dbmember = new TGuildMember { CharacterId = characterId, Name = name, Class = @class, Level = level, Title = (int)title, JoinTime = now, LastTime = now }; this.Data.Members.Add(dbmember); var character = CharacterManager.Instance.GetCharacter(characterId); if (character != null) { character.Data.GuildId = this.Id; } else { TCharacter dbChr = DBService.Instance.Entities.Characters.SingleOrDefault(c => c.ID == characterId); dbChr.GuildId = this.Id; } timestamp = TimeUtil.timestamp; }
public Character AddCharacter(TCharacter tCharacter) { Character character = new Character(CharacterType.Player, tCharacter); this.Characters[tCharacter.ID] = character; return(character); }
public Character AddCharacter(TCharacter cha) { Character character = new Character(CharacterType.Player, cha); Managers.EntityManager.Instance.AddEntity(character.Info.mapId, character); this.Characters[character.Id] = character; return(character); }
public Character AddCharacter(TCharacter cha) { Character character = new Character(CharacterType.Player, cha); EntityManager.Instance.AddEntity(cha.MapID, character); this.Characters[character.entityId] = character; return(character); }
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); }
public Character AddCharacter(TCharacter cha) { Character character = new Character(CharacterType.Player, cha); EntityManager.Instance.AddEntity(cha.MapID, character); character.Info.Id = character.Id; Log.InfoFormat("info.id:{0},id={1},entityid:{2}", character.Info.Id, character.Id, character.entityId); this.Characters[character.Id] = character; return(character); }
/// <summary> /// Create a character and adds it to the character manager /// </summary> /// <param name="tChar"></param> /// <returns></returns> public Character AddCharacter(TCharacter tChar) { Character character = new Character(CharacterType.Player, tChar); //set entity id, add player to entitymanager EntityManager.Instance.AddEntity(tChar.MapID, character); characters.Add(character.entityId, character); return(character); }
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); }
public Character(CharacterType type, TCharacter cha) : base(new Core.Vector3Int(cha.MapPosX, cha.MapPosY, cha.MapPosZ), new Core.Vector3Int(100, 0, 0)) { this.Data = cha; this.Info = new NCharacterInfo(); this.Info.Type = type; this.Info.Id = cha.ID; this.Info.Name = cha.Name; this.Info.Level = 1;//cha.Level; this.Info.Tid = cha.TID; this.Info.Class = (CharacterClass)cha.Class; this.Info.mapId = cha.MapID; this.Info.Entity = this.EntityData; }
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); } }
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(); }
public Character(CharacterType type, TCharacter cha) : base(new Core.Vector3Int(cha.MapPosX, cha.MapPosY, cha.MapPosZ), new Core.Vector3Int(100, 0, 0)) { this.Data = cha; this.Info = new NCharacterInfo(); this.Info.Type = type; this.Info.Id = cha.ID; this.Info.Name = cha.Name; this.Info.Level = 1;//cha.Level; this.Info.Tid = cha.TID; this.Info.Class = (CharacterClass)cha.Class; this.Info.mapId = cha.MapID; this.Info.Entity = this.EntityData; this.ItemManager = new ItemManager(this); this.ItemManager.GetItemInfos(this.Info.Items); //this.Define = DataManager.Instance.Characters[this.Info.Tid]; }
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); }
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(); }
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); }
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); }
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); }
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; }
/// <summary> /// 角色进入地图 /// </summary> /// <param name="character"></param> internal void CharacterEnter(NetConnection <NetSession> conn, Character character) { Log.InfoFormat("CharacterEnter: Map:{0} characterId:{1}", this.Define.ID, character.entityId); character.Info.mapId = this.ID; //通知自己这个地图有多少玩家 NetMessage message = new NetMessage(); message.Response = new NetMessageResponse(); message.Response.mapCharacterEnter = new MapCharacterEnterResponse(); message.Response.mapCharacterEnter.mapId = this.ID; message.Response.mapCharacterEnter.Characters.Add(character.Info); //通知所有玩家我进入地图了 NetMessage bordcast = new NetMessage(); bordcast.Response = new NetMessageResponse(); bordcast.Response.mapCharacterEnter = new MapCharacterEnterResponse(); bordcast.Response.mapCharacterEnter.mapId = this.ID; foreach (var kv in this.MapCharacters) { //添加这个地图的所以角色信息 message.Response.mapCharacterEnter.Characters.Add(kv.Value.character.Info); //通知每个玩家我进入地图了 bordcast.Response.mapCharacterEnter.Characters.Clear(); bordcast.Response.mapCharacterEnter.Characters.Add(character.Info); //给其他玩家发消息 kv.Value.connection.SendData(bordcast); } TCharacter tcha = DBService.Instance.Entities.Characters.Where(u => u.Name == character.Info.Name).FirstOrDefault(); tcha.MapID = character.Info.mapId; DBService.Instance.Entities.SaveChanges(); CharacterManager.Instance.AddCharacter(tcha); this.MapCharacters[character.entityId] = new MapCharacter(conn, character); //给自己发消息 conn.SendData(message); }
internal void UpdateEntity(NEntitySync nEntity) { foreach (var item in this.MapCharacters) { if (item.Value.character.entityId == nEntity.Id) { item.Value.character.Position = nEntity.Entity.Position; item.Value.character.Direction = nEntity.Entity.Direction; item.Value.character.Speed = nEntity.Entity.Speed; TCharacter tcha = DBService.Instance.Entities.Characters.Where(u => u.Name == item.Value.character.Info.Name).FirstOrDefault(); tcha.MapPosX = nEntity.Entity.Position.X; tcha.MapPosY = nEntity.Entity.Position.Y; tcha.MapPosZ = nEntity.Entity.Position.Z; DBService.Instance.Entities.SaveChanges(); } else { MapService.Instance.SendEntityUpdate(item.Value.connection, nEntity); } } }
public Character(CharacterType type, TCharacter cha) : base(new Core.Vector3Int(cha.MapPosX, cha.MapPosY, cha.MapPosZ), new Core.Vector3Int(100, 0, 0)) { this.Data = cha; this.Id = cha.ID; //init character info this.Info = new NCharacterInfo(); this.Info.Type = type; this.Info.Id = cha.ID; this.Info.Name = cha.Name; this.Info.Level = 1;//cha.Level; this.Info.Tid = cha.TID; this.Info.Class = (CharacterClass)cha.Class; this.Info.mapId = cha.MapID; this.Info.Entity = this.EntityData; this.Info.Gold = (int)cha.Gold; //Init bag this.Info.Bag = new NBagInfo(); this.Info.Bag.Size = this.Data.Bag.Size; this.Info.Bag.Items = this.Data.Bag.Items; //Init equipments this.Info.Equip = new NEquipInfo(); this.Info.Equip.Equips = new int[7]; this.Info.Equip.Equips[0] = this.Data.Equip.Weapon; this.Info.Equip.Equips[1] = this.Data.Equip.Accessory; this.Info.Equip.Equips[2] = this.Data.Equip.Helmet; this.Info.Equip.Equips[3] = this.Data.Equip.Chest; this.Info.Equip.Equips[4] = this.Data.Equip.Shoulder; this.Info.Equip.Equips[5] = this.Data.Equip.Pants; this.Info.Equip.Equips[6] = this.Data.Equip.Boots; //get character define from json configuration file this.Define = DataManager.Instance.Characters[this.Info.Tid]; //init item system ItemManager = new ItemManager(this); ItemManager.GetItemList(Info.Items); }
private void OnGameLeave(NetConnection <NetSession> sender, UserGameLeaveRequest message) { Character cha = sender.Session.Character; RemoveChara(cha); SkillBridge.Message.NetMessage rsp = new NetMessage(); rsp.Response = new NetMessageResponse(); rsp.Response.gameLeave = new UserGameLeaveResponse(); rsp.Response.gameLeave.Result = Result.Success; byte[] data = PackageHandler.PackMessage(rsp); sender.SendData(data, 0, data.Length); TCharacter character = sender.Session.Character.Data; character.MapID = cha.Info.mapId; character.MapPosX = cha.EntityData.Position.X; character.MapPosY = cha.EntityData.Position.Y; character.MapPosZ = cha.EntityData.Position.Z; character.MapRotX = cha.EntityData.Direction.X; character.MapRotY = cha.EntityData.Direction.Y; DBService.Instance.Entities.SaveChangesAsync(); sender.Session.Character = null; }
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); }