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

◆ IsInReach()

bool ActionBase::IsInReach ( PlayerBase player,
ActionTarget target,
float maxDistance = 1.0 )
inlineprotected

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

1198 {
1199 Object obj = target.GetObject();
1200 if (!obj)
1201 return false;
1202
1203 float distanceRoot, distanceHead;
1204 vector modelPos, worldPos, playerHeadPos;
1205
1206 // we're using sq distance in comparison
1207 maxDistance = maxDistance * maxDistance;
1208
1209 // get position of Head bone
1210 MiscGameplayFunctions.GetHeadBonePos(player, playerHeadPos);
1211
1212 array<string> componentNames = new array<string>();
1213 obj.GetActionComponentNameList(target.GetComponentIndex(), componentNames);
1214 foreach (string componentName : componentNames)
1215 {
1216 if (componentName.Contains("doorstwin"))
1217 continue;
1218
1219 modelPos = obj.GetSelectionPositionMS(componentName);
1220 worldPos = obj.ModelToWorld(modelPos);
1221
1222 break;
1223 }
1224
1225 distanceRoot = vector.DistanceSq(worldPos, player.GetPosition());
1226 distanceHead = vector.DistanceSq(worldPos, playerHeadPos);
1227
1228 return distanceRoot <= maxDistance || distanceHead <= maxDistance;
1229 }
class LOD Object

Перекрестные ссылки 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().