Beispiel #1
0
    private void GetDefaultRotateInfo(int _nCamp, out int _nAngle, out int _nXOffset, out int _nYOffset)
    {
        // 获取小地图信息
        SMinimapInfo sInfo = new SMinimapInfo();

        if (GameLogicAPI.getMinimapInfo(this.mMapID, ref sInfo) == false)
        {
            _nAngle = _nXOffset = _nYOffset = 0;
            return;
        }

        string[] strRotation = ((string)(sInfo.szDefaultRotation)).Split(';');
        for (int idx = 0; idx + 1 < strRotation.Length; idx = idx + 4)
        {
            int nCamp = Convert.ToInt32(strRotation[idx]);
            if (_nCamp == nCamp)
            {
                _nAngle   = Convert.ToInt32(strRotation[idx + 1]);
                _nXOffset = Convert.ToInt32(strRotation[idx + 2]);
                _nYOffset = Convert.ToInt32(strRotation[idx + 3]);
                return;
            }
        }
        _nAngle = _nXOffset = _nYOffset = 0;
        return;
    }
Beispiel #2
0
    static public bool getMinimapInfo(int nMapID, ref SMinimapInfo data)
    {
        IntPtr ptr = _getMinimapInfo(nMapID);

        if ((int)ptr == 0)
        {
            Trace.LogError("getMinimapInfo(" + nMapID + "), failed");
            return(false);
        }

        data = IntPtrHelper.toData <SMinimapInfo>(ptr);

        return(true);
    }
Beispiel #3
0
    public void Init(int nMapID)
    {
        mMapID = nMapID;
        // 获取小地图信息
        SMinimapInfo sInfo = new SMinimapInfo();

        if (GameLogicAPI.getMinimapInfo(this.mMapID, ref sInfo) == false)
        {
            Trace.LogError("OnRegisterMinimap failed, !GameLogicAPI.getMinimapInfo");
            return;
        }

        // AS初始化小地图--优先级最高

        MyInvokeQ._Invoke("MinimapInit", sInfo.szDarkBg, sInfo.szLightBg, sInfo.szBaseMap, sInfo.fLeft, sInfo.fRight,
                          sInfo.fTop, sInfo.fBottom);

        SceneRect = new Rect(sInfo.fLeft, sInfo.fTop, Math.Abs(sInfo.fRight - sInfo.fLeft), Math.Abs(sInfo.fBottom - sInfo.fTop));

        // 创建静态打点
        SMinimapStaticIcon staticIcon = new SMinimapStaticIcon();
        int nFromIndex = -1;

        while (GameLogicAPI.getNextMinimapStaticIcon(this.mMapID, nFromIndex, ref staticIcon) == true)
        {
            if (staticIcon.nAutoCreate != 0)
            {
                CreateStaticObj(staticIcon.nIndex);
            }
            nFromIndex = staticIcon.nIndex;
        }

        // 旋转小地图
        if (this.mMapID != -1 && this.mainHeroCamp != -1)
        {
            int nDefalutAngel, nXOffset, nYOffset = 0;
            GetDefaultRotateInfo(mainHeroCamp, out nDefalutAngel, out nXOffset, out nYOffset);
            MyInvokeQ._Invoke("RotateMinimap", nDefalutAngel, nXOffset, nYOffset);
        }
    }
Beispiel #4
0
    private int GetGodEyeRotateAngle(int nCamp)
    {
        // 获取小地图信息
        SMinimapInfo sInfo = new SMinimapInfo();

        if (GameLogicAPI.getMinimapInfo(this.mMapID, ref sInfo) == false)
        {
            return(0);
        }

        string[] strRotation = ((string)(sInfo.szDefaultRotation)).Split(';');
        for (int idx = 0; idx + 1 < strRotation.Length; idx = idx + 4)
        {
            int _nCamp = Convert.ToInt32(strRotation[idx]);
            if (_nCamp == nCamp)
            {
                return(Convert.ToInt32(strRotation[idx + 1]) + sInfo.nOriRotation);
            }
        }

        return(0);
    }
        protected bool GetSceneAngleY(ref float result)
        {
            SMinimapInfo m_sCurMinimapInfo = new SMinimapInfo();
            int          nAngle            = 270;

            if (GameLogicAPI.getMinimapInfo(SceneManager.Instance.m_curMapID, ref m_sCurMinimapInfo))
            {
                string[] strRotation = ((string)(m_sCurMinimapInfo.szDefaultRotation)).Split(';');
                for (int idx = 0; idx + 1 < strRotation.Length; idx = idx + 4)
                {
                    int nCamp = Convert.ToInt32(strRotation[idx]);
                    if (EntityFactory.MainHeroView.createinfo.byCamp == nCamp)
                    {
                        nAngle = Convert.ToInt32(strRotation[idx + 1]) + (360 - m_sCurMinimapInfo.nOriRotation);
                        break;
                    }
                }
                Vector3 godDir = new Vector3(0, 0, -1);
                result = (float)nAngle;
                return(true);
            }
            return(false);
        }