Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionrepaircarchassis.c
Go to the documentation of this file.
1
class
ActionRepairCarChassisCB
:
ActionRepairVehiclePartCB
2
{};
3
4
class
ActionRepairCarChassis
:
ActionRepairVehiclePartBase
5
{
6
protected
typename
m_LastValidType
;
// deprecated
7
protected
int
m_LastValidComponentIndex
;
8
9
void
ActionRepairCarChassis
()
10
{
11
m_CallbackClass
=
ActionRepairCarChassisCB
;
12
m_SpecialtyWeight
= UASoftSkillsWeight.PRECISE_LOW;
13
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_INTERACT;
14
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT;
15
m_FullBody
=
true
;
16
m_LockTargetOnUse
=
false
;
17
m_Text
=
"#repair"
;
18
19
m_LastValidComponentIndex
= -1;
20
}
21
22
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item)
23
{
24
if
(player.GetBrokenLegs() ==
eBrokenLegs
.BROKEN_LEGS)
25
return
false
;
26
27
CarScript
car =
CarScript
.Cast(target.GetObject());
28
if
(!car)
29
{
30
return
false
;
31
}
32
33
if
(
g_Game
.IsMultiplayer() &&
g_Game
.IsServer())
34
{
35
return
true
;
36
}
37
38
if
(
m_LastValidType
!= target.Type() ||
m_LastValidComponentIndex
!= target.GetComponentIndex() ||
m_CurrentDamageZone
==
""
)
39
{
40
string
damageZone =
""
;
41
array<string>
selections =
new
array<string>
();
42
car.GetActionComponentNameList(target.GetComponentIndex(), selections);
43
44
foreach
(
string
selection : selections)
45
{
46
//NOTE: relevant fire geometry and view geometry selection names MUST match in order to get a valid damage zone
47
if
(car && DamageSystem.GetDamageZoneFromComponentName(car, selection, damageZone))
48
{
49
if
(damageZone ==
"Engine"
)
50
continue
;
51
52
int
zoneHP = car.GetHealthLevel(damageZone);
53
if
(zoneHP >
GameConstants
.
STATE_WORN
&& zoneHP <
GameConstants
.
STATE_RUINED
)
54
{
55
m_CurrentDamageZone
= damageZone;
56
m_LastValidComponentIndex
= target.GetComponentIndex();
57
58
//Determine if using a "Special" item for repairing
59
WoodenPlank plank = WoodenPlank.Cast(item);
60
Fabric
tarp =
Fabric
.Cast(item);
61
62
//Prevent planks and tarp from repairing non related areas
63
if
((tarp || plank) && (damageZone !=
"BackWood"
&& damageZone !=
"BackTarp"
))
64
return
false
;
65
66
return
true
;
67
}
68
}
69
}
70
}
71
72
return
false
;
73
}
74
75
override
void
AdjustItemQuantityServer
(
ActionData
action_data)
76
{
77
if
(action_data.m_MainItem.HasQuantity())
78
{
79
if
(action_data.m_MainItem.GetQuantity() > 1)
80
{
81
int
qnt = action_data.m_MainItem.GetQuantity();
82
Fabric
usedTarp =
Fabric
.Cast(action_data.m_MainItem);
83
WoodenPlank usedPlank = WoodenPlank.Cast(action_data.m_MainItem);
84
if
(usedTarp || usedPlank)
85
{
86
qnt -= 1;
87
}
88
else
89
{
90
qnt -= action_data.m_MainItem.GetQuantityMax() * 0.25;
91
}
92
93
action_data.m_MainItem.SetQuantity(qnt);
94
}
95
else
96
{
97
action_data.m_MainItem.Delete();
98
}
99
}
100
}
101
};
102
103
// deprecated
104
class
RepairCarChassisActionReciveData
: ActionReciveData
105
{}
106
107
class
RepairCarChassisActionData :
ActionData
108
{}
m_StanceMask
int m_StanceMask
Definition
actionbase.c:33
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
ActionBase::m_FullBody
bool m_FullBody
Definition
actionbase.c:67
ActionBase::m_Text
string m_Text
Definition
actionbase.c:64
ActionBase::m_LockTargetOnUse
bool m_LockTargetOnUse
Definition
actionbase.c:66
ActionBase::m_SpecialtyWeight
float m_SpecialtyWeight
Definition
actionbase.c:83
ActionRepairCarChassisCB
Definition
actionrepaircarchassis.c:2
ActionRepairCarChassis::m_LastValidType
m_LastValidType
Definition
actionrepaircarchassis.c:6
ActionRepairCarChassis::ActionRepairCarChassis
void ActionRepairCarChassis()
Definition
actionrepaircarchassis.c:9
ActionRepairCarChassis::m_LastValidComponentIndex
int m_LastValidComponentIndex
Definition
actionrepaircarchassis.c:7
ActionRepairCarChassis::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionrepaircarchassis.c:22
ActionRepairCarChassis::AdjustItemQuantityServer
override void AdjustItemQuantityServer(ActionData action_data)
Definition
actionrepaircarchassis.c:75
ActionRepairVehiclePartBase
Definition
actionrepairvehiclepartbase.c:20
ActionRepairVehiclePartBase::m_CurrentDamageZone
string m_CurrentDamageZone
Definition
actionrepairvehiclepartbase.c:21
ActionRepairVehiclePartCB
Definition
actionrepairvehiclepartbase.c:12
AnimatedActionBase::m_CommandUID
int m_CommandUID
Definition
animatedactionbase.c:143
AnimatedActionBase::m_CallbackClass
m_CallbackClass
Definition
animatedactionbase.c:145
CarScript
Definition
civiliansedan.c:2
Fabric
Definition
crafting.c:107
GameConstants
Definition
constants.c:664
ItemBase
Definition
inventoryitem.c:742
PlayerBase
Definition
playerbaseclient.c:2
RepairCarChassisActionReciveData
Definition
actionrepaircarchassis.c:105
array
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Definition
isboxcollidinggeometryproxyclasses.c:28
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
eBrokenLegs
eBrokenLegs
Definition
ebrokenlegs.c:2
GameConstants::STATE_RUINED
const int STATE_RUINED
Definition
constants.c:851
GameConstants::STATE_WORN
const int STATE_WORN
Definition
constants.c:854
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actionrepaircarchassis.c
Generated by
1.17.0