Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс AreaDamageBase
+ Граф наследования:AreaDamageBase:

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

void AreaDamageBase (EntityAI parent)
 
void OnEnter (Object object)
 events
 
void OnEnterClient (Object object)
 
void OnEnterServer (Object object)
 
void OnLeave (Object object)
 
void OnLeaveClient (Object object)
 
void OnLeaveServer (Object object)
 
void EvaluateDamage_Loop (Object object)
 
void EvaluateDamage_Defer (Object object)
 
void EvaluateDamage_DeferLoop (Object object)
 
void EvaluateDamage (Object object)
 
void EvaluateDamage_Common (Object object, string hitzone)
 
string GetRandomHitZone (array< string > hitzones)
 
string GetRaycastedHitZone (Object victim, array< string > raycast_sources_str)
 

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

AreaDamageBase m_AreaDamage
 
float m_PlayerDamage
 
float m_OthersDamage
 
string m_AmmoName
 
int m_DamageType
 
float m_LoopInterval
 
float m_DeferDuration
 
ref array< stringm_HitZones
 
ref array< stringm_RaycastSources
 
ref Timer m_LoopTimer
 
ref Timer m_DeferTimer
 

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

void AreaDamageOneTime (EntityAI parent)
 
void ~AreaDamageOneTime ()
 
override void SetHitZones (array< string > hitzones)
 
override void OnEnterServer (Object object)
 
void AreaDamageOneTimeDeferred (EntityAI parent)
 
void ~AreaDamageOneTimeDeferred ()
 
override void SetDeferDuration (float time)
 
override void SetHitZones (array< string > hitzones)
 
override void OnEnterServer (Object object)
 
void AreaDamageOneTimeRaycasted (EntityAI parent)
 
void ~AreaDamageOneTimeRaycasted ()
 
override void SetRaycastSources (array< string > raycast_sources)
 
override void OnEnterServer (Object object)
 
void AreaDamageOneTimeRaycastedDeferred (EntityAI parent)
 
void ~AreaDamageOneTimeRaycastedDeferred ()
 
override void SetDeferDuration (float time)
 
override void SetRaycastSources (array< string > raycast_sources)
 
override void OnEnterServer (Object object)
 
void AreaDamageRegular (EntityAI parent)
 
void ~AreaDamageRegular ()
 
override void SetLoopInterval (float time)
 
override void SetHitZones (array< string > hitzones)
 
override void OnEnterServer (Object object)
 
void AreaDamageRegularRaycasted (EntityAI parent)
 
void ~AreaDamageRegularRaycasted ()
 
override void SetLoopInterval (float time)
 
override void SetRaycastSources (array< string > raycast_sources)
 
override void OnEnterServer (Object object)
 
void AreaDamageRegularRaycastedDeferred (EntityAI parent)
 
void ~AreaDamageRegularRaycastedDeferred ()
 
override void SetLoopInterval (float time)
 
override void SetDeferDuration (float time)
 
override void SetRaycastSources (array< string > raycast_sources)
 
override void OnEnterServer (Object object)
 

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

Конструктор(ы)

◆ AreaDamageBase()

void AreaDamageBase ( EntityAI parent)
inlineprotected
24 {
25 m_AreaDamage = this;
26
27 m_PlayerDamage = 0.0;
28 m_OthersDamage = 0.0;
29
30 m_AmmoName = "MeleeDamage";
32
33 m_LoopInterval = 1.0;
34 m_DeferDuration = 1.0;
35
40
43
44 m_TriggerBaseClass = "AreaDamageTrigger";
45 }
string m_TriggerBaseClass
Definition AreaDamageManager.c:20
ref Timer m_DeferTimer
Definition AreaDamage.c:21
ref array< string > m_HitZones
Definition AreaDamage.c:16
float m_PlayerDamage
Definition AreaDamage.c:7
float m_LoopInterval
Definition AreaDamage.c:13
float m_DeferDuration
Definition AreaDamage.c:14
float m_OthersDamage
Definition AreaDamage.c:8
ref Timer m_LoopTimer
Definition AreaDamage.c:20
string m_AmmoName
Definition AreaDamage.c:10
AreaDamageBase m_AreaDamage
Definition AreaDamage.c:5
int m_DamageType
Definition AreaDamage.c:11
ref array< string > m_RaycastSources
Definition AreaDamage.c:17
Definition DayZPlayerImplement.c:111
Definition EntityAI.c:95
Definition DayZPlayerImplement.c:63
const int CALL_CATEGORY_SYSTEM
Definition tools.c:8

