Jump to content

[Release] Custom Debug Monitor


Recommended Posts

I know this is a relatively common item to come across, but I have seen a large number of questions relating to these and have also been asked to make one by a few people so here it is!

 

GitHub Link

 

10492282_780169578712954_607550152932979

 

Installation of this monitor will remove the default one.

This is also toggle-able using the Insert key. Press it once to turn the monitor off, press it again to turn it back on.

 

If you already have your own debug monitor, but want to be able to toggle it like mine?

Follow the readme, rename your debug monitor to debug_monitor.sqf, and replace the one in the download!

 

Error Reporting:

 
BEFORE posting an issue on Github or on this forum:

  • Review the installation instructions and be sure you've done every step EXACTLY as stated. They are not forgiving. If one step is done incorrectly, it won't work.
  • Check your server's RPT log for errors. This will identify 99% of problems with the menu. Be ready to copy/paste the RPT log into Pastebin or Gist in an issue or in the discussion forum for help with troubleshooting.
  • If all else fails, install these tools onto a fresh, unedited mission.pbo and server.pbo to get it working, then start installing additional addons/mods one at a time until the admin tools break in order to identify the conflict.

If your problem persists after doing the above:

  • Do a quick search on this forum for a fix to your problem.
  • If you do not find a fix to your problem: post your problem on  forum
  • If the problem you are posting is a bug and not a general install problem then post it to this forum and to the github issues page.

 

Don't know how to code, but still want to help? Donate!

 

btn_donateCC_LG.gif

 

I also accept Crypto Currency: 

Bitcoin: 1GkzMzwnVwVpnUCVFaAyLDsgD9cqSfigdm

Litecoin: LbUrUxXzA557VeTWXM8jP7hNf3uZHEqW5b

Link to comment
Share on other sites

added yours to replace my players debug. thankz...

here is my admin with your player debug

top half is admin 

lower is player 

//Let Zeds know
[player,4,true,(getPosATL player)] spawn player_alertZombies;

/*
Change the UID's below to match those of you and your admin(s)
Your admins will get the advanced version of your debug monitor,
while your regular users will get the cut down version. 
*/

