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

◆ ComputeUtility()

float ActionTargets::ComputeUtility ( Object pTarget,
vector pRayStart,
vector pRayEnd,
Object cursorTarget,
vector hitPos )
inlineprivate

computes utility of target

out of reach

ground and static objects

basebuilding objects

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

407 {
409 if (vector.DistanceSq(hitPos, m_Player.GetPosition()) > c_MaxTargetDistance * c_MaxTargetDistance)
410 return -1;
411
412 if (pTarget)
413 {
414 if ( pTarget == cursorTarget )
415 {
417 if ( pTarget.GetType() == string.Empty )
418 return 0.01;
419
420 if ( pTarget.IsBuilding() )
421 return 0.25;
422
423 if ( pTarget.IsTransport() )
424 return 0.25;
425
427 if (pTarget.CanUseConstruction())
428 return 0.85;
429
430 if ( pTarget.IsWell() )
431 return 0.9;
432
433 vector playerPosXZ = m_Player.GetPosition();
434 vector hitPosXZ = hitPos;
435 playerPosXZ[1] = 0;
436 hitPosXZ[1] = 0;
437 if ( vector.DistanceSq(playerPosXZ, hitPosXZ) <= c_MaxTargetDistance * c_MaxTargetDistance )
438 return c_UtilityMaxValue;
439 }
440
441 if ( PlayerBase.Cast(pTarget) && PlayerBase.Cast(pTarget).IsInVehicle() ) // utility in vehicle should be below base vehicle val
442 return 0.20;
443
444 float distSqr = DistSqrPoint2Line(pTarget.GetPosition(), pRayStart, pRayEnd);
446 }
447
448 return -1;
449 }
const float c_UtilityMaxDistFromRaySqr
Определения ActionTargets.c:739
const float c_MaxTargetDistance
Определения ActionTargets.c:730
float DistSqrPoint2Line(vector pPoint, vector pL1, vector pL2)
distance between point and line
Определения ActionTargets.c:452
PlayerBase m_Player
player owner
Определения ActionTargets.c:711
const float c_UtilityMaxValue
utility constants
Определения ActionTargets.c:738

Перекрестные ссылки c_MaxTargetDistance, c_UtilityMaxDistFromRaySqr, c_UtilityMaxValue, vector::DistanceSq(), DistSqrPoint2Line() и m_Player.