Difference between revisions of "Arma 2: Functions Library"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[\[Arma 3 ([^ACHJKLMTZ|])([^|]+)\]\]" to "Arma 3: $1$2")
m (Add category)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{GameCategory|arma2|Editor Modules}}
+
{{TOC|side}}
  
 
'''Function Library''' is pack of script functions available from anywhere in game.  
 
'''Function Library''' is pack of script functions available from anywhere in game.  
  
{{Feature|Informative|This page is mainly '''Arma 2''' related, for '''Arma 3''' visit [[Arma 3: Functions Library]]}}
+
{{Feature|arma3|This page is mainly '''Arma 2''' related, for '''Arma 3''' visit [[Arma 3: Functions Library]]}}
 +
 
  
 +
== Initialization ==
  
==  Initialization ==
 
 
=== Paths ===
 
=== Paths ===
 +
 
Editor:
 
Editor:
 
  Modules (F7) > Function Library
 
  Modules (F7) > Function Library
Line 16: Line 18:
  
 
=== Startup ===
 
=== Startup ===
 +
 
Place Function manager on map. No additional synchronizing needed.
 
Place Function manager on map. No additional synchronizing needed.
  
 
=== Usage ===
 
=== Usage ===
 +
 
First, you need to check if Functions were already initialized:
 
First, you need to check if Functions were already initialized:
  waituntil {!isnil "bis_fnc_init"};
+
  [[waitUntil]] { ![[isNil]] "BIS_fnc_init" };
 
{{Feature|important|Always check for 'BIS_fnc_init', not specific functions (e.g. 'BIS_fnc_setpitchbank')!
 
{{Feature|important|Always check for 'BIS_fnc_init', not specific functions (e.g. 'BIS_fnc_setpitchbank')!
  
Line 26: Line 30:
  
 
After that, you can call any function using following syntax:
 
After that, you can call any function using following syntax:
  _fnc = [params] call TAG_fnc_functionName.
+
  _fnc = [params] [[call]] TAG_fnc_functionName
 +
 
  
 
== In-game functions viewer ==
 
== In-game functions viewer ==
 +
 
''See [[BIS_fnc_help]]''
 
''See [[BIS_fnc_help]]''
 +
  
 
== Adding new functions ==
 
== Adding new functions ==
 +
 
List of functions is defined in config - CfgFunctions. New ones can be also added in [[Description.ext]] file of mission or campaign.
 
List of functions is defined in config - CfgFunctions. New ones can be also added in [[Description.ext]] file of mission or campaign.
<pre>
+
<syntaxhighlight lang="cpp">
 
class cfgFunctions
 
class cfgFunctions
 
{
 
{
Line 40: Line 48:
 
class category1
 
class category1
 
{
 
{
class Test1 {description="Testing file 1"};
+
class Test1 { description = "Testing file 1" };
 
};
 
};
 
};
 
};
class CSLA
+
 
 +
class TAG
 
{
 
{
 
class category1
 
class category1
 
{
 
{
class Test2 {description="Testing file 2"; file="test.sqf"};
+
class Test2
 +
{
 +
description = "Testing file 2";
 +
file = "test.sqf";
 +
};
 
};
 
};
 
};
 
};
 
};
 
};
</pre>
+
</syntaxhighlight>
If 'file' path is not set, system will search for file 'functions\<span style="color:green">category</span>\fn_<span style="color:green">function</span>.sqf" (if function is defined in description.ext) or 'ca\modules\functions\<span style="color:green">category</span>\fn_<span style="color:green">function</span>.sqf" (if function is in config.cpp).
+
If 'file' path is not set, system will search for file 'functions\{{Color|green|category}}\fn_{{Color|green|function}}.sqf" (if CfgFunctions is defined in [[Description.ext]]) or 'ca\modules\functions\{{Color|green|category}}\fn_{{Color|green|function}}.sqf" (if CfgFunctions is defined in config.cpp).
  
 
Result is:
 
Result is:
 
* BIS_fnc_Test1 - will load script \functions\category1\test1.sqf from mission or campaign directory
 
* BIS_fnc_Test1 - will load script \functions\category1\test1.sqf from mission or campaign directory
* CSLA_fnc_Test2 - will load script test.sqf
+
* TAG_fnc_Test2 - will load script test.sqf
 +
 
  
 
== List of official functions ==
 
== List of official functions ==
[[:Category:Arma 2:_Functions|Arma 2: Functions]]
+
 
 +
* [[:Category:Arma 2: Functions]]
 +
 
 +
 
 +
[[Category: Functions Library]]
 +
{{GameCategory|arma2|Editing}}
 +
{{GameCategory|arma2|Editor Modules}}

Revision as of 18:52, 4 August 2021

Function Library is pack of script functions available from anywhere in game.

Arma 3
This page is mainly Arma 2 related, for Arma 3 visit Arma 3: Functions Library


Initialization

Paths

Editor:

Modules (F7) > Function Library

Data:

ca\modules\functions
ca\modules_e\functions
ca\modules_pmc\functions

Startup

Place Function manager on map. No additional synchronizing needed.

Usage

First, you need to check if Functions were already initialized:

waitUntil { !isNil "BIS_fnc_init" };
Always check for 'BIS_fnc_init', not specific functions (e.g. 'BIS_fnc_setpitchbank')! Never set value of 'BIS_fnc_init' in any part of mission! It may lead to breakdown of some modules!

After that, you can call any function using following syntax:

_fnc = [params] call TAG_fnc_functionName


In-game functions viewer

See BIS_fnc_help


Adding new functions

List of functions is defined in config - CfgFunctions. New ones can be also added in Description.ext file of mission or campaign.

class cfgFunctions
{
	class BIS
	{
		class category1
		{
			class Test1 		{ description = "Testing file 1" };
		};
	};

	class TAG
	{
		class category1
		{
			class Test2
			{
				description = "Testing file 2";
				file = "test.sqf";
			};
		};
	};
};

If 'file' path is not set, system will search for file 'functions\category\fn_function.sqf" (if CfgFunctions is defined in Description.ext) or 'ca\modules\functions\category\fn_function.sqf" (if CfgFunctions is defined in config.cpp).

Result is:

  • BIS_fnc_Test1 - will load script \functions\category1\test1.sqf from mission or campaign directory
  • TAG_fnc_Test2 - will load script test.sqf


List of official functions