Private Chat & MarketShop Viewer
Ultimate Marketplace with Integrated Messaging System
Tutorial Video
What is Private Chat & MarketShop Viewer?
Private Chat & MarketShop Viewer is a view-only marketplace platform where players can list items with prices for display, browse available items with advanced filtering and sorting, and negotiate trades through an integrated private messaging system. No automatic transactions - all trading happens manually in-game after chat negotiation, ensuring safe player-to-player commerce!
How It Works
View-Only Marketplace
- Players list items from inventory with display prices (no automatic selling)
- Browse market with 3-tab interface: My Shop, Browse Market, Messages
- Advanced filtering: All items / specific currency types (DG currency filter shown)
- Sorting options: Name, Price, Date Added for easy navigation
- Search bar for quick item lookup
Integrated Private Chat
- "Send Message" button on every listed item to contact seller
- Messages tab shows all conversations in organized list
- Real-time message delivery and notification
- Chat history persists across sessions
- Sellers receive instant notifications of buyer interest
Manual Trading Process
- Buyer and seller negotiate via private messages
- Agree on final price and meeting location
- Meet in-game and complete trade manually
- Safe trading - no automated transactions or scams
- Full player control over every trade decision
Database Architecture
🛒 _MarketShop Table
Purpose: Stores all listed items for marketplace display
Key Fields:
- ItemID: Unique listing identifier (PK, auto-increment)
- SellerJID: Seller's account identifier (int)
- SellerName: Seller character name (REQUIRED - nvarchar(64))
- ItemSlot: Inventory slot number (tinyint)
- RefObjID: Item reference ID from _RefObjCommon
- ItemName: Display item name (nvarchar(128))
- OptLevel: Item enhancement level (0-15)
- Quantity: Item stack count (smallint)
- MaxStack: Maximum stack size (smallint)
- Description: Seller's custom description (nvarchar(256))
- Degree: Item degree/rarity (tinyint)
- DateAdded: Listing timestamp (datetime)
- 11 Price Columns: X9Coin_Price, ArenaCoin_Price, CopperCoin_Price, IronCoin_Price, SilverCoin_Price, GoldCoin_Price, Gold_Price, Silk_Price, GiftSilk_Price, PremiumSilk_Price, HonorPoint_Price (all bigint, FOR DISPLAY ONLY)
Indexes:
- IX_MarketShop_Browse: DateAdded DESC (newest first browsing)
- IX_MarketShop_Seller: SellerJID ASC (seller's items lookup)
💰 _BankShop Table
Purpose: Stores player custom currency balances (5 coin types)
Key Fields:
- ID: Record identifier (PK, auto-increment)
- CharID: Character ID (UNIQUE constraint)
- CharName: Character name (UNIQUE constraint)
- Coin1-Coin5: Five customizable currency balances (bigint)
- LastUpdated: Last modification timestamp
📝 _BankShop_CoinNames Table
Purpose: Stores custom names for the 5 coin types
Key Fields:
- CoinIndex: Coin number 1-5 (PK)
- CoinName: Custom display name (nvarchar(64))
- LastUpdated: Modification timestamp
📜 _BankShop_TransferLog Table
Purpose: Logs all coin transfers between players
Key Fields:
- ID: Log entry ID (PK, auto-increment)
- SenderCharID/SenderName: Transfer sender
- ReceiverCharID/ReceiverName: Transfer recipient
- CoinType: Which coin (1-5)
- Amount: Transfer amount (bigint)
- TransferDate: Transaction timestamp
📊 _BankShopHistory Table
Purpose: Transaction history for coin conversions
Key Fields:
- ID: History entry ID (PK, auto-increment)
- CharID/CharName: Player who performed conversion
- SourceCoinType/SourceAmount: Source currency and amount
- TargetCoinType/TargetAmount: Target currency and amount
- ConversionRate: Exchange rate used
- TransactionDate: Conversion timestamp
Key Features
Advanced Marketplace Browsing
- 3-Tab Interface: My Shop (your listings), Browse Market (all items), Messages (chat)
- Currency Filter: Filter by payment type - All / All DG / specific currencies
- Sort Options: Sort by Name, Price, Date Added for customized browsing
- Search Function: Quick text search to find specific items
- Item Display: Shows item icon, name, quantity, seller name, and all active prices
- Pagination: Navigate large listings with Previous/Next buttons
Integrated Private Messaging
- Send Message Button: Direct contact seller from any listing
- Messages Tab: Centralized inbox for all conversations
- Chat History: Full conversation history preserved
- Real-Time Delivery: Instant message notification to recipient
- Seller Context: Messages linked to specific item listings
- Negotiation Tool: Perfect for price haggling and trade arrangements
View-Only Safety System
- No Auto-Transactions: Prices are display-only, no automatic buying/selling
- Manual Trading: All trades happen face-to-face in-game
- Scam Prevention: Players verify items before completing trade
- Price Negotiation: Flexible pricing through chat negotiation
- Player Control: Full control over every transaction decision
Admin Management Panel
- X9 Filter BankShop Tab: Complete management interface for marketplace
- 4-Table View: Players, CoinNames, TransferLog, History with table switcher
- Player Currency Management: Edit Coin1-Coin5 balances directly
- Custom Coin Names: Rename coins to match server theme
- Transfer Monitoring: View all player-to-player coin transfers
- Transaction History: Track all coin conversions and exchanges
- Auto-Save System: Changes save automatically on field blur
Multi-Currency Price Display
Each item listing supports 11 different currency types for price display:
Standard Currencies (6 Types)
- X9 Coins: Custom server currency (X9Coin_Price)
- Arena Coins: PVP currency (ArenaCoin_Price)
- Gold: In-game currency (Gold_Price)
- Silk: Premium currency (Silk_Price)
- Gift Silk: Gifted silk (GiftSilk_Price)
- Premium Silk: Premium silk points (PremiumSilk_Price)
Custom Coin System (5 Types)
- Copper Coins: Customizable Coin1 (CopperCoin_Price)
- Iron Coins: Customizable Coin2 (IronCoin_Price)
- Silver Coins: Customizable Coin3 (SilverCoin_Price)
- Gold Coins: Customizable Coin4 (GoldCoin_Price)
- Honor Points: Ranking currency (HonorPoint_Price)
Note: Coin names are customizable via _BankShop_CoinNames table - rename to match your server theme!
Display-Only Pricing
- Sellers can set prices in any combination of currencies
- Buyers see all available payment options
- Prices are for reference only - actual payment negotiated via chat
- Flexible pricing allows sellers to accept multiple currency types
- Filter system lets buyers find items accepting their preferred currency
Professional Tips
For Sellers
- Price Competitively: Check Browse Market to see what others are charging
- Multiple Currencies: Accept 2-3 currency types for broader buyer appeal
- Accurate Descriptions: Add detailed descriptions to attract serious buyers
- Respond Quickly: Check Messages tab regularly for buyer inquiries
- Be Flexible: Negotiate prices via chat - rigid pricing reduces sales
- Update Regularly: Remove sold items to keep your shop current
For Buyers
- Use Filters: Filter by currency type to find items you can afford
- Sort by Price: Find the best deals by sorting low to high
- Send Messages: Don't hesitate to message sellers with price questions
- Negotiate: Listed prices are starting points - make counter offers
- Verify Items: Always check item details before agreeing to trade
- Meet Safely: Arrange meeting in safe zones to complete trades
For Administrators
- Monitor Activity: Check TransferLog for suspicious coin transfers
- Custom Coin Names: Rename coins to match server lore and theme
- Balance Management: Grant coins to players as event rewards
- History Tracking: Use _BankShopHistory to audit transactions
- Player Support: Use BankShop panel to resolve currency issues
- Regular Cleanup: Remove old market listings periodically
Practical Example
Scenario: Buyer finds HP Recovery Potion +8 and wants to buy it
- Browse Market: Open Market Shop, click "Browse Market" tab
- Apply Filter: Select "All DG" currency filter to see DG-priced items
- Find Item: Scroll through listings, see "HP Recovery potion (X-large) +8" by seller "dccccccc"
- Check Price: Item shows "DG 0" (free or negotiable price)
- View Details: Click "View" button to see full item information
- Send Message: Click "Send Message" button to contact seller
- Negotiate: Chat with seller about price and meeting location
- Agree on Terms: Settle on final price and arrange meeting
- Complete Trade: Meet in-game, verify item, trade manually
- Safe Transaction: Both parties happy - no automatic scams possible!
Technical Implementation
MarketShop Table Structure
Design Philosophy: View-Only System
- SellerName is REQUIRED (NOT NULL) - ensures every listing has contact info
- 11 price columns all bigint to support large values
- NULL prices allowed - sellers can list items without prices
- DateAdded indexed DESC for newest-first browsing performance
- SellerJID indexed for fast "My Shop" lookups
- No transaction logic - pure display table
BankShop Admin Panel
File: MainWindow.BankShop.cs
- 4-table management: Players, CoinNames, TransferLog, History
- ComboBox table switcher with dynamic form visibility
- Auto-save on field blur (_isLoadingBankShopSelection flag prevents loops)
- Formatted list display with proper column spacing
- Regex parsing for row selection and ID extraction
- SqlDataAdapter with parameterized queries for safety
Client-Side Features
- 3-Tab Navigation: My Shop / Browse Market / Messages with state management
- Filter System: Currency-based filtering with dropdown selection
- Sort Logic: Client-side or server-side sorting by multiple criteria
- Search Function: Text-based item name search with instant results
- Pagination: Page counter and Previous/Next navigation
- Item Cards: Rich item display with icon, name, quantity, seller, prices
Private Messaging Integration
- "Send Message" button triggers messaging dialog with seller name pre-filled
- Messages stored with sender/receiver references and timestamps
- Messages tab polls or receives real-time notifications
- Conversation threading keeps related messages together
- Message history persists in database for retrieval
Summary
Private Chat & MarketShop Viewer creates a safe marketplace ecosystem with view-only item listings, integrated private messaging for negotiation, and manual in-game trading - all backed by a comprehensive admin panel with 5 custom currencies and full transaction logging!
Core Benefits
View-only marketplace
Integrated private chat
Safe manual trading
Browse items with 11 currency types, negotiate via private messages, trade safely in-game - complete marketplace solution!
by X9 Filter New Feature!
Enhancing your Silkroad Online experience
0 Comments