Jump to content

Fulcrum Mission System v2.1a


horbin

Recommended Posts

Hey Horbin, our heli crashes (static) are invisible, no smoke too.. at the beginning, it worked but now.... the heli scrashsites are spawning, the loot and the sound of the broken heli appears..

 

where could be the issue?

 

Cheers metal

 

 

 

DayZHeloCrash.sqf:

 

 

//LandPatrol.sqf
// Horbin
// 1/20/15
// Be cautious when editing data.

[
["DayZHeloCrash", 300, "LAND"], // Mission Title NOSPACES!, and encounter radius
["DayZHeloCrash","mil_dot","ELLIPSE","ColorYellow","FDiagonal",25],    // Map Markers ["MapText", "SHAPE", "COLOR", "FILL", size];
[  
    [// NOTIFICATION Messages and Map display Control.
    false, 0, 0, // Notify players via Radio Message, radio channel, range from encounter center (0=unlimited.
    false, // Notify players via global message
    false,// Show encounter area on the map
    30,    // Win delay: Time in seconds after a WIN before mission cleanup is performed
    10       // Lose delay: Time in seconds after a lose before mission cleanup is performed
          //NOTE: the above delay must occur before the mission is considered 'complete' by the mission manager control loop.
    ],
    // Spawn Mission Message
    ["",  // title line
     "", // title line, do not remove these!
     "" //description/radio message.
    ],  
    // Mission Success Message
    ["Mission Success",
     "",
     ""
    ],
    // Mission Failure Message
    ["Mission Failure!",
    "",
    ""
    ]
],
[  //  Loot Config:  Refer to LootData.sqf for specifics
// Loot for this mission is contained in the Vehicles!
["Scatter" , [0,0] ], //[static loot, offset location] - spawns with the mission
   // static loot will also spawn if 'NO TRIGGERS' is enabled.
["None" , [0,0] ], // Win loot, offset location - spawns after mission success
["None" , [0,0] ]  // Failure loot, offset location - spawns on mission failure
],
[//BUILDINGS: persist = 0: building deleted at event completion, 1= building remains until server reset.
  [
    ["Land_Wreck_Heli_Attack_02_F","Land_Wreck_Heli_Attack_01_F"],
    [0,0], // location
    0, // rotation
    0, // persist flag
    "Fire_Big"
  ]
 
],
[ // AI GROUPS. Only options marked 'Def:' implemented.
 //  [["RESISTANCE","COMBAT","RED","COLUMN"],   [  [1,"Sniper"],[2,"Rifleman"],[2,"Hunter"]  ],   ["BoxPatrol",[0,75],[0,0],[0]   ]],
 //   [["RESISTANCE","COMBAT","RED","LINE"],   [  [3,"Rifleman"]                                         ],   ["Sentry",[-20,10],[0,0],[70] ]],
 //  [["RESISTANCE","COMBAT","RED","LINE"],   [  [2,"Hunter"]                                              ],   ["Guard",[6,6],[0,0],[30]     ]]
],
//Example: PatrolBehavior: ["BoxPatrol", [100,0], [0,0],0 ]  
// AI will spawn 100m east of encounter center, a 4 point patrol will be set up at 80% encounter radius. AI will move to this and start patrolling.
// spawnoffsetloc: [x,y] where x and y are offsets in meters from the encounter center.Sets the spawn location for the group.
// patroloffsetloc:[x,y] where x and y are offsets in meters from encounter center. Sets the center of the group's patrol zone,
//                     or where it should travel too before starting its patrol pattern.
// radius: in meters - used in establishing patrol geometry. If zero, then 80% of encounter radius will be used.
//###Patrol Options###
//Def:   "Perimeter", spawnloc, patrolloc, radius: - 12 waypoints set at radius from loc, group goes from point to point
//Def:   "BoxPatrol", spawnloc, patrolloc, radius: - 4 waypoints set at radius from loc, group goes from point to point
//Def:  "Explore", spawnloc, patrolloc, radius: - 12 waypoints set up at radius from loc, group moves randomly from point to point
//Def:  "Guard", spawnloc, patrolloc, radius: - group patrols inside of buildings found within radius of loc.
//Def:  "Sentry", spawnloc, patrolloc radius: - group moves to nearest building and takes up station in highest points within the building
//     NOTE: if no buildings are located within 'radius' both Guard and Sentry will locate nearest buildings to the encounter and move there!
//  "Loiter", loc, radius: - group just hangs out, in an unaware mode in vicinity of loc-radius.
//  "Convoy", loc, data: group follows roads from startloc to stoploc, then loops back.
//  "XCountry", loc, data: group goes from startloc to stoploc, then loops back.

// Vehicles
[
     [  // Convoy #1                     
    [         // Vehicle                     Offset     Crew (only 1 type!)   CargoLoot (see Loot section below for more detail!)
       //    [  "C_Offroad_01_EPOCH"          ,[0,0],[1 ,"Rifleman"],        "Random"      ],
           //[  "C_Offroad_01_EPOCH"          ,[0,50],[1 ,"Rifleman"],     "Random"      ],
        //   [  "B_G_Offroad_01_armed_F"          ,[0,50],[1 ,"Rifleman"],     "Random"      ],
       //    [  "C_Offroad_01_EPOCH"          ,[0,75],[1 ,"Rifleman"],     "Random"      ]
        //   [  "C_Quadbike_01_EPOCH"          ,[-50,-600],[1,"Rifleman"],     "None"      ],
         //  [  "C_Quadbike_01_EPOCH"          ,[-50,-600],[1,"Rifleman"],     "None"      ],
         //  [  "C_Quadbike_01_EPOCH"          ,[-50,-600],[ 1, "Rifleman"],     "Truck01"]   
                 // If driver-less vehicles are desired, place them at the bottom of the list.
                 // Troops WILL be placed into 'driver-less' vehicles if the other vehicles are full!!!
      ],
      [  
          // "Convoy": spawn at -500,-500, drop off cargo at -50,-50, then return to base. (ie 'Convoy' logic behaviour)
           // Drivers                                                          # and type  |         Patrol     |    spawn   | dest       | 'Patrol' options
        //  [["RESISTANCE","COMBAT","RED","COLUMN"],   [  [3, "Driver"]  ],   ["TrackRoute",[0,0],[0,0],["SAFE","LIMITED",["Villages","Villages"],true,true,false,0]   ]]
         // proceed to 0,-15, drop off troops, then return to spawn location and despawn!
      ],
      // Troops : These are distributed across all vehicles in this convoy.                                                         
     [      //  Troop behaviour and side options                        # and type of Troops                               Patrol logic |  spawn     |dest |'Patrol' options
       //  [["RESISTANCE","COMBAT","RED","COLUMN"],   [  [3,"Sniper"],[2,"Rifleman"]  ],   ["BoxPatrol",[0,0],[0,0],[100]   ]]
        // [["RESISTANCE","COMBAT","RED","COLUMN"],   [  [1,"Sniper"],[2,"Rifleman"] ],   ["BoxPatrol",[-70,-600],[50,0],[50]   ]],
        // [["RESISTANCE","COMBAT","RED","COLUMN"],   [  [1,"Sniper"],[3,"Rifleman"]  ],   ["BoxPatrol",[-70,-600],[-50,0],[50]   ]]
            // 'dest' for troops is where they will go to perform their 'Patrol Logic' once the disembark the convoy IF their vehicle's driver group is using the 'Convoy' patrol logic.
            // otherwise troops will remain in vehicle unless it is engaged. Once vehicle destroyed, Troops will move onto their 'Patrol Logic'.
     ]
   ]  
],
// Triggers and Event control.
//  There are 3 general states for a mission. Win, Lose, or Phase Change.
// In order to establish a WIN or LOSE, all Trigger specified below must be met within their specified grouping.
// Same evaluation is done with checking for Phase changes.
// Phase Change Detail:
//    When a 'phase change occurs the appropriate additional mission will be launched.
//  Win/Lose logic for this encounter will suspend when phase change is launched.
//  Triggers from a launched phase change will override triggers defined here.
//  If triggers in this mission are still desired, uncomment the "NO TRIGGERS" comment IN THE MISSION being launched by this mission"
// index 0:win, 1:lose, 2:phase1, 3:phase2, 4:phase3, 5:ignore triggers
[ // NOTE: side RESISTANCE for groups == side GUER for Triggers.
    [    //WIN Triggers and Controls
     // ["LowUnitCount", "GUER", 3, 0, [0,0]] // all enemies are dead:  side options "EAST","WEST","GUER","CIV","LOGIC","ANY"
      // ["ProxPlayer", [0,0], 50, 1], // 1 player is within 100 meters of encounter center.
    //   ["Reinforce", 25, "Random"], // %chance when requested, Mission to run
    //   ["Timer", 600] // 10minutes must pass prior to being able to complete the mission (to allow bikes to get there!!!
    //["BodyCount", 9] // when at least 10 AI are killed by players
       // Note Reinforce trigger will not impact win/loss logic.
    ],
    [    //LOSE Triggers and Controls
//      ["HighUnitCount", "GUER",10,40,[0,0]] // 10 enemies get within 40m's of encounter center
           ["Timer",250]  // mission ends after ~6hrs
    //   ["AllDeadorGone"]
    ],   
    [    //Phase01 Triggers and Controls
//        ["Timer", 180]  // Mission Ends in 180 seconds
//      ["Detected",0,0]    //Launch mission if any group or vehicle detects a player
      //   ["ProxPlayer", [0,0], 100, 1] // 1 player is within 100 meters of encounter center.
    ],
    [    //Phase02 Triggers and Controls
    
    ],
    [    //Phase03 Triggers and Controls
    
    ],
    [    // NO TRIGGERS: Uncomment the line below to simply have this mission execute. Mission triggers from a mission that
          // launched this mission will continue to be observed.
    // Uncommenting this line will ignore all triggers defined above, and mission will pass neither a WIN or LOSE result.
     // ["NO TRIGGERS"]
    ]
],
/*Trigger and Control options
//Triggers 'Def' indicates trigger currently implemented!
Def: ["ProxPlayer",range,offset, numPlayers] : TRUE when '#' players gets within 'range' of the position offset from encounter center
Def:  ["LowUnitCount", side, numAI, radius, offset]: TRUE when AI of 'side' drops below numAI inside 'radius' from 'offset' of encounter center
Def: ["HighUnitCount",side, numAI, radius, offset]: TRUE when AI of 'side' go above numAI inside 'radius' from 'offset' of encounter center
          High and Low count: If radius is zero, radius defaults to encounter radius +100m.
Def: ["Detected", groups, vehicles]; TRUE when player is detected by encounter AI. 'groups' and 'vehicles' are group and vehicle
         numbers that will conduct the detection. A value of zero will permit all groups. A value of -1 will be none.
          ["Detected",0,2]  This would trigger if any 'AI group' or vehicle group #2 detect a player.
          ["Detected",-1, 1] This would trigger only if vehicle group #1 detects a player
Def: ["Reinforce", chance, "MsnName"]: Sets up reinforcement logic in the event AI calls for help via RadioChatter
      This trigger has no impact on 'win' conditions. If reinforcement ability is desired, ensure this trigger
      is included in the mission, as well as any 'phased' missions.

// EH Controls
5 ["KillGroup",grp#]: triggers when specified group's AI are all killed.  grp# taken from the above array of groups, starting with '1'
6 ["KillVehicle",veh#]: triggers when specified vehicle is destroyed. veh# taken from the above array of vehicles
7 ["AccessObj",obj#]: triggers when specified veh# or staticLoot (id = 0) is accessed.

// Timer Controls
8 ["TIMER_Trig", time, one of the above controls]: enables one of the above Trigger or EH's 'time' seconds after encounter start.
9 ["TIMER", time]: triggers  'time' seconds after encounter start. (ie placed in LOSE block ["TIMER",600], encounter would end in failure after 10 minutes if WIN triggers are not met.
10["Trig_TIMER", time, one of the above controls]: starts a timer after the associated Trigger/EH is activated. Upon completion status is set.
*/


// Phased Missions.
// Chaininig of missions is unlimited.
// Above triggers will 'suspend' when below phase starts. Phase launched will use its own triggers as specified in its mission script.
// If it is desired to continue to use the above Triggers instead of the 'launched mission's' triggers do the following:
//   uncomment the "NO TRIGGERS' line from the mission being launched.
// The below specified missions will be precompiled into the specified 'calls' when this script runs.
// The file needs to be located in the same folder as this mission launching them.
[
   // "NukeDevice",  //Phase01
   // "TestPhase2", //Phase02
   // "TestPhase3" //Phase03
]



];

 

