Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actiongivebloodtarget.c
Go to the documentation of this file.
1
class
ActionGiveBloodTargetCB
:
ActionContinuousBaseCB
2
{
3
override
void
CreateActionComponent
()
4
{
5
m_ActionData
.m_ActionComponent =
new
CAContinuousQuantityBloodTransfer
(
UAQuantityConsumed
.
BLOOD
,
UATimeSpent
.
BLOOD
);
6
}
7
};
8
9
class
ActionGiveBloodTarget
:
ActionContinuousBase
10
{
11
void
ActionGiveBloodTarget
()
12
{
13
m_CallbackClass
=
ActionGiveBloodTargetCB
;
14
m_SpecialtyWeight
= UASoftSkillsWeight.PRECISE_HIGH;
15
16
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_SALINEBLOODBAGTARGET;
17
m_FullBody
=
true
;
18
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT |
DayZPlayerConstants
.STANCEMASK_CROUCH;
19
m_Text
=
"#give_blood_person"
;
20
}
21
22
override
void
CreateConditionComponents
()
23
{
24
m_ConditionTarget
=
new
CCTMan
(
UAMaxDistances
.
DEFAULT
);
25
m_ConditionItem
=
new
CCINonRuined
;
26
}
27
28
override
ActionData
CreateActionData
()
29
{
30
ActionGiveBloodData
action_data =
new
ActionGiveBloodData
;
31
return
action_data;
32
}
33
34
override
bool
SetupAction
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item, out
ActionData
action_data,
Param
extra_data = NULL )
35
{
36
if
( super.SetupAction(player, target, item, action_data, extra_data ) )
37
{
38
ActionGiveBloodData
action_data_b =
ActionGiveBloodData
.Cast( action_data );
39
action_data_b.
m_ItemBloodType
= action_data.m_MainItem.GetLiquidType();
40
action_data_b.
m_BloodAmount
= action_data.m_MainItem.GetQuantity();
41
action_data_b.
m_Agents
= action_data.m_MainItem.GetAgents();
42
return
true
;
43
}
44
return
false
;
45
}
46
47
override
void
OnEndAnimationLoopServer
(
ActionData
action_data )
48
{
49
//OnFinishProgressServer(action_data);
50
51
if
( action_data.m_MainItem.IsKindOf(
"BloodSyringe"
) )
52
{
53
SyringeLambda
lambda =
new
SyringeLambda
(action_data.m_MainItem,
"Syringe"
, action_data.m_Player);
54
lambda.SetTransferParams(
true
,
true
,
true
);
55
MiscGameplayFunctions.TurnItemIntoItemEx(action_data.m_Player, lambda);
56
}
57
}
58
59
override
void
OnEndServer
(
ActionData
action_data)
60
{
61
super.OnEndServer(action_data);
62
63
ActionGiveBloodData
action_data_b =
ActionGiveBloodData
.Cast( action_data );
64
float
blood_obtained = action_data_b.
m_BloodAmount
- action_data_b.m_MainItem.GetQuantity();
65
PlayerBase
player_target =
PlayerBase
.Cast(action_data_b.m_Target.GetObject());
66
67
68
PluginTransmissionAgents plugin = PluginTransmissionAgents.Cast(
GetPlugin
(PluginTransmissionAgents));
69
plugin.TransmitAgents(action_data.m_MainItem, player_target,
AGT_UACTION_TO_PLAYER
,blood_obtained );
70
71
72
int
bloodtypetarget = player_target.GetStatBloodType().Get();
73
bool
bloodmatch =
BloodTypes
.
MatchBloodCompatibility
(action_data_b.
m_ItemBloodType
, bloodtypetarget);
74
75
if
( !bloodmatch )
76
{
77
78
79
if
(blood_obtained >
PlayerConstants
.
HEMOLYTIC_RISK_SHOCK_THRESHOLD
)
80
{
81
player_target.m_UnconsciousEndTime = -60;
82
player_target.SetHealth(
""
,
"Shock"
,0);
83
84
if
(blood_obtained >
PlayerConstants
.
HEMOLYTIC_REACTION_THRESHOLD
)
85
{
86
player_target.m_ModifiersManager.ActivateModifier(
eModifiers
.MDF_HEMOLYTIC_REACTION);
87
}
88
}
89
}
90
91
if
( action_data_b.m_MainItem && action_data_b.m_MainItem.GetQuantity() <= 0.01 )
92
{
93
action_data_b.m_MainItem.SetQuantity(0);
94
}
95
96
if
(!(action_data_b.
m_Agents
&
eAgents
.CHEMICAL_POISON))
//does bloodbag NOT contain nerve agent ?
97
{
98
float
remove_count_agents = blood_obtained *
ActionGiveBloodSelf
.
CHEM_AGENT_BLOOD_REMOVAL_MODIFIER
;
99
player_target.InsertAgent(
eAgents
.CHEMICAL_POISON, -remove_count_agents);
100
101
}
102
}
103
};
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
ActionBaseCB::m_ActionData
ActionData m_ActionData
Definition
animatedactionbase.c:3
ActionBase::m_FullBody
bool m_FullBody
Definition
actionbase.c:67
ActionBase::m_Text
string m_Text
Definition
actionbase.c:64
ActionBase::m_ConditionItem
ref CCIBase m_ConditionItem
Definition
actionbase.c:70
ActionBase::m_SpecialtyWeight
float m_SpecialtyWeight
Definition
actionbase.c:83
ActionBase::m_ConditionTarget
ref CCTBase m_ConditionTarget
Definition
actionbase.c:71
ActionBase::m_StanceMask
int m_StanceMask
Definition
actionbase.c:68
ActionContinuousBaseCB
Definition
actioncontinuousbase.c:2
ActionContinuousBase::ActionContinuousBase
void ActionContinuousBase()
Definition
actioncontinuousbase.c:124
ActionGiveBloodData
Definition
actiongivebloodself.c:2
ActionGiveBloodData::m_ItemBloodType
int m_ItemBloodType
Definition
actiongivebloodself.c:3
ActionGiveBloodData::m_BloodAmount
float m_BloodAmount
Definition
actiongivebloodself.c:4
ActionGiveBloodData::m_Agents
int m_Agents
Definition
actiongivebloodself.c:5
ActionGiveBloodSelf
Definition
actiongivebloodself.c:17
ActionGiveBloodSelf::CHEM_AGENT_BLOOD_REMOVAL_MODIFIER
const float CHEM_AGENT_BLOOD_REMOVAL_MODIFIER
Definition
actiongivebloodself.c:18
ActionGiveBloodTargetCB
Definition
actiongivebloodtarget.c:2
ActionGiveBloodTargetCB::CreateActionComponent
override void CreateActionComponent()
Definition
actiongivebloodtarget.c:3
ActionGiveBloodTarget::OnEndServer
override void OnEndServer(ActionData action_data)
Definition
actiongivebloodtarget.c:59
ActionGiveBloodTarget::CreateActionData
override ActionData CreateActionData()
Definition
actiongivebloodtarget.c:28
ActionGiveBloodTarget::CreateConditionComponents
override void CreateConditionComponents()
Definition
actiongivebloodtarget.c:22
ActionGiveBloodTarget::SetupAction
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Definition
actiongivebloodtarget.c:34
ActionGiveBloodTarget::ActionGiveBloodTarget
void ActionGiveBloodTarget()
Definition
actiongivebloodtarget.c:11
ActionGiveBloodTarget::OnEndAnimationLoopServer
override void OnEndAnimationLoopServer(ActionData action_data)
Definition
actiongivebloodtarget.c:47
AnimatedActionBase::m_CommandUID
int m_CommandUID
Definition
animatedactionbase.c:143
AnimatedActionBase::m_CallbackClass
m_CallbackClass
Definition
animatedactionbase.c:145
BloodTypes
Definition
bloodtype.c:2
BloodTypes::MatchBloodCompatibility
static bool MatchBloodCompatibility(int bloodtypetarget, int bloodtype)
Definition
bloodtype.c:39
CAContinuousQuantityBloodTransfer
Definition
cacontinuousquantitybloodtransfer.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTMan
Definition
cctman.c:2
ItemBase
Definition
inventoryitem.c:742
Param
Base Param Class with no parameters.
Definition
param.c:12
PlayerBase
Definition
playerbaseclient.c:2
PlayerConstants
Definition
playerconstants.c:2
PlayerConstants::HEMOLYTIC_RISK_SHOCK_THRESHOLD
static const float HEMOLYTIC_RISK_SHOCK_THRESHOLD
Definition
playerconstants.c:118
PlayerConstants::HEMOLYTIC_REACTION_THRESHOLD
static const float HEMOLYTIC_REACTION_THRESHOLD
Definition
playerconstants.c:119
SyringeLambda
Definition
actiongivebloodself.c:117
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::DEFAULT
const float DEFAULT
Definition
actionconstants.c:112
UAQuantityConsumed
Definition
actionconstants.c:4
UAQuantityConsumed::BLOOD
const float BLOOD
Definition
actionconstants.c:15
UATimeSpent
Definition
actionconstants.c:28
UATimeSpent::BLOOD
const float BLOOD
Definition
actionconstants.c:99
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
eAgents
eAgents
Definition
eagents.c:3
eModifiers
eModifiers
Definition
emodifiers.c:2
AGT_UACTION_TO_PLAYER
const int AGT_UACTION_TO_PLAYER
Definition
constants.c:507
GetPlugin
PluginBase GetPlugin(typename plugin_type)
Definition
pluginmanager.c:325
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
medical
actiongivebloodtarget.c
Generated by
1.17.0