Jump to content
rkuhnjr

Sector Ticket Display for Non-Sector MP

Recommended Posts

Is there anyone to utilize the Sector Based Ticket display in the upper right for no Sector Based games like TDM?

I want to just utilize the UI elements to display the scoring.

 

I search high and low and even scoured through the functions but did not see anything that stands out.

 

Or is there a better way to display the score for a TDM?

 

Score.jpg

Share this post


Link to post
Share on other sites

Judging from the lack of response I would say there is not.

Decided to make my own that sits on the top instead

 

ScoreBoard.hpp

class ScoreBox
{
	colorText[] = {1,1,1,1};
	font = "EtelkaNarrowMediumPro";
	y = safeZoneY + .01;
	h = 0.06; 
	w = 0.06;
};

class NoText : ScoreBox
{
	colorBackground[] = {0,0,0,1};
	sizeEx = 0.0; 
};

class ScoreFlag : NoText
{
	idc = -1;
	type = 0; 
	style = 48;
};

class ScoreTxt : ScoreBox
{
	type = 0; 
	style = 2;
	sizeEx = 0.03; 
	colorBackground[] = {0,0,0,.3};
	text = "999";
	shadow = 2;	
};

class RscTitles 
{ 
	class scoreboard 
	{ 
		idd = 29290;  
		enableDisplay = 1;
		duration = 9999;
		fadein = 0;
		fadeout = 0;
		onLoad = "uiNamespace setVariable [""ui_scoreboard"", _this select 0]";
		
		class controls 
		{ 
			class score_backdrop : NoText
			{ 
				idc = -1; 
				type = 0; 
				style = 96;
				x = .355;
				y = safeZoneY;
				h = 0.08; 
				w = 0.29; 
				text = ""; 
			};
			
			class flg_blufor : ScoreFlag
			{  
				x = .365;
				text = "\A3\Data_F\Flags\Flag_nato_CO.paa"; 
			}; 
			
			class flg_opfor : ScoreFlag 
			{ 
				x = .435;
				text = "\A3\Data_F\Flags\Flag_CSAT_CO.paa";  
			}; 
			
			class flg_independent : ScoreFlag 
			{ 
				x = .505; 
				text = "\A3\Data_F\Flags\Flag_AAF_CO.paa"; 
			}; 
			
			class flg_civilian : ScoreFlag 
			{ 
				x = .575;
				text = "\A3\Data_F\Flags\Flag_FIA_CO.paa";  
			};

			class score_blufor : ScoreTxt
			{ 
				idc = 29295; 
				x = .365;				
			}; 
			
			class score_opfor : ScoreTxt 
			{ 
				idc = 29296; 
				x = .435;				
			}; 
			
			class score_independent : ScoreTxt 
			{ 
				idc = 29297; 
				x = .505;
			}; 
			
			class score_civilian : ScoreTxt 
			{ 
				idc = 29298; 
				x = .575;
			};  			
		}; 
	}; 
	
}; 

Include it in your Description.ext

#include "scoreboard.hpp"

call it in init:

99 cutRsc ["scoreboard", "PLAIN"];

Update it via IDC like so:

((uiNamespace getVariable "ui_scoreboard") displayCtrl 29295) ctrlSetText "100";

Looks like:

 

CustomScore.jpg

Share this post


Link to post
Share on other sites

As for finding a way to change texts and such you would need to find the idd associated with the score board resource.

Because the scoreboard is a RscTitle is it likely that you will need to retirieve a variable from uiNamespace (you can check the onLoad action of the resource to find the variable name)

 

It may also be that the controls are dynamically created using the ctrlCreate command. If this is the case, it may be likely that they are added to the game display. If so, you would need to return the display:

_display = findDisplay 46;

Reference code below (not tested - intended for insight only)

// Scoreboard resource defined in RscTitles

_display = uiNamespace getVariable ["RscScoreboard_idd",displayNull];
if (isNull _display) exitWith {fales};

_controls = allControls _display;

// You can then access the controls

Hope this helps,

 

Bull

Share this post


Link to post
Share on other sites

As for finding a way to change texts and such you would need to find the idd associated with the score board resource.

Because the scoreboard is a RscTitle is it likely that you will need to retirieve a variable from uiNamespace (you can check the onLoad action of the resource to find the variable name)

 

It may also be that the controls are dynamically created using the ctrlCreate command. If this is the case, it may be likely that they are added to the game display. If so, you would need to return the display:

_display = findDisplay 46;
Reference code below (not tested - intended for insight only)

// Scoreboard resource defined in RscTitles

_display = uiNamespace getVariable ["RscScoreboard_idd",displayNull];
if (isNull _display) exitWith {fales};

_controls = allControls _display;

// You can then access the controls
Hope this helps,

 

Bull

Thanks! I will play around with that and see, out of curiosity how did you find the display id? Good guess? Or some reference in the wiki that I don't know about?

Share this post


Link to post
Share on other sites

Thanks! I will play around with that and see, out of curiosity how did you find the display id? Good guess? Or some reference in the wiki that I don't know about?

 

The display idd are in the game configuration files. You can either unpack the game asset folders using Arma Tools or you can access the Config Viewer in the mission editor (Crtl + G). You need to be looking in ui_f (if you unpacked the game folders) or for the Rsc* entries in the config viewer (the displays id number is IDD - ID Display and the controls id number is IDC - ID Control: just so you know how to differentiate, you are looking for a Display). As I have said above, you cannot access RscTitles displays using findDisplay, you will most likely have to use uinamespace getvariable ['XXXX',displayNull]; The uiNamepace variable will be referenced in the OnLoad attribute.

 

Hope this helps,

 

Bull

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

×