Link to comment
Share on other sites

There might be a bug with coordinates at the actual version of FUMS.

Try M3Editor syntax:

 
[//BUILDINGS: persist = 0: building deleted at event completion, 1= building remains until server reset.
  [
    ["M3Editor", [0,0], 777, 0,
      [
        ["Land_Wreck_Heli_Attack_02_F",[0,0,0],0,[[0,1,0],[0,0,1]],false],
        ["Land_Wreck_Heli_Attack_01_F",[10,0,0],0,[[0,1,0],[0,0,1]],false]
      ]
  ]
],
Link to comment
Share on other sites

He-Man,

  Thanks for that one.   When I pushed out the last update (about a month ago), it introduced the M3Editor format to the missions.  This code also bugged some of the regular building arrays.  This will be fixed come the next update (next week).

 

Till then, you can put everything in M3Editor format and you will be good to go.

 

-Horbin

Link to comment
Share on other sites

Nice to hear about the coming update.

Can you please also check my comments / questions from post #917 for the update?

 

And one more question: What is the best way for triggering all AI's dead from Convoy?

I tested ["LowUnitCount", "GUER", 0, 0, [0,0]] // (all enemies are dead), but then the Convoy is finished direcly by coming up.

I tested ["BodyCount", xx], but then sometimes the mission will not be finished (I think because an AI dies by another AI, road kill or something else.

 

Anybody knows a better way?

Link to comment
Share on other sites

He-Man

  SpawnSoldier.sqf  line 96 change the 25 to 0.   for AI should lock the AI into 1 spot.

 

  FillLoot.sqf line 72-77

     When using an offset (ie 2D specified point) FuMS trys to find a safe position within 8m of the intended spot to help prevent jamming the loot box into other objects.

 

In instances where there is no good spot within 8m's there is the potential for the box to be placed somewhere not intended, like in a tree or on a wall.

 

I'll do some testing on each of these and tweak as part of the update.

 

 

For the Convoy, BodyCount is the best trigger available at the moment.  I would set the number to something less than the total AI.  So if you have a convoy of 3 vehicles, each with 4 AI I would set BodyCount to 9.  This leaves a little slop for the accidental 'I drove over the AI' or 'lost AI that is out of sight over the hill'.

 

BodyCount will start to increment for accidental AI on AI deaths (but not for roadkills!) on next update.

Link to comment
Share on other sites

Tried to reduce 8m to 2m.

 

from    _pos = [_pos, 0, 30, 1,0, 8,0,[],[]] call BIS_fnc_findSafePos; // 1m clear, terraingradient 8 pretty hilly
to        _pos = [_pos, 0, 30, 1,0, 2,0,[],[]] call BIS_fnc_findSafePos; // 1m clear, terraingradient 8 pretty hilly
 

Box spawned 13m away from center :-/

 

- What means the 30? Tried to set this on 2 -> No loot box

- Can I reduce the 1 to 0 meter?

 

- Can I set the following, to take the exact position?

// _pos = [_pos, 0, 30, 1,0, 8,0,[],[]] call BIS_fnc_findSafePos; // 1m clear, terraingradient 8 pretty hilly

_pos = _pos;

 

Or I wait for next week, when you have checked it yourself ;)

Link to comment
Share on other sites

Hello Epoch Friends!

 

I am trying to get the Horde mission to not spawn map markers. I'm not sure why it isn't working. I do have the following set in the trigger:

 

    false, // Notify players via global message
    false, // Show encounter area on the map
 
Is this a bug or did i miss something?
Link to comment
Share on other sites

Carp,

  This particular theme takes advantage of 'mission phases'.  The 1st phase of each mission is simply a mission that generates the marker and establishes a trigger to watch for players.  When a player is detected, this mission launches the 'horde' mission.

 

To remove the map markers, check the settings in the mission named 'spawn trigger.sqf'.

Link to comment
Share on other sites

Carp,

  This particular theme takes advantage of 'mission phases'.  The 1st phase of each mission is simply a mission that generates the marker and establishes a trigger to watch for players.  When a player is detected, this mission launches the 'horde' mission.

 

To remove the map markers, check the settings in the mission named 'spawn trigger.sqf'.

 

Hey thanks for that horbin. I was not fully aware of how the spawn trigger played its part, but that makes much more sense. Once I changed that value to false, the markers disappeared. Cheers!

Link to comment
Share on other sites

I don't know, why the loot boxes have to refresh for you. It makes no sense for me.

For example you can set loose trigger to 3600 seconds and restart the mission immediately.

But you must set the despawn time for the box to a few seconds, I think.

Link to comment
Share on other sites

Expect 2.0 this weekend...hopefully Friday evening.

 

Overview:

-HC connect/disconnect logic greatly improved (HC will retain control of AI through heavy network and server lag)

- min/max 'players online' settings for all themes

- Damage Building trigger added - allow missions to change state based upon damage to specific or all buildings.

- Damage Vehicle trigger added - allow missions to change state based upon damage to specific or all vehicles.

- M3Editor buildings now support FuMS smoke/fire definitions

- Missions will be able to execute Admin custom mission start and mission end scripts, defined per mission.

- many minor bug fixes and tweaks (will be noted in final update notes)

Link to comment
Share on other sites

Expect 2.0 this weekend...hopefully Friday evening.

 

Overview:

-HC connect/disconnect logic greatly improved (HC will retain control of AI through heavy network and server lag)

- min/max 'players online' settings for all themes

- Damage Building trigger added - allow missions to change state based upon damage to specific or all buildings.

- Damage Vehicle trigger added - allow missions to change state based upon damage to specific or all vehicles.

- M3Editor buildings now support FuMS smoke/fire definitions

- Missions will be able to execute Admin custom mission start and mission end scripts, defined per mission.

- many minor bug fixes and tweaks (will be noted in final update notes)

Wow.... great new features! :)

