internal static void Execute(object msg, NetConnection conn, NetworkSystem networkSystem) { Msg_CRC_GfxControlMoveStart _msg = msg as Msg_CRC_GfxControlMoveStart; if (null == _msg) { return; } }
internal static void Execute(object msg, RoomPeer peer) { Msg_CRC_GfxControlMoveStart _msg = msg as Msg_CRC_GfxControlMoveStart; if (null == _msg) { return; } peer.BroadCastMsgToRoom(_msg); }
internal void SyncGfxMoveControlStart(int objId, float x, float z, int id, bool isSkill) { Msg_CRC_GfxControlMoveStart msg = new Msg_CRC_GfxControlMoveStart(); msg.obj_id = objId; msg.skill_or_impact_id = id; msg.is_skill = isSkill; msg.cur_pos = new ArkCrossEngineMessage.Position(); msg.cur_pos.x = x; msg.cur_pos.z = z; msg.send_time = TimeUtility.GetServerMilliseconds(); SendMessage(msg); }
internal void SyncGfxMoveControlStart(CharacterInfo obj, int id, bool isSkill) { MovementStateInfo msi = obj.GetMovementStateInfo(); Msg_CRC_GfxControlMoveStart msg = new Msg_CRC_GfxControlMoveStart(); msg.obj_id = obj.GetId(); msg.skill_or_impact_id = id; msg.is_skill = isSkill; msg.cur_pos = new ArkCrossEngineMessage.Position(); msg.cur_pos.x = msi.PositionX; msg.cur_pos.z = msi.PositionZ; msg.send_time = TimeUtility.GetServerMilliseconds(); SendMessage(msg); }
internal static void Execute(object msg, User user) { Msg_CRC_GfxControlMoveStart _msg = msg as Msg_CRC_GfxControlMoveStart; if (_msg == null) { return; } Scene scene = user.OwnRoom.GetActiveScene(); if (null != scene) { CharacterInfo info = scene.SceneContext.GetCharacterInfoById(_msg.obj_id); if (null != info && (_msg.obj_id == user.RoleId || info.OwnerId == user.RoleId)) { bool enableControl = false; if (_msg.is_skill) { SkillInfo skillInfo = info.GetSkillStateInfo().GetSkillInfoById(_msg.skill_or_impact_id); if (null != skillInfo) { enableControl = true; } } else { /*ImpactInfo impactInfo = info.GetSkillStateInfo().GetImpactInfoForCheck(_msg.skill_or_impact_id); * if (null != impactInfo) {*/ enableControl = true; //} } if (enableControl) { MovementStateInfo msi = info.GetMovementStateInfo(); bool isSkillMoving = msi.IsSkillMoving; msi.IsSkillMoving = true; if (_msg.obj_id == user.RoleId) { if (!isSkillMoving) { float x = _msg.cur_pos.x; float z = _msg.cur_pos.z; float velocity = (float)user.Info.GetActualProperty().MoveSpeed; if (!user.VerifyPosition(x, z, velocity, _msg.send_time, 4.0f)) { //todo:记录违规次数 } msi.SetPosition2D(x, z); user.SampleMoveData(x, z, velocity, msi.MoveDirCosAngle, msi.MoveDirSinAngle, _msg.send_time); } } //LogSys.Log(LOG_TYPE.WARN, "Msg_CRC_GfxControlMoveStartHandler, charactor {0} skill_or_impact_id {1} isskill {2}", _msg.obj_id, _msg.skill_or_impact_id, _msg.is_skill); } else { LogSys.Log(LOG_TYPE.ERROR, "Msg_CRC_GfxControlMoveStartHandler, charactor {0} skill_or_impact_id {1} isskill {2}, skill or impact not found", _msg.obj_id, _msg.skill_or_impact_id, _msg.is_skill); } } else { if (null == info) { LogSys.Log(LOG_TYPE.ERROR, "Msg_CRC_GfxControlMoveStartHandler, charactor {0} not exist", _msg.obj_id); } else { LogSys.Log(LOG_TYPE.ERROR, "Msg_CRC_GfxControlMoveStartHandler, charactor {0} or owner {1} not user {2}", info.GetId(), info.OwnerId, user.RoleId); } } } }