Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_CharacterHelper.c
Go to the documentation of this file.
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
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
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
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;
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
Definition EPlayerRole.c:8
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_ECharacterControlType
What kind of controller the character or (in some cases vehicle) has, eg: AI, Player,...
void SCR_PlayerListedAdminManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
ChimeraCharacter GetPlayer()
static IEntity GetLocalControlledEntity()
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14