Beispiel #1
0
 public void Dispose()
 {
     if (Map != null)
     {
         Map.Instance.RemoveClient(Client);
     }
     if (SearchingArena)
     {
         ArenaProvider.Instance.OnClientDisconnected(Client);
     }
     if (IsFighting)
     {
         FighterInstance.OnDisconnect();
     }
     if (PlayerTradeInstance != null)
     {
         PlayerTradeInstance.Abort();
     }
     if (PartyMember != null)
     {
         PartyMember.Party.QuitParty(Client);
     }
     if (DungeonPartyProvider.Instance.GetDPCByCharacterId(this.Id) != null)
     {
         DungeonPartyProvider.Instance.RemoveCharacter(this);
     }
     Client.Character.Look.UnsetAura();
     Record.Look = Look.ConvertToString();
     SaveTask.UpdateElement(Record);
     SaveTask.UpdateElement(StatsRecord);
     Inventory.InitializeForSaveTask();
 }
Beispiel #2
0
        public void LeaveExchange()
        {
            switch (ExchangeType)
            {
            case ExchangeTypeEnum.PLAYER_TRADE:
                if (PlayerTradeInstance != null)
                {
                    PlayerTradeInstance.CancelExchange();
                }
                break;

            case ExchangeTypeEnum.CRAFT:
                if (CraftInstance != null)
                {
                    CraftInstance.CancelExchange();
                }
                break;

            case ExchangeTypeEnum.BIDHOUSE_SELL:
                if (BidShopInstance != null)
                {
                    BidShopInstance.CancelExchange();
                }
                break;

            case ExchangeTypeEnum.BIDHOUSE_BUY:
                if (BidShopInstance != null)
                {
                    BidShopInstance.CancelExchange();
                }

                break;

            case ExchangeTypeEnum.STORAGE:
                if (BankInstance != null)
                {
                    BankInstance.CancelExchange();
                }
                break;

            case ExchangeTypeEnum.RUNES_TRADE:
                if (SmithMagicInstance != null)
                {
                    SmithMagicInstance.CancelExchange();
                }
                break;

            case ExchangeTypeEnum.NPC_SHOP:
                if (NpcShopExchange != null)
                {
                    NpcShopExchange.CancelExchange();
                }
                break;
            }

            Client.Send(new ExchangeLeaveMessage((sbyte)DialogTypeEnum.DIALOG_EXCHANGE, true));
            ExchangeType = null;
        }