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

◆ OnLeaveServerEvent()

void OnEnterServerEvent::OnLeaveServerEvent ( TriggerInsider insider)
protected

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

111 : Trigger
112{
113 bool m_Enabled = false;
115
116 #ifdef DEVELOPER
117 bool m_CanSendDbg = true;
118 #endif
119
120 void TrapTrigger()
121 {
122 int mask = GetEventMask();
123 mask &= ~EntityEvent.INIT;
124 SetEventMask(mask);
125 }
126
127 void SetParentObject( TrapBase obj )
128 {
129 if (GetGame().IsServer())
130 {
131 m_ParentObj = obj;
132 }
133 }
134
135 override protected bool CanAddObjectAsInsider(Object object)
136 {
137 return m_Enabled && object.IsInherited(EntityAI) && m_ParentObj && m_ParentObj.IsActive() && m_ParentObj.GetTrapTrigger() == this;
138 }
139
140 override protected void OnEnterServerEvent(TriggerInsider insider)
141 {
142 #ifdef DEVELOPER
143 m_CanSendDbg = false;
144 #endif
145
146 if (m_ParentObj && m_ParentObj.IsActive())
147 {
148 m_ParentObj.SnapOnObject(EntityAI.Cast(insider.GetObject()));
149 }
150 }
151
152 override protected void OnLeaveServerEvent(TriggerInsider insider)
153 {
154 if (m_ParentObj && m_ParentObj.IsActive())
155 {
156 m_ParentObj.RemoveFromObject(EntityAI.Cast(insider.GetObject()));
157 }
158 }
159
161 void SetEnabled()
162 {
163 m_Enabled = true;
164 }
165
166 #ifdef DEVELOPER
167 override void DebugSendDmgTrigger()
168 {
169 if ( m_CanSendDbg )
170 super.DebugSendDmgTrigger();
171 }
172
173 #endif
174}
175
176// Used for tripwire type traps, where we want to allow players to go through
177class TripWireTrigger : TrapTrigger
178{
179 override protected void OnEnterServerEvent( TriggerInsider insider )
180 {
181 PlayerBase playerInsider = PlayerBase.Cast(insider.GetObject());
182
183 if (playerInsider)
184 {
185 // If the player is jogging / sprinting while standing with or without hands raised, tripwire will trigger
186 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 );
187 bool isJogging = ( playerInsider.m_MovementState.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_RUN || playerInsider.m_MovementState.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_SPRINT );
188 if (isJogging && isErect)
189 {
190 super.OnEnterServerEvent(insider);
191 return;
192 }
193
194 // Special handling of crouch sprint
195 if ( playerInsider.m_MovementState.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_CROUCH && playerInsider.m_MovementState.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_SPRINT )
196 {
197 super.OnEnterServerEvent(insider);
198 return;
199 }
200 }
201 else
202 {
203 super.OnEnterServerEvent(insider);
204 }
205 }
206}
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