Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_CampaignRadioMsg.c
Go to the documentation of this file.
1//------------------------------------------------------------------------------------------------
3{
4 static const int INVALID_RADIO_MSG_PARAM = -1;
5
7 protected int m_iFactionId;
8 protected int m_iBaseCallsign = SCR_MilitaryBaseComponent.INVALID_BASE_CALLSIGN;
17 protected float m_fSeed = Math.RandomFloat01();
18 protected bool m_bIsPublic = true;
19 protected int m_iParam = INVALID_RADIO_MSG_PARAM;
23
24 //------------------------------------------------------------------------------------------------
26 {
27 m_iRadioMsg = msg;
28 }
29
30 //------------------------------------------------------------------------------------------------
31 void SetFactionId(int factionId)
32 {
33 m_iFactionId = factionId;
34 }
35
36 //------------------------------------------------------------------------------------------------
37 void SetBaseCallsign(int callsign)
38 {
39 m_iBaseCallsign = callsign;
40 }
41
42 //------------------------------------------------------------------------------------------------
43 void SetCallerCallsign(int companyID, int platoonID, int squadID, int characterID)
44 {
45 m_iCallerCompanyID = companyID;
46 m_iCallerPlatoonID = platoonID;
47 m_iCallerSquadID = squadID;
48 m_iCallerCharacterID = characterID;
49 }
50
51 //------------------------------------------------------------------------------------------------
52 void SetCalledCallsign(int companyID, int platoonID, int squadID, int characterID)
53 {
54 m_iCalledCompanyID = companyID;
55 m_iCalledPlatoonID = platoonID;
56 m_iCalledSquadID = squadID;
57 m_iCalledCharacterID = characterID;
58 }
59
60 //------------------------------------------------------------------------------------------------
61 void SetIsPublic(bool public)
62 {
63 m_bIsPublic = public;
64 }
65
66 //------------------------------------------------------------------------------------------------
67 void SetParam(int param)
68 {
69 m_iParam = param;
70 }
71
72 //------------------------------------------------------------------------------------------------
73 void SetPlayerID(int playerID)
74 {
75 m_iPlayerID = playerID;
76 }
77
78 //------------------------------------------------------------------------------------------------
81 void SetMessageForCommander(bool isMessageForCommander, notnull SCR_Faction faction)
82 {
83 m_bIsMessageForCommander = isMessageForCommander;
84 m_Faction = faction;
85 }
86
87 //------------------------------------------------------------------------------------------------
88 float GetSeed()
89 {
90 return m_fSeed;
91 }
92
93 //------------------------------------------------------------------------------------------------
94 override void OnDelivery(BaseTransceiver receiver, int freq, float quality)
95 {
96 IEntity owner = receiver.GetRadio().GetOwner();
97
98 ChimeraCharacter player;
100
101 while (!player && !base)
102 {
103 player = ChimeraCharacter.Cast(owner);
105
106 if (player || base)
107 break;
108
109 owner = owner.GetParent();
110
111 if (!owner)
112 return;
113 }
114
115 if (player)
116 {
117 int playerID = GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(owner);
118 PlayerController controller = GetGame().GetPlayerManager().GetPlayerController(playerID);
119
120 if (m_bIsMessageForCommander && m_Faction && !m_Faction.IsPlayerCommander(playerID))
121 return;
122
123 if (!controller)
124 return;
125
127
128 if (comp)
130 }
131 else
132 {
133 // Received by HQ, ping player that the message has been received
134 if (!base.IsHQ())
135 return;
136
137 if (freq != receiver.GetRadio().GetTransceiver(0).GetFrequency())
138 return;
139
140 PlayerController controller = GetGame().GetPlayerManager().GetPlayerController(m_iPlayerID);
141
142 if (!controller)
143 return;
144
146
147 if (comp)
148 {
149 ChimeraWorld world = GetGame().GetWorld();
150 comp.SetLastHQRadioMessageTimestamp(world.GetServerTimestamp());
151 }
152 }
153 }
154};
155
ArmaReforgerScripted GetGame()
Definition game.c:1398
@ TASK_UNASSIGN_REFUEL
@ REINFORCEMENTS
@ REPAIRED_REPAIR
@ PROMOTION_LIEUTENANT
@ PROMOTION_CORPORAL
@ COMMANDER_RESIGNATION
@ BUILT_FIELD_HOSPITAL
@ REQUEST_TRANSPORT
@ TASK_ASSIGN_SEIZE
@ BUILT_VEHICLES_LIGHT
@ BUILT_HELIPAD
@ REQUEST_REINFORCEMENTS
@ PROMOTION_PRIVATE
@ COMMANDER_ARRIVAL
@ PROMOTION_MAJOR
@ COMMANDER_DISRUPTION
@ TASK_CANCEL_REQUEST
@ DEMOTION_RENEGADE
@ BUILT_VEHICLES_HEAVY
@ TASK_UNASSIGN_TRANSPORT
@ BUILT_BARRACKS
@ REPAIRED_FUEL
@ DESTROYED_REPAIR
@ BUILT_ANTENNA
@ DESTROYED_FUEL
@ REPAIRED_ARMORY
@ PROMOTION_SERGEANT
@ TASK_UNASSIGN_EVAC
@ DESTROYED_ARMORY
@ PROMOTION_CAPTAIN
proto external Managed FindComponent(typename typeName)
proto external IEntity GetParent()
Definition Math.c:13
Takes care of Campaign-specific server <> client communication and requests.
void SetLastHQRadioMessageTimestamp(WorldTimestamp time)
void PlayRadioMsg(SCR_ERadioMsg msg, int FactionId, int baseCallsign, int callerCallsignCompany, int callerCallsignPlatoon, int callerCallsignSquad, int callerCallsignCharacter, int calledCallsignCompany, int calledCallsignPlatoon, int calledCallsignSquad, int calledCallsignCharacter, bool isPublic, int param, float seed, float quality, int playerID)
void SetRadioMsg(SCR_ERadioMsg msg)
void SetMessageForCommander(bool isMessageForCommander, notnull SCR_Faction faction)
void SetCallerCallsign(int companyID, int platoonID, int squadID, int characterID)
void SetFactionId(int factionId)
void SetCalledCallsign(int companyID, int platoonID, int squadID, int characterID)
override void OnDelivery(BaseTransceiver receiver, int freq, float quality)
void SetIsPublic(bool public)
void SetPlayerID(int playerID)
void SetBaseCallsign(int callsign)
@ NONE
When Shape is created and not initialized yet.
Definition ShapeType.c:15