Exemplo n.º 1
0
    public MonsterRole AddDartCar(Variant d)
    {
        this.init();
        bool        loading = GRMap.loading;
        MonsterRole result;

        if (loading)
        {
            this.cacheProxy.Add(d);
            result = null;
        }
        else
        {
            Vector3 pos  = new Vector3(d["x"] / 53.333f, 0f, d["y"] / 53.333f);
            int     num  = d["mid"];
            uint    num2 = d["iid"];
            bool    flag = this.m_mapMonster.ContainsKey(num2);
            if (flag)
            {
                this.RemoveMonster(num2);
            }
            SXML   sXML   = this.dMon[num];
            int    num3   = sXML.getInt("obj");
            float  @float = sXML.getFloat("scale");
            string empty  = string.Empty;
            bool   flag2  = num2 <= 0u;
            if (flag2)
            {
                bool flag3 = Globle.m_nTestMonsterID > 0;
                if (flag3)
                {
                    num3 = Globle.m_nTestMonsterID;
                }
            }
            MDC000 mDC = new MDC000();
            mDC.tempXMl = sXML;
            mDC.isBoos  = (sXML.getInt("boss") == 1);
            bool flag4 = @float > 0f;
            if (flag4)
            {
                mDC.scale = @float;
            }
            bool flag5 = mDC != null;
            if (flag5)
            {
                mDC.Init("monster/" + num3, EnumLayer.LM_MONSTER, pos, 0f);
                mDC.curhp       = d["hp"];
                mDC.maxHp       = d["battleAttrs"]["max_hp"];
                mDC.escort_name = d["escort_name"];
                PlayerNameUIMgr.getInstance().show(mDC);
                PlayerNameUIMgr.getInstance().setDartName(mDC, d["escort_name"] + "军团的镖车");
                mDC.roleName  = d["escort_name"] + "军团的镖车";
                mDC.monsterid = num;
                bool flag6 = mDC.roleName == ModelBase <A3_LegionModel> .getInstance().myLegion.name;

                if (flag6)
                {
                    mDC.m_isMarked = false;
                }
                bool flag7 = num2 > 0u;
                if (flag7)
                {
                    mDC.m_unIID = num2;
                    this.m_mapMonster.Add(num2, mDC);
                }
                else
                {
                    mDC.isfake  = true;
                    mDC.m_unIID = this.idIdx;
                    this.m_mapFakeMonster.Add(this.idIdx, mDC);
                    this.idIdx += 1u;
                }
                bool flag8 = !GRMap.loading;
                if (flag8)
                {
                    mDC.refreshViewType(2);
                }
                mDC.dartid = num;
                mDC.isDart = true;
            }
            this.m_listMonster.Add(mDC);
            bool flag9 = mDC != null;
            if (flag9)
            {
                base.dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, mDC, false));
            }
            bool flag10 = d.ContainsKey("moving");
            if (flag10)
            {
                uint        @uint          = d["iid"]._uint;
                MonsterRole monster        = MonsterMgr._inst.getMonster(@uint);
                float       float2         = d["moving"]["to_x"]._float;
                float       float3         = d["moving"]["to_y"]._float;
                Vector3     sourcePosition = new Vector3(float2 * 32f / 53.333f, 0f, float3 * 32f / 53.333f);
                NavMeshHit  navMeshHit;
                NavMesh.SamplePosition(sourcePosition, out navMeshHit, 100f, monster.m_layer);
                monster.SetDestPos(navMeshHit.position);
            }
            result = mDC;
        }
        return(result);
    }
Exemplo n.º 2
0
    public MonsterRole AddDartCar(Variant d)//镖车
    {
        init();
        if (GRMap.grmap_loading)
        {
            cacheProxy.Add(d);
            return(null);
        }
        Vector3 born_pt  = new Vector3(d["x"] / GameConstant.PIXEL_TRANS_UNITYPOS, 0f, d["y"] / GameConstant.PIXEL_TRANS_UNITYPOS);
        int     id       = d["mid"];
        uint    serverid = d["iid"];

        if (m_mapMonster.ContainsKey(serverid))
        {
            return(m_mapMonster[serverid]);
        }

        SXML   xml    = dMon[id];
        int    tempid = xml.getInt("obj");
        float  scale  = xml.getFloat("scale");
        string name   = string.Empty;

        if (serverid <= 0)
        {
            if (Globle.m_nTestMonsterID > 0)
            {
                tempid = Globle.m_nTestMonsterID;
            }
        }
        MDC000 mon = new MDC000();

        mon.tempXMl  = xml;
        mon.isBoos   = xml.getInt("boss") == 1;
        mon.isBoss_c = xml.getInt("boss_c") == 1;
        if (scale > 0f)
        {
            mon.scale = scale;
        }
        if (mon != null)
        {
            if (serverid > 0)
            {
                mon.m_unIID = serverid;
                m_mapMonster.Add(serverid, mon);//这个地图上的所有的monster
            }
            else
            {
                mon.isfake  = true;
                mon.m_unIID = idIdx;
                m_mapFakeMonster.Add(idIdx, mon);
                idIdx++;
            }

            mon.Init("monster_" + tempid, EnumLayer.LM_MONSTER, born_pt, 0);
            mon.curhp       = d["hp"];
            mon.maxHp       = d["battleAttrs"]["max_hp"];
            mon.escort_name = d["escort_name"];
            PlayerNameUIMgr.getInstance().show(mon);
            PlayerNameUIMgr.getInstance().setDartName(mon, d["escort_name"] + ContMgr.getCont("MonsterMgr1"));
            mon.roleName  = d["escort_name"] + ContMgr.getCont("MonsterMgr1");
            mon.monsterid = id;
            if (mon.roleName == A3_LegionModel.getInstance().myLegion.name)
            {
                mon.m_isMarked = false;
            }

            //if (GRMap.grmap_loading == false)
            //    mon.refreshViewType(2);

            mon.dartid = id;
            mon.isDart = true;
        }
        m_listMonster.Add(mon);
        if (mon != null)
        {
            dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, mon));
        }


        if (d.ContainsKey("moving"))
        {
            uint  iid  = d["iid"]._uint;
            var   vv   = MonsterMgr._inst.getMonster(iid);
            float to_x = d["moving"]["to_x"]._float;
            float to_y = d["moving"]["to_y"]._float;

            NavMeshHit hit;
            Vector3    vec = new Vector3(to_x * 32 / GameConstant.PIXEL_TRANS_UNITYPOS, 0f, to_y * 32 / GameConstant.PIXEL_TRANS_UNITYPOS);
            NavMesh.SamplePosition(vec, out hit, 100f, vv.m_layer);
            vv.SetDestPos(hit.position);
        }
        return(mon);
    }