//public override void AddItem(Item item) //{ // base.AddItem(item); // //ServerCharacter serverCharacter = (ServerCharacter)character; // maptoCharacterRelations[character.CurrentMapId].Add(character.Id); //} //public void AddGroundItem(Item item, ushort mapId, Point position) //{ // this.AddItem(item); // GroundItem groundItem = new GroundItem(); // groundItem.Position = position; // groundItem.CurrentMapId = mapId; // groundItem.ItemId = (ushort)item.Id; // base.AddGroundItem(groundItem); // //this.UpdateEveryoneOfGroundItem(groundItem); //} private void ServerCharacter_Disconnects(object sender, EventArgs e) { NetState dcOwner = (NetState)sender; ServerCharacter character = (ServerCharacter)this.GetCharacter(dcOwner.WorldId); dataContext.SaveCharacterPosition(character.Id, character.CurrentMapId, character.Position); dataContext.SaveCharacterStats(character.Id, character.Stats.Health, character.Stats.Energy); dataContext.SaveCharacterItems(character.Id, character.Armor, character.LeftHand, character.RightHand); //dataContext.SaveCharacter(character.GetData()); if (character != null) { this.RemoveCharacter(character); } if (dcOwner.Id != -1) { dataContext.EndSession(dcOwner.Id); } }