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

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

void AreaDamageTrigger ()
 
override void EOnTouch (IEntity other, int extra)
 
override void SetExtents (vector mins, vector maxs)
 
override void SetAreaDamageManager (AreaDamageManager adType)
 
void SetAreaDamageType (AreaDamageBase adType)
 
override void OnEnter (Object obj)
 
override void OnLeave (Object obj)
 
void UpdateInsiders (int timeout)
 

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

ref AreaDamageBase m_AreaDamageType
 
vector m_ExtentMin
 
vector m_ExtentMax
 
float m_InnerDistance
 
int m_TriggerUpdateMs
 

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

override void OnStayServerEvent (TriggerInsider insider, float deltaTime)
 

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

Методы

◆ AreaDamageTrigger()

void AreaDamageTrigger ( )
inlineprotected
16 {
17 // Backwards compat, revert the flags back to what they used to be
18 ClearEventMask(EntityEvent.ENTER | EntityEvent.LEAVE);
19 SetEventMask(EntityEvent.TOUCH);
20
22
26
28 }
vector m_ExtentMin
Definition AreaDamageTrigger.c:9
vector m_ExtentMax
Definition AreaDamageTrigger.c:10
ref AreaDamageBase m_AreaDamageType
Definition AreaDamageTrigger.c:7
int m_TriggerUpdateMs
Definition AreaDamageTrigger.c:13
float m_InnerDistance
Definition AreaDamageTrigger.c:11
Definition EntityAI.c:95
Definition EnConvert.c:106
static const vector Zero
Definition EnConvert.c:110
EntityEvent
Entity events for event-mask, or throwing event from code.
Definition EnEntity.c:45

Перекрестные ссылки m_ExtentMax, m_ExtentMin и vector::Zero.

◆ EOnTouch()

override void EOnTouch ( IEntity other,
int extra )
inlineprotected
32 {
33 Object obj;
34 if (Class.CastTo(obj, other))
35 AddInsider(obj);
36 }
void AddInsider(Object obj)
Adding of new TriggerInsider.
Definition AreaDamageTriggerBase.c:224
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition ObjectTyped.c:2
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.

Перекрестные ссылки AddInsider() и Class::CastTo().

◆ OnEnter()

override void OnEnter ( Object obj)
inlineprotected
63 {
64 super.OnEnter( obj );
65
66 if ( GetGame().IsServer() && m_AreaDamageType )
67 m_AreaDamageType.OnEnter( obj );
68 }
proto native CGame GetGame()

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

◆ OnLeave()

override void OnLeave ( Object obj)
inlineprotected
71 {
72 super.OnLeave( obj );
73
74 if ( GetGame().IsServer() && m_AreaDamageType )
75 m_AreaDamageType.OnLeave( obj );
76 }

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

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

◆ OnStayServerEvent()

override void OnStayServerEvent ( TriggerInsider insider,
float deltaTime )
inlineprivate
4 {
5 super.OnStayServerEvent(insider, deltaTime);
6
8 m_AreaDamageManager.OnEvaluateDamage(insider, deltaTime);
9 }
AreaDamageTriggerInsider m_AreaDamageManager
Managed by AreaDamageManager and its derivatives.

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

◆ SetAreaDamageManager()

override void SetAreaDamageManager ( AreaDamageManager adType)
inlineprotected
49 {
50 super.SetAreaDamageManager( adType );
51
53 }
Definition AreaDamage.c:4

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

◆ SetAreaDamageType()

void SetAreaDamageType ( AreaDamageBase adType)
inlineprotected
56 {
57 super.SetAreaDamageManager( adType );
58
60 }

◆ SetExtents()

override void SetExtents ( vector mins,
vector maxs )
inlineprotected
39 {
42
44
45 super.SetExtents(mins, maxs);
46 }
float GetRadius()
Definition RadialMenu.c:372

Перекрестные ссылки GetRadius(), m_ExtentMax и m_ExtentMin.

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

◆ UpdateInsiders()

void UpdateInsiders ( int timeout)
inlineprotected

DEBUG

79 {
80 if ( GetGame().IsServer() )
81 {
82 for (int n = 0; n < m_insiders.Count(); )
83 {
84 TriggerInsider ins = m_insiders.Get(n);
85 if ( ins.GetObject() == null )
86 {
87 //object has been deleted. Remove it
88 m_insiders.Remove(n);
89 continue;
90 }
91
92 Object insObj = ins.GetObject();
93 if ( insObj && ( !insObj.IsAlive() || vector.DistanceSq(insObj.GetPosition(), GetPosition()) > (m_InnerDistance * m_InnerDistance) ) )
94 {
95 int timeDiff = g_Game.GetTime() - ins.timeStamp;
96 if (timeDiff > 500)
97 {
98 //object left. Remove it
99 OnLeave(ins.GetObject());
100 m_insiders.Remove(n);
101
102 continue;
103 }
104 else
105 {
106 //Print("" + this + " :: " + insObj + " :: " + timeDiff);
107 }
108 }
109
110 ++n;
111 }
112
114 #ifdef DEVELOPER
116 #endif
117 }
118 }
DayZGame g_Game
Definition DayZGame.c:3746
class JsonUndergroundAreaTriggerData GetPosition
Definition UndergroundAreaLoader.c:9
override void OnLeave(Object obj)
Definition AreaDamageTrigger.c:70
The object which is in a trigger and its metadata.
Definition Trigger.c:3
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.

Перекрестные ссылки vector::DistanceSq(), g_Game, GetGame(), GetPosition и OnLeave().

Поля

◆ m_AreaDamageType

ref AreaDamageBase m_AreaDamageType
protected

◆ m_ExtentMax

vector m_ExtentMax
protected

◆ m_ExtentMin

vector m_ExtentMin
protected

◆ m_InnerDistance

float m_InnerDistance
protected

◆ m_TriggerUpdateMs

int m_TriggerUpdateMs
protected

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