Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
undergroundtrigger.c
Go to the documentation of this file.
1
3
class
UndergroundTriggerCarrier
:
UndergroundTriggerCarrierBase
4
{
5
ref
JsonUndergroundAreaTriggerData
m_Data
;
6
UndergroundTrigger
m_Trigger
;
7
8
void
UndergroundTriggerCarrier
()
9
{
10
RegisterNetSyncVariableInt(
"m_TriggerIndex"
, -1, 255);
11
RegisterNetSyncVariableInt(
"m_ParentObjectNetIdLow"
);
12
RegisterNetSyncVariableInt(
"m_ParentObjectNetIdHigh"
);
13
}
14
15
void
~UndergroundTriggerCarrier
()
16
{
17
if
(
m_Trigger
&& !
m_Trigger
.IsSetForDeletion() &&
g_Game
)
18
{
19
m_Trigger
.Delete();
20
}
21
}
22
23
override
void
OnVariablesSynchronized
()
24
{
25
super.OnVariablesSynchronized();
26
27
if
(
g_Game
.IsMultiplayer())
28
m_ParentObject
=
g_Game
.GetObjectByNetworkId(
m_ParentObjectNetIdLow
,
m_ParentObjectNetIdHigh
);
29
30
if
(!
m_Trigger
)
31
SpawnTrigger
();
32
}
33
34
bool
CanSpawnTrigger
()
35
{
36
return
UndergroundAreaLoader
.
m_JsonData
&&
m_TriggerIndex
!= -1;
37
}
38
39
void
RequestDelayedTriggerSpawn
()
40
{
41
g_Game
.GetCallQueue(
CALL_CATEGORY_SYSTEM
).CallLater(
SpawnTrigger
, 100);
42
}
43
44
void
SpawnTrigger
()
45
{
46
if
(!
CanSpawnTrigger
())
47
{
48
RequestDelayedTriggerSpawn
();
49
return
;
50
}
51
52
if
(
UndergroundAreaLoader
.
m_JsonData
.
Triggers
&&
UndergroundAreaLoader
.
m_JsonData
.
Triggers
.IsValidIndex(
m_TriggerIndex
))
53
{
54
JsonUndergroundAreaTriggerData
data =
UndergroundAreaLoader
.
m_JsonData
.
Triggers
[
m_TriggerIndex
];
55
UndergroundTrigger trigger = UndergroundTrigger.Cast(
g_Game
.CreateObjectEx(
"UndergroundTrigger"
,
GetPosition
(),
ECE_LOCAL
));
56
if
(trigger)
57
{
58
#ifdef DIAG_DEVELOPER
59
trigger.m_Local =
true
;
60
#endif
61
trigger.SetPosition(
vector
.
Zero
);
62
AddChild
(trigger, -1);
63
trigger.Init(data);
64
trigger.SetTriggerParentObject(
m_ParentObject
);
65
66
m_Trigger
= trigger;
67
}
68
}
69
}
70
}
71
72
enum
EUndergroundTriggerType
73
{
74
UNDEFINED
,
75
TRANSITIONING
,
76
OUTER
,
77
INNER
78
}
79
80
class
UndergroundTrigger :
ManTrigger
81
{
82
ref
JsonUndergroundAreaTriggerData
m_Data
;
83
84
EUndergroundTriggerType
m_Type
;
85
float
m_Accommodation
;
86
float
m_InterpolationSpeed
;
87
88
protected
Object
m_ParentObject
;
89
90
void
Init
(
JsonUndergroundAreaTriggerData
data)
91
{
92
m_Data
= data;
93
//Print("Spawning trigger " + this + "at pos: " + GetPosition());
94
vector
extMax = data.
GetSize
() * 0.5;
95
vector
extMin = -extMax;
96
SetExtents
(extMin, extMax);
97
m_Accommodation
= data.
EyeAccommodation
;
98
m_InterpolationSpeed
= data.
InterpolationSpeed
;
99
100
if
(data.
Breadcrumbs
&& data.
Breadcrumbs
.Count() > 0)
//TODO: simpler check
101
{
102
if
(data.
Breadcrumbs
.Count() > 32)
103
{
104
ErrorEx
(
"max 'Breadcrumb' count is 32, found: "
+ data.
Breadcrumbs
.Count());
105
}
106
m_Type
= EUndergroundTriggerType.TRANSITIONING;
107
}
108
else
109
{
110
if
(
m_Accommodation
== 1.0)
111
{
112
m_Type
= EUndergroundTriggerType.OUTER;
113
}
114
else
115
{
116
m_Type
= EUndergroundTriggerType.INNER;
117
}
118
}
119
}
120
122
void
SetTriggerParentObject
(
Object
parent)
123
{
124
m_ParentObject
= parent;
125
}
126
127
Object
GetTriggerParentObject
()
128
{
129
return
m_ParentObject
;
130
}
131
132
override
protected
bool
CanAddObjectAsInsider
(
Object
object
)
133
{
134
if
(!super.CanAddObjectAsInsider(
object
))
135
{
136
return
false
;
137
}
138
139
return
ManBase
.Cast(
object
).IsControlledPlayer();
140
}
141
142
143
override
void
EOnInit
(
IEntity
other,
int
extra)
144
{
145
//disable parent behaviour
146
}
147
148
#ifdef DEVELOPER
149
override
protected
void
OnEnterServerEvent
(TriggerInsider insider)
150
{
151
#ifndef SERVER
//to make it work in single during development
152
OnEnterClientEvent
(insider);
153
#endif
154
}
155
override
protected
void
OnLeaveServerEvent
(TriggerInsider insider)
156
{
157
#ifndef SERVER
//to make it work in single during development
158
OnLeaveClientEvent
(insider);
159
#endif
160
}
161
#endif
162
163
override
protected
void
OnEnterClientEvent
(
TriggerInsider
insider)
164
{
165
PlayerBase
player =
PlayerBase
.Cast(insider.
GetObject
());
166
if
(player)
167
{
168
UndergroundHandlerClient
handler = player.GetUndergroundHandler();
169
if
(handler)
170
{
171
handler.OnTriggerEnter(
this
);
172
}
173
}
174
}
175
176
override
protected
void
OnLeaveClientEvent
(
TriggerInsider
insider)
177
{
178
PlayerBase
player =
PlayerBase
.Cast(insider.
GetObject
());
179
if
(player)
180
{
181
UndergroundHandlerClient
handler = player.GetUndergroundHandler();
182
if
(handler)
183
{
184
handler.OnTriggerLeave(
this
);
185
}
186
}
187
}
188
189
};
m_Type
eBleedingSourceType m_Type
Definition
bleedingsource.c:25
SetExtents
void SetExtents(vector mins, vector maxs)
script configuration
Definition
areadamagemanager.c:233
OnLeaveClientEvent
override void OnLeaveClientEvent(TriggerInsider insider)
Definition
areadamagemanager.c:183
OnLeaveServerEvent
override void OnLeaveServerEvent(TriggerInsider insider)
Definition
areadamagemanager.c:179
OnEnterServerEvent
override void OnEnterServerEvent(TriggerInsider insider)
Definition
areadamagemanager.c:107
OnEnterClientEvent
override void OnEnterClientEvent(TriggerInsider insider)
Definition
areadamagemanager.c:111
ECE_LOCAL
const int ECE_LOCAL
Definition
centraleconomy.c:24
IEntity
Internal ancestor of all Entity implementations.
Definition
enentity.c:165
JsonUndergroundAreaTriggerData
Definition
undergroundarealoader.c:69
JsonUndergroundAreaTriggerData::EyeAccommodation
float EyeAccommodation
Definition
undergroundarealoader.c:91
JsonUndergroundAreaTriggerData::Breadcrumbs
ref array< ref JsonUndergroundAreaBreadcrumb > Breadcrumbs
Definition
undergroundarealoader.c:97
JsonUndergroundAreaTriggerData::InterpolationSpeed
float InterpolationSpeed
Definition
undergroundarealoader.c:92
JsonUndergroundAreaTriggerData::GetSize
vector GetSize()
Definition
undergroundarealoader.c:79
JsonUndergroundTriggers::Triggers
ref array< ref JsonUndergroundAreaTriggerData > Triggers
Definition
undergroundarealoader.c:3
ManBase
Definition
playerbase.c:50
ManTrigger
Trigger only accepting Object which IsMan().
Definition
mantrigger.c:3
Object
Definition
objecttyped.c:2
PlayerBase
Definition
playerbaseclient.c:2
TriggerInsider
The object which is in a trigger and its metadata.
Definition
trigger.c:3
TriggerInsider::GetObject
Object GetObject()
Definition
trigger.c:28
UndergroundAreaLoader
Definition
undergroundarealoader.c:103
UndergroundAreaLoader::m_JsonData
static ref JsonUndergroundTriggers m_JsonData
Definition
undergroundarealoader.c:106
UndergroundTriggerCarrierBase
Definition
triggercarrierbase.c:2
UndergroundTriggerCarrierBase::m_ParentObjectNetIdLow
int m_ParentObjectNetIdLow
Definition
triggercarrierbase.c:5
UndergroundTriggerCarrierBase::m_ParentObject
Object m_ParentObject
Definition
triggercarrierbase.c:8
UndergroundTriggerCarrierBase::m_TriggerIndex
int m_TriggerIndex
Definition
triggercarrierbase.c:3
UndergroundTriggerCarrierBase::m_ParentObjectNetIdHigh
int m_ParentObjectNetIdHigh
Definition
triggercarrierbase.c:6
UndergroundTriggerCarrier::~UndergroundTriggerCarrier
void ~UndergroundTriggerCarrier()
Definition
undergroundtrigger.c:15
UndergroundTriggerCarrier::CanSpawnTrigger
bool CanSpawnTrigger()
Definition
undergroundtrigger.c:34
UndergroundTriggerCarrier::RequestDelayedTriggerSpawn
void RequestDelayedTriggerSpawn()
Definition
undergroundtrigger.c:39
UndergroundTriggerCarrier::m_Trigger
UndergroundTrigger m_Trigger
Definition
undergroundtrigger.c:6
UndergroundTriggerCarrier::m_Data
ref JsonUndergroundAreaTriggerData m_Data
Definition
undergroundtrigger.c:5
UndergroundTriggerCarrier::UndergroundTriggerCarrier
void UndergroundTriggerCarrier()
Definition
undergroundtrigger.c:8
UndergroundTriggerCarrier::SpawnTrigger
void SpawnTrigger()
Definition
undergroundtrigger.c:44
UndergroundTriggerCarrier::OnVariablesSynchronized
override void OnVariablesSynchronized()
Definition
undergroundtrigger.c:23
vector
Definition
enconvert.c:119
vector::Zero
static const vector Zero
Definition
enconvert.c:123
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
UNDEFINED
class DayZProfilesOptions UNDEFINED
Init
override Widget Init()
Definition
dayzgame.c:127
m_ParentObject
Object m_ParentObject
Cached parent.
Definition
effect.c:39
ErrorEx
enum ShapeType ErrorEx
GetPosition
vector GetPosition()
Get the world position of the Effect.
Definition
effect.c:473
CALL_CATEGORY_SYSTEM
const int CALL_CATEGORY_SYSTEM
Definition
tools.c:8
AddChild
proto native void AddChild(Widget child, bool immedUpdate=true)
EOnInit
override void EOnInit(IEntity other, int extra)
Definition
testframework.c:235
CanAddObjectAsInsider
bool CanAddObjectAsInsider(Object object)
Definition
traptrigger.c:93
UndergroundHandlerClient
void UndergroundHandlerClient(PlayerBase player)
Definition
undergroundhandlerclient.c:37
TRANSITIONING
@ TRANSITIONING
Definition
undergroundhandlerclient.c:5
OUTER
@ OUTER
Definition
undergroundhandlerclient.c:4
SetTriggerParentObject
void SetTriggerParentObject(Object parent)
sets parent "virtual" parent object that trigger is registered to, eg. building
Definition
undergroundtrigger.c:122
GetTriggerParentObject
Object GetTriggerParentObject()
Definition
undergroundtrigger.c:127
m_Accommodation
float m_Accommodation
Definition
undergroundtrigger.c:85
m_InterpolationSpeed
float m_InterpolationSpeed
Definition
undergroundtrigger.c:86
m_Data
string m_Data
Definition
universaltemperaturesource.c:267
Games
Dayz
scripts
4_world
entities
scriptedentities
triggers
undergroundtrigger.c
Generated by
1.17.0