if ((getPlayerUID player) in ["76561118011664072","7656111980115761"]) then { 
	  
	  hintSilent parseText format ["
	<t size='0.95' font='Bitstream' align='left' >[%18]</t><t size='0.95' font='Bitstream' align='right'>[FPS: %10]</t><br/>
	<t size='0.95' font='Bitstream' align='center' color='#FFBF00'>Survived %7 Days</t><br/>
	<t size='0.95' font='Bitstream' align='left' >Players: %8</t><t size='0.95 'font='Bitstream' align='right'>Within 500m: %11</t><br/>
	<t size='0.95' font='Bitstream' align='left' >Vehicles:</t><t size='0.95' font='Bitstream'align='right'>%13(%14)</t><br/>
	<t size='0.95' font='Bitstream' align='left'>Air: %16</t><t size='0.95' font='Bitstream'align='right'>Sea: %23</t><br/>
	<t size='0.95' font='Bitstream' align='left' >All Bikes: %15</t><t size='0.95' font='Bitstream'align='right'>Cars: %17</t><br/>
	<t size='0.95' font='Bitstream' align='left' >Zombies (alive/total): </t><t size='0.95' font='Bitstream' align='right'>%20(%19)</t><br/>
	<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Zombies Killed: </t><t size='0.95' font='Bitstream' align='right'>%2</t><br/>
	<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Headshots: </t><t size='0.95' font='Bitstream' align='right'>%3</t><br/>
	<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Murders: </t><t size='0.95' font='Bitstream' align='right'>%4</t><br/>
	<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Bandits Killed: </t><t size='0.95' font='Bitstream' align='right'>%5</t><br/>
	<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Humanity: </t><t size='0.95' font='Bitstream' align='right'>%6</t><br/>
	<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Blood: </t><t size='0.95' font='Bitstream' align='right'>%9</t><br/>
	<t size='0.95' font='Bitstream' align='left' >GPS: %22</t><t size='0.95' font='Bitstream' align='right'>DIR: %24</t><br/>
	<t size='0.95'font='Bitstream'align='center' >%21</t><br/>",
	(name player),
	(player getVariable['zombieKills', 0]), 
	(player getVariable['headShots', 0]),
	(player getVariable['humanKills', 0]),
	(player getVariable['banditKills', 0]),
	(player getVariable['humanity', 0]),
	(dayz_skilllevel),
	(count playableUnits),
	r_player_blood,
	(round diag_fps),
	(({isPlayer _x} count (getPos vehicle player nearEntities [["AllVehicles"], 500]))-1),
	viewdistance,
	(count([6800, 9200, 0] nearEntities [["StaticWeapon","Car","Motorcycle","Tank","Air","Ship"],25000])),
	count vehicles,
	(count([6800, 9200, 0] nearEntities [["Motorcycle"],25000])),
	(count([6800, 9200, 0] nearEntities [["Air"],25000])),
	(count([6800, 9200, 0] nearEntities [["Car"],25000])),
	(gettext (configFile >> 'CfgVehicles' >> (typeof vehicle player) >> 'displayName')),
	(count entities "zZombie_Base"),
	({alive _x} count entities "zZombie_Base"),
	(getPosASL player),
	(mapGridPosition getPos player),
	(count([6800, 9200, 0] nearEntities [["Ship"],25000])),
	(round(getDir player))
];

} else {


	_time = (round(180-(serverTime)/60));
	_hours = (floor(_time/60));
	_minutes = (_time - (_hours * 60));

	switch(_minutes) do
	{
		case 9: {_minutes = "09"};
		case 8: {_minutes = "08"};
		case 7: {_minutes = "07"};
		case 6: {_minutes = "06"};
		case 5: {_minutes = "05"};
		case 4: {_minutes = "04"};
		case 3: {_minutes = "03"};
		case 2: {_minutes = "02"};
		case 1: {_minutes = "01"};
		case 0: {_minutes = "00"};
	};

	// You can delete the server website here line (entire line) if you want
	// You can also delete the entire TeamSpeak IP line if you want
	hintSilent parseText format ["
		<t size='1.25' font='Bitstream' align='center' color='#5882FA'>Total Calamity DayZ Overpoch</t><br/>
		<t size='1.05' font='Bitstream' align='center' color='#5882FA'>totalcalamity.enjin.com</t><br/> 
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'></t><t size='0.95 'font='Bitstream' align='right'></t><br/>
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Players Online: </t><t size='0.95 'font='Bitstream' align='right'>%1</t><br/>
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Murders: </t><t size='0.95' font='Bitstream' align='right'>%3</t><br/>
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Bandits Killed: </t><t size='0.95' font='Bitstream' align='right'>%4</t><br/>
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Zombies Killed: </t><t size='0.95' font='Bitstream' align='right'>%2</t><br/>
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Humanity: </t><t size='0.95' font='Bitstream' align='right'>%6</t><br/>
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Blood: </t><t size='0.95' font='Bitstream' align='right'>%5</t><br/>
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'>FPS: </t><t size='0.95' font='Bitstream' align='right'>%7</t><br/>
		<t size='0.95' font='Bitstream' align='left' color='#FFBF00'></t><t size='0.95 'font='Bitstream' align='right'></t><br/>
		<t size='1.15' font='Bitstream'align='center' color='#5882FA'>TS roguesgallery.teamspeak3.com </t><br/>
		<t size='1.15' font='Bitstream'align='center' color='#5882FA'>Server restart in %8:%9</t><br/>",

		(count playableUnits),
		(player getVariable['zombieKills', 0]),
		(player getVariable['humanKills', 0]),
		(player getVariable['banditKills', 0]),
		(player getVariable['USEC_BloodQty', r_player_blood]),
		(player getVariable['humanity', 0]),
		(round diag_fps),
		_hours,
		_minutes
];};

Link to comment
Share on other sites

