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

◆ IsInReach()

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

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

1182 {
1183 Object obj = target.GetObject();
1184 if (!obj)
1185 return false;
1186
1187 float distanceRoot, distanceHead;
1188 vector modelPos, worldPos, playerHeadPos;
1189
1190 // we're using sq distance in comparison
1191 maxDistance = maxDistance * maxDistance;
1192
1193 // get position of Head bone
1194 MiscGameplayFunctions.GetHeadBonePos(player, playerHeadPos);
1195
1196 array<string> componentNames = new array<string>();
1197 obj.GetActionComponentNameList(target.GetComponentIndex(), componentNames);
1198 foreach (string componentName : componentNames)
1199 {
1200 if (componentName.Contains("doorstwin"))
1201 continue;
1202
1203 modelPos = obj.GetSelectionPositionMS(componentName);
1204 worldPos = obj.ModelToWorld(modelPos);
1205
1206 break;
1207 }
1208
1209 distanceRoot = vector.DistanceSq(worldPos, player.GetPosition());
1210 distanceHead = vector.DistanceSq(worldPos, playerHeadPos);
1211
1212 return distanceRoot <= maxDistance || distanceHead <= maxDistance;
1213 }
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().