Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс DayZCreature

Защищенные члены

void DayZCreatureAI ()
 
void IncreaseEffectTriggerCount ()
 
void DecreaseEffectTriggerCount ()
 
void AddDamageSphere (AnimDamageParams damage_params)
 
override void EEKilled (Object killer)
 
AnimBootsType GetBootsType ()
 
AbstractWave PlaySound (SoundObject so, SoundObjectBuilder sob)
 
void OnSoundEvent (int event_id, string event_user_string)
 
void OnSoundVoiceEvent (int event_id, string event_user_string)
 
void OnStepEvent (int event_id, string event_user_string)
 
void OnDamageEvent (int event_id, string event_user_string)
 
void RegisterAnimEvents ()
 
void AttenuateSoundIfNecessary (SoundObject soundObject)
 
bool ResistContaminatedEffect ()
 
bool IsDanger ()
 
string CaptureSound ()
 
string ReleaseSound ()
 
void CinematicTakeControl (DayZPlayer player)
 
bool CinematicCanJump ()
 
override bool ModCommandHandlerBefore (float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
 

Защищенные данные

DayZPlayer m_CinematicPlayer
 

Закрытые члены

proto native AIAgent GetAIAgent ()
 
proto native bool IsSoundInsideBuilding ()
 
proto native void AddDamageSphere (string bone_name, string ammo_name, float radius, float duration, bool invertTeams)
 
proto native DayZCreatureAIType GetCreatureAIType ()
 
proto native void InitAIAgent (AIGroup group)
 
proto native void DestroyAIAgent ()
 
void ProcessSoundEvent (AnimSoundEvent sound_event)
 
void ProcessSoundVoiceEvent (AnimSoundVoiceEvent sound_event)
 
void ProcessStepEvent (AnimStepEvent step_event)
 
void ProcessDamageEvent (AnimDamageEvent damage_event)
 

Закрытые данные

int m_EffectTriggerCount
 

Подробное описание

Методы

◆ AddDamageSphere() [1/2]

void AddDamageSphere ( AnimDamageParams damage_params)
inlineprotected
184 {
185 AddDamageSphere(damage_params.m_sBoneName, damage_params.m_sAmmoName, damage_params.m_fRadius, damage_params.m_fDuration, damage_params.m_bInvertTeams);
186 }
proto native void AddDamageSphere(string bone_name, string ammo_name, float radius, float duration, bool invertTeams)
Definition EntityAI.c:95

◆ AddDamageSphere() [2/2]

proto native void AddDamageSphere ( string bone_name,
string ammo_name,
float radius,
float duration,
bool invertTeams )
private

◆ AttenuateSoundIfNecessary()

void AttenuateSoundIfNecessary ( SoundObject soundObject)
inlineprotected
334 {
335 if (GetGame().GetPlayer() != NULL && (IsSoundInsideBuilding() != GetGame().GetPlayer().IsSoundInsideBuilding() || GetGame().GetPlayer().IsCameraInsideVehicle()))
336 {
337 soundObject.SetKind(WaveKind.WAVEATTALWAYS);
338 }
339 else
340 {
341 soundObject.SetKind(WaveKind.WAVEEFFECTEX);
342 }
343 }
PlayerBase GetPlayer()
Definition ModifierBase.c:47
WaveKind
Definition Sound.c:2
proto native bool IsSoundInsideBuilding()
proto native CGame GetGame()

Перекрестные ссылки GetGame() и GetPlayer().

◆ CaptureSound()

string CaptureSound ( )
inlineprotected
361 {
362 return "";
363 }

◆ CinematicCanJump()

bool CinematicCanJump ( )
inlineprotected
380 {
381 return true;
382 }

◆ CinematicTakeControl()

void CinematicTakeControl ( DayZPlayer player)
inlineprotected
375 {
377 }
DayZPlayer m_CinematicPlayer
Definition DayZAnimal.c:163

◆ DayZCreatureAI()

void DayZCreatureAI ( )
inlineprotected
167 {
169 SetFlags(EntityFlags.TOUCHTRIGGERS, false);
170 }
void RegisterAnimEvents()
Definition DayZAnimal.c:247
proto native void SetFlags(ShapeFlags flags)
EntityFlags
Entity flags.
Definition EnEntity.c:115

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

◆ DecreaseEffectTriggerCount()

void DecreaseEffectTriggerCount ( )
inlineprotected
179 {
181 }
int m_EffectTriggerCount
Definition DayZAnimal.c:161

◆ DestroyAIAgent()

proto native void DestroyAIAgent ( )
private

◆ EEKilled()

override void EEKilled ( Object killer)
inlineprotected
189 {
190 super.EEKilled(killer);
191 CreateComponent(COMP_TYPE_BODY_STAGING); // TO DO: This is never called on clients in multiplayer! That's why skinning doesn't work properly in MP. DAYZ-28269
192 }
const int COMP_TYPE_BODY_STAGING
Definition Component.c:10

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

◆ GetAIAgent()

proto native AIAgent GetAIAgent ( )
private

◆ GetBootsType()

AnimBootsType GetBootsType ( )
inlineprotected
195 {
196 return AnimBootsType.None;
197 }
AnimBootsType
Definition DayZAnimEvents.c:98

◆ GetCreatureAIType()

proto native DayZCreatureAIType GetCreatureAIType ( )
private

◆ IncreaseEffectTriggerCount()

void IncreaseEffectTriggerCount ( )
inlineprotected
174 {
176 }

◆ InitAIAgent()

proto native void InitAIAgent ( AIGroup group)
private

AIAgent initialization. Manual ai initialization for creatures created with CreateObject(... init_ai = false...).

◆ IsDanger()

bool IsDanger ( )
inlineprotected
356 {
357 return false;
358 }

◆ IsSoundInsideBuilding()

proto native bool IsSoundInsideBuilding ( )
private

◆ ModCommandHandlerBefore()

override bool ModCommandHandlerBefore ( float pDt,
int pCurrentCommandID,
bool pCurrentCommandFinished )
inlineprotected

sprint

jog

walk

385 {
387 {
388 return super.ModCommandHandlerBefore(pDt, pCurrentCommandID, pCurrentCommandFinished);
389 }
390
391 UAInterface input = m_CinematicPlayer.GetInputInterface();
392
394 GetGame().GameScript.CallFunction(this, "GetInputController", controller, 0);
395
396 if (!input || !controller)
397 {
398 return super.ModCommandHandlerBefore(pDt, pCurrentCommandID, pCurrentCommandFinished);
399 }
400
401 float movementX = input.SyncedValue_ID(UAAimRight) - input.SyncedValue_ID(UAAimLeft);
402
403 float maxTurnSpeed = 100.0;
404 movementX = Math.Clamp(movementX * maxTurnSpeed * pDt, -180, 180);
405
406 if (input.SyncedValue_ID(UALookAround) > 0)
407 {
408 movementX = 0;
409 }
410
411 bool isJump = input.SyncedValue_ID(UAGetOver) > 0;
412 bool isMove = input.SyncedValue_ID(UAMoveForward) > 0;
413
414 bool isRest = input.SyncedValue_ID(UAMoveBack) > 0;
415 bool isSleep = input.SyncedValue_ID(UAReloadMagazine) > 0;
416
417 float heading = GetOrientation()[0] + movementX;
418
419 int iAlert = 0;
420 float fAlert = 0;
421 int iSpeed = 0;
422 float fSpeed = 0;
423
424 if (isMove)
425 {
426 iAlert = 1;
427 fAlert = 0.2;
428
429 bool isSprint = input.SyncedValue_ID(UATurbo) > 0;
430 bool isJog = input.SyncedValue_ID(UAWalkRunTemp) > 0;
431 bool isWalk = !isSprint && !isJog;
432 if (isSprint)
433 {
435 iSpeed = 3;
436 }
437 else if (isJog)
438 {
440 iSpeed = 2;
441 }
442 else if (isWalk)
443 {
445 iSpeed = 1;
446 }
447 }
448
451 {
452 animalController.OverrideBehaviourSlot(true, DayZAnimalBehaviourSlot.NON_SPECIFIC_THREAT);
453 animalController.OverrideBehaviourAction(true, DayZAnimalBehaviourAction.TRAVELING_INPUT);
454
455 if (!isMove)
456 {
457 if (isRest)
458 {
459 iSpeed = 0;
460 animalController.OverrideBehaviourAction(true, DayZAnimalBehaviourAction.IDLE1_INPUT);
461 }
462
463 if (isSleep)
464 {
465 iSpeed = 0;
466 animalController.OverrideBehaviourAction(true, DayZAnimalBehaviourAction.WALKING_INPUT);
467 }
468 }
469 }
470
471 bool lowVel = GetVelocity(this).Length() < 0.5;
472 if (iSpeed > 0 && lowVel)
473 {
474 iAlert = 4;
475 fAlert = 1.0;
476
477 iSpeed = 3;
478 }
479
481 {
482 switch (iSpeed)
483 {
484 case 0:
485 fSpeed = 0;
486 break;
487 case 1:
488 fSpeed = 2;
489 break;
490 case 2:
491 fSpeed = 3;
492 break;
493 case 3:
494 fSpeed = 5;
495 break;
496 }
497 }
498
499 controller.OverrideTurnSpeed(true, Math.PI2 / pDt);
500 controller.OverrideMovementSpeed(true, fSpeed);
501 controller.OverrideHeading(true, heading * Math.DEG2RAD);
502 controller.OverrideAlertLevel(true, true, iAlert, fAlert);
503
504 if (CinematicCanJump() && isJump)
505 {
506 controller.OverrideJump(true, 101, 2.0);
507 }
508
509 return true;
510 }
vector GetOrientation()
Definition AreaDamageManager.c:306
DayZAnimalBehaviourSlot
defined in C++
Definition DayZAnimalInputController.c:3
DayZAnimalBehaviourAction
defined in C++
Definition DayZAnimalInputController.c:27
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition DayZAnimalInputController.c:50
Definition DayZCreatureAIInputController.c:2
bool CinematicCanJump()
Definition DayZAnimal.c:379
Definition EnMath.c:7
Definition UAInput.c:96
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static const float PI2
Definition EnMath.c:13
static const float DEG2RAD
Definition EnMath.c:17
proto native vector GetVelocity(notnull IEntity ent)
Returns linear velocity.

Перекрестные ссылки Class::CastTo(), Math::Clamp(), Math::DEG2RAD, GetGame(), GetOrientation(), GetVelocity() и Math::PI2.

◆ OnDamageEvent()

void OnDamageEvent ( int event_id,
string event_user_string )
inlineprotected
239 {
241 if(damage_event != NULL)
242 {
244 }
245 }
void ProcessDamageEvent(AnimDamageEvent damage_event)
Definition DayZAnimal.c:328
proto native DayZCreatureAIType GetCreatureAIType()

◆ OnSoundEvent()

void OnSoundEvent ( int event_id,
string event_user_string )
inlineprotected
212 {
214 if(sound_event != NULL)
215 {
217 }
218 }
void ProcessSoundEvent(AnimSoundEvent sound_event)
Definition DayZAnimal.c:273

◆ OnSoundVoiceEvent()

void OnSoundVoiceEvent ( int event_id,
string event_user_string )
inlineprotected
221 {
223 if(voice_event != NULL)
224 {
226 }
227 }
void ProcessSoundVoiceEvent(AnimSoundVoiceEvent sound_event)
Definition DayZAnimal.c:293

◆ OnStepEvent()

void OnStepEvent ( int event_id,
string event_user_string )
inlineprotected
230 {
232 if(step_event != NULL)
233 {
235 }
236 }
void ProcessStepEvent(AnimStepEvent step_event)
Definition DayZAnimal.c:314

◆ PlaySound()

AbstractWave PlaySound ( SoundObject so,
SoundObjectBuilder sob )
inlineprotected
200 {
201 if(so == NULL)
202 {
203 return NULL;
204 }
205
206 so.SetPosition(GetPosition());
207 AbstractWave wave = GetGame().GetSoundScene().Play3D(so, sob);
208 return wave;
209 }
class JsonUndergroundAreaTriggerData GetPosition
Definition UndergroundAreaLoader.c:9
Definition Sound.c:119

Перекрестные ссылки GetGame() и GetPosition.

◆ ProcessDamageEvent()

void ProcessDamageEvent ( AnimDamageEvent damage_event)
inlineprivate
329 {
330 AddDamageSphere(damage_event.m_DamageParams);
331 }

◆ ProcessSoundEvent()

void ProcessSoundEvent ( AnimSoundEvent sound_event)
inlineprivate
274 {
275 if(!GetGame().IsDedicatedServer())
276 {
277 SoundObjectBuilder objectBuilder = sound_event.GetSoundBuilder();
278 if(NULL != objectBuilder)
279 {
280 objectBuilder.AddEnvSoundVariables(GetPosition());
281 SoundObject soundObject = objectBuilder.BuildSoundObject();
283 }
284 }
285
286 if(GetGame().IsServer())
287 {
288 if(sound_event.m_NoiseParams != NULL)
289 GetGame().GetNoiseSystem().AddNoise(this, sound_event.m_NoiseParams);
290 }
291 }
void PlaySound()
Definition HungerSoundHandler.c:38
class SoundObjectBuilder SoundObject(SoundParams soundParams)
Definition Sound.c:46

Перекрестные ссылки GetGame(), GetPosition, PlaySound() и SoundObject().

◆ ProcessSoundVoiceEvent()

void ProcessSoundVoiceEvent ( AnimSoundVoiceEvent sound_event)
inlineprivate
294 {
295 if(!GetGame().IsDedicatedServer())
296 {
297 SoundObjectBuilder objectBuilder = sound_event.GetSoundBuilder();
298 if(NULL != objectBuilder)
299 {
300 objectBuilder.AddEnvSoundVariables(GetPosition());
301 SoundObject soundObject = objectBuilder.BuildSoundObject();
304 }
305 }
306
307 if(GetGame().IsServer())
308 {
309 if(sound_event.m_NoiseParams != NULL)
310 GetGame().GetNoiseSystem().AddNoise(this, sound_event.m_NoiseParams);
311 }
312 }
void AttenuateSoundIfNecessary(SoundObject soundObject)
Definition DayZAnimal.c:333

Перекрестные ссылки GetGame(), GetPosition, PlaySound() и SoundObject().

◆ ProcessStepEvent()

void ProcessStepEvent ( AnimStepEvent step_event)
inlineprivate
315 {
316 SoundObjectBuilder soundBuilder = step_event.GetSoundBuilder(GetSurfaceType().Hash());
317 if(soundBuilder == NULL)
318 return;
319
320 soundBuilder.AddEnvSoundVariables(GetPosition());
321 SoundObject soundObject = soundBuilder.BuildSoundObject();
324
325 //TODO effects
326 }

Перекрестные ссылки GetPosition, PlaySound() и SoundObject().

◆ RegisterAnimEvents()

void RegisterAnimEvents ( )
inlineprotected
248 {
249 if(!RegisterAnimationEvent("Sound", "OnSoundEvent"))
250 {
251 Print("Error registering anim. event (Sound)");
252 }
253
254 if(!RegisterAnimationEvent("SoundVoice", "OnSoundVoiceEvent"))
255 {
256 Print("Error registering anim. event (SoundVoice)");
257 }
258
259 if(!GetGame().IsDedicatedServer())
260 {
261 if(!RegisterAnimationEvent("Step", "OnStepEvent"))
262 {
263 Print("Error registering anim. event (Step)");
264 }
265 }
266
267 if(!RegisterAnimationEvent("Damage", "OnDamageEvent"))
268 {
269 Print("Error registering anim. event (Damage)");
270 }
271 }
class DayZCreatureAnimInterface RegisterAnimationEvent(string event_name, string function_name)
proto void Print(void var)
Prints content of variable to console/log.

Перекрестные ссылки GetGame(), Print() и RegisterAnimationEvent().

◆ ReleaseSound()

string ReleaseSound ( )
inlineprotected
366 {
367 return "";
368 }

◆ ResistContaminatedEffect()

bool ResistContaminatedEffect ( )
inlineprotected
346 {
347 return false;
348 }

Поля

◆ m_CinematicPlayer

DayZPlayer m_CinematicPlayer
protected

◆ m_EffectTriggerCount

int m_EffectTriggerCount
private

Объявления и описания членов класса находятся в файле: