big refactor, WIP!
This commit is contained in:
89
framework/performance/functions/fn_addDNI_PlayerFPS.sqf
Normal file
89
framework/performance/functions/fn_addDNI_PlayerFPS.sqf
Normal file
@@ -0,0 +1,89 @@
|
||||
#include "..\script_component.hpp"
|
||||
|
||||
if ( !hasInterface ) exitWith {};
|
||||
|
||||
diag_log text "[MILSIM] (DNI) writing variable loop";
|
||||
|
||||
[] spawn {
|
||||
while {true} do {
|
||||
player setVariable ["DNI_PlayerFPS", floor diag_fps, true];
|
||||
sleep 1
|
||||
};
|
||||
};
|
||||
|
||||
diag_log text "[MILSIM] (DNI) variable loop complete";
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
//Waits until curators are initalized in order to check//
|
||||
//if player is zeus to run the fps scripts //
|
||||
/////////////////////////////////////////////////////////
|
||||
diag_log text "[MILSIM] (DNI) waiting for curators";
|
||||
|
||||
waitUntil {
|
||||
private _hasCurators = (count allcurators) > 0;
|
||||
private _hasInitializedCurators = (count (call BIS_fnc_listCuratorPlayers)) > 0;
|
||||
private _curatorsInitialized = !_hasCurators || _hasInitializedCurators;
|
||||
((time > 2) || _curatorsInitialized)
|
||||
};
|
||||
|
||||
diag_log text "[MILSIM] (DNI) curator init complete";
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
//If player is a curator it will run the script and each/
|
||||
//player will have their FPS appear beneath them //
|
||||
/////////////////////////////////////////////////////////
|
||||
if (player in (call bis_fnc_listcuratorplayers)) then {
|
||||
|
||||
diag_log text "[MILSIM] (DNI) player is in curator list, adding Draw3D handler";
|
||||
|
||||
addMissionEventHandler ["Draw3D", {
|
||||
{
|
||||
_distance = position curatorCamera distance _x;
|
||||
//if zeus camera is farther than 1200 meters away from the targets the text will not display
|
||||
if (_distance < 1200) then {
|
||||
_playerFPS = _x getVariable ["DNI_PlayerFPS",50];
|
||||
//if the FPS is below 20 it turns red and becomes more visible for zeus to see so they are aware
|
||||
if (_playerFPS <20) then
|
||||
{
|
||||
drawIcon3D
|
||||
[
|
||||
"",//Path to image displayed near text
|
||||
[1,0,0,0.7],//color of the text using RGBA
|
||||
position _x,//position of the text _x referring to the player in 'allPlayers'
|
||||
1,//Width
|
||||
2,//height from position, below
|
||||
0,//angle
|
||||
format["%1 FPS: %2", name _x, str _playerFPS],//text to be displayed
|
||||
0,//shadow on text, 0=none,1=shadow,2=outline
|
||||
0.05,//text size
|
||||
"PuristaMedium",//text font
|
||||
"center"//align text left, right, or center
|
||||
];
|
||||
}
|
||||
//if the FPS is above 20 text is smaller and less visible as to not conern zeus as much
|
||||
else
|
||||
{
|
||||
drawIcon3D
|
||||
[
|
||||
"",//Path to image displayed near text
|
||||
[1,1,1,0.3],//color of the text using RGBA
|
||||
position _x,//position of the text _x referring to the player in 'allPlayers'
|
||||
1,//Width
|
||||
2,//height from position, below
|
||||
0,//angle
|
||||
format["%1 FPS: %2", name _x, str _playerFPS],//text to be displayed
|
||||
0,//shadow on text, 0=none,1=shadow,2=outline
|
||||
0.03,//text size
|
||||
"PuristaMedium",//text font
|
||||
"center"//align text left, right, or center
|
||||
];
|
||||
};
|
||||
};
|
||||
} forEach allPlayers;
|
||||
//Here is the array of units you wish to display the FPS text for, it can be
|
||||
//changed to be an array of specific units or players if you wish
|
||||
}];
|
||||
};
|
||||
/////////////////////////////////////////////////////////
|
||||
/////////////////////End FPS Script//////////////////////
|
||||
/////////////////////////////////////////////////////////
|
||||
Reference in New Issue
Block a user