Перекрестные ссылки CALL_CATEGORY_SYSTEM, m_AmmoName, m_AreaDamage, m_DamageType, m_DeferDuration, m_DeferTimer, m_HitZones, m_LoopInterval, m_LoopTimer, m_OthersDamage, m_PlayerDamage, m_RaycastSources и m_TriggerBaseClass.

◆ ~AreaDamageOneTime()

void ~AreaDamageOneTime ( )
inlineprivate
9{}

◆ ~AreaDamageOneTimeDeferred()

void ~AreaDamageOneTimeDeferred ( )
inlineprivate
9{}

◆ ~AreaDamageOneTimeRaycasted()

void ~AreaDamageOneTimeRaycasted ( )
inlineprivate
9{}

◆ ~AreaDamageOneTimeRaycastedDeferred()

9{}

◆ ~AreaDamageRegular()

void ~AreaDamageRegular ( )
inlineprivate
9{}

◆ ~AreaDamageRegularRaycasted()

void ~AreaDamageRegularRaycasted ( )
inlineprivate
9{}

◆ ~AreaDamageRegularRaycastedDeferred()

9{}

Методы

◆ AreaDamageOneTime()

void AreaDamageOneTime ( EntityAI parent)
inlineprivate
5 {
6
7 }

◆ AreaDamageOneTimeDeferred()

void AreaDamageOneTimeDeferred ( EntityAI parent)
inlineprivate
5 {
6
7 }

◆ AreaDamageOneTimeRaycasted()

void AreaDamageOneTimeRaycasted ( EntityAI parent)
inlineprivate
5 {
6
7 }

◆ AreaDamageOneTimeRaycastedDeferred()

void AreaDamageOneTimeRaycastedDeferred ( EntityAI parent)
inlineprivate
5 {
6
7 }

◆ AreaDamageRegular()

void AreaDamageRegular ( EntityAI parent)
inlineprivate
5 {
6
7 }

◆ AreaDamageRegularRaycasted()

void AreaDamageRegularRaycasted ( EntityAI parent)
inlineprivate
5 {
6
7 }

◆ AreaDamageRegularRaycastedDeferred()

void AreaDamageRegularRaycastedDeferred ( EntityAI parent)
inlineprivate
5 {
6
7 }

◆ EvaluateDamage()

void EvaluateDamage ( Object object)
inlineprotected
104 {
105 string hitzone;
106
107 if ( m_RaycastSources.Count() )
108 {
111 }
112 else
113 {
116 }
117 }
string GetRaycastedHitZone(Object victim, array< string > raycast_sources_str)
Definition AreaDamage.c:162
void EvaluateDamage_Common(Object object, string hitzone)
Definition AreaDamage.c:119
string GetRandomHitZone(array< string > hitzones)
Definition AreaDamage.c:154

Перекрестные ссылки EvaluateDamage_Common(), GetRandomHitZone(), GetRaycastedHitZone(), m_HitZones и m_RaycastSources.

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

◆ EvaluateDamage_Common()