What about the Sound feature of Mission Start / Win / Lose, will it be intigrated?

 

Link to comment
Share on other sites

In Background of my last Posts, I will be very pleased when you can integrate / check this:

 

- Let the box spawn exact / on a defined radius per Mission?

 

- Let the AI's  spawn exact / on a defined radius per Mission?

 

- Let the mission spawn random inside the marker area (not exact in the center)

Link to comment
Share on other sites

I wanted to try this mission. but unclear on certain things. 1 - DO i need to run a HC for this to work, or will it work like SEM, blckeagls etc.

 

I run a private server. So its only played on by myself and few friends.

 

2nd. if I do need HC, i am unclear on how things are setup exactly.

I have read through

But here is my scenario

 

I have a desktop PC. I run the server from that pc and also play on that same PC.

 

the tutorial states

 

that in the mission folder i make an init.sqf

and have

if !(hasInterface or isServer) then {

  HeadlessVariable = true;

  publicVariable "HeadlessVariable";

execVm "AI_Init.sqf";

};
 
"GlobalHint" addPublicVariableEventHandler
{
private ["_GHint"];
_GHint = _this select 1;
hint parseText format["%1", _GHint];
};

but what i am not clear on is can i add this code to my existing init.sqf or am I running 2 different missions, one with just the HC and one with my epoch stuff.

 

