DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
AlarmClock.c
См. документацию.
2{
3 const string RINGING_SOUND = "AlarmClock_Ring_Loop_SoundSet";
4 const string TURN_TOGGLE_SOUND = "AlarmClock_Turn_Off_SoundSet";
5 const string DESTROYED_SOUND = "AlarmClock_Destroyed_SoundSet";
6 const string HIT_SOUND = "AlarmClock_Hit_SoundSet";
7
8
11
12 override void Init()
13 {
14 super.Init();
15 if ( GetGame().IsServer() )
16 {
18 if ( m_NoiseSystem && !m_NoisePar )
19 {
20 // Create and load noise parameters
22 m_NoisePar.LoadFromPath("cfgVehicles " + GetType() + " NoiseAlarmClock");
23 }
24 }
25 }
26
28 {
29 #ifndef SERVER
31 #endif
32 }
33
34
35 override void SetActions()
36 {
37 super.SetActions();
38
42 }
43
44 override string GetToggleSound()
45 {
46 return TURN_TOGGLE_SOUND;
47 }
48
49 override string GetRingingSound()
50 {
51 return RINGING_SOUND;
52 }
53
54 override string GetDestroyedSound()
55 {
56 return DESTROYED_SOUND;
57 }
58
59 override string GetHitSound()
60 {
61 return HIT_SOUND;
62 }
63
65 {
66 return "TriggerAlarmClock";
67 }
68
69 override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
70 {
71 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.ACTIVATE_ENTITY, "SetAlarmAhead1Min", FadeColors.LIGHT_GREY));
72 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.SEPARATOR, "___________________________", FadeColors.LIGHT_GREY));
73
74 super.GetDebugActions(outputList);
75 }
76
77 override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
78 {
79 if (super.OnAction(action_id, player, ctx))
80 return true;
81 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
82 {
83 if (action_id == EActions.ACTIVATE_ENTITY)
84 {
86 }
87
88 }
89 return false;
90 }
91
92 override string GetDebugText()
93 {
94 string debug_output;
95
96 if( GetGame().IsDedicatedServer())
97 {
98 debug_output = "alarm in: " + GetAlarmInMin().ToString() + " mins" + "\n";
99 debug_output += "current state: " + typename.EnumToString(EAlarmClockState, m_State) + "\n";;
100 debug_output += "ringing for " + m_RingingDuration.ToString()+ " secs" + "\n";
101 debug_output += "ringing max " + GetRingingDurationMax().ToString()+ " secs" + "\n";
102 }
103 else
104 {
105 debug_output = "this is client";
106 }
107 return debug_output;
108 }
109
110 void OnUpdate()
111 {
112 if ( IsAlarmOn() )
113 {
114 //due to variable server time flow(day-night time accel), it's not possible to simply set a timer for X secs without some convoluted math/code, so we need to check at regular intervals
115 int alarm_hand_in_minutes = ConvertAlarmHand01ToMins12h(m_AlarmTime01);
116
117 int pass, hour, minute;
118 GetGame().GetWorld().GetDate(pass, pass, pass, hour, minute);
119
120 int curr_time_in_minutes = ConvertTimeToMins12h(hour, minute);
121
122 //Print(GetAlarmInMin());
123
124 if ( alarm_hand_in_minutes == curr_time_in_minutes )
125 {
127 }
128 }
129
130 if ( IsRinging())
131 {
133
135 {
136 TurnOff();
137 }
138 else if ( m_NoiseSystem )
139 {
141 }
142 }
143 }
144
145 protected void AnimateAlarmHand(float value)
146 {
147 SetAnimationPhaseNow("ClockAlarm", value);
148 }
149
150
151 override bool OnStoreLoad( ParamsReadContext ctx, int version )
152 {
153 if (!super.OnStoreLoad(ctx, version))
154 return false;
155
156 if (version < 126)
157 {
158 return true;
159 }
160
161 EAlarmClockState state;
162
163 if ( !ctx.Read( state ) )
164 {
165 return false;
166 }
167
168 float time;
169
170 if ( !ctx.Read( time ) )
171 {
172 return false;
173 }
174
175 SetAlarmTimeServer(time);
176 SetState(state);
177 if ( state == EAlarmClockState.SET )
178 {
179 TurnOn();
180 }
181 else if (state == EAlarmClockState.RINGING )
182 {
184 }
185
186 return true;
187 }
188
190 {
191 super.OnStoreSave(ctx);
192
193 ctx.Write(m_State);
194 ctx.Write(m_AlarmTime01);
195 }
196
197 override void OnDebugSpawn()
198 {
199 TurnOn();
201 }
202
203};
204
Param4< int, int, string, int > TSelectableActionInfoWithColor
Определения EntityAI.c:97
eBleedingSourceType GetType()
Определения BleedingSource.c:63
ActionTurnOffAlarmClockCB ActionSingleUseBaseCB ActionTurnOffAlarmClock()
Определения ActionTurnOffAlarmClock.c:11
ActionTurnOnAlarmClockCB ActionSingleUseBaseCB ActionTurnOnAlarmClock()
Определения ActionTurnOnAlarmClock.c:11
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
enum EAlarmClockState m_AlarmTime01
void TurnOff()
Определения ClockBase.c:306
bool IsRinging()
Определения ClockBase.c:291
void OnRingingStopClient()
Определения ClockBase.c:166
void ClockBase()
Определения ClockBase.c:27
bool IsAlarmOn()
Определения ClockBase.c:296
void SetAlarmInXMins(int in_mins)
Определения ClockBase.c:171
float m_RingingDuration
Определения ClockBase.c:16
void TurnOn()
Определения ClockBase.c:301
int GetAlarmInMin()
Определения ClockBase.c:53
EAlarmClockState
Определения ClockBase.c:2
static int ConvertAlarmHand01ToMins12h(float time01)
Определения ClockBase.c:65
float GetRingingDurationMax()
Определения ClockBase.c:181
static const float UPDATE_TICK_RATE
Определения ClockBase.c:14
void MakeRingingStart()
Определения ClockBase.c:223
void SetAlarmTimeServer(float time01)
Определения ClockBase.c:320
static int ConvertTimeToMins12h(int hour, int minute)
Определения ClockBase.c:81
EActions
Определения EActions.c:2
class NoiseSystem NoiseParams()
Определения Noise.c:15
enum EObjectTemperatureState m_State
void SetState(bool state)
Определения StaminaHandler.c:32
Определения AlarmClock.c:206
void AnimateAlarmHand(float value)
Определения AlarmClock.c:145
const string RINGING_SOUND
Определения AlarmClock.c:3
override string GetHitSound()
Определения AlarmClock.c:59
override void OnStoreSave(ParamsWriteContext ctx)
Определения AlarmClock.c:189
const string TURN_TOGGLE_SOUND
Определения AlarmClock.c:4
override string GetDestroyedSound()
Определения AlarmClock.c:54
override bool OnStoreLoad(ParamsReadContext ctx, int version)
Определения AlarmClock.c:151
override string GetDebugText()
Определения AlarmClock.c:92
override void OnDebugSpawn()
Определения AlarmClock.c:197
const string DESTROYED_SOUND
Определения AlarmClock.c:5
void OnUpdate()
Определения AlarmClock.c:110
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
Определения AlarmClock.c:77
static ref NoiseParams m_NoisePar
Определения AlarmClock.c:9
override string GetToggleSound()
Определения AlarmClock.c:44
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения AlarmClock.c:69
override string GetRingingSound()
Определения AlarmClock.c:49
void ~AlarmClock_ColorBase()
Определения AlarmClock.c:27
override string GetExplosiveTriggerSlotName()
Определения AlarmClock.c:64
static NoiseSystem m_NoiseSystem
Определения AlarmClock.c:10
override void SetActions()
Определения AlarmClock.c:35
const string HIT_SOUND
Определения AlarmClock.c:6
override void Init()
Определения AlarmClock.c:12
Определения AlarmClock.c:2
Определения AlarmClock.c:207
Определения AlarmClock.c:205
proto native NoiseSystem GetNoiseSystem()
proto native World GetWorld()
static float GetNoiseReduction(Weather weather)
Определения SensesAIEvaluate.c:18
Определения Noise.c:2
proto bool Write(void value_out)
proto bool Read(void value_in)
proto void GetDate(out int year, out int month, out int day, out int hour, out int minute)
Get actual ingame world time.
proto string ToString(bool simple=true)
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
Serializer ParamsWriteContext
Определения gameplay.c:16
const int SAT_DEBUG_ACTION
Определения constants.c:452
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9