Arma Reforger Script API
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SCR_FactionManager Interface Reference
Inheritance diagram for SCR_FactionManager:
[legend]

Public Member Functions

ScriptInvoker GetOnPlayerFactionCountChanged ()
 
ScriptInvokerBase< SCR_FactionManager_PlayerFactionChanged > GetOnPlayerFactionChanged_S ()
 return Script invoker on player faction changed (Server only)
 
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.
 
SCR_RankID GetRankByID (SCR_ECharacterRank rankID)
 
array< ref SCR_RankIDGetAllAvailableRanks ()
 
bool IsRankRenegade (SCR_ECharacterRank rankID)
 
int GetRequiredRankXP (SCR_ECharacterRank rankID)
 
SCR_ECharacterRank GetRankByXP (int XP)
 
SCR_ECharacterRank GetRankNext (SCR_ECharacterRank rank)
 
SCR_ECharacterRank GetRankPrev (SCR_ECharacterRank rank)
 
override void EOnInit (IEntity owner)
 
void SCR_FactionManager (IEntitySource src, IEntity parent)
 
void ~SCR_FactionManager ()
 
bool CanChangeFactionsPlayable ()
 Check if the faction is playable.
 
void SetFactionsFriendly (notnull SCR_Faction factionA, notnull SCR_Faction factionB, int playerChanged=-1)
 Set given factions friendly towards eachother (Server Only) It is possible to set the same faction friendly towards itself to prevent faction infighting.
 
void SetFactionsHostile (notnull SCR_Faction factionA, notnull SCR_Faction factionB, int playerChanged=-1)
 Set given factions hostile towards eachother (Server Only) 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 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 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.
 
SCR_ECharacterRank GetRenegadeRank ()
 
void OnPlayerDisconnected (int playerId, KickCauseCode cause, int timeout)
 Authority: Handle disconnected player.
 

Protected Attributes

bool m_bCanChangeFactionsPlayable
 
ref array< ref SCR_RankIDm_aRanks
 
ref SCR_SortedArray< SCR_Factionm_SortedFactions = new SCR_SortedArray<SCR_Faction>()
 
ref map< string, ref array< string > > m_aAncestors = new map<string, ref array<string>>()
 
ref array< ref SCR_PlayerFactionInfom_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_PlayerFactionInfom_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 ScriptInvokerBase< SCR_FactionManager_PlayerFactionChanged > m_OnPlayerFactionChanged_S
 

Constructor & Destructor Documentation

◆ SCR_FactionManager()

void SCR_FactionManager.SCR_FactionManager ( IEntitySource  src,
IEntity  parent 
)
Parameters
[in]src
[in]parent

◆ ~SCR_FactionManager()

void SCR_FactionManager.~SCR_FactionManager ( )

Member Function Documentation

◆ CanChangeFactionsPlayable()

bool SCR_FactionManager.CanChangeFactionsPlayable ( )

Check if the faction is playable.

Non-playable factions will not appear in the respawn menu.

Returns
True when playable

◆ EOnInit()

override void SCR_FactionManager.EOnInit ( IEntity  owner)

◆ GetAllAvailableRanks()

array< ref SCR_RankID > SCR_FactionManager.GetAllAvailableRanks ( )
Returns

◆ GetFactionPlayerCount()

int SCR_FactionManager.GetFactionPlayerCount ( Faction  faction)

Returns current count of players assigned to the provided faction.

Parameters
[in]faction
Returns
Number of players or always 0 if no faction is provided.

◆ GetLocalPlayerFaction()

Faction SCR_FactionManager.GetLocalPlayerFaction ( )

Return affiliated faction of local player.

Exceptions
Exceptionif no FactionManager is present in the world.
Returns
Faction instance if faction is assigned, null otherwise.

◆ GetOnPlayerFactionChanged_S()

ScriptInvokerBase< SCR_FactionManager_PlayerFactionChanged > SCR_FactionManager.GetOnPlayerFactionChanged_S ( )

