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

◆ IsInReach()

bool IsInReach ( PlayerBase player,
ActionTarget target,
float maxDistance = 1.0 )
protected

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

1291 {
1292 Object obj = target.GetObject();
1293 if (!obj)
1294 return false;
1295
1296 float distanceRoot, distanceHead;
1297 vector modelPos, worldPos;
1298
1299 // we're using sq distance in comparison
1300 maxDistance = maxDistance * maxDistance;
1301 vector playerPosition = player.GetPosition();
1302 vector playerHeadPos = MiscGameplayFunctions.GetPlayerHeadPosition(player);
1303
1304 array<string> componentNames = new array<string>();
1305 obj.GetActionComponentNameList(target.GetComponentIndex(), componentNames);
1306 bool inReach = false;
1307 foreach (string componentName : componentNames)//we need to check it all, unfortunately
1308 {
1309 modelPos = obj.GetSelectionPositionMS(componentName);
1310 worldPos = obj.ModelToWorld(modelPos);
1311 distanceRoot = vector.DistanceSq(worldPos, playerPosition);
1312 distanceHead = vector.DistanceSq(worldPos, playerHeadPos);
1313
1314 inReach |= distanceRoot <= maxDistance || distanceHead <= maxDistance; //at least one of the components must be close enough
1315 }
1316
1317 return inReach;
1318 }
Определения ObjectTyped.c:2
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
Определения EnConvert.c:119

Перекрестные ссылки ActionTarget() и vector::DistanceSq().

Используется в ActionAnimateCarSelection::ActionCondition(), ActionAnimateSeats::ActionCondition(), ActionCarDoorsOutside::ActionCondition(), ActionClapBearTrapWithThisItem::ActionCondition(), ActionCloseDoors::ActionCondition(), ActionCondition(), ActionCreateIndoorFireplace::ActionCondition(), ActionCreateIndoorOven::ActionCondition(), ActionLockDoors::ActionCondition(), ActionOpenDoors::ActionCondition(), ActionPlaceFireplaceIndoor::ActionCondition(), ActionPlaceOvenIndoor::ActionCondition(), ActionUnlockDoors::ActionCondition() и ActionDestroyPart::DestroyCondition().