startLoadingScreen: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " \| arma2 \| *([0-9]\.[0-9]{2}) * " to " | arma2 |$1 |game2= arma2oa |version2= 1.50 |game3= tkoh |version3= 1.00 |game4= arma3 |version4= 0.50 ")
m (Text replacement - " ( *class [a-zA-Z0-9_]+):( +|[^ ])" to " $1 : ")
 
(34 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{RV|type=command
{{RV|type=command


| arma2
|game1= arma2
|1.00
|version1= 1.00


|game2= arma2oa
|game2= arma2oa
Line 15: Line 15:
|gr1= System
|gr1= System


| Shows loading screen with the given text, using the given resource. While loading screen is shown, simulation and scene drawing is disabled, user control is disabled, mouse cursor is hidden, scripts run at full speed (50ms per frame instead of 3ms per frame for [[Scheduler|Scheduled Scripts]]).<br>
|descr= Shows loading screen with the given text, using the given resource. While loading screen is shown, simulation and scene drawing is disabled, user control is disabled, mouse cursor is hidden, scripts run at full speed (50ms per frame instead of 3ms per frame for [[Scheduler|Scheduled Scripts]]).<br>


{{Feature | Informative |
{{Feature|informative|2=
By default, [[startLoadingScreen]] will use "RscDisplayNotFreeze" resource.<br>
By default, [[startLoadingScreen]] will use "RscDisplayNotFreeze" resource.<br>
A custom resource can be defined in [[Description.ext]], and a full black background will be used by default - the following controls are supported by the engine:
A custom resource can be defined in [[Description.ext]], and a full black background will be used by default - the following controls are supported by the engine:
* idc {{=}} 101 - text (type {{=}} 0) or picture (type {{=}} 48). The text will be set to the value provided by the command argument.
* idc = 101 - text (type = 0) or picture (type = 48). The text will be set to the value provided by the command argument.
* idc {{=}} 103 - progress (type {{=}} 8) or animated texture (type {{=}} 45). This control indicates global hardcoded mission loading progress and is useless after the mission is loaded.
* idc = 103 - progress (type = 8) or animated texture (type = 45). This control indicates global hardcoded mission loading progress and is useless after the mission is loaded.
* idc {{=}} 104 - progress (type {{=}} 8). This control's progress is initially set to 0 and can be manipulated with [[progressLoadingScreen]] command.  
* idc = 104 - progress (type = 8). This control's progress is initially set to 0 and can be manipulated with [[progressLoadingScreen]] command.  


Resource can be defined in [[Description.ext]]; it must NOT be defined as <tt>RscTitles</tt>!
Resource can be defined in [[Description.ext]]; it must NOT be defined as {{hl|RscTitles}}!
<syntaxhighlight lang="cpp"></syntaxhighlight>
<spoiler text="See config example">
<spoiler text="See config example">
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
Line 37: Line 36:
h = 0.037;
h = 0.037;
w = 0.3;
w = 0.3;
style = 0x100;  
style = 0x100;
font = Zeppelin32;
font = Zeppelin32;
SizeEx = 0.03921;
SizeEx = 0.03921;
Line 44: Line 43:
linespacing = 1;
linespacing = 1;
};
};
class RscPicture
class RscPicture
{
{
Line 57: Line 57:
text = "";
text = "";
};
};
class RscLoadingText : RscText
class RscLoadingText : RscText
{
{
Line 67: Line 68:
colorText[] = { 0.543, 0.5742, 0.4102, 1.0 };
colorText[] = { 0.543, 0.5742, 0.4102, 1.0 };
};
};
class RscProgress
class RscProgress
{
{
Line 77: Line 79:
colorBar[] = { 1, 1, 1, 1 };
colorBar[] = { 1, 1, 1, 1 };
};
};
class RscProgressNotFreeze
class RscProgressNotFreeze
{
{
Line 88: Line 91:
texture = "#(argb,8,8,3)color(0,0,0,0)";
texture = "#(argb,8,8,3)color(0,0,0,0)";
};
};
// end of basic defines
// end of basic defines


Line 109: Line 113:
colorBackground[] = { 0, 0, 1, 1 };
colorBackground[] = { 0, 0, 1, 1 };
};
};
class nicePic : RscPicture
class nicePic : RscPicture
{
{
Line 119: Line 124:
};
};
};
};
class controls
class controls
{
{
Line 125: Line 131:
text = "$STR_LOADING"; // "Loading" text in the middle of the screen
text = "$STR_LOADING"; // "Loading" text in the middle of the screen
};
};
class CA_Progress : RscProgress // progress bar, has to have idc 104
class CA_Progress : RscProgress // progress bar, has to have idc 104
{
{
Line 132: Line 139:
texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
};
};
class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
{
{
idc = 103;
idc = 103;
};
};
class Name2: RscText // the text on the top-left
 
class Name2 : RscText // the text on the top-left
{
{
idc = 101;
idc = 101;
Line 153: Line 162:
}}
}}