void EvaluateDamage_Common ( Object object,
string hitzone )
inlineprotected
120 {
121 if ( object && object.IsAlive() )
122 {
123 if ( object.IsAnyInherited( m_DamageableTypes ) )
124 {
125 //If we are hitting an infected or animal, we increase the damage dealt as they do not bleed
126 //Change is multiplier
127 /*DayZInfected dayzInfected = DayZInfected.Cast(object);
128 DayZAnimal dayzAnimal = DayZAnimal.Cast(object);
129 EntityAI eai = EntityAI.Cast(object);
130 if ( dayzInfected || dayzAnimal )
131 {
132 //Agents should not take damage from fireplace, but just in case, keep multiplier relatively low
133 if ( hitzone )
134 {
135 eai.ProcessDirectDamage(m_DamageType, EntityAI.Cast(m_ParentObject), hitzone, m_AmmoName, "0.5 0.5 0.5", 8);
136 }
137 else
138 eai.ProcessDirectDamage(m_DamageType, EntityAI.Cast(m_ParentObject), "", m_AmmoName, "0.5 0.5 0.5", 8);
139 }
140 else*/
141 {
142 object.ProcessDirectDamage(m_DamageType, m_ParentObject, hitzone, m_AmmoName, "0.5 0.5 0.5", 1);
143 }
145 }
146 }
147 }
override void PostDamageActions()
Usually called from AreaDamageComponent.
Definition AreaDamageManager.c:206
Object m_ParentObject
Cached parent.
Definition Effect.c:39

Перекрестные ссылки m_AmmoName, m_DamageType, m_ParentObject и PostDamageActions().

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

◆ EvaluateDamage_Defer()

void EvaluateDamage_Defer ( Object object)
inlineprotected
94 {
95 m_DeferTimer.Run(m_DeferDuration, this, "EvaluateDamage", new Param1<Object>(object), false);
96 }

Перекрестные ссылки m_DeferDuration и m_DeferTimer.

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

◆ EvaluateDamage_DeferLoop()

void EvaluateDamage_DeferLoop ( Object object)
inlineprotected
99 {
100 m_DeferTimer.Run(m_DeferDuration, this, "EvaluateDamage_Loop", new Param1<Object>(object), false);
101 }

Перекрестные ссылки m_DeferDuration и m_DeferTimer.

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

◆ EvaluateDamage_Loop()

void EvaluateDamage_Loop ( Object object)
inlineprotected
89 {
90 m_LoopTimer.Run(m_LoopInterval, this, "EvaluateDamage", new Param1<Object>(object), true);
91 }

Перекрестные ссылки m_LoopInterval и m_LoopTimer.

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

◆ GetRandomHitZone()

string GetRandomHitZone ( array< string > hitzones)
inlineprotected

common

155 {
156 Math.Randomize(-1);
157 int idx = Math.RandomInt( 0, 100 ) % hitzones.Count();
158
159 return hitzones[idx];
160 }
Definition EnMath.c:7
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
static proto int Randomize(int seed)
Sets the seed for the random number generator.

Перекрестные ссылки Math::RandomInt() и Math::Randomize().

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

◆ GetRaycastedHitZone()