I would like to be able to run server, hc and be able to also play, all on the same pc. I do not have another pc, and im not willing to shell out 60 dollars a month for a server just to play with a couple of friends.

 

thanks

Link to comment
Share on other sites

tinboye,

    Yes, you need an HC.  

 

If you are playing with friends and you are running the server, I think you can get one of your buddies to also install the server, then he can fire up the 'server' as an HC and connect to your server.  His machine would then handle all the AI.

 

I have not tested this, but I believe it will work.

 

HC configuration/setup is also included in the FuMS setup/install documents. I believe the instructions I have there are fairly condensed and possibly a little easier to understand than some of the mile long posts on HC setup that are out there.

Link to comment
Share on other sites

Dirty,  thanks for highlighting that.....its the config.cfg though :)

 

Here is a clip from my server's config.cfg (I use a separate machine for my HC)

 

 
localClient[]={127.0.0.1, 192.168.0.24};
headlessClients[] = {"127.0.0.1","192.168.0.24"};
battleyeLicense=1;
 
What they do:
localClient[] -- tells the server to allocate greater than normal bandwidth to this IP.
headlessClients[] -- tells the server from what IP's to permit HC's to connect from.
batteyeLicense -- allows HC to connect, even when it shares a common license ID with a player who is also logged in.
Link to comment
Share on other sites

