|
| override void | OnPlayerAuditSuccess (int playerID) |
| |
| override void | OnPlayerDisconnected (int playerID, IEntity controlledEntity=null) |
| |
| override void | OnGameModeEnd () |
| |
| override void | Update (float timeTick) |
| |
| void | KickOrBanPlayer (int playerId, SCR_PlayerManagerKickReason reason, int minimmumDuration) |
| |
| void | VoteForKickOrBan (int playerId, SCR_PlayerManagerKickReason reason, int minimmumDurationBackup) |
| | Vote for kicking or banning a player.
|
| |
| void | OnPlayerSpawned (int playerID, IEntity controlledEntity) |
| |
| void | OnPlayerKilled (int playerId, IEntity playerEntity, IEntity killerEntity, notnull Instigator instigator, notnull SCR_InstigatorContextData instigatorContextData) |
| |
| void | OnAIKilled (IEntity AIEntity, IEntity killerEntity, notnull Instigator instigator, notnull SCR_InstigatorContextData instigatorContextData) |
| |
| void | InitModule () |
| |
| void | OnControlledEntityChanged (IEntity from, IEntity to) |
| |
|
| void | CheckPlayer (int playerId) |
| |
| void | EvaluatePlayerCrimes (int playerId, bool evaluatePunishment=true) |
| | First decrease the score up until now by doing Time * DecreasePerMinute Second add to the score given the current crimes: PointsOfCrime * CRIME_ACCELERATION_FACTOR.
|
| |
| void | KickPlayer (int playerId, notnull SCR_PlayerData playerData, SCR_PlayerManagerKickReason reason) |
| |
| int | RequestBanIfNecessary (int playerId, notnull SCR_PlayerData playerData, SCR_PlayerManagerKickReason reason) |
| | The difference between the types of kick or bans: heavy ban (requires backendapi ban), light ban or kick (duration difference).
|
| |
| float | EvaluateHarmingFriendlies (notnull SCR_PlayerData playerData) |
| |
| void | ExecutePunishment (int playerId, SCR_PlayerManagerKickReason reason, int durationInSeconds) |
| |
| void | SendHints (int playerId, float harmingFriendliesScore) |
| |
| void | ProcessTemporalStats (notnull SCR_PlayerData playerData) |
| |
| void | UpdateCriminalScore (notnull SCR_PlayerData playerData, float addToScore, float decreaseFromScore) |
| |
| void | UpdateCriminalAcceleration (int playerId) |
| |
| void | AddInvokers (IEntity player) |
| |
| void | RemoveInvokers (IEntity player) |
| |
◆ CheckPlayer()
| void SCR_DataCollectorCrimesModule.CheckPlayer |
( |
int | playerId | ) |
|
|
protected |
◆ EvaluateHarmingFriendlies()
| float SCR_DataCollectorCrimesModule.EvaluateHarmingFriendlies |
( |
notnull SCR_PlayerData | playerData | ) |
|
|
protected |
◆ EvaluatePlayerCrimes()
| void SCR_DataCollectorCrimesModule.EvaluatePlayerCrimes |
( |
int | playerId, |
|
|
bool | evaluatePunishment = true ) |
|
protected |
First decrease the score up until now by doing Time * DecreasePerMinute Second add to the score given the current crimes: PointsOfCrime * CRIME_ACCELERATION_FACTOR.
◆ ExecutePunishment()
| void SCR_DataCollectorCrimesModule.ExecutePunishment |
( |
int | playerId, |
|
|
SCR_PlayerManagerKickReason | reason, |
|
|
int | durationInSeconds ) |
|
protected |
◆ KickOrBanPlayer()
| void SCR_DataCollectorCrimesModule.KickOrBanPlayer |
( |
int | playerId, |
|
|
SCR_PlayerManagerKickReason | reason, |
|
|
int | minimmumDuration ) |
◆ KickPlayer()
| void SCR_DataCollectorCrimesModule.KickPlayer |
( |
int | playerId, |
|
|
notnull SCR_PlayerData | playerData, |
|
|
SCR_PlayerManagerKickReason | reason ) |
|
protected |
◆ OnGameModeEnd()
| override void SCR_DataCollectorCrimesModule.OnGameModeEnd |
( |
| ) |
|
◆ OnPlayerAuditSuccess()
| override void SCR_DataCollectorCrimesModule.OnPlayerAuditSuccess |
( |
int | playerID | ) |
|
◆ OnPlayerDisconnected()
| override void SCR_DataCollectorCrimesModule.OnPlayerDisconnected |
( |
int | playerID, |
|
|
IEntity | controlledEntity = null ) |
◆ ProcessTemporalStats()
| void SCR_DataCollectorCrimesModule.ProcessTemporalStats |
( |
notnull SCR_PlayerData | playerData | ) |
|
|
protected |
◆ RequestBanIfNecessary()
| int SCR_DataCollectorCrimesModule.RequestBanIfNecessary |
( |
int | playerId, |
|
|
notnull SCR_PlayerData | playerData, |
|
|
SCR_PlayerManagerKickReason | reason ) |
|
protected |
The difference between the types of kick or bans: heavy ban (requires backendapi ban), light ban or kick (duration difference).
To choose the type of kick or ban:
- Compare the current acceleration against the (maxAcceleration * typeOfBanRate)
- Then store the current SessionDuration as the "previousPunishmentDuration" field in playerData
- Update the streak field
- Profit
◆ SendHints()
| void SCR_DataCollectorCrimesModule.SendHints |
( |
int | playerId, |
|
|
float | harmingFriendliesScore ) |
|
protected |
◆ Update()
| override void SCR_DataCollectorCrimesModule.Update |
( |
float | timeTick | ) |
|
◆ UpdateCriminalAcceleration()
| void SCR_DataCollectorCrimesModule.UpdateCriminalAcceleration |
( |
int | playerId | ) |
|
|
protected |
◆ UpdateCriminalScore()
| void SCR_DataCollectorCrimesModule.UpdateCriminalScore |
( |
notnull SCR_PlayerData | playerData, |
|
|
float | addToScore, |
|
|
float | decreaseFromScore ) |
|
protected |
◆ VoteForKickOrBan()
| void SCR_DataCollectorCrimesModule.VoteForKickOrBan |
( |
int | playerId, |
|
|
SCR_PlayerManagerKickReason | reason, |
|
|
int | minimmumDurationBackup ) |
Vote for kicking or banning a player.
- Parameters
-
| punishment | Punishment type |
| playerId | id of the player |
| reason | reason for the kick |
| minimmumDurationBackup | minimmum duration for the ban. Used only if the voting fails |
◆ m_aHeavyBanPunishments
| ref array<int> SCR_DataCollectorCrimesModule.m_aHeavyBanPunishments |
|
protected |
Duration of HeavyBans.
We use the index as the streak of heavyBans performed to this player
◆ m_aLightBanPunishments
| ref array<int> SCR_DataCollectorCrimesModule.m_aLightBanPunishments |
|
protected |
Duration of LightBan bans.
We use the index as the streak of lightbans performed to this player
◆ m_aPlayerIDs
| ref array<int> SCR_DataCollectorCrimesModule.m_aPlayerIDs = {} |
|
protected |
List of IDs from DataCollector.
◆ m_bWarCrimesEnabled
| bool SCR_DataCollectorCrimesModule.m_bWarCrimesEnabled |
|
protected |
◆ m_bWarCrimesProportionalityPrincipleEnabled
| bool SCR_DataCollectorCrimesModule.m_bWarCrimesProportionalityPrincipleEnabled |
|
protected |
◆ m_fLatestActionThreshold
| float SCR_DataCollectorCrimesModule.m_fLatestActionThreshold |
|
protected |
after LAST_ACTION_THRESHOLD have passed since last action, evaluate buffer
◆ m_fMaxTimeAccumulationThreshold
| float SCR_DataCollectorCrimesModule.m_fMaxTimeAccumulationThreshold |
|
protected |
after TIME_ACCUMULATING_THRESHOLD seconds have passed, evaluate buffer
◆ m_iNextIndex
| int SCR_DataCollectorCrimesModule.m_iNextIndex |
|
protected |
Next index of player to evaluate.
We do them sequentially in order to split them in frames
◆ m_iSecondsOfReincidencyHeavyBan
| int SCR_DataCollectorCrimesModule.m_iSecondsOfReincidencyHeavyBan |
|
protected |
How many minutes of playtime need to pass to consider this player not a reincident.
◆ m_iSecondsOfReincidencyLightBan
| int SCR_DataCollectorCrimesModule.m_iSecondsOfReincidencyLightBan |
|
protected |
How many minutes of playtime need to pass to consider this player not a reincident.
◆ MIN_AUTO_BAN_DURATION
| const int SCR_DataCollectorCrimesModule.MIN_AUTO_BAN_DURATION = 300 |
|
static |
◆ MODIFIER_PROPORTIONALITY_AI_KILLS
| float SCR_DataCollectorCrimesModule.MODIFIER_PROPORTIONALITY_AI_KILLS |
|
protected |
◆ MODIFIER_PROPORTIONALITY_FRIENDLY_AI_KILLS
| float SCR_DataCollectorCrimesModule.MODIFIER_PROPORTIONALITY_FRIENDLY_AI_KILLS |
|
protected |
◆ MODIFIER_PROPORTIONALITY_FRIENDLY_KILLS
| float SCR_DataCollectorCrimesModule.MODIFIER_PROPORTIONALITY_FRIENDLY_KILLS |
|
protected |
◆ MODIFIER_PROPORTIONALITY_KILLS
| float SCR_DataCollectorCrimesModule.MODIFIER_PROPORTIONALITY_KILLS |
|
protected |
The documentation for this interface was generated from the following file:
- Game/DataCollection/DataCollectorModules/SCR_DataCollectorCrimesModule.c