예제 #1
0
    public void Load(string name)
    {
        if (isLoad)
        {
            return;
        }
        isLoad = true;


        byte[] bin     = DynamicFileControl.QueryFileContent(name);
        string content = StringHelper.ReadFromBytes(bin);

        LitJson.JSONNode json = LitJson.JSON.Parse(content);


        dataBattles = new List <DataBattle> ();
//		dataBattlesNormal = new Dictionary<int, DataBattle> ();
//		dataBattlesElite = new Dictionary<int, DataBattle> ();

        foreach (LitJson.JSONNode subNode in json.Childs)
        {
            DataBattle data = new DataBattle();
            data.Load(subNode);

            dataBattles.Add(data);
//			if(data.difficulty == DataConfig.MISSION_DIFFICULTY.NORMAL)
//			{
//				dataBattlesNormal.Add (data.chapter, data);
//			}
//			else
//			{
//				dataBattlesElite.Add (data.chapter, data);
//			}
        }
    }
예제 #2
0
 int CallProcInsertBattleEntry(MySqlConnection connection, MySqlTransaction transaction, DataBattle battle)
 {
     using (MySqlCommand command = new MySqlCommand("insert_battle_entry", connection, transaction))
     {
         command.CommandType = System.Data.CommandType.StoredProcedure;
         command.Parameters.AddWithValue("@bid", battle.Id);
         command.Parameters.AddWithValue("@did", battle.DungeonId);
         command.Parameters.AddWithValue("@bname", battle.Name);
         command.Parameters.AddWithValue("@bstam", battle.Stamina);
         return command.ExecuteNonQuery();
     }
 }
예제 #3
0
        public override void Handle(Session Session)
        {
            string ResponseJson = Session.GetResponseBodyAsString();

            EventListBattles result = JsonConvert.DeserializeObject <EventListBattles>(ResponseJson);

            FFRKProxy.Instance.GameState.ActiveDungeon = result;

            lock (FFRKProxy.Instance.Cache.SyncRoot)
            {
                result.Battles.Sort((x, y) => x.Id.CompareTo(y.Id));
                ushort stam_to_reach = 0;
                for (int i = 0; i < result.Battles.Count; ++i)
                {
                    DataBattle            battle = result.Battles[i];
                    DataCache.Battles.Key key    = new DataCache.Battles.Key {
                        BattleId = battle.Id
                    };
                    DataCache.Battles.Data data = null;
                    if (!FFRKProxy.Instance.Cache.Battles.TryGetValue(key, out data))
                    {
                        data = new DataCache.Battles.Data
                        {
                            DungeonId      = battle.DungeonId,
                            HistoSamples   = 1,
                            Name           = battle.Name,
                            Repeatable     = (i < result.Battles.Count - 1),
                            Samples        = 1,
                            Stamina        = battle.Stamina,
                            StaminaToReach = stam_to_reach
                        };

                        FFRKProxy.Instance.Cache.Battles.Update(key, data);
                    }

                    stam_to_reach += battle.Stamina;
                }
            }
            FFRKProxy.Instance.Database.BeginExecuteRequest(new DbOpRecordBattleList(result));
            FFRKProxy.Instance.RaiseListBattles(result);
        }
예제 #4
0
        public override void Handle(Session Session)
        {
            EventListBattles battles = JsonConvert.DeserializeObject <EventListBattles>(Session.GetResponseBodyAsString());

            FFRKProxy.Instance.GameState.ActiveDungeon = battles;
            lock (FFRKProxy.Instance.Cache.SyncRoot)
            {
                battles.Battles.Sort((Comparison <DataBattle>)((x, y) => x.Id.CompareTo(y.Id)));
                ushort num = 0;
                for (int index = 0; index < battles.Battles.Count; ++index)
                {
                    DataBattle battle = battles.Battles[index];
                    Key        key    = new Key()
                    {
                        BattleId = battle.Id
                    };
                    Data v = (Data)null;
                    if (!FFRKProxy.Instance.Cache.Battles.TryGetValue(key, out v))
                    {
                        v = new Data()
                        {
                            DungeonId      = battle.DungeonId,
                            HistoSamples   = 1U,
                            Name           = battle.Name,
                            Repeatable     = index < battles.Battles.Count - 1,
                            Samples        = 1U,
                            Stamina        = battle.Stamina,
                            StaminaToReach = num
                        };
                        FFRKProxy.Instance.Cache.Battles.Update(key, v);
                    }
                    num += battle.Stamina;
                }
            }
            FFRKProxy.Instance.RaiseListBattles(battles);
        }
