internal static void Execute(object msg, User user) { Msg_CRC_MoveMeetObstacle obstacle_msg = msg as Msg_CRC_MoveMeetObstacle; if (null == obstacle_msg) { return; } UserInfo userInfo = user.Info; if (userInfo != null) { MovementStateInfo msi = userInfo.GetMovementStateInfo(); userInfo.GetMovementStateInfo().IsMoveMeetObstacle = true; if (!msi.IsSkillMoving) { float x = obstacle_msg.cur_pos_x; float z = obstacle_msg.cur_pos_z; float velocity = (float)user.Info.GetActualProperty().MoveSpeed; if (!user.VerifyPosition(x, z, velocity, obstacle_msg.send_time, 4.0f)) { //todo:记录违规次数 } msi.SetPosition2D(x, z); user.SampleMoveData(obstacle_msg.cur_pos_x, obstacle_msg.cur_pos_z, velocity, msi.MoveDirCosAngle, msi.MoveDirSinAngle, obstacle_msg.send_time); } //LogSys.Log(LOG_TYPE.DEBUG, "MoveMeetObstacleHandler User:{0} isskillmoving:{1} ismovemeetobstacle:{2} time:{3} client time:{4}", user.RoleId, msi.IsSkillMoving, msi.IsMoveMeetObstacle, TimeUtility.GetServerMilliseconds(), obstacle_msg.send_time); } }
internal static void Execute(object msg, NetConnection conn, NetworkSystem networkSystem) { Msg_CRC_MoveMeetObstacle obstacle_msg = msg as Msg_CRC_MoveMeetObstacle; if (null == obstacle_msg) { return; } }
internal static void Execute(object msg, RoomPeer peer) { Msg_CRC_MoveMeetObstacle obstacle_msg = msg as Msg_CRC_MoveMeetObstacle; if (null == obstacle_msg) { return; } obstacle_msg.role_id = peer.RoleId; peer.BroadCastMsgToRoom(obstacle_msg); }