Beispiel #1
0
    private void Start()
    {
        Debug.Log("开始Demo");
        Debug.Log("开始....加载xml数据...............");
        new URLReqImpl
        {
            dataFormat = "binary",
            url        = "staticdata/staticdata.dat"
        }.load(delegate(IURLReq url_req, object ret)
        {
            Debug.Log("demo 加载数据xml...............");
            byte[] d            = ret as byte[];
            ByteArray byteArray = new ByteArray(d);
            byteArray.uncompress();
            XMLMgr.instance.init(byteArray);
        }, null, delegate(IURLReq url_req, string err)
        {
            Debug.Log("加载staticdata 失败。。。。。。。。。。。。" + url_req.url);
        });
        Globle.Init_DEFAULT();
        Globle.A3_DEMO = true;
        Application.targetFrameRate = 60;
        new CrossApp(true);
        CrossApp.singleton.regPlugin(new gameEventDelegate());
        CrossApp.singleton.regPlugin(new processManager());
        Screen.SetResolution(Screen.width, Screen.height, true);
        SceneCamera.Init();
        SelfRole.Init();
        Variant variant = new Variant();

        variant["id"]         = 1;
        GRMap.changeMapTimeSt = 7;
        GRMap.loading         = false;
        GameRoomMgr.getInstance().onChangeLevel(variant, null);
    }
Beispiel #2
0
    public void onDead()
    {
        if (isDead == false)
        {
            isDead = true;
            if (isfake)
            {
                int len = ConfigUtil.getRandom(1, 3);
                if (len > 0)
                {
                    List <DropItemdta> l = new List <DropItemdta>();
                    for (int i = 0; i < len; i++)
                    {
                        DropItemdta d = new DropItemdta();
                        d.dpid  = 0;
                        d.count = ConfigUtil.getRandom(1, 10);
                        l.Add(d);
                    }
                    // BaseRoomItem.instance.showDropItem(m_curModel.position, l, true);
                }
            }

            if (m_curAni)
            {
                m_curAni.enabled = true;
                m_curAni.SetBool(EnumAni.ANI_B_DIE, true);
            }

            if (m_curPhy)
            {
                m_curPhy.gameObject.SetActive(false);
            }

            if (m_moveAgent)
            {
                m_moveAgent.baseOffset = 0f;
                m_moveAgent.enabled    = false;
            }

            PlayerNameUIMgr.getInstance().hide(this);

            //记录杀敌数
            if (MapModel.getInstance().curLevelId != 0)
            {
                if (MapModel.getInstance().dFbDta.ContainsKey((int)MapModel.getInstance().curLevelId))
                {
                    MapModel.getInstance().dFbDta[(int)MapModel.getInstance().curLevelId].kmNum++;
                }
            }
            if (GameRoomMgr.getInstance().curRoom != null)
            {
                GameRoomMgr.getInstance().curRoom.onMonsterDied(this);
            }
        }
    }
    public void onJump(float x, float y)
    {
        float   x2       = x / 53.333f;
        float   z        = y / 53.333f;
        Vector3 position = new Vector3(x2, base.transform.position.y, z);
        bool    flag     = GameRoomMgr.getInstance().curRoom == GameRoomMgr.getInstance().dRooms[3342u];

        if (!flag)
        {
            NavMeshHit navMeshHit;
            NavMesh.SamplePosition(position, out navMeshHit, 100f, this.m_monRole.m_layer);
            position = navMeshHit.position;
        }
        float num = Vector3.Distance(base.transform.position, position);

        this.m_monRole.SetDestPos(position);
        base.transform.DOJump(position, 0.2f * num + position.y, 1, 0.01f, false);
    }
