DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
AreaDamageManager.c
См. документацию.
2{
3 const int BASE = 0;
4 const int HITZONE = 1;
5 const int RAYCASTED = 2;
6}
7
9{
12
14
19
20 protected string m_TriggerBaseClass;
21
23 {
24 m_ParentObject = parent;
25
27
30 m_AreaPosition = parent.GetPosition();
31 m_AreaOrientation = parent.GetOrientation();
32
33 m_TriggerBaseClass = "AreaDamageTriggerBase";
34 }
35
37 {
38 Destroy();
39 }
40
42 {
43 switch (type)
44 {
46 {
48 break;
49 }
51 {
53 break;
54 }
56 {
58 break;
59 }
60
61 default:
62 {
63 Error(string.Format("[ERROR] :: [AreaDamageManager] :: Unknown DamageComponentType: %1", type));
64 break;
65 }
66 }
67 }
68
70 void Spawn()
71 {
74 }
75
77 void Destroy()
78 {
81 }
82
84
91 override void OnTriggerCreated()
92 {
93 m_DamageComponent.OnTriggerCreated();
94 }
95
97 override void OnTriggerDestroyed()
98 {
99 m_DamageComponent.OnTriggerDestroyed();
100 }
101
103 override void OnEnterBeginEvent(TriggerInsider insider)
104 {
105 m_DamageComponent.OnEnterBeginEvent(insider);
106 }
107 override void OnEnterServerEvent(TriggerInsider insider)
108 {
109 m_DamageComponent.OnEnterServerEvent(insider);
110 }
111 override void OnEnterClientEvent(TriggerInsider insider)
112 {
113 m_DamageComponent.OnEnterClientEvent(insider);
114 }
115 override void OnEnterEndEvent(TriggerInsider insider)
116 {
117 m_DamageComponent.OnEnterEndEvent(insider);
118 }
119
121 override void OnStayStartBeginEvent(int nrOfInsiders)
122 {
123 m_DamageComponent.OnStayStartBeginEvent(nrOfInsiders);
124 }
125 override void OnStayStartServerEvent(int nrOfInsiders)
126 {
127 m_DamageComponent.OnStayStartServerEvent(nrOfInsiders);
128 }
129 override void OnStayStartClientEvent(int nrOfInsiders)
130 {
131 m_DamageComponent.OnStayStartClientEvent(nrOfInsiders);
132 }
133 override void OnStayStartEndEvent(int nrOfInsiders)
134 {
135 m_DamageComponent.OnStayStartEndEvent(nrOfInsiders);
136 }
137
139 override void OnStayBeginEvent(TriggerInsider insider, float deltaTime)
140 {
141 m_DamageComponent.OnStayBeginEvent(insider, deltaTime);
142 }
143 override void OnStayServerEvent(TriggerInsider insider, float deltaTime)
144 {
145 m_DamageComponent.OnStayServerEvent(insider, deltaTime);
146 }
147 override void OnStayClientEvent(TriggerInsider insider, float deltaTime)
148 {
149 m_DamageComponent.OnStayClientEvent(insider, deltaTime);
150 }
151 override void OnStayEndEvent(TriggerInsider insider, float deltaTime)
152 {
153 m_DamageComponent.OnStayEndEvent(insider, deltaTime);
154 }
155
158 {
159 m_DamageComponent.OnStayFinishBeginEvent();
160 }
162 {
163 m_DamageComponent.OnStayFinishServerEvent();
164 }
166 {
167 m_DamageComponent.OnStayFinishClientEvent();
168 }
169 override void OnStayFinishEndEvent()
170 {
171 m_DamageComponent.OnStayFinishEndEvent();
172 }
173
175 override void OnLeaveBeginEvent(TriggerInsider insider)
176 {
177 m_DamageComponent.OnLeaveBeginEvent(insider);
178 }
179 override void OnLeaveServerEvent(TriggerInsider insider)
180 {
181 m_DamageComponent.OnLeaveServerEvent(insider);
182 }
183 override void OnLeaveClientEvent(TriggerInsider insider)
184 {
185 m_DamageComponent.OnLeaveClientEvent(insider);
186 }
187 override void OnLeaveEndEvent(TriggerInsider insider)
188 {
189 m_DamageComponent.OnLeaveEndEvent(insider);
190 }
191
193 override bool OnEvaluateDamage(TriggerInsider insider, float damageCoef)
194 {
195 return m_DamageComponent.OnEvaluateDamage(insider, damageCoef);
196 }
197
199 override void PreDamageActions()
200 {
201 if ( m_ParentObject )
202 m_ParentObject.PreAreaDamageActions();
203 }
204
206 override void PostDamageActions()
207 {
208 if ( m_ParentObject )
209 m_ParentObject.PostAreaDamageActions();
210 }
211
213
214
218 bool OnEvaluateDamageEx(TriggerInsider insider, float deltaTime)
219 {
220 return OnEvaluateDamage( insider, CalculateDamageScale( insider, deltaTime ) );
221 }
222
224 protected float CalculateDamageScale(TriggerInsider insider, float deltaTime)
225 {
226 return deltaTime;
227 }
228
229
230
233 void SetExtents( vector mins, vector maxs )
234 {
235 m_ExtentMin = mins;
236 m_ExtentMax = maxs;
237
239 {
241 }
242 }
243 void GetExtents( out vector mins, out vector maxs )
244 {
245 mins = m_ExtentMin;
246 maxs = m_ExtentMax;
247 }
248 void GetWorldExtents( out vector mins, out vector maxs )
249 {
250 GetExtents(mins, maxs);
251
252 mins + m_AreaPosition;
253 maxs + m_AreaPosition;
254 }
255
256 void SetAmmoName( string ammo_name )
257 {
258 m_DamageComponent.m_AmmoName = ammo_name;
259 }
260 string GetAmmoName()
261 {
262 return m_DamageComponent.m_AmmoName;
263 }
264
265 void SetDamageType( int pDamageType )
266 {
267 m_DamageComponent.m_DamageType = pDamageType;
268 }
270 {
271 return m_DamageComponent.m_DamageType;
272 }
273
275 {
276 m_ParentObject = obj;
277 }
279 {
280 return m_ParentObject;
281 }
282
283 void SetAreaPosition( vector position )
284 {
285 m_AreaPosition = position;
286
288 {
290 }
291 }
293 {
294 return m_AreaPosition;
295 }
296
297 void SetAreaOrientation( vector orientation )
298 {
299 m_AreaOrientation = orientation;
300
302 {
304 }
305 }
307 {
308 return m_AreaOrientation;
309 }
310
312 {
313 m_DamageComponent.m_DamageableTypes = damageableTypes;
314 }
316 {
317 return m_DamageComponent.m_DamageableTypes;
318 }
319
320 void AddDamageableType(typename damageableType)
321 {
322 if (m_DamageComponent.m_DamageableTypes.Find(damageableType) != -1)
323 m_DamageComponent.m_DamageableTypes.Insert(damageableType);
324 }
325
326 void RemoveAddDamageableType(typename damageableType)
327 {
328 m_DamageComponent.m_DamageableTypes.RemoveItem(damageableType);
329 }
330
331 void SetLoopInterval( float time )
332 {
333 Error("SetLoopInterval not implemented - usable in Regular(looped) area damage objects only");
334 }
335
336 void SetDeferDuration( float time )
337 {
338 Error("SetDeferDuration not implemented - usable in Deferred area damage objects only");
339 }
340
341 void SetHitZones( array<string> hitzones )
342 {
344 if ( CastTo( adc, m_DamageComponent ) )
345 adc.SetHitZones( hitzones );
346 else
347 Error("SetHitZones not implemented - override for non raycasted versions of area damage objects only");
348 }
349
350 void SetRaycastSources( array<string> raycast_sources )
351 {
353 if ( CastTo( adc, m_DamageComponent ) )
354 adc.SetRaycastSources( raycast_sources );
355 else
356 Error("SetRaycastSources not implemented - override for raycasted versions of area damage objects only");
357 }
358
360 {
362 if ( CastTo( adc, m_DamageComponent ) )
363 adc.SetRaycastSourcesVector( raycast_sources );
364 else
365 Error("SetRaycastSources not implemented - override for raycasted versions of area damage objects only");
366 }
367
372
373
374
377 protected bool CreateDamageTriggerEx()
378 {
379 int flags;
380
381 if ( GetGame().IsMultiplayer() && GetGame().IsServer() )
382 flags = ECE_CREATEPHYSICS;
383 else
384 flags = ECE_LOCAL;
385
387 {
388 m_AreaDamageTrigger.SetOrientation( m_AreaOrientation );
390 m_AreaDamageTrigger.SetAreaDamageManager(this);
391 return true;
392 }
393
394 return false;
395 }
396
397 protected void CreateDamageTrigger()
398 {
400 }
401
402
403
406 protected bool DestroyDamageTriggerEx()
407 {
408 if ( GetGame() && m_AreaDamageTrigger ) // It's necesarry to check if the game exists. Otherwise a crash occurs while quitting.
409 {
411 m_AreaDamageTrigger = null;
412 return true;
413 }
414
415 return false;
416 }
417
418 protected void DestroyDamageTrigger()
419 {
421 }
422
423}
ref array< typename > m_DamageableTypes void AreaDamageComponent(AreaDamageManager parent)
Определения AreaDamageComponent.c:16
vector m_AreaPosition
Определения AreaDamageManager.c:17
bool DestroyDamageTriggerEx()
Определения AreaDamageManager.c:406
void AddDamageableType(typename damageableType)
Определения AreaDamageManager.c:320
void SetAreaOrientation(vector orientation)
Определения AreaDamageManager.c:297
override void OnStayStartBeginEvent(int nrOfInsiders)
Called at the beginning of an update loop.
Определения AreaDamageManager.c:121
void GetExtents(out vector mins, out vector maxs)
Определения AreaDamageManager.c:243
void SetDamageType(int pDamageType)
Определения AreaDamageManager.c:265
vector m_ExtentMin
Определения AreaDamageManager.c:15
vector m_ExtentMax
Определения AreaDamageManager.c:16
void SetDamageComponentType(int type)
Определения AreaDamageManager.c:41
AreaDamageTriggerBase GetTrigger()
Определения AreaDamageManager.c:368
void CreateDamageTrigger()
Определения AreaDamageManager.c:397
void SetExtents(vector mins, vector maxs)
Определения AreaDamageManager.c:233
array< typename > GetDamageableTypes()
Определения AreaDamageManager.c:315
override void OnStayServerEvent(TriggerInsider insider, float deltaTime)
Определения AreaDamageManager.c:143
void SetLoopInterval(float time)
Определения AreaDamageManager.c:331
override void OnStayClientEvent(TriggerInsider insider, float deltaTime)
Определения AreaDamageManager.c:147
vector GetOrientation()
Определения AreaDamageManager.c:306
override bool OnEvaluateDamage(TriggerInsider insider, float damageCoef)
Tell the AreaDamageComponent to calculate and apply the damage to the Object.
Определения AreaDamageManager.c:193
void SetDeferDuration(float time)
Определения AreaDamageManager.c:336
void GetWorldExtents(out vector mins, out vector maxs)
Определения AreaDamageManager.c:248
override void OnLeaveEndEvent(TriggerInsider insider)
Определения AreaDamageManager.c:187
void ~AreaDamageManager()
Определения AreaDamageManager.c:36
override void OnLeaveBeginEvent(TriggerInsider insider)
Called when an object leaves the trigger.
Определения AreaDamageManager.c:175
string m_TriggerBaseClass
Определения AreaDamageManager.c:20
override void OnStayStartServerEvent(int nrOfInsiders)
Определения AreaDamageManager.c:125
override void OnStayFinishServerEvent()
Определения AreaDamageManager.c:161
override void OnEnterEndEvent(TriggerInsider insider)
Определения AreaDamageManager.c:115
override void OnStayStartEndEvent(int nrOfInsiders)
Определения AreaDamageManager.c:133
void SetParentObject(EntityAI obj)
Определения AreaDamageManager.c:274
override void PostDamageActions()
Usually called from AreaDamageComponent.
Определения AreaDamageManager.c:206
override void OnStayFinishEndEvent()
Определения AreaDamageManager.c:169
void DestroyDamageTrigger()
Определения AreaDamageManager.c:418
float CalculateDamageScale(TriggerInsider insider, float deltaTime)
Helper for calculating damageCoeff when using OnEvaluateDamageEx.
Определения AreaDamageManager.c:224
void Spawn()
spawn damage trigger
Определения AreaDamageManager.c:70
override void OnLeaveClientEvent(TriggerInsider insider)
Определения AreaDamageManager.c:183
void RemoveAddDamageableType(typename damageableType)
Определения AreaDamageManager.c:326
bool CreateDamageTriggerEx()
Определения AreaDamageManager.c:377
void SetDamageableTypes(array< typename > damageableTypes)
Определения AreaDamageManager.c:311
void SetAreaPosition(vector position)
Определения AreaDamageManager.c:283
void SetHitZones(array< string > hitzones)
Определения AreaDamageManager.c:341
void SetAmmoName(string ammo_name)
Определения AreaDamageManager.c:256
override void OnStayFinishClientEvent()
Определения AreaDamageManager.c:165
bool OnEvaluateDamageEx(TriggerInsider insider, float deltaTime)
Определения AreaDamageManager.c:218
override void OnStayStartClientEvent(int nrOfInsiders)
Определения AreaDamageManager.c:129
ref AreaDamageComponent m_DamageComponent
Определения AreaDamageManager.c:13
vector m_AreaOrientation
Определения AreaDamageManager.c:18
override void OnStayEndEvent(TriggerInsider insider, float deltaTime)
Определения AreaDamageManager.c:151
override void OnTriggerCreated()
Определения AreaDamageManager.c:91
string GetAmmoName()
Определения AreaDamageManager.c:260
int GetDamageType()
Определения AreaDamageManager.c:269
void AreaDamageManager(EntityAI parent)
Определения AreaDamageManager.c:22
override void PreDamageActions()
Usually called from AreaDamageComponent.
Определения AreaDamageManager.c:199
override void OnStayFinishBeginEvent()
Called at the end of an update loop.
Определения AreaDamageManager.c:157
AreaDamageTriggerBase m_AreaDamageTrigger
Определения AreaDamageManager.c:11
override void OnStayBeginEvent(TriggerInsider insider, float deltaTime)
Called in the update loop.
Определения AreaDamageManager.c:139
override void OnLeaveServerEvent(TriggerInsider insider)
Определения AreaDamageManager.c:179
void SetRaycastSources(array< string > raycast_sources)
Определения AreaDamageManager.c:350
override void OnTriggerDestroyed()
Called when a trigger is destroyed.
Определения AreaDamageManager.c:97
override void OnEnterBeginEvent(TriggerInsider insider)
Called when an object enters the trigger.
Определения AreaDamageManager.c:103
void SetRaycastSourcesVector(array< vector > raycast_sources)
Определения AreaDamageManager.c:359
override void OnEnterServerEvent(TriggerInsider insider)
Определения AreaDamageManager.c:107
EntityAI GetParentObject()
Определения AreaDamageManager.c:278
override void OnEnterClientEvent(TriggerInsider insider)
Определения AreaDamageManager.c:111
const int ECE_LOCAL
Определения CentralEconomy.c:24
const int ECE_CREATEPHYSICS
Определения CentralEconomy.c:16
Object m_ParentObject
Cached parent.
Определения Effect.c:39
void SetHitZones(array< string > hitzones)
Newer implementation equivalent of "AreaDamageRegular", hitzone selection only.
void SetRaycastSourcesVector(array< vector > raycast_sources)
Определения AreaDamageComponentRaycasted.c:39
void SetRaycastSources(array< string > raycast_sources)
Определения AreaDamageComponentRaycasted.c:27
Newer implementation equivalent of "AreaDamageRegularRaycasted", hitzone selection only.
Определения AreaDamageComponentRaycasted.c:3
const int HITZONE
Определения AreaDamageManager.c:4
const int RAYCASTED
Определения AreaDamageManager.c:5
const int BASE
Определения AreaDamageManager.c:3
Events used across AreaDamage API, calling of these needs to be handled by parent.
Определения AreaDamageEvents.c:3
proto native void ObjectDelete(Object obj)
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
The object which is in a trigger and its metadata.
Определения Trigger.c:3
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static const vector Zero
Определения EnConvert.c:110
Определения EnConvert.c:106
proto native CGame GetGame()
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
proto native void Destroy()
Cleans up the Effect, including unregistering if needed.
Определения Effect.c:214
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9