
This commit introduces a basic framework for mission management. - Includes `CfgMissions.hpp` in `config.cpp`. - Adds `missionManager` to `XEH_PREP.hpp` for event handling preparation. - Adds a placeholder call to `FUNC(missionManager)` in `XEH_postInit.sqf` with a TODO comment for future implementation.
Forge Task Module
Overview
The Task module provides a comprehensive mission and objective system for the Forge client. It includes features for creating, managing, and tracking various types of tasks, with support for rewards, penalties, and mission completion conditions.
Dependencies
- forge_client_main
Authors
- J. Schmidt
- Creedcoder
- IDSolutions
Features
Task Types
-
Attack Tasks (
fnc_attack.sqf
)- Eliminate specific targets
- Time-based objectives
- Target escape prevention
- Success/failure conditions
- Reward system integration
-
Defend Tasks (
fnc_defend.sqf
)- Hold designated zones
- Wave-based enemy attacks
- Minimum force requirements
- Time-based objectives
- Zone control monitoring
-
Hostage Tasks (
fnc_hostage.sqf
)- Rescue hostages
- Extraction zone management
- Hostage protection
- Time-based objectives
- CBRN zone support
-
HVT Tasks (
fnc_hvt.sqf
)- Capture or eliminate HVTs
- Extraction requirements
- Target tracking
- Success/failure conditions
- Reward system integration
-
Defuse Tasks (
fnc_defuse.sqf
)- Defuse explosive devices
- Time-based objectives
- Success/failure conditions
- Reward system integration
- Explosive entity management
-
Delivery Tasks (
fnc_delivery.sqf
)- Transport objectives
- Route management
- Time-based delivery
- Success/failure conditions
- Reward system integration
Task Management
-
Task Configuration
- Unique task IDs
- Success/failure limits
- Time limits
- Reward settings
- Mission end conditions
-
Reward System (
fnc_handleTaskRewards.sqf
)- Company funds
- Reputation points
- Equipment rewards
- Supply rewards
- Weapon rewards
- Vehicle rewards
- Special rewards
-
Task Tracking
- Progress monitoring
- State management
- Objective tracking
- Time tracking
- Success/failure detection
Module System
-
Attack Module (
fnc_attackModule.sqf
)- Target configuration
- Success/failure settings
- Reward configuration
- Time limit settings
- Mission end conditions
-
Defend Module (
fnc_defendModule.sqf
)- Zone configuration
- Wave settings
- Force requirements
- Reward configuration
- Mission end conditions
-
Hostage Module (
fnc_hostageModule.sqf
)- Hostage configuration
- Extraction settings
- Time limit settings
- Reward configuration
- Mission end conditions
-
HVT Module (
fnc_hvtModule.sqf
)- Target configuration
- Extraction settings
- Success/failure settings
- Reward configuration
- Mission end conditions
-
Defuse Module (
fnc_defuseModule.sqf
)- Explosive configuration
- Time limit settings
- Success/failure settings
- Reward configuration
- Mission end conditions
Event Handlers
The module uses several event handlers for initialization and execution:
XEH_preInit.sqf
: Pre-initialization setupXEH_postInit.sqf
: Post-initialization tasksXEH_preStart.sqf
: Pre-start configuration
Usage
To use the task module:
// Create an attack task
["task_attack_1", 1, 2, 1500000, -75, 375, false, false] spawn forge_client_task_fnc_attack;
// Create a defend task
["task_defend_1", "defend_marker", 900, 500000, -100, 400, false, false, 3, 300, 1] spawn forge_client_task_fnc_defend;
// Create a hostage task
["task_hostage_1", 1, 2, "extract_marker", 1500000, -75, 500, [false, true], false, false] spawn forge_client_task_fnc_hostage;
// Create an HVT task
["task_hvt_1", 1, 2, "extract_marker", 1500000, -75, 500, false, false] spawn forge_client_task_fnc_hvt;
Integration
The task module integrates with other Forge client systems:
-
Organization System
- Fund management
- Reputation tracking
- Asset rewards
- Transaction processing
- Balance updates
-
Notification System
- Task assignments
- Progress updates
- Success/failure alerts
- Reward notifications
- Mission end notifications
-
Mission System
- Mission success/failure
- End conditions
- State management
- Progress tracking
- Objective management
Debugging
Debug mode can be enabled by uncommenting the following in script_component.hpp
:
#define DEBUG_MODE_FULL
Version Information
Version information is managed through the main Forge client system configuration.
Technical Details
- Real-time task monitoring
- Multi-objective support
- Reward system integration
- State management
- Progress tracking
- Time management
- Cross-module integration
- Event system integration
- Notification handling
- Error management
- Resource management
- Mission control
- Objective validation