compileFinal: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(Added new parameter data type)
m (Some wiki formatting)
Line 7: Line 7:


|descr= Compiles an expression and makes it final, preventing it from:
|descr= Compiles an expression and makes it final, preventing it from:
* Being modified by [[compile]] or [[compileFinal]]
* being modified by [[compile]] or [[compileFinal]]
* Being removed with [[nil]]
* being removed with [[nil]]
* Being modified by [[publicVariable]], [[publicVariableClient]] or [[publicVariableServer]]
* being modified by [[publicVariable]], [[publicVariableClient]] or [[publicVariableServer]]
{{Feature|informative|This feature is only available in the retail version of {{arma3}}.}}
{{Feature|informative|This feature is only available in the retail version of {{arma3}}.}}


|s1= [[compileFinal]] expression
|s1= [[compileFinal]] expression


|p1= expression: [[String]] or [[Code]] (since {{GVI|arma3|2.14}})
|p1= expression: [[String]] or {{GVI|arma3|2.14|size= 0.75}} [[Code]]


|r1= [[Code]]
|r1= [[Code]]
Line 38: Line 38:
}}
}}


<dl class="command_description">
{{Note
|user= AgentRev01
|timestamp= 20130815003500
|text= When broadcasting a compileFinal'ed variable using [[publicVariable]] or its variants, the variable also becomes final on the other client(s) and/or the server.
Also, compileFinal does not prevent [[Event_handlers|event handlers]] from being removed or overwritten.
}}


<dt><dt>
{{Note
<dd class="notedate">Posted on August 14, 2013</dd>
|user= IT07
<dt class="note">[[User:AgentRev01|AgentRev]]</dt>
|timestamp= 20170527115800
<dd class="note">
|text= in {{arma3}} v1.70.141838, [[compileFinal]] also works for [[profileNamespace]] and [[uiNamespace]]. But be careful with that.
When broadcasting a compileFinal'ed variable using [[publicVariable]] or its variants, the variable also becomes final on the other client(s) and/or the server.
}}
Also, compileFinal does not prevent [[Event_handlers|event handlers]] from being removed or overwritten.</dd>


<dt><dt>
{{Note
<dd class="notedate">Posted on May 27, 2017 - 11:58 (UTC)</dd>
|user= Dscha
<dt class="note">[[User:IT07|IT07]]</dt>
|timestamp= 20201023103900
<dd class="note">
|text= Change with {{arma3}} {{Link|https://dev.arma3.com/post/spotrep-00095|patch 2.00}}, [[compileFinal]] is now '''unable''' to store code type variables in [[profileNamespace]]!
in Arma 3 1.70.141838, compileFinal also works for profileNamespace and uiNamespace. But be careful with that.
}}
</dd>
 
<dt><dt>
<dd class="notedate">Posted on October 23, 2020 - 10:39 (UTC)</dd>
<dt class="note">[[User:Dscha|Dscha]]</dt>
<dd class="note">
Change with Arma 3 Patch {{Link|link= https://dev.arma3.com/post/spotrep-00095|text= 2.00}}, [[compileFinal]] is now '''unable''' to store code type variables in profileNamespace!
 
</dd>
 
</dl>

Revision as of 15:56, 6 April 2023

Hover & click on the images for description

Description

Description:
Compiles an expression and makes it final, preventing it from:
This feature is only available in the retail version of Arma 3.
Groups:
Strings

Syntax

Syntax:
compileFinal expression
Parameters:
expression: String or Arma 3 logo black.png2.14 Code
Return Value:
Code

Examples

Example 1:
MyCode = compileFinal "a = a + 1"; call MyCode; // Repeated compile won't have any effect MyCode = compileFinal "a = a + 2"; // Duplicate code will be final as well MyDuplicateCode = MyCode;
Example 2:
MyCode = compileFinal { systemChat "Hello World!"; };

Additional Information

See also:
compile compileScript isFinal call spawn

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
AgentRev01 - c
Posted on Aug 15, 2013 - 00:35 (UTC)
When broadcasting a compileFinal'ed variable using publicVariable or its variants, the variable also becomes final on the other client(s) and/or the server. Also, compileFinal does not prevent event handlers from being removed or overwritten.
IT07 - c
Posted on May 27, 2017 - 11:58 (UTC)
in Arma 3 v1.70.141838, compileFinal also works for profileNamespace and uiNamespace. But be careful with that.
Dscha - c
Posted on Oct 23, 2020 - 10:39 (UTC)
Change with Arma 3 patch 2.00, compileFinal is now unable to store code type variables in profileNamespace!