
All checks were successful
Build / Build (push) Successful in 26s
This commit refactors how organization funds and reputation are handled, updates task completion logic to use the new organization functions, and modifies player saving to include organization data. Additionally, it introduces string serialization/deserialization and fixes a player save loop. * **Organization Funds and Reputation:** Replaces direct server calls for handling funds and reputation with calls to the new organization functions (`EFUNC(org,addFunds)` and `EFUNC(org,addReputation)`). This centralizes fund and reputation management within the organization store. * **Task Completion Logic:** Updates task completion functions (`fnc_destroy.sqf`, `fnc_attack.sqf`, `fnc_hostage.sqf`, `fnc_hvt.sqf`, `fnc_defuse.sqf`) to use the new organization functions for adding funds and reputation upon task success or failure. Also adds notifications to inform the player of reputation and fund changes. * **Player Saving:** Modifies the player saving function (`fnc_playerDBSave.sqf`) to include the player's organization ID in the saved data. * **String Serialization/Deserialization:** Adds `serializeString` and `deserializeString` PREP macros to `XEH_PREP.hpp` and uses them in `fnc_handleOrgLoad.sqf` and `fnc_create.sqf` to handle special characters in organization and member names. * **Player Save Loop Fix:** Removes unnecessary brackets from the `call FUNC(playerDBSave)` in `fnc_playerSaveLoop.sqf`. * **Organization Purchase Verification:** Adds organization ownership verification to `fnc_handlePurchase.sqf` to ensure only the owner can make purchases using organization funds. * **Player Initialization:** Updates `fnc_initPlayer.sqf` to retrieve and set the player's organization upon initialization.
4.4 KiB
4.4 KiB
Player Organization Module
Overview
The Player Organization Module provides a comprehensive system for managing player-created organizations in Arma 3. This module enables players to create, join, and manage organizations with features including member management, asset tracking, financial operations, and reputation systems.
Features
- Organization Creation & Management: Create and disband organizations with customizable names
- Member Management: Add, remove, and manage organization members with different roles
- Asset Tracking: Register and manage organization-owned assets (vehicles, buildings, etc.)
- Financial System: Track organization funds with deposit and withdrawal capabilities
- Reputation System: Manage organization reputation that can influence gameplay mechanics
- Database Integration: Persistent storage using ArmaDragonflyClient for reliable data management
- User-Friendly Notifications: Visual feedback for all organization operations
Usage
Creating an Organization
// Create a new organization with default funds and reputation
[getPlayerUID player, "My Organization"] call forge_client_org_fnc_create;
// Create an organization with custom initial funds and reputation
[getPlayerUID player, "Elite Squad", 5000, 100] call forge_client_org_fnc_create;
Managing Members
// Add a member to your organization
["76561198012345678", "John Doe"] call forge_client_org_fnc_addMember;
// Remove a member from your organization
["76561198012345678"] call forge_client_org_fnc_removeMember;
// Leave an organization (for members)
[] call forge_client_org_fnc_leave;
Managing Assets
// Add a vehicle to organization assets
["vehicle", "B_MRAP_01_F"] call forge_client_org_fnc_addAsset;
// Add a vehicle with custom properties
private _properties = createHashMap;
_properties set ["color", "red"];
_properties set ["plate", "ORG-001"];
["vehicle", "B_MRAP_01_F", _properties] call forge_client_org_fnc_addAsset;
// Remove an asset from the organization
["vehicle", "B_MRAP_01_F_1234567890"] call forge_client_org_fnc_removeAsset;
Financial Operations
// Add funds to organization account
[1000] call forge_client_org_fnc_addFunds;
// Remove funds from organization account
[-500] call forge_client_org_fnc_addFunds;
Reputation Management
// Increase organization reputation
[10] call forge_client_org_fnc_addReputation;
// Decrease organization reputation
[-5] call forge_client_org_fnc_addReputation;
Disbanding an Organization
// Permanently delete the organization (owner only)
[] call forge_client_org_fnc_disband;
Technical Architecture
The module is built around a central organization store interface that provides a clean API for all organization operations. This interface handles data validation, database persistence, and user feedback.
Core Components
- Organization Store: Central interface for all organization operations
- Database Integration: Persistent storage using ArmaDragonflyClient
- User Notifications: Visual feedback system for all operations
- Data Validation: Comprehensive input validation to ensure data integrity
Data Structure
Organizations are stored as structured hashmaps with the following key components:
- Basic Information: ID, name, owner, creation date
- Members: List of members with roles and join dates
- Assets: Categorized inventory of organization-owned assets
- Finances: Current funds and transaction history
- Reputation: Current reputation score and history
- Logs: Comprehensive activity logs for auditing
Integration with Other Systems
The organization module is designed to integrate with other game systems:
- Vehicle Garage: Register organization-owned vehicles
- Property System: Manage organization-owned buildings and territories
- Mission System: Organization-specific missions and objectives
- Economy System: Organization financial operations and investments
Developer Notes
- All organization operations are performed through the organization store interface
- The store is initialized automatically when needed via
verifyOrgStore
- Database operations are asynchronous and use callback functions
- User feedback is provided through the notification system
- Error handling is comprehensive with appropriate user feedback
Developed by J. Schmidt