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

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

void OnStayClientEvent (TriggerInsider insider, float deltaTime)
 
override void OnEnterServerEvent (TriggerInsider insider)
 
override void OnEnterClientEvent (TriggerInsider insider)
 
override void OnLeaveServerEvent (TriggerInsider insider)
 
override void OnLeaveClientEvent (TriggerInsider insider)
 
override bool ShouldRemoveInsider (TriggerInsider insider)
 

Защищенные статические члены

static void TriggerEffect (EntityAI insider, typename triggerType)
 

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

override void OnEnterServerEvent (TriggerInsider insider)
 
override void OnLeaveServerEvent (TriggerInsider insider)
 
override void OnEnterClientEvent (TriggerInsider insider)
 
override void OnLeaveClientEvent (TriggerInsider insider)
 
override void OnStayStartServerEvent (int nrOfInsiders)
 
override void OnStayFinishServerEvent ()
 
override void OnStayServerEvent (TriggerInsider insider, float deltaTime)
 
override string GetAmbientSoundsetName ()
 
void EffectTrigger ()
 
void SetLocalEffects (int aroundPartId, int tinyPartId, int ppeRequesterIdx)
 
EffectArea GetEffectArea ()
 
void Init (EffectArea area, int priority)
 
int GetEffectsPriority ()
 
string GetAmbientSoundsetName ()
 
void SetupClientEffects (bool enable, notnull PlayerBase player)
 
override void EOnFrame (IEntity other, float timeSlice)
 
override bool CanAddObjectAsInsider (Object object)
 

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

const float DAMAGE_TICK_RATE = 10
 
int m_AroundPartId
 
int m_TinyPartId
 
int m_PPERequester
 
float m_DeltaTime
 
float m_TimeAccuStay
 
bool m_DealDamageFlag
 
TriggerEffectManager m_Manager
 
EffectArea m_EffectArea
 
int m_EffectsPriority
 

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

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

◆ EffectTrigger()

void EffectTrigger ( )
inlineprivate
16 {
17 RegisterNetSyncVariableInt("m_AroundPartId");
18 RegisterNetSyncVariableInt("m_TinyPartId");
19 RegisterNetSyncVariableInt("m_PPERequester");
20 RegisterNetSyncVariableInt("m_EffectsPriority");
21
24 }
TriggerEffectManager m_Manager
Definition EffectTrigger.c:11
Definition TriggerEffectManager.c:4
void RegisterTriggerType(EffectTrigger effectTrigger)
Definition TriggerEffectManager.c:29
static TriggerEffectManager GetInstance()
Definition TriggerEffectManager.c:21

Перекрестные ссылки TriggerEffectManager::GetInstance(), m_Manager и TriggerEffectManager::RegisterTriggerType().

Методы

◆ CanAddObjectAsInsider()

override bool CanAddObjectAsInsider ( Object object)
inlineprivate
86 {
87 #ifdef SERVER
88 DayZCreatureAI creature = DayZCreatureAI.Cast( object );
89 if(creature)
90 {
91 return !creature.ResistContaminatedEffect();
92 }
93 else
94 {
95 PlayerBase player = PlayerBase.Cast(object);
96 return player != null;
97 }
98 #else
99 PlayerBase player = PlayerBase.Cast(object);
100 return (player && player.IsControlledPlayer());
101 #endif
102 }
do not process rotations !
Definition DayZAnimal.c:607
Definition EntityAI.c:95
Definition PlayerBaseClient.c:2

◆ EOnFrame()

override void EOnFrame ( IEntity other,
float timeSlice )
inlineprivate
81 {
83 }
float m_DeltaTime
Definition EffectTrigger.c:8

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

◆ GetAmbientSoundsetName() [1/2]

override string GetAmbientSoundsetName ( )
inlineprivate
80 {
81 return "ContaminatedArea_SoundSet";
82 }

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

◆ GetAmbientSoundsetName() [2/2]

string GetAmbientSoundsetName ( )
inlineprivate
56 {
57 return "";
58 }

◆ GetEffectArea()

EffectArea GetEffectArea ( )
inlineprivate
40 {
41 return m_EffectArea;
42 }
EffectArea m_EffectArea
Definition EffectTrigger.c:12

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

◆ GetEffectsPriority()

int GetEffectsPriority ( )
inlineprivate
51 {
52 return m_EffectsPriority;
53 }
int m_EffectsPriority
Definition EffectTrigger.c:13

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

Используется в ManBase::RequestTriggerEffect().

◆ Init()

void Init ( EffectArea area,
int priority )
inlineprivate