Some interesting ideas there. I have played with a good amount of functions in the monitor like displaying when an admin is on and things like that. There is a lot more you can do with these than people think. I plan to update the monitor some more some time soon. I made it for my server and wanted it to be relatively minimalistic. After having made it a large number of people who watch my tutorials were asking for a debug menu so I figured I would just release it. I don't plan on it being anything too special, just really useful for players. I have considered writing a HUD instead of this though.

Link to comment
Share on other sites

Will the placement on my init work here?

if (!isDedicated) then {

[]ExecVM "service_point\service_point.sqf";
[] execVM "custom\Server_WelcomeCredits.sqf";
//Conduct map operations
0 fadeSound 0;
waitUntil {!isNil "dayz_loadScreenMsg"};
dayz_loadScreenMsg = (localize "STR_AUTHENTICATING");
[] execVM "custom\loadouts.sqf";
//Run the player monitor
_id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];
_playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";
 
        _nil = [] execVM "custom\JAEM\EvacChopper_init.sqf";
 
// Epoch Admin Tools
_adminListHandle = [] execVM "admintools\AdminList.sqf";
waitUntil{scriptDone _adminListHandle};
if ( !((getPlayerUID player) in AdminList) && !((getPlayerUID player) in ModList) && !((getPlayerUID player) in tempList)) then 
{
  [] execVM "\z\addons\dayz_code\system\antihack.sqf";
};
 
//Lights
//[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf";
 
 
if (isNil 'debugMonitor') then 
{
    debugMonitor = true;
    _nill = execvm "custom\debug_monitor.sqf";
};
};
 
#include "\z\addons\dayz_code\system\REsec.sqf"
 
//Custom mapaddons
[] execVM "mapaddons\nwaf.sqf";
[] execVM "mapaddons\belota.sqf";
[] execVM "mapaddons\zleno.sqf";
[] execVM "mapaddons\neaf.sqf";
[] execVM "mapaddons\bortrader.sqf";
[] execVM "mapaddons\elektro.sqf";
[] execVM "mapaddons\skaliskybridge.sqf";
[] execVM "mapaddons\cherno.sqf";
[] execVM "mapaddons\skaliskyislandbarracks.sqf";
 
//Custom bases
[] execVM "bases\AdminBase.sqf";
 
#include "\z\addons\dayz_code\system\BIS_Effects\init.sqf"
         // Epoch Admin Tools
[] execVM "admintools\Activate.sqf";
call compile preprocessFileLineNumbers "addons\bike\init.sqf";
      [] execvm 'AGN\agn_SafeZoneCommander.sqf';
//Tow and lift
  [] execVM "R3F_ARTY_AND_LOG\init.sqf";

   

Link to comment
Share on other sites

can we get seconds too in the restart time?

 

I can probably add that in

 

Will the placement on my init work here?

if (!isDedicated) then {

[]ExecVM "service_point\service_point.sqf";
[] execVM "custom\Server_WelcomeCredits.sqf";
//Conduct map operations
0 fadeSound 0;
waitUntil {!isNil "dayz_loadScreenMsg"};
dayz_loadScreenMsg = (localize "STR_AUTHENTICATING");
[] execVM "custom\loadouts.sqf";
//Run the player monitor
_id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];
_playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";
 
        _nil = [] execVM "custom\JAEM\EvacChopper_init.sqf";
 
// Epoch Admin Tools
_adminListHandle = [] execVM "admintools\AdminList.sqf";
waitUntil{scriptDone _adminListHandle};
if ( !((getPlayerUID player) in AdminList) && !((getPlayerUID player) in ModList) && !((getPlayerUID player) in tempList)) then 
{
  [] execVM "\z\addons\dayz_code\system\antihack.sqf";
};
 
//Lights
//[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf";
 
 
if (isNil 'debugMonitor') then 
{
    debugMonitor = true;
    _nill = execvm "custom\debug_monitor.sqf";
};
};
 
#include "\z\addons\dayz_code\system\REsec.sqf"
 
