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

◆ OnContact()

override void BoatScript::OnContact ( string zoneName,
vector localPos,
IEntity other,
Contact data )
inlineprotected

WARNING: Can be called very frequently in one frame, use with caution.

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

419 {
420 if (GetGame().IsServer())
421 {
422 if (m_ContactData)
423 return;
424
425 float momentumDelta = GetMomentum() - m_MomentumPrevTick;
426 float dot = vector.Dot(m_VelocityPrevTick.Normalized(), GetVelocity(this).Normalized());
427 if (dot < 0)
428 momentumDelta = m_MomentumPrevTick;
429
430 m_ContactData = new VehicleContactData();
431 m_ContactData.SetData(localPos, other, momentumDelta); // change to local pos
432 }
433
434 if (!IsProxy())
435 {
436 if (EngineIsOn() && !CheckOperationalState())
437 EngineStop();
438 }
439 }
bool IsProxy()
Определения Hand_Events.c:65
float m_MomentumPrevTick
Определения BoatScript.c:58
vector m_VelocityPrevTick
Определения BoatScript.c:57
ref VehicleContactData m_ContactData
Определения BoatScript.c:59
bool CheckOperationalState()
Определения BoatScript.c:564
proto native CGame GetGame()
proto native vector GetVelocity(notnull IEntity ent)
Returns linear velocity.

Перекрестные ссылки CheckOperationalState(), vector::Dot(), GetGame(), GetVelocity(), IsProxy(), m_ContactData, m_MomentumPrevTick и m_VelocityPrevTick.