v2.0 is up:

  • Documentation Update: GitHub now contains extensive documentation on all FuMS options. Check the Docs folder on the github!

  • update VCOM Driving v.1.2 Improved handling of bridges and gates http://forums.bistudio.com/showthread.php?187450-VCOM-AI-Driving-Mod

  • BodyCount now increments when an AI is killed by another AI. No credit is given for AI killed by vehicles controlled by either players or AI.

  • Improvements to HC crash/network disconnect detection. HC will persist through temporary network outages and lag. Only after a hard disconnect from the server will HC missions and AI be removed. Epoch UI check/dependency removed.

  • Update to Mission building placement (see MissionFile.htm for documentation)

  • M3Editor structures now support SMOKE/FIRE options (see TestMission01 for example and MissionFile.htm for details)
  • Random building selection fixed for old building format.(see Helocrash missions)

  • Box Smoke: Fixed bug that was causing smoke to be triggered by AI.

  • AI and Box positioning: Tweaked positioning of AI and loot boxes when spawned in missions.
    AI and boxes should appear closer to intended positions. FuMS was originally using an offset of 10-30m when creating the object to help prevent collisions. Several admins have expressed a desire to have more specific control over ai and loot box placement, so this version has reduced that offset to 0m. AI and loot boxes should be appearing exactly where specified. Note: This may cause some issues with loot not appearing for some missions where the mission location was generated randomly due to the terrain not supporting placement of the AI or Lootbox.

