Пример #1
0
    internal static void Execute(object msg, NetConnection conn, NetworkSystem networkSystem)
    {
        Msg_CRC_GfxControlMoveStart _msg = msg as Msg_CRC_GfxControlMoveStart;

        if (null == _msg)
        {
            return;
        }
    }
Пример #2
0
    internal static void Execute(object msg, RoomPeer peer)
    {
        Msg_CRC_GfxControlMoveStart _msg = msg as Msg_CRC_GfxControlMoveStart;

        if (null == _msg)
        {
            return;
        }
        peer.BroadCastMsgToRoom(_msg);
    }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
                    }
                }
            }
        }