DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
SmptAnimMeta.c
См. документацию.
6
8{
17
19 {
20 }
21
23 {
24 m_Manager = manager;
25 m_Player = player;
26 }
27
28 bool IsPlaying()
29 {
30 return m_IsPlaying;
31 }
32
34 {
35 return m_DestroyRequested;
36 }
37
39 {
40 m_DestroyRequested = true;
41 SymptomBase Symptom = m_Manager.GetCurrentPrimaryActiveSymptom();
42
43 if( type == eAnimFinishType.FAILURE)// <--------------- FAILED
44 {
45 if( m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_SERVER || !GetGame().IsMultiplayer())
46 {
47 if( Symptom )
48 {
49 Symptom.AnimationPlayFailed();
50 }
51 }
52 }
53 else if( type == eAnimFinishType.SUCCESS)// <--------------- SUCCESS
54 {
55 if( m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_SERVER || !GetGame().IsMultiplayer())
56 {
57 if( Symptom )
58 {
59 Symptom.AnimationFinish();
60 }
61 }
62 }
63 }
64
66 {
67 EAnimPlayState played = Play();
68
69 if(played == EAnimPlayState.FAILED)
70 {
71 m_Manager.OnAnimationFinished(eAnimFinishType.FAILURE);
72 }
73 return played;
74 }
75
76 protected EAnimPlayState Play();
77
78 void Update(HumanMovementState movement_state);
79
80};
81
82class SmptAnimMetaFB extends SmptAnimMetaBase
83{
86
88 {
89 if(m_Player)
90 m_Player.m_isFBsymptomPlaying = false;
91 }
92
93 override void Init(ParamsReadContext ctx, SymptomManager manager, PlayerBase player)
94 {
95 super.Init(ctx, manager, player);
97 }
98
100 {
101 m_Canceled = false;
102
103 HumanCommandActionCallback callback = m_Player.GetCommand_Action();
104
105 if (!callback)
106 {
107 callback = m_Player.GetCommandModifier_Action();
108 }
109 if( callback )
110 {
111 callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
112 m_Canceled = true;
113 }
114
115 if(!m_Canceled)
116 {
117 SymptomCB anim_callback = SymptomCB.Cast(m_Player.StartCommand_Action(m_AnimID, SymptomCB, m_StanceMask));
118
119 if(anim_callback)
120 {
121 anim_callback.Init(m_Duration, m_Player);
122 m_IsPlaying = true;
123 m_Player.m_isFBsymptomPlaying = true;
124 return EAnimPlayState.OK;
125 }
126 else
127 {
128 return EAnimPlayState.FAILED;
129 }
130 }
131 return EAnimPlayState.POSTPONED;
132 }
133}
134
136{
138 override void Init(ParamsReadContext ctx, SymptomManager manager, PlayerBase player)
139 {
140 super.Init(ctx, manager, player);
142 }
143
145 {
146 HumanCommandActionCallback callback = m_Player.GetCommand_Action();
147 if (!callback)
148 {
149 callback = m_Player.GetCommandModifier_Action();
150 }
151 if( !callback )
152 {
153 HumanCommandWeapons hcw = m_Player.GetCommandModifier_Weapons();
154 if (hcw && !hcw.IsActionFinished())
155 return EAnimPlayState.FAILED;
156
157 HumanCommandAdditives ad = m_Player.GetCommandModifier_Additives();
158 if(ad)
159 {
160 //Print("------------------ Playing -----------------");
161 ad.StartModifier(m_AnimID);
162 m_IsPlaying = true;
163
164 return EAnimPlayState.OK;
165 }
166 }
167 return EAnimPlayState.FAILED;
168 }
169
170 override void Update(HumanMovementState movement_state)
171 {
172 if( m_IsPlaying )
173 {
174 HumanCommandAdditives ad = m_Player.GetCommandModifier_Additives();
175 if(!ad || !ad.IsModifierActive())
176 {
177 //Print("------------------ Not Playing -----------------");
178 m_Manager.OnAnimationFinished();
179 }
180 else
181 {
183 {
184 m_Manager.OnAnimationStarted();
185 m_CalledAnimStart = true;
186 }
187 }
188 }
189 }
190}
191
192
193class HeatComfortmMetaADD extends SmptAnimMetaADD
194{
195 override void Update(HumanMovementState movement_state)
196 {
197 //if( movement_state.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_WALK || movement_state.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_RUN || movement_state.m_iMovement == DayZPlayerConstants.MOVEMENTIDX_SPRINT)
198 if( movement_state.m_iMovement != DayZPlayerConstants.MOVEMENTIDX_IDLE || movement_state.IsInProne())
199 {
200 HumanCommandAdditives ad = m_Player.GetCommandModifier_Additives();
201 if(ad && ad.IsModifierActive())
202 {
203 ad.CancelModifier();
204 }
205 }
206
207 super.Update(movement_state);
208 }
209}
@ SUCCESS
Определения Inventory.c:33
override Widget Init()
Определения DayZGame.c:127
bool m_IsPlaying
Whether the Effect is currently playing.
Определения Effect.c:37
DayZPlayer m_Player
Определения Hand_Events.c:42
ModifiersManager m_Manager
Определения ModifierBase.c:11
EAnimPlayState PlayRequest()
Определения SmptAnimMeta.c:65
bool m_DestroyRequested
Определения SmptAnimMeta.c:15
class SmptAnimMetaFB extends SmptAnimMetaBase m_CalledAnimStart
int m_SymptomType
Определения SmptAnimMeta.c:13
int m_AnimID
Определения SmptAnimMeta.c:12
PlayerBase m_Player
Определения SmptAnimMeta.c:11
bool IsDestroyReqested()
Определения SmptAnimMeta.c:33
enum eAnimFinishType m_IsPlaying
bool m_Canceled
Определения SmptAnimMeta.c:16
bool IsPlaying()
Определения SmptAnimMeta.c:28
int m_StateType
Определения SmptAnimMeta.c:14
void SmptAnimMetaBase()
Определения SmptAnimMeta.c:18
void AnimFinished(eAnimFinishType type)
Определения SmptAnimMeta.c:38
eAnimFinishType
Определения SmptAnimMeta.c:2
@ FAILURE
Определения SmptAnimMeta.c:4
EAnimPlayState
Определения StateManager.c:38
static bool ReadPlayerSymptomADDParams(ParamsReadContext pCtx, out int type)
Определения DayZPlayerSyncJunctures.c:221
static bool ReadPlayerSymptomFBParams(ParamsReadContext pCtx, out DayZPlayerConstants anim_id, out int stance_mask, out float duration)
Определения DayZPlayerSyncJunctures.c:246
proto native bool IsActionFinished()
Определения human.c:994
int m_iMovement
current stance (DayZPlayerConstants.STANCEIDX_ERECT, ...), only if the command has a stance
Определения human.c:1142
bool IsInProne()
Определения human.c:1160
Определения human.c:1139
Определения PlayerBaseClient.c:2
override void Update(HumanMovementState movement_state)
Определения SmptAnimMeta.c:195
Определения SmptAnimMeta.c:194
override EAnimPlayState Play()
Определения SmptAnimMeta.c:99
int m_StanceMask
Определения SmptAnimMeta.c:84
float m_Duration
Определения SmptAnimMeta.c:85
void ~SmptAnimMetaFB()
Определения SmptAnimMeta.c:87
override void Init(ParamsReadContext ctx, SymptomManager manager, PlayerBase player)
Определения SmptAnimMeta.c:93
Определения SmptAnimMeta.c:83
void AnimationFinish()
gets called upon animation Symptom exit
Определения StateBase.c:320
void AnimationPlayFailed()
Определения StateBase.c:327
Определения StateBase.c:2
Определения StateManager.c:48
DayZPlayerInstanceType
defined in C++
Определения dayzplayer.c:1068
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
EAnimPlayState Play()
Определения SmptAnimMeta.c:144
proto native volatile void Update()
Определения PlayerSoundManager.c:125
class HumanCommandWeapons HumanCommandAdditives()
Определения human.c:1112