26 #ifdef _DAYZ_CREATURE_DEBUG_SHADOW
62 return !GetIsFrozen();
98 GetTransform(parentTransMat);
105 parentTransMat[0] = rotMatrix[0];
106 parentTransMat[1] = rotMatrix[1];
107 parentTransMat[2] = rotMatrix[2];
108 parentTransMat[3] = closeBonePosWS;
111 arrow.GetTransform(arrowTransMat);
115 arrow.SetTransform(arrowTransMat);
153 proto native
void DebugDisableAIControl();
154 proto native
void DebugRestoreAIControl();
156 proto native
void AddDamageSphere(
string bone_name,
string ammo_name,
float radius,
float duration,
bool invertTeams);
190 AddDamageSphere(damage_params.m_sBoneName, damage_params.m_sAmmoName, damage_params.m_fRadius, damage_params.m_fDuration, damage_params.m_bInvertTeams);
195 super.EEKilled(killer);
219 if(sound_event != NULL)
227 AnimSoundVoiceEvent voice_event =
GetCreatureAIType().GetSoundVoiceEvent(event_id);
228 if(voice_event != NULL)
237 if(step_event != NULL)
246 if(damage_event != NULL)
256 Print(
"Error registering anim. event (Sound)");
261 Print(
"Error registering anim. event (SoundVoice)");
264 if(!
GetGame().IsDedicatedServer())
268 Print(
"Error registering anim. event (Step)");
274 Print(
"Error registering anim. event (Damage)");
280 if(!
GetGame().IsDedicatedServer())
283 if(NULL != objectBuilder)
286 SoundObject soundObject = objectBuilder.BuildSoundObject();
293 if(sound_event.m_NoiseParams != NULL)
300 if(!
GetGame().IsDedicatedServer())
303 if(NULL != objectBuilder)
306 SoundObject soundObject = objectBuilder.BuildSoundObject();
314 if(sound_event.m_NoiseParams != NULL)
321 SoundObjectBuilder soundBuilder = step_event.GetSoundBuilder(GetSurfaceType().Hash());
322 if(soundBuilder == NULL)
326 SoundObject soundObject = soundBuilder.BuildSoundObject();
393 return super.ModCommandHandlerBefore(pDt, pCurrentCommandID, pCurrentCommandFinished);
401 if (!input || !controller)
403 return super.ModCommandHandlerBefore(pDt, pCurrentCommandID, pCurrentCommandFinished);
408 float maxTurnSpeed = 100.0;
409 movementX =
Math.
Clamp(movementX * maxTurnSpeed * pDt, -180, 180);
436 bool isWalk = !isSprint && !isJog;
477 if (iSpeed > 0 && lowVel)
485 if (animalController)
518enum DayZAnimalConstants
666 return EInventoryIconVisibility.HIDE_VICINITY;
686 if (
HandleDeath(currentCommandID, inputController))
691 if (currentCommandFinished)
693 if (currentCommandID == DayZAnimalConstants.COMMANDID_ATTACK)
711 if (currentCommandID == DayZAnimalConstants.COMMANDID_ATTACK)
718 if (currentCommandID == DayZAnimalConstants.COMMANDID_MOVE)
720 if (inputController.
IsJump())
747 if (inputController.
IsDead())
749 if (currentCommandID == DayZAnimalConstants.COMMANDID_DEATH)
777 if (currentCommandID != DayZAnimalConstants.COMMANDID_HIT)
788 super.EEHitBy(damageResult, damageType, source,
component, dmgZone, ammo, modelPos, speedCoef);
789 m_TransportHitRegistered =
false;
791 int transferShockToDamageCoef =
g_Game.ConfigGetInt(
string.Format(
"%1 %2 DamageApplied transferShockToDamage",
CFG_AMMO, ammo));
792 if (transferShockToDamageCoef == 1)
800 animal_bleeding.
CreateWound( damageResult, dmgZone, ammo );
833 vector targetDirection = GetDirection();
836 targetDirection[1] = 0;
837 toSourceDirection[1] = 0;
842 float cosFi =
vector.
Dot(targetDirection, toSourceDirection);
843 vector cross = targetDirection * toSourceDirection;
847 dirAngleDeg = -dirAngleDeg;
854 if (angleDeg >= -20 && angleDeg <= 20)
858 else if (angleDeg < 0)
868 const int directionCount = 4;
877 offset = directionCount;
881 offset = 2 * directionCount;
885 offset = 3 * directionCount;
906 RegisterTransportHit(transport);
952 return GetSelectionPositionMS(pSelection);
965 return super.ConvertNonlethalDamage(damage, damageType);
class AnimalBase extends DayZAnimal RegisterHitComponentsForAI()
DamageType
exposed from C++ (do not change)
override bool DisableVicinityIcon()
proto native DayZCreatureAnimInterface GetAnimInterface()
proto native void PrePhys_SetRotation(float pInRot[4])
bool PostPhysUpdate(float pDt)
class DayZCreatureAI extends DayZCreature COMMANDID_ATTACK
proto native void SetAnimationInstanceByName(string animation_instance_name, int instance_uuid, float duration)
proto native void PostPhys_SetPosition(vector pInTransl)
quaternion in world space
bool ModCommandHandlerInside(float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
class DayZCreatureAI extends DayZCreature COMMANDID_HIT
class DayZCreatureAnimInterface RegisterAnimationEvent(string event_name, string function_name)
class DayZAnimalCommandMove extends AnimCommandBase SetFlagFinished(bool pFinished)
DayZAnimalCommandScript fully scriptable command.
override bool HasFixedActionTargetCursorPosition()
proto native void UpdateSimulationPrecision(int simLOD)
proto native bool PrePhys_GetRotation(out float pOutRot[4])
proto native int GetCurrentAnimationInstanceUUID()
proto native bool IsDeathProcessed()
proto native void PostPhys_GetRotation(out float pOutRot[4])
vec3 in world space
override void AddArrow(Object arrow, int componentIndex, vector closeBonePosWS, vector closeBoneRotWS)
proto native int GetBoneIndexByName(string pBoneName)
returns bone index for a name (-1 if pBoneName doesn't exist)
proto native bool PrePhys_GetTranslation(out vector pOutTransl)
script function usable in PrePhysUpdate
proto native void PostPhys_SetRotation(float pInRot[4])
vec3 in world space
override bool IsIgnoredByConstruction()
proto native void PrePhys_SetTranslation(vector pInTransl)
proto native void ResetDeath()
proto native void StartDeath()
class DayZCreatureAI extends DayZCreature COMMANDID_JUMP
proto native void PostPhys_LockRotation()
quaternion in world space
override bool CanBeSkinned()
proto native void ResetDeathCooldown()
bool ModCommandHandlerBefore(float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
override bool IsManagingArrows()
bool ModCommandHandlerAfter(float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
override bool IsDayZCreature()
proto native void PostPhys_GetPosition(out vector pOutTransl)
script function usable in PostPhysUpdate
proto native bool IsDeathConditionMet()
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
base class of all commands exposed to script to provide common functionality over animations
proto native NoiseSystem GetNoiseSystem()
proto native AbstractSoundScene GetSoundScene()
static ref TStringArray ARRAY_STRING
Super root of all classes in Enforce script.
void CreateWound(TotalDamageResult damage_result, string zone_name, string ammo)
static void RegisterHitComponent(array< ref DayZAIHitComponent > pHitComponents, string pName, float pWeight)
Register Hit Component for AI targeting.
static bool SelectMostProbableHitComponent(array< ref DayZAIHitComponent > pHitComponents, out string pHitComponent)
void AttenuateSoundIfNecessary(SoundObject soundObject)
proto native AIAgent GetAIAgent()
DayZPlayer m_CinematicPlayer
void OnSoundVoiceEvent(int event_id, string event_user_string)
void ProcessStepEvent(AnimStepEvent step_event)
void ProcessDamageEvent(AnimDamageEvent damage_event)
void OnStepEvent(int event_id, string event_user_string)
bool ResistContaminatedEffect()
AbstractWave PlaySound(SoundObject so, SoundObjectBuilder sob)
proto native DayZCreatureAIType GetCreatureAIType()
void RegisterAnimEvents()
override bool ModCommandHandlerBefore(float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
proto native void DestroyAIAgent()
void ProcessSoundVoiceEvent(AnimSoundVoiceEvent sound_event)
vector SetDefaultHitPosition(string pSelection)
proto native void SignalAIAttackEnded()
bool HandleDeath(int currentCommandID, DayZAnimalInputController inputController)
bool m_DamageHitToProcess
proto native DayZAnimalCommandScript StartCommand_Script(DayZAnimalCommandScript pInfectedCommand)
scripted commands
proto native void StartCommand_Hit(int pType, int pDirection)
proto native void StartCommand_Jump()
proto native DayZAnimalCommandScript GetCommand_Script()
void RegisterHitComponentsForAI()
register hit components for AI melee (used by attacking AI)
int FindComponentDirectionOffset(string component)
bool HandleDamageHit(int currentCommandID)
override string GetDefaultHitPositionComponent()
bool ComputeDamageHitParams(EntityAI source, string dmgZone, string ammo, out int type, out int direction)
override vector GetDefaultHitPosition()
proto native void StartCommand_Attack()
override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
override int GetHideIconMask()
override bool IsHealthVisible()
string m_DefaultHitComponent
proto native DayZAnimalInputController GetInputController()
override bool IsInventoryVisible()
override string GetHitComponentForAI()
float ConvertNonlethalDamage(float damage, DamageType damageType)
proto native void StartCommand_Death(int pType, int pDirection)
ref array< ref DayZAIHitComponent > m_HitComponentsForAI
Melee hit components (AI targeting)
proto native DayZAnimalCommandScript StartCommand_ScriptInst(typename pCallbackClass)
void CommandHandler(float dt, int currentCommandID, bool currentCommandFinished)
void EOnContact(IEntity other, Contact extra)
proto native void StartCommand_Move()
override string GetDefaultHitComponent()
vector m_DefaultHitPosition
float ComputeHitDirectionAngleDeg(EntityAI source)
string m_DefaultHitPositionComponent
proto native void SignalAIAttackStarted()
void QueueDamageHit(int type, int direction)
int TranslateHitAngleDegToDirectionIndex(float angleDeg)
do not process rotations !
void AddDamageSphere(AnimDamageParams damage_params)
void OnDamageEvent(int event_id, string event_user_string)
void DecreaseEffectTriggerCount()
void CinematicTakeControl(DayZPlayer player)
proto native bool IsSoundInsideBuilding()
void ProcessSoundEvent(AnimSoundEvent sound_event)
override void EEKilled(Object killer)
void OnSoundEvent(int event_id, string event_user_string)
void IncreaseEffectTriggerCount()
AnimBootsType GetBootsType()
proto native void InitAIAgent(AIGroup group)
proto native void AddDamageSphere(string bone_name, string ammo_name, float radius, float duration, bool invertTeams)
proto native TAnimGraphVariable BindVariableFloat(string pVariable)
proto native TAnimGraphTag BindTag(string pTagName)
proto native TAnimGraphVariable BindVariableBool(string pVariable)
proto native TAnimGraphCommand BindCommand(string pCommandName)
returns command index -
proto native TAnimGraphEvent BindEvent(string pEventName)
void ~DayZCreatureAnimInterface()
void DayZCreatureAnimInterface()
proto native TAnimGraphVariable BindVariableInt(string pVariable)
proto void AddNoise(EntityAI source_entity, NoiseParams noise_params, float external_strenght_multiplier=1.0)
proto native float GetDamage(string zoneName, string healthType)
Base native class for all motorized wheeled vehicles.
proto native float SyncedValue_ID(int action, bool check_focus=true)
Get action state.
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native float Length()
Returns length of vector (magnitude)
static float Dot(vector v1, vector v2)
Returns Dot product of vector v1 and vector v2.
proto float Normalize()
Normalizes vector. Returns length.
string GetDefaultHitComponent()
string GetDefaultHitPositionComponent()
proto native CGame GetGame()
const int COMP_TYPE_ANIMAL_BLEEDING
const int COMP_TYPE_BODY_STAGING
proto void Print(void var)
Prints content of variable to console/log.
proto native void SetFlags(ShapeFlags flags)
const float NL_DAMAGE_FIREARM_CONVERSION_ANIMALS
const float NL_DAMAGE_CLOSECOMBAT_CONVERSION_ANIMALS
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
proto volatile int CallFunction(Class inst, string function, out void returnVal, void parm)
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
static proto void MatrixInvMultiply4(vector mat0[4], vector mat1[4], out vector res[4])
Invert-transforms matrix.
static proto void MatrixOrthogonalize4(vector mat[4])
Orthogonalizes matrix.
static proto float Acos(float c)
Returns angle in radians from cosinus.
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 RAD2DEG
static const float DEG2RAD
proto native vector GetVelocity(notnull IEntity ent)
Returns linear velocity.
proto native AbstractWave Play3D(SoundObject soundObject, SoundObjectBuilder soundBuilder)
class AbstractSoundScene SoundObjectBuilder(SoundParams soundParams)
class JsonUndergroundAreaTriggerData GetPosition
proto native void SetPosition(vector position)
Note: Sets the position locally if parented, retrieves globally with the sound offset.
proto native void SetKind(WaveKind kind)
class HumanInputController TAnimGraphCommand