Jump to content

Fulcrum Mission System v2.1a


horbin

Recommended Posts

Hi dude, been playing against the ai tonight and noticed a few things. The test mission (the one with the reinforcements) I found that the vehicles from the convoy don't clear up at the end of the mission so you end up with a group of trucks (and soldiers) at the end point milling around (I had 4 pickups and 2 of the larger trucks by server restart).

 

Also, is there a way to make the missions have say 5-10 minutes from when you complete it to it starting again? We were in the middle of looting the crate when they all respawned around us and blew our heads off :D

 

I have to say though we've been having great fun so far :D

Link to comment
Share on other sites

second,

  Take a look at the Basic\ThemeData.sqf for some options.

    You can change the respawn delay between missions near the top.  Setting it to 600 will give you 10 minutes.

 

Also, in the actual mission file 'TestMission01.sqf'  there are two timers.

 

changing the Win delay will control how long after success before cleanup occurs (loot boxes remain till server reset!)

 

 

Thanks for the info on the vehicles. Next update will fix that part. Several vehicle fixes coming with this evening's update.

Link to comment
Share on other sites

v .92 posted.  AI can now radio in reinforcements. Chance and type configurable by mission.  
Urban area spawning now available. Simply place a town name in as one of the spawn locations, or assign it to a mission, or have one picked randomly!
 
* Mission File format change:
modified exec line at bottom if each mission. If you made any of your own missions, make sure you modify the line near the bottom to match the following:
_msnStatus = [_initData, _this select 0] call MissionInit;
 
* New mission Trigger: "Reinforce"
  ["Reinforce", chance, <Mission File Name>]
  Example: ["Reinforce", 100, "Reinforcements"]
  Add this trigger to the 'Win' section of a mission.sqf to enable the AI's call for help to be responded too!
  This trigger does not impact 'win' conditions for the mission.
  "Reinforce" - keyword used by Logic Bomb
  chance - percentage chance of BaseOps providing reinforcements
  <Mission File Name> - name of the file in the mission's theme folder to execute. (do not include the .sqf)
  
  See the Reinforcements.sqf as an example.  Additional units, convoys, vehicles, even loot can be added to the reinforcement mission.
  For proper mission dynamics, do not add other triggers to the reinforcement.sqf mission.
  
* Safe vehicle Spawning:
Vehicles now attempt to locate a spot that is 5m radius clear of objects before spawning. 
If a position is not found within 100m of the creation point, the vehicle will spawn on the nearest road.
    (FuMS does not support boats or heli's yet!)
 
* Urban areas for Missions:
 Each ThemeData.sqf now includes options to permit missions to be spawned in Villages, Cities, or Capital Cities.
See the 'Basic\ThemeData.sqf' for details.
This functionality will work on all maps, no extra work required. You want a Theme (mission set) that only spawns in villages, or only specific towns or cities?
The capability is now there, without having to look up points. Just specify the town names, or use keywords: "Villages", "Cities", "Capitals"!
 
*Simple Epoch Missions:
Mission files have been changed and theme enabled with Radio Chatter support
SEM AI uses Radio channel #1 "EpochRadio1" by default. 
(oh and SEM is not so 'simple' any more =) )
Link to comment
Share on other sites

This is the BaseServer.sqf I'm using for Chernarus in case anyone else wants it :)

 

//BaseServer.sqf
// Horbin
// 1/10/25
// Inputs: None
// Outputs: Fulcrum Mission data specific for the map being used
// Data specifc to your server's map.
// Chernarus
ServerData =
[
    [
        [6798, 8603, 0],    // Map Center
        7000                 // Map Range in meters
    ],
    [  
        // Areas to be excluded from Global Random generation of mission spawn points
        // Points listed are for the upper left and lower right corners of a box.
        [[4400,4400,0],[4700,4700,0]], // South West
        [[12000,5000,0],[12200,5200,0]], //  South East
        [[10500,9300,0],[10700,9600,0]],   // North East
        [[1010,2010,0],[1050,2080,0]]   //Cloning Lab
    ],
    [
        // default positions to use if locations being randomly generated
        // These positions will be used if a random safe location is not found.
        // Note: The below locations are for use by BIS_fnc_findSafePos !!!
        //  If you have specific locations you want to use for your mission set, place those
        //  locations in the specific themedata.sqf.
        
        
    ],
    [
        // ActiveThemes
        // A folder matching the names below needs to exist in the ..\Encounters folder.
        // use this block to easily turn off/on your various mission sets.
        //"Test",
        "Basic",
   "SEM"
        //"CloneHunters"
    ],
    [  // Event and AI Radio messsage behavior
        true, // EnableRadioChatterSystem: turns on the system, allowing below options to function
        true, // EnableRadioAudio: turns on 'audio' effects for radio chatter
        true, // RadioRequired: if false, messages are heard without a radio on the player's belt.
        false, // RadioFollowTheme: Conforms with Theme radio channel choices. False:any radio works for all channels.
        true, 800 // EnableAIChatter: enables random radio chatter between AI when players get within the specified range (meters) as default.
              // NOTE: Theme 'Radio Range' will override this setting.
    ]
];
 

Link to comment
Share on other sites

Would it be possible to specify exact spawn points for the convoy vehicles, rather than an offset based on the location of the mission?

 

I'd like them to always spawn in the same place so that I can create a base for them to emerge from and return to afterwards. Once you get the vehicle pathing fixed to follow roads I will manually place the mission locations to be near roads so that the convoys can bring the reinforcements properly :D

 

I've made the testmission spawn at the end of the NWAF at the moment and it's working really well, I love how the AI react :)

Link to comment
Share on other sites

second,

    Check the github distro:

 

Look under HC\Encounters\Function\Xpos.sqf

 

download this file and replace the old one on your system.

 

Now to force a mission to use a 'fixed' position instead of a relative offset, simply make the location a 3d array.

 

For example:

This spawns a group of file rifleman 200m[200,0] east of the encounter that that walk to the encounter [0,0] then begin a 70m patrol pattern.

[["RESISTANCE","COMBAT","RED","LINE"],[[5,"Rifleman"]],["BoxPatrol",[200,0],[0,0],[70] ]],

 

Change the [200,0] to a 3d array such as [21520,11491.9,0].

Now the group always spawns at that point and will begin a march toward the encounter center, no matter where it is!

[["RESISTANCE","COMBAT","RED","LINE"],[[5,"Rifleman"]],["BoxPatrol",[21520,11491.9,0],[0,0],[70] ]],

 

This update will work with any offset position in the current mission config files.

Hope this is what you are looking for. More documentation on this, and some of the other stuff will come with the next update, but I knew you where looking for this functionality specifically, so here ya go.

Link to comment
Share on other sites

second,

   back to your issue with loot in the SEM missions. I copied the loot from DrSudo who built those out. There are some non-epoch loot items in those boxes. Example: rifles with scopes already attached.

 

You can go into the SEM folder and edit the LootData.sqf and remove the non-epoch stuff and replace it if you want.  There are many global item arrays already defined in the GlobalConfig/BaseLoot.sqf that are all EPOCH specific if that helps.

 

Note: see GlobalConfig/BaseSoldier.sqf for some other weapon definitions.

Link to comment
Share on other sites

second,

    Check the github distro:

 

Look under HC\Encounters\Function\Xpos.sqf

 

download this file and replace the old one on your system.

 

Now to force a mission to use a 'fixed' position instead of a relative offset, simply make the location a 3d array.

 

For example:

This spawns a group of file rifleman 200m[200,0] east of the encounter that that walk to the encounter [0,0] then begin a 70m patrol pattern.

[["RESISTANCE","COMBAT","RED","LINE"],[[5,"Rifleman"]],["BoxPatrol",[200,0],[0,0],[70] ]],

 

Change the [200,0] to a 3d array such as [21520,11491.9,0].

Now the group always spawns at that point and will begin a march toward the encounter center, no matter where it is!

[["RESISTANCE","COMBAT","RED","LINE"],[[5,"Rifleman"]],["BoxPatrol",[21520,11491.9,0],[0,0],[70] ]],

 

This update will work with any offset position in the current mission config files.

Hope this is what you are looking for. More documentation on this, and some of the other stuff will come with the next update, but I knew you where looking for this functionality specifically, so here ya go.

 

Great work dude , thanks a lot :)

Link to comment
Share on other sites

second,

   back to your issue with loot in the SEM missions. I copied the loot from DrSudo who built those out. There are some non-epoch loot items in those boxes. Example: rifles with scopes already attached.

 

