add global player count, mission slots count, update handleChatMessage
This commit is contained in:
@@ -19,7 +19,7 @@ class CfgFunctions {
|
||||
};
|
||||
class RangerMetrics_event {
|
||||
class functions {
|
||||
file = "\RangerMetrics\functions\capture\EHOnly";
|
||||
file = "\RangerMetrics\functions\capture\serverEH";
|
||||
class ace_unconscious {};
|
||||
class EntityKilled {};
|
||||
class Explosion {};
|
||||
@@ -31,12 +31,17 @@ class CfgFunctions {
|
||||
class milsim_serverEfficiency {};
|
||||
};
|
||||
};
|
||||
class RangerMetrics_event {
|
||||
class functions {
|
||||
file = "\RangerMetrics\functions\capture\clientEH";
|
||||
};
|
||||
};
|
||||
class RangerMetrics_cDefinitions {
|
||||
class functions {
|
||||
file = "\RangerMetrics\functions\captureDefinitions";
|
||||
class server_poll {};
|
||||
class server_missionEH {};
|
||||
class client_poll {};
|
||||
class client_EH {postInit = 1;};
|
||||
// class clientEvent {};
|
||||
class server_CBA {};
|
||||
class unit_handlers {};
|
||||
|
||||
@@ -113,3 +113,21 @@ private _allPlayers = call BIS_fnc_listPlayers;
|
||||
};
|
||||
|
||||
} forEach [east, west, independent, civilian];
|
||||
|
||||
|
||||
|
||||
if (isServer) then {
|
||||
[
|
||||
_settings get "bucket",
|
||||
"player_count",
|
||||
nil,
|
||||
[
|
||||
["int", "players_connected", {
|
||||
private _info = getUserInfo _x;
|
||||
if (!isNil "_info") then {
|
||||
_info select 7
|
||||
} else {false}
|
||||
} count _allPlayers]
|
||||
]
|
||||
] call RangerMetrics_fnc_queue;
|
||||
};
|
||||
@@ -16,7 +16,13 @@ private _settings = RangerMetrics_recordingSettings get "runningMission";
|
||||
getMissionConfigValue ["onLoadName", ""]
|
||||
],
|
||||
["string","author", getMissionConfigValue ["author", ""]],
|
||||
["string","server_name",serverName]
|
||||
["string","server_name",serverName],
|
||||
["int", "playable_slots_west", playableSlotsNumber west],
|
||||
["int", "playable_slots_east", playableSlotsNumber east],
|
||||
["int", "playable_slots_guer", playableSlotsNumber independent],
|
||||
["int", "playable_slots_civ", playableSlotsNumber civilian],
|
||||
["int", "playable_slots_logic", playableSlotsNumber sideLogic]
|
||||
|
||||
],
|
||||
["profile", "server", "world"] // context
|
||||
] call RangerMetrics_fnc_queue;
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
if (!isServer) exitWith {};
|
||||
|
||||
|
||||
// remoteExec to all machines with JIP -- will trigger when local
|
||||
{
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
RangerMetrics_event_fnc_broadcastAceDamageSource = {
|
||||
params ["_unit"];
|
||||
private _aceLastDamage = _unit getVariable "ace_medical_lastDamageSource";
|
||||
if (!isNil "_aceLastDamage") then {
|
||||
_unit setVariable ["ace_medical_lastDamageSource", _aceLastDamage, 2];
|
||||
};
|
||||
};
|
||||
|
||||
player addEventHandler ["Killed", {
|
||||
params ["_unit", "_killer", "_instigator", "_useEffects"];
|
||||
[_unit] call RangerMetrics_event_fnc_broadcastAceDamageSource;
|
||||
}];
|
||||
|
||||
player addEventHandler ["Respawn", {
|
||||
params ["_unit", "_corpse"];
|
||||
_unit addEventHandler ["Killed", {
|
||||
params ["_unit", "_killer", "_instigator", "_useEffects"];
|
||||
[_unit] call RangerMetrics_event_fnc_broadcastAceDamageSource;
|
||||
}];
|
||||
}];
|
||||
|
||||
addMissionEventHandler ["HandleChatMessage", {
|
||||
params ["_channel", "_owner", "_from", "_text", "_person", "_name", "_strID", "_forcedDisplay", "_isPlayerMessage", "_sentenceType", "_chatMessageType"];
|
||||
if !(missionNamespace getVariable ["RangerMetrics_run", false]) exitWith {};
|
||||
if (_owner == clientOwner && parseNumber _strID > 1) then {
|
||||
_this remoteExecCall ["RangerMetrics_event_fnc_HandleChatMessage", 2];
|
||||
};
|
||||
false;
|
||||
}];
|
||||
} remoteExec ["call", 0, true];
|
||||
@@ -1,11 +0,0 @@
|
||||
[
|
||||
// [
|
||||
// 5, // Poll interval in seconds
|
||||
// [ // Array of things to poll on clients
|
||||
// [
|
||||
// "RangerMetrics_poll_loadout", // Name of localNamespace variable to save the handler as on clients
|
||||
// RangerMetrics_capture_fnc_player_loadout // Function to call
|
||||
// ]
|
||||
// ]
|
||||
// ]
|
||||
]
|
||||
@@ -16,8 +16,10 @@
|
||||
["OnUserDisconnected", {
|
||||
params ["_networkId", "_clientStateNumber", "_clientState"];
|
||||
private _userInfo = (getUserInfo _networkId);
|
||||
_userInfo call RangerMetrics_capture_fnc_player_identity;
|
||||
_userInfo call RangerMetrics_capture_fnc_player_status;
|
||||
if (!isNil "_userInfo") then {
|
||||
_userInfo call RangerMetrics_capture_fnc_player_identity;
|
||||
_userInfo call RangerMetrics_capture_fnc_player_status;
|
||||
};
|
||||
["server_events", "OnUserDisconnected", [
|
||||
["string", "playerUID", _userInfo#2]
|
||||
], [
|
||||
@@ -45,22 +47,22 @@
|
||||
]] call RangerMetrics_fnc_queue;
|
||||
[format ["(EventHandler) PlayerConnected fired: %1", _this], "DEBUG"] call RangerMetrics_fnc_log;
|
||||
}],
|
||||
["PlayerDisconnected", {
|
||||
params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"];
|
||||
private _userInfo = (getUserInfo _idstr);
|
||||
_userInfo call RangerMetrics_capture_fnc_player_identity;
|
||||
_userInfo call RangerMetrics_capture_fnc_player_status;
|
||||
["server_events", "PlayerDisconnected", [
|
||||
["HandleDisconnect", {
|
||||
params ["_unit", "_id", "_uid", "_name"];
|
||||
private _userInfo = (getUserInfo (_id toFixed 0));
|
||||
if (!isNil "_userInfo") then {
|
||||
_userInfo call RangerMetrics_capture_fnc_player_identity;
|
||||
_userInfo call RangerMetrics_capture_fnc_player_status;
|
||||
};
|
||||
["server_events", "HandleDisconnect", [
|
||||
["string", "playerUID", _uid]
|
||||
], [
|
||||
["string", "id", _id toFixed 0],
|
||||
["string", "uid", _uid],
|
||||
["string", "name", _name],
|
||||
["bool", "jip", _jip],
|
||||
["int", "owner", _owner],
|
||||
["string", "idstr", _idstr]
|
||||
["string", "name", _name]
|
||||
]] call RangerMetrics_fnc_queue;
|
||||
[format ["(EventHandler) PlayerDisconnected fired: %1", _this], "DEBUG"] call RangerMetrics_fnc_log;
|
||||
[format ["(EventHandler) HandleDisconnect fired: %1", _this], "DEBUG"] call RangerMetrics_fnc_log;
|
||||
false;
|
||||
}],
|
||||
["OnUserClientStateChanged", {
|
||||
params ["_networkId", "_clientStateNumber", "_clientState"];
|
||||
@@ -78,6 +80,7 @@
|
||||
["OnUserAdminStateChanged", {
|
||||
params ["_networkId", "_loggedIn", "_votedIn"];
|
||||
private _userInfo = (getUserInfo _networkId);
|
||||
if (isNil "_userInfo") exitWith {};
|
||||
_userInfo call RangerMetrics_capture_fnc_player_status;
|
||||
["server_events", "OnUserAdminStateChanged", [
|
||||
["string", "playerUID", _userInfo#2]
|
||||
@@ -91,6 +94,7 @@
|
||||
["OnUserKicked", {
|
||||
params ["_networkId", "_kickTypeNumber", "_kickType", "_kickReason", "_kickMessageIncReason"];
|
||||
private _userInfo = (getUserInfo _networkId);
|
||||
if (isNil "_userInfo") exitWith {};
|
||||
_userInfo call RangerMetrics_capture_fnc_player_identity;
|
||||
_userInfo call RangerMetrics_capture_fnc_player_status;
|
||||
["server_events", "OnUserKicked", [
|
||||
|
||||
@@ -79,8 +79,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
RangerMetrics_allMEH = allVariables missionNamespace select {
|
||||
_x find (toLower "RangerMetrics_MEH_") == 0
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user