DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ SetEnabled()

void OnEnterServerEvent::SetEnabled ( )
protected

prevents insider adding in the wrong position, HOTFIX

См. определение в файле TrapTrigger.c строка 119

120 : Trigger
121{
122 bool m_Enabled = false;
124
125 #ifdef DEVELOPER
126 bool m_CanSendDbg = true;
127 #endif
128
129 void TrapTrigger()
130 {
131 int mask = GetEventMask();
132 mask &= ~EntityEvent.INIT;
133 SetEventMask(mask);
134 }
135
136 void SetParentObject( TrapBase obj )
137 {
138 if (GetGame().IsServer())
139 {
140 m_ParentObj = obj;
141 }
142 }
143
144 override protected bool CanAddObjectAsInsider(Object object)
145 {
146 return m_Enabled && object.IsInherited(EntityAI) && m_ParentObj && m_ParentObj.IsActive() && m_ParentObj.GetTrapTrigger() == this;
147 }
148
149 override protected void OnEnterServerEvent(TriggerInsider insider)
150 {
151 #ifdef DEVELOPER
152 m_CanSendDbg = false;
153 #endif
154
155 if (m_ParentObj && m_ParentObj.IsActive())
156 {
157 m_ParentObj.SnapOnObject(EntityAI.Cast(insider.GetObject()));
158 }
159 }
160
161 override protected void OnLeaveServerEvent(TriggerInsider insider)
162 {
163 if (m_ParentObj && m_ParentObj.IsActive())
164 {
165 m_ParentObj.RemoveFromObject(EntityAI.Cast(insider.GetObject()));
166 }
167 }
168
170 void SetEnabled()
171 {
172 m_Enabled = true;
173 }
174
175 #ifdef DEVELOPER
176 override void DebugSendDmgTrigger()
177 {
178 if ( m_CanSendDbg )
179 super.DebugSendDmgTrigger();
180 }
181
182 #endif
183}
184
185// Used for tripwire type traps, where we want to allow players to go through
186class TripWireTrigger : TrapTrigger
187{
188 override protected void OnEnterServerEvent( TriggerInsider insider )
189 {
190 PlayerBase playerInsider = PlayerBase.Cast(insider.GetObject());
191
192 if (playerInsider)
193 {
194 // If the player is jogging / sprinting while standing with or without hands raised, tripwire will trigger
195 bool isErect = ( playerInsider.m_MovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_ERECT || playerInsider.m_MovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_RAISEDERECT || playerInsider.m_MovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_RAISEDCROUCH );
196 bool isJogging = ( playerInsider.m_MovementState.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_RUN || playerInsider.m_MovementState.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_SPRINT );
197 if (isJogging && isErect)
198 {
199 super.OnEnterServerEvent(insider);
200 return;
201 }
202
203 // Special handling of crouch sprint
204 if ( playerInsider.m_MovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_CROUCH && playerInsider.m_MovementState.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_SPRINT )
205 {
206 super.OnEnterServerEvent(insider);
207 return;
208 }
209 }
210 else
211 {
212 super.OnEnterServerEvent(insider);
213 }
214 }
215}
void SetEnabled()
prevents insider adding in the wrong position, HOTFIX
Определения TrapTrigger.c:119
TrapBase m_ParentObj
Определения TrapTrigger.c:72
bool m_Enabled
Определения TrapTrigger.c:71
bool CanAddObjectAsInsider(Object object)
Определения TrapTrigger.c:93
void OnLeaveServerEvent(TriggerInsider insider)
Определения TrapTrigger.c:110
void TrapTrigger()
Определения TrapTrigger.c:78
TrapTrigger Trigger OnEnterServerEvent(TriggerInsider insider)
Определения TrapTrigger.c:70
void SetParentObject(TrapBase obj)
Определения TrapTrigger.c:85
Определения Building.c:6
Определения ObjectTyped.c:2
Определения Trap_Bear.c:2
void OnEnterServerEvent(TriggerInsider insider)
Определения TrapTrigger.c:31
Trigger used by traps.
Определения TrapTrigger.c:3
Scripted Trigger.
Определения Hologram.c:1571
Object GetObject()
Определения Trigger.c:28
The object which is in a trigger and its metadata.
Определения Trigger.c:3
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
EntityEvent
Entity events for event-mask, or throwing event from code.
Определения EnEntity.c:45

Используется в EntityLightSource::CheckIfParentIsInCargo(), EntityLightSource::Destroy(), SpotLightBase::PerformVisibilityCheck() и EntityLightSource::ScriptedLightBase().