Beispiel #4
0
    public void onJump(float x, float y)
    {
        float to_x = x / GameConstant.PIXEL_TRANS_UNITYPOS;
        float to_y = y / GameConstant.PIXEL_TRANS_UNITYPOS;

        NavMeshHit hit;
        Vector3    endpos = new Vector3(to_x, transform.position.y, to_y);

        if (GameRoomMgr.getInstance().curRoom == GameRoomMgr.getInstance().dRooms[3342])
        {//解决多层阻挡点寻路的问题
        }
        else
        {
            NavMesh.SamplePosition(endpos, out hit, 100f, m_monRole.m_layer);
            endpos = hit.position;
        }
        float dis = Vector3.Distance(transform.position, endpos);

        m_monRole.SetDestPos(endpos);
        transform.DOJump(endpos, 0.2f * dis + endpos.y, 1, 0.01f);
    }
Beispiel #5
0
    //private int idIdx = 0;
    public void AddOtherPlayer(Variant p)
    {
        if (GRMap.grmap_loading)
        {
            cacheProxy.Add(p);
            return;
        }
        debug.Log(p["name"] + "--------------:" + p.dump());
        uint iid       = p["iid"]._uint;
        uint lvlsideid = 0;

        if (p.ContainsKey("lvlsideid"))
        {
            lvlsideid = p["lvlsideid"];
        }
        if (m_mapOtherPlayer.ContainsKey(iid))
        {
            return;
        }
        uint cid  = 0;
        int  type = p["carr"];

        if (p.ContainsKey("cid"))
        {
            cid = p["cid"]._uint;
        }

        string  name    = p["name"];
        Vector3 born_pt = new Vector3(p["x"] / GameConstant.PIXEL_TRANS_UNITYPOS, 0f, p["y"] / GameConstant.PIXEL_TRANS_UNITYPOS);

        ProfessionRole pro_role = null;

        bool invisible = false;

        if (p.ContainsKey("invisible") && p["invisible"] > 0)
        {
            invisible = p["invisible"] > 0;
        }

        int title_sign = 0;

        //if ( p.ContainsKey( "title_sign" ) )
        //{
        //    title_sign = p[ "title_sign" ]._int;
        //}
        if (2 == type)
        {
            pro_role = new P2Warrior();
            if (SceneCamera.m_nModelDetail_Level != 1)
            {
                (pro_role as P2Warrior).Init(name, EnumLayer.LM_DEFAULT, born_pt, false, p);
            }
            else
            {
                (pro_role as P2Warrior).Init(name, invisible ? EnumLayer.LM_ROLE_INVISIBLE : EnumLayer.LM_OTHERPLAYER, born_pt, false, p);
            }
        }
        else if (3 == type)
        {
            pro_role = new P3Mage();
            if (SceneCamera.m_nModelDetail_Level != 1)
            {
                (pro_role as P3Mage).Init(name, EnumLayer.LM_DEFAULT, born_pt, false, p);
            }
            else
            {
                (pro_role as P3Mage).Init(name, invisible ? EnumLayer.LM_ROLE_INVISIBLE : EnumLayer.LM_OTHERPLAYER, born_pt, false, p);
            }
        }
        else if (5 == type)
        {
            pro_role = new P5Assassin();
            if (SceneCamera.m_nModelDetail_Level != 1)
            {
                (pro_role as P5Assassin).Init(name, EnumLayer.LM_DEFAULT, born_pt, false, p);
            }
            else
            {
                (pro_role as P5Assassin).Init(name, invisible ? EnumLayer.LM_ROLE_INVISIBLE : EnumLayer.LM_OTHERPLAYER, born_pt, false, p);
            }
        }
        else
        {
            pro_role = new P3Mage();
            if (SceneCamera.m_nModelDetail_Level != 1)
            {
                (pro_role as P3Mage).Init(name, EnumLayer.LM_DEFAULT, born_pt, false, p);
            }
            else
            {
                (pro_role as P3Mage).Init(name, invisible ? EnumLayer.LM_ROLE_INVISIBLE : EnumLayer.LM_OTHERPLAYER, born_pt, false, p);
            }
        }

        pro_role.m_layer = invisible ? EnumLayer.LM_ROLE_INVISIBLE : EnumLayer.LM_OTHERPLAYER;

        if (GameRoomMgr.getInstance().curRoom == GameRoomMgr.getInstance().dRooms[3342] || GameRoomMgr.getInstance().curRoom == GameRoomMgr.getInstance().dRooms[3358])
        {//解决多层阻挡点寻路的问题
            pro_role.setNavLay(NavmeshUtils.allARE);
        }

        //暂时都是可以自由pk的
        pro_role.m_curModel.position = born_pt;
        if (p.ContainsKey("face"))
        {
            pro_role.m_curModel.rotation = new Quaternion(pro_role.m_curModel.rotation.x, p["face"], pro_role.m_curModel.rotation.z, 0);
        }
        if (p.ContainsKey("lvlsideid"))
        {
            if (lvlsideid != 0 && PlayerModel.getInstance().inSpost)
            {
                if (1 == lvlsideid)
                {
                    pro_role.refresNameColor_spost(SPOSTNAME_TYPE.RED);
                }
                else if (2 == lvlsideid)
                {
                    pro_role.refresNameColor_spost(SPOSTNAME_TYPE.BULE);
                }
            }
            else if (lvlsideid != 0 && PlayerModel.getInstance().inCityWar)
            {
                if (lvlsideid == PlayerModel.getInstance().lvlsideid)
                {
                    pro_role.refresNameColor_spost(SPOSTNAME_TYPE.BULE);
                }
                else
                {
                    pro_role.refresNameColor_spost(SPOSTNAME_TYPE.RED);
                }
            }
        }

        if (pro_role == null)
        {
            return;
        }

        m_mapOtherPlayer.Add(iid, pro_role);
        m_mapOtherPlayerUnsee.Add(iid, pro_role);
        if (GRMap.curSvrConf["id"] == 24)
        {
            pro_role.setPos(new Vector3(born_pt.x, born_pt.y, born_pt.z + 18f));
        }
        else
        {
            pro_role.setPos(born_pt);
        }
        pro_role.SetDestPos(born_pt);
        pro_role.m_unIID      = iid;
        pro_role.m_unCID      = cid;
        pro_role.m_unPK_Param = cid;
        pro_role.lvlsideid    = lvlsideid;
        pro_role.invisible    = invisible;

        pro_role.spost_lvlsideid = (int)lvlsideid;
        debug.Log("对方是" + lvlsideid);

        pro_role.speed = p["speed"]._int;

        pro_role.maxHp = p["battleAttrs"]["max_hp"];
        pro_role.curhp = p["hp"];
        if (p.ContainsKey("zhuan"))
        {
            pro_role.zhuan = p["zhuan"];
        }
        if (p.ContainsKey("pk_state"))
        {
            pro_role.Pk_state = p["pk_state"];
        }
        switch (pro_role.Pk_state)
        {
        case 0:
            pro_role.m_ePK_Type = PK_TYPE.PK_PEACE;
            break;

        case 1:
            pro_role.m_ePK_Type = PK_TYPE.PK_PKALL;
            break;

        case 2:
            pro_role.m_ePK_Type = PK_TYPE.PK_TEAM;
            break;

        case 3:
            pro_role.m_ePK_Type = PK_TYPE.PK_LEGION;
            break;

        case 4:
            pro_role.m_ePK_Type = PK_TYPE.PK_PEACE;
            break;

        case 5:
            pro_role.m_ePK_Type = PK_TYPE.Pk_SPOET;
            break;
        }
        ;
        if (p.ContainsKey("teamid"))
        {
            pro_role.m_unTeamID = p["teamid"];
            PlayerNameUIMgr.getInstance().refeshHpColor(pro_role);
        }
        if (p.ContainsKey("clanid"))
        {
            pro_role.m_unLegionID = p["clanid"];
        }
        if (p.ContainsKey("pet"))
        {
            pro_role.ChangePetAvatar(p["pet"]["id"], 0);
        }
        if (p.ContainsKey("treasure_num"))
        {
            pro_role.mapCount = p["treasure_num"];
            debug.Log("对方宝图" + p["treasure_num"]);
            pro_role.refreshmapCount(p["treasure_num"]);
        }
        if (p.ContainsKey("serial_kp"))
        {
            pro_role.serial = p["serial_kp"];
            pro_role.refreshserialCount(p["serial_kp"]);
        }
        if (p.ContainsKey("vip"))
        {
            pro_role.refreshVipLvl((uint)p["vip"]);
        }

        if (p.ContainsKey("strike_back_tm") && p["strike_back_tm"] > 0)
        {
            pro_role.havefanjibuff = true;
            //也会发78号,不做处理也显示正常zzz
            debug.Log("这个人身上有反击buff");
        }
        else
        {
            pro_role.havefanjibuff = false;
        }

        //if (GRMap.grmap_loading == false)
        //    pro_role.refreshViewType(1);

        //if (pro_role != null)
        //{
        //    PlayerData dta = new PlayerData();
        //    dta.roleId = iid;
        //    //dta.monid = type;
        //    pro_role.playerDta = dta;
        //}

        //idIdx++;

        //if (mon != null)
        //    dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, mon));
    }
Beispiel #6
0
    public void onDead()
    {
        bool flag = !this.isDead;

        if (flag)
        {
            this.isDead = true;
            bool isfake = this.isfake;
            if (isfake)
            {
                int  random = ConfigUtil.getRandom(1, 3);
                bool flag2  = random > 0;
                if (flag2)
                {
                    List <DropItemdta> list = new List <DropItemdta>();
                    for (int i = 0; i < random; i++)
                    {
                        list.Add(new DropItemdta
                        {
                            dpid  = 0u,
                            count = ConfigUtil.getRandom(1, 10)
                        });
                    }
                }
            }
            bool flag3 = this.m_curAni;
            if (flag3)
            {
                this.m_curAni.enabled = true;
                this.m_curAni.SetBool(EnumAni.ANI_B_DIE, true);
            }
            bool flag4 = this.m_curPhy;
            if (flag4)
            {
                this.m_curPhy.gameObject.SetActive(false);
            }
            bool flag5 = this.m_moveAgent;
            if (flag5)
            {
                this.m_moveAgent.baseOffset = 0f;
                this.m_moveAgent.enabled    = false;
            }
            PlayerNameUIMgr.getInstance().hide(this);
            bool flag6 = MapModel.getInstance().curLevelId > 0u;
            if (flag6)
            {
                bool flag7 = MapModel.getInstance().dFbDta.ContainsKey((int)MapModel.getInstance().curLevelId);
                if (flag7)
                {
                    MapData expr_15D = MapModel.getInstance().dFbDta[(int)MapModel.getInstance().curLevelId];
                    int     kmNum    = expr_15D.kmNum;
                    expr_15D.kmNum = kmNum + 1;
                }
            }
            bool flag8 = GameRoomMgr.getInstance().curRoom != null;
            if (flag8)
            {
                GameRoomMgr.getInstance().curRoom.onMonsterDied(this);
            }
        }
    }
Beispiel #7
0
    public void AddOtherPlayer(Variant p)
    {
        bool loading = GRMap.loading;

        if (loading)
        {
            this.cacheProxy.Add(p);
        }
        else
        {
            uint @uint = p["iid"]._uint;
            bool flag  = this.m_mapOtherPlayer.ContainsKey(@uint);
            if (!flag)
            {
                uint num   = 0u;
                int  num2  = p["carr"];
                bool flag2 = p.ContainsKey("cid");
                if (flag2)
                {
                    num = p["cid"]._uint;
                }
                string         name   = p["name"];
                Vector3        vector = new Vector3(p["x"] / 53.333f, 0f, p["y"] / 53.333f);
                bool           flag3  = 2 == num2;
                ProfessionRole professionRole;
                if (flag3)
                {
                    professionRole = new P2Warrior();
                    (professionRole as P2Warrior).Init(name, EnumLayer.LM_OTHERPLAYER, vector, false);
                }
                else
                {
                    bool flag4 = 3 == num2;
                    if (flag4)
                    {
                        professionRole = new P3Mage();
                        (professionRole as P3Mage).Init(name, EnumLayer.LM_OTHERPLAYER, vector, false);
                    }
                    else
                    {
                        bool flag5 = 5 == num2;
                        if (flag5)
                        {
                            professionRole = new P5Assassin();
                            (professionRole as P5Assassin).Init(name, EnumLayer.LM_OTHERPLAYER, vector, false);
                        }
                        else
                        {
                            professionRole = new P3Mage();
                            (professionRole as P3Mage).Init(name, EnumLayer.LM_OTHERPLAYER, vector, false);
                        }
                    }
                }
                bool flag6 = GameRoomMgr.getInstance().curRoom == GameRoomMgr.getInstance().dRooms[3342u];
                if (flag6)
                {
                    professionRole.setNavLay(NavmeshUtils.allARE);
                }
                professionRole.m_curModel.position = vector;
                bool flag7 = p.ContainsKey("face");
                if (flag7)
                {
                    professionRole.m_curModel.rotation = new Quaternion(professionRole.m_curModel.rotation.x, p["face"], professionRole.m_curModel.rotation.z, 0f);
                }
                bool flag8 = professionRole == null;
                if (!flag8)
                {
                    this.m_mapOtherPlayer.Add(@uint, professionRole);
                    this.m_mapOtherPlayerUnsee.Add(@uint, professionRole);
                    professionRole.setPos(vector);
                    professionRole.SetDestPos(vector);
                    professionRole.m_unIID      = @uint;
                    professionRole.m_unCID      = num;
                    professionRole.m_unPK_Param = num;
                    professionRole.maxHp        = p["battleAttrs"]["max_hp"];
                    professionRole.curhp        = p["hp"];
                    bool flag9 = p.ContainsKey("zhuan");
                    if (flag9)
                    {
                        professionRole.zhuan = p["zhuan"];
                    }
                    bool flag10 = p.ContainsKey("pk_state");
                    if (flag10)
                    {
                        professionRole.Pk_state = p["pk_state"];
                    }
                    switch (professionRole.Pk_state)
                    {
                    case 0:
                        professionRole.m_ePK_Type = PK_TYPE.PK_PEACE;
                        break;

                    case 1:
                        professionRole.m_ePK_Type = PK_TYPE.PK_PKALL;
                        break;

                    case 2:
                        professionRole.m_ePK_Type = PK_TYPE.PK_TEAM;
                        break;

                    case 3:
                        professionRole.m_ePK_Type = PK_TYPE.PK_LEGION;
                        break;

                    case 4:
                        professionRole.m_ePK_Type = PK_TYPE.PK_PEACE;
                        break;
                    }
                    bool flag11 = p.ContainsKey("teamid");
                    if (flag11)
                    {
                        professionRole.m_unTeamID = p["teamid"];
                    }
                    bool flag12 = p.ContainsKey("clanid");
                    if (flag12)
                    {
                        professionRole.m_unLegionID = p["clanid"];
                    }
                    bool flag13 = p.ContainsKey("pet");
                    if (flag13)
                    {
                        professionRole.ChangePetAvatar(p["pet"]["id"], 0);
                    }
                    bool flag14 = p.ContainsKey("treasure_num");
                    if (flag14)
                    {
                        professionRole.mapCount = p["treasure_num"];
                        debug.Log("对方宝图" + p["treasure_num"]);
                        professionRole.refreshmapCount(p["treasure_num"]);
                    }
                    bool flag15 = p.ContainsKey("serial_kp");
                    if (flag15)
                    {
                        professionRole.serial = p["serial_kp"];
                        professionRole.refreshserialCount(p["serial_kp"]);
                    }
                    bool flag16 = p.ContainsKey("vip");
                    if (flag16)
                    {
                        professionRole.refreshVipLvl(p["vip"]);
                    }
                    bool flag17 = !GRMap.loading;
                    if (flag17)
                    {
                        professionRole.refreshViewType(1);
                    }
                }
            }
        }
    }