DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл DisplayStatus.c

См. исходные тексты.

Перечисления

enum  DSLevels { WARNING = 1 , CRITICAL = 2 , BLINKING = 3 , EXTRA = 4 }
 

Функции

void VirtualHud (PlayerBase player)
 
void OnScheduledTick ()
 
void RegisterElement (DisplayElementBase element)
 
DisplayElementBase GetElement (eDisplayElements element_id)
 
void SerializeElements (ref array< int > mask_array)
 
void DeserializeElements (ref array< int > mask_array)
 
int BitToDec (int mask, int index, int compareMask)
 
void PrintElements ()
 
void SendRPC ()
 
bool AreArraysSame (notnull array< int > array_a, notnull array< int > array_b)
 
void ImmediateUpdate ()
 
void UpdateStatus ()
 
void OnRPC (ParamsReadContext ctx)
 
void Debug ()
 

Переменные

enum DSLevels NORMAL = 0
 
enum DSLevels WARNING_MINUS = 1
 
enum DSLevels CRITICAL_MINUS = 2
 
enum DSLevels BLINKING_MINUS = 3
 
enum DSLevels WARNING_PLUS = 4
 
enum DSLevels CRITICAL_PLUS = 5
 
enum DSLevels BLINKING_PLUS = 6
 
enum DSLevels NUMBER_OF_MASKS = 2
 
ref array< intm_LastSentArray
 
const int NUMBER_OF_ELEMENTS = eDisplayElements.COUNT
 
ref DisplayElementBase m_Elements [NUMBER_OF_ELEMENTS]
 
Mission mission
 
Hud m_Hud
 
int m_LastTick
 
PlayerBase m_Player
 
string m_System = "VirtualHud"
 
ref array< ref ParamrpcParams
 

Перечисления

◆ DSLevels

Элементы перечислений
WARNING 
CRITICAL 
BLINKING 
EXTRA 
2{
3 NORMAL = 0,//no bit, default
4 WARNING = 1,//first bit
5 CRITICAL = 2,//second bit
6 BLINKING = 3,//first + second bit
7 EXTRA = 4,//third bit
8}
enum DSLevels NORMAL
Definition DisplayStatus.c:3
@ BLINKING
Definition DisplayStatus.c:6
@ WARNING
Definition DisplayStatus.c:4
@ CRITICAL
Definition DisplayStatus.c:5
@ EXTRA
Definition DisplayStatus.c:7

Функции

◆ AreArraysSame()

bool AreArraysSame ( notnull array< int > array_a,
notnull array< int > array_b )
181 {
182 if ( array_a.Count() != array_b.Count() ) return false;
183 for (int i = 0; i <array_a.Count(); i++)
184 {
185 if ( array_a.Get(i) != array_b.Get(i) )
186 {
187 return false;
188 }
189 }
190 return true;
191 }
Definition EntityAI.c:95

Используется в SendRPC().

◆ BitToDec()

int BitToDec ( int mask,
int index,
int compareMask )
152 {
153 int value = mask & (compareMask << index);
154 value = value >> index;
155 return value;
156 }

Используется в DeserializeElements().

◆ Debug()

void Debug ( )
226 {
227 Log("debug");
228 PluginPlayerStatus m_ModulePlayerStatus = PluginPlayerStatus.Cast(GetPlugin(PluginPlayerStatus));
229 m_ModulePlayerStatus.DisplayTendency(NTFKEY_HUNGRY, 2);
230 }
const int NTFKEY_HUNGRY
Definition _constants.c:34
class LogTemplates Log(string message, LogTemplateID template_id=0)
Creates debug log (optional) from LogTemplate which are registred.
Definition LogTemplates.c:75
PluginPlayerStatus m_ModulePlayerStatus
max 32 synced modifiers supported, 0 == no sync
Definition ModifierBase.c:29
PluginBase GetPlugin(typename plugin_type)
Definition PluginManager.c:316

Перекрестные ссылки GetPlugin(), Log(), m_ModulePlayerStatus и NTFKEY_HUNGRY.

◆ DeserializeElements()

