Hi,
First of all, nice work on your script ! Thank you !
I have a strange problem though.
It works perfectly with Arma 3 epoch except when I add a Status bar.
Both R3F and the Status bar works independently but when they are running together, the players connect with no items. Both scripts are still working but something is messing with the player loading.
I've tried everything I could think of in order to find the source of the bug but I got nothing. I even re-installed a fresh new server and added those two scripts only to make sure there was no other interference.
Here is the init.sqf of my mission :
//Tow and lift
[] execVM "R3F_LOG\init.sqf";
//Status bar
[] execVM "scripts\fn_statusBar.sqf";
Here is the description.ext of my mission :
author = "Epoch Mod Team";
class Header
{
gameType = Sandbox;
minPlayers = 1;
maxPlayers = 100;
};
respawn = "BASE";
respawnDelay = 600;
respawnDialog = 0;
onLoadMission= "Epoch";
OnLoadIntro = "Welcome to Epoch Mod";
loadScreen = "\x\addons\a3_epoch_assets\pictures\loadScreen_ca.paa";
OnLoadIntroTime = False;
OnLoadMissionTime = False;
onLoadName = "Epoch Mod";
disabledAI = true;
scriptedPlayer = 1;
disableChannels[]={0,1,2,6};
enableItemsDropping = 0;
briefing = 0;
debriefing = 0;
enableDebugConsole = 0;
joinUnassigned = 0;
respawnOnStart = 0;
forceRotorLibSimulation = 1;
corpseManagerMode = 1;
corpseLimit = 10;
corpseRemovalMinTime = 1200;
corpseRemovalMaxTime = 3600;
wreckManagerMode = 1;
wreckLimit = 2;
wreckRemovalMinTime = 60;
wreckRemovalMaxTime = 360;
class CfgRemoteExecCommands {};
class RscTitles
{
#include "dialog\statusBar.hpp"
};
#include "R3F_LOG\desc_include.h"
Here is the Status bar script (fn_statusBar.sqf) :
diag_log "inside status init";
waitUntil {!(isNull (findDisplay 46))};
disableSerialization;
/*
File: fn_statusBar.sqf
Author: Osef (Ported to EpochMod by piX)
Edited by: [piX]
Description: Puts a small bar in the bottom centre of screen to display in-game information
PLEASE KEEP CREDITS - THEY ARE DUE TO THOSE WHO PUT IN THE EFFORT!
*/
_rscLayer = "osefStatusBar" call BIS_fnc_rscLayer;
_rscLayer cutRsc["osefStatusBar","PLAIN"];
systemChat format["statusBar Loading player info...", _rscLayer];
[] spawn {
sleep 5;
_counter = 180;
_timeSinceLastUpdate = 0;
while {true} do
{
sleep 1;
_counter = _counter - 1;
_time = (round(240-(serverTime)/60)); //edit the '240' (60*4=240) to change the countdown timer if your server restarts are shorter or longer than 4 hour intervals
_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"};
};
((uiNamespace getVariable "osefStatusBar")displayCtrl 1000)ctrlSetText format["FPS: %1 | PLAYERS: %2 | DAMAGE: %3 | KRYPTO: %4 | HUNGER: %5 | THIRST: %6 | GRIDREF: %7 | RESTART IN: %8:%9", round diag_fps, count playableUnits, damage player, EPOCH_playerCrypto, EPOCH_playerHunger, EPOCH_playerThirst, mapGridPosition player, _hours, _minutes, _counter];
};
};
And, finally, here is the content of statusBar.hpp :
#define ST_RIGHT 0x01
class osefStatusBar {
idd = -1;
onLoad = "uiNamespace setVariable ['osefStatusBar', _this select 0]";
onUnload = "uiNamespace setVariable ['osefStatusBar', objNull]";
onDestroy = "uiNamespace setVariable ['osefStatusBar', objNull]";
fadein = 0;
fadeout = 0;
duration = 10e10;
movingEnable = 0;
controlsBackground[] = {};
objects[] = {};
class controls {
class statusBarText {
idc = 1000;
x = safezoneX + safezoneW - 2.10;
y = safezoneY + safezoneH - 0.05;
w = 1.55;
h = 0.06;
shadow = 1;
colorBackground[] = { 1, 0.3, 0, 0.0 };
font = "PuristaSemibold";
size = 0.04;
type = 13;
style = 0;
text="Loading statusBar...";
class Attributes {
align="right";
color = "#ffffff";
};
};
};
};
Anyone has an Idea why this wouldn't work ?
Thanks !