예제 #5
0
        public void SetLastBattleData(DataBattle data)
        {
            Debug.LogWarning("!!!!!!!!!!!!!!!!!!!!!! SetLastBattleData() !!!!!!!!!!!!!!!!!!!!!!");
            string dlog = "missionID = " + data.MissionID;

            dlog += ",\t\t roundCount = " + data.Round_count;
            dlog += ",\t\t Win_idx = " + data.Win_idx;
            Debug.LogWarning(dlog);
            ClearBattleData();//clear first
            missionID    = (int)data.MissionID;
            roundCount   = data.Round_count;
            isPlayed     = false;
            isLastBattle = true;
            isWin        = !Convert.ToBoolean(data.Win_idx);
            foreach (xjgame.message.DropBag bag in data.dropsList)
            {
                DropBag drop_bag = new DropBag();
                drop_bag.type = (DropType)bag.Type;
                drop_bag.val  = bag.Value;
                winDropBags.Add(drop_bag);
            }
            addExp = data.Add_exp;
            //test
            if (Obj_MyselfPlayer.GetMe().currentAssistFriend == null)
            {
                Obj_MyselfPlayer.GetMe().currentAssistFriend = new AssistFriend();
                Obj_MyselfPlayer.GetMe().currentAssistFriend.guid = (long)data.Friendguid;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.name = data.Friendname;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.level = data.Friendlevel;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.cardLevel = data.FriendCardLev;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.friendShipNum = data.GetFriendPoint;
                if (data.IsFriend == 0)
                {
                    Obj_MyselfPlayer.GetMe().currentAssistFriend.isMyFriend = true;
                }
                else
                {
                    Obj_MyselfPlayer.GetMe().currentAssistFriend.isMyFriend = false;
                }
            }
            foreach (xjgame.message.BattleCard card in data.userCardList)
            {
                string log = "Card: slot_idx = " + card.Place_idx + ",\t\t cardid = " + card.CardID + ",\t\t guid = " + card.Cardguid;
                log += ",\t\t state = " + card.State;
                log += ",\t\t isfriend = " + card.Isfriend;
                log += ",\t\t commSkillID = " + card.CommSkillId;
                log += ",\t\t volSkillID = " + card.VolSkillId;
                log += ",\t\t combSkillID = " + card.CombSkillId;

                if (card.Place_idx < 6)
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.selfMembers.Add(member);
                    if (card.Isfriend == 1)
                    {
                        Obj_MyselfPlayer.GetMe().currentAssistFriend.cardGuiId = (long)card.Cardguid;
                        Obj_MyselfPlayer.GetMe().currentAssistFriend.cardTempleId = card.CardID;
                        Obj_MyselfPlayer.GetMe().battleArray[card.Place_idx] = (long)card.Cardguid;
                    }
                }
                else
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.otherMembers.Add(member);
                }
                Debug.LogWarning(log);
            }

            foreach (DataRound round in data.roundsList)
            {
                BattleTurn turn = new BattleTurn();
                foreach (DataAction action in round.actionsList)
                {
                    BattleStep step = new BattleStep();
                    foreach (DataSingleAction sact in action.attacker_actionsList)
                    {
                        string log = "Attack action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction attack = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo attBuf = new BuffInfo();
                                attBuf.buf_id    = buf.Buf_id;
                                attBuf.buf_value = buf.Buf_value;
                                attack.buff.Add(attBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        attack.slotIndex = sact.Card_idx;
                        attack.skillID   = sact.Skillid;
                        attack.attackHp  = sact.Att_value;
                        attack.harmType  = sact.Att_type;
                        attack.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        attack.curHp     = sact.Cur_hp;
                        if (sact.HasHeti_idx)
                        {
                            attack.hetiIndex = sact.Heti_idx;
                        }
                        step.attacks.Add(attack);
                        Debug.LogWarning(log);
                    }

                    foreach (DataSingleAction sact in action.be_attacker_actionsList)
                    {
                        string log = "Behit action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction behit = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo behitBuf = new BuffInfo();
                                behitBuf.buf_id    = buf.Buf_id;
                                behitBuf.buf_value = buf.Buf_value;
                                behit.buff.Add(behitBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        behit.slotIndex = sact.Card_idx;
                        behit.skillID   = sact.Skillid;
                        behit.attackHp  = sact.Att_value;
                        behit.harmType  = sact.Att_type;
                        behit.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        behit.curHp     = sact.Cur_hp;
                        step.behits.Add(behit);
                        Debug.LogWarning(log);
                    }
                    turn.battleSteps.Add(step);
                }
                battleRound.battleTurns.Add(turn);
            }
            Obj_MyselfPlayer.GetMe().SetBattleBeforeDate();
        }
 private void UpdateAllDropsForLastBattle(EventBattleInitiated battle)
 {
     if (battle == null)
     {
         this.listViewAllDrops.VirtualListSize = 0;
         this.mAllItems.Clear();
         this.mFilteredItems.Collection.Clear();
     }
     else
     {
         foreach (BasicItemDropStats basicItemDropStats in this.mAllItems.Where <BasicItemDropStats>((Func <BasicItemDropStats, bool>)(x => (int)x.BattleId == (int)battle.Battle.BattleId)))
         {
             ++basicItemDropStats.TimesRun;
             ++basicItemDropStats.TimesRunWithHistogram;
         }
         lock (FFRKProxy.Instance.Cache.SyncRoot)
         {
             foreach (DropEvent drop1 in battle.Battle.Drops)
             {
                 DropEvent drop = drop1;
                 if (drop.ItemType != DataEnemyDropItem.DropItemType.Gold && drop.ItemType != DataEnemyDropItem.DropItemType.Materia && drop.ItemType != DataEnemyDropItem.DropItemType.Potion)
                 {
                     BasicItemDropStats basicItemDropStats = this.mAllItems.Find((Predicate <BasicItemDropStats>)(x => (int)x.BattleId == (int)battle.Battle.BattleId && (int)x.ItemId == (int)drop.ItemId));
                     if (basicItemDropStats != null)
                     {
                         ++basicItemDropStats.TotalDrops;
                     }
                     else
                     {
                         EventListBattles activeDungeon = FFRKProxy.Instance.GameState.ActiveDungeon;
                         if (activeDungeon != null)
                         {
                             DataBattle dataBattle = activeDungeon.Battles.Find(x => (int)x.Id == (int)battle.Battle.BattleId);
                             if (dataBattle != null)
                             {
                                 uint   num1 = 1;
                                 uint   num2 = 1;
                                 string name = drop.ItemId.ToString();
                                 FFRKInspector.DataCache.Items.Data data1;
                                 if (FFRKProxy.Instance.Cache.Items.TryGetValue(new FFRKInspector.DataCache.Items.Key()
                                 {
                                     ItemId = drop.ItemId
                                 }, out data1))
                                 {
                                     name = data1.Name;
                                 }
                                 FFRKInspector.DataCache.Battles.Data data2;
                                 if (FFRKProxy.Instance.Cache.Battles.TryGetValue(new FFRKInspector.DataCache.Battles.Key()
                                 {
                                     BattleId = battle.Battle.BattleId
                                 }, out data2))
                                 {
                                     num1 = data2.Samples;
                                     num2 = data2.HistoSamples;
                                 }
                                 this.mAllItems.Add(new BasicItemDropStats()
                                 {
                                     BattleId      = battle.Battle.BattleId,
                                     BattleName    = dataBattle.Name,
                                     BattleStamina = dataBattle.Stamina,
                                     ItemId        = drop.ItemId,
                                     ItemName      = name,
                                     TimesRun      = num1,
                                     TotalDrops    = 1U
                                 });
                             }
                         }
                     }
                 }
             }
         }
         this.RebuildFilteredDropListAndInvalidate();
     }
 }
예제 #7
0
        public StringBuilder GetSummaryInformation(ComboBox comboBoxEnemySelection, CheckBox checkBoxCastTimes, CheckBox checkBoxEnumerate, CheckBox checkBoxRatesAsFractions, CheckBox checkBoxTranslate)
        {
            var itemNameGetter            = new ItemNameGetter();
            var statusVulnerabilityGetter = new StatusVulnerabilityGetter();
            var abilitySummaryHelper      = new AbilitySummaryHelper();

            var summary = new StringBuilder();

            if (FFRKProxy.Instance.GameState.ActiveDungeon != null)
            {
                var        activeDungeon = FFRKProxy.Instance.GameState.ActiveDungeon;
                var        battleId      = (int)FFRKProxy.Instance.GameState.ActiveBattle.Battle.BattleId;
                DataBattle dataBattle    = null;
                foreach (var battle in activeDungeon.Battles)
                {
                    if (battle.Id == battleId)
                    {
                        dataBattle = battle;
                    }
                }

                summary.Append(string.Format("*****\n\n##{0}  \n\n", dataBattle.Name));

                var medalConditions = GetMedalConditions(activeDungeon, battleId);
                if (medalConditions.Length > 0)
                {
                    summary.Append("**Medal Conditions:** " + medalConditions + "\n\n");
                }

                var prizes = activeDungeon.UserDungeon.Prizes;

                var dungeonPrizes = GetDungeonPrizes(prizes, itemNameGetter);
                if (dungeonPrizes.Length > 0)
                {
                    summary.Append(string.Format("**Clear Reward{0}:**  \n\n{1}\n", dungeonPrizes.Length != 1 ? "s" : (object)"", dungeonPrizes));
                }


                var masteryRewards = GetMasteryRewards(prizes, itemNameGetter);
                if (masteryRewards.Length > 0)
                {
                    summary.Append(string.Format("**Mastery Reward{0}:**  \n\n{1}\n", masteryRewards.Length != 1 ? "s" : (object)"", masteryRewards));
                }

                var firstClearRewards = GetFirstClearRewards(prizes, itemNameGetter);
                if (firstClearRewards.Length > 0)
                {
                    summary.Append(string.Format("**First Clear Reward{0}:**  \n\n{1}\n", firstClearRewards.Length != 1 ? "s" : (object)"", firstClearRewards));
                }
            }

            var basicEnemyParentInfoList = new List <BasicEnemyParentInfo>();

            foreach (var obj in comboBoxEnemySelection.Items)
            {
                basicEnemyParentInfoList.Add((BasicEnemyParentInfo)obj);
            }

            var hasStatusVulnerabilities = true;
            var statusVulnerabilities    = statusVulnerabilityGetter.GetStatusVulnerabilities(basicEnemyParentInfoList[0].Phases.First().EnemyStatusImmunity);

            foreach (var basicEnemyParentInfo in basicEnemyParentInfoList)
            {
                foreach (var phase in basicEnemyParentInfo.Phases)
                {
                    if (!statusVulnerabilities.Equals(statusVulnerabilityGetter.GetStatusVulnerabilities(phase.EnemyStatusImmunity)))
                    {
                        hasStatusVulnerabilities = false;
                    }
                }
            }

            AddEnemyStats(basicEnemyParentInfoList, summary, hasStatusVulnerabilities, statusVulnerabilityGetter);

            AddElementalResitances(summary, basicEnemyParentInfoList);

            AddBreakEffectiveness(summary, basicEnemyParentInfoList);

            if (hasStatusVulnerabilities)
            {
                summary.Append(string.Format("**Status Vulnerabilities{0}**: {1}  \n", basicEnemyParentInfoList.Count == 1 ? "" : (object)" (all)", statusVulnerabilities));
            }

            if (basicEnemyParentInfoList.Count == 1 && basicEnemyParentInfoList[0].Phases.Count() == 1)
            {
                summary.Append("\n##Moveset\n\n");
            }
            else
            {
                summary.Append("\n##Movesets\n\n");
            }

            var hasVariableCastTimes = true;
            var enemyCastTime        = basicEnemyParentInfoList[0].Phases.First().EnemyCastTime;

            foreach (var basicEnemyParentInfo in basicEnemyParentInfoList)
            {
                foreach (var phase in basicEnemyParentInfo.Phases)
                {
                    if (phase.EnemyCastTime.Equals("Variable") || !phase.EnemyCastTime.Equals(enemyCastTime))
                    {
                        hasVariableCastTimes = false;
                    }
                }
            }

            if (hasVariableCastTimes)
            {
                var str2 = enemyCastTime.Replace("sec", "seconds");
                if (str2.Equals("1 seconds"))
                {
                    str2 = "1 second";
                }
                summary.Append(string.Format(
                                   "All (non-interrupt) enemy abilities in this fight have a cast time of {0}.\n\n", str2));
            }

            AppendBossHealthGatesAndMoveSummary(comboBoxEnemySelection, checkBoxCastTimes, checkBoxEnumerate, checkBoxRatesAsFractions, checkBoxTranslate, basicEnemyParentInfoList, summary, hasVariableCastTimes, abilitySummaryHelper);

            AppendDataAiArgs(summary, basicEnemyParentInfoList);
            return(summary);
        }
예제 #8
0
    public static PacketDistributed CreatePacket(MessageID packetID)
    {
        PacketDistributed packet = null;

        switch (packetID)
        {
        case MessageID.CSLogin: { packet = new CSLogin(); } break;

        case MessageID.SCLoginRet: { packet = new SCLoginRet(); } break;

        case MessageID.CSLoginThirdPlatform: { packet = new CSLoginThirdPlatform(); } break;

        case MessageID.SCLoginThirdPlatformRet: { packet = new SCLoginThirdPlatformRet(); } break;

        case MessageID.CSThirdPlatformVerifyCharge: { packet = new CSThirdPlatformVerifyCharge(); } break;

        case MessageID.SCThirdPlatformVerifyCharge: { packet = new SCThirdPlatformVerifyCharge(); } break;

        case MessageID.CSAskUserData: { packet = new CSAskUserData(); } break;

        case MessageID.PBUserBaseData: { packet = new PBUserBaseData(); } break;

        case MessageID.PBUserBagData: { packet = new PBUserBagData(); } break;

        case MessageID.PBUserCopyData: { packet = new PBUserCopyData(); } break;

        case MessageID.SCAskUserData: { packet = new SCAskUserData(); } break;

        case MessageID.MissionInfo: { packet = new MissionInfo(); } break;

        case MessageID.CopyInfo: { packet = new CopyInfo(); } break;

        case MessageID.ItemInfo: { packet = new ItemInfo(); } break;

        case MessageID.CardInfo: { packet = new CardInfo(); } break;

        case MessageID.DropBag: { packet = new DropBag(); } break;

        case MessageID.BattleCard: { packet = new BattleCard(); } break;

        case MessageID.CSBattleData: { packet = new CSBattleData(); } break;

        case MessageID.DataBuffInfo: { packet = new DataBuffInfo(); } break;

        case MessageID.DataSingleAction: { packet = new DataSingleAction(); } break;

        case MessageID.DataAction: { packet = new DataAction(); } break;

        case MessageID.DataRound: { packet = new DataRound(); } break;

        case MessageID.DataBattle: { packet = new DataBattle(); } break;

        case MessageID.SCBattleData: { packet = new SCBattleData(); } break;

        case MessageID.CSPVPBattleData: { packet = new CSPVPBattleData(); } break;

        case MessageID.SCPVPBattleData: { packet = new SCPVPBattleData(); } break;

        case MessageID.CSChangeMember: { packet = new CSChangeMember(); } break;

        case MessageID.SCChangeMember: { packet = new SCChangeMember(); } break;

        case MessageID.CSCardCombining: { packet = new CSCardCombining(); } break;

        case MessageID.SCCardCombiningRet: { packet = new SCCardCombiningRet(); } break;

        case MessageID.CSCardEvolve: { packet = new CSCardEvolve(); } break;

        case MessageID.SCCardEvolveRet: { packet = new SCCardEvolveRet(); } break;

        case MessageID.CSCardStrengthen: { packet = new CSCardStrengthen(); } break;

        case MessageID.SCCardStrengthenRet: { packet = new SCCardStrengthenRet(); } break;

        case MessageID.CSFriendsList: { packet = new CSFriendsList(); } break;

        case MessageID.SCFriendsList: { packet = new SCFriendsList(); } break;

        case MessageID.CSSearchFriend: { packet = new CSSearchFriend(); } break;

        case MessageID.SCSearchFriend: { packet = new SCSearchFriend(); } break;

        case MessageID.CSGiveFriendPower: { packet = new CSGiveFriendPower(); } break;

        case MessageID.SCGiveFriendPower: { packet = new SCGiveFriendPower(); } break;

        case MessageID.CSGetFriendPower: { packet = new CSGetFriendPower(); } break;

        case MessageID.SCGetFriendPower: { packet = new SCGetFriendPower(); } break;

        case MessageID.CSADDFriend: { packet = new CSADDFriend(); } break;

        case MessageID.SCADDFriend: { packet = new SCADDFriend(); } break;

        case MessageID.CSDeleteFriend: { packet = new CSDeleteFriend(); } break;

        case MessageID.SCDeleteFriend: { packet = new SCDeleteFriend(); } break;

        case MessageID.CSGetRandomAssistanceList: { packet = new CSGetRandomAssistanceList(); } break;

        case MessageID.SCGetRandomAssistanceList: { packet = new SCGetRandomAssistanceList(); } break;

        case MessageID.PBFriend: { packet = new PBFriend(); } break;

        case MessageID.CSSellCard: { packet = new CSSellCard(); } break;

        case MessageID.SCSellCard: { packet = new SCSellCard(); } break;

        case MessageID.SCErrorMsg: { packet = new SCErrorMsg(); } break;

        case MessageID.CSMailList: { packet = new CSMailList(); } break;

        case MessageID.SCMailList: { packet = new SCMailList(); } break;

        case MessageID.PBMail: { packet = new PBMail(); } break;

        case MessageID.CSMailDelete: { packet = new CSMailDelete(); } break;

        case MessageID.SCMailDelete: { packet = new SCMailDelete(); } break;

        case MessageID.CSMailSend: { packet = new CSMailSend(); } break;

        case MessageID.SCMailSend: { packet = new SCMailSend(); } break;

        case MessageID.CSMailFriend: { packet = new CSMailFriend(); } break;

        case MessageID.SCMailFriend: { packet = new SCMailFriend(); } break;

        case MessageID.CSMailSystem: { packet = new CSMailSystem(); } break;

        case MessageID.SCMailSystem: { packet = new SCMailSystem(); } break;

        case MessageID.CSMailRead: { packet = new CSMailRead(); } break;

        case MessageID.SCMailRead: { packet = new SCMailRead(); } break;

        case MessageID.CSGMcmds: { packet = new CSGMcmds(); } break;

        case MessageID.SCGMcmds: { packet = new SCGMcmds(); } break;

        case MessageID.CSTaskList: { packet = new CSTaskList(); } break;

        case MessageID.SCTaskList: { packet = new SCTaskList(); } break;

        case MessageID.PBTask: { packet = new PBTask(); } break;

        case MessageID.CSFinishTask: { packet = new CSFinishTask(); } break;

        case MessageID.SCFinishTask: { packet = new SCFinishTask(); } break;

        case MessageID.CSShop: { packet = new CSShop(); } break;

        case MessageID.SCShopRet: { packet = new SCShopRet(); } break;

        case MessageID.CSGamble: { packet = new CSGamble(); } break;

        case MessageID.SCGambleRet: { packet = new SCGambleRet(); } break;

        case MessageID.CSGuide: { packet = new CSGuide(); } break;

        case MessageID.SCGuide: { packet = new SCGuide(); } break;

        case MessageID.ButtonInfo: { packet = new ButtonInfo(); } break;

        case MessageID.CSChangeName: { packet = new CSChangeName(); } break;

        case MessageID.SCChangeName: { packet = new SCChangeName(); } break;

        case MessageID.CSBindAccount: { packet = new CSBindAccount(); } break;

        case MessageID.SCBindAccount: { packet = new SCBindAccount(); } break;

        case MessageID.CSAskPVPList: { packet = new CSAskPVPList(); } break;

        case MessageID.SCAskPVPList: { packet = new SCAskPVPList(); } break;

        case MessageID.PVPUserBaseData: { packet = new PVPUserBaseData(); } break;

        case MessageID.CSAskScoreShopFresh: { packet = new CSAskScoreShopFresh(); } break;

        case MessageID.SCAskScoreShopFresh: { packet = new SCAskScoreShopFresh(); } break;

        case MessageID.CSPVPShop: { packet = new CSPVPShop(); } break;

        case MessageID.SCPVPShopRet: { packet = new SCPVPShopRet(); } break;

        case MessageID.ProductInfo: { packet = new ProductInfo(); } break;

        case MessageID.CSProductList: { packet = new CSProductList(); } break;

        case MessageID.SCProductList: { packet = new SCProductList(); } break;

        case MessageID.CSClearBattleData: { packet = new CSClearBattleData(); } break;

        case MessageID.SCClearBattleData: { packet = new SCClearBattleData(); } break;

        case MessageID.CSRandomCardFree: { packet = new CSRandomCardFree(); } break;

        case MessageID.SCRandomCardFree: { packet = new SCRandomCardFree(); } break;

        case MessageID.CS20038: { packet = new CS20038(); } break;

        case MessageID.SC30038: { packet = new SC30038(); } break;

        case MessageID.CS20039: { packet = new CS20039(); } break;

        case MessageID.SC30039: { packet = new SC30039(); } break;

        case MessageID.CS20040: { packet = new CS20040(); } break;

        case MessageID.SC30040: { packet = new SC30040(); } break;

        case MessageID.CS20041: { packet = new CS20041(); } break;

        case MessageID.SC30041: { packet = new SC30041(); } break;

        case MessageID.CSscode: { packet = new CSscode(); } break;

        case MessageID.SCscode: { packet = new SCscode(); } break;

        case MessageID.CSCYouProductList: { packet = new CSCYouProductList(); } break;

        case MessageID.SCCYouProductList: { packet = new SCCYouProductList(); } break;

        case MessageID.CSCYouVerifyCharge: { packet = new CSCYouVerifyCharge(); } break;

        case MessageID.SCCYouVerifyCharge: { packet = new SCCYouVerifyCharge(); } break;

        case MessageID.CSPPProductList: { packet = new CSPPProductList(); } break;

        case MessageID.SCPPProductList: { packet = new SCPPProductList(); } break;

        case MessageID.CSPPVerifyCharge: { packet = new CSPPVerifyCharge(); } break;

        case MessageID.SCPPVerifyCharge: { packet = new SCPPVerifyCharge(); } break;

        case MessageID.CSBuyMoney: { packet = new CSBuyMoney(); } break;

        case MessageID.SCBuyMoney: { packet = new SCBuyMoney(); } break;

        case MessageID.CSBuyPower: { packet = new CSBuyPower(); } break;

        case MessageID.SCBuyPower: { packet = new SCBuyPower(); } break;

        case MessageID.CSSDKLoginThirdPlatform: { packet = new CSSDKLoginThirdPlatform(); } break;

        case MessageID.SCSDKLoginThirdPlatformRet: { packet = new SCSDKLoginThirdPlatformRet(); } break;

        case MessageID.CSSDKRefresh: { packet = new CSSDKRefresh(); } break;

        case MessageID.SCSDKRefreshRet: { packet = new SCSDKRefreshRet(); } break;

        case MessageID.CSCommonProductList: { packet = new CSCommonProductList(); } break;

        case MessageID.SCCommonProductListRet: { packet = new SCCommonProductListRet(); } break;

        case MessageID.CSCYouPayVerifyCharge: { packet = new CSCYouPayVerifyCharge(); } break;

        case MessageID.SCCYouPayVerifyChargeRet: { packet = new SCCYouPayVerifyChargeRet(); } break;

        case MessageID.CSGGL: { packet = new CSGGL(); } break;

        case MessageID.SCGGL: { packet = new SCGGL(); } break;

        case MessageID.CSWuxingActivation: { packet = new CSWuxingActivation(); } break;

        case MessageID.SCWuxingActivation: { packet = new SCWuxingActivation(); } break;

        case MessageID.CSWuxingLevelup: { packet = new CSWuxingLevelup(); } break;

        case MessageID.SCWuxingLevelup: { packet = new SCWuxingLevelup(); } break;

        case MessageID.CSWuxingReset: { packet = new CSWuxingReset(); } break;

        case MessageID.SCWuxingReset: { packet = new SCWuxingReset(); } break;

        case MessageID.WuxingInfo: { packet = new WuxingInfo(); } break;

        case MessageID.SuipianInfo: { packet = new SuipianInfo(); } break;

        case MessageID.FengshuiInfo: { packet = new FengshuiInfo(); } break;

        case MessageID.CSBGZ: { packet = new CSBGZ(); } break;

        case MessageID.SCBGZ: { packet = new SCBGZ(); } break;

        case MessageID.MonthCardInfo: { packet = new MonthCardInfo(); } break;

        case MessageID.CSMonthCardGetDollar: { packet = new CSMonthCardGetDollar(); } break;

        case MessageID.SCMonthCardGetDollar: { packet = new SCMonthCardGetDollar(); } break;

        case MessageID.MonthReward: { packet = new MonthReward(); } break;

        case MessageID.CSMonthCardInfo: { packet = new CSMonthCardInfo(); } break;

        case MessageID.SCMonthCardInfo: { packet = new SCMonthCardInfo(); } break;

        case MessageID.CSFriendMailDelete: { packet = new CSFriendMailDelete(); } break;

        case MessageID.SCFriendMailDelete: { packet = new SCFriendMailDelete(); } break;

        case MessageID.CSStudySkill: { packet = new CSStudySkill(); } break;

        case MessageID.SCStudySkill: { packet = new SCStudySkill(); } break;

        case MessageID.CSStudySkillUpdate: { packet = new CSStudySkillUpdate(); } break;

        case MessageID.SCStudySkillUpdate: { packet = new SCStudySkillUpdate(); } break;

        case MessageID.CSQxzbPVPDataAsk: { packet = new CSQxzbPVPDataAsk(); } break;

        case MessageID.SCQxzbPVPDataAsk: { packet = new SCQxzbPVPDataAsk(); } break;

        case MessageID.CSQxzbBattle: { packet = new CSQxzbBattle(); } break;

        case MessageID.SCQxzbBattle: { packet = new SCQxzbBattle(); } break;

        case MessageID.CSQxzbPVPClearCD: { packet = new CSQxzbPVPClearCD(); } break;

        case MessageID.SCQxzbPVPClearCD: { packet = new SCQxzbPVPClearCD(); } break;

        case MessageID.CSQxzbGetReward: { packet = new CSQxzbGetReward(); } break;

        case MessageID.SCQxzbGetReward: { packet = new SCQxzbGetReward(); } break;

        case MessageID.CSPaiTaBattleData: { packet = new CSPaiTaBattleData(); } break;

        case MessageID.SCPaiTaBattleData: { packet = new SCPaiTaBattleData(); } break;

        case MessageID.CSClearPaiTaBattleData: { packet = new CSClearPaiTaBattleData(); } break;

        case MessageID.SCClearPaiTaBattleData: { packet = new SCClearPaiTaBattleData(); } break;

        case MessageID.CSAskWorldBossInfo: { packet = new CSAskWorldBossInfo(); } break;

        case MessageID.SCAskWorldBossInfo: { packet = new SCAskWorldBossInfo(); } break;

        case MessageID.WorldBoss: { packet = new WorldBoss(); } break;

        case MessageID.WorldBossKillInfo: { packet = new WorldBossKillInfo(); } break;

        case MessageID.WorldBossAttInfo: { packet = new WorldBossAttInfo(); } break;

        case MessageID.WorldBossDamageRankInfo: { packet = new WorldBossDamageRankInfo(); } break;

        case MessageID.CSAskWorldBossBattle: { packet = new CSAskWorldBossBattle(); } break;

        case MessageID.SCAskWorldBossBattle: { packet = new SCAskWorldBossBattle(); } break;

        case MessageID.CSWorldBossAddZhufu: { packet = new CSWorldBossAddZhufu(); } break;

        case MessageID.SCWorldBossAddZhufu: { packet = new SCWorldBossAddZhufu(); } break;

        case MessageID.CSWorldBossResurgence: { packet = new CSWorldBossResurgence(); } break;

        case MessageID.SCWorldBossResurgence: { packet = new SCWorldBossResurgence(); } break;

        case MessageID.CSAskActivity: { packet = new CSAskActivity(); } break;

        case MessageID.SCAskActivity: { packet = new SCAskActivity(); } break;

        case MessageID.ActivityInfo: { packet = new ActivityInfo(); } break;

        case MessageID.ChangeCardInfo: { packet = new ChangeCardInfo(); } break;

        case MessageID.cardGuidAndTempleID: { packet = new cardGuidAndTempleID(); } break;

        case MessageID.CSAskChangeCardList: { packet = new CSAskChangeCardList(); } break;

        case MessageID.SCAskChangeCardList: { packet = new SCAskChangeCardList(); } break;

        case MessageID.CSChangeCardConfirm: { packet = new CSChangeCardConfirm(); } break;

        case MessageID.SCChangeCardConfirm: { packet = new SCChangeCardConfirm(); } break;

        case MessageID.CSWorldBossWeekRank: { packet = new CSWorldBossWeekRank(); } break;

        case MessageID.SCWorldBossWeekRank: { packet = new SCWorldBossWeekRank(); } break;

        case MessageID.CSWorldBossWeekReward: { packet = new CSWorldBossWeekReward(); } break;

        case MessageID.SCWorldBossWeekReward: { packet = new SCWorldBossWeekReward(); } break;

        case MessageID.CSTaskOver: { packet = new CSTaskOver(); } break;

        case MessageID.SCTaskOver: { packet = new SCTaskOver(); } break;

        case MessageID.PBYunyingHuodong: { packet = new PBYunyingHuodong(); } break;

        case MessageID.CSYunyingHuodong: { packet = new CSYunyingHuodong(); } break;

        case MessageID.SCYunyingHuodong: { packet = new SCYunyingHuodong(); } break;

        case MessageID.CSGooglePayVerifyCharge: { packet = new CSGooglePayVerifyCharge(); } break;

        case MessageID.SCGooglePayVerifyChargeRet: { packet = new SCGooglePayVerifyChargeRet(); } break;
        }
        if (null != packet)
        {
            packet.packetID = packetID;
        }
        //netActionTime = DateTime.Now.ToFileTimeUtc();
        return(packet);
    }
예제 #9
0
        void UpdateAllDropsForLastBattle(EventBattleInitiated battle)
        {
            if (battle == null)
            {
                listViewAllDrops.VirtualListSize = 0;
                mAllItems.Clear();
                mFilteredItems.Collection.Clear();
                return;
            }

            foreach (BasicItemDropStats stats in mAllItems.Where(x => x.BattleId == battle.Battle.BattleId))
            {
                // Update the times_run field of every item that matches the last battle.  If we don't do
                // this here in a separate loop, it will only happen for items that actually dropped in
                // the following loop.
                stats.TimesRun++;
                stats.TimesRunWithHistogram++;
            }

            lock (FFRKProxy.Instance.Cache.SyncRoot)
            {
                foreach (DropEvent drop in battle.Battle.Drops)
                {
                    if (drop.ItemType == DataEnemyDropItem.DropItemType.Gold)
                    {
                        continue;
                    }

                    if (drop.ItemType == DataEnemyDropItem.DropItemType.Materia)
                    {
                        continue;
                    }

                    if (drop.ItemType == DataEnemyDropItem.DropItemType.Potion)
                    {
                        continue;
                    }

                    BasicItemDropStats match = mAllItems.Find(x => (x.BattleId == battle.Battle.BattleId) &&
                                                              (x.ItemId == drop.ItemId));
                    if (match != null)
                    {
                        ++match.TotalDrops;
                        continue;
                    }

                    EventListBattles this_battle_list = FFRKProxy.Instance.GameState.ActiveDungeon;
                    if (this_battle_list == null)
                    {
                        continue;
                    }

                    DataBattle this_battle = this_battle_list.Battles.Find(x => x.Id == battle.Battle.BattleId);
                    if (this_battle == null)
                    {
                        continue;
                    }

                    uint   times_run       = 1;
                    uint   histo_times_run = 1;
                    string item_name       = drop.ItemId.ToString();
                    DataCache.Items.Data   item_data;
                    DataCache.Battles.Data battle_data;

                    if (FFRKProxy.Instance.Cache.Items.TryGetValue(new DataCache.Items.Key {
                        ItemId = drop.ItemId
                    }, out item_data))
                    {
                        item_name = item_data.Name;
                    }
                    if (FFRKProxy.Instance.Cache.Battles.TryGetValue(new DataCache.Battles.Key {
                        BattleId = battle.Battle.BattleId
                    }, out battle_data))
                    {
                        // Get the times_run from the cache, and add 1 to it.
                        times_run       = battle_data.Samples;
                        histo_times_run = battle_data.HistoSamples;
                    }

                    mAllItems.Add(
                        new BasicItemDropStats
                    {
                        BattleId      = battle.Battle.BattleId,
                        BattleName    = this_battle.Name,
                        BattleStamina = this_battle.Stamina,
                        ItemId        = drop.ItemId,
                        ItemName      = item_name,
                        TimesRun      = times_run,
                        TotalDrops    = 1,
                    });
                }
            }
            RebuildFilteredDropListAndInvalidate();
        }
예제 #10
0
 int CallProcInsertBattleEntry(MySqlConnection connection, MySqlTransaction transaction, DataBattle battle)
 {
     using (MySqlCommand command = new MySqlCommand("insert_battle_entry", connection, transaction))
     {
         command.CommandType = System.Data.CommandType.StoredProcedure;
         command.Parameters.AddWithValue("@bid", battle.Id);
         command.Parameters.AddWithValue("@did", battle.DungeonId);
         command.Parameters.AddWithValue("@bname", battle.Name);
         command.Parameters.AddWithValue("@bstam", battle.Stamina);
         return(command.ExecuteNonQuery());
     }
 }