Beispiel #1
0
        public void FightStart()
        {
            SLevelContext curLvelContext = Singleton <BattleLogic> .GetInstance().GetCurLvelContext();

            ResDT_LevelCommonInfo pvpMapCommonInfo = CLevelCfgLogicManager.GetPvpMapCommonInfo((byte)curLvelContext.m_mapType, (uint)curLvelContext.m_mapID);

            this._supportHighTowerSoldier = (pvpMapCommonInfo != null && pvpMapCommonInfo.bSupportHighTowerSoldier != 0);
            Singleton <GameEventSys> .instance.RmvEventHandler <GameDeadEventParam>(GameEventDef.Event_ActorDead, new RefAction <GameDeadEventParam>(this.OnOrganDead));

            Singleton <GameEventSys> .instance.AddEventHandler <GameDeadEventParam>(GameEventDef.Event_ActorDead, new RefAction <GameDeadEventParam>(this.OnOrganDead));

            for (int i = 0; i < this._soldierAddAttrs.Length; i++)
            {
                this._soldierAddAttrs[i].Reset();
            }
        }
Beispiel #2
0
        public static void SetMasterPvpDetailWhenGameSettle(COMDT_GAME_INFO gameInfo)
        {
            byte      bMaxAcntNum;
            byte      bGameType      = gameInfo.bGameType;
            byte      bMapType       = gameInfo.bMapType;
            uint      iLevelID       = (uint)gameInfo.iLevelID;
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .instance.GetMasterRoleInfo();

            DebugHelper.Assert(masterRoleInfo != null, "masterRoleInfo is null");
            if (masterRoleInfo == null)
            {
                return;
            }
            switch (((COM_GAME_TYPE)bGameType))
            {
            case COM_GAME_TYPE.COM_SINGLE_GAME_OF_COMBAT:
                Singleton <CRoleInfoManager> .instance.CalculateWins(masterRoleInfo.pvpDetail.stVsMachineInfo, gameInfo.bGameResult);

                return;

            case COM_GAME_TYPE.COM_SINGLE_GAME_OF_GUIDE:
            case COM_GAME_TYPE.COM_SINGLE_GAME_OF_ACTIVITY:
            case COM_GAME_TYPE.COM_MULTI_GAME_OF_PVP_ROOM:
            case COM_GAME_TYPE.COM_SINGLE_GAME_OF_BURNING:
            case COM_GAME_TYPE.COM_SINGLE_GAME_OF_ARENA:
                return;

            case COM_GAME_TYPE.COM_MULTI_GAME_OF_LADDER:
                Singleton <CRoleInfoManager> .instance.CalculateWins(masterRoleInfo.pvpDetail.stLadderInfo, gameInfo.bGameResult);

                Singleton <CRoleInfoManager> .instance.CalculateKDA(gameInfo);

                return;

            case COM_GAME_TYPE.COM_MULTI_GAME_OF_PVP_MATCH:
            case COM_GAME_TYPE.COM_MULTI_GAME_OF_REWARDMATCH:
                if (gameInfo.bIsPKAI != 2)
                {
                    bMaxAcntNum = CLevelCfgLogicManager.GetPvpMapCommonInfo(bMapType, iLevelID).bMaxAcntNum;
                    switch (bMaxAcntNum)
                    {
                    case 2:
                        Singleton <CRoleInfoManager> .instance.CalculateWins(masterRoleInfo.pvpDetail.stOneVsOneInfo, gameInfo.bGameResult);

                        goto Label_0183;

                    case 4:
                        Singleton <CRoleInfoManager> .instance.CalculateWins(masterRoleInfo.pvpDetail.stTwoVsTwoInfo, gameInfo.bGameResult);

                        goto Label_0183;

                    case 6:
                        Singleton <CRoleInfoManager> .instance.CalculateWins(masterRoleInfo.pvpDetail.stThreeVsThreeInfo, gameInfo.bGameResult);

                        goto Label_0183;
                    }
                    break;
                }
                Singleton <CRoleInfoManager> .instance.CalculateWins(masterRoleInfo.pvpDetail.stVsMachineInfo, gameInfo.bGameResult);

                return;

            case COM_GAME_TYPE.COM_MULTI_GAME_OF_ENTERTAINMENT:
                if (gameInfo.bIsPKAI == 1)
                {
                    Singleton <CRoleInfoManager> .instance.CalculateWins(masterRoleInfo.pvpDetail.stEntertainmentInfo, gameInfo.bGameResult);

                    Singleton <CRoleInfoManager> .instance.CalculateKDA(gameInfo);
                }
                return;

            default:
                return;
            }
            if (bMaxAcntNum == 10)
            {
                Singleton <CRoleInfoManager> .instance.CalculateWins(masterRoleInfo.pvpDetail.stFiveVsFiveInfo, gameInfo.bGameResult);
            }
Label_0183:
            Singleton <CRoleInfoManager> .instance.CalculateKDA(gameInfo);
        }
