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

◆ AddInsider()

void Trigger::AddInsider ( Object obj)
inlineprotected

Adding of new TriggerInsider.

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

229 {
230 if ( !obj )
231 return;
232
233 // Already in?
234 if ( GetInsiderForObject( obj ) )
235 {
236 Error(string.Format("[WARNING] :: [Trigger] :: [%1] :: Insider (%2) is already inside.", GetDebugName(this), GetDebugName(obj)));
237 return;
238 }
239
240 // New Object entered! Fill the data.
241 TriggerInsider insider = CreateInsider(obj);
242 insider.timeStamp = g_Game.GetTime();
243 insider.timeEntered = g_Game.GetTickTime();
244 insider.lastUpdated = insider.timeEntered;
245
246 // Don't add if it is going to be removed anyways..
247 if ( ShouldRemoveInsider(insider) || ShouldRemoveInsiderNoLeave(insider) )
248 return;
249
250 // Keep track of the Object as long as it is inside the Trigger
251 int index = m_insiders.Insert(insider);
252
253 // Call the enter event to signal this Object entered
254 Enter(insider);
255 obj.OnEnterTrigger(this);
256
257 #ifdef TRIGGER_DEBUG_NORMAL
258 Debug.TriggerLog(string.Format("%1: inserted at index %2", GetDebugName(obj), index), "Trigger", "", "AddInsider", GetDebugName(this));
259 #endif
260 }
DayZGame g_Game
Определения DayZGame.c:3868
void Debug()
Определения UniversalTemperatureSource.c:349
TriggerInsider CreateInsider(Object obj)
Used for easily overriding TriggerInsider creation without rewriting AddInsider.
Определения Trigger.c:222
TriggerInsider GetInsiderForObject(Object object)
Gets the TriggerInsider for the Object if it exists.
Определения Trigger.c:134
bool ShouldRemoveInsider(TriggerInsider insider)
Condition whether a TriggerInsider should still be updated or not (checked in update loop and before ...
Определения Trigger.c:204
ref array< ref TriggerInsider > m_insiders
The objects and their metadata which are currently inside the Trigger.
Определения Trigger.c:44
bool ShouldRemoveInsiderNoLeave(TriggerInsider insider)
Condition whether a TriggerInsider should still be updated or not, skips OnLeaveEvent (checked in upd...
Определения Trigger.c:210
void Enter(TriggerInsider insider)
Определения TriggerEvents.c:26
int timeStamp
Last time the object was seen in ms.
Определения Trigger.c:10
float lastUpdated
Last time the object was updated in seconds, is used for calculating deltaTime.
Определения Trigger.c:16
float timeEntered
Time the object was first seen in seconds.
Определения Trigger.c:13
override string GetDebugName()
Определения dayzplayer.c:1170
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90

Перекрестные ссылки CreateInsider(), TriggerEvents::Enter(), Error(), g_Game, GetDebugName(), GetInsiderForObject(), TriggerInsider::lastUpdated, m_insiders, ShouldRemoveInsider(), ShouldRemoveInsiderNoLeave(), TriggerInsider::timeEntered, TriggerInsider::timeStamp и Debug::TriggerLog().

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