{{Feature | Warning |
{{Feature|warning|
* The loading screen does '''not''' end by itself and absolutely needs a call to [[endLoadingScreen]] command
* The loading screen does '''not''' end by itself and absolutely needs a call to [[endLoadingScreen]] command
* Game simulation is disabled during Loading Screen operation (at least in single player):
* Game simulation is disabled during Loading Screen operation (at least in single player):
Line 159: Line 168:
** [[waitUntil]] ''can'' be used to wait for variable initialisation or script loading
** [[waitUntil]] ''can'' be used to wait for variable initialisation or script loading
}}
}}
{{Feature|arma3 | Use [[BIS_fnc_startLoadingScreen]] to prevent potential usage conflicts.}}
{{Feature|arma3|Use [[BIS_fnc_startLoadingScreen]] to prevent potential usage conflicts.}}


| [[startLoadingScreen]] [text, resource]
|s1= [[startLoadingScreen]] [text, resource]


|p1= text: [[String]]
|p1= text: [[String]]


|p2= resource (Optional): [[String]]
|p2= resource: [[String]] - (Optional)


| [[Nothing]]
|r1= [[Nothing]]


|x1= <code>[[startLoadingScreen]] ["Loading My Mission, please wait..."];</code>
|x1= <sqf>startLoadingScreen ["Loading My Mission, please wait..."];</sqf>


|x2= <code>[[startLoadingScreen]] ["Can't skip loading time...", "MyLoadingRsc"];</code>
|x2= <sqf>startLoadingScreen ["Can't skip loading time...", "MyLoadingRsc"];</sqf>


|x3= <code>[[startLoadingScreen]] ["Loading My Mission"];
|x3= <sqf>
{{cc|code}}
startLoadingScreen ["Loading My Mission"];
[[progressLoadingScreen]] 0.5;
// code
{{cc|code}}
progressLoadingScreen 0.5;
[[endLoadingScreen]];</code>
// code
endLoadingScreen;
</sqf>


|x4= <code>{{cc|this structure prevents error-prone or lengthy code to miss [[endLoadingScreen]].}}
|x4= <sqf>
[[private]] _maxTime = [[diag_tickTime]] + 30; {{cc|max 30s of loading}}
// this structure prevents error-prone or lengthy code to miss endLoadingScreen.
private _maxTime = diag_tickTime + 30; // max 30s of loading


[[startLoadingScreen]] ["Loading"];
startLoadingScreen ["Loading"];
[[private]] _handle = [] [[spawn]] {
private _handle = [] spawn {
{{cc|code that may crash or take too long}}
// code that may crash or take too long
};
};


[[waitUntil]] { [[uiSleep]] .1; [[scriptDone]] _handle {{!}}{{!}} [[diag_tickTime]] > _maxTime };
waitUntil { uiSleep .1; scriptDone _handle || diag_tickTime > _maxTime };
[[endLoadingScreen]];</code>
endLoadingScreen;
</sqf>


|seealso= [[endLoadingScreen]], [[progressLoadingScreen]], [[BIS_fnc_startLoadingScreen]], [[import]]
|seealso= [[endLoadingScreen]] [[progressLoadingScreen]] [[BIS_fnc_startLoadingScreen]] [[import (Config)]]
}}
}}


<dl class="command_description">
{{Note
<dt><dt>
|user= Killzone_Kid
<dd class="notedate">Posted on November 21, 2015 - 18:38 (UTC)</dd>
|timestamp= 20151121183800
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
|text= The default {{arma3}} loading screen has no control to display text.
<dd class="note">
}}
The default {{arma3}} loading screen has no control to display text.
</dd>
 
</dl>
 
 
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}

Latest revision as of 12:03, 6 December 2023

Hover & click on the images for description

Description

Description:
Shows loading screen with the given text, using the given resource. While loading screen is shown, simulation and scene drawing is disabled, user control is disabled, mouse cursor is hidden, scripts run at full speed (50ms per frame instead of 3ms per frame for Scheduled Scripts).
By default, startLoadingScreen will use "RscDisplayNotFreeze" resource.

A custom resource can be defined in Description.ext, and a full black background will be used by default - the following controls are supported by the engine:

  • idc = 101 - text (type = 0) or picture (type = 48). The text will be set to the value provided by the command argument.
  • idc = 103 - progress (type = 8) or animated texture (type = 45). This control indicates global hardcoded mission loading progress and is useless after the mission is loaded.
  • idc = 104 - progress (type = 8). This control's progress is initially set to 0 and can be manipulated with progressLoadingScreen command.