//Custom mapaddons
[] execVM "mapaddons\nwaf.sqf";
[] execVM "mapaddons\belota.sqf";
[] execVM "mapaddons\zleno.sqf";
[] execVM "mapaddons\neaf.sqf";
[] execVM "mapaddons\bortrader.sqf";
[] execVM "mapaddons\elektro.sqf";
[] execVM "mapaddons\skaliskybridge.sqf";
[] execVM "mapaddons\cherno.sqf";
[] execVM "mapaddons\skaliskyislandbarracks.sqf";
 
//Custom bases
[] execVM "bases\AdminBase.sqf";
 
#include "\z\addons\dayz_code\system\BIS_Effects\init.sqf"
         // Epoch Admin Tools
[] execVM "admintools\Activate.sqf";
call compile preprocessFileLineNumbers "addons\bike\init.sqf";
      [] execvm 'AGN\agn_SafeZoneCommander.sqf';
//Tow and lift
  [] execVM "R3F_ARTY_AND_LOG\init.sqf";

   

 

Looks ok

Link to comment
Share on other sites

I've installed this mod on my server and it's excellent. Thanks very much.

Just the one question. Can't get my head around how to reconfigure the server restart timer. Our server restarts at 6am and 6pm gmt but it says account down that is way off. Any clues?

Link to comment
Share on other sites

Debug menu comes up when I first join, then cant get it back up by pressing insert?

 

Do you use infistar?

 

I've installed this mod on my server and it's excellent. Thanks very much.

Just the one question. Can't get my head around how to reconfigure the server restart timer. Our server restarts at 6am and 6pm gmt but it says account down that is way off. Any clues?

 

Find this line: 

 

(round(180-(serverTime)/60);

 

Change it to:

(round(720-(serverTime)/60);

 

This goes off of server time and I don't think it can be made to read system time. This means that manual restarts will show improper times, but after a scheduled restart it will be correct again.

Link to comment
Share on other sites

Do you use infistar?

 

 

Find this line: 

 

(round(180-(serverTime)/60);

 

Change it to:

(round(720-(serverTime)/60);

 

This goes off of server time and I don't think it can be made to read system time. This means that manual restarts will show improper times, but after a scheduled restart it will be correct again.

thanks dude.

Link to comment
Share on other sites

  • 2 weeks later...

Is it possible to add a key toggle function to this monitor? For if players want to turn it off/hide it.

 

This has that already. You press insert. Please read the topic post before asking questions

 

 

 

I know this is a relatively common item to come across, but I have seen a large number of questions relating to these and have also been asked to make one by a few people so here it is!

 

GitHub Link

 

10492282_780169578712954_607550152932979

 

Installation of this monitor will remove the default one.

This is also toggle-able using the Insert key. Press it once to turn the monitor off, press it again to turn it back on.

 

If you already have your own debug monitor, but want to be able to toggle it like mine?

Follow the readme, rename your debug monitor to debug_monitor.sqf, and replace the one in the download!

 

Link to comment
Share on other sites

  • 3 weeks later...

Very nice. Thank you for this :)

 

Is is possible to show the uptime instead of the time till restart?

if so, could you guide me in the right direction of editing this?

 

Should be able to do it by changing

_time = serverTime;

_hours = (floor(_time/60/60));

_minutes = (floor(_time/60) - (_hours * 60));

Link to comment
Share on other sites

I have a slight issue with my debug. The script itself works perfectly fine, but the debug is automatically turned on when a player logs in. I want it to be turned off. This is actually somewhat weird because in my test server it's turned off when I log in, but in my public server it's turned on. Anyone have any idea what this might be about? This becomes an issue when I bring in missions because missions are announced as a debug window.

Link to comment
Share on other sites

I have a slight issue with my debug. The script itself works perfectly fine, but the debug is automatically turned on when a player logs in. I want it to be turned off. This is actually somewhat weird because in my test server it's turned off when I log in, but in my public server it's turned on. Anyone have any idea what this might be about? This becomes an issue when I bring in missions because missions are announced as a debug window.

 

Change this to false in the init: debugMonitor = true;

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...