DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ Update()

override void ActionManagerServer::Update ( int pCurrentCommandID)
inlineprotected

См. определение в файле ActionManagerServer.c строка 233

234 {
235 super.Update(pCurrentCommandID);
236 int currentCommandID = m_Player.GetCurrentCommandID();
237
238 //Debug.Log("m_ActionWantEnd " + m_ActionInputWantEnd);
239
240 if (m_PendingAction)
241 {
243 {
244#ifdef ENABLE_LOGGING
245 if ( LogManager.IsActionLogEnable() )
246 {
247 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " m_PendingAction && m_CurrentActionData", this.ToString() , "n/a", "Update", m_Player.ToString() );
248 }
249#endif
250 DayZPlayerSyncJunctures.SendActionAcknowledgment(m_Player, m_PendingActionAcknowledgmentID, false);
251 }
252 else
253 {
255 m_ActionInputWantEnd = false;
256
257 bool success = true;
258 ActionTarget target = new ActionTarget(null, null, -1, vector.Zero, 0);
259#ifdef ENABLE_LOGGING
260 if ( LogManager.IsActionLogEnable() )
261 {
262 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp(), m_PendingAction.ToString() , "n/a", "HandlePendingAction", m_Player.ToString() );
263 }
264#endif
265 if (!m_PendingAction.SetupAction(m_Player,target,m_Player.GetItemInHands(),m_CurrentActionData))
266 {
267 success = false;
268 }
269 //Debug.Log("[AM] Action data synced (" + m_Player + ") success: " + success);
270
271 if (success)
272 {
274 }
275 else
276 {
277 if (m_PendingAction.UseAcknowledgment())
278 {
279 DayZPlayerSyncJunctures.SendActionAcknowledgment(m_Player, m_PendingActionAcknowledgmentID, false);
280 }
281 else
282 {
284 }
285 }
286 }
287
288 m_PendingAction = null;
290 }
291
293 {
295 {
297 }
298
299 //Debug.Log("m_CurrentActionData.m_State: " + m_CurrentActionData.m_State +" m_ActionWantEnd: " + m_ActionWantEndRequest );
301 {
302 case UA_AM_PENDING:
303 break;
304
305 case UA_AM_ACCEPTED:
306 // check currentCommandID before start or reject
307#ifdef ENABLE_LOGGING
308 if ( LogManager.IsActionLogEnable() )
309 {
310 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " UA_AM_ACCEPTED", this.ToString() , "n/a", "Update", m_Player.ToString() );
311 }
312#endif
313 int condition_mask = ActionBase.ComputeConditionMask(m_Player, m_CurrentActionData.m_Target, m_CurrentActionData.m_MainItem);
314 bool canActionPerform = ((condition_mask & m_CurrentActionData.m_Action.m_ConditionMask) == condition_mask);
315 if (canActionPerform && ActionPossibilityCheck(currentCommandID))
316 {
319
321 OnActionEnd();
322 }
323 else
324 {
326 }
328 break;
329
330 case UA_AM_REJECTED:
331#ifdef ENABLE_LOGGING
332 if ( LogManager.IsActionLogEnable() )
333 {
334 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " UA_AM_REJECTED", this.ToString() , "n/a", "Update", m_Player.ToString() );
335 }
336#endif
337 OnActionEnd();
339 break;
340
341 default:
343 {
344#ifdef ENABLE_LOGGING
345 if ( LogManager.IsActionLogEnable() )
346 {
347 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " m_ActionInputWantEnd", this.ToString() , "n/a", "Update", m_Player.ToString() );
348 }
349#endif
350 m_ActionInputWantEnd = false;
352 }
353
355 {
356#ifdef ENABLE_LOGGING
357 if ( LogManager.IsActionLogEnable() )
358 {
359 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " m_ActionWantEndRequest", this.ToString() , "n/a", "Update", m_Player.ToString() );
360 }
361#endif
364 }
365 break;
366 }
367 }
368 }
void ActionBase()
Определения ActionBase.c:82
ref ActionData m_CurrentActionData
Определения ActionManagerBase.c:61
bool m_ActionInputWantEnd
Определения ActionManagerBase.c:53
bool ActionPossibilityCheck(int pCurrentCommandID)
Определения ActionManagerBase.c:262
int m_PendingActionAcknowledgmentID
Определения ActionManagerBase.c:59
bool m_ActionWantEndRequest
Определения ActionManagerBase.c:52
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
string Debug()
Определения CachedEquipmentStorageBase.c:26
DayZPlayer m_Player
Определения Hand_Events.c:42
ref ActionTarget m_Target
Определения ActionBase.c:39
int m_State
Определения ActionBase.c:38
ItemBase m_MainItem
Определения ActionBase.c:35
ref ActionBase m_Action
Определения ActionBase.c:34
ref ActionReciveData m_PendingActionReciveData
Определения ActionManagerServer.c:4
override void RequestInterruptAction()
server requests action interrupt
Определения ActionManagerServer.c:371
override void StartDeliveredAction()
Определения ActionManagerServer.c:139
override void OnActionEnd()
Определения ActionManagerServer.c:215
ActionBase m_PendingAction
Определения ActionManagerServer.c:3
const int UA_START
Определения 3_Game/DayZ/constants.c:501
const int UA_AM_ACCEPTED
Определения 3_Game/DayZ/constants.c:510
const int UA_AM_REJECTED
Определения 3_Game/DayZ/constants.c:511
const int UA_AM_PENDING
Определения 3_Game/DayZ/constants.c:509

Перекрестные ссылки ActionBase(), Debug::ActionLog(), ActionPossibilityCheck(), ActionTarget(), LogManager::IsActionLogEnable(), m_ActionInputWantEnd, m_ActionWantEndRequest, m_CurrentActionData, m_PendingAction, m_PendingActionAcknowledgmentID, m_PendingActionReciveData, m_Player, OnActionEnd(), RequestInterruptAction(), DayZPlayerSyncJunctures::SendActionAcknowledgment(), StartDeliveredAction(), UA_AM_ACCEPTED, UA_AM_PENDING, UA_AM_REJECTED, UA_START и vector::Zero.