Ejemplo n.º 1
0
    private void ApplyMaterial(Client.IPlayer pPlayer, uint uSuit)
    {
        table.SuitDataBase data = GameTableManager.Instance.GetTableItem <table.SuitDataBase>(uSuit);
        if (data == null)
        {
            return;
        }

        if (data.defaultMaterial == 0)
        {
            return;
        }


        table.ResourceDataBase res = GameTableManager.Instance.GetTableItem <table.ResourceDataBase>(data.defaultMaterial);
        if (res == null)
        {
            return;
        }


        if (res.strPath == "")
        {
            return;
        }


        Engine.IRenderObj renderObj = pPlayer.renderObj;
        if (renderObj != null)
        {
            renderObj.ApplyMaterial(res.strPath);
        }
    }
Ejemplo n.º 2
0
    //自己
    private void OnSceneLoadCompelete(int nEventId, object param)
    {
        Client.stLoadSceneComplete loadScene = (Client.stLoadSceneComplete)param;
        uint nMapID = (uint)loadScene.nMapID;

        m_nCurMapID = nMapID;
        table.MapDataBase mapDB = GameTableManager.Instance.GetTableItem <table.MapDataBase>(nMapID);
        if (mapDB == null)
        {
            return;
        }

        if (mapDB.dwMaterial == 0)
        {
            // 使用默认材质
            Client.IPlayer pPlayer = Client.ClientGlobal.Instance().MainPlayer;
            if (pPlayer != null)
            {
                // 时装id
                uint uSuit = 0;

                List <GameCmd.SuitData> lstSuit = null;
                pPlayer.GetSuit(out lstSuit);

                if (lstSuit.Count > 0)
                {
                    uSuit = lstSuit[0].baseid;
                    ApplyMaterial(pPlayer, uSuit);
                }
            }
        }
        else
        {
            table.ResourceDataBase res = GameTableManager.Instance.GetTableItem <table.ResourceDataBase>(mapDB.dwMaterial);
            if (res == null)
            {
                return;
            }

            if (res.strPath == "")
            {
                return;
            }

            Engine.IRenderObj renderObj = Client.ClientGlobal.Instance().MainPlayer.renderObj;
            if (renderObj != null)
            {
                renderObj.ApplyMaterial(res.strPath);
            }
        }
    }