Jump to content
Ghostrider-GRG

[CONTINUED] blckeagls' AI Mission Version 7.06 Build 239

Recommended Posts

I found a confusing description about static mission
From the comments in gms_staticmissions_lists.sqf, it says 4 elements [mod,map,center,filename], but the examples have 3 elements [mod,map.file]

Quote

/*
    by Ghostrider [GRG]
    for ghostridergaming
    12/5/17
    --------------------------
    License
    --------------------------
    All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.

   http://creativecommons.org/licenses/by-nc-sa/4.0/  
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";

private ["_staticMissions"];

_staticMissions = [
    // [mod (Epoch, Exile), map (Altis, Tanoa etc), mission center, eg [10445,2014,0], filename.sqf (name of static mission template for that mission)];
    //["Epoch","Altis","staticMissionExample2_Epoch.sqf"],
    //["Exile","Altis","staticMissionExample2_Exile.sqf"]
];

//diag_log "[blckeagls] GMS_StaticMissions_Lists.sqf <Loaded>";
 

In gms_ staticmissions_init.sqf, it uses array with 3 elements without "mission center". (oops, middle element is unnecessary, it may become the source of bug)

Quote

~~~~~
#include "\q\addons\custom_server\Missions\Static\GMS_StaticMissions_Lists.sqf";

private["_mod","_map","_missionMod","_missionMap","_missionLocation","_missionDataFile"];
blck_sm_monitoring = 0;
blck_sm_groupDespawnTime = 30;
blck_sm_patrolRespawnInterval = 30;
_map = toLower worldName;
{
    if ((_map) isEqualTo toLower(_x select 1)) then
    {
        if ((blck_ModType isEqualTo "Epoch") && (toLower(_x select 0) isEqualTo "epoch")) then
        {
            call compilefinal preprocessFileLineNumbers format["\q\addons\custom_server\Missions\Static\missions\%1",(_x select 2)];
        };

        if ((blck_ModType isEqualTo "Exile") && (toLower(_x select 0) isEqualTo "exile")) then
        {
            call compilefinal preprocessFileLineNumbers format["\q\addons\custom_server\Missions\Static\missions\%1",(_x select 2)];
        };
    };
    uiSleep 1;
}forEach _staticMissions;

(and it was hard to find out how a private variable can affect other scripts... it was by included in gms_ staticmissions_init.sqf! I need to be used to this style of coding)

Share this post


Link to post
Share on other sites

I found another bug, erlated to static mission crates:
There are unclosed #ifdef in GMS_fnc_sm_spawnLootContainers.sqf , which prevent whole the code to execute (without error in *.rpt)

Spoiler

/*
    by Ghostrider [GRG]

    --------------------------
    License
    --------------------------
    All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.

   http://creativecommons.org/licenses/by-nc-sa/4.0/  
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";

params["_objects","_coords"];
private["_object"];

if !(_objects isEqualTo []) exitWith
{  //  Spawn loot crates where specified in _objects using the information for loot parameters provided for each location.
    {
        #ifdef blck_debugMode
        if (blck_debugLevel > 2) then
        {
            diag_log format["_fnc_sm_spawnLootContainers (21):->  _x = %1",_x];
        };
        _crate = [_x select 1, _x select 0] call blck_fnc_spawnCrate;
        [_crate, _x select 4, _x select 5] call blck_fnc_fillBoxes;
    } forEach _objects;
};

// In the case where no loot crate parameters are defined in _objects just spawn 1 at the center of the mission.
if (_objects isEqualTo []) then
{
    #ifdef blck_debugMode
    if (blck_debugLevel > 2) then
    {
        diag_log format["_fnc_sm_spawnLootContainers: _this = %1",_this];
        diag_log format["_fnc_sm_spawnLootContainers: _coords = %1",_coords];
    };
    _crateType = selectRandom blck_crateTypes;
    _crate = [_coords,_crateType] call blck_fnc_spawnCrate;
    [_crate,blck_BoxLoot_Red,blck_lootCountsGreen] call blck_fnc_fillBoxes;
};

I had to remove it to spawn crates

 

other bugs:

_missionLootVehicles in static mission is deleted when players get in.

Quote

19:36:11 "ADMIN: Invalid Vehicle detected and deleted B Alpha 1-1:1 (Schalldampfer) REMOTE with B Alpha 1-1:1 (Schalldampfer) REMOTE driving"

 

another rpt spam 

Quote

19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87

and

Quote

19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80

Spoiler

19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80

 

the system is too complex, configs and functions are scatterd everywhere...even in a simple mission

Share this post


Link to post
Share on other sites
19 hours ago, Schalldampfer said:

I found another bug, erlated to static mission crates:
There are unclosed #ifdef in GMS_fnc_sm_spawnLootContainers.sqf , which prevent whole the code to execute (without error in *.rpt)

  Hide contents

/*
    by Ghostrider [GRG]

    --------------------------
    License
    --------------------------
    All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.

   http://creativecommons.org/licenses/by-nc-sa/4.0/  
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";

params["_objects","_coords"];
private["_object"];

if !(_objects isEqualTo []) exitWith
{  //  Spawn loot crates where specified in _objects using the information for loot parameters provided for each location.
    {
        #ifdef blck_debugMode
        if (blck_debugLevel > 2) then
        {
            diag_log format["_fnc_sm_spawnLootContainers (21):->  _x = %1",_x];
        };
        _crate = [_x select 1, _x select 0] call blck_fnc_spawnCrate;
        [_crate, _x select 4, _x select 5] call blck_fnc_fillBoxes;
    } forEach _objects;
};

// In the case where no loot crate parameters are defined in _objects just spawn 1 at the center of the mission.
if (_objects isEqualTo []) then
{
    #ifdef blck_debugMode
    if (blck_debugLevel > 2) then
    {
        diag_log format["_fnc_sm_spawnLootContainers: _this = %1",_this];
        diag_log format["_fnc_sm_spawnLootContainers: _coords = %1",_coords];
    };
    _crateType = selectRandom blck_crateTypes;
    _crate = [_coords,_crateType] call blck_fnc_spawnCrate;
    [_crate,blck_BoxLoot_Red,blck_lootCountsGreen] call blck_fnc_fillBoxes;
};

I had to remove it to spawn crates

 

other bugs:

_missionLootVehicles in static mission is deleted when players get in.

 

another rpt spam 

and

  Reveal hidden contents

19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80

 

the system is too complex, configs and functions are scatterd everywhere...even in a simple mission

Thanks for reporting - I will look into the issues and push changes to the github after confirming.

Share this post


Link to post
Share on other sites

thanks.

now next;
I have created an experimental mission to spawn bandits on each towns randomly, using static mission.

custom_server\Missions\Static\missions\TownAI_Epoch.sqf

Spoiler

/*
    Town AI by GMS static mission by Schalldampfer
*/
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
    "_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
    "_uniforms","_headgear","_weaponList","_sideArms","_vests","_backpacks","_weapons","_sideArms","_chanceReinforcements","_noPara","_helipatrol","_endCondition","_markerColor","_markerType","_useMines",
    "_Cities","_Capitals"];

_mission = "Town AIs";
_missionCenter = getMarkerPos "center";
_difficulty = "blue";
diag_log format["[blckeagls static missions] STARTED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
_crateLoot = blck_BoxLoot_Blue;
_lootCounts = blck_lootCountsBlue;

_markerLabel = "";
//_markerType = ["ELIPSE",[200,200],"GRID"];
_markerType = ["hd_warning",[2,2]];
_markerColor = "ColorBlue";
_markerMissionName = "Malden Island";


_Cities   = nearestLocations [_missionCenter, ["NameCity","NameVillage","NameLocal"],50000];
_Capitals = nearestLocations [_missionCenter, ["NameCityCapital"],                   50000];


_missionLandscapeMode = "precise";
_missionLandscape = [

];

_missionLootBoxes = [
    [selectRandom blck_crateTypes,[_missionCenter, 1000, 15000, 1, 1, 2000, 0] call BIS_fnc_findSafePos,[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts]
];

_missionLootVehicles = [];

_noEmplacedWeapons = [0,10];

_missionEmplacedWeapons = [];
{
    if ((text _x != "") && (random 10 > 7)) then {
        _missionEmplacedWeapons pushBack [selectRandom blck_staticWeapons,[locationPosition _x, 0, 500, 5, 0, 2000, 0] call BIS_fnc_findSafePos,"blue",0,0];
    };
} foreach (_Cities + _Capitals);

_minNoAI = 50; //Not working?
_maxNoAI = 50;    //Not working?
_noAIGroups = 100;
_aiGroupParameters = [];
{
    if ((text _x != "") && (random 10 > 5)) then {
        _aiGroupParameters pushBack [locationPosition _x,"blue", [0,2],200 ,3600];
    };
} foreach _Cities;
{
    if (text _x != "") then {
        _aiGroupParameters pushBack [locationPosition _x,"blue", [2,4],500 ,1800];
    };
} foreach _Capitals;

_noVehiclePatrols = 10;
_vehiclePatrolParameters = [];
{
    if ((text _x != "") && (random 10 > 8)) then {
        _vehiclePatrolParameters pushBack [selectRandom (blck_AIPatrolVehiclesBlue + blck_AIPatrolVehiclesRed),[locationPosition _x, 0, 400, 3, 0, 2000, 0] call BIS_fnc_findSafePos,"blue",300,3600];
    };
} foreach (_Cities + _Capitals);

_aircraftTypes = blck_patrolHelisBlue + blck_patrolHelisRed + blck_patrolHelisGreen + blck_patrolHelisOrange;
_noAirPatrols =    [2,5];
_airPatrols = [];
{
    if (text _x != "") then {
        _airPatrols pushBack [selectRandom _aircraftTypes,locationPosition _x,"blue",5000,1800];
    };
} foreach _Capitals;


_useMines  = false;
_uniforms  = [
                "U_B_survival_uniform","U_BasicBody",
                "U_C_Farmer","U_C_Fisherman","U_C_FishermanOveralls",
                "U_C_HunterBody_brn","U_C_HunterBody_grn",
                "U_C_Commoner_shorts","U_C_Commoner1_1","U_C_Commoner1_2","U_C_Commoner1_3","U_C_Commoner2_1","U_C_Commoner2_2","U_C_Commoner2_3",
                "U_C_man_sport_1_F","U_C_man_sport_2_F","U_C_man_sport_3_F",
                "U_C_Man_casual_1_F","U_C_Man_casual_2_F","U_C_Man_casual_3_F","U_C_Man_casual_4_F","U_C_Man_casual_5_F","U_C_Man_casual_6_F",
                "U_CamoBlue_uniform", "U_CamoBrn_uniform", "U_CamoPinkPolka_uniform","U_CamoPink_uniform","U_CamoOutback_uniform",
                "U_CamoBubblegum_uniform","U_CamoBiker_uniform","U_CamoAloha_uniform","U_CamoRed_uniform"
            ];
_headgear  = blck_headgear;
_vests     = blck_vests;
_backpacks = blck_backpacks;
_weapons   = blck_RifleOther;
_sideArms  = blck_pistols;

#include "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_initializeMission.sqf"; 

diag_log format["[blckeagls static missions] COMPLETED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];

 

add this array into _staticMissions in custom_server\Missions\Static\GMS_StaticMissions_Lists.sqf

Quote

    ["Epoch",toLower worldName,"TownAI_Epoch.sqf"]

It seems working. Please test it yourself.
 

I feel like some variables (which are in StaticMissionExample2) not used.

Share this post


Link to post
Share on other sites
On 7/25/2018 at 12:19 PM, Schalldampfer said:

I found another bug, erlated to static mission crates:
There are unclosed #ifdef in GMS_fnc_sm_spawnLootContainers.sqf , which prevent whole the code to execute (without error in *.rpt)

  Reveal hidden contents

/*
    by Ghostrider [GRG]

    --------------------------
    License
    --------------------------
    All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.

   http://creativecommons.org/licenses/by-nc-sa/4.0/  
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";

params["_objects","_coords"];
private["_object"];

if !(_objects isEqualTo []) exitWith
{  //  Spawn loot crates where specified in _objects using the information for loot parameters provided for each location.
    {
        #ifdef blck_debugMode
        if (blck_debugLevel > 2) then
        {
            diag_log format["_fnc_sm_spawnLootContainers (21):->  _x = %1",_x];
        };
        _crate = [_x select 1, _x select 0] call blck_fnc_spawnCrate;
        [_crate, _x select 4, _x select 5] call blck_fnc_fillBoxes;
    } forEach _objects;
};

// In the case where no loot crate parameters are defined in _objects just spawn 1 at the center of the mission.
if (_objects isEqualTo []) then
{
    #ifdef blck_debugMode
    if (blck_debugLevel > 2) then
    {
        diag_log format["_fnc_sm_spawnLootContainers: _this = %1",_this];
        diag_log format["_fnc_sm_spawnLootContainers: _coords = %1",_coords];
    };
    _crateType = selectRandom blck_crateTypes;
    _crate = [_coords,_crateType] call blck_fnc_spawnCrate;
    [_crate,blck_BoxLoot_Red,blck_lootCountsGreen] call blck_fnc_fillBoxes;
};

I had to remove it to spawn crates

 

other bugs:

_missionLootVehicles in static mission is deleted when players get in.

 

another rpt spam 

and

  Reveal hidden contents

19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Infantry set[(blck_sm_Infantry find _x), _element>
19:37:38   Error position: <set[(blck_sm_Infantry find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf, line 87
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80
19:37:38 Error in expression <)];
_element set[2,0];
blck_sm_Emplaced set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error position: <set[(blck_sm_Emplaced find _x), _element>
19:37:38   Error Zero divisor
19:37:38 File q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf, line 80

 

the system is too complex, configs and functions are scatterd everywhere...even in a simple mission

Missing #endif added - thanks for reporting.

As far as the errors in the .RPT, did you change or add static units/vehicle/etc in the default mission ? Did you run another mission?

Share this post


Link to post
Share on other sites
2 hours ago, Ghostrider-GRG said:

Missing #endif added - thanks for reporting.

As far as the errors in the .RPT, did you change or add static units/vehicle/etc in the default mission ? Did you run another mission?

tHIS is my mission on Malden, please check it

Spoiler

/*
    This is a simple mission using precisely placed loot crates and infantry, static weapons and vehicle patrols.
    See the accompanying example mission in the exampleMission folder to get an idea how I laid this out.
    Note that I exported the mission using the exportAll function of M3EDEN editor.
*/
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
    "_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
    "_uniforms","_headgear","_weaponList","_sideArms","_vests","_backpacks","_weapons","_sideArms","_chanceReinforcements","_noPara","_helipatrol","_endCondition","_markerColor","_markerType","_useMines",
    "_sam1"];

_mission = "Moray Base";  //  Included for additional documentation. Not intended to be spawned as a mission per se.
_missionCenter = [1000,12136,-1.648];  // I pulled this from the position of the marker.
_difficulty = "orange";  // Skill level of AI (blue, red, green etc)
diag_log format["[blckeagls static missions] STARTED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
_crateLoot = blck_BoxLoot_Orange;  // You can use a customized _crateLoot configuration by defining an array here. It must follow the following format shown for a hypothetical loot array called _customLootArray
    /*
    _customLootArray = 
        // Loot is grouped as [weapons],[magazines],[items] in order to be able to use the correct function to load the item into the crate later on.
        // Each item consist of the following information ["ItemName",minNum, maxNum] where min is the smallest number added and min+max is the largest number added.
        
        [  
            [// Weapons    

                ["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"]                
            ],
            [//Magazines
                ["10Rnd_93x64_DMR_05_Mag" ,1,5]                
            ],            
            [  // Optics
                ["optic_KHS_tan",1,3]
            ],
            [// Materials and supplies                
                ["Exile_Item_MetalScrews",3,10]
                //
            ],
            [//Items
                ["Exile_Item_MountainDupe",1,3]                
            ],
            [ // Backpacks
                ["B_OutdoorPack_tan",1,2]
            ]
    ];    
    */

_lootCounts = blck_lootCountsOrange; // You can use a customized set of loot counts or one that is predefined but it must follow the following format:
                                  // values are: number of things from the weapons, magazines, optics, materials(cinder etc), items (food etc) and backpacks arrays to add, respectively.
                                  //  blck_lootCountsOrange = [[6,8],[24,32],[5,10],[25,35],16,1];   // Orange

_markerLabel = "";
_markerType = ["ELIPSE",[650,500],"GRID"];
// An alternative would be:
//_markerType = ["mil_triangle",[0,0]];  // You can replace mil_triangle with any other valid Arma 3 marker type https://community.bistudio.com/wiki/cfgMarkers
_markerColor = "ColorRed";  //  This can be any valid Arma Marker Color  
_markerMissionName = "Military Bandit Base";
_missionLandscapeMode = "precise"; // acceptable values are "random","precise"
                                    // In precise mode objects will be spawned at the relative positions specified.
                                    // In the random mode, objects will be randomly spawned within the mission area.
_missionLandscape = [  //  Paste appropriate lines from M3EDEN output here.
    ["Land_Mil_WiredFence_Gate_F",[834.158,11942.6,16.3405],[[0.918561,-0.395279,0],[0,0,1]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[749.959,12047.4,22.7166],[[-0.194437,0.973071,0.123801],[0.0199975,-0.122252,0.992298]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[742.612,12045.3,22.611],[[0.228712,-0.965619,-0.123574],[0.0199975,-0.122252,0.992298]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[740.211,12043.2,22.7859],[[-0.193127,0.980039,0.0471781],[0.117578,-0.0246204,0.992758]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[737.619,12041.3,23.0459],[[-0.193127,0.980039,0.0471781],[0.117578,-0.0246204,0.992758]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[701.589,12033.4,14.3761],[[0.184964,0.923165,0.336978],[-0.004809,-0.342041,0.939673]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[710.573,12032.8,14.2822],[[-0.194451,0.919485,0.341667],[-0.0159977,-0.351242,0.936148]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[714.196,12032.3,15.5528],[[-0.194476,0.980907,0],[0,0,1]],[true,true]],
    ["Land_Wreck_AFV_Wheeled_01_F",[711.907,12037.5,16.278],[[0,1,0],[0,0,1]],[true,false]],
    ["Land_ConcreteHedgehog_01_F",[735.076,12040.1,22.799],[[-0.193541,0.981078,0.00528031],[-0.0979276,-0.0246732,0.994888]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[717.69,12032.4,17.4861],[[-0.181061,0.982225,0.0494975],[-0.364961,-0.113841,0.924037]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1071.07,11960.8,24.6905],[[-0.193586,0.981048,-0.00838371],[-0.0955606,-0.0103504,0.99537]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1073.12,11958.3,24.8612],[[-0.193586,0.981048,-0.00838371],[-0.0955606,-0.0103504,0.99537]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1077.19,11952.7,25.1157],[[-0.194108,0.980979,-0.00175132],[-0.0614837,-0.0103841,0.998054]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1069.42,11963.7,25.0481],[[-0.193586,0.945266,0.262673],[-0.0955606,-0.284632,0.953862]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1082.55,11943.2,26.1246],[[-0.194108,0.974498,-0.112589],[-0.0614837,0.102461,0.992835]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1086.87,11940.7,26.6348],[[-0.194108,0.974498,-0.112589],[-0.0614837,0.102461,0.992835]],[true,true]],
    ["Land_Wreck_LT_01_F",[1078.29,11946.3,25.5502],[[-0.790435,0.602084,-0.11273],[-0.0702259,0.0937502,0.993116]],[true,false]],
    ["Land_Wreck_Slammer_hull_F",[1076.86,11976.1,26.6644],[[0.994824,0.0975787,0.0283445],[0.00320178,-0.308912,0.951085]],[true,false]],
    ["Land_ConcreteHedgehog_01_F",[937.485,12056.2,20.7981],[[0.741106,-0.596337,-0.308456],[0.294354,-0.124322,0.947576]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[934.383,12057.2,21.8766],[[-0.855923,-0.475371,0.203515],[0.294354,-0.124322,0.947576]],[true,true]],
    ["Land_Cargo_Patrol_V4_F",[665.105,12137.8,28.92],[[-0.00639512,0.99998,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[670.531,12090.7,28.92],[[-0.0913288,0.995821,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[737.346,12049.1,23.2479],[[-0.262462,0.96494,-0.0019039],[-0.0979276,-0.0246732,0.994888]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[984.11,12072.4,37.9571],[[-0.132464,0.990032,0.0478569],[-0.0511329,-0.0550436,0.997174]],[true,false]],
    ["Land_Razorwire_F",[1007.44,12069.2,38.51],[[0.094067,-0.995566,0],[0,0,1]],[true,true]],
    ["Land_Razorwire_F",[1008.6,12058.9,38.0225],[[-0.260879,0.958127,0.118041],[0,-0.122275,0.992496]],[true,true]],
    ["Land_BagBunker_01_small_green_F",[1095.95,11973.3,25.9754],[[0.797443,0.603159,-0.0168355],[0.031983,-0.0143901,0.999385]],[true,false]],
    ["Land_HBarrier_01_tower_green_F",[1290.18,12201.7,28.93],[[-0.0741564,-0.997247,0],[0,0,1]],[true,false]],
    ["Land_HBarrier_01_tower_green_F",[1293.17,12326.2,28.93],[[0.0640011,-0.99795,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[1023.16,12365.3,28.9016],[[-0.0415478,-0.999105,0.00796191],[-0.00077204,0.00800089,0.999968]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[558.216,12329.3,28.92],[[0.67067,-0.741756,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[625.747,12172.2,28.8612],[[0.992705,-0.118852,0.020279],[-0.0231931,-0.0231868,0.999462]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[1174.97,11916.9,43.2129],[[0.253066,0.967401,-0.0096679],[-0.0686373,0.0279213,0.997251]],[true,false]],
    ["Land_Radar_ruins_F",[1348.15,11883.3,66.7136],[[0.97611,0.217279,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[1187.11,12078.2,29.1944],[[0.581048,0.813568,-0.0221277],[0,0.0271882,0.99963]],[true,false]],
    ["Land_Barracks_01_camo_F",[842.293,12187.8,28.93],[[-0.188368,0.982099,0],[0,0,1]],[true,false]],
    ["Land_MedicalTent_01_tropic_closed_F",[860.757,12141.6,28.93],[[-0.235213,0.971944,0],[0,0,1]],[true,true]],
    ["Land_Cargo_HQ_V4_F",[893.359,12197,28.93],[[-0.983086,-0.183144,0],[0,0,1]],[true,false]],
    ["Land_Cargo_Tower_V4_F",[933.912,12207.8,28.93],[[0.194981,-0.980807,0],[0,0,1]],[true,false]],
    ["Land_IRMaskingCover_01_F",[1105.32,11984.9,25.0106],[[-0.533796,0.845255,-0.0245929],[0.0726073,0.0747898,0.994552]],[true,true]],
    ["Land_IRMaskingCover_02_F",[660.714,12172.4,28.92],[[-0.999999,-0.00157164,0],[0,0,1]],[true,true]],
    ["CamoNet_ghex_F",[846.268,12138.8,28.93],[[0.273548,-0.961858,0],[0,0,1]],[true,true]],
    ["CamoNet_ghex_big_F",[893.96,12149.7,28.93],[[0.253695,-0.967284,0],[0,0,1]],[true,true]],
    ["CamoNet_ghex_big_F",[920.83,12155.1,28.93],[[0.242721,-0.970096,0],[0,0,1]],[true,true]],
    ["CamoNet_ghex_big_F",[956.561,12165,28.93],[[0.245788,-0.969324,0],[0,0,1]],[true,true]],
    ["Land_Cargo_House_V4_F",[864.469,12189.2,28.93],[[-0.168189,0.985755,0],[0,0,1]],[true,false]],
    ["Land_ReservoirTank_01_military_F",[996.427,12173.8,28.9176],[[-0.961648,-0.274288,0],[0,0,1]],[true,true]],
    ["Land_Ammobox_rounds_F",[845.605,12140,28.93],[[0.334173,0.942512,0],[0,0,1]],[true,true]],
    ["Land_PaperBox_open_full_F",[845.909,12138,28.93],[[0.970666,0.24043,0],[0,0,1]],[true,true]],
    ["Land_ScrapHeap_1_F",[841.919,12138.7,28.93],[[-0.312583,0.94989,0],[0,0,1]],[true,true]],
    ["WaterPump_01_forest_F",[850.485,12140.6,28.93],[[0.280069,-0.95998,0],[0,0,1]],[true,false]],
    ["Land_PressureWasher_01_F",[849.022,12139.3,28.93],[[-0.301699,0.953403,0],[0,0,1]],[true,true]],
    ["Land_DieselGroundPowerUnit_01_F",[843.96,12139.3,28.93],[[-0.228409,0.973565,0],[0,0,1]],[true,true]],
    ["Land_DeckTractor_01_F",[888.814,12149.5,28.93],[[-0.264098,0.964496,0],[0,0,1]],[true,true]],
    ["Land_DeckTractor_01_F",[891.488,12150.2,28.93],[[-0.214031,0.976827,0],[0,0,1]],[true,true]],
    ["Land_Research_HQ_ruins_F",[912.582,12203.2,28.93],[[0.0840134,-0.996465,0],[0,0,1]],[true,false]],
    ["Land_Cargo_House_V1_ruins_F",[878.443,12192.9,28.93],[[-0.182387,0.983227,0],[0,0,1]],[true,false]],
    ["Land_Cargo_House_V1_ruins_F",[871.323,12191.5,28.93],[[-0.182387,0.983227,0],[0,0,1]],[true,false]],
    ["Land_Wreck_Heli_Attack_01_F",[871.457,12200.5,28.93],[[-0.682801,0.730604,0],[0,0,1]],[true,false]],
    ["Land_HistoricalPlaneWreck_03_F",[1044.85,12430.8,18.1648],[[-0.836009,0.539903,-0.0979435],[0.0583006,0.264885,0.962516]],[true,false]],
    ["Land_Wreck_Plane_Transport_01_F",[1340.16,11863.7,61.9681],[[-0.648538,-0.391176,-0.652977],[-0.368098,-0.589696,0.718862]],[true,false]],
    ["Land_Wreck_AFV_Wheeled_01_F",[960.551,12167,28.93],[[0.378352,-0.925662,0],[0,0,1]],[true,false]],
    [selectRandom ["B_MBT_01_TUSK_F","O_MBT_02_cannon_F","I_MBT_03_cannon_F"],[955.813,12166.8,28.93],[[-0.301934,0.953329,0],[0,0,1]],[true,true]],
    ["Land_Excavator_01_abandoned_F",[783.76,12126.9,28.92],[[0.116099,0.993238,0],[0,0,1]],[true,true]],
    ["Land_Bulldozer_01_abandoned_F",[777.828,12125.6,28.92],[[-0.110528,-0.993873,0],[0,0,1]],[true,true]],
    ["Land_Bulldozer_01_abandoned_F",[894.832,12151.5,28.93],[[0.275692,-0.961246,0],[0,0,1]],[true,true]],
    ["Land_Wreck_MBT_04_F",[922.204,12157.8,28.93],[[0.471929,-0.881637,0],[0,0,1]],[true,false]],
    ["Land_TankEngine_01_used_F",[916.035,12155.5,28.93],[[0.383707,-0.923455,0],[0,0,1]],[true,true]],
    ["Land_TankRoadWheels_01_single_F",[918.732,12154.9,28.93],[[0.282349,0.959312,0],[0,0,1]],[true,true]],
    ["Land_TankRoadWheels_01_single_F",[918.098,12155.2,28.93],[[0.282349,0.959312,0],[0,0,1]],[true,true]],
    ["Land_TankRoadWheels_01_single_F",[919.096,12155.8,28.93],[[0.282349,0.959312,0],[0,0,1]],[true,true]],
    ["Land_TankSprocketWheels_01_single_F",[918.157,12156.6,28.93],[[0.800816,0.598911,0],[0,0,1]],[true,true]],
    ["Land_TankTracks_01_long_F",[918.096,12157.6,28.93],[[0.99148,-0.130259,0],[0,0,1]],[true,true]],
    ["Land_TankTracks_01_short_F",[920.808,12154.4,28.93],[[-0.403461,0.914997,0],[0,0,1]],[true,true]],
    ["Land_TorqueWrench_01_F",[920.065,12155.2,28.93],[[-0.861061,0.508502,0],[0,0,1]],[true,true]],
    ["Land_ScrapHeap_1_F",[950.028,12166.4,28.93],[[-0.949695,-0.313175,0],[0,0,1]],[true,true]],
    ["Land_ScrapHeap_1_F",[952.118,12163.5,28.93],[[-0.295423,0.955366,0],[0,0,1]],[true,true]],
    ["Land_TankTracks_01_long_F",[919.368,12152.1,28.93],[[-0.711257,-0.702932,0],[0,0,1]],[true,true]],
    ["Land_BoreSighter_01_F",[920.107,12154.9,28.93],[[-0.893399,0.449264,0],[0,0,1]],[true,true]],
    ["Land_Laptop_02_unfolded_F",[920.817,12157.9,30.3394],[[0.917139,0.385559,0.100994],[-0.155744,0.113439,0.981262]],[true,true]],
    ["Land_PaperBox_open_full_F",[918.538,12153.4,28.93],[[-0.257237,0.966348,0],[0,0,1]],[true,true]],
    ["I_Plane_Fighter_04_F",[703.674,12121.5,29.399],[[-0.00781606,0.999969,0],[0,0,1]],[true,true]],
    ["I_Heli_light_03_unarmed_F",[693.012,12123.5,29.399],[[0,1,0],[0,0,1]],[true,true]],
    ["I_LT_01_scout_F",[660.567,12171.7,28.92],[[-0.000255911,-1,0],[0,0,1]],[true,true]],
    ["I_LT_01_cannon_F",[1104.52,11985.2,25.0357],[[-0.874517,-0.47467,0.0995391],[0.0726073,0.0747898,0.994552]],[true,true]],
    ["FlexibleTank_01_forest_F",[775.97,12114.6,28.92],[[0,1,0],[0,0,1]],[true,true]],
    ["Land_Pod_Heli_Transport_04_fuel_F",[795.091,12135.6,28.9261],[[-0.0116368,0.999932,-8.03559e-006],[-0.000690534,0,1]],[true,true]],
    ["B_Slingload_01_Fuel_F",[803.609,12137.4,28.93],[[0.999942,0.0107728,0],[0,0,1]],[true,true]]
]; // list of objects to spawn as landscape using output from M3EDEN editor.

_missionLootBoxes = [  //  Paste appropriate lines from M3EDEN editor output here, then add the appropriate lootArray
    ["Box_FIA_Wps_F"    ,ASLToATL [891.759,12196.2,29.5317],[[0.982816,0.18459,0],  [0,0,1]],[true,false], blck_BoxLoot_Orange, blck_lootCountsBlue],//HQ
    ["Box_FIA_Support_F",ASLToATL [936.521,12210.9,44.2946],[[0.174085,-0.984731,0],[0,0,1]],[true,false], blck_BoxLoot_Orange, blck_lootCountsBlue],//BTower
    ["Box_FIA_Support_F",ASLToATL [665.412,12136.6,33.264], [[0.999923,0.0123981,0],[0,0,1]],[true,false], blck_BoxLoot_Green,  blck_lootCountsBlue]//STower
    
    // [["box_classname1",_customLootArray1,[px,py,pz],...,_customLootArray1],["box_classname2",,[px2,py2,pz2],...,_customLootArray2]
    //  where _customLootArray follows the same format as blck_BoxLoot_Red and the other pre-defined arrays and
    //  where _customlootcountsarray1 also follows the same format as the predefined arrays like blck_lootCountsRed
    //[selectRandom blck_crateTypes,[22917.4,16763,6.30803],[[0,1,0],[0,0,1]],[true,false], _crateLoot, [[1,2],[4,6],[2,6],[5,8],6,1] ],
    //[selectRandom blck_crateTypes,[22893,16766.8,6.31652],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts],
    //  0               1                        2                  3             4           5 
    //[selectRandom blck_crateTypes,[22904.8,16742.5,6.30195],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts]
];  // If this array is empty a single loot chest will be added at the center. If you add items loot chest(s) will be spawned in specific positions.

_missionLootVehicles = [  // Paste appropriate lines from the output of M3EDEN Editor here and add the loot crate type and loot counts at the end of each entry as shown in the example below.
                          // Many vehicles have less inventory capacity than crates so you may have to modify _lootcounts to avoid having stuff spawned all over the ground.
    //    [selectRandom ["B_MBT_01_TUSK_F","O_MBT_02_cannon_F","I_MBT_03_cannon_F"],ASLToATL [955.813,12166.8,28.93],[[-0.301934,0.953329,0],[0,0,1]],[true,true],blck_BoxLoot_Blue,blck_lootCountsBlue]

    //["Exile_Car_Van_Box_Guerilla02",[22896.8,16790.1,3.18987],[[0,1,0],[0,0,1]],[true,false], _crateLoot, [[1,2],[4,6],[2,6],[5,8],6,1]],
    //["Exile_Car_Van_Fuel_Guerilla02",[22919,16782.7,3.18132],[[0,1,0],[0.00129187,0,0.999999]],[true,false],_crateLoot, _lootCounts]
]; //  [ ["vehicleClassName", [px, py, pz] /* possition at which to spawn*/, _loot /* pointer to array of loot (see below)]; 
// When blank nothing is spawned.
// You can use the same format used for _missionLootBoxes to add vehicles with/without loot.

_noEmplacedWeapons = 15;//blck_SpawnEmplaced_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4]
//format: _noEmplacedWeapons  = [2,3]; // a range of values
// or _noEmplacedWeapons = 3; // a constant number of emplaced weps per misison
// Note that this value is ignored if you define static weapon positions and types in the array below.
_missionEmplacedWeapons = [

//    ["B_SAM_System_01_F",ASLToATL [936.136,12212.2,46.8194],"orange",0,0],
    ["I_GMG_01_high_F",ASLToATL   [928.803,12207.8,46.8195],"orange",0,0],
    ["I_GMG_01_high_F",ASLToATL   [937.381,12203.9,46.8195],"orange",0,0],
    ["I_GMG_01_high_F",ASLToATL   [1174.87,11916.8,43.21],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [983.966,12071.9,37.9567],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [736.753,12049.1,23.2008],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [626.141,12172.5,28.89],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1023.43,12365.7,28.9032],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1293.45,12328.1,31.71],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1187.02,12078.6,29.1738],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1095.7,11973.3,25.9748],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1290.63,12203.6,31.71],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [558.615,12329.5,28.92],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [670.483,12090.2,28.92],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [937.418,12213,41.907],"orange",0,0]
];                                 // example [ ["emplacedClassName",[px, py, pz] /* position to spawn weapon */, difficulty /* difficulty of AI manning weapon (blue, red etc)] ];
                                // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
                                // If the number of possible locations exceeds the number of emplaced weapons specified above then only some of the locations in the array will have emplaced weapons spawned.
                                // If you leave this array blank then emplaced weapons will be spawned at random locations around the mission using the default list of emplace weapons.
                                
_minNoAI = blck_MinAI_Red;  //  Modify as needed
_maxNoAI = blck_MaxAI_Red;    // Modify as needed.
_noAIGroups = blck_AIGrps_Red;  // Modify as needed; note that these values are ignored of you specify AI patrols in the array below.
_aiGroupParameters = [
    [ASLToATL [770.99377,12139.563,28.92    ],"red",   [4,5],100,0],
    [ASLToATL [905.7099, 12174.291,28.93    ],"orange",[4,6],150,0],
    [ASLToATL [1141.5754,12117.667,28.912399],"red",   [4,5],100,0],
    [ASLToATL [1116.0555,11969.291,25.399176],"blue",  [2,3],50 ,0],
    [ASLToATL [737.35638,12061.843,24.729149],"blue",  [2,3],50 ,0],
    [ASLToATL [999.75293,12364.189,28.920177],"green", [3,4],100,0],
    [ASLToATL [543.51318,12316.768,28.45693 ],"green", [3,4],100,0],
    [ASLToATL [1277.7485,12343.749,27.331442],"green", [3,4],50 ,0]

    // [ [px, py, pz] /* position*/, "difficulty", 4 /*Number to Spawn*/, 150 /*radius of patrol*/, 0 /*spawn time*/]
];

_noVehiclePatrols = blck_SpawnVeh_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4]; 
                                        //  Note that this value is ignored if you define vehicle patrols in the array below.
_vehiclePatrolParameters = [
    //["B_G_Offroad_01_armed_F",[22819.4,16929.5,3.17413],"green",600,0],
    //["B_G_Offroad_01_armed_F",[22809.5,16699.2,0],"blue",600,10]    
];                             //[ ["vehicleClassName",[px,py,pz] /* center of patrol area */, difficulty /* blue, red etc*/, patrol radius] ]
                            // When this array is empty, vehicle patrols will be scattered randomely around the mission.
                            // Allows you to define the location of the center of the patrol, vehicle type spawned, radius to patrol, and AI difficulty (blue, red, green etc).

_aircraftTypes = blck_patrolHelisRed;  //  You can use one of the pre-defined lists in blck_configs or your own custom array.
_noAirPatrols =    blck_noPatrolHelisRed; // You can use one of the pre-defined values or a custom one. acceptable values are integers (1,2,3) or a range such as [2,4]; 
                                        //  Note: this value is ignored if you specify air patrols in the array below.
_airPatrols = [
    //["Exile_Chopper_Huey_Armed_Green",[22923.4,16953,3.19],"red",1000,900]//,
    //[selectRandom _aircraftTypes,[22830.2,16618.1,11.4549],"blue",1000,60]
];
//  Change _useMines to true/false below to enable mission-specific settings.
_useMines  = false; //blck_useMines;  // Set to false if you have vehicles patrolling nearby.
_uniforms  = blck_SkinList;  // You can replace this list with a custom list of uniforms if you like.
_headgear  = blck_headgear;  // You can replace this list with a custom list of headgear.
_vests     = blck_vests;     // You can replace this list with a custom list of vests.
_backpacks = blck_backpacks; // You can replace this list with a custom list of backpacks.
_weapons   = blck_WeaponList_Orange; // You can replace this list with a customized list of weapons, or another predifined list from blck_configs_epoch or blck_configs_exile as appropriate.
_sideArms  = blck_pistols;    // You can replace this list with a custom list of sidearms.

#include "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_initializeMission.sqf"; 

diag_log format["[blckeagls static missions] COMPLETED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
 

 

Share this post


Link to post
Share on other sites
22 minutes ago, Schalldampfer said:

tHIS is my mission on Malden, please check it

  Reveal hidden contents

/*
    This is a simple mission using precisely placed loot crates and infantry, static weapons and vehicle patrols.
    See the accompanying example mission in the exampleMission folder to get an idea how I laid this out.
    Note that I exported the mission using the exportAll function of M3EDEN editor.
*/
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
    "_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
    "_uniforms","_headgear","_weaponList","_sideArms","_vests","_backpacks","_weapons","_sideArms","_chanceReinforcements","_noPara","_helipatrol","_endCondition","_markerColor","_markerType","_useMines",
    "_sam1"];

_mission = "Moray Base";  //  Included for additional documentation. Not intended to be spawned as a mission per se.
_missionCenter = [1000,12136,-1.648];  // I pulled this from the position of the marker.
_difficulty = "orange";  // Skill level of AI (blue, red, green etc)
diag_log format["[blckeagls static missions] STARTED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
_crateLoot = blck_BoxLoot_Orange;  // You can use a customized _crateLoot configuration by defining an array here. It must follow the following format shown for a hypothetical loot array called _customLootArray
    /*
    _customLootArray = 
        // Loot is grouped as [weapons],[magazines],[items] in order to be able to use the correct function to load the item into the crate later on.
        // Each item consist of the following information ["ItemName",minNum, maxNum] where min is the smallest number added and min+max is the largest number added.
        
        [  
            [// Weapons    

                ["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"]                
            ],
            [//Magazines
                ["10Rnd_93x64_DMR_05_Mag" ,1,5]                
            ],            
            [  // Optics
                ["optic_KHS_tan",1,3]
            ],
            [// Materials and supplies                
                ["Exile_Item_MetalScrews",3,10]
                //
            ],
            [//Items
                ["Exile_Item_MountainDupe",1,3]                
            ],
            [ // Backpacks
                ["B_OutdoorPack_tan",1,2]
            ]
    ];    
    */

_lootCounts = blck_lootCountsOrange; // You can use a customized set of loot counts or one that is predefined but it must follow the following format:
                                  // values are: number of things from the weapons, magazines, optics, materials(cinder etc), items (food etc) and backpacks arrays to add, respectively.
                                  //  blck_lootCountsOrange = [[6,8],[24,32],[5,10],[25,35],16,1];   // Orange

_markerLabel = "";
_markerType = ["ELIPSE",[650,500],"GRID"];
// An alternative would be:
//_markerType = ["mil_triangle",[0,0]];  // You can replace mil_triangle with any other valid Arma 3 marker type https://community.bistudio.com/wiki/cfgMarkers
_markerColor = "ColorRed";  //  This can be any valid Arma Marker Color  
_markerMissionName = "Military Bandit Base";
_missionLandscapeMode = "precise"; // acceptable values are "random","precise"
                                    // In precise mode objects will be spawned at the relative positions specified.
                                    // In the random mode, objects will be randomly spawned within the mission area.
_missionLandscape = [  //  Paste appropriate lines from M3EDEN output here.
    ["Land_Mil_WiredFence_Gate_F",[834.158,11942.6,16.3405],[[0.918561,-0.395279,0],[0,0,1]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[749.959,12047.4,22.7166],[[-0.194437,0.973071,0.123801],[0.0199975,-0.122252,0.992298]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[742.612,12045.3,22.611],[[0.228712,-0.965619,-0.123574],[0.0199975,-0.122252,0.992298]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[740.211,12043.2,22.7859],[[-0.193127,0.980039,0.0471781],[0.117578,-0.0246204,0.992758]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[737.619,12041.3,23.0459],[[-0.193127,0.980039,0.0471781],[0.117578,-0.0246204,0.992758]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[701.589,12033.4,14.3761],[[0.184964,0.923165,0.336978],[-0.004809,-0.342041,0.939673]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[710.573,12032.8,14.2822],[[-0.194451,0.919485,0.341667],[-0.0159977,-0.351242,0.936148]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[714.196,12032.3,15.5528],[[-0.194476,0.980907,0],[0,0,1]],[true,true]],
    ["Land_Wreck_AFV_Wheeled_01_F",[711.907,12037.5,16.278],[[0,1,0],[0,0,1]],[true,false]],
    ["Land_ConcreteHedgehog_01_F",[735.076,12040.1,22.799],[[-0.193541,0.981078,0.00528031],[-0.0979276,-0.0246732,0.994888]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[717.69,12032.4,17.4861],[[-0.181061,0.982225,0.0494975],[-0.364961,-0.113841,0.924037]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1071.07,11960.8,24.6905],[[-0.193586,0.981048,-0.00838371],[-0.0955606,-0.0103504,0.99537]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1073.12,11958.3,24.8612],[[-0.193586,0.981048,-0.00838371],[-0.0955606,-0.0103504,0.99537]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1077.19,11952.7,25.1157],[[-0.194108,0.980979,-0.00175132],[-0.0614837,-0.0103841,0.998054]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1069.42,11963.7,25.0481],[[-0.193586,0.945266,0.262673],[-0.0955606,-0.284632,0.953862]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1082.55,11943.2,26.1246],[[-0.194108,0.974498,-0.112589],[-0.0614837,0.102461,0.992835]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[1086.87,11940.7,26.6348],[[-0.194108,0.974498,-0.112589],[-0.0614837,0.102461,0.992835]],[true,true]],
    ["Land_Wreck_LT_01_F",[1078.29,11946.3,25.5502],[[-0.790435,0.602084,-0.11273],[-0.0702259,0.0937502,0.993116]],[true,false]],
    ["Land_Wreck_Slammer_hull_F",[1076.86,11976.1,26.6644],[[0.994824,0.0975787,0.0283445],[0.00320178,-0.308912,0.951085]],[true,false]],
    ["Land_ConcreteHedgehog_01_F",[937.485,12056.2,20.7981],[[0.741106,-0.596337,-0.308456],[0.294354,-0.124322,0.947576]],[true,true]],
    ["Land_ConcreteHedgehog_01_F",[934.383,12057.2,21.8766],[[-0.855923,-0.475371,0.203515],[0.294354,-0.124322,0.947576]],[true,true]],
    ["Land_Cargo_Patrol_V4_F",[665.105,12137.8,28.92],[[-0.00639512,0.99998,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[670.531,12090.7,28.92],[[-0.0913288,0.995821,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[737.346,12049.1,23.2479],[[-0.262462,0.96494,-0.0019039],[-0.0979276,-0.0246732,0.994888]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[984.11,12072.4,37.9571],[[-0.132464,0.990032,0.0478569],[-0.0511329,-0.0550436,0.997174]],[true,false]],
    ["Land_Razorwire_F",[1007.44,12069.2,38.51],[[0.094067,-0.995566,0],[0,0,1]],[true,true]],
    ["Land_Razorwire_F",[1008.6,12058.9,38.0225],[[-0.260879,0.958127,0.118041],[0,-0.122275,0.992496]],[true,true]],
    ["Land_BagBunker_01_small_green_F",[1095.95,11973.3,25.9754],[[0.797443,0.603159,-0.0168355],[0.031983,-0.0143901,0.999385]],[true,false]],
    ["Land_HBarrier_01_tower_green_F",[1290.18,12201.7,28.93],[[-0.0741564,-0.997247,0],[0,0,1]],[true,false]],
    ["Land_HBarrier_01_tower_green_F",[1293.17,12326.2,28.93],[[0.0640011,-0.99795,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[1023.16,12365.3,28.9016],[[-0.0415478,-0.999105,0.00796191],[-0.00077204,0.00800089,0.999968]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[558.216,12329.3,28.92],[[0.67067,-0.741756,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[625.747,12172.2,28.8612],[[0.992705,-0.118852,0.020279],[-0.0231931,-0.0231868,0.999462]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[1174.97,11916.9,43.2129],[[0.253066,0.967401,-0.0096679],[-0.0686373,0.0279213,0.997251]],[true,false]],
    ["Land_Radar_ruins_F",[1348.15,11883.3,66.7136],[[0.97611,0.217279,0],[0,0,1]],[true,false]],
    ["Land_BagBunker_01_small_green_F",[1187.11,12078.2,29.1944],[[0.581048,0.813568,-0.0221277],[0,0.0271882,0.99963]],[true,false]],
    ["Land_Barracks_01_camo_F",[842.293,12187.8,28.93],[[-0.188368,0.982099,0],[0,0,1]],[true,false]],
    ["Land_MedicalTent_01_tropic_closed_F",[860.757,12141.6,28.93],[[-0.235213,0.971944,0],[0,0,1]],[true,true]],
    ["Land_Cargo_HQ_V4_F",[893.359,12197,28.93],[[-0.983086,-0.183144,0],[0,0,1]],[true,false]],
    ["Land_Cargo_Tower_V4_F",[933.912,12207.8,28.93],[[0.194981,-0.980807,0],[0,0,1]],[true,false]],
    ["Land_IRMaskingCover_01_F",[1105.32,11984.9,25.0106],[[-0.533796,0.845255,-0.0245929],[0.0726073,0.0747898,0.994552]],[true,true]],
    ["Land_IRMaskingCover_02_F",[660.714,12172.4,28.92],[[-0.999999,-0.00157164,0],[0,0,1]],[true,true]],
    ["CamoNet_ghex_F",[846.268,12138.8,28.93],[[0.273548,-0.961858,0],[0,0,1]],[true,true]],
    ["CamoNet_ghex_big_F",[893.96,12149.7,28.93],[[0.253695,-0.967284,0],[0,0,1]],[true,true]],
    ["CamoNet_ghex_big_F",[920.83,12155.1,28.93],[[0.242721,-0.970096,0],[0,0,1]],[true,true]],
    ["CamoNet_ghex_big_F",[956.561,12165,28.93],[[0.245788,-0.969324,0],[0,0,1]],[true,true]],
    ["Land_Cargo_House_V4_F",[864.469,12189.2,28.93],[[-0.168189,0.985755,0],[0,0,1]],[true,false]],
    ["Land_ReservoirTank_01_military_F",[996.427,12173.8,28.9176],[[-0.961648,-0.274288,0],[0,0,1]],[true,true]],
    ["Land_Ammobox_rounds_F",[845.605,12140,28.93],[[0.334173,0.942512,0],[0,0,1]],[true,true]],
    ["Land_PaperBox_open_full_F",[845.909,12138,28.93],[[0.970666,0.24043,0],[0,0,1]],[true,true]],
    ["Land_ScrapHeap_1_F",[841.919,12138.7,28.93],[[-0.312583,0.94989,0],[0,0,1]],[true,true]],
    ["WaterPump_01_forest_F",[850.485,12140.6,28.93],[[0.280069,-0.95998,0],[0,0,1]],[true,false]],
    ["Land_PressureWasher_01_F",[849.022,12139.3,28.93],[[-0.301699,0.953403,0],[0,0,1]],[true,true]],
    ["Land_DieselGroundPowerUnit_01_F",[843.96,12139.3,28.93],[[-0.228409,0.973565,0],[0,0,1]],[true,true]],
    ["Land_DeckTractor_01_F",[888.814,12149.5,28.93],[[-0.264098,0.964496,0],[0,0,1]],[true,true]],
    ["Land_DeckTractor_01_F",[891.488,12150.2,28.93],[[-0.214031,0.976827,0],[0,0,1]],[true,true]],
    ["Land_Research_HQ_ruins_F",[912.582,12203.2,28.93],[[0.0840134,-0.996465,0],[0,0,1]],[true,false]],
    ["Land_Cargo_House_V1_ruins_F",[878.443,12192.9,28.93],[[-0.182387,0.983227,0],[0,0,1]],[true,false]],
    ["Land_Cargo_House_V1_ruins_F",[871.323,12191.5,28.93],[[-0.182387,0.983227,0],[0,0,1]],[true,false]],
    ["Land_Wreck_Heli_Attack_01_F",[871.457,12200.5,28.93],[[-0.682801,0.730604,0],[0,0,1]],[true,false]],
    ["Land_HistoricalPlaneWreck_03_F",[1044.85,12430.8,18.1648],[[-0.836009,0.539903,-0.0979435],[0.0583006,0.264885,0.962516]],[true,false]],
    ["Land_Wreck_Plane_Transport_01_F",[1340.16,11863.7,61.9681],[[-0.648538,-0.391176,-0.652977],[-0.368098,-0.589696,0.718862]],[true,false]],
    ["Land_Wreck_AFV_Wheeled_01_F",[960.551,12167,28.93],[[0.378352,-0.925662,0],[0,0,1]],[true,false]],
    [selectRandom ["B_MBT_01_TUSK_F","O_MBT_02_cannon_F","I_MBT_03_cannon_F"],[955.813,12166.8,28.93],[[-0.301934,0.953329,0],[0,0,1]],[true,true]],
    ["Land_Excavator_01_abandoned_F",[783.76,12126.9,28.92],[[0.116099,0.993238,0],[0,0,1]],[true,true]],
    ["Land_Bulldozer_01_abandoned_F",[777.828,12125.6,28.92],[[-0.110528,-0.993873,0],[0,0,1]],[true,true]],
    ["Land_Bulldozer_01_abandoned_F",[894.832,12151.5,28.93],[[0.275692,-0.961246,0],[0,0,1]],[true,true]],
    ["Land_Wreck_MBT_04_F",[922.204,12157.8,28.93],[[0.471929,-0.881637,0],[0,0,1]],[true,false]],
    ["Land_TankEngine_01_used_F",[916.035,12155.5,28.93],[[0.383707,-0.923455,0],[0,0,1]],[true,true]],
    ["Land_TankRoadWheels_01_single_F",[918.732,12154.9,28.93],[[0.282349,0.959312,0],[0,0,1]],[true,true]],
    ["Land_TankRoadWheels_01_single_F",[918.098,12155.2,28.93],[[0.282349,0.959312,0],[0,0,1]],[true,true]],
    ["Land_TankRoadWheels_01_single_F",[919.096,12155.8,28.93],[[0.282349,0.959312,0],[0,0,1]],[true,true]],
    ["Land_TankSprocketWheels_01_single_F",[918.157,12156.6,28.93],[[0.800816,0.598911,0],[0,0,1]],[true,true]],
    ["Land_TankTracks_01_long_F",[918.096,12157.6,28.93],[[0.99148,-0.130259,0],[0,0,1]],[true,true]],
    ["Land_TankTracks_01_short_F",[920.808,12154.4,28.93],[[-0.403461,0.914997,0],[0,0,1]],[true,true]],
    ["Land_TorqueWrench_01_F",[920.065,12155.2,28.93],[[-0.861061,0.508502,0],[0,0,1]],[true,true]],
    ["Land_ScrapHeap_1_F",[950.028,12166.4,28.93],[[-0.949695,-0.313175,0],[0,0,1]],[true,true]],
    ["Land_ScrapHeap_1_F",[952.118,12163.5,28.93],[[-0.295423,0.955366,0],[0,0,1]],[true,true]],
    ["Land_TankTracks_01_long_F",[919.368,12152.1,28.93],[[-0.711257,-0.702932,0],[0,0,1]],[true,true]],
    ["Land_BoreSighter_01_F",[920.107,12154.9,28.93],[[-0.893399,0.449264,0],[0,0,1]],[true,true]],
    ["Land_Laptop_02_unfolded_F",[920.817,12157.9,30.3394],[[0.917139,0.385559,0.100994],[-0.155744,0.113439,0.981262]],[true,true]],
    ["Land_PaperBox_open_full_F",[918.538,12153.4,28.93],[[-0.257237,0.966348,0],[0,0,1]],[true,true]],
    ["I_Plane_Fighter_04_F",[703.674,12121.5,29.399],[[-0.00781606,0.999969,0],[0,0,1]],[true,true]],
    ["I_Heli_light_03_unarmed_F",[693.012,12123.5,29.399],[[0,1,0],[0,0,1]],[true,true]],
    ["I_LT_01_scout_F",[660.567,12171.7,28.92],[[-0.000255911,-1,0],[0,0,1]],[true,true]],
    ["I_LT_01_cannon_F",[1104.52,11985.2,25.0357],[[-0.874517,-0.47467,0.0995391],[0.0726073,0.0747898,0.994552]],[true,true]],
    ["FlexibleTank_01_forest_F",[775.97,12114.6,28.92],[[0,1,0],[0,0,1]],[true,true]],
    ["Land_Pod_Heli_Transport_04_fuel_F",[795.091,12135.6,28.9261],[[-0.0116368,0.999932,-8.03559e-006],[-0.000690534,0,1]],[true,true]],
    ["B_Slingload_01_Fuel_F",[803.609,12137.4,28.93],[[0.999942,0.0107728,0],[0,0,1]],[true,true]]
]; // list of objects to spawn as landscape using output from M3EDEN editor.

_missionLootBoxes = [  //  Paste appropriate lines from M3EDEN editor output here, then add the appropriate lootArray
    ["Box_FIA_Wps_F"    ,ASLToATL [891.759,12196.2,29.5317],[[0.982816,0.18459,0],  [0,0,1]],[true,false], blck_BoxLoot_Orange, blck_lootCountsBlue],//HQ
    ["Box_FIA_Support_F",ASLToATL [936.521,12210.9,44.2946],[[0.174085,-0.984731,0],[0,0,1]],[true,false], blck_BoxLoot_Orange, blck_lootCountsBlue],//BTower
    ["Box_FIA_Support_F",ASLToATL [665.412,12136.6,33.264], [[0.999923,0.0123981,0],[0,0,1]],[true,false], blck_BoxLoot_Green,  blck_lootCountsBlue]//STower
    
    // [["box_classname1",_customLootArray1,[px,py,pz],...,_customLootArray1],["box_classname2",,[px2,py2,pz2],...,_customLootArray2]
    //  where _customLootArray follows the same format as blck_BoxLoot_Red and the other pre-defined arrays and
    //  where _customlootcountsarray1 also follows the same format as the predefined arrays like blck_lootCountsRed
    //[selectRandom blck_crateTypes,[22917.4,16763,6.30803],[[0,1,0],[0,0,1]],[true,false], _crateLoot, [[1,2],[4,6],[2,6],[5,8],6,1] ],
    //[selectRandom blck_crateTypes,[22893,16766.8,6.31652],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts],
    //  0               1                        2                  3             4           5 
    //[selectRandom blck_crateTypes,[22904.8,16742.5,6.30195],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts]
];  // If this array is empty a single loot chest will be added at the center. If you add items loot chest(s) will be spawned in specific positions.

_missionLootVehicles = [  // Paste appropriate lines from the output of M3EDEN Editor here and add the loot crate type and loot counts at the end of each entry as shown in the example below.
                          // Many vehicles have less inventory capacity than crates so you may have to modify _lootcounts to avoid having stuff spawned all over the ground.
    //    [selectRandom ["B_MBT_01_TUSK_F","O_MBT_02_cannon_F","I_MBT_03_cannon_F"],ASLToATL [955.813,12166.8,28.93],[[-0.301934,0.953329,0],[0,0,1]],[true,true],blck_BoxLoot_Blue,blck_lootCountsBlue]

    //["Exile_Car_Van_Box_Guerilla02",[22896.8,16790.1,3.18987],[[0,1,0],[0,0,1]],[true,false], _crateLoot, [[1,2],[4,6],[2,6],[5,8],6,1]],
    //["Exile_Car_Van_Fuel_Guerilla02",[22919,16782.7,3.18132],[[0,1,0],[0.00129187,0,0.999999]],[true,false],_crateLoot, _lootCounts]
]; //  [ ["vehicleClassName", [px, py, pz] /* possition at which to spawn*/, _loot /* pointer to array of loot (see below)]; 
// When blank nothing is spawned.
// You can use the same format used for _missionLootBoxes to add vehicles with/without loot.

_noEmplacedWeapons = 15;//blck_SpawnEmplaced_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4]
//format: _noEmplacedWeapons  = [2,3]; // a range of values
// or _noEmplacedWeapons = 3; // a constant number of emplaced weps per misison
// Note that this value is ignored if you define static weapon positions and types in the array below.
_missionEmplacedWeapons = [

//    ["B_SAM_System_01_F",ASLToATL [936.136,12212.2,46.8194],"orange",0,0],
    ["I_GMG_01_high_F",ASLToATL   [928.803,12207.8,46.8195],"orange",0,0],
    ["I_GMG_01_high_F",ASLToATL   [937.381,12203.9,46.8195],"orange",0,0],
    ["I_GMG_01_high_F",ASLToATL   [1174.87,11916.8,43.21],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [983.966,12071.9,37.9567],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [736.753,12049.1,23.2008],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [626.141,12172.5,28.89],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1023.43,12365.7,28.9032],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1293.45,12328.1,31.71],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1187.02,12078.6,29.1738],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1095.7,11973.3,25.9748],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [1290.63,12203.6,31.71],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [558.615,12329.5,28.92],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [670.483,12090.2,28.92],"red",0,0],
    ["I_HMG_01_high_F",ASLToATL   [937.418,12213,41.907],"orange",0,0]
];                                 // example [ ["emplacedClassName",[px, py, pz] /* position to spawn weapon */, difficulty /* difficulty of AI manning weapon (blue, red etc)] ];
                                // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
                                // If the number of possible locations exceeds the number of emplaced weapons specified above then only some of the locations in the array will have emplaced weapons spawned.
                                // If you leave this array blank then emplaced weapons will be spawned at random locations around the mission using the default list of emplace weapons.
                                
_minNoAI = blck_MinAI_Red;  //  Modify as needed
_maxNoAI = blck_MaxAI_Red;    // Modify as needed.
_noAIGroups = blck_AIGrps_Red;  // Modify as needed; note that these values are ignored of you specify AI patrols in the array below.
_aiGroupParameters = [
    [ASLToATL [770.99377,12139.563,28.92    ],"red",   [4,5],100,0],
    [ASLToATL [905.7099, 12174.291,28.93    ],"orange",[4,6],150,0],
    [ASLToATL [1141.5754,12117.667,28.912399],"red",   [4,5],100,0],
    [ASLToATL [1116.0555,11969.291,25.399176],"blue",  [2,3],50 ,0],
    [ASLToATL [737.35638,12061.843,24.729149],"blue",  [2,3],50 ,0],
    [ASLToATL [999.75293,12364.189,28.920177],"green", [3,4],100,0],
    [ASLToATL [543.51318,12316.768,28.45693 ],"green", [3,4],100,0],
    [ASLToATL [1277.7485,12343.749,27.331442],"green", [3,4],50 ,0]

    // [ [px, py, pz] /* position*/, "difficulty", 4 /*Number to Spawn*/, 150 /*radius of patrol*/, 0 /*spawn time*/]
];

_noVehiclePatrols = blck_SpawnVeh_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4]; 
                                        //  Note that this value is ignored if you define vehicle patrols in the array below.
_vehiclePatrolParameters = [
    //["B_G_Offroad_01_armed_F",[22819.4,16929.5,3.17413],"green",600,0],
    //["B_G_Offroad_01_armed_F",[22809.5,16699.2,0],"blue",600,10]    
];                             //[ ["vehicleClassName",[px,py,pz] /* center of patrol area */, difficulty /* blue, red etc*/, patrol radius] ]
                            // When this array is empty, vehicle patrols will be scattered randomely around the mission.
                            // Allows you to define the location of the center of the patrol, vehicle type spawned, radius to patrol, and AI difficulty (blue, red, green etc).

_aircraftTypes = blck_patrolHelisRed;  //  You can use one of the pre-defined lists in blck_configs or your own custom array.
_noAirPatrols =    blck_noPatrolHelisRed; // You can use one of the pre-defined values or a custom one. acceptable values are integers (1,2,3) or a range such as [2,4]; 
                                        //  Note: this value is ignored if you specify air patrols in the array below.
_airPatrols = [
    //["Exile_Chopper_Huey_Armed_Green",[22923.4,16953,3.19],"red",1000,900]//,
    //[selectRandom _aircraftTypes,[22830.2,16618.1,11.4549],"blue",1000,60]
];
//  Change _useMines to true/false below to enable mission-specific settings.
_useMines  = false; //blck_useMines;  // Set to false if you have vehicles patrolling nearby.
_uniforms  = blck_SkinList;  // You can replace this list with a custom list of uniforms if you like.
_headgear  = blck_headgear;  // You can replace this list with a custom list of headgear.
_vests     = blck_vests;     // You can replace this list with a custom list of vests.
_backpacks = blck_backpacks; // You can replace this list with a custom list of backpacks.
_weapons   = blck_WeaponList_Orange; // You can replace this list with a customized list of weapons, or another predifined list from blck_configs_epoch or blck_configs_exile as appropriate.
_sideArms  = blck_pistols;    // You can replace this list with a custom list of sidearms.

#include "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_initializeMission.sqf"; 

diag_log format["[blckeagls static missions] COMPLETED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
 

 

do you have this as a file on dropbox? i'll look over the weekend.

Share this post


Link to post
Share on other sites

I updated GMS_fnc_sm_spawnObjects.sqf so that collision checking is off which should ensure that objects are spawned exactly where you want them. The code runs without errors on my test server. I do not see anything obvious in your mission definition but have not tried to run it so may have missed something more subtle.

There is no need to do any ATL/ASL or other conversions for positions for your objects, crates, or AI.

I just checked a mission I use to test code and the loot crates do spawn on top of the military buildings as intended.

I can not remember if one can spawn statics on / in buildings iwthout assigning them to a building position - will check on that tomorrow.

I am not sure what you are trying to with the units. If you are trying to spawn them on/in buildings, the way arma works that may be challenging to achieve. One has to spawn these at specific building positions. See the code for spawning assets for examples.

 

Share this post


Link to post
Share on other sites
51 minutes ago, Grahame said:

Sector B and EOS populate buildings. If @Ghostrider-GRGis willing I could look at the mechanisms that they use (already have) and try an independent (optional) implementation in BlckEagl's?

that would be great. I know VEMF uses building posns, or think it does. i'll fiddle with the statics and see

how it goes. I was thinking that one could includw an optional structure in the define for the group and have the spawn script place the structure then locate units within it.

Share this post


Link to post
Share on other sites

May I ask what this commit means?
It lost private variable, and position change is already overwritten by setPosASL. 

Spoiler

   - private _object = (_x select 0) createVehicle [0,0,0];
   + //private _object = (_x select 0) createVehicle [0,0,0];
   + //  [type, position, markers, placement, special]
   + _object = createVehicle [_x select 0, _x select 1, [], 0, "CAN_COLLIDE"];
     object setPosASL (_x select 1);

 

Share this post


Link to post
Share on other sites
3 minutes ago, Schalldampfer said:

May I ask what this commit means?
It lost private variable, and position change is already overwritten by setPosASL. 

  Hide contents

   - private _object = (_x select 0) createVehicle [0,0,0];
   + //private _object = (_x select 0) createVehicle [0,0,0];
   + //  [type, position, markers, placement, special]
   + _object = createVehicle [_x select 0, _x select 1, [], 0, "CAN_COLLIDE"];
     object setPosASL (_x select 1);

 

The createVehicle is call using a mode that allows the new object to collide with any objects nearby. That ensures that it is placed exactly where it was in the editor. The setPosASL could probably be omitted. Thought I had tested everything but my days are long -- too little coffee !

Share this post


Link to post
Share on other sites
5 minutes ago, Ghostrider-GRG said:

The createVehicle is call using a mode that allows the new object to collide with any objects nearby. That ensures that it is placed exactly where it was in the editor. The setPosASL could probably be omitted. Thought I had tested everything but my days are long -- too little coffee !

ok, thanks.

btw,I think there can be setvehicleLock in that code, to spawn vehicles as an base object, that players can't use
(I can't confirm whether it gets unlocked after a certain amount of time)

Spoiler


    _object setVehicleLock "LOCKED";
    _object setvariable ["EPOCH_LockedOwner","0"];

 

Share this post


Link to post
Share on other sites
11 hours ago, Schalldampfer said:

ok, thanks.

btw,I think there can be setvehicleLock in that code, to spawn vehicles as an base object, that players can't use
(I can't confirm whether it gets unlocked after a certain amount of time)

  Reveal hidden contents


    _object setVehicleLock "LOCKED";
    _object setvariable ["EPOCH_LockedOwner","0"];

 

Alright, after testing and some thought, you definitely need the _object setPosASL (_x select 1). All of the object positions exported from M3EDEN are set to ASL. That makes sense as a reference but it is not what the createVehicle function uses when spawning objects. By having "CAN_COLLIDE" the objects do just hang in space whereever you spawn them and their models can overlap. However, to account for the difference in where 0 is for createVehicle and the output of the M3EDEN tools you do need to adjust position to ASL.

I can confirm that if you place static weapons on top of something (or I assume inside) they will be spawned where you place them.

All patrol vehicles are locked until AI are killed, then are placed in a cue to be deleted after a certain period. If a player enters the drivers seat that removes the vihicle from being monitored by the mission system. To me it does not make sense to lock any vehicles used as cargo containers. If you wish to you can add something like this:

 

    if ( (typeOf _obj) isKindOf "LandVehicle") then
    {
        diag_log format["MAP ADDONS:: Locking vehicle of type %1",typeOf _obj];
        //_obj = _x select 0;
        _obj setVehicleLock  "LOCKEDPLAYER";
        _obj addEventHandler ["GetIn",{  // forces player to be ejected if he/she tries to enter the vehicle
        private ["_theUnit"];
        _theUnit = _this select 2;
        _theUnit action ["Eject", vehicle _theUnit];
        hint "Use of this vehicle is forbidden";
        }];
    };

 

I have a code fragment around somewhere that locks all types of vehicles which I use at traders although simply spawning them as simple objects works nicely as an alternative. You can do this by putting those vehicles in as a map addon using the MapAddons utility and include something like the above code as a way to limit access to these ornamental objects. Note that simple objects have some server performance advantages as well.

Share this post


Link to post
Share on other sites
On 7/30/2018 at 7:35 AM, Schalldampfer said:

May I ask what this commit means?

  Reveal hidden contents

   - private _object = (_x select 0) createVehicle [0,0,0];
   + //private _object = (_x select 0) createVehicle [0,0,0];
   + //  [type, position, markers, placement, special]
   + _object = createVehicle [_x select 0, _x select 1, [], 0, "CAN_COLLIDE"];
     object setPosASL (_x select 1);

 

Github provides a means to track changes made to files. A commit is the process by which a change is merged with a particular branch, thus incorporating said change into the branch. Grahame had made a fork (basically, his own version that he modified to add changes he thought would fix errors or bugs or add functions). I reviewed them, thought they were OK and merged them with the Master/Main branch. If you follow the feed in the Epoch discord you will see one channel in which changes and commits are streamed. I have been doing most scripting in the Visual Studio Code platform which includes the ability to maintain a git local to a folder or even an online git. I find it a really great way to keep track of things as I move through the process of correcting problems or adding features. You can quickly see exactly which files were changed. I think Notepad ++ may have some git capability either as a plugin or addon - also worth a look. That is probably more than you wanted to know but .. there it is. 

Share this post


Link to post
Share on other sites

Version 6.86 will add the ability to place statics inside or on top of buildings using the building position functions of arma. My vision is for this to use either a randomly selected building from those spawned by the mission (with a certain percentage of statics placed in buildings, using a variable that can be set by server admins) or an optional building defined as part of the definition of the emplaced/static weapon.

Share this post


Link to post
Share on other sites

I just wanted to say Thank You to everyone for their amazing work on this mod! It installed with no problems, configured easily and I have been running it on a test server for weeks now. Of course, first time I unexpectedly ran into a mission (didn't look at the map on the way to a trader,) I had my ass handed to me. LOL I can't wait to see the bells and whistles that are added in future releases!! Thanks again!!!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By FG_Trap
      Made a quick static ai mission that spawns on restart. 
      12 ai patrol the compound 
      4 Static m2's
      1 Heli Patrolling the compound 
      Crate for who ever clears all the ai.
      Some screenshots of the compound 


       
      https://github.com/Trapxxgods/Wai-Static-Mission 
    • By JakeQue
      Is there anyway to add a disable footsteps for admins?
       
      Also I would love to be able to spawn a mission in from the admin menu, I tried some code but it just breaks Infistar, it would seem it is executing it automatically.
       
       
      Thank you!
    • By Cubitron
      Aloha all
      We start our new Epoch Cherno Redux Server (Funserver)
      ip:185.194.140.234:2302
      Features:
      -increased Atagonist Spawn
      -Vehicle Patrol
      -Npc Patrol
      -Missions
      -F4 Player Menu ( WIP) with craft bike and quad)
      -Igiload

      Mods:
      -RDS Civilian Pack (the good old A2 Vehicles)
      -No Strider and Ifrit
       
    • By totis
      Hi,
      Im using wai missions on my server but i wanna set some statics.
      I see that wai support static missions. Can someone points me with an example or maybe a ready static mission which i coukld edit to my needs?
      Tnx
    • By Hooty
      deleted
       
  • Advertisement
  • Supporters
  • Discord

×
×
  • Create New...