# Forge Bank Module ## Overview The Bank module provides a comprehensive banking system for the Forge client. It includes features for managing player finances, transfers, and timesheet functionality, with a modern web-based interface for seamless user experience. ## Dependencies - forge_client_main ## Authors - J. Schmidt - Creedcoder - IDSolutions ## Features ### Banking System 1. **Bank Initialization** (`fnc_initBank.sqf`) - Initializes the banking system - Sets up necessary configurations and account structures - Configures player account data and balances - Handles server-side synchronization 2. **Bank Interface** (`fnc_openBank.sqf`) - Opens the banking user interface - Provides access to all banking functions - Modern web-based UI with real-time updates - Responsive design for optimal user experience 3. **Transaction Management** - **Deposit** (`fnc_deposit.sqf`) - Handles money deposits into bank accounts - Validates transaction amounts - Updates account balances in real-time - **Withdraw** (`fnc_withdraw.sqf`) - Manages money withdrawals from bank accounts - Ensures sufficient funds - Updates wallet balance immediately - **Transfer** (`fnc_transfer.sqf`) - Handles money transfers between players - Validates recipient and amount - Supports both account-to-account and wallet transfers - **Submit** (`fnc_submit.sqf`) - Processes transaction submissions - Handles timesheet submissions - Manages pending payments - **Refresh** (`fnc_refresh.sqf`) - Updates account information and balances - Synchronizes with server data - Updates UI elements ### User Interface The module includes a modern web-based interface with: 1. **Account Overview** - Current wallet balance - Bank account balance - Pending payments - Transaction history 2. **Transaction Features** - Transfer between wallet and account - Player-to-player transfers - Timesheet submission - Transaction history view 3. **UI Components** - Real-time balance updates - Transaction notifications - Input validation - Error handling - Responsive design ### Timesheet System 1. **Rating Integration** - Tracks player rating - Calculates pending payments - Automatic payment processing - Rating reset after submission 2. **Payment Processing** - Automatic calculation based on rating - Configurable payment multiplier - Pending payment tracking - Instant payment processing ## Event Handlers The module uses several event handlers for initialization and execution: - `XEH_preInit.sqf`: Pre-initialization setup - `XEH_postInit.sqf`: Post-initialization tasks - `XEH_preStart.sqf`: Pre-start configuration - `XEH_postInit_client.sqf`: Client-specific post-initialization - `XEH_preInit_server.sqf`: Server-specific pre-initialization ## Usage To use the bank module: 1. Ensure the module is properly loaded in your mission 2. Access the bank through the provided UI 3. Perform transactions using the appropriate functions: - Transfer money between wallet and account - Send money to other players - Submit timesheets for payment - View transaction history 4. Monitor account status and transactions in real-time ## Debugging Debug mode can be enabled by uncommenting the following in `script_component.hpp`: ```cpp #define DEBUG_MODE_FULL ``` ## Version Information Version information is managed through the main Forge client system configuration. ## Technical Details - Web-based interface using HTML5, CSS3, and JavaScript - Real-time data synchronization with server - Secure transaction processing - Client-server event system - Persistent data storage - Rating-based payment system - Transaction history tracking - Input validation and error handling - Responsive UI design - Cross-browser compatibility