void DeserializeElements ( ref array< int > mask_array)
128 {
129 int maskArrayIndex = 0;
130 int offset = 0;
131 int mask = 0;
132
133 for (int i = 0; i < NUMBER_OF_ELEMENTS;i++)
134 {
135 if ( GetElement(i) && !GetElement(i).IsClientOnly() )
136 {
137 //Log("entity> " + ToString(GetElement(i)) );
138 if (offset + GetElement(i).GetNumberOfBits() > BIT_INT_SIZE)
139 {
141 offset = 0;
142 }
144 int value = BitToDec( mask, offset, GetElement(i).GetCompareMask() );
145 offset = offset + GetElement(i).GetNumberOfBits();
146 GetElement(i).SetValue( value );
147 }
148 }
149 }
const int BIT_INT_SIZE
Definition BitArray.c:4
const int NUMBER_OF_ELEMENTS
Definition DisplayStatus.c:26
DisplayElementBase GetElement(eDisplayElements element_id)
Definition DisplayStatus.c:95
int BitToDec(int mask, int index, int compareMask)
Definition DisplayStatus.c:151

Перекрестные ссылки BIT_INT_SIZE, BitToDec(), GetElement() и NUMBER_OF_ELEMENTS.

Используется в OnRPC().

◆ GetElement()

◆ ImmediateUpdate()

void ImmediateUpdate ( )
194 {
195 for (int i = 0; i < NUMBER_OF_ELEMENTS;i++)
196 {
198 if ( element && element.IsClientOnly() && element.IsValueChanged() )
199 element.UpdateHUD();
200 }
201 }
Definition DisplayElementBadge.c:2

Перекрестные ссылки GetElement() и NUMBER_OF_ELEMENTS.

Используется в OnScheduledTick().

◆ OnRPC()

void OnRPC ( ParamsReadContext ctx)
217 {
218 //Log("OnRPC called");
220 ctx.Read(mask_array);
222 UpdateStatus();
223 }
void UpdateStatus()
Definition DisplayStatus.c:203
void DeserializeElements(ref array< int > mask_array)
Definition DisplayStatus.c:127

Перекрестные ссылки DeserializeElements() и UpdateStatus().

◆ OnScheduledTick()

void OnScheduledTick ( )
72 {
73 if ( GetGame().IsServer() )
74 {
76 {
77 SendRPC();
78 m_LastTick = GetGame().GetTime();
79 }
80 }
81 if ( !GetGame().IsDedicatedServer() )
82 {
84 //DisplayPresence();
85 }
86 }
VIRTUAL_HUD_UPDATE_INTERVAL
how often virtual hud checks if there is a difference since last sync
int m_LastTick
Definition DisplayStatus.c:30
void ImmediateUpdate()
Definition DisplayStatus.c:193
void SendRPC()
Definition DisplayStatus.c:167
float GetTime()
Definition NotificationSystem.c:35
proto native CGame GetGame()

Перекрестные ссылки GetGame(), GetTime(), ImmediateUpdate(), m_LastTick, SendRPC() и VIRTUAL_HUD_UPDATE_INTERVAL.

◆ PrintElements()

void PrintElements ( )
160 {
161 for (int i = 0; i < NUMBER_OF_ELEMENTS; i++)
162 {
163 PrintString(i.ToString() +": "+ GetElement(i).m_Value.ToString() );
164 }
165 }
void PrintString(string s)
Helper for printing out string expression. Example: PrintString("Hello " + var);.
Definition EnScript.c:345
string m_Value
Definition EnEntity.c:806
static proto string ToString(void var, bool type=false, bool name=false, bool quotes=true)
Return string representation of variable.

Перекрестные ссылки GetElement(), m_Value, NUMBER_OF_ELEMENTS, PrintString() и string::ToString().

◆ RegisterElement()

void RegisterElement ( DisplayElementBase element)
89 {
90 int id = element.GetType();
92 //Log("adding element:"+id.ToString());
93 }

Перекрестные ссылки m_Elements.

Используется в VirtualHud().

◆ SendRPC()

void SendRPC ( )
168 {
172 {
173 ScriptRPC rpc = new ScriptRPC();
174 rpc.Write(mask_array);
175 rpc.Send(m_Player, ERPCs.RPC_SYNC_DISPLAY_STATUS, false, m_Player.GetIdentity());
177 }
178 }
PlayerBase m_Player
Definition DisplayStatus.c:31
void SerializeElements(ref array< int > mask_array)
Definition DisplayStatus.c:105
ref array< int > m_LastSentArray
Definition DisplayStatus.c:24
bool AreArraysSame(notnull array< int > array_a, notnull array< int > array_b)
Definition DisplayStatus.c:180
ERPCs
Definition ERPCs.c:2
Definition gameplay.c:105

Перекрестные ссылки AreArraysSame(), m_LastSentArray, m_Player и SerializeElements().