Перекрестные ссылки m_EffectArea и m_EffectsPriority.

Используется в EffectArea::CreateTrigger().

◆ OnEnterClientEvent() [1/2]

override void OnEnterClientEvent ( TriggerInsider insider)
inlineprivate
39 {
40 super.OnEnterClientEvent( insider );
41 }

◆ OnEnterClientEvent() [2/2]

override void OnEnterClientEvent ( TriggerInsider insider)
inlineprotected
132 {
133 super.OnEnterClientEvent( insider );
134
135 if ( insider )
136 {
137 PlayerBase playerInsider = PlayerBase.Cast( insider.GetObject() );
138
139 // We will only handle the controlled player, as effects are only relevant to this player instance
140 if (playerInsider && playerInsider.IsControlledPlayer() )
141 {
142 //SetupClientEffects(true, playerInsider);
143 // We then handle the update of player trigger state in manager
145 }
146 }
147 }
void OnPlayerEnter(notnull PlayerBase player, notnull EffectTrigger trigger)
Definition TriggerEffectManager.c:41
Object GetObject()
Definition Trigger.c:28

Перекрестные ссылки TriggerInsider::GetObject(), m_Manager и TriggerEffectManager::OnPlayerEnter().

◆ OnEnterServerEvent() [1/2]

override void OnEnterServerEvent ( TriggerInsider insider)
inlineprivate
11 {
12 super.OnEnterServerEvent( insider );
13 //Print("Entered A " + GetType());
14 if ( insider )
15 {
17
18 if (creature)
19 creature.IncreaseEffectTriggerCount();
20 }
21
22 }

Перекрестные ссылки TriggerInsider::GetObject().

◆ OnEnterServerEvent() [2/2]

override void OnEnterServerEvent ( TriggerInsider insider)
inlineprotected
113 {
114 super.OnEnterServerEvent( insider );
115
116 // We don't need to test the trigger count as Modifiers handle such cases already
117 if ( insider )
118 {
119 PlayerBase playerInsider = PlayerBase.Cast( insider.GetObject() );
120
121 if(playerInsider)
122 {
123
125 }
126
127 }
128
129 }

Перекрестные ссылки TriggerInsider::GetObject(), m_Manager и TriggerEffectManager::OnPlayerEnter().

◆ OnLeaveClientEvent() [1/2]

override void OnLeaveClientEvent ( TriggerInsider insider)
inlineprivate
44 {
45 super.OnLeaveClientEvent( insider );
46 }

◆ OnLeaveClientEvent() [2/2]

override void OnLeaveClientEvent ( TriggerInsider insider)
inlineprotected
166 {
167 super.OnLeaveClientEvent( insider );
168
169 if ( insider )
170 {
171 // Make sure you pass the set variable for PPE effect
172 // It will not remove the correct one if START and STOP don't point to the same Requester
173 PlayerBase playerInsider = PlayerBase.Cast( insider.GetObject() );
174
175 // We will only handle the controlled player, as effects are only relevant to this player instance
176 if ( playerInsider && playerInsider.IsControlledPlayer() )
177 {
178 // We first handle the update of player trigger state in manager
180 //SetupClientEffects(false, playerInsider);
181 }
182 }
183 }
void OnPlayerExit(notnull PlayerBase player, notnull EffectTrigger trigger)
Definition TriggerEffectManager.c:83

Перекрестные ссылки TriggerInsider::GetObject(), m_Manager и TriggerEffectManager::OnPlayerExit().

◆ OnLeaveServerEvent() [1/2]

override void OnLeaveServerEvent ( TriggerInsider insider)
inlineprivate
25 {
26 super.OnLeaveServerEvent( insider );
27 //Print("Left A " + GetType());
28 if ( insider )
29 {
31
32 if (creature)
33 creature.DecreaseEffectTriggerCount();
34
35 }
36 }

Перекрестные ссылки TriggerInsider::GetObject().

◆ OnLeaveServerEvent() [2/2]

override void OnLeaveServerEvent ( TriggerInsider insider)
inlineprotected
151 {
152 super.OnLeaveServerEvent( insider );
153
154 if ( insider )
155 {
156 PlayerBase playerInsider = PlayerBase.Cast( insider.GetObject() );
157
158 if ( playerInsider )
160 }
161 }

Перекрестные ссылки TriggerInsider::GetObject(), m_Manager и TriggerEffectManager::OnPlayerExit().

◆ OnStayClientEvent()

