private static void HandleAction(_DTO_frame_info dto) { int count = dto.actions.Length; for (int i = 0; i < count; i++) { _DTO_action_info action = dto.actions[i]; if (action.sender == CPlayer.instance.rid) { SyncEvent.HandleFrameAction(); } FrameActionType type = ( FrameActionType )action.type; switch (type) { case FrameActionType.Move: { lBattle.HandleBeginMove(action.sender, new FVec3(action.x, action.y, action.z)); } break; case FrameActionType.UseItem: { lBattle.HandleUseItem(action.sender); } break; } } }
private void HandleAction(_DTO_frame_info dto) { //int count = dto.actions.Length; //for ( int i = 0; i < count; i++ ) //{ // _DTO_action_info action = dto.actions[i]; //} }
public void HandleAction(_DTO_frame_info dto) { int count = dto.actions.Length; for (int i = 0; i < count; i++) { this._actions.Push(dto.actions[i]); } }
private static void HandleAction(_DTO_frame_info dto) { int count = dto.actions.Length; for (int i = 0; i < count; i++) { _DTO_action_info action = dto.actions[i]; if (action.sender == VPlayer.instance.rid) { SyncEvent.HandleFrameAction(); } FrameActionType type = ( FrameActionType )action.type; switch (type) { case FrameActionType.Idle: break; case FrameActionType.Move: { lBattle.HandleMove(action.sender, new Vec3(action.x, action.y, action.z)); } break; case FrameActionType.Track: { lBattle.HandleTrack(action.sender, action.target); } break; case FrameActionType.UseSkill: { Vector3 targetPoint = new Vector3(action.x, action.y, action.z); lBattle.HandleUseSkill(action.sid, action.src, action.target, targetPoint.ToVec3()); } break; case FrameActionType.Relive: { lBattle.HandleRelive(action.sender); break; } case FrameActionType.UpgradeSkill: { lBattle.HandleUpgradeSkill(action.sender, action.target); break; } } } }
public PResult HandleAction(string userId, _DTO_frame_info dto) { StepLocker stepLocker = this.GetFromUserId(userId); if (stepLocker == null) { return(PResult.STEPLOCKER_NOT_FOUND); } stepLocker.HandleAction(dto); return(PResult.SUCCESS); }
private static void UpdateLogic(float rdt, float fdt) { _elapsed += rdt; //如果本地frame比服务端慢,则需要快速步进追赶服务端帧数 SERVER_KEYFRAMES.Switch(); while (!SERVER_KEYFRAMES.isEmpty) { _DTO_frame_info dto = SERVER_KEYFRAMES.Pop(); int length = dto.frameId - lBattle.frame; while (length >= 0) { if (length == 0) { HandleAction(dto); } else { lBattle.Simulate(_elapsed, fdt); _elapsed = 0f; } --length; } _nextKeyFrame = dto.frameId + _framesPerKeyFrame; } if (lBattle.frame < _nextKeyFrame) { _elapsedSinceLastLogicUpdate += rdt; while (_elapsedSinceLastLogicUpdate >= fdt) { if (lBattle.frame >= _nextKeyFrame) { break; } lBattle.Simulate(_elapsed, fdt); if (lBattle.frame == _nextKeyFrame) { _sendActionFrame = lBattle.frame; _shouldSendActions = true; } _elapsed = 0f; _elapsedSinceLastLogicUpdate -= fdt; } } }
public void Update(long dt) { //如果本地frame比服务端慢,则需要快速步进追赶服务端帧数 SERVER_KEYFRAMES.Switch(); while (!SERVER_KEYFRAMES.isEmpty) { _DTO_frame_info dto = SERVER_KEYFRAMES.Pop(); int length = dto.frameId - this.frame; while (length >= 0) { if (length == 0) { this.HandleAction(dto); } else { this.Simulate(this._msPerFrame); } --length; } this._nextKeyFrame = dto.frameId + this._framesPerKeyFrame; } if (this.frame < this._nextKeyFrame) { this._lastElapsed += dt; while (this._lastElapsed >= this._msPerFrame) { if (this.frame >= this._nextKeyFrame) { break; } this.Simulate(this._msPerFrame); if (this.frame == this._nextKeyFrame) { this.transmitter.SendAll(LVProtoMgr._PACKET_BATTLE_KEYFRAME(this.frame)); } this._lastElapsed -= this._msPerFrame; } } }
private void HandleAction(IUserToken token, _DTO_frame_info dto) { User user = this._userBiz.GetUser(token); if (user == null) { return; } if (!this._battleBiz.UserInBattle(user.id)) { return; } PResult result = this._battleBiz.HandleAction(user.id, dto); if (result != PResult.SUCCESS) { this.Reply(token, Module.BATTLE, Command.QCMD_ACTION, result); } }
public void ProcessServerKeyFrame(_DTO_frame_info dto) { SERVER_KEYFRAMES.Push(dto); }