DayZ
1.27
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
ActionPushCar.c
См. документацию.
1
class
ActionPushCarData
: ActionPushObjectData
2
{
3
int
m_PushDirection
= -1;
4
float
m_HorizontalDirectionRandom
= 1.0;
5
float
m_VerticalDirectionRandom
= 1.0;
6
7
// deprecated
8
CarScript
m_Car
;
9
}
10
11
class
CAContinuousRepeatPushCar :
CAContinuousRepeatPushObject
12
{
13
override
float
GetProgressWidgetMultiplier
()
14
{
15
return
2.5;
16
}
17
}
18
19
class
ActionPushCarCB
: ActionPushObjectCB
20
{
21
protected
float
PUSH_FORCE_IMPULSE_INCREMENT
= 200.0;
22
23
private
ActionPushCarData
m_ActionDataPushCar
;
24
25
override
void
CreateActionComponent
()
26
{
27
m_ActionData.m_ActionComponent =
new
CAContinuousRepeatPushCar(
UATimeSpent
.
PUSH_CAR
);
28
}
29
30
override
protected
void
ApplyForce
(ActionPushObjectData actionData)
31
{
32
m_ActionDataPushCar
=
ActionPushCarData
.Cast(m_ActionData);
33
CarScript
car =
CarScript
.Cast(actionData.m_Object);
34
35
m_ActionDataPushCar
.m_HorizontalDirectionRandom =
Math
.
RandomFloat
(1.0, 3.5);
36
m_ActionDataPushCar
.m_VerticalDirectionRandom =
Math
.
RandomFloat
(-0.5, 0.5);
37
38
float
bodyMass =
dBodyGetMass
(car);
39
float
invBodyMass = 1.0 / bodyMass;
40
float
force = bodyMass *
PUSH_FORCE_IMPULSE_INCREMENT
* car.
GetPushForceCoefficientMultiplier
();
41
42
float
easedProgress =
Easing
.
EaseInOutSine
(actionData.m_ActionComponent.GetProgress());
43
44
vector
impulse = car.GetDirection() * force * (
float
)
m_ActionDataPushCar
.m_PushDirection;
45
impulse = impulse * invBodyMass;
46
impulse[0] = impulse[0] *
m_ActionDataPushCar
.m_HorizontalDirectionRandom;
47
impulse[1] = impulse[1] *
m_ActionDataPushCar
.m_VerticalDirectionRandom;
48
impulse = impulse * easedProgress;
49
50
actionData.m_Player.DepleteStamina(
EStaminaModifiers
.PUSH_CAR);
51
52
dBodyApplyImpulseAt
(car, impulse, car.ModelToWorld(car.GetEnginePos()));
53
}
54
}
55
56
class
ActionPushCar
:
ActionPushObject
57
{
58
void
ActionPushCar
()
59
{
60
m_CallbackClass =
ActionPushCarCB
;
61
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_VEHICLE_PUSH;
62
m_FullBody =
true
;
63
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT;
64
65
m_Text =
"#push_car"
;
66
}
67
68
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item)
69
{
70
if
(!super.ActionCondition(player, target, item))
71
return
false
;
72
73
if
(!
IsInReach
(player, target,
UAMaxDistances
.
SMALL
))
74
return
false
;
75
76
return
true
;
77
}
78
79
override
ActionData
CreateActionData
()
80
{
81
ActionPushObjectData data =
new
ActionPushCarData
();
82
return
data;
83
}
84
85
override
void
OnStartServer
(
ActionData
action_data)
86
{
87
super.OnStartServer(action_data);
88
89
ActionPushCarData
data =
ActionPushCarData
.Cast(action_data);
90
Car carObj = Car.Cast(data.m_Object);
91
if
(carObj)
92
{
93
carObj.SetBrake(0.0);
94
carObj.SetHandbrake(0.0);
95
carObj.SetBrakesActivateWithoutDriver(
false
);
96
}
97
98
data.
m_PushDirection
= -1;
99
if
(
GetDirectionDot
(data.m_Object, data.m_Player) > 0)
100
data.
m_PushDirection
= 1;
101
102
}
103
104
override
void
OnEndServer
(
ActionData
action_data)
105
{
106
super.OnEndServer(action_data);
107
108
ActionPushObjectData data = ActionPushObjectData.Cast(action_data);
109
Car carObj = Car.Cast(data.m_Object);
110
if
(carObj)
111
carObj.SetBrakesActivateWithoutDriver(
true
);
112
}
113
114
protected
float
GetDirectionDot
(
Object
target,
EntityAI
player)
115
{
116
return
vector
.
Dot
(target.GetDirection(), player.GetDirection());
117
}
118
120
private
CarScript
GetCar
(
ActionTarget
target)
121
{
122
return
CarScript
.Cast(
GetPushObject
(target));
123
}
124
}
125
126
// deprecated
127
class
ActionPushCarDataReceiveData
:
ActionPushObjectDataReceiveData
128
{
129
CarScript
m_Car
;
130
}
m_CommandUID
int m_CommandUID
Определения
ActionBase.c:31
m_StanceMask
int m_StanceMask
Определения
ActionBase.c:33
ActionData
ActionBase ActionData
Определения
ActionBase.c:30
ActionPushCar
ActionPushCarCB ActionPushObjectCB ActionPushCar()
Определения
ActionPushCar.c:58
GetDirectionDot
float GetDirectionDot(Object target, EntityAI player)
Определения
ActionPushCar.c:114
GetCar
CarScript GetCar(ActionTarget target)
DEPRECATED.
Определения
ActionPushCar.c:120
ActionTarget
class ActionTargets ActionTarget
EStaminaModifiers
EStaminaModifiers
Определения
EStaminaModifiers.c:2
ActionBase::IsInReach
bool IsInReach(PlayerBase player, ActionTarget target, float maxDistance=1.0)
Определения
ActionBase.c:1158
ActionPushCarCB::PUSH_FORCE_IMPULSE_INCREMENT
float PUSH_FORCE_IMPULSE_INCREMENT
Определения
ActionPushCar.c:21
ActionPushCarCB::m_ActionDataPushCar
ActionPushCarData m_ActionDataPushCar
Определения
ActionPushCar.c:23
ActionPushCarCB::CreateActionComponent
override void CreateActionComponent()
Определения
ActionPushCar.c:25
ActionPushCarCB::ApplyForce
void ApplyForce(ActionPushObjectData actionData)
Определения
ActionPushCar.c:30
ActionPushCarCB
Определения
ActionPushCar.c:20
ActionPushCarData::m_PushDirection
int m_PushDirection
Определения
ActionPushCar.c:3
ActionPushCarData::m_Car
CarScript m_Car
Определения
ActionPushCar.c:8
ActionPushCarData::m_VerticalDirectionRandom
float m_VerticalDirectionRandom
Определения
ActionPushCar.c:5
ActionPushCarData::m_HorizontalDirectionRandom
float m_HorizontalDirectionRandom
Определения
ActionPushCar.c:4
ActionPushCarData
Определения
ActionPushCar.c:2
ActionPushCarDataReceiveData::m_Car
CarScript m_Car
Определения
ActionPushCar.c:129
ActionPushCarDataReceiveData
Определения
ActionPushCar.c:128
ActionPushObject::CreateActionData
override ActionData CreateActionData()
Определения
ActionPushObject.c:132
ActionPushObject::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения
ActionPushObject.c:138
ActionPushObject::GetPushObject
Object GetPushObject(ActionTarget target)
Определения
ActionPushObject.c:199
ActionPushObjectDataReceiveData
Определения
ActionPushObject.c:2
ActionPushObject
Определения
ActionPushObject.c:114
AnimatedActionBase::OnStartServer
override void OnStartServer(ActionData action_data)
Определения
AnimatedActionBase.c:489
AnimatedActionBase::OnEndServer
override void OnEndServer(ActionData action_data)
Определения
AnimatedActionBase.c:497
CABase::GetProgressWidgetMultiplier
float GetProgressWidgetMultiplier()
Определения
CABase.c:67
CAContinuousRepeatPushObject
Определения
ActionPushObject.c:16
CarScript::GetPushForceCoefficientMultiplier
override float GetPushForceCoefficientMultiplier()
Определения
CivilianSedan.c:421
CarScript
Определения
CivilianSedan.c:2
Easing::EaseInOutSine
static float EaseInOutSine(float t)
Определения
Easing.c:14
Easing
Input value between 0 and 1, returns value adjusted by easing, no automatic clamping of input(do your...
Определения
Easing.c:3
EntityAI
Определения
Building.c:6
ItemBase
Определения
InventoryItem.c:731
Math
Определения
EnMath.c:7
Object
Определения
ObjectTyped.c:2
PlayerBase
Определения
PlayerBaseClient.c:2
UAMaxDistances::SMALL
const float SMALL
Определения
ActionConstants.c:111
UAMaxDistances
Определения
ActionConstants.c:110
UATimeSpent::PUSH_CAR
const float PUSH_CAR
Определения
ActionConstants.c:72
UATimeSpent
Определения
ActionConstants.c:28
float
Определения
EnConvert.c:97
vector::Dot
static float Dot(vector v1, vector v2)
Returns Dot product of vector v1 and vector v2.
Определения
EnConvert.c:271
vector
Определения
EnConvert.c:106
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Определения
dayzplayer.c:602
Math::RandomFloat
static proto float RandomFloat(float min, float max)
Returns a random float number between and min[inclusive] and max[exclusive].
dBodyApplyImpulseAt
proto void dBodyApplyImpulseAt(notnull IEntity body, vector impulse, vector pos)
Applies impuls on a pos position in world coordinates.
dBodyGetMass
proto native float dBodyGetMass(notnull IEntity ent)
Ishodniki
scripts
4_World
Classes
UserActionsComponent
Actions
Continuous
ActionPushCar.c
Создано системой
1.13.2