You can go into the SEM folder and edit the LootData.sqf and remove the non-epoch stuff and replace it if you want.  There are many global item arrays already defined in the GlobalConfig/BaseLoot.sqf that are all EPOCH specific if that helps.

 

Note: see GlobalConfig/BaseSoldier.sqf for some other weapon definitions.

 

No worries, I'll go through the loot and ensure it is all Epoch specific :D

Link to comment
Share on other sites

* Convoy.sqf   Creates Transport Unload waypoint and travels to the point and unloads its cargo units.   Cargo units should be a separately crated group which is placed in the vehicle as cargo.  

syntax: _wp = [ group, position, speed, FlagRTB, FlagroadsOnly, Flagdespawn] call Convoy;  

- group : collection of units that will utilze this routine. Placing a group of 4 drivers into vehicles will create convoy type behaviour.  

- position : location where units are to be dropped off.  

- speed : "LIMITED", "NORMAL", "FULL" (full will not maintain formation)  

- FlagRTB : true=vehicle group will return to its starting position after troops dropped off.  

- FlagroadsOnly : true=pathing will take roads when able.   - Flagdespawn : true= vehicle and occupants will despawn after returning to its spawn point.   - _wp : either the RTB or drop off waypoing depending on the FlagRTB status.  

Note: If FlagRTB is true, once the unit group moves > 100m from its starting position a timer will start.   If the group then spends more than 30seconds within 50m of its spawn point the group and vehicles they are in will be deleted.   ie they went home!  

 

Spec on the new Convoy.sqf once I get done testing it.

Link to comment
Share on other sites

Hi Horbin,  I'm having an issue with the test mission in that sometimes the last few AI disappear off in to buildings and hide (with some of the old Arma 2 buildings in Chernarus they go inside and can't be seen).

 

It's resulting in a few times being unable to complete the mission because you can't find them.

 

Is there a way of making the mission finish when a percentage of the AI have been killed? (say 90% for example).

 

On a side note we had an epic battle in Vybor last night which resulted in over 90 AI being spawned overall :)

Link to comment
Share on other sites

 

Theme Town Raid

This theme creates an encounter in a randomly selected city or 
 
capital. No special configuration required. Theme does the work of 
 
locating the towns.
 
Upon start, 4 vehicles with a group of 6 AI are spawned on roads 
 
.5km on the outskirts on the town.  Upon arrival in town, the 
 
vehicles unload the AI and exit town, despawning when they reach 
 
their starting point.
AI in town will begin a search of all buildings throughout the town. 
 
Operating independently as they search, but working as one of 4 
 
groups when/if engaged.
40 minutes into the mission, another 4 vehicles will spawn on the 
 
outskirts of town (~.5km away). These 4 vehicles will drive into 
 
town and evacuate the AI.
As the vehicles fill up, they will exit down and despawn when 
 
reaching their starting location.
 
Win State:
Players Kill at least 20 AI
 
Lose State:
50 minute time out.
 
Loot: Large box spawns in the center of town.
Recycle Time: 60 seconds
RadioChatter: ALL - players hear comms even without radio.
 
See \Encoutners\TownRaid folder to modify.
 

Town AI theme added in version .95

Link to comment
Share on other sites

Also, added documentation on how the mission triggers and AI logic are applied to make it easier for folks to customize their own missions with more personalized victory conditions.

 

 

Triggers:

This file contains details on the various FuMS 'Triggers' that can be defined within each mission. FuMS triggers should not 
 
be confused with ARMA3 triggers. Though FuMS does use some ARMA3 triggers, many of the triggers within FuMS behave 
 
differently than a standard ARMA3 trigger.
 
Every mission has 5 states in which 'triggers' can be defined:
WIN, LOSE, Phase01, Phase02, Phase03.
In order for a state to be considered 'complete', all triggers defined in that state must return 'true'. Once all triggers in 
 
a state return true, the applicable mission result occurs.
 
Phase01, 02, and 03 when complete will launch a follow on mission as defined within the 'parent' mission file.  While the 
 
child mission executes, all triggers of the 'parent' mission are suspended.
 
Special case: 
["NO TRIGGERS"] - only define in the NO TRIGGERS area!!!
If this is defined in the area after Phase03 in the mission file, all triggers, win/lose conditions are ignored.  When the 
 
mission containing the ["NO TRIGGERS"] is executed it will simply spawn the objects defined within its mission file.  Use of 
 
