skip to content
Frictional Game Wiki
User Tools
Register
Log In
Site Tools
Search
Tools
Show page
Old revisions
Backlinks
Recent Changes
Media Manager
Sitemap
Log In
Register
>
Recent Changes
Media Manager
Sitemap
Trace:
hpl2:tutorials:script:localandglobalvariables
<h1>Variables</h1> <div class="level1"> <p> A variable is letter or word used to represent a value that can be altered. The main types of variables are bool, string, int, and float. Bool is when the variable can be true or false. String is a letter, word, or phrase. Int is an integer (whole number). Float is a number with a decimal (can also be a whole number). </p> <p> Examples: </p> <p> int x = 1;<br/> int k = 73;<br/> float r = 5;<br/> float pi = 3.1415;<br/> bool tf = false;<br/> bool w = true;<br/> string h = "h";<br/> string aa = "lava";<br/> </p> </div> <h2>Local and Global Variables</h2> <div class="level2"> <p> Local and global variables are variables that have a certain scope compared to the script in which it is located in. There are certain levels of scope to a script, there is the function's scope, then there is the local scope, then there is the global scope. A function's scope consists of everything within its braces ({ }). Normal variables as shown above will only work in a function unless carried over to another function. </p> <p> A local variable's scope is the whole entire script, so if you made a local variable, then you wouldn't have to worry about having to carry it over from function to function. The downside to it is that you can't use the value of the local variable in commands. It is mostly used to check and see if the player has done multiple things within the map to make something greater happen. This is also the case with global variables, but it can be used over many levels in your custom story. Currently, I don't yet know how to properly use global variables, for I never had the need to use it. Here is an example of a local variable integer: </p> <p> <br/> </p> <pre class="code cpp"><span class="kw4">void</span> OnStart<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> SetLocalVarInt<span class="br0">(</span>"Var01", <span class="nu0">0</span><span class="br0">)</span><span class="sy4">;</span> AddEntityCollideCallback<span class="br0">(</span>"Player", "ScriptArea_1", "Func01", <span class="kw2">true</span>, <span class="nu0">1</span><span class="br0">)</span><span class="sy4">;</span> SetEntityPlayerInteractCallback<span class="br0">(</span>"Object_1", "Func02", <span class="kw2">true</span>, <span class="nu0">1</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span> <span class="kw4">void</span> Func01<span class="br0">(</span>string <span class="sy3">&</span>in asParent, string <span class="sy3">&</span>in asChild, <span class="kw4">int</span> alState<span class="br0">)</span> <span class="br0">{</span> AddLocalVarInt<span class="br0">(</span>"Var01", <span class="nu0">1</span><span class="br0">)</span><span class="sy4">;</span> Func03<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span> <span class="kw4">void</span> Func02<span class="br0">(</span>string <span class="sy3">&</span>in asEntity<span class="br0">)</span> <span class="br0">{</span> AddLocalVarInt<span class="br0">(</span>"Var01", <span class="nu0">1</span><span class="br0">)</span><span class="sy4">;</span> Func03<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span> <span class="kw4">void</span> Func03<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span> <span class="br0">(</span>GetLocalVarInt<span class="br0">(</span>"Var01"<span class="br0">)</span> <span class="sy1">==</span> <span class="nu0">2</span><span class="br0">)</span> <span class="br0">{</span> AddDebugMessage<span class="br0">(</span>"Run<span class="sy3">!</span>", <span class="kw2">false</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span> <span class="br0">}</span> </pre><p> </p> <p> This is what it says in the Script Functions page about what GetLocalVarInt, AddLocalVarInt, and SetLocalVarInt are and also how there can be a GetLocalVarFloat, AddLocalVarFloat, and SetLocalVarFloat. There are also GetLocalVarString, AddLocalVarString, and SetLocalVarString. </p> </div> <h4>Local</h4> <div class="level4"> <p> Local variables can be used throughout the same script file. </p> <pre class="code c++"><span class="kw4">void</span> SetLocalVarInt<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">int</span> alVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">void</span> AddLocalVarInt<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">int</span> alVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">int</span> GetLocalVarInt<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="br0">)</span><span class="sy0">;</span> </pre><p> </p> <pre class="code c++"><span class="kw4">void</span> SetLocalVarFloat<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">float</span> afVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">void</span> AddLocalVarFloat<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">float</span> afVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">float</span> GetLocalVarFloat<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="br0">)</span><span class="sy0">;</span> </pre><p> </p> <pre class="code c++"><span class="kw4">void</span> SetLocalVarString<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">const</span> string<span class="sy0">&</span> asVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">void</span> AddLocalVarString<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> string<span class="sy0">&</span> asVal<span class="br0">)</span><span class="sy0">;</span> string<span class="sy0">&</span> GetLocalVarString<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="br0">)</span><span class="sy0">;</span> </pre><p> </p> </div> <h4>Global</h4> <div class="level4"> <p> Global variables can be used throughout several maps and can be accessed by several script files. </p> <pre class="code c++"><span class="kw4">void</span> SetGlobalVarInt<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">int</span> alVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">void</span> AddGlobalVarInt<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">int</span> alVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">int</span> GetGlobalVarInt<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="br0">)</span><span class="sy0">;</span> </pre><p> </p> <pre class="code c++"><span class="kw4">void</span> SetGlobalVarFloat<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">float</span> afVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">void</span> AddGlobalVarFloat<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">float</span> afVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">float</span> GetGlobalVarFloat<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="br0">)</span><span class="sy0">;</span> </pre><p> </p> <pre class="code c++"><span class="kw4">void</span> SetGlobalVarString<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> <span class="kw4">const</span> string<span class="sy0">&</span> asVal<span class="br0">)</span><span class="sy0">;</span> <span class="kw4">void</span> AddGlobalVarString<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="sy0">,</span> string<span class="sy0">&</span> asVal<span class="br0">)</span><span class="sy0">;</span> string<span class="sy0">&</span> GetGlobalVarString<span class="br0">(</span>string<span class="sy0">&</span> asName<span class="br0">)</span><span class="sy0">;</span> </pre><p> </p> <p> The Set-Var- is used to set the variable's value. The Add-Var- is used to add the given number or letter(s) to the value of the existing variable. The GetVaris used when checking the value of the variable. </p> <p> <b>This wiki entry has been made by Kyle S. If you have any comments or need help with this, send me a private message on the Frictional Games Forum. (My name on there is Kyle)</b> </p> </div>
hpl2/tutorials/script/localandglobalvariables.txt
· Last modified: 2011/07/14 12:45 by
kyle
Page Tools
Show page
Old revisions
Backlinks
Export to PDF
Back to top