string GetRaycastedHitZone ( Object victim,
array< string > raycast_sources_str )
inlineprotected
163 {
164
165 // Vertical raycast start positions: Center, North East, North West, South East, South West
166 //vector raycast_sources[5] = {"0.0 0.1 0.0", "0.2 0.1 0.2", "-.2 0.1 0.2", "0.2 0.1 -.2", "-.2 0.1 -.2"};
167
168 string hitzone;
172 bool isSteppedOn = false;
173
176
177 // convert Array of string to array of Vectors
178 for ( int v = 0; v < raycast_sources_str.Count(); ++v)
179 {
180 raycast_sources.Insert(raycast_sources_str[v].ToVector());
181 }
182
183 for ( int i = 0; i < raycast_sources.Count(); ++i )
184 {
187
188 //#ifdef DEVELOPER
189 //Debug.DrawArrow( raycast_start_pos, raycast_end_pos );
190 //#endif
192
193 for ( int j = 0; j < victims.Count(); ++j )
194 {
196
197 if ( contact_obj.IsAnyInherited(m_DamageableTypes) )
198 {
199 isSteppedOn = true;
200 break;
201 }
202 }
203
204 if ( isSteppedOn )
205 {
206 EntityAI eai = EntityAI.Cast(victim);
207 if ( eai )
208 {
209 hitzone = eai.GetDamageZoneNameByComponentIndex(contactComponent);
210 break;
211 }
212 }
213 }
214
215 if ( isSteppedOn )
216 {
217 return hitzone;
218 }
219 else
220 {
221 // Damage random leg since we don't know what part of player's body was caught in the trap.
222 string dmg_zone_rnd = "LeftFoot";
223 if ( Math.RandomIntInclusive(0, 1) == 1 )
224 dmg_zone_rnd = "RightFoot";
225 return dmg_zone_rnd;
226 }
227 }
AreaDamageTriggerBase m_AreaDamageTrigger
Definition AreaDamageManager.c:11
Definition DayZPhysics.c:124
static proto bool RaycastRV(vector begPos, vector endPos, out vector contactPos, out vector contactDir, out int contactComponent, set< Object > results=NULL, Object with=NULL, Object ignore=NULL, bool sorted=false, bool ground_only=false, int iType=ObjIntersectView, float radius=0.0, CollisionFlags flags=CollisionFlags.NEARESTCONTACT)
Raycasts world by given parameters.
Definition Building.c:6
Definition ObjectTyped.c:2
Definition EnConvert.c:106
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Definition EnMath.c:54

Перекрестные ссылки m_AreaDamageTrigger, Math::RandomIntInclusive() и DayZPhysics::RaycastRV().

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

◆ OnEnter()

void OnEnter ( Object object)
inlineprotected

events

49 {
50 if ( GetGame().IsServer() )
51 {
52 OnEnterServer(object);
53 }
54 else
55 {
56 OnEnterClient(object);
57 }
58 }
void OnEnterClient(Object object)
Definition AreaDamage.c:59
void OnEnterServer(Object object)
Definition AreaDamage.c:60
proto native CGame GetGame()

Перекрестные ссылки GetGame(), OnEnterClient() и OnEnterServer().

◆ OnEnterClient()

void OnEnterClient ( Object object)
inlineprotected
59{}

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

◆ OnEnterServer() [1/8]

void OnEnterServer ( Object object)
inlineprotected
60{}

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

◆ OnEnterServer() [2/8]

override void OnEnterServer ( Object object)
inlineprivate
17 {
18 super.OnEnterServer(object);
19
20 EvaluateDamage(object);
21 }
void EvaluateDamage(Object object)
Definition AreaDamage.c:103

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

◆ OnEnterServer() [3/8]

override void OnEnterServer ( Object object)
inlineprivate
22 {
23 super.OnEnterServer(object);;
24
26 }
void EvaluateDamage_Defer(Object object)
Definition AreaDamage.c:93

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

◆ OnEnterServer() [4/8]

override void OnEnterServer ( Object object)
inlineprivate
17 {
18 super.OnEnterServer(object);
19
20 EvaluateDamage(object);
21 }

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

◆ OnEnterServer() [5/8]

override void OnEnterServer ( Object object)
inlineprivate
22 {
23 super.OnEnterServer(object);
24
26 }

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

◆ OnEnterServer() [6/8]

override void OnEnterServer ( Object object)
inlineprivate
22 {
23 super.OnEnterServer(object);
24
25 EvaluateDamage_Loop(object);
26 }
void EvaluateDamage_Loop(Object object)
Definition AreaDamage.c:88

◆ OnEnterServer() [7/8]

override void OnEnterServer ( Object object)
inlineprivate
22 {
23 super.OnEnterServer(object);
24
25 EvaluateDamage_Loop(object);
26 }

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

