void ReceviceSyncEntity(SyncEntityMsg msg, params object[] objs)
    {
        //Debug.Log("ReceviceSyncEntity frame " + msg.frame);

        //SyncDebugSystem.LogAndDebug("ReceviceSyncEntity frame " + msg.frame);

        if (m_world.IsStart)
        {
            ServerCacheComponent rc = m_world.GetSingletonComp <ServerCacheComponent>();

            ServiceMessageInfo info = new ServiceMessageInfo();
            info.m_frame = msg.frame;
            info.m_type  = MessageType.SyncEntity;
            info.m_msg   = msg;

            //TODO 服务器缓存 未清除
            rc.m_messageList.Add(info);

            Recalc(msg.frame);
            clearReson = "ReceviceSyncEntity";
        }
        else
        {
            ExecuteSyncEntity(msg);
        }
    }
    void ExecuteMessgae(ServiceMessageInfo info)
    {
        switch (info.m_type)
        {
        case MessageType.ChangeSingletonComponent:
            ExecuteChangeSingletonCompMsg((ChangeSingletonComponentMsg)info.m_msg);
            break;

        case MessageType.SyncEntity:
            ExecuteSyncEntity((SyncEntityMsg)info.m_msg);
            break;
        }
    }
Ejemplo n.º 3
0
    void ReceviceDestroyEntityMsg(DestroyEntityMsg msg, params object[] objs)
    {
        Debug.Log("ReceviceDestroyEntityMsg");

        ServerCacheComponent rc = m_world.GetSingletonComp <ServerCacheComponent>();

        ServiceMessageInfo info = new ServiceMessageInfo();

        info.m_frame = msg.frame;
        info.m_type  = MessageType.DestroyEntity;
        info.m_msg   = msg;

        rc.m_messageList.Add(info);

        Recalc(msg.frame);
    }
Ejemplo n.º 4
0
    void ReceviceChangeSingletonCompMsg(ChangeSingletonComponentMsg msg, params object[] objs)
    {
        Debug.Log("ChangeSingletonCompMsg");

        RecordComponent rc = m_world.GetSingletonComp <RecordComponent>();

        ServiceMessageInfo info = new ServiceMessageInfo();

        info.m_frame = msg.frame;
        info.m_type  = MessageType.ChangeSingletonComponent;
        info.m_msg   = msg;

        rc.m_messageList.Add(info);

        Recalc(msg.frame);
    }
Ejemplo n.º 5
0
    void ReceviceSyncEntity(SyncEntityMsg msg, params object[] objs)
    {
        Debug.Log("ReceviceSyncEntity");

        RecordComponent rc = m_world.GetSingletonComp <RecordComponent>();

        ServiceMessageInfo info = new ServiceMessageInfo();

        info.m_frame = msg.frame;
        info.m_type  = MessageType.SyncEntity;
        info.m_msg   = msg;

        rc.m_messageList.Add(info);

        Recalc(msg.frame);
    }
    void ReceviceSyncEntity(SyncEntityMsg msg, params object[] objs)
    {
        //Debug.Log("ReceviceSyncEntity frame " + msg.frame);
        //SyncDebugSystem.LogAndDebug("ReceviceSyncEntity frame " + msg.frame);

        if (m_world.IsStart)
        {
            ServerCacheComponent rc = m_world.GetSingletonComp <ServerCacheComponent>();

            ServiceMessageInfo info = new ServiceMessageInfo();
            info.m_frame = msg.frame;
            info.m_type  = MessageType.SyncEntity;
            info.m_msg   = msg;

            //TODO 服务器缓存 未清除,并且这里可能有问题,导致主动复活出错,原因应该是实体同步指令未执行,因为帧数已错过
            rc.m_messageList.Add(info);

            Recalc();
        }
        else
        {
            //List<int> idList = new List<int>();

            ////删除多余的实体
            //for (int i = 0; i < msg.infos.Count; i++)
            //{
            //    idList.Add(msg.infos[i].id);
            //}

            //for (int i = 0; i < m_world.m_entityList.Count; i++)
            //{
            //    if(!idList.Contains( m_world.m_entityList[i].ID))
            //    {
            //        m_world.DestroyEntityImmediately(m_world.m_entityList[i].ID);
            //    }
            //}

            ExecuteSyncEntity(msg);
        }
    }
Ejemplo n.º 7
0
    void ReceviceChangeSingletonCompMsg(ChangeSingletonComponentMsg msg, params object[] objs)
    {
        Debug.Log("ChangeSingletonCompMsg");

        if (m_world.IsStart)
        {
            ServerCacheComponent rc = m_world.GetSingletonComp <ServerCacheComponent>();

            ServiceMessageInfo info = new ServiceMessageInfo();
            info.m_frame = msg.frame;
            info.m_type  = MessageType.ChangeSingletonComponent;
            info.m_msg   = msg;

            rc.m_messageList.Add(info);

            Recalc(msg.frame);
        }
        else
        {
            ExecuteChangeSingletonCompMsg(msg);
        }
    }