Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actiongivebloodself.c
Go to the documentation of this file.
1
class
ActionGiveBloodData
:
ActionData
2
{
3
int
m_ItemBloodType
;
4
float
m_BloodAmount
;
5
int
m_Agents
;
6
}
7
8
class
ActionGiveBloodSelfCB :
ActionContinuousBaseCB
9
{
10
override
void
CreateActionComponent
()
11
{
12
m_ActionData.m_ActionComponent =
new
CAContinuousQuantityBloodTransfer
(
UAQuantityConsumed
.
BLOOD
,
UATimeSpent
.
BLOOD
);
13
}
14
};
15
16
class
ActionGiveBloodSelf
:
ActionContinuousBase
17
{
18
const
float
CHEM_AGENT_BLOOD_REMOVAL_MODIFIER
= 0.25;
19
void
ActionGiveBloodSelf
()
20
{
21
m_CallbackClass
= ActionGiveBloodSelfCB;
22
m_SpecialtyWeight
= UASoftSkillsWeight.PRECISE_HIGH;
23
24
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_SALINEBLOODBAG;
25
m_FullBody
=
true
;
26
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT |
DayZPlayerConstants
.STANCEMASK_CROUCH;
27
m_Text
=
"#give_blood"
;
28
}
29
30
override
void
CreateConditionComponents
()
31
{
32
m_ConditionItem
=
new
CCINotRuinedAndEmpty
;
33
m_ConditionTarget
=
new
CCTSelf
;
34
}
35
36
override
bool
HasTarget
()
37
{
38
return
false
;
39
}
40
41
override
ActionData
CreateActionData
()
42
{
43
ActionGiveBloodData
action_data =
new
ActionGiveBloodData
;
44
return
action_data;
45
}
46
47
override
bool
SetupAction
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item, out
ActionData
action_data,
Param
extra_data = NULL )
48
{
49
if
( super.SetupAction(player, target, item, action_data, extra_data ) )
50
{
51
ActionGiveBloodData
action_data_b =
ActionGiveBloodData
.Cast( action_data );
52
action_data_b.
m_ItemBloodType
= action_data.m_MainItem.GetLiquidType();
53
action_data_b.
m_BloodAmount
= action_data.m_MainItem.GetQuantity();
54
action_data_b.
m_Agents
= action_data.m_MainItem.GetAgents();
55
return
true
;
56
}
57
return
false
;
58
}
59
60
override
void
OnEndAnimationLoopServer
(
ActionData
action_data )
61
{
62
//OnFinishProgressServer(action_data);
63
64
if
( action_data.m_MainItem.IsKindOf(
"BloodSyringe"
) )
65
{
66
SyringeLambda
lambda =
new
SyringeLambda
(action_data.m_MainItem,
"Syringe"
, action_data.m_Player);
67
lambda.SetTransferParams(
true
,
true
,
true
);
68
MiscGameplayFunctions.TurnItemIntoItemEx(action_data.m_Player, lambda);
69
}
70
}
71
72
override
void
OnEndServer
(
ActionData
action_data)
73
{
74
super.OnEndServer(action_data);
75
76
ActionGiveBloodData
action_data_b =
ActionGiveBloodData
.Cast( action_data );
77
float
blood_obtained = action_data_b.
m_BloodAmount
- action_data_b.m_MainItem.GetQuantity();
78
79
PluginTransmissionAgents plugin = PluginTransmissionAgents.Cast(
GetPlugin
(PluginTransmissionAgents));
80
plugin.TransmitAgentsEx(action_data.m_MainItem, action_data.m_Player,
AGT_UACTION_TO_PLAYER
,blood_obtained ,action_data_b.
m_Agents
);
81
82
83
int
bloodtypetarget = action_data_b.m_Player.GetStatBloodType().Get();
84
bool
bloodmatch =
BloodTypes
.
MatchBloodCompatibility
(action_data_b.
m_ItemBloodType
, bloodtypetarget);
85
86
if
( !bloodmatch )
87
{
88
89
90
if
(blood_obtained >
PlayerConstants
.
HEMOLYTIC_RISK_SHOCK_THRESHOLD
)
91
{
92
action_data_b.m_Player.m_UnconsciousEndTime = -60;
93
action_data_b.m_Player.SetHealth(
""
,
"Shock"
,0);
94
95
if
(blood_obtained >
PlayerConstants
.
HEMOLYTIC_REACTION_THRESHOLD
)
96
{
97
action_data_b.m_Player.m_ModifiersManager.ActivateModifier(
eModifiers
.MDF_HEMOLYTIC_REACTION);
98
}
99
}
100
}
101
102
if
( action_data_b.m_MainItem && action_data_b.m_MainItem.GetQuantity() <= 0.01 )
103
{
104
action_data_b.m_MainItem.SetQuantity(0);
105
}
106
107
if
(!(action_data_b.
m_Agents
&
eAgents
.CHEMICAL_POISON))
//does bloodbag NOT contain nerve agent ?
108
{
109
float
remove_count_agents = blood_obtained *
CHEM_AGENT_BLOOD_REMOVAL_MODIFIER
;
110
action_data.m_Player.InsertAgent(
eAgents
.CHEMICAL_POISON, -remove_count_agents);
111
112
}
113
}
114
};
115
116
class
SyringeLambda
:
TurnItemIntoItemLambda
117
{
118
void
SyringeLambda
(
EntityAI
old_item,
string
new_item_type,
PlayerBase
player) { }
119
};
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
ActionBaseCB::CreateActionComponent
void CreateActionComponent()
Definition
animatedactionbase.c:61
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::OnEndServer
override void OnEndServer(ActionData action_data)
Definition
actiongivebloodself.c:72
ActionGiveBloodSelf::CHEM_AGENT_BLOOD_REMOVAL_MODIFIER
const float CHEM_AGENT_BLOOD_REMOVAL_MODIFIER
Definition
actiongivebloodself.c:18
ActionGiveBloodSelf::CreateActionData
override ActionData CreateActionData()
Definition
actiongivebloodself.c:41
ActionGiveBloodSelf::CreateConditionComponents
override void CreateConditionComponents()
Definition
actiongivebloodself.c:30
ActionGiveBloodSelf::HasTarget
override bool HasTarget()
Definition
actiongivebloodself.c:36
ActionGiveBloodSelf::SetupAction
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Definition
actiongivebloodself.c:47
ActionGiveBloodSelf::ActionGiveBloodSelf
void ActionGiveBloodSelf()
Definition
actiongivebloodself.c:19
ActionGiveBloodSelf::OnEndAnimationLoopServer
override void OnEndAnimationLoopServer(ActionData action_data)
Definition
actiongivebloodself.c:60
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
CCINotRuinedAndEmpty
Definition
ccinotruinedandempty.c:2
CCTSelf
Definition
cctself.c:2
EntityAI
Definition
inventoryitem.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
SyringeLambda::SyringeLambda
void SyringeLambda(EntityAI old_item, string new_item_type, PlayerBase player)
Definition
actiongivebloodself.c:118
TurnItemIntoItemLambda
Definition
miscgameplayfunctions.c:92
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
actiongivebloodself.c
Generated by
1.17.0