◆ OnEnterServer() [8/8]

override void OnEnterServer ( Object object)
inlineprivate
27 {
28 super.OnEnterServer(object);
29
31 }
void EvaluateDamage_DeferLoop(Object object)
Definition AreaDamage.c:98

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

◆ OnLeave()

void OnLeave ( Object object)
inlineprotected
63 {
64 if ( GetGame().IsServer() )
65 {
66 OnLeaveServer(object);
67 }
68 else
69 {
70 OnLeaveClient(object);
71 }
72 }
void OnLeaveServer(Object object)
Definition AreaDamage.c:75
void OnLeaveClient(Object object)
Definition AreaDamage.c:74

Перекрестные ссылки GetGame(), OnLeaveClient() и OnLeaveServer().

◆ OnLeaveClient()

void OnLeaveClient ( Object object)
inlineprotected
74{}

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

◆ OnLeaveServer()

void OnLeaveServer ( Object object)
inlineprotected

stop all running timers

76 {
78 if ( m_DeferTimer && m_DeferTimer.IsRunning() )
79 {
80 m_DeferTimer.Stop();
81 }
82 if ( m_LoopTimer && m_LoopTimer.IsRunning() )
83 {
84 m_LoopTimer.Stop();
85 }
86 }

Перекрестные ссылки m_DeferTimer и m_LoopTimer.

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

◆ SetDeferDuration() [1/3]

override void SetDeferDuration ( float time)
inlineprivate
12 {
14 }

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

◆ SetDeferDuration() [2/3]

override void SetDeferDuration ( float time)
inlineprivate
12 {
14 }

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

◆ SetDeferDuration() [3/3]

override void SetDeferDuration ( float time)
inlineprivate
17 {
19 }

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

◆ SetHitZones() [1/3]

override void SetHitZones ( array< string > hitzones)
inlineprivate
12 {
14 }

◆ SetHitZones() [2/3]

override void SetHitZones ( array< string > hitzones)
inlineprivate
17 {
19 }

◆ SetHitZones() [3/3]

override void SetHitZones ( array< string > hitzones)
inlineprivate
17 {
19 }

◆ SetLoopInterval() [1/3]

override void SetLoopInterval ( float time)
inlineprivate
12 {
14 }

◆ SetLoopInterval() [2/3]

override void SetLoopInterval ( float time)
inlineprivate
12 {
14 }

◆ SetLoopInterval() [3/3]

override void SetLoopInterval ( float time)
inlineprivate
12 {
14 }

◆ SetRaycastSources() [1/4]

override void SetRaycastSources ( array< string > raycast_sources)
inlineprivate

◆ SetRaycastSources() [2/4]

override void SetRaycastSources ( array< string > raycast_sources)
inlineprivate

◆ SetRaycastSources() [3/4]

override void SetRaycastSources ( array< string > raycast_sources)
inlineprivate

◆ SetRaycastSources() [4/4]

override void SetRaycastSources ( array< string > raycast_sources)
inlineprivate

Поля

◆ m_AmmoName

string m_AmmoName
protected

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

◆ m_AreaDamage

AreaDamageBase m_AreaDamage
protected

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

◆ m_DamageType

int m_DamageType
protected

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

◆ m_DeferDuration

float m_DeferDuration
protected

◆ m_DeferTimer

ref Timer m_DeferTimer
protected

◆ m_HitZones

ref array<string> m_HitZones
protected

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

◆ m_LoopInterval

float m_LoopInterval
protected

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

◆ m_LoopTimer

ref Timer m_LoopTimer
protected

Используется в AreaDamageBase(), EvaluateDamage_Loop() и OnLeaveServer().

◆ m_OthersDamage

float m_OthersDamage
protected

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

◆ m_PlayerDamage

float m_PlayerDamage
protected

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

◆ m_RaycastSources

ref array<string> m_RaycastSources
protected

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


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