Resource can be defined in Description.ext; it must NOT be defined as RscTitles!

// basic defines - pre "import" keyword in v2.02
class RscText
{
	type = 0;
	idc = -1;
	x = 0;
	y = 0;
	h = 0.037;
	w = 0.3;
	style = 0x100;
	font = Zeppelin32;
	SizeEx = 0.03921;
	colorText[] = { 1, 1, 1, 1 };
	colorBackground[] = { 0, 0, 0, 0 };
	linespacing = 1;
};

class RscPicture
{
	access = 0;
	type = 0;
	idc = -1;
	style = 48;
	colorBackground[] = { 0, 0, 0, 0 };
	colorText[] = { 1, 1, 1, 1 };
	font = "TahomaB";
	sizeEx = 0;
	lineSpacing = 0;
	text = "";
};

class RscLoadingText : RscText
{
	style = 2;
	x = 0.323532;
	y = 0.666672;
	w = 0.352944;
	h = 0.039216;
	sizeEx = 0.03921;
	colorText[] = { 0.543, 0.5742, 0.4102, 1.0 };
};

class RscProgress
{
	x = 0.344;
	y = 0.619;
	w = 0.313726;
	h = 0.0261438;
	texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
	colorFrame[] = { 0, 0, 0, 0 };
	colorBar[] = { 1, 1, 1, 1 };
};

class RscProgressNotFreeze
{
	idc = -1;
	type = 45;
	style = 0;
	x = 0.022059;
	y = 0.911772;
	w = 0.029412;
	h = 0.039216;
	texture = "#(argb,8,8,3)color(0,0,0,0)";
};

// end of basic defines

class WIKI_loadingScreen
{ 
	idd = -1;
	duration = 10e10;
	fadein = 0;
	fadeout = 0;
	name = "loading screen";
	class controlsBackground
	{
		class blueBackground : RscText // covers the black screen
		{
			x = safezoneXAbs;
			y = safezoneY;
			w = safezoneWAbs;
			h = safezoneH;
			text = "";
			colorText[] = { 0, 0, 0, 0 };
			colorBackground[] = { 0, 0, 1, 1 };
		};

		class nicePic : RscPicture
		{
			style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO
			x = safezoneX + safezoneW/2 - 0.25;
			y = safezoneY + safezoneH/2 - 0.2;
			w = 0.5;
			h = 0.4;
			text = "img\nicePic.paa";
		};
	};

	class controls
	{
		class Title1 : RscLoadingText
		{
			text = "$STR_LOADING"; // "Loading" text in the middle of the screen
		};

		class CA_Progress : RscProgress // progress bar, has to have idc 104
		{
			idc = 104;
			type = 8; // CT_PROGRESS
			style = 0; // ST_SINGLE
			texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
		};

		class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
		{
			idc = 103;
		};

		class Name2 : RscText // the text on the top-left
		{
			idc = 101;
			x = 0.05;
			y = 0.029412;
			w = 0.9;
			h = 0.04902;
			text = "";
			sizeEx = 0.05;
			colorText[] = { 0.543, 0.5742, 0.4102, 1.0 };
		};
	};
};
↑ Back to spoiler's top
  • The loading screen does not end by itself and absolutely needs a call to endLoadingScreen command
  • Game simulation is disabled during Loading Screen operation (at least in single player):
Arma 3
Use BIS_fnc_startLoadingScreen to prevent potential usage conflicts.
Groups:
System

Syntax

Syntax:
startLoadingScreen [text, resource]
Parameters:
text: String
resource: String - (Optional)
Return Value:
Nothing

Examples

Example 1:
startLoadingScreen ["Loading My Mission, please wait..."];
Example 2:
startLoadingScreen ["Can't skip loading time...", "MyLoadingRsc"];
Example 3:
startLoadingScreen ["Loading My Mission"]; // code progressLoadingScreen 0.5; // code endLoadingScreen;
Example 4:
// this structure prevents error-prone or lengthy code to miss endLoadingScreen. private _maxTime = diag_tickTime + 30; // max 30s of loading startLoadingScreen ["Loading"]; private _handle = [] spawn { // code that may crash or take too long }; waitUntil { uiSleep .1; scriptDone _handle || diag_tickTime > _maxTime }; endLoadingScreen;

Additional Information

See also:
endLoadingScreen progressLoadingScreen BIS_fnc_startLoadingScreen import (Config)

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
Killzone_Kid - c
Posted on Nov 21, 2015 - 18:38 (UTC)
The default Arma 3 loading screen has no control to display text.