示例#1
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            int val = (info.ButtonID - 1);

            if (val < 0)
            {
                CloseChildren();
                _vendor.DisposeTrade(_client, false);
                return;
            }

            int type  = (val % 10);
            int index = (val / 10);

            /** known types:
             * 0 = page switching (index 0-1 for vendor paging, 2-3 for client paging)
             * 1 = vendor item details (index is index in array)
             * 2 = client item details (index is index in array)
             **/
            switch (type)
            {
            case 0:
            {
                switch (index)
                {
                case 0:
                {
                    _client.SendGump(new BarterGump(_vendor, _client, (byte)(_vendorPage - 1), _clientPage));
                    break;
                }

                case 1:
                {
                    _client.SendGump(new BarterGump(_vendor, _client, (byte)(_vendorPage + 1), _clientPage));
                    break;
                }

                case 2:
                {
                    _client.SendGump(new BarterGump(_vendor, _client, _vendorPage, (byte)(_clientPage - 1)));
                    break;
                }

                case 3:
                {
                    _client.SendGump(new BarterGump(_vendor, _client, _vendorPage, (byte)(_clientPage + 1)));
                    break;
                }
                }
                break;
            }

            case 1:
            case 2:
            {
                _client.CloseGump(typeof(BarterDetailGump));
                _client.SendGump(this);

                Gump child = new BarterDetailGump(this, (type == 1 ? _vendorItems[index] : _clientItems[index]), (type == 1));

                if (_client.SendGump(child))
                {
                    AddChild(child);
                }
                break;
            }
            }
        }
示例#2
0
		public override void OnResponse( NetState sender, RelayInfo info )
		{
			int val = (info.ButtonID - 1);

			if( val < 0 )
			{
				CloseChildren();
				_vendor.DisposeTrade( _client, false );
				return;
			}

			int type = (val % 10);
			int index = (val / 10);

			/** known types:
			 * 0 = page switching (index 0-1 for vendor paging, 2-3 for client paging)
			 * 1 = vendor item details (index is index in array)
			 * 2 = client item details (index is index in array)
			 **/
			switch( type )
			{
				case 0:
					{
						switch( index )
						{
							case 0:
								{
									_client.SendGump( new BarterGump( _vendor, _client, (byte)(_vendorPage - 1), _clientPage ) );
									break;
								}
							case 1:
								{
									_client.SendGump( new BarterGump( _vendor, _client, (byte)(_vendorPage + 1), _clientPage ) );
									break;
								}
							case 2:
								{
									_client.SendGump( new BarterGump( _vendor, _client, _vendorPage, (byte)(_clientPage - 1) ) );
									break;
								}
							case 3:
								{
									_client.SendGump( new BarterGump( _vendor, _client, _vendorPage, (byte)(_clientPage + 1) ) );
									break;
								}
						}
						break;
					}
				case 1:
				case 2:
					{
						_client.CloseGump( typeof( BarterDetailGump ) );
						_client.SendGump( this );

						Gump child = new BarterDetailGump( this, (type == 1 ? _vendorItems[index] : _clientItems[index]), (type == 1) );

						if( _client.SendGump( child ) )
							AddChild( child );
						break;
					}
			}
		}