return Script invoker on player faction changed (Server only)

◆ GetOnPlayerFactionCountChanged()

ScriptInvoker SCR_FactionManager.GetOnPlayerFactionCountChanged ( )
Returns

◆ GetPlayerFaction()

Faction SCR_FactionManager.GetPlayerFaction ( int  playerId)

Return affiliated faction of provided player by their id.

Parameters
[in]playerIdId of target player corresponding to PlayerController/PlayerManager player id.
Exceptions
Exceptionif no FactionManager is present in the world.
Returns
Faction instance if faction is assigned, null otherwise.

◆ GetRankByID()

SCR_RankID SCR_FactionManager.GetRankByID ( SCR_ECharacterRank  rankID)
Parameters
[in]rankID
Returns

◆ GetRankByXP()

SCR_ECharacterRank SCR_FactionManager.GetRankByXP ( int  XP)
Parameters
[in]XP
Returns

◆ GetRankNext()

SCR_ECharacterRank SCR_FactionManager.GetRankNext ( SCR_ECharacterRank  rank)
Parameters
[in]rank
Returns
the next higher rank

◆ GetRankPrev()

SCR_ECharacterRank SCR_FactionManager.GetRankPrev ( SCR_ECharacterRank  rank)
Parameters
[in]rank
Returns
the next lower rank

◆ GetRenegadeRank()

SCR_ECharacterRank SCR_FactionManager.GetRenegadeRank ( )
protected

◆ GetRequiredRankXP()

int SCR_FactionManager.GetRequiredRankXP ( SCR_ECharacterRank  rankID)
Parameters
[in]rankID
Returns

◆ GetSortedFactionsList()

int SCR_FactionManager.GetSortedFactionsList ( out notnull SCR_SortedArray< SCR_Faction outFactions)

Get factions sorted according to their own custom order.

Parameters
[out]outFactionsArray to be filled with factions
Returns
Number of factions

◆ IsRankRenegade()

bool SCR_FactionManager.IsRankRenegade ( SCR_ECharacterRank  rankID)
Parameters
[in]rankID
Returns

◆ OnPlayerDisconnected()

void SCR_FactionManager.OnPlayerDisconnected ( int  playerId,
KickCauseCode  cause,
int  timeout 
)
protected

Authority: Handle disconnected player.

Parameters
[in]playerId
[in]cause
[in]timeout

◆ OnPlayerFactionCountChanged()

void SCR_FactionManager.OnPlayerFactionCountChanged ( Faction  faction,
int  newCount 
)
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.

Parameters
[in]factionThe faction for which affiliated player count changed.
[in]newCountThe new number of players that are part of this faction.

◆ OnPlayerFactionInfoChanged()

void SCR_FactionManager.OnPlayerFactionInfoChanged ( )
protected

Update local player faction mapping.

◆ OnPlayerFactionSet_S()

void SCR_FactionManager.OnPlayerFactionSet_S ( SCR_PlayerFactionAffiliationComponent  playerComponent,
Faction  faction 
)
protected

Authority: Event raised when provided player component has a faction set.

◆ RequestUpdateAllTargetsFactions()

static void SCR_FactionManager.RequestUpdateAllTargetsFactions ( )
static

Update all AI perception.

Used when faction friendly is changed to make sure AI in the area attack or stop attacking each other

◆ SetFactionsFriendly()

void SCR_FactionManager.SetFactionsFriendly ( notnull SCR_Faction  factionA,
notnull SCR_Faction  factionB,
int  playerChanged = -1 
)

Set given factions friendly towards eachother (Server Only) It is possible to set the same faction friendly towards itself to prevent faction infighting.

Parameters
[in]factionAfaction to set friendly to factionB
[in]factionBfaction to set friendly to factionA
[in]playerChangedid of player who changed it to show notification. Leave -1 to not show notification

◆ SetFactionsHostile()

