Пример #1
0
    protected override string Execute(string[] InArguments, ref CSDT_CHEATCMD_DETAIL CheatCmdRef)
    {
        CheatCmdRef.stAddFightHistory = new CSDT_CHEAT_ADD_FIGHTHISTORY();
        CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

        CheatCmdRef.stAddFightHistory.stFightRecord.bGameType       = 6;
        CheatCmdRef.stAddFightHistory.stFightRecord.bPlayerCnt      = 4;
        CheatCmdRef.stAddFightHistory.stFightRecord.bWinCamp        = 1;
        CheatCmdRef.stAddFightHistory.stFightRecord.dwGameStartTime = (uint)CRoleInfo.GetCurrentUTCTime();
        CheatCmdRef.stAddFightHistory.stFightRecord.dwGameTime      = 0x3e8;
        for (int i = 0; i < 4; i++)
        {
            CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].bHeroLv     = 1;
            CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].bPlayerLv   = 1;
            CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].bPlayerCamp = (i >= 2) ? ((byte)2) : ((byte)1);
            int             id          = UnityEngine.Random.Range(0, GameDataMgr.robotRookieHeroSkinDatabin.Count());
            ResFakeAcntHero dataByIndex = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByIndex(id);
            CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].dwHeroID = dataByIndex.dwHeroID;
            StringHelper.StringToUTF8Bytes(i.ToString(), ref CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].szPlayerName);
            if (i == 0)
            {
                CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].ullPlayerUid        = masterRoleInfo.playerUllUID;
                CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].iPlayerLogicWorldID = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.logicWorldID;
            }
            else
            {
                CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].ullPlayerUid        = (ulong)i;
                CheatCmdRef.stAddFightHistory.stFightRecord.astPlayerFightData[i].iPlayerLogicWorldID = i;
            }
        }
        Singleton <CPlayerPvpHistoryController> .GetInstance().AddSelfRecordData(CheatCmdRef.stAddFightHistory.stFightRecord);

        return(CheatCommandBase.Done);
    }
Пример #2
0
        private static void DoSelectAction(ref CFakePvPHelper.FakeHeroSelect fakeSelect)
        {
            if (!CFakePvPHelper.IsInSelectHero())
            {
                return;
            }
            if (fakeSelect.changeHeroCount < fakeSelect.maxChangeHeroCount)
            {
                uint num2;
                if (fakeSelect.FakePlayer.dwAcntPvpLevel <= 6u)
                {
                    int             num         = Random.Range(0, GameDataMgr.robotRookieHeroSkinDatabin.Count());
                    ResFakeAcntHero dataByIndex = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByIndex(num);
                    if (dataByIndex == null)
                    {
                        return;
                    }
                    num2 = dataByIndex.dwHeroID;
                    while (CFakePvPHelper.ChosenHeroes.ContainsValue(dataByIndex.dwHeroID))
                    {
                        num         = Random.Range(0, GameDataMgr.robotRookieHeroSkinDatabin.Count());
                        dataByIndex = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByIndex(num);
                        if (dataByIndex == null)
                        {
                            return;
                        }
                        num2 = dataByIndex.dwHeroID;
                    }
                }
                else
                {
                    CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

                    int num3 = GameDataMgr.robotVeteranHeroSkinDatabin.Count();
                    int max  = num3 + ((masterRoleInfo == null) ? 0 : masterRoleInfo.freeHeroList.get_Count());
                    int num  = Random.Range(0, max);
                    if (num < num3)
                    {
                        ResFakeAcntHero dataByIndex = GameDataMgr.robotVeteranHeroSkinDatabin.GetDataByIndex(num);
                        if (dataByIndex == null)
                        {
                            return;
                        }
                        num2 = dataByIndex.dwHeroID;
                    }
                    else
                    {
                        num2 = masterRoleInfo.freeHeroList.get_Item(num - num3).dwFreeHeroID;
                    }
                    while (CFakePvPHelper.ChosenHeroes.ContainsValue(num2))
                    {
                        num = Random.Range(0, max);
                        if (num < num3)
                        {
                            ResFakeAcntHero dataByIndex = GameDataMgr.robotVeteranHeroSkinDatabin.GetDataByIndex(num);
                            if (dataByIndex == null)
                            {
                                return;
                            }
                            num2 = dataByIndex.dwHeroID;
                        }
                        else
                        {
                            num2 = masterRoleInfo.freeHeroList.get_Item(num - num3).dwFreeHeroID;
                        }
                    }
                }
                CFakePvPHelper.ChosenHeroes.set_Item(fakeSelect.FakePlayer.ullUid, num2);
                fakeSelect.selectedHero = num2;
                fakeSelect.changeHeroCount++;
                RoomInfo roomInfo = Singleton <CHeroSelectBaseSystem> .get_instance().roomInfo;

                if (roomInfo == null)
                {
                    return;
                }
                MemberInfo memberInfo = roomInfo.GetMemberInfo(fakeSelect.FakePlayer.ullUid);
                if (memberInfo != null && memberInfo.ChoiceHero[0] != null)
                {
                    memberInfo.ChoiceHero[0].stBaseInfo.stCommonInfo.dwHeroID = num2;
                    Singleton <CHeroSelectNormalSystem> .GetInstance().RefreshHeroPanel(false, true);
                }
            }
            else
            {
                if (fakeSelect.FakePlayer.dwAcntPvpLevel <= 6u)
                {
                    ResFakeAcntHero dataByKey = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByKey(fakeSelect.selectedHero);
                    if (dataByKey != null && dataByKey.dwSkinID != 0u)
                    {
                        int num4 = Random.Range(0, 10000);
                        if ((long)num4 < (long)((ulong)dataByKey.dwSkinRate))
                        {
                            fakeSelect.selectedSkin = (int)dataByKey.dwSkinID;
                        }
                    }
                }
                else
                {
                    ResFakeAcntHero dataByKey2 = GameDataMgr.robotVeteranHeroSkinDatabin.GetDataByKey(fakeSelect.selectedHero);
                    if (dataByKey2 != null && dataByKey2.dwSkinID != 0u)
                    {
                        int num5 = Random.Range(0, 10000);
                        if ((long)num5 < (long)((ulong)dataByKey2.dwSkinRate))
                        {
                            fakeSelect.selectedSkin = (int)dataByKey2.dwSkinID;
                        }
                    }
                }
                ResFakeAcntSkill dataByKey3 = GameDataMgr.robotPlayerSkillDatabin.GetDataByKey(fakeSelect.FakePlayer.dwAcntPvpLevel);
                if (dataByKey3 != null)
                {
                    int num6 = Random.Range(0, dataByKey3.SkillId.Length);
                    while (dataByKey3.SkillId[num6] == 0u)
                    {
                        num6 = Random.Range(0, dataByKey3.SkillId.Length);
                    }
                    uint selectedPlayerSkill = dataByKey3.SkillId[num6];
                    fakeSelect.selectedPlayerSkill = selectedPlayerSkill;
                }
                fakeSelect.bConfirmed = true;
                CFakePvPHelper.HeroConfirmedPlayerNum++;
                RoomInfo roomInfo2 = Singleton <CRoomSystem> .GetInstance().roomInfo;

                MemberInfo memberInfo2 = roomInfo2.GetMemberInfo(fakeSelect.FakePlayer.ullUid);
                if (memberInfo2 != null && memberInfo2.ChoiceHero[0] != null)
                {
                    memberInfo2.ChoiceHero[0].stBaseInfo.stCommonInfo.stSkill.dwSelSkillID = fakeSelect.selectedPlayerSkill;
                    memberInfo2.isPrepare = true;
                    Singleton <CHeroSelectNormalSystem> .GetInstance().RefreshHeroPanel(false, true);
                }
                if (CFakePvPHelper.HeroConfirmedPlayerNum == CFakePvPHelper.FakeHeroSelectList.get_Count() + 1)
                {
                    CFakePvPHelper.ReqStartSingleWarmBattle();
                }
            }
        }
Пример #3
0
        private static void SelectHeroForEnemyPlayer(ref COMDT_HEROINFO heroInfo, uint playerLevel)
        {
            uint   heroID       = 0u;
            ushort wSkinID      = 0;
            uint   dwSelSkillID = 0u;

            if (playerLevel <= 6u)
            {
                int             num         = Random.Range(0, GameDataMgr.robotRookieHeroSkinDatabin.Count());
                ResFakeAcntHero dataByIndex = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByIndex(num);
                if (dataByIndex == null)
                {
                    return;
                }
                heroID = dataByIndex.dwHeroID;
                while (CFakePvPHelper.EnemyChosenHeroes.FindIndex((uint x) => x == heroID) != -1)
                {
                    num         = Random.Range(0, GameDataMgr.robotRookieHeroSkinDatabin.Count());
                    dataByIndex = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByIndex(num);
                    if (dataByIndex == null)
                    {
                        return;
                    }
                    heroID = dataByIndex.dwHeroID;
                }
                if (dataByIndex != null && dataByIndex.dwSkinID != 0u)
                {
                    int num2 = Random.Range(0, 10000);
                    if ((long)num2 < (long)((ulong)dataByIndex.dwSkinRate))
                    {
                        wSkinID = (ushort)dataByIndex.dwSkinID;
                    }
                }
            }
            else
            {
                CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

                if (masterRoleInfo == null)
                {
                    return;
                }
                int num3 = GameDataMgr.robotVeteranHeroSkinDatabin.Count();
                int max  = num3 + ((masterRoleInfo == null) ? 0 : masterRoleInfo.freeHeroList.get_Count());
                int num  = Random.Range(0, max);
                if (num < num3)
                {
                    ResFakeAcntHero dataByIndex = GameDataMgr.robotVeteranHeroSkinDatabin.GetDataByIndex(num);
                    if (dataByIndex == null)
                    {
                        return;
                    }
                    heroID = dataByIndex.dwHeroID;
                }
                else
                {
                    heroID = masterRoleInfo.freeHeroList.get_Item(num - num3).dwFreeHeroID;
                }
                while (CFakePvPHelper.EnemyChosenHeroes.FindIndex((uint x) => x == heroID) != -1)
                {
                    num = Random.Range(0, max);
                    if (num < num3)
                    {
                        ResFakeAcntHero dataByIndex = GameDataMgr.robotVeteranHeroSkinDatabin.GetDataByIndex(num);
                        if (dataByIndex == null)
                        {
                            return;
                        }
                        heroID = dataByIndex.dwHeroID;
                    }
                    else
                    {
                        heroID = masterRoleInfo.freeHeroList.get_Item(num - num3).dwFreeHeroID;
                    }
                }
            }
            ResFakeAcntSkill dataByKey = GameDataMgr.robotPlayerSkillDatabin.GetDataByKey(playerLevel);

            if (dataByKey != null)
            {
                int num4 = Random.Range(0, dataByKey.SkillId.Length);
                while (dataByKey.SkillId[num4] == 0u)
                {
                    num4 = Random.Range(0, dataByKey.SkillId.Length);
                }
                dwSelSkillID = dataByKey.SkillId[num4];
            }
            CFakePvPHelper.EnemyChosenHeroes.Add(heroID);
            heroInfo.stCommonInfo.dwHeroID             = heroID;
            heroInfo.stCommonInfo.stSkill.dwSelSkillID = dwSelSkillID;
            heroInfo.stCommonInfo.wSkinID = wSkinID;
        }
Пример #4
0
        private static void DoSelectAction(ref FakeHeroSelect fakeSelect)
        {
            if (IsInSelectHero())
            {
                if (fakeSelect.changeHeroCount < fakeSelect.maxChangeHeroCount)
                {
                    int             id          = 0;
                    uint            dwHeroID    = 0;
                    ResFakeAcntHero dataByIndex = null;
                    if (fakeSelect.FakePlayer.dwAcntPvpLevel <= 6)
                    {
                        id          = UnityEngine.Random.Range(0, GameDataMgr.robotRookieHeroSkinDatabin.Count());
                        dataByIndex = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByIndex(id);
                        if (dataByIndex == null)
                        {
                            return;
                        }
                        for (dwHeroID = dataByIndex.dwHeroID; ChosenHeroes.ContainsValue(dataByIndex.dwHeroID); dwHeroID = dataByIndex.dwHeroID)
                        {
                            id          = UnityEngine.Random.Range(0, GameDataMgr.robotRookieHeroSkinDatabin.Count());
                            dataByIndex = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByIndex(id);
                            if (dataByIndex == null)
                            {
                                return;
                            }
                        }
                    }
                    else
                    {
                        CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

                        int num3 = GameDataMgr.robotVeteranHeroSkinDatabin.Count();
                        int max  = num3 + ((masterRoleInfo == null) ? 0 : masterRoleInfo.freeHeroList.Count);
                        id = UnityEngine.Random.Range(0, max);
                        if (id < num3)
                        {
                            dataByIndex = GameDataMgr.robotVeteranHeroSkinDatabin.GetDataByIndex(id);
                            if (dataByIndex == null)
                            {
                                return;
                            }
                            dwHeroID = dataByIndex.dwHeroID;
                        }
                        else
                        {
                            dwHeroID = masterRoleInfo.freeHeroList[id - num3].dwFreeHeroID;
                        }
                        while (ChosenHeroes.ContainsValue(dwHeroID))
                        {
                            id = UnityEngine.Random.Range(0, max);
                            if (id < num3)
                            {
                                dataByIndex = GameDataMgr.robotVeteranHeroSkinDatabin.GetDataByIndex(id);
                                if (dataByIndex == null)
                                {
                                    return;
                                }
                                dwHeroID = dataByIndex.dwHeroID;
                            }
                            else
                            {
                                dwHeroID = masterRoleInfo.freeHeroList[id - num3].dwFreeHeroID;
                            }
                        }
                    }
                    ChosenHeroes[fakeSelect.FakePlayer.ullUid] = dwHeroID;
                    fakeSelect.selectedHero = dwHeroID;
                    fakeSelect.changeHeroCount++;
                    RoomInfo roomInfo = Singleton <CHeroSelectBaseSystem> .instance.roomInfo;
                    if (roomInfo != null)
                    {
                        MemberInfo memberInfo = roomInfo.GetMemberInfo(fakeSelect.FakePlayer.ullUid);
                        if ((memberInfo != null) && (memberInfo.ChoiceHero[0] != null))
                        {
                            memberInfo.ChoiceHero[0].stBaseInfo.stCommonInfo.dwHeroID = dwHeroID;
                            Singleton <CHeroSelectNormalSystem> .GetInstance().RefreshHeroPanel(false, true);
                        }
                    }
                }
                else
                {
                    if (fakeSelect.FakePlayer.dwAcntPvpLevel <= 6)
                    {
                        ResFakeAcntHero hero2 = GameDataMgr.robotRookieHeroSkinDatabin.GetDataByKey(fakeSelect.selectedHero);
                        if (((hero2 != null) && (hero2.dwSkinID != 0)) && (UnityEngine.Random.Range(0, 0x2710) < hero2.dwSkinRate))
                        {
                            fakeSelect.selectedSkin = (int)hero2.dwSkinID;
                        }
                    }
                    else
                    {
                        ResFakeAcntHero hero3 = GameDataMgr.robotVeteranHeroSkinDatabin.GetDataByKey(fakeSelect.selectedHero);
                        if (((hero3 != null) && (hero3.dwSkinID != 0)) && (UnityEngine.Random.Range(0, 0x2710) < hero3.dwSkinRate))
                        {
                            fakeSelect.selectedSkin = (int)hero3.dwSkinID;
                        }
                    }
                    ResFakeAcntSkill dataByKey = GameDataMgr.robotPlayerSkillDatabin.GetDataByKey(fakeSelect.FakePlayer.dwAcntPvpLevel);
                    if (dataByKey != null)
                    {
                        int index = UnityEngine.Random.Range(0, dataByKey.SkillId.Length);
                        while (dataByKey.SkillId[index] == 0)
                        {
                            index = UnityEngine.Random.Range(0, dataByKey.SkillId.Length);
                        }
                        uint num8 = dataByKey.SkillId[index];
                        fakeSelect.selectedPlayerSkill = num8;
                    }
                    fakeSelect.bConfirmed = true;
                    HeroConfirmedPlayerNum++;
                    MemberInfo info5 = Singleton <CRoomSystem> .GetInstance().roomInfo.GetMemberInfo(fakeSelect.FakePlayer.ullUid);

                    if ((info5 != null) && (info5.ChoiceHero[0] != null))
                    {
                        info5.ChoiceHero[0].stBaseInfo.stCommonInfo.stSkill.dwSelSkillID = fakeSelect.selectedPlayerSkill;
                        info5.isPrepare = true;
                        Singleton <CHeroSelectNormalSystem> .GetInstance().RefreshHeroPanel(false, true);
                    }
                    if (HeroConfirmedPlayerNum == (FakeHeroSelectList.Count + 1))
                    {
                        ReqStartSingleWarmBattle();
                    }
                }
            }
        }