Jump to content
ussrlongbow

[RELEASE] Arma 3 Mission Skeleton - version 1.3 (includes mission build script)

Recommended Posts

Arma 3 Mission Skeleton
Version: 1.3
Author: longbow (aka ussrlongbow)
Credits: Kju, larrow - thanks guys for vaulable input!

I would like to introduce a bit of work, I have developed for supplementary needs. This is just a skeleton for Arma 3 missions.

Latest version: https://github.com/ussrlongbow/a3ms/releases/tag/v1.3

Source code: https://github.com/ussrlongbow/a3ms

Issues tracker: https://github.com/ussrlongbow/a3ms/issues

 

Supported scripts

to show how simple workflow is I have packaged my Cron Manager according to these guidelines.

 

Changelog

=== v 1.3 ===

- added code into initPlayerLocal.sqf to wait till display#46 is initialized.

 

=== v 1.2 ===

- added HTML color definitions, solid - COLORS_Color and transparent - COLORT_Red(X)

 

=== v 1.1 ===

- added build script

- revisited file and dir structure

- moved source and release files to github

- simplified documentation

 

=== v 1.0 ===

- Updated archive and moved it to Dropbox
- Included sample missions for Altis, VR and Stratis (just blank mission.sqm - no units placed)
- seprate template without mission.sqm - to paste in your mission, for example on other islands
- included document with concept description (draft), see 'template\doc' inside archive
- documented file structure, under same doc dir as above
- updated some docs
- refactored file structure from scratch


 

TODO: Documentation, please feel free to contact me if you have any questions.

  • Like 7

Share this post


Link to post
Share on other sites

Could I make a suggestion that you direct people into making tag = "MyTag" variant of CfgFunctions declaration.

Especially for script Makers( although it could be beneficial for either) as using class MyTag is more likely to lead to conflicts if the same person makes multiple script packages that could essentially be included into the same mission by the end user.

//Description.ext
class CfgFunctions
{
    #include "scripts\functions.hpp"
};

//functions.hpp
class PackageName    //Ignored by engine, but PackageName makes sure it is less likely to conflict with any other includes.
{
    tag = "TagName"; //Prefix for scripts
    class FunctionViewerCategory //Category name function can be found under in function viewer
    {
        file = "scripts"; //Path from mission directory where following scripts files can be found
        class scriptName { //Options };
    };
};

//Compiles scripts\fn_scriptName.sqf into TagName_fnc_scriptName

Otherwise nice idea to give people a base to work from.

  • Like 2

Share this post


Link to post
Share on other sites
Larrow, thanks, that's definitely must be considered, I will be re-releasing one of my scripts soon, and will mention this moment for script makers

Share this post


Link to post
Share on other sites

Updated the archive and docs. Most of the work is around documenting things, so may take some time to polish. So let's consider it version 1.0 :)

Share this post


Link to post
Share on other sites

Could I make a suggestion that you direct people into making tag = "MyTag" variant of CfgFunctions declaration.

Especially for script Makers( although it could be beneficial for either) as using class MyTag is more likely to lead to conflicts if the same person makes multiple script packages that could essentially be included into the same mission by the end user.

//Description.ext
class CfgFunctions
{
    #include "scripts\functions.hpp"
};

//functions.hpp
class PackageName    //Ignored by engine, but PackageName makes sure it is less likely to conflict with any other includes.
{
    tag = "TagName"; //Prefix for scripts
    class FunctionViewerCategory //Category name function can be found under in function viewer
    {
        file = "scripts"; //Path from mission directory where following scripts files can be found
        class scriptName { //Options };
    };
};

//Compiles scripts\fn_scriptName.sqf into TagName_fnc_scriptName

Otherwise nice idea to give people a base to work from.

there's a small issue with this , but it being me I may be wrong..

 

example:    class scriptName { //Options }; would need to be class scriptName { //Options ;};

 

ill use SA cfgfunction as a better example.

like I said I could be wrong but I had to add the extra ; in my mission , I was getting a warning..

maybe I'm doing something even more totally wrong (who would know) but god or :D larrow

class SA{ tag = "SA";
 
class Math {  file = 
"SA\functions\math";  
class findPositionInsideMarker {description = "Get a random position within a marker";};
class getPositionInsideCircle {description = "Gets a random position within a circle";};
class positionInsideRectangle {description = "Identifies if a position is within a rotatable-rectangle";};
class rotatePosition {description = "Rotates a position [X,Y] a specified angle around a center position [X,Y]";};
 };

Share this post


Link to post
Share on other sites

The // Options thing was just saying "put your options here", not literally the text you needed in there.  It was meant to inform the forum reader and to be replaced by the author with whatever options they wanted.  Adding a trailing ; wouldn't matter since it would still break due to the // hiding the closing };

  • Like 1

Share this post


Link to post
Share on other sites

The // Options thing was just saying "put your options here", not literally the text you needed in there.  It was meant to inform the forum reader and to be replaced by the author with whatever options they wanted.  Adding a trailing ; wouldn't matter since it would still break due to the // hiding the closing };

ok, so now I have the attention of anther god like scripter.. ill pm you my question so I don't over take this thread and or start a new.. 

Share this post


Link to post
Share on other sites

@ ussrlongbow

 

I started to edit my missions to your skeleton, looks and works pretty well ... thanks for the work and sharing

  • Like 1

Share this post


Link to post
Share on other sites

@ ussrlongbow

 

I started to edit my missions to your skeleton, looks and works pretty well ... thanks for the work and sharing

Thanks for your feedback! Please let me know if you have any questions or suggestions.

Share this post


Link to post
Share on other sites

Updated script to version 1.1

It now includes a build script which automatically installs addons, builds stringtable.xml file and includes your resources in description.ext

Share this post


Link to post
Share on other sites

The skeleton has been updated to version 1.2
New additions:
a3skeleton\colors.hpp
Contains the definitions of official HTML colors in two options:

  1. With transparency level - COLORT_XYZ(A), where A is a numeric value between 0 and 1.
  2. Just solid color - COLORS_XYZ, where XYZ - is a specific HTML color name in CamelCase, with transparency level set to 1

Example:

#include "a3skeleton\colors.hpp"
// already included in A3MS's description.ext

// your dialog classes go here, and you want to specify text color of a specific control
controlText[] = COLORT_Red(0.5);
// will get replaced by preprocessor to
// {1,0,0,0.5}
// example of just solid color
colorBackground[] = COLORS_Black;


Share this post


Link to post
Share on other sites

Updated skeleton to version 1.3, see changelog for more details.

 

Several cool scripts are coming packaged for A3MS!

Share this post


Link to post
Share on other sites

Thanks for making this im new to the whole creating missions thing so this will help :).

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×