void SCR_FactionManager.SetFactionsHostile ( notnull SCR_Faction  factionA,
notnull SCR_Faction  factionB,
int  playerChanged = -1 
)

Set given factions hostile towards eachother (Server Only) It is possible to set the same faction hostile towards itself to allow faction infighting.

Parameters
[in]factionAfaction to set hostile to factionB
[in]factionBfaction to set hostile to factionA
[in]playerChangedid of player who changed it to show notification. Leave -1 to not show notification

◆ SGetFactionPlayerCount()

static int SCR_FactionManager.SGetFactionPlayerCount ( Faction  faction)
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.

Exceptions
Exceptionif no FactionManager is present in the world.
Parameters
[in]faction
Returns
Player count for provided faction or 0 if no faction is provided.

◆ SGetLocalPlayerFaction()

static Faction SCR_FactionManager.SGetLocalPlayerFaction ( )
static

Return affiliated faction of local player.

Static variant of SCR_FactionManager.GetLocalPlayerFaction that uses registered FactionManager from the ArmaReforgerScripted game instance.

Exceptions
Exceptionif no FactionManager is present in the world.
Returns
Faction instance if faction is assigned, null otherwise.

◆ SGetPlayerFaction()

static Faction SCR_FactionManager.SGetPlayerFaction ( int  playerId)
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.

Parameters
[in]playerIdId of target player corresponding to PlayerController/PlayerManager player id.
Exceptions
Exceptionif no FactionManager is present in the world.
Returns
Faction instance if faction is assigned, null otherwise.

◆ UpdatePlayerFaction_S()

void SCR_FactionManager.UpdatePlayerFaction_S ( SCR_PlayerFactionAffiliationComponent  playerFactionComponent)

Authority: Update player faction info for target player with their up-to-date state.

Parameters
[in]playerFactionComponent

Member Data Documentation

◆ m_aAncestors

ref map<string, ref array<string> > SCR_FactionManager.m_aAncestors = new map<string, ref array<string>>()
protected

◆ m_aPlayerFactionInfo

ref array<ref SCR_PlayerFactionInfo> SCR_FactionManager.m_aPlayerFactionInfo = {}
protected

List of all player faction infos in no particular order. Maintained by the authority.

◆ m_aRanks

ref array<ref SCR_RankID> SCR_FactionManager.m_aRanks
protected

◆ m_bCanChangeFactionsPlayable

bool SCR_FactionManager.m_bCanChangeFactionsPlayable
protected

◆ m_ChangedFactions

ref set<int> SCR_FactionManager.m_ChangedFactions = new set<int>()
protected

List of indices of factions whose count has changed since last update.

◆ m_MappedPlayerFactionInfo

ref map<int, ref SCR_PlayerFactionInfo> SCR_FactionManager.m_MappedPlayerFactionInfo = new map<int, ref SCR_PlayerFactionInfo>()
protected

Local mapping of playerId to player faction info.

◆ m_OnPlayerFactionChanged_S

ref ScriptInvokerBase<SCR_FactionManager_PlayerFactionChanged> SCR_FactionManager.m_OnPlayerFactionChanged_S
protected

◆ m_PlayerCount

ref map<int, int> SCR_FactionManager.m_PlayerCount = new map<int, int>()
protected

Mapping of faction id : player count.

◆ m_PreviousPlayerFactions

ref map<int, int> SCR_FactionManager.m_PreviousPlayerFactions = new map<int, int>()
protected

Map of previous players <playerId : factionIndex>.

◆ m_SortedFactions

ref SCR_SortedArray<SCR_Faction> SCR_FactionManager.m_SortedFactions = new SCR_SortedArray<SCR_Faction>()
protected

◆ s_OnPlayerFactionCountChanged

ref ScriptInvoker SCR_FactionManager.s_OnPlayerFactionCountChanged = new ScriptInvoker()
protected

The documentation for this interface was generated from the following file: