DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionBuildPart.c
См. документацию.
1class BuildPartActionReciveData : ActionReciveData
2{
3 string m_PartType;
4}
5
6class BuildPartActionData : ActionData
7{
8 string m_PartType;
9};
10
12{
13 override void CreateActionComponent()
14 {
15 float time = SetCallbackDuration(m_ActionData.m_MainItem);
16 m_ActionData.m_ActionComponent = new CAContinuousTime(time);
17 }
18
20 {
21 #ifdef DIAG_DEVELOPER
22 if (m_ActionData.m_Player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.FAST)
23 return 1;
24 #endif
25
26 if (item) //TODO: configure and evaluate item suitability?
28 else
30 }
31};
32
34{
36 {
38 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
39 m_FullBody = true;
40 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
41
42 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
43 m_LockTargetOnUse = false;
44 m_Text = "#build";
45 }
46
52
53 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
54 {
55 ConstructionActionData cad = player.GetConstructionActionData();
57 if (part)
58 {
59 string overrideText = part.GetBuildTextOverride();
60 if (overrideText == string.Empty)
61 m_Text = "#build "+ part.GetName();
62 else
63 m_Text = overrideText;
64
65 #ifdef DIAG_DEVELOPER
66 if (DiagMenu.GetBool(DiagMenuIDs.BASEBUILDING_FULLDEBUG))
67 {
68 m_Text = "dbgBuild | part classname: " + part.GetPartName();
69 }
70 #endif
71 }
72 }
73
74 override void InitInfoData()
75 {
77 }
78
79 override bool CanBeUsedLeaning()
80 {
81 return false;
82 }
83
84 override bool CanBeUsedInFreelook()
85 {
86 return false;
87 }
88
89 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
90 {
91 #ifdef DIAG_DEVELOPER
92 if (player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.INSTANT)
93 return false;
94 #endif
95
96 EntityAI ent;
97 if (!Class.CastTo(ent,target.GetObject()))
98 return false;
99
100 if (player.IsPlacingLocal() || player.IsPlacingServer())
101 return false;
102
103 //Action not allowed if player has broken legs
104 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
105 return false;
106
107 if (!ent.CanUseConstruction() || !ent.CanUseConstructionBuild())
108 return false;
109
110 if ((!GetGame().IsDedicatedServer()))
111 {
112 if (!PositioningCheck(player, target))
113 return false;
114
115 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item, m_VariantID))
116 return GatherInfoData(player,target,item);
117
118 return false;
119 }
120 return true;
121 }
122
123 override bool ActionConditionContinue(ActionData action_data)
124 {
125 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
126 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
127 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
128 CollisionCheckData check_data = new CollisionCheckData;
129
130 check_data.m_PartName = part_name;
131 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
132
133 bool canBuild = construction.CanBuildPart(part_name, action_data.m_MainItem, true);
134 #ifdef DIAG_DEVELOPER
135 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
136 canBuild = true;
137 #endif
138 if (GetGame().IsServer())
139 {
140 bool collides = construction.IsCollidingEx(check_data);
141
142 return !collides && canBuild;
143 }
144 else
145 {
146 return canBuild;
147 }
148 }
149
150 override void OnFinishProgressServer(ActionData action_data)
151 {
152 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
153 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
154
155 string partName = BuildPartActionData.Cast(action_data).m_PartType;
156 ConstructionPart part = construction.GetConstructionPart(partName);
158
159 checkData.m_PartName = partName;
160 checkData.m_AdditionalExcludes.Insert(action_data.m_Player);
161
162 bool canBuild = construction.CanBuildPart(partName, action_data.m_MainItem, UseMainItem()); //TODO: do we need to check it here when ActionVariantManager already does it?
163 #ifdef DIAG_DEVELOPER
164 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
165 canBuild = true;
166 #endif
167 if (!construction.IsCollidingEx(checkData) && canBuild)
168 {
169 //build
170 construction.BuildPartServerEx(action_data.m_Player, partName, AT_BUILD_PART);
171
172 #ifdef DIAG_DEVELOPER
173 //skip tool/hand damage on debug action
174 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
175 return;
176 #endif
177
178 //add damage to tool or hands
179 if (action_data.m_MainItem)
180 {
181 if (part.DamageToolOnBuild())
182 action_data.m_MainItem.DecreaseHealth(UADamageApplied.BUILD, false);
183 }
184 else
185 {
186 if (part.DamageHandsOnBuild())
187 {
188 EntityAI gloves = action_data.m_Player.GetInventory().FindAttachment(InventorySlots.GLOVES);
189 if (gloves && gloves.GetHealthLevel() < 4)
190 {
191 gloves.AddHealth("","", PlayerConstants.GLOVES_DAMAGE_HAND_CONSTRUCTION);
192 }
194 {
195 if (Math.RandomFloat01() < 0.5)
196 action_data.m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
197 else
198 action_data.m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("RightForeArmRoll");
199 action_data.m_Player.RequestSoundEventEx(EPlayerSoundEventID.INJURED_LIGHT); //play sound regardless?
200 }
201 }
202 }
203 }
204 }
205
206 override string GetSoundCategory(ActionData action_data)
207 {
208 return "Base_building";
209 }
210
212 {
213 BuildPartActionData action_data = new BuildPartActionData;
214 return action_data;
215 }
216
217 //setup
218 override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
219 {
220 if (super.SetupAction(player, target, item, action_data, extra_data))
221 {
222 if (!g_Game.IsDedicatedServer())
223 {
224 ComposeBuildActionDataClient(player,target,item,action_data,extra_data);
225 }
226
227 SetBuildingAnimationEx(player, target, item, action_data, extra_data);
228 return true;
229 }
230
231 return false;
232 }
233
234 protected void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
235 {
236 ConstructionActionData cad = action_data.m_Player.GetConstructionActionData();
238 BuildPartActionData.Cast(action_data).m_PartType = part.GetPartName();
239 }
240
241 protected void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data = NULL)
242 {
243 if (!item)
244 return;
245
246 switch (item.Type())
247 {
248 case Pickaxe:
249 case Shovel:
250 case FarmingHoe:
251 case FieldShovel:
252 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIG;
253 break;
254 case Pliers:
255 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
256 break;
257 case SledgeHammer:
258 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_MINEROCK;
259 break;
260 case BrickTrowel:
261 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_BRICKTROWEL;
262 break;
263 default:
264 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE;
265 break;
266 }
267 }
268
269 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
270 {
271 super.WriteToContext(ctx, action_data);
272
273 ctx.Write(BuildPartActionData.Cast(action_data).m_PartType);
274 }
275
276 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
277 {
278 action_recive_data = new BuildPartActionReciveData;
279 super.ReadFromContext(ctx, action_recive_data);
280
281 string part_type;
282 if (ctx.Read(part_type))
283 {
284 BuildPartActionReciveData.Cast(action_recive_data).m_PartType = part_type;
285 return true;
286 }
287 else
288 {
289 return false;
290 }
291 }
292
293 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
294 {
295 super.HandleReciveData(action_recive_data, action_data);
296
297 BuildPartActionData.Cast(action_data).m_PartType = BuildPartActionReciveData.Cast(action_recive_data).m_PartType;
298 }
299
300 override string GetAdminLogMessage(ActionData action_data)
301 {
302 string partName = BuildPartActionData.Cast(action_data).m_PartType;
303
304 string itemName = "hands";
305 if (action_data.m_MainItem)
306 itemName = action_data.m_MainItem.GetDisplayName();
307
308 string message = string.Format("Built %1 on %2 with %3", partName, action_data.m_Target.GetObject().GetDisplayName(), itemName);
309 return message;
310 }
311
312 protected void ClearInfoData()
313 {
314 m_InfoData.m_InfoContextMask = 0;
315 }
316
317 protected bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
318 {
320
322 ConstructionActionData cad = player.GetConstructionActionData();
324 info.SetConstructionPart(part);
325 info.SetTool(item);
326
327 info.m_InfoContextMask |= EConstructionInfoCategories.MATERIALS_PRESENCE; //material info should always be visible
328 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info should always be visible
329
330 return info.CanDisplayInfo();
331 }
332
334 protected bool PositioningCheck(PlayerBase player, ActionTarget target)
335 {
336 EntityAI ent = EntityAI.Cast(target.GetObject());
337 BaseBuildingBase bbb = BaseBuildingBase.Cast(ent);
338 ConstructionActionData cad = player.GetConstructionActionData();
340
341 if (part)
342 {
343 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
344 if (!ent.IsPlayerInsideEx(player, part.GetPartName()))
345 {
346 if (bbb && !bbb.MustBeBuiltFromOutside())
347 return false;
348 else if (!bbb)
349 return false;
350 }
351 if (!construction.ConstructionDirectionCheck(player, part, EConstructionDirCheckType.INDOORS))
352 return false;
353 if (!construction.ConstructionInsiderBoxCheck(player, part))
354 return false;
355
356 return true;
357 }
358 return false;
359 }
360
366
368 //deprecated//
370 [Obsolete("Use 'SetBuildingAnimationEx' instead")]
371 protected void SetBuildingAnimation(ItemBase item)
372 {
373 SetBuildingAnimationEx(null,null,item,null);
374 }
375}
376
378{
381 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_2HD;
382 }
383
384 override void CreateConditionComponents()
385 {
386 m_ConditionItem = new CCINone;
387 m_ConditionTarget = new CCTCursor;
388 }
389
390 override bool UseMainItem()
391 {
392 return false;
393 }
394
395 override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
396 {
397 ConstructionActionData cad = player.GetConstructionActionData();
399 if (part)
400 {
401 string overrideText = part.GetBuildTextOverride();
402 if (overrideText == string.Empty)
403 m_Text = "#build "+ part.GetName();
404 else
405 m_Text = overrideText;
406
407 #ifdef DIAG_DEVELOPER
408 if (DiagMenu.GetBool(DiagMenuIDs.BASEBUILDING_FULLDEBUG))
409 {
410 m_Text = "dbgBuild | part classname: " + part.GetPartName() + " with hands";
411 }
412 #endif
413 }
414 }
415
416 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
417 {
418 #ifdef DIAG_DEVELOPER
419 if (player.GetConstructionActionData().GetFastConstructionMode() == EConstructionDebugModes.INSTANT)
420 return false;
421 #endif
422
423 if (item)
424 return false;
425
426 EntityAI ent;
427 if (!Class.CastTo(ent,target.GetObject()))
428 return false;
430 if (player.IsPlacingLocal() || player.IsPlacingServer())
431 return false;
432
433 //Action not allowed if player has broken legs
434 if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
435 return false;
436
437 bool handConstructionCondition = ent.CanUseHandConstruction();
438 #ifdef DIAG_DEVELOPER
439 if (player.GetConstructionActionData().GetFastConstructionMode())
440 handConstructionCondition = true;
441 #endif
442
443 if (!ent.CanUseConstruction() || !ent.CanUseConstructionBuild() || !handConstructionCondition)
444 return false;
445
446 if ((!GetGame().IsDedicatedServer()))
447 {
448 if (!PositioningCheck(player, target))
449 return false;
450
451 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item, m_VariantID))
452 return GatherInfoData(player,target,item);
453
454 return false;
455 }
456 return true;
457 }
458
459 override bool ActionConditionContinue(ActionData action_data)
460 {
461 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
462 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
463 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
464 CollisionCheckData check_data = new CollisionCheckData;
465
466 check_data.m_PartName = part_name;
467 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
469 bool canBuild = construction.CanBuildPart(part_name, null, false);
470 #ifdef DIAG_DEVELOPER
471 if (action_data.m_Player.GetConstructionActionData().GetFastConstructionMode())
472 canBuild = true;
473 #endif
474 if (GetGame().IsServer())
475 {
476 bool collides = construction.IsCollidingEx(check_data);
477
478 return !collides && canBuild;
479 }
480 else
481 {
482 return canBuild;
483 }
484 }
485
486 override protected bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
487 {
489
490 ActionInfoDataConstructionPossible info = ActionInfoDataConstructionPossible.Cast(m_InfoData);
491 ConstructionActionData cad = player.GetConstructionActionData();
493 info.SetConstructionPart(part);
494 info.SetTool(item);
496 info.m_InfoContextMask |= EConstructionInfoCategories.MATERIALS_PRESENCE; //material info should always be visible
497 /*
498 int actionMask = part.GetBuildActionTypeMask();
499 actionMask &= ~EConstructionTools.TOOL_HANDS;
500 if (actionMask != 0)
501 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info ONLY when also buildable by one!
502 */
503 info.m_InfoContextMask |= EConstructionInfoCategories.TOOL_PRESENCE; //tools info should always be visible
504
505 return info.CanDisplayInfo();
506 }
507
508 override protected void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
509 {
510 ConstructionActionData cad = action_data.m_Player.GetConstructionActionData();
511 BuildPartActionData.Cast(action_data).m_PartType = cad.GetBuildPartHandsGenericAtIndex(m_VariantID).GetPartName();
512 }
513
515 override protected ConstructionPart GetTargetPart(ConstructionActionData cad)
516 {
518 }
519
521 override protected void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data = NULL)
522 {
523 if (item)
524 return;
525
526 BuildPartActionData buildData;
527 if (Class.CastTo(buildData, action_data))
528 {
529 EntityAI ent = EntityAI.Cast(action_data.m_Target.GetObject());
530 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
531 ConstructionPart part = construction.GetConstructionPart(buildData.m_PartType);
532 int animOverrideID = part.GetHandBuildFBAnimOverride();
533
534 if (animOverrideID >= 0)
535 m_CommandUID = animOverrideID;
536 else
537 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_2HD;
538 }
539 }
540}
541
542// Deprecated
class LogManager EntityAI
const int AT_BUILD_PART
bool m_FullBody
Определения ActionBase.c:60
string m_Text
Определения ActionBase.c:57
bool ActionConditionContinue(ActionData action_data)
Определения ActionBase.c:436
ref ActionInfoDataBase m_InfoData
Определения ActionBase.c:70
void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:1342
int m_VariantID
Определения ActionBase.c:67
void CreateConditionComponents()
Определения ActionBase.c:245
bool m_LockTargetOnUse
Определения ActionBase.c:59
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
float m_SpecialtyWeight
Определения ActionBase.c:77
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:441
bool UseMainItem()
Определения ActionBase.c:417
int m_StanceMask
Определения ActionBase.c:61
BuildPartActionReciveData m_PartType
void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:579
bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:662
bool PositioningCheck(PlayerBase player, ActionTarget target)
Can build from the inside only, if applicable.
Определения ActionBuildPart.c:679
void ClearInfoData()
Определения ActionBuildPart.c:657
override bool UseMainItem()
Определения ActionBuildPart.c:390
ConstructionPart GetTargetPart(ConstructionActionData cad)
Does not work on server, since variants are not updated there (invoker does not invoke)
Определения ActionBuildPart.c:707
ActionBuildPart ActionContinuousBase ActionBuildPartHandsGeneric()
Определения ActionBuildPart.c:379
void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data=NULL)
here we base anims on targeted part
Определения ActionBuildPart.c:586
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
void ConstructionBase(EntityAI parent)
Определения ConstructionBase.c:58
void CollisionCheckData()
Определения ConstructionBase.c:1923
EConstructionInfoCategories
Определения ConstructionConstants.c:2
void ConstructionPart(string name, string part_name, string main_part_name, int id, bool is_built, bool is_base, bool is_gate, array< string > required_parts)
Определения ConstructionPart.c:531
DayZGame g_Game
Определения DayZGame.c:4074
eBrokenLegs
Определения EBrokenLegs.c:2
DiagMenuIDs
Определения EDiagMenuIDs.c:2
class GP5GasMask extends MaskBase ItemBase
Empty
Определения Hand_States.c:14
EPlayerSoundEventID
Определения PlayerSoundEventHandler.c:3
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionBuildPart()
Определения ActionBuildPart.c:35
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:218
override bool CanBeUsedInFreelook()
Определения ActionBuildPart.c:84
void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:234
override bool CanBeUsedLeaning()
Определения ActionBuildPart.c:79
bool PositioningCheck(PlayerBase player, ActionTarget target)
Can build from the inside only, if applicable.
Определения ActionBuildPart.c:334
override void CreateConditionComponents()
Определения ActionBuildPart.c:47
override string GetSoundCategory(ActionData action_data)
Определения ActionBuildPart.c:206
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionBuildPart.c:276
void SetBuildingAnimation(ItemBase item)
Определения ActionBuildPart.c:371
override bool ActionConditionContinue(ActionData action_data)
Определения ActionBuildPart.c:123
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:89
void SetBuildingAnimationEx(PlayerBase player, ActionTarget target, ItemBase item, ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:241
override ActionData CreateActionData()
Определения ActionBuildPart.c:211
ConstructionPart GetTargetPart(ConstructionActionData cad)
Does not work on server, since variants are not updated there (invoker does not invoke)
Определения ActionBuildPart.c:362
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionBuildPart.c:269
override void InitInfoData()
Определения ActionBuildPart.c:74
override string GetAdminLogMessage(ActionData action_data)
Определения ActionBuildPart.c:300
override void OnFinishProgressServer(ActionData action_data)
Определения ActionBuildPart.c:150
bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:317
void ClearInfoData()
Определения ActionBuildPart.c:312
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Определения ActionBuildPart.c:293
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBuildPart.c:53
float SetCallbackDuration(ItemBase item)
Определения ActionBuildPart.c:19
override void CreateActionComponent()
Определения ActionBuildPart.c:13
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
always visible
Определения ActionPartInfo.c:253
int m_CommandUID
Определения AnimatedActionBase.c:147
override bool MustBeBuiltFromOutside()
Определения ShelterSite.c:80
Определения Fence.c:2
string m_PartType
Определения ActionBuildPart.c:3
Определения CCINonRuined.c:2
Определения CCTCursor.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
ConstructionPart GetBuildPartHandsGenericAtIndex(int idx)
Определения ConstructionActionData.c:364
ConstructionPart GetBuildPartAtIndex(int idx)
Определения ConstructionActionData.c:346
int GetHandBuildFBAnimOverride()
Определения ConstructionPart.c:253
string GetPartName()
Определения ConstructionPart.c:198
string GetBuildTextOverride()
Определения ConstructionPart.c:315
string GetName()
Определения ConstructionPart.c:193
bool DamageHandsOnBuild()
Определения ConstructionPart.c:218
bool DamageToolOnBuild()
Определения ConstructionPart.c:213
Instanced construction part data classes for dynamic data, statics now stored on EntityType level in ...
Определения ConstructionPart.c:4
Определения EnDebug.c:241
Определения FarmingHoe.c:2
provides access to slot configuration
Определения InventorySlots.c:6
Определения EnMath.c:7
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
static const float CHANCE_TO_BLEED_HAND_CONSTRUCTION
Определения PlayerConstants.c:197
static const float GLOVES_DAMAGE_HAND_CONSTRUCTION
Определения PlayerConstants.c:198
Определения PlayerConstants.c:2
proto bool Write(void value_out)
proto bool Read(void value_in)
const float BUILD
Определения ActionConstants.c:151
const float BASEBUILDING_CONSTRUCT_SLOW
Определения ActionConstants.c:63
const float BASEBUILDING_CONSTRUCT_MEDIUM
Определения ActionConstants.c:62
Определения ActionConstants.c:28
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
DayZGame GetGame()
Определения gameplay.c:636
static proto bool GetBool(int id, bool reverse=false)
Get value as bool from the given script id.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
void Obsolete(string msg="")
Определения EnScript.c:371
static float RandomFloat01()
Returns a random float number between and min [inclusive] and max [inclusive].
Определения EnMath.c:126
proto void Insert(int index, string input)
Inserts a string into the n-th index, increasing the string length by the size of the input.