![]() |
|
Public Member Functions | |
| ScriptInvoker | GetOnPlayerFactionCountChanged () |
| ScriptInvokerFaction | GetOnFactionTasksEnabledChanged () |
| ScriptInvokerBase< SCR_FactionManager_PlayerFactionChanged > | GetOnPlayerFactionChanged_S () |
| return Script invoker on player faction changed (Server only) | |
| void | UpdateCustomLoadoutSupportState (SCR_LoadoutManager loadoutMgr) |
| Forces all factions to reevaluate if they support players saving custom loadouts. | |
| bool | SetPlayerFaction (notnull SCR_ChimeraCharacter character, notnull Faction faction) |
| SCR_RankContainer | GetFactionRanks (int playerId) |
| Return affiliated ranks of a faction the player is affiliated with. | |
| Faction | GetPlayerFaction (int playerId) |
| Return affiliated faction of provided player by their id. | |
| Faction | GetLocalPlayerFaction () |
| Return affiliated faction of local player. | |
| int | GetFactionPlayerCount (Faction faction) |
| Returns current count of players assigned to the provided faction. | |
| int | GetSortedFactionsList (out notnull SCR_SortedArray< SCR_Faction > outFactions) |
| Get factions sorted according to their own custom order. | |
| override void | EOnInit (IEntity owner) |
| void | SCR_FactionManager (IEntitySource src, IEntity parent) |
| void | ~SCR_FactionManager () |
| bool | CanChangeFactionsPlayable () |
| Check if the faction is playable. | |
| void | SetFactionTasksEnabled (notnull SCR_Faction faction, bool isTasksEnabled) |
| Set whether a faction should receive tasks/objectives. | |
| void | SetFactionsFriendly (notnull SCR_Faction factionA, notnull SCR_Faction factionB, int playerChanged=-1, bool updateAIs=true) |
| Set given factions friendly towards eachother (Replicated if called by server) It is possible to set the same faction friendly towards itself to prevent faction infighting. | |
| void | SetFactionFriendlyOneWay (notnull SCR_Faction factionA, notnull SCR_Faction factionB, bool updateAIs=true) |
| Sets first faction to be friendly to the second faction, ONE WAY ONLY! | |
| void | SetFactionsHostile (notnull SCR_Faction factionA, notnull SCR_Faction factionB, int playerChanged=-1, bool updateAIs=true) |
| Set given factions hostile towards eachother (Replicated if called by server) It is possible to set the same faction hostile towards itself to allow faction infighting. | |
| void | UpdatePlayerFaction_S (SCR_PlayerFactionAffiliationComponent playerFactionComponent) |
| Authority: Update player faction info for target player with their up-to-date state. | |
Public Member Functions inherited from FactionManager | |
| proto external Faction | GetFactionByKey (FactionKey factionKey) |
| proto external Faction | GetFactionByIndex (int index) |
| proto external int | GetFactionIndex (Faction faction) |
| proto external int | GetFactionsCount () |
| Returns the number of available factions stored in this manager or 0 if none. | |
| proto external int | GetFactionsList (out notnull array< Faction > outFactions) |
Static Public Member Functions | |
| static Faction | SGetFaction (IEntity entity) |
| static Faction | SGetPlayerFaction (int playerId) |
| Return affiliated faction of provided player by their id. | |
| static Faction | SGetLocalPlayerFaction () |
| Return affiliated faction of local player. | |
| static int | SGetFactionPlayerCount (Faction faction) |
| Return count of players assigned to the provided faction. | |
| static void | RequestUpdateAllTargetsFactions () |
| Update all AI perception. | |
Protected Member Functions | |
| void | OnPlayerFactionInfoChanged () |
| Update local player faction mapping. | |
| void | RPC_UpdatePlayerLimit (FactionKey factionKey, int playerLimit) |
| Update server player limit to clients. | |
| void | OnPlayerFactionSet_S (SCR_PlayerFactionAffiliationComponent playerComponent, Faction faction) |
| Authority: Event raised when provided player component has a faction set. | |
| void | OnPlayerFactionCountChanged (Faction faction, int newCount) |
| Anyone: Event raised when provided faction's player count changes. | |
| override void | EOnFixedFrame (IEntity owner, float timeSlice) |
| void | RpcDo_SetFactionTasksEnabled (string factionKey, bool isTasksEnabled) |
| Set whether a faction should receive tasks/objectives for the whole server. | |
| void | OnPlayerDisconnected (int playerId, KickCauseCode cause, int timeout) |
| Authority: Handle disconnected player. | |
| override bool | RplSave (ScriptBitWriter writer) |
| override bool | RplLoad (ScriptBitReader reader) |
| map< FactionKey, int > | GetFactionLimitMapCLI () |
| Authority: Retrieves player limit for listed factions from command line Format is Faction:Limit seperated by comma, e.g. | |
Protected Attributes | |
| bool | m_bCanChangeFactionsPlayable |
| ref SCR_RankContainer | m_DefaultRanks |
| ref SCR_SortedArray< SCR_Faction > | m_SortedFactions = new SCR_SortedArray<SCR_Faction>() |
| ref map< string, ref array< string > > | m_aAncestors = new map<string, ref array<string>>() |
| ref array< ref SCR_PlayerFactionInfo > | m_aPlayerFactionInfo = {} |
| List of all player faction infos in no particular order. Maintained by the authority. | |
| ref map< int, int > | m_PreviousPlayerFactions = new map<int, int>() |
| Map of previous players <playerId : factionIndex>. | |
| ref set< int > | m_ChangedFactions = new set<int>() |
| List of indices of factions whose count has changed since last update. | |
| ref map< int, ref SCR_PlayerFactionInfo > | m_MappedPlayerFactionInfo = new map<int, ref SCR_PlayerFactionInfo>() |
| Local mapping of playerId to player faction info. | |
| ref map< int, int > | m_PlayerCount = new map<int, int>() |
| Mapping of faction id : player count. | |
| ref ScriptInvoker | s_OnPlayerFactionCountChanged = new ScriptInvoker() |
| ref ScriptInvokerFaction | m_OnFactionTaskEnabledChanged |
| ref ScriptInvokerBase< SCR_FactionManager_PlayerFactionChanged > | m_OnPlayerFactionChanged |
| ref map< FactionKey, int > | m_mPendingLimitUpdates |
| void SCR_FactionManager.SCR_FactionManager | ( | IEntitySource | src, |
| IEntity | parent ) |
| [in] | src | |
| [in] | parent |
| void SCR_FactionManager.~SCR_FactionManager | ( | ) |
| bool SCR_FactionManager.CanChangeFactionsPlayable | ( | ) |
Check if the faction is playable.
Non-playable factions will not appear in the respawn menu.
|
protected |
| override void SCR_FactionManager.EOnInit | ( | IEntity | owner | ) |
|
protected |
Authority: Retrieves player limit for listed factions from command line Format is Faction:Limit seperated by comma, e.g.
-playerLimits "US:15" or -playerLimits "US:15,USSR:0"
| int SCR_FactionManager.GetFactionPlayerCount | ( | Faction | faction | ) |
Returns current count of players assigned to the provided faction.
| [in] | faction |
| SCR_RankContainer SCR_FactionManager.GetFactionRanks | ( | int | playerId | ) |
Return affiliated ranks of a faction the player is affiliated with.
| [in] | playerId | Id of target player corresponding to PlayerController/PlayerManager player id. |
| Faction SCR_FactionManager.GetLocalPlayerFaction | ( | ) |
Return affiliated faction of local player.
| Exception | if no FactionManager is present in the world. |
| ScriptInvokerFaction SCR_FactionManager.GetOnFactionTasksEnabledChanged | ( | ) |
| ScriptInvokerBase< SCR_FactionManager_PlayerFactionChanged > SCR_FactionManager.GetOnPlayerFactionChanged_S | ( | ) |
return Script invoker on player faction changed (Server only)
| ScriptInvoker SCR_FactionManager.GetOnPlayerFactionCountChanged | ( | ) |
| Faction SCR_FactionManager.GetPlayerFaction | ( | int | playerId | ) |
Return affiliated faction of provided player by their id.
| [in] | playerId | Id of target player corresponding to PlayerController/PlayerManager player id. |
| Exception | if no FactionManager is present in the world. |
| int SCR_FactionManager.GetSortedFactionsList | ( | out notnull SCR_SortedArray< SCR_Faction > | outFactions | ) |
Get factions sorted according to their own custom order.
| [out] | outFactions | Array to be filled with factions |
|
protected |
Authority: Handle disconnected player.
| [in] | playerId | |
| [in] | cause | |
| [in] | timeout |
|
protected |
Anyone: Event raised when provided faction's player count changes.
Note: Order of changes is not fully deterministic, e.g. when changing faction from A to B, this method might be invoked in the order B, A instead.
| [in] | faction | The faction for which affiliated player count changed. |
| [in] | newCount | The new number of players that are part of this faction. |
|
protected |
Update local player faction mapping.
|
protected |
Authority: Event raised when provided player component has a faction set.
|
static |
Update all AI perception.
Used when faction friendly is changed to make sure AI in the area attack or stop attacking each other
|
protected |
Update server player limit to clients.
|
protected |
Set whether a faction should receive tasks/objectives for the whole server.
| [in] | faction | faction to enable/disable tasks for |
| [in] | isTasksEnabled | whether to enable/disable tasks for the faction |
|
protected |
|
protected |
| void SCR_FactionManager.SetFactionFriendlyOneWay | ( | notnull SCR_Faction | factionA, |
| notnull SCR_Faction | factionB, | ||
| bool | updateAIs = true ) |
Sets first faction to be friendly to the second faction, ONE WAY ONLY!
(Replicated if called by server) Resulting effect will be faction B being rewarded for killing A, but faction A getting friendly fire penalties on faction B.
| [in] | factionA | faction to set friendly to factionB |
| [in] | factionB | faction factionA becomes friendly to |
| void SCR_FactionManager.SetFactionsFriendly | ( | notnull SCR_Faction | factionA, |
| notnull SCR_Faction | factionB, | ||
| int | playerChanged = -1, | ||
| bool | updateAIs = true ) |
Set given factions friendly towards eachother (Replicated if called by server) It is possible to set the same faction friendly towards itself to prevent faction infighting.
| [in] | factionA | faction to set friendly to factionB |
| [in] | factionB | faction to set friendly to factionA |
| [in] | playerChanged | id of player who changed it to show notification. Leave -1 to not show notification |
| [in] | updateAIs | If true it will update all AI in the world. This is rather expensive so call RequestUpdateAllTargetsFactions() separately to update all AI if setting multiple factions friendly (or hostile) |
| void SCR_FactionManager.SetFactionsHostile | ( | notnull SCR_Faction | factionA, |
| notnull SCR_Faction | factionB, | ||
| int | playerChanged = -1, | ||
| bool | updateAIs = true ) |
Set given factions hostile towards eachother (Replicated if called by server) It is possible to set the same faction hostile towards itself to allow faction infighting.
| [in] | factionA | faction to set hostile to factionB |
| [in] | factionB | faction to set hostile to factionA |
| [in] | playerChanged | id of player who changed it to show notification. Leave -1 to not show notification |
| [in] | updateAIs | If true it will update all AI in the world. This is rather expensive so call RequestUpdateAllTargetsFactions() separately to update all AI if setting multiple factions hostile (or friendly) |
| void SCR_FactionManager.SetFactionTasksEnabled | ( | notnull SCR_Faction | faction, |
| bool | isTasksEnabled ) |
Set whether a faction should receive tasks/objectives.
| [in] | faction | faction to enable/disable tasks for |
| [in] | isTasksEnabled | whether to enable/disable tasks for the faction |
| bool SCR_FactionManager.SetPlayerFaction | ( | notnull SCR_ChimeraCharacter | character, |
| notnull Faction | faction ) |
|
static |
|
static |
Return count of players assigned to the provided faction.
Static variant of SCR_FactionManager.GetFactionPlayerCount that uses registered FactionManager from the ArmaReforgerScripted game instance.
| Exception | if no FactionManager is present in the world. |
| [in] | faction |
|
static |
Return affiliated faction of local player.
Static variant of SCR_FactionManager.GetLocalPlayerFaction that uses registered FactionManager from the ArmaReforgerScripted game instance.
| Exception | if no FactionManager is present in the world. |
|
static |
Return affiliated faction of provided player by their id.
Static variant of SCR_FactionManager.GetLocalPlayerFaction that uses registered FactionManager from the ArmaReforgerScripted game instance.
| [in] | playerId | Id of target player corresponding to PlayerController/PlayerManager player id. |
| Exception | if no FactionManager is present in the world. |
| void SCR_FactionManager.UpdateCustomLoadoutSupportState | ( | SCR_LoadoutManager | loadoutMgr | ) |
Forces all factions to reevaluate if they support players saving custom loadouts.
| void SCR_FactionManager.UpdatePlayerFaction_S | ( | SCR_PlayerFactionAffiliationComponent | playerFactionComponent | ) |
Authority: Update player faction info for target player with their up-to-date state.
| [in] | playerFactionComponent |
|
protected |
|
protected |
List of all player faction infos in no particular order. Maintained by the authority.
|
protected |
|
protected |
List of indices of factions whose count has changed since last update.
|
protected |
|
protected |
Local mapping of playerId to player faction info.
|
protected |
|
protected |
|
protected |
|
protected |
Mapping of faction id : player count.
|
protected |
Map of previous players <playerId : factionIndex>.
|
protected |
|
protected |