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

◆ Update()

override void ActionManagerServer::Update ( int pCurrentCommandID)
inlineprotected

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

197 {
198 super.Update(pCurrentCommandID);
199 int currentCommandID = m_Player.GetCurrentCommandID();
200
201 //Debug.Log("m_ActionWantEnd " + m_ActionInputWantEnd);
202
203 if (m_PendingAction)
204 {
206 {
207 DayZPlayerSyncJunctures.SendActionAcknowledgment(m_Player, m_PendingActionAcknowledgmentID, false);
208 }
209 else
210 {
212 m_ActionInputWantEnd = false;
213
214 bool success = true;
215 ActionTarget target = new ActionTarget(null, null, -1, vector.Zero, 0);
216
217 if ( LogManager.IsActionLogEnable() )
218 {
219 Debug.ActionLog("n/a", m_PendingAction.ToString() , "n/a", "HandlePendingAction", m_Player.ToString() );
220 }
221
222 if (!m_PendingAction.SetupAction(m_Player,target,m_Player.GetItemInHands(),m_CurrentActionData))
223 {
224 success = false;
225 }
226 //Debug.Log("[AM] Action data synced (" + m_Player + ") success: " + success);
227
228 if (success)
229 {
231 }
232 else
233 {
234 if (m_PendingAction.UseAcknowledgment())
235 {
236 DayZPlayerSyncJunctures.SendActionAcknowledgment(m_Player, m_PendingActionAcknowledgmentID, false);
237 }
238 else
239 {
241 }
242 }
243 }
244
245 m_PendingAction = null;
247 }
248
250 {
252 {
253 m_CurrentActionData.m_Action.OnUpdateServer(m_CurrentActionData);
254 }
255
256 //Debug.Log("m_CurrentActionData.m_State: " + m_CurrentActionData.m_State +" m_ActionWantEnd: " + m_ActionWantEndRequest );
257 switch (m_CurrentActionData.m_State)
258 {
259 case UA_AM_PENDING:
260 break;
261
262 case UA_AM_ACCEPTED:
263 // check currentCommandID before start or reject
264
265 int condition_mask = ActionBase.ComputeConditionMask(m_Player, m_CurrentActionData.m_Target, m_CurrentActionData.m_MainItem);
266 bool canActionPerform = ((condition_mask & m_CurrentActionData.m_Action.m_ConditionMask) == condition_mask);
267 if (canActionPerform && ActionPossibilityCheck(currentCommandID))
268 {
271
272 if (m_CurrentActionData.m_Action && m_CurrentActionData.m_Action.IsInstant())
273 OnActionEnd();
274 }
275 else
276 {
278 }
280 break;
281
282 case UA_AM_REJECTED:
283 OnActionEnd();
285 break;
286
287 default:
289 {
290 m_ActionInputWantEnd = false;
291 m_CurrentActionData.m_Action.EndInput(m_CurrentActionData);
292 }
293
295 {
297 m_CurrentActionData.m_Action.EndRequest(m_CurrentActionData);
298 }
299 break;
300 }
301 }
302 }
ref ActionData m_CurrentActionData
Определения ActionManagerBase.c:61
bool m_ActionInputWantEnd
Определения ActionManagerBase.c:53
bool ActionPossibilityCheck(int pCurrentCommandID)
Определения ActionManagerBase.c:244
int m_PendingActionAcknowledgmentID
Определения ActionManagerBase.c:59
bool m_ActionWantEndRequest
Определения ActionManagerBase.c:52
class ActionTargets ActionTarget
DayZPlayer m_Player
Определения Hand_Events.c:42
void Debug()
Определения UniversalTemperatureSource.c:349
ref ActionReciveData m_PendingActionReciveData
Определения ActionManagerServer.c:4
override void RequestInterruptAction()
server requests action interrupt
Определения ActionManagerServer.c:305
override void StartDeliveredAction()
Определения ActionManagerServer.c:115
override void OnActionEnd()
Определения ActionManagerServer.c:184
ActionBase m_PendingAction
Определения ActionManagerServer.c:3
const int UA_START
Определения constants.c:467
const int UA_AM_ACCEPTED
Определения constants.c:475
const int UA_AM_REJECTED
Определения constants.c:476
const int UA_AM_PENDING
Определения constants.c:474

Перекрестные ссылки Debug::ActionLog(), ActionPossibilityCheck(), ActionTarget, ActionBase::ComputeConditionMask(), 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.