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

◆ DeconstructEx()

void GetShelterVariant::DeconstructEx ( bool createdItemsFall = false)

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

155{
156 static const string SITE_OBJECT_TYPE = "ShelterSite";
157
158 void ShelterBase()
159 {
160 m_ShowAnimationsWhenPitched.Insert("Body");
161 m_ShowAnimationsWhenPacked.Insert("Body");
162
163 m_HalfExtents = Vector(0.8, 0.15, 1.3);
164 }
165
166 override void SetActions()
167 {
168 super.SetActions();
169
174
176 }
177
178 override void EEInit()
179 {
180 super.EEInit();
181
182 TryPitch(true, true);
183 }
184
185 void Deconstruct()
186 {
188 }
189
190 void DeconstructEx(bool createdItemsFall = false)
191 {
193 SpawnKitEx(createdItemsFall);
194 Delete();
195 }
196
197 string GetMaterialPath()
198 {
199 return string.Format("%1 %2 Construction site %3 Materials", CFG_VEHICLESPATH, SITE_OBJECT_TYPE, GetShelterVariant());
200 }
201
202 string GetShelterVariant()
203 {
204 return "";
205 }
206
207 void SpawnKit()
208 {
209 SpawnKitEx();
210 }
211
212 void SpawnKitEx(bool shouldKitFall = false)
213 {
214 ItemBase constructionKit = ItemBase.Cast(g_Game.CreateObjectEx("ShelterKit", GetPosition(), ECE_PLACE_ON_SURFACE));
215 constructionKit.SetHealth01("", "", GetHealth01());
216
217 if (shouldKitFall)
218 constructionKit.ThrowPhysically(null, vector.Zero);
219 }
220
221 override bool IsPlayerInside(PlayerBase player, string selection)
222 {
223 vector player_pos = player.GetPosition();
224 vector shelter_pos = GetPosition();
225 vector ref_dir = GetDirection();
226 ref_dir[1] = 0;
227 ref_dir.Normalize();
228
229 vector x[2];
230 vector b1,b2;
231 GetCollisionBox(x);
232 b1 = x[0];
233 b2 = x[1];
234
235 vector dir_to_shelter = shelter_pos - player_pos;
236 dir_to_shelter[1] = 0;
237 float len = dir_to_shelter.Length();
238
239 dir_to_shelter.Normalize();
240
241 vector ref_dir_angle = ref_dir.VectorToAngles();
242 vector dir_to_shelter_angle = dir_to_shelter.VectorToAngles();
243 vector test_angles = dir_to_shelter_angle - ref_dir_angle;
244
245 vector test_position = test_angles.AnglesToVector() * len;
246
247 if (test_position[0] < b1[0] || test_position[0] > b2[0] || test_position[2] < 0.2 || test_position[2] > 2.2 )
248 {
249 return false;
250 }
251 else
252 {
253 return true;
254 }
255 }
256
257 override void OnItemFallRebuilding()
258 {
259 if (!g_Game.IsServer() || m_IsFalling)
260 return;
261
262 DropCargoItems();
263 DeconstructEx(true);
264 m_IsFalling = true;
265
266 g_Game.GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(ClearIsFalling, 800);
267 }
268}
269
270class ShelterFabric extends ShelterBase
271{
272 override string GetShelterVariant()
273 {
274 return "fabric";
275 }
276}
277
278class ShelterLeather extends ShelterBase
279{
280 override string GetShelterVariant()
281 {
282 return "leather";
283 }
284}
285
286class ShelterStick extends ShelterBase
287{
288 override string GetShelterVariant()
289 {
290 return "stick";
291 }
292}
PlaceObjectActionReciveData ActionReciveData ActionDeployObject()
Определения ActionDeployObject.c:9
ActionPackTentCB ActionContinuousBaseCB ActionPackTent()
Определения ActionPackTent.c:11
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
void RemoveAction(typename actionName)
Определения AdvancedCommunication.c:252
const int ECE_PLACE_ON_SURFACE
Определения CentralEconomy.c:38
Container_Base m_HalfExtents
DayZGame g_Game
Определения DayZGame.c:4074
Icon x
class ShelterBase extends TentBase GetShelterVariant()
Определения Shelter.c:119
override bool IsPlayerInside(PlayerBase player, string selection)
Определения Shelter.c:185
override void OnItemFallRebuilding()
Определения Shelter.c:221
void DeconstructEx(bool createdItemsFall=false)
Определения Shelter.c:154
static const string SITE_OBJECT_TYPE
Определения Shelter.c:120
void SpawnKitEx(bool shouldKitFall=false)
Определения Shelter.c:176
void SpawnKit()
Определения Shelter.c:171
void Deconstruct()
Определения Shelter.c:149
override void EEInit()
Определения Shelter.c:142
override void SetActions()
Определения Shelter.c:130
string GetMaterialPath()
Определения Shelter.c:161
void ShelterBase()
Определения Shelter.c:122
bool m_IsFalling
Определения TrapBase.c:48
void ClearIsFalling()
Определения TrapBase.c:723
Определения PlayerBaseClient.c:2
override string GetShelterVariant()
Определения Shelter.c:127
Определения Shelter.c:126
static void SpawnConstructionMaterialPilesEx(notnull EntityAI entity, Man player, string cfgPath, string mainPartName, string damagezoneName="", bool isBase=false, bool throwPiles=false)
spawns material from any construction; 'player' parameter optional; 'main_part_name' is actually a PA...
Определения ConstructionBase.c:1809
Deprecated.
Определения ConstructionBase.c:1807
proto native float Length()
Returns length of vector (magnitude)
static const vector Zero
Определения EnConvert.c:123
proto float Normalize()
Normalizes vector. Returns length.
proto vector VectorToAngles()
Converts vector to spherical coordinates with radius = 1.
proto vector AnglesToVector()
Converts spherical coordinates (yaw, pitch, roll in degrees) to unit length vector.
Определения EnConvert.c:119
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
const string CFG_VEHICLESPATH
Определения 3_Game/DayZ/constants.c:228
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.
const int CALL_CATEGORY_SYSTEM
Определения 3_Game/DayZ/tools/tools.c:8

Используется в TentBase::Deconstruct() и TentBase::OnItemFallRebuilding().