Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_CharacterHelper.c
Go to the documentation of this file.
1
class
SCR_CharacterHelper
2
{
3
//------------------------------------------------------------------------------------------------
6
static
IEntity
GetPlayer
()
7
{
8
return
EntityUtils
.GetPlayer();
9
}
10
11
//------------------------------------------------------------------------------------------------
15
// unused
16
static
bool
IsPlayer(
IEntity
entity)
17
{
18
return
entity && entity ==
EntityUtils
.GetPlayer();
19
}
20
21
//------------------------------------------------------------------------------------------------
25
static
SCR_ECharacterControlType
GetPlayerControlType(
int
playerID)
26
{
27
if
(playerID <= 0)
28
{
29
Print
(
"'SCR_EntityHelper.GetPlayerControlType()' Given player id is not valid"
,
LogLevel
.WARNING);
30
return
SCR_ECharacterControlType
.UNKNOWN;
31
}
32
33
//~ If character is on the admin list
34
SCR_PlayerListedAdminManagerComponent
adminListManager =
SCR_PlayerListedAdminManagerComponent
.GetInstance();
35
if
(adminListManager && adminListManager.IsPlayerOnAdminList(playerID))
36
return
SCR_ECharacterControlType
.UNLIMITED_EDITOR;
37
38
//~ If character is an Admin or Game Master
39
PlayerManager
playerManager =
GetGame
().GetPlayerManager();
40
if
(playerManager && (playerManager.HasPlayerRole(playerID,
EPlayerRole
.GAME_MASTER) || playerManager.HasPlayerRole(playerID,
EPlayerRole
.ADMINISTRATOR || playerManager.HasPlayerRole(playerID,
EPlayerRole
.SESSION_ADMINISTRATOR))))
41
return
SCR_ECharacterControlType
.UNLIMITED_EDITOR;
42
43
return
SCR_ECharacterControlType
.PLAYER;
44
}
45
46
//------------------------------------------------------------------------------------------------
50
static
SCR_ECharacterControlType
GetCharacterControlType(
IEntity
entity)
51
{
52
//~ No entity given
53
if
(!entity)
54
{
55
Print
(
"'SCR_EntityHelper.GetCharacterControlType()' Given entity is null"
,
LogLevel
.WARNING);
56
return
SCR_ECharacterControlType
.UNKNOWN;
57
}
58
59
//~ Entity is not a character
60
ChimeraCharacter
character =
ChimeraCharacter
.Cast(entity);
61
if
(!character)
62
{
63
Print
(
"'SCR_EntityHelper.GetCharacterControlType()' Given entity is not a character nor a vehicle so unknown type is returned"
,
LogLevel
.WARNING);
64
return
SCR_ECharacterControlType
.UNKNOWN;
65
}
66
67
//~ Character is a player
68
int
playerID = SCR_PossessingManagerComponent.GetPlayerIdFromControlledEntity(character);
69
if
(playerID > 0)
70
{
71
//~ If character is possesed
72
SCR_PossessingManagerComponent possessingManager = SCR_PossessingManagerComponent.GetInstance();
73
if
(possessingManager.IsPossessing(playerID))
74
{
75
if
(possessingManager.GetPossessedEntity(playerID) == entity)
76
return
SCR_ECharacterControlType
.POSSESSED_AI;
77
}
78
79
//~ If character is on the admin list
80
SCR_PlayerListedAdminManagerComponent
adminListManager =
SCR_PlayerListedAdminManagerComponent
.GetInstance();
81
if
(adminListManager && adminListManager.IsPlayerOnAdminList(playerID))
82
return
SCR_ECharacterControlType
.UNLIMITED_EDITOR;
83
84
//~ If character is an Admin or Game Master
85
PlayerManager
playerManager =
GetGame
().GetPlayerManager();
86
if
(playerManager && (playerManager.HasPlayerRole(playerID,
EPlayerRole
.GAME_MASTER) || playerManager.HasPlayerRole(playerID,
EPlayerRole
.ADMINISTRATOR || playerManager.HasPlayerRole(playerID,
EPlayerRole
.SESSION_ADMINISTRATOR))))
87
return
SCR_ECharacterControlType
.UNLIMITED_EDITOR;
88
89
return
SCR_ECharacterControlType
.PLAYER;
90
}
91
92
//~ Character is an AI
93
return
SCR_ECharacterControlType
.AI;
94
}
95
96
//------------------------------------------------------------------------------------------------
100
// unused
101
static
bool
IsAPlayer(
IEntity
entity)
102
{
103
return
entity &&
EntityUtils
.IsPlayer(entity);
104
}
105
106
//------------------------------------------------------------------------------------------------
111
static
bool
IsPlayerOrAIOwner(notnull
ChimeraCharacter
character, out
bool
isAi =
false
)
112
{
113
isAi =
false
;
114
if
(
SCR_PlayerController
.
GetLocalControlledEntity
() == character)
115
return
true
;
//do this first as IsPlayer fetches all players
116
117
if
(
EntityUtils
.IsPlayer(character))
118
return
false
;
119
120
isAi =
true
;
121
//if this is ai then make sure that we have the authority over this entity
122
RplComponent charRplComp = character.GetRplComponent();
123
if
(charRplComp && !charRplComp.IsOwner())
124
return
false
;
125
126
return
true
;
127
}
128
}
EPlayerRole
EPlayerRole
Definition
EPlayerRole.c:8
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_ECharacterControlType
SCR_ECharacterControlType
What kind of controller the character or (in some cases vehicle) has, eg: AI, Player,...
Definition
SCR_ECharacterControlType.c:3
SCR_PlayerListedAdminManagerComponent
void SCR_PlayerListedAdminManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition
SCR_PlayerListedAdminManagerComponent.c:105
GetPlayer
ChimeraCharacter GetPlayer()
Definition
SCR_TutorialGamemodeComponent.c:1290
ChimeraCharacter
Definition
ChimeraCharacter.c:13
EntityUtils
Definition
EntityUtils.c:13
IEntity
Definition
IEntity.c:13
PlayerManager
Definition
PlayerManager.c:13
SCR_CharacterHelper
Definition
SCR_CharacterHelper.c:2
SCR_PlayerController
Definition
SCR_PlayerController.c:31
SCR_PlayerController::GetLocalControlledEntity
static IEntity GetLocalControlledEntity()
Definition
SCR_PlayerController.c:495
Print
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
LogLevel
Enum with severity of the logging message.
Definition
LogLevel.c:14
scripts
Game
Helpers
SCR_CharacterHelper.c
Generated by
1.17.0