public static void HandleExchangeRequestOnTaxCollectorMessage(WorldClient client, ExchangeRequestOnTaxCollectorMessage message)
 {
     if (client.Character.Guild != null)
     {
         TaxCollectorNpc taxCollector = client.Character.Map.TaxCollector;
         if (taxCollector != null)
         {
             if (!taxCollector.IsTaxCollectorOwner(client.Character.GuildMember))
             {
                 client.Send(new TaxCollectorErrorMessage(2));
             }
             else
             {
                 TaxCollectorTrade taxCollectorTrade = new TaxCollectorTrade(taxCollector, client.Character);
                 taxCollectorTrade.Open();
             }
         }
     }
 }
Exemplo n.º 2
0
        public static void HandleExchangeRequestOnTaxCollectorMessage(WorldClient client, ExchangeRequestOnTaxCollectorMessage message)
        {
            if (client.Character.Guild == null)
            {
                return;
            }

            var taxCollectorNpc = client.Character.Map.TaxCollector;

            if (taxCollectorNpc == null)
            {
                return;
            }

            var guildMember = client.Character.GuildMember;

            if (!taxCollectorNpc.IsTaxCollectorOwner(guildMember))
            {
                client.Send(new TaxCollectorErrorMessage((sbyte)TaxCollectorErrorReasonEnum.TAX_COLLECTOR_NOT_OWNED));
                return;
            }

            if (!((string.Equals(taxCollectorNpc.Record.CallerName, client.Character.Name) &&
                   guildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_COLLECT_MY_TAX_COLLECTOR)) || guildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_COLLECT)))
            {
                client.Send(new TaxCollectorErrorMessage((sbyte)TaxCollectorErrorReasonEnum.TAX_COLLECTOR_NO_RIGHTS));
                return;
            }

            if (taxCollectorNpc.IsBusy())
            {
                return;
            }

            var exchange = new TaxCollectorExchange(taxCollectorNpc, client.Character);

            exchange.Open();
        }