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

◆ ExcludeFromContainer_Phase1()

bool VicinityItemManager::ExcludeFromContainer_Phase1 ( Object actor_in_radius)
inlineprivate

If in free camera, allow viewing of inventory

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

93 {
94 EntityAI entity;
95 if (!Class.CastTo(entity, actor_in_radius))
96 return true;
97
98 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
99 if (entity == player)
100 return true;
101 if (entity.IsParticle())
102 return true;
103 if (entity.IsScriptedLight())
104 return true;
105 if (entity.IsBeingPlaced())
106 return true;
107 if (entity.IsHologram())
108 return true;
109 if (entity.IsMan() || entity.IsZombie() || entity.IsZombieMilitary())
110 {
111 //visibility cone check
112 vector entityPosition = entity.GetPosition();
113
114 if (entity && entity.IsMan())
115 {
116 PlayerBase vicinityPlayer = PlayerBase.Cast(entity);
117 if (vicinityPlayer)
118 {
119 entityPosition = vicinityPlayer.GetBonePositionWS(vicinityPlayer.GetBoneIndexByName("spine3"));
120 }
121 }
122 else if (entity && (entity.IsZombie() || entity.IsZombieMilitary()))
123 {
124 ZombieBase zombie = ZombieBase.Cast(entity);
125 if (zombie)
126 {
127 entityPosition = zombie.GetBonePositionWS(zombie.GetBoneIndexByName("spine3"));
128 }
129 }
130
132 if (FreeDebugCamera.GetInstance() && FreeDebugCamera.GetInstance().IsActive())
133 {
134 return false;
135 }
136
137 vector entityDirection = player.GetPosition() - entityPosition;
138 entityDirection.Normalize();
139 entityDirection[1] = 0; //ignore height
140
141 vector playerDirection = MiscGameplayFunctions.GetHeadingVector(player);
142 playerDirection.Normalize();
143 playerDirection[1] = 0; //ignore height
144
145 float dotRadians = vector.Dot(playerDirection, entityDirection);
146 if (dotRadians > -0.5)
147 return true;
148 }
149
150 return false;
151 }
class LogManager EntityAI
PlayerBase GetPlayer()
Определения ModifierBase.c:51
override bool IsMan()
Определения Man.c:44
static float Dot(vector v1, vector v2)
Returns Dot product of vector v1 and vector v2.
Определения EnConvert.c:271
proto float Normalize()
Normalizes vector. Returns length.
proto native CGame GetGame()

Перекрестные ссылки Class::CastTo(), vector::Dot(), GetGame(), GetPlayer(), EntityAI::IsMan() и vector::Normalize().

Используется в RefreshVicinityItems().