Используется в ScriptConsoleWeatherTab::InvokeSendRPC(), ScriptConsoleWeatherTab::OnClick(), ActionEmptyBottleBase::OnEndAnimationLoop(), ActionEmptyBottleBase::OnEndServer(), OnScheduledTick(), ActionEmptyBottleBase::OnStartAnimationLoop() и Tick().

◆ SerializeElements()

void SerializeElements ( ref array< int > mask_array)
106 {
107 int offset = 0;
108 int mask = 0;
109
110 for (int i = 0; i < NUMBER_OF_ELEMENTS; i++)
111 {
112 if ( GetElement(i) && !GetElement(i).IsClientOnly() )
113 {
114 if ( (GetElement(i).GetNumberOfBits() + offset) > BIT_INT_SIZE )
115 {
116 mask_array.Insert(mask);
117 offset = 0;
118 mask = 0;
119 }
120 mask = mask | (GetElement(i).GetValue() << offset);
121 offset = offset + GetElement(i).GetNumberOfBits();
122 }
123 }
124 mask_array.Insert(mask);
125 }

Перекрестные ссылки BIT_INT_SIZE, GetElement() и NUMBER_OF_ELEMENTS.

Используется в SendRPC().

◆ UpdateStatus()

void UpdateStatus ( )
204 {
205 //Log("UpdateStatus called for entity: "+ToString(m_Player));
206 for (int i = 0; i < NUMBER_OF_ELEMENTS; i++)
207 {
209 if ( element && !element.IsClientOnly() && element.IsValueChanged() )
210 {
211 element.UpdateHUD();
212 }
213 }
214 }

Перекрестные ссылки GetElement() и NUMBER_OF_ELEMENTS.

Используется в OnRPC().

◆ VirtualHud()

void VirtualHud ( PlayerBase player)
37 {
39 m_LastTick = 0;
40
41 RegisterElement(new BadgeStuffed(m_Player));
42 RegisterElement(new BadgeWet(m_Player));
43 RegisterElement(new BadgeSick(m_Player));
44 RegisterElement(new BadgePills(m_Player));
45 RegisterElement(new BadgePoisoned(m_Player));
46 RegisterElement(new BadgeFracture(m_Player));
47 RegisterElement(new TendencyHealth(m_Player));
48 RegisterElement(new TendencyBlood(m_Player));
49 RegisterElement(new TendencyTemperature(m_Player));
50
51 RegisterElement(new TendencyHunger(m_Player));
52 RegisterElement(new TendencyThirst(m_Player));
53 RegisterElement(new TendencyBacteria(m_Player));
54 RegisterElement(new BadgeHeartbeat(m_Player));
55 RegisterElement(new BadgeLegs(m_Player));
56
57
58 RegisterElement(new ElementStance(m_Player));// client only
59 RegisterElement(new BadgeBleeding(m_Player));// client only
60
61
62 mission = GetGame().GetMission();
63 if ( mission )
64 {
66 }
67 //UpdateStatus();
68 }
void RegisterElement(DisplayElementBase element)
Definition DisplayStatus.c:88
Hud m_Hud
Definition DisplayStatus.c:29
Mission mission
Definition DisplayStatus.c:28
Hud GetHud()
Definition gameplay.c:715

Перекрестные ссылки GetGame(), Mission::GetHud(), m_Hud, m_LastTick, m_Player, mission и RegisterElement().

Используется в ManBase::GetVirtualHud(), ManBase::Init() и ManBase::OnPlayerLoaded().

Переменные

◆ BLINKING_MINUS

enum DSLevels BLINKING_MINUS = 3

◆ BLINKING_PLUS

enum DSLevels BLINKING_PLUS = 6

◆ CRITICAL_MINUS

enum DSLevels CRITICAL_MINUS = 2

◆ CRITICAL_PLUS

enum DSLevels CRITICAL_PLUS = 5

◆ m_Elements

Используется в GetElement() и RegisterElement().

◆ m_Hud

◆ m_LastSentArray

ref array<int> m_LastSentArray

Используется в SendRPC().

◆ m_LastTick

int m_LastTick

Используется в OnScheduledTick(), ManBase::OnTick() и VirtualHud().

◆ m_Player

PlayerBase m_Player

◆ m_System

string m_System = "VirtualHud"

◆ mission

◆ NORMAL

@ NORMAL = 0

◆ NUMBER_OF_ELEMENTS

◆ NUMBER_OF_MASKS

enum DSLevels NUMBER_OF_MASKS = 2

◆ rpcParams

ref array<ref Param> rpcParams

◆ WARNING_MINUS

enum DSLevels WARNING_MINUS = 1

◆ WARNING_PLUS

enum DSLevels WARNING_PLUS = 4