*Tower Guard AI Logic: Tweaked spawn positioning to ensure all AI in the group are placed within nearby buildings in the event insufficient rooftops are found for them to take up guard positions. AI will now properly populate and 'sentry' in desired buildings (see Test/Destroyable.sqf mission)

* Min/Max Player setting adding to all Themes: ==Admin Note==
  • Ensure the following is added to the 'options' section of any custom themes.sqf developed outside of FuMS.

1, // Player minimum to launch missions from this theme.

100 // Player maximum above which missions will not launch

 

  • =======================================================================================
  • All FuMS themes now include these new settings. (See ThemeData.sqf's included with distro)
  • A theme will now ONLY create missions when the player count is greater than or equal too the minimum and less than the maximum player count.
  • A delay of 60 seconds occurs between meeting the player requirement and the theme creating its 1st mission.
  • Missions already created will remain in play if the player requirement fails while the mission is running. When the mission completes the theme will then suspend further missions until the requirement is met again.
  • See ThemeData.htm documentation for details.

  • Fixed bugged with 'AI only gear' sometimes not being cleaned up when an AI dies.

  • Two new triggers that allow mission state to be controlled by the amount of damage specific vehicles and/or buildings have sustained! See MissionFile.htm for details and \test\Destroyable mission for example.

** Damaged Buildings Trigger ["DmgBuildings","INDEXER", amount]

** Damaged Vehicles Trigger ["DmgVehicles","INDEXER", amount]

  • Custom Scripting: FuMS now supports custom scripts that can be ran at mission start and at mission end.  See MissionFile.htm and ThemeData.htm documentation for details.

*Random mission positioning

FuMS missions now support randomizing the location of the 'core' of the mission within the defined encounter radius. See MissionFile.htm and \FuMS\Themes\Test\Destroyable.sqf for details.

--Known issues Helo patrols traveling slow. Scuba AI not using underwater firearms underwater.

--Upcoming Fixing Helo and Scuba AI behaviour Sound notification and environmental effects for missions autonomous AI UAV/UGV's VIP rescue/Captor theme

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...