void OnStayClientEvent ( TriggerInsider insider,
float deltaTime )
inlineprotected
105 {
106 super.OnStayClientEvent(insider, deltaTime);
107 PlayerBase player = PlayerBase.Cast(insider.GetObject());
108 if (player)
110 }
int m_PPERequester
Definition EffectTrigger.c:7
int m_AroundPartId
Definition EffectTrigger.c:5
int m_TinyPartId
Definition EffectTrigger.c:6
override string GetAmbientSoundsetName()
Definition ContaminatedTrigger.c:79

Перекрестные ссылки GetAmbientSoundsetName(), TriggerInsider::GetObject(), m_AroundPartId, m_PPERequester и m_TinyPartId.

◆ OnStayFinishServerEvent()

override void OnStayFinishServerEvent ( )
inlineprivate
61 {
62 if(m_DealDamageFlag)//the flag was previously set to true, the insiders have been updated at this point, reset the flag and the timer as well
63 {
65 m_DealDamageFlag = false;
66 }
67 }
bool m_DealDamageFlag
Definition EffectTrigger.c:10
float m_TimeAccuStay
Definition EffectTrigger.c:9

◆ OnStayServerEvent()

override void OnStayServerEvent ( TriggerInsider insider,
float deltaTime )
inlineprivate
70 {
71 if ( m_DealDamageFlag )
72 {
74 if(creature && creature.m_EffectTriggerCount != 0)
75 creature.DecreaseHealth("", "", GameConstants.AI_CONTAMINATION_DMG_PER_SEC * m_TimeAccuStay / creature.m_EffectTriggerCount);// we devide by m_EffectTriggerCount for multiple trigger presence(overlapping triggers)
76 }
77 }
Definition constants.c:615
const float AI_CONTAMINATION_DMG_PER_SEC
Definition constants.c:920

Перекрестные ссылки GameConstants::AI_CONTAMINATION_DMG_PER_SEC и TriggerInsider::GetObject().

◆ OnStayStartServerEvent()

override void OnStayStartServerEvent ( int nrOfInsiders)
inlineprivate
50 {
53 {
54 m_DealDamageFlag = true;
55 //this is where we would normally reset the m_TimeAccuStay, but we need the value as deltaT when dealing damage to the insiders, so we reset it only after the insider update in OnStayFinishServerEvent
56 }
57
58 }
const float DAMAGE_TICK_RATE
Definition ContaminatedTrigger.c:4

◆ SetLocalEffects()

void SetLocalEffects ( int aroundPartId,
int tinyPartId,
int ppeRequesterIdx )
inlineprivate
31 {
35
36 SetSynchDirty();
37 }

Перекрестные ссылки m_AroundPartId, m_PPERequester и m_TinyPartId.

Используется в EffectArea::CreateTrigger().

◆ SetupClientEffects()

void SetupClientEffects ( bool enable,
notnull PlayerBase player )
inlineprivate
61 {
63 {
64 if (enable)
65 {
66 player.SetContaminatedEffectEx( true, m_PPERequester, m_AroundPartId, m_TinyPartId, GetAmbientSoundsetName() );
67 }
68 else
69 {
70 player.SetContaminatedEffectEx( false, m_PPERequester );
71 }
72 }
73 }
bool IsPlayerInTriggerType(notnull PlayerBase player, notnull EffectTrigger trigger)
Definition TriggerEffectManager.c:112

Перекрестные ссылки GetAmbientSoundsetName(), TriggerEffectManager::IsPlayerInTriggerType(), m_AroundPartId, m_Manager, m_PPERequester и m_TinyPartId.

◆ ShouldRemoveInsider()

override bool ShouldRemoveInsider ( TriggerInsider insider)
inlineprotected
187 {
188 return !insider.GetObject().IsAlive();
189 }

Перекрестные ссылки TriggerInsider::GetObject().

◆ TriggerEffect()

static void TriggerEffect ( EntityAI insider,
typename triggerType  )
inlinestaticprotected
193{}

Поля

◆ DAMAGE_TICK_RATE

const float DAMAGE_TICK_RATE = 10
private

◆ m_AroundPartId

int m_AroundPartId
private

◆ m_DealDamageFlag

bool m_DealDamageFlag
private

◆ m_DeltaTime

float m_DeltaTime
private

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

◆ m_EffectArea

EffectArea m_EffectArea
private

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

◆ m_EffectsPriority

int m_EffectsPriority
private

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

◆ m_Manager

◆ m_PPERequester

◆ m_TimeAccuStay

float m_TimeAccuStay
private

◆ m_TinyPartId

int m_TinyPartId
private

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