the ["NO TRIGGERS"] option allows for creation of additional AI, loot, and buildings for a mission, without suspending the 
 
triggers of the 'parent' mission.
 
["Reinforce",chance,"<fileName>"] - only define in the WIN state!!
If this is defined in the WIN state, then when a unit in this mission calls for help, there is a 'chance' percent that the 
 
Theme's base operations will respond with reinforcements.  If base ops does send in reinforcements it will occur through the 
 
execution of the mission file named <fileName>.  <fileName> is a .sqf file and needs to be in the Theme's folder. The default 
 
reinforcement file included is Reinforcements.sqf.
Note: The reinforcement file does not require the use of the ["NO TRIGGERS"] option, but if it is desired to not suspend the 
 
parent triggers, ensure that NO TRIGGERS is commented out of the reinforecment mission.
Note: Reinforce trigger is not considered in the WIN conditions of the WIN state.
 
["LowUnitCount", side, numAI, radius, offset]
["HighUnitCount", side, numAI, radius, ofset]
["ProxPlayer",offset, range, numPlayers]
["Detected", group#, vehicle#]
["BodyCount", numAI] 
["Timer", seconds]
 
 
Defined Trigges
["LowUnitCount", side, numAI, radius, offset]
-side: "EAST","WEST","GUER","CIV","LOGIC","ANY"
-numAI: number of AI of type 'side' below which make the trigger TRUE.
-radius: distance the trigger searches when counting AI
-offset: centroid of the trigger. Supports 2D offset, or 3D map absolute positions.
Behaviour:  When the number of units on a 'side' drop below 'numAI' within 'radius' of 'offset' the trigger registers TRUE.
 
["HighUnitCount", side, numAI, radius, ofset]
Behaviour: When the number of units on a 'side' exceeds 'numAI' within 'radius' of 'offset' the trigger registers TRUE.
 
["ProxPlayer",offset, range, numPlayers]
-offset: centroid of the trigger. Supports 2D offset, or 3D map absolute positions.
-range: range from 'offset' the count is counducted.
-numPlayers:  the number of 'players' the number of players to count.
Behaviour: When 'numPlayers' are detected within 'range' of 'offset' the trigger registers TRUE.
 
["Detected", group#, vehicle#]
-group# : group that is performing the 'detection' check. 1st group is indexed at 0.
-vehicle#: vehicle driver that is performing the 'detection' check. 1st driver is indexed at 0.
Behaviour: If the indicated group or vehicle is actively detecting a player the trigger will register TRUE.
A value of -1 will turn off the check for that type. 
A value of 99 will run the check for all of that type.
Ex: ["Detected", -1, 99] will run the check for all vehicles, and no groups.
Ex: ["Detected", 2 , 3] will run the check for the 3rd group in the mission file, and the 4th vehicle crated.
Note: Unoccupied vehicles count in this check if you are trying to determine a vehicle number in a 2nd convoy group.
Note: AI spawned via reinforcements or phase changes will not register this trigger.
 
["BodyCount", numAI] 
-numAI: number of AI, reguardless of side that are killed by players during mission execution.
Behaviour: If the number of AI killed during mission execution exceeds 'numAI' the trigger will register TRUE.
Note: AI from 'reinforcements' and phased missions will count towards this total.
Note: AI killed by player vehicles will not count.
 
["Timer", seconds]
-seconds: time in seconds
Behaviour: After 'seconds' of time elapse from mission start the trigger will register TRUE.
 
Link to comment
Share on other sites

AI_Logic

 

This file contains details details on the AI patrol behaviours available in FuMS.  Parameters and syntax listed are what is 

 
proper for use within mission files, when building or modifying a mission. The options shown in this file do not describe the 
 
actual script's paramaters. Refer to the specific .sqf script for those details. This document is available as a quick 
 
reference for mission editors and designers.
 
Logic inherrient to all AI created by FuMS.
*AI_Killed: RadioChat message on death. AI killed by vehicles or other AI have all their gear destroyed.
*AI_Evac: If unit is within the call radius ~200m's of a unit conducting an XFILL operation, the unit will proceed to the 
 
XFILL'ing vehicle and board it (stopping all other 'patrol behaviours').  At this point the unit will remain in the vehicle 
 
until the vehicle reaches its destination. At this point the unit will despawn.  If the vehicle is disabled, or its driver 
 
killed, the unit will continue on foot to the vehicle's destination and then despawn.
*DriverLogic: If a unit in a driver seat detects its vehicle's position does not change by more than 2m for more than 150 
 
seconds, the vehicle will be deleted, under the assumption it is stuck. If the vehicle conducting an "XFILL" this behaviour 
 
is suspended while other units approach and board.
 
["BUILDINGS", [spawnloc], [actionloc], [duration, range]]
["EXPLORE   ",[spawnloc], [actionloc], [radius]]
["BOXPATROL", [spawnloc], [actionloc], [radius]]
["CONVOY",    [spawnloc], [actionloc], [speed, FlagRTB, FlagRoads, FlagDespawn, convoyType]]
["SENTRY",    [spawnloc], [actionloc], [radius]]
 
"EXPLORE"
syntax: ["AREAPATROL",[spawnloc], [actionloc], [radius]]
-spawnloc: offset or specific map location group will spawn.
-actionloc: offset or specific map location at which group will begin their patrol.
-radius: size of the area, in meters, for the group to patrol.
Behaviour: 12 evenly spaced waypoints are generated at a 'radius' to 'actionloc'.  These waypoints are then randomized and 
 
the group set to start patrolling these waypoints. Group will recycle to the 1st waypoint when the 12th waypoint is reached.
 
"BOXPATROL"
syntax: ["BOXPATROL", [spawnloc], [actionloc], [radius]]
-spawnloc: offset or specific map location group will spawn
-actionloc: offset or specific map location at which unit will begin their building search
-radius: size of the area, in meters, for the group to patrol.
Behaviour: 4 waypoints are built at the corners of a square with a diagnol of 2*'radius'. The group will proceed to the 
 
eastern most waypiont then continue in a counterclockwise pattern.
 
"BUILDINGS":
syntax: ["BUILDINGS", [spawnloc], [actionloc], [duration, range]]
-spawnloc: offset or specific map location group will spawn.
-actionloc: offset or specific map location at which group will begin their patrol.
-duration: time, in seconds, the search will be performed. 0=unlimited.
-range: range from 'actionloc' that the group will look for buildings to search.
Behaviour: Units within the group will wait until they are on foot. At this piont they will proceed to 'actionloc'. Upon 
 
arrival, all buildings inside of 'range' radius will be identified. A random search of these buildings will begin, and 
 
continue until 'duration' time passes. When a unit gets to a building, it will inspect all locations within the building 
 
before continuing onto another random building on its list. At this point, the group will continue onto its active waypoint 
 
(if any).
Note: There is a tendancy for units to get 'stuck' on certain structures. A routine has been added to try and identify when a 
 
unit is stuck and teleport it to a nearby road segment.
If no buildings are found within 'range'unit will continue to its current active waypoint (if any).
 
"CONVOY"
syntax: ["CONVOY",    [spawnloc], [actionloc], [speed, FlagRTB, FlagRoads, FlagDespawn, convoyType]]
-spawnloc: offset or specific map location group will spawn
-actionloc: offset or specific map location at which unit will perform its drop-off or evacuation.
-FlagRTB: true=group will return to 'spawnloc' upon completing its action at 'actionloc'.
-FlagRoads: true=group's vehicles will spawn on a road, and drivers will attempt to use roads to get too 'actionloc'
-FlagDespawn: true=group, its vehicles, and its occupants will despawn upon returning to 'spawnloc'
-convoyType: "XFILL"= see below
Behaviour: group will move from spawnloc to actionloc. At 'actionloc', if convoyType is "XFILL" an evacuation call will be 
 
made to all units within 200 meters of 'actionloc'. All units, up to the capacity of the group's vehicles will proceed to and 
 
board the vehicles. When loading is complete, vehicles will return to 'spawnloc'.
If convoyType is "INSERT", then at 'actionloc', vehicles will disembark all units in their cargo.
 
"SENTRY"
syntax: ["SENTRY",    [spawnloc], [actionloc], [radius]]
-spawnloc: offset or specific map location group will spawn
-actionloc: offset or specific map location at which unit will take up its guard position.
-radius: distance from 'actionloc' that the group searchs for available buildings.
Behaviour: Group will proceed to 'actionloc'. Upon arrival, group will search 'radius' for available buildings. Individual 
 
units in the group will then enter the buildings and climb to the highest points in the buildings and take up a "COMBAT" 
 
ready position.
 
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...