Exemplo n.º 1
0
        //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);
            }
        }