Beispiel #3
0
        public static void SetMasterPvpDetailWhenGameSettle(COMDT_GAME_INFO gameInfo)
        {
            byte      bGameType      = gameInfo.bGameType;
            byte      bMapType       = gameInfo.bMapType;
            uint      iLevelID       = (uint)gameInfo.iLevelID;
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .get_instance().GetMasterRoleInfo();

            DebugHelper.Assert(masterRoleInfo != null, "masterRoleInfo is null");
            if (masterRoleInfo == null)
            {
                return;
            }
            switch (bGameType)
            {
            case 1:
                Singleton <CRoleInfoManager> .get_instance().CalculateWins(masterRoleInfo.pvpDetail.stVsMachineInfo, (int)gameInfo.bGameResult);

                break;

            case 4:
                Singleton <CRoleInfoManager> .get_instance().CalculateWins(masterRoleInfo.pvpDetail.stLadderInfo, (int)gameInfo.bGameResult);

                Singleton <CRoleInfoManager> .get_instance().CalculateKDA(gameInfo);

                break;

            case 5:
            case 10:
                if (gameInfo.bIsPKAI == 2)
                {
                    Singleton <CRoleInfoManager> .get_instance().CalculateWins(masterRoleInfo.pvpDetail.stVsMachineInfo, (int)gameInfo.bGameResult);
                }
                else
                {
                    byte bMaxAcntNum = CLevelCfgLogicManager.GetPvpMapCommonInfo(bMapType, iLevelID).bMaxAcntNum;
                    byte b           = bMaxAcntNum;
                    switch (b)
                    {
                    case 2:
                        Singleton <CRoleInfoManager> .get_instance().CalculateWins(masterRoleInfo.pvpDetail.stOneVsOneInfo, (int)gameInfo.bGameResult);

                        goto IL_183;

                    case 3:
                    case 5:
IL_F1:
                        if (b != 10)
                        {
                            goto IL_183;
                        }
                        Singleton <CRoleInfoManager> .get_instance().CalculateWins(masterRoleInfo.pvpDetail.stFiveVsFiveInfo, (int)gameInfo.bGameResult);

                        goto IL_183;

                    case 4:
                        Singleton <CRoleInfoManager> .get_instance().CalculateWins(masterRoleInfo.pvpDetail.stTwoVsTwoInfo, (int)gameInfo.bGameResult);

                        goto IL_183;

                    case 6:
                        Singleton <CRoleInfoManager> .get_instance().CalculateWins(masterRoleInfo.pvpDetail.stThreeVsThreeInfo, (int)gameInfo.bGameResult);

                        goto IL_183;
                    }
                    goto IL_F1;
IL_183:
                    Singleton <CRoleInfoManager> .get_instance().CalculateKDA(gameInfo);
                }
                break;

            case 9:
                if (gameInfo.bIsPKAI == 1)
                {
                    Singleton <CRoleInfoManager> .get_instance().CalculateWins(masterRoleInfo.pvpDetail.stEntertainmentInfo, (int)gameInfo.bGameResult);

                    Singleton <CRoleInfoManager> .get_instance().CalculateKDA(gameInfo);
                }
                break;
            }
        }
Beispiel #4
0
    public void battleInvitation(SCPKG_INVITE_JOIN_GAME_REQ info)
    {
        if (!this.m_bInstall)
        {
            return;
        }
        if (!this.m_bStart)
        {
            return;
        }
        try
        {
            string    text           = CUIUtility.RemoveEmoji(StringHelper.UTF8BytesToString(ref info.stInviterInfo.szName));
            ulong     ullUid         = info.stInviterInfo.ullUid;
            string    text2          = string.Empty;
            ulong     num            = 0uL;
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .instance.GetMasterRoleInfo();

            if (masterRoleInfo != null)
            {
                text2 = masterRoleInfo.Name;
                num   = masterRoleInfo.playerUllUID;
            }
            string text3 = string.Empty;
            if (info.bInviteType == 1)
            {
                ResDT_LevelCommonInfo pvpMapCommonInfo = CLevelCfgLogicManager.GetPvpMapCommonInfo(info.stInviteDetail.stRoomDetail.bMapType, info.stInviteDetail.stRoomDetail.dwMapId);
                if (pvpMapCommonInfo != null)
                {
                    text3 = Singleton <CTextManager> .instance.GetText("Invite_Map_Desc", new string[]
                    {
                        ((int)(pvpMapCommonInfo.bMaxAcntNum / 2)).ToString(),
                        ((int)(pvpMapCommonInfo.bMaxAcntNum / 2)).ToString(),
                        Utility.UTF8Convert(pvpMapCommonInfo.szName)
                    });
                }
            }
            else if (info.bInviteType == 2)
            {
                ResDT_LevelCommonInfo pvpMapCommonInfo2 = CLevelCfgLogicManager.GetPvpMapCommonInfo(info.stInviteDetail.stTeamDetail.bMapType, info.stInviteDetail.stTeamDetail.dwMapId);
                if (pvpMapCommonInfo2 != null)
                {
                    text3 = Singleton <CTextManager> .instance.GetText("Invite_Map_Desc", new string[]
                    {
                        ((int)(pvpMapCommonInfo2.bMaxAcntNum / 2)).ToString(),
                        ((int)(pvpMapCommonInfo2.bMaxAcntNum / 2)).ToString(),
                        Utility.UTF8Convert(pvpMapCommonInfo2.szName)
                    });
                }
            }
            string jsonString = string.Format("{{ \"user_id\" : \"{0}\",\"user_name\" : \" {1} \", \"friend_id\":\" {2} \",\"friend_name\":\" {3} \",\"battle_mode\":\" {4} \"}}", new object[]
            {
                num,
                text2,
                ullUid,
                text,
                text3
            });
            TGALive.battleInvitation(jsonString);
        }
        catch (Exception ex)
        {
            Debug.Log("TGA" + ex.ToString());
        }
    }