Announcement

Collapse
No announcement yet.

Development of new Mission Template for ACE - Discussion

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Development of new Mission Template for ACE - Discussion

    Wanted to give you guys an idea of what I'm working on for a template.

    In addition to setting up a standard set of ACE settings (which is far more complex that I'd even assumed it was), I'm also trying to create a framework that will easily allow mission makers to pick and choose which optional items need to be enabled.

    For example, your mission is a an escape scenario and your players won't have access to the Blufor tracking system (or have map markers). You can easily change a line in the initPlayerLocal.sqf to enable or disable this option. You don't need to know how to script it.

    Here is the draft file thus far...

    Code:
    //initPlayerLocal.sqf 
    //this is designed so you can change what you want to use in your mission by changing the values at the top of the file
    
    //hedghogs localized, class based bis arsenal on some objects
    // set the line below to true to use it and add the boxes you want the arsenal to the array
    _useClassBasedArsenal = true;
    _objectsForClassBasedArsenal = [classBasedBox]; //add more boxes to this array if you need
    
    //ACE interaction options
    //reset tfr programming on self interaction
    _enableResetTFR = true;
    //add an option to get SR radio from self (radio bug work around where radios disappear in arsenal!)
    _enableSelfRadioGetOption = true;
    //put view distance dialog on ACE self Menu
    _enableViewDistance = true;
    
    //add get TFR Short & Long radios to listed objects
    _enableGetSROnObjects = true;
    _enableGetLROnObjects = true;
    _objectsForRadios = [radioBox,supplyRepairTruck]; //objects you place in editor
    
    //enable teleport to SL
    _enableTeleportToSL = true;
    
    //enable zues access for Pathfinders
    //must have zeus game master modules named: zeus & zeus1
    _enablePFZeus = true;
    
    //enable hedgehogs blufor tracker map markers
    _enableMapMarkers = true;
    
    
    
    //***********************************************************************************************************************************
    
    //***********************************************************************************************************************************
    //DO NOT EDIT BELOW THIS LINE unless you know what your doing
    
    ["InitializePlayer", [player, true]] call BIS_fnc_dynamicGroups;
    _TGbrief = []execVM "TGbriefing.sqf";
    _missionBriefing = []execVM "briefing.sqf";
    playerSpawns = 0;
    
    //wait until player is boots on ground
    sleep 1;
    
    //ACE self interaction items
    //Reset TFR
    if (_enableResetTFR) then {
        _action = ["tg_radioSelfAction", "Reset TFR", "", {[] spawn TG_fnc_reprogramRadios;}, {true}] call ace_interact_menu_fnc_createAction;
        [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject;
    };
    //Get TFR self action
    if (_enableSelfRadioGetOption) then {
        _action = ["tg_getRadioSelfAction", "Get TFR SR", "", {[player, player] spawn TG_fnc_getShortRadio;}, {true}] call ace_interact_menu_fnc_createAction;
        [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject;
    };
    //View Distance action
    if (_enableViewDistance) then {
        _action3 = ["tg_chvd", "View Distance", "", {chvd = [] spawn CHVD_fnc_openDialog;}, {true}] call ace_interact_menu_fnc_createAction;
        [player, 1, ["ACE_SelfActions"], _action3] call ace_interact_menu_fnc_addActionToObject;
    };
    
    //ACE other interaction items
    {
        if (_enableGetSROnObjects) then {
            _action1 = ["tg_radiosSRAction", "Get SR", "", {[_x, player] spawn TG_fnc_getShortRadio;}, {true}] call ace_interact_menu_fnc_createAction;
            [_x, 0, ["ACE_MainActions"], _action1] call ace_interact_menu_fnc_addActionToObject;
        };
        if (_enableGetLROnObjects) then {
            _action2 = ["tg_radiosLRAction", "Get LR", "", {[_x, player] spawn TG_fnc_getLongRadio;}, {true}] call ace_interact_menu_fnc_createAction;
            [_x, 0, ["ACE_MainActions"], _action2] call ace_interact_menu_fnc_addActionToObject;
        };
    } forEach _objectsForRadios;
    
    //hedghogs localized class based arsenal
    if (_useClassBasedArsenal) then {
        {
            [classBasedBox, player] call TG_fnc_ammo;
        } forEach _objectsForClassBasedArsenal;
    };
    
    //TFAR settings
    [nil, player] spawn TG_fnc_getShortRadio;//add short range for all
    player setVariable ["tf_globalVolume", 0.8];
    //reprogramRadios when SR is issued
    ["TGRadioID", "OnRadiosReceived", {[radioBox, player] spawn TG_fnc_reprogramRadios; systemChat "A new radio has been issued...";}, player] call TFAR_fnc_addEventHandler;
    
    //reprogram radio notifications when ACE arsenal is closed
    ["ace_arsenal_displayClosed",{systemChat "Check your radio programming!!";}] call CBA_fnc_addEventHandler;
    ["ace_arsenal_displayOpened",{systemChat "Welcome to the TG Arsenal.";}] call CBA_fnc_addEventHandler;
    //BIS arsenal reprogram long range radio notification
    [ missionNamespace, "arsenalClosed",{systemChat "Check your radio programming!!";}] call BIS_fnc_addScriptedEventHandler;
    
    //Teleport To Squad Leader
    if (_enableTeleportToSL) then {
        [] spawn TG_fnc_teleportToSL;
    };
    
    //Pathfinder Zeus Access
    if (_enablePFZeus) then {
        call TG_fnc_zeusAddAction;
    };
    
    //Player Blufor Tracker by hedgehog
    if (_enableMapMarkers) then {
        [] spawn TG_fnc_squadUI;
    };
    Now, I'm still working on cleaning up a few things then I'm going to run it all past our GO and some of you on the Projects Team...to make sure we get this right.

    I know it's a pain to be half way through creating a mission and the framework you are working with updates!!
    |TG189| Unkl
    ArmA 3 Admin
    189th Infantry Brigade Member
    SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
    "Tactics in action can not exist if there is no action." - Scout

  • #2
    FYI, I've also use the same format above for the initServer.sqf for all the relevant options.
    |TG189| Unkl
    ArmA 3 Admin
    189th Infantry Brigade Member
    SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
    "Tactics in action can not exist if there is no action." - Scout

    Comment


    • #3
      Gotta say, This is pretty cool setup. Making mission making easy. Kudos kudos.

      I would add comment on boolean values true and false being the available values. Also would give examples of array members being added instead of one member lists in comments of course. Multiline comments would work pretty well I think. That way those who use it have a reference.

      Also I guess I should comment up the class based arsenal and bring up the configuration variables to the top for easier editing. Loving it Unkl

      Comment


      • #4
        Originally posted by hedgehog View Post
        Gotta say, This is pretty cool setup. Making mission making easy. Kudos kudos.

        I would add comment on boolean values true and false being the available values. Also would give examples of array members being added instead of one member lists in comments of course. Multiline comments would work pretty well I think. That way those who use it have a reference.

        Also I guess I should comment up the class based arsenal and bring up the configuration variables to the top for easier editing. Loving it Unkl
        The more comments the better, don't be afraid to write a paragraph and just comment out each line. In my programs for work, I comment the hell out of my scripts or I'll forget it all.

        Current ARMA Development Project: No Current Project

        "An infantryman needs a leader to be the standard against which he can judge all soldiers."

        Friend of |TG| Chief

        Comment


        • #5
          One of the notes I left on my whiteboard this am was to convert the comment titles to all caps so I will add more examples to help new mission makers out.

          On another note, been thinking that I'm not going to put in any pre-built task or objective logic. My experience is that any scripts that are supposed to help require that you know a lot to make them work anyway. I just find it easier to build my mission tasks and mission ending states as required.

          I will only add one pre-built end condition for a mission time out. I'll do a pre-built 3 life respawn limit (that is two respawns).

          I've also included my own vehicle respawn script that works only when a vehicle is destroyed and you can set the time it takes to respawn a vehicle per each vehicle. This script will take an inventory of all the items you have added to it's inventory and when the vehicle respawns it is:
          • filled with the same stuff, and
          • is named the same as your original vehicle name (scripts will still reference the new object!)

          |TG189| Unkl
          ArmA 3 Admin
          189th Infantry Brigade Member
          SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
          "Tactics in action can not exist if there is no action." - Scout

          Comment


          • #6
            I did a lot of work on the Task Force Radio scripts this morning. One of the things I wanted to address is that sometimes you only want to program only your short or long range radio. Sometimes you want to do both. Previously the settings were in 4 separate scripts and if (I don't know why anyone would) a mission maker would want custom frequencies then all those files needed to be looked at.

            I've consolidated them into one fn_reprogramRadios.sqf script to make any editing easier. I've also created parameters for which radios are requesting to be programmed and whether or not a delay is needed. A delay is only needed when you are first given a new radio. Your client then queries the server for the global settings for your side and gets a unique id for your radio. This needs to happen before the frequencies can be set by the script.

            However, when you want to reprogram your existing radio...there is no reason to wait the additional six seconds and now the script will move along faster when requested.

            Here is a heads up for you coders on the new way to invoke the function and it's parameters.

            Usage:
            [<short>, //boolean where true means to reprogram the players short range and false means to leave the short range as is
            <long>, //boolean where true means to reprogram the players active long range radio or false is not
            <wait> //boolean where a wait of 6 seconds is required before reprogramming is completed
            ] spawn TG_fnc_reprogramRadios;

            For example we want to reprogram the vehicle radio but have set custom settings on our short range we don't want to lose. First the player will enter the vehicle and then set the vehicle radio to be the active long range. Then use the ACE menu and choose "Reset LR". This will execute:

            Code:
            [false, true, false] spawn TG_fnc_reprogramRadios;

            Next I am still working on putting all these functions under the ACE Self Interaction menu, under Equipment and then under TG Radios:
            • Reset Radios
            • Reset SR
            • Reset LR
            • Get SR (only needed because players are losing their short range in the arsenal sometimes)
            However, I have not been able to create a new sub-menu under Equipment yet. At least I've only tried my first attempt...next is to get into the documentation a bit more and do some more experimenting.

            https://ace3mod.com/wiki/framework/i...framework.html
            |TG189| Unkl
            ArmA 3 Admin
            189th Infantry Brigade Member
            SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
            "Tactics in action can not exist if there is no action." - Scout

            Comment


            • #7
              - TFR Ace actions are all done.
              - New FARP script in final debugging.
              - Gear saving completed using easy options in initPlayerLocal.sqf.
              - Contingencies for respawnOnStart are set up and easy


              To do:
              - Edit ACE Arsenal script to make easy to edit
              - Complete comments in initServer.sqf
              - Test all available options to see how it breaks
              - Test and test again

              Sent from my SM-A530W using Tapatalk

              |TG189| Unkl
              ArmA 3 Admin
              189th Infantry Brigade Member
              SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
              "Tactics in action can not exist if there is no action." - Scout

              Comment


              • #8
                So there has been a lot of updates on this topic within our new #missiondev and the forum updates have been slow in coming.

                So I am nearly completed the big picture stuff. I'm still going to remove the ambient air traffic from the Asset Marker script so it is a fully separate file that you can toggle from the initServer.sqf. The TgAceArsenal script also needs to be formatted to it is easier to work with. After that I want to share the template with a select few mission makers and the admin team to use and test out the features to make sure there is no unforseen bug in the works before we distribute it fully.

                During this next period I'm going to be writing documentation on how to use the Template in the editor and port it over to a new map for your scenarios. I'll be creating a series of video guides for this which will be broken down into small bite sized chunks to help new mission makers get going. There is a lot of work to do on this but once the basics are up, the testing should be completed.

                My guess is it should be ready within 1 week from today. But, that is just a guess as I still need the go ahead from the rest of the admin team on that.

                What I don't want to do is have to update the template every week. That is not fair to those who are in the middle of creating a scenario using it.

                Here is the big picture of what the features are:

                Mission Template Features
                INITSERVER.SQF
                Scripted ACE Arsenal Option
                Asset Markers
                Toggle Civilian Occupation System
                Mission Timer (required)
                Set Refuel Vics (if using FARP)
                Toggle Ambient Flyby

                INITPLAYER.SQF
                Scripted Class Based BIS Arsenal
                Control of ACE Interaction Items
                • Reset TFR Frequncies
                • View Distance
                • Get Radio Objects
                Set Backpack Radio model for mission
                Toggle Teleport to SL
                Toggle Pathfinder Zeus Access
                Toggle Player Map Marker System
                Set per Player Respawn Tickets
                FARP Easy Repair Settings
                Toggle Restoring Loadout as at Death Upon Respawn
                Handling respawnOnStart options

                FUNCTIONS
                Client Functions
                • getShortRadio
                • getLongRadio
                • teleportToSL
                • reprogramRadios
                • squadUI (player map markers)
                • ammo (class based arsenal)
                • farpAction

                Server Functions
                • vehicleRespawn (add code to init of vic)
                • assetMarkers
                • ambientFlyBy
                • zeusAddAction (Pathfinder access)
                • civilianKilled (event handler broken)
                • TGAceArsenal
                • missionTimer
                • ifAllPlayerDead (will end mission if all players are dead and have no respawns left)

                EXAMPLE MISSION
                Includes Required Addon Settings
                Basic Player Organization and Loadouts
                Examples of both Scripted Arsenal Options
                Example of Support Vehicle Options
                Pre-made FARP
                Briefing Template (briefing.sqf)
                TG Info In-Game Billboards
                TG Info Briefing (full primer ect...)
                TG Info Map Markers
                Commented description.ext options
                Last edited by Unkl; 09-17-2018, 08:07 PM.
                |TG189| Unkl
                ArmA 3 Admin
                189th Infantry Brigade Member
                SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
                "Tactics in action can not exist if there is no action." - Scout

                Comment


                • #9
                  Let me know if you need help with comments, I am happy to flesh them out if you want to just leave small blurbs. I enjoy that kind of thing.


                  Current ARMA Development Project: No Current Project

                  "An infantryman needs a leader to be the standard against which he can judge all soldiers."

                  Friend of |TG| Chief

                  Comment


                  • #10
                    For those of you on Discord this is not new information.

                    The template should be ready for release tomorrow and the new missions standards and complete video guide on using the Template has been published and made into closed sticky threads in this sub-forum.

                    This thread can server for further discussion, suggestions and questions regarding the Mission Template. Looking forward to a whole suite of new missions in the next couple of weeks!
                    |TG189| Unkl
                    ArmA 3 Admin
                    189th Infantry Brigade Member
                    SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
                    "Tactics in action can not exist if there is no action." - Scout

                    Comment


                    • #11
                      Few comments.

                      1. CHVD script is not being referenced when attempting to change view distance. The error states it cannot find the thread.

                      2. The addaction for "Teleport to SL" seems to be the ultimate place where that message pops up "HOLD SPACE TO TELEPORT" if that can be moved to the bottom of the addaction menu instead of the top, there may be no need to dampen it at all, it just shows up on default because that seems to be what is selected when the missions starts.

                      3. When I am developing, everytime I test a mission I have to click through an error about Script\TGZUES.sqf not being found. Can we figure out a way to dampen that message? I may be missing it in the files.

                      4. Removing the class based box from the mission throws an error, I had to dig through the files to comment out references to the ammo box. Setting the value to FALSE and removing the box still threw errors. Perhaps an if or other conditional can correct this, assuming its not expected behavior.

                      5. Booby Trap error - https://imgur.com/a/1oalSwY

                      6. Loving this template, thanks for all the hard work thus far.
                      Last edited by Dimitrius; 10-10-2018, 06:00 PM.

                      Current ARMA Development Project: No Current Project

                      "An infantryman needs a leader to be the standard against which he can judge all soldiers."

                      Friend of |TG| Chief

                      Comment


                      • #12
                        Dimitrius

                        Thanks for the detailed notes!

                        Have you gotten the updated template and made the adjustments to your init files? See below...

                        1. CHVD - I am unable to see what could be causing this without being at my gaming rig. I'm not getting this error on my side but if you can give a screenshot then I might be able to determine what the problem is earlier than tonight.

                        2. TeleportToSL - action priority - not a bad idea moving it down but I always just press backspace when I get into the mission to removed that from my screen. It really is a good feature for guests who may not know it's is there otherwise. Will experiment with this.

                        3. Pathfinder Zeus - simply toggle the boolean value to false in your initPlayerLocal.sqf in order to suppress this message while testing locally. The list of approved Zeus curators is a file on the server so that we don't need to update each mission every time the Pathfinder list is updated.

                        4. Class based arsenal. Again, screen shot of error would help know what you mean. I'm assuming this is an undefined variable error? If so ensure you have the following in the initPlayerLocal.sqf:
                        Code:
                        _useClassBasedArsenal = true;
                        _objectsForClassBasedArsenal = [];
                        5. Booby Trap error - this is because if you updated the fn_boobytrap.sqf to the latest version then your line in initServer.sqf also needed to be updated to (line 155 in my latest...):
                        Code:
                        _killed spawn TG_fnc_boobyTrap;
                        Really I'd changed this from passing an array to just the _killed. So before it used to be [_killed] spawn TG_fnc_boobyTrap which was unnecessary.

                        If it is not because of the line in the initServer.sqf, then you might just need to update the fn_boobyTrap.sqf file because it used
                        Code:
                        _killer = _this select 0;
                        //where now it should be...
                        _killer = _this;
                        |TG189| Unkl
                        ArmA 3 Admin
                        189th Infantry Brigade Member
                        SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
                        "Tactics in action can not exist if there is no action." - Scout

                        Comment


                        • #13
                          Further testing this am...

                          1. CHVD - no problem on the latest template (need to look at H&M still)

                          2. Could try to move the action down in priority but really do like that it pops up for new guests. And when I test on the template it is the only action upon start so it doesn't matter where it is in the priority, it will pop up.

                          3. Resolved

                          4. Tested and no error reproduced.

                          5. Resolved.

                          Dimitrius, how did you make out with it? I might be able to be available this afternoon. Already into OT so I might be getting out early today :)
                          |TG189| Unkl
                          ArmA 3 Admin
                          189th Infantry Brigade Member
                          SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
                          "Tactics in action can not exist if there is no action." - Scout

                          Comment


                          • #14
                            For the teleport to squad leader add action
                            Maybe you can try to add a check that it will be only be shown around in an area around the base marker/ respawn and else is removed
                            TG-189ᵀᴴ ArmaXO TGU Instructor

                            Comment


                            • #15
                              woesterudolf - That would then depend on any mission to have a base marker or respawn_? marker. This might then get complicated to remove this check as well for new mission makers. But, on another note...the TeleportToSL is definately an option that is fine to toggle off...AS LONG AS...you have no need to long transportation for JIPs. If your mission is a short walk from the spawn to the battle point, you may not need it. However, this is really something again for a CAA post because why not get that sorted out now if a mission maker is considering it? Otherwise it will come up in the submission evaluation anyway.

                              In addition - B_Wilco reported a serious bug in the Long Range radio script on H&M Tanoa that was also replicated in this template. Updated came down today. I fixed that error and in response to Dimitrius and his reported issues (which seem to be a result of poor documentation after rapid fire updates to the template)...I've included a line by line change log from now on...

                              Code:
                              121018
                              ******
                              Change by Unkl
                              - FIXED - fn_getLongRadio.sqf lines 15 & 16 had their classnames reversed, and the if/then statement condition in line 12 did not have the variable name in quotations (this resulted in OPFOR & Independents getting the wrong LR radio)
                              
                              - ADDED - this file to help mission makers adapt existing projects with line by line descriptions of changes
                              |TG189| Unkl
                              ArmA 3 Admin
                              189th Infantry Brigade Member
                              SUBMIT A RIBBON NOMINATION OR CONTACT AN ARMA ADMIN
                              "Tactics in action can not exist if there is no action." - Scout

                              Comment

                              Connect

                              Collapse

                              TeamSpeak 3 Server

                              Collapse

                              Twitter Feed

                              Collapse

                              Working...
                              X