Jacob Schmidt 0858d9a173
All checks were successful
Build / Build (push) Successful in 28s
feat: Implement basic mission management framework
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.
2025-05-26 00:47:24 -05:00
..
2025-01-01 14:35:12 -06:00
2025-01-01 14:35:12 -06:00
2025-01-05 17:00:03 -06:00
2025-01-01 14:35:12 -06:00
2025-01-01 14:35:12 -06:00
2025-01-01 14:35:12 -06:00
2025-01-01 14:35:12 -06:00

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

  1. Attack Tasks (fnc_attack.sqf)

    • Eliminate specific targets
    • Time-based objectives
    • Target escape prevention
    • Success/failure conditions
    • Reward system integration
  2. Defend Tasks (fnc_defend.sqf)

    • Hold designated zones
    • Wave-based enemy attacks
    • Minimum force requirements
    • Time-based objectives
    • Zone control monitoring
  3. Hostage Tasks (fnc_hostage.sqf)

    • Rescue hostages
    • Extraction zone management
    • Hostage protection
    • Time-based objectives
    • CBRN zone support
  4. HVT Tasks (fnc_hvt.sqf)

    • Capture or eliminate HVTs
    • Extraction requirements
    • Target tracking
    • Success/failure conditions
    • Reward system integration
  5. Defuse Tasks (fnc_defuse.sqf)

    • Defuse explosive devices
    • Time-based objectives
    • Success/failure conditions
    • Reward system integration
    • Explosive entity management
  6. Delivery Tasks (fnc_delivery.sqf)

    • Transport objectives
    • Route management
    • Time-based delivery
    • Success/failure conditions
    • Reward system integration

Task Management

  1. Task Configuration

    • Unique task IDs
    • Success/failure limits
    • Time limits
    • Reward settings
    • Mission end conditions
  2. Reward System (fnc_handleTaskRewards.sqf)

    • Company funds
    • Reputation points
    • Equipment rewards
    • Supply rewards
    • Weapon rewards
    • Vehicle rewards
    • Special rewards
  3. Task Tracking

    • Progress monitoring
    • State management
    • Objective tracking
    • Time tracking
    • Success/failure detection

Module System

  1. Attack Module (fnc_attackModule.sqf)

    • Target configuration
    • Success/failure settings
    • Reward configuration
    • Time limit settings
    • Mission end conditions
  2. Defend Module (fnc_defendModule.sqf)

    • Zone configuration
    • Wave settings
    • Force requirements
    • Reward configuration
    • Mission end conditions
  3. Hostage Module (fnc_hostageModule.sqf)

    • Hostage configuration
    • Extraction settings
    • Time limit settings
    • Reward configuration
    • Mission end conditions
  4. HVT Module (fnc_hvtModule.sqf)

    • Target configuration
    • Extraction settings
    • Success/failure settings
    • Reward configuration
    • Mission end conditions
  5. 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 setup
  • XEH_postInit.sqf: Post-initialization tasks
  • XEH_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:

  1. Organization System

    • Fund management
    • Reputation tracking
    • Asset rewards
    • Transaction processing
    • Balance updates
  2. Notification System

    • Task assignments
    • Progress updates
    • Success/failure alerts
    • Reward notifications
    • Mission end notifications
  3. 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