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

◆ IsInReach()

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

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

1159 {
1160 Object obj = target.GetObject();
1161 if (!obj)
1162 return false;
1163
1164 float distanceRoot, distanceHead;
1165 vector modelPos, worldPos, playerHeadPos;
1166
1167 // we're using sq distance in comparison
1168 maxDistance = maxDistance * maxDistance;
1169
1170 // get position of Head bone
1171 MiscGameplayFunctions.GetHeadBonePos(player, playerHeadPos);
1172
1173 array<string> componentNames = new array<string>();
1174 obj.GetActionComponentNameList(target.GetComponentIndex(), componentNames);
1175 foreach (string componentName : componentNames)
1176 {
1177 if (componentName.Contains("doorstwin"))
1178 continue;
1179
1180 modelPos = obj.GetSelectionPositionMS(componentName);
1181 worldPos = obj.ModelToWorld(modelPos);
1182
1183 break;
1184 }
1185
1186 distanceRoot = vector.DistanceSq(worldPos, player.GetPosition());
1187 distanceHead = vector.DistanceSq(worldPos, playerHeadPos);
1188
1189 return distanceRoot <= maxDistance || distanceHead <= maxDistance;
1190 }
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().