Exemple #1
0
        private void saveToDatabaseToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int stepNum = int.Parse(stepNumber.Text);
            int optNum  = int.Parse(optNumber.Text);
            int finNum  = int.Parse(finNumber.Text);

            if (!steptype_dictionary.ContainsKey(stepNum)) //Adds step data to the dictionary on last step if the forward/back button has not been pressed yet
            {
                advtext_dictionary.Remove(stepNum);
                advtext_dictionary.Add(stepNum, advanceText.Text);
                colitem_dictionary.Remove(stepNum);
                colitem_dictionary.Add(stepNum, collectItem.Text);
                money_dictionary.Remove(stepNum);
                money_dictionary.Add(stepNum, rewardMoney.Text);
                xp_dictionary.Remove(stepNum);
                xp_dictionary.Add(stepNum, rewardXp.Text);
                clxp_dictionary.Remove(stepNum);
                clxp_dictionary.Add(stepNum, rewardCLXp.Text);
                rp_dictionary.Remove(stepNum);
                rp_dictionary.Add(stepNum, rewardRp.Text);
                bp_dictionary.Remove(stepNum);
                bp_dictionary.Add(stepNum, rewardBp.Text);
                srctext_dictionary.Remove(stepNum);
                srctext_dictionary.Add(stepNum, sourceText.Text);
                stepitem_dictionary.Remove(stepNum);
                stepitem_dictionary.Add(stepNum, stepItem.Text);
                steptext_dictionary.Remove(stepNum);
                steptext_dictionary.Add(stepNum, stepText.Text);
                trgtname_dictionary.Remove(stepNum);
                trgtname_dictionary.Add(stepNum, targetName.Text);
                trgttext_dictionary.Remove(stepNum);
                trgttext_dictionary.Add(stepNum, targetText.Text);
                steptype_dictionary.Remove(stepNum);
                steptype_dictionary.Add(stepNum, eStepType.Text);
            }
            if (!opt_dictionary.ContainsKey(optNum))
            {
                opt_dictionary.Remove(stepNum);
                opt_dictionary.Add(stepNum, getOpt.Text);
            }
            if (!fin_dictionary.ContainsKey(finNum))
            {
                fin_dictionary.Remove(stepNum);
                fin_dictionary.Add(stepNum, getFin.Text);
            }

            try
            {
                #region String conversions
                string opt   = String.Join("|", Array.ConvertAll(opt_dictionary.Values.ToArray(), i => i.ToString()));
                string fin   = String.Join("|", Array.ConvertAll(fin_dictionary.Values.ToArray(), i => i.ToString()));
                string adv   = String.Join("|", Array.ConvertAll(advtext_dictionary.Values.ToArray(), i => i.ToString()));
                string col   = String.Join("|", Array.ConvertAll(colitem_dictionary.Values.ToArray(), i => i.ToString()));
                string mon   = String.Join("|", Array.ConvertAll(money_dictionary.Values.ToArray(), i => i.ToString()));
                string exp   = String.Join("|", Array.ConvertAll(xp_dictionary.Values.ToArray(), i => i.ToString()));
                string cxp   = String.Join("|", Array.ConvertAll(clxp_dictionary.Values.ToArray(), i => i.ToString()));
                string rxp   = String.Join("|", Array.ConvertAll(rp_dictionary.Values.ToArray(), i => i.ToString()));
                string bxp   = String.Join("|", Array.ConvertAll(bp_dictionary.Values.ToArray(), i => i.ToString()));
                string srctx = String.Join("|", Array.ConvertAll(srctext_dictionary.Values.ToArray(), i => i.ToString()));
                string stpit = String.Join("|", Array.ConvertAll(stepitem_dictionary.Values.ToArray(), i => i.ToString()));
                string stptx = String.Join("|", Array.ConvertAll(steptext_dictionary.Values.ToArray(), i => i.ToString()));
                string trgnm = String.Join("|", Array.ConvertAll(trgtname_dictionary.Values.ToArray(), i => i.ToString()));
                string trgtx = String.Join("|", Array.ConvertAll(trgttext_dictionary.Values.ToArray(), i => i.ToString()));
                string stptp = String.Join("|", Array.ConvertAll(steptype_dictionary.Values.ToArray(), i => i.ToString()));
                string acl   = String.Join("|", allowedClasses.SelectedItems.Cast <object>().Select(i => i.ToString()));
                //eStepType string replace values:

                StringBuilder stype = new StringBuilder(stptp);
                stype.Replace("Kill", "0");
                stype.Replace("killFinish", "1");
                stype.Replace("Deliver", "2");
                stype.Replace("deliverFinish", "3");
                stype.Replace("Interact", "4");
                stype.Replace("interactFinish", "5");
                stype.Replace("Whisper", "6");
                stype.Replace("whisperFinish", "7");
                stype.Replace("Search", "8");
                stype.Replace("searchFinish", "9");
                stype.Replace("Collect", "10");
                stype.Replace("collectFinish", "11");
                string steptp = stype.ToString();

                StringBuilder allcl = new StringBuilder(acl);
                allcl.Replace("Armsman", "2");
                allcl.Replace("Cabalist", "13");
                allcl.Replace("Cleric", "6");
                allcl.Replace("Friar", "10");
                allcl.Replace("Heretic", "33");
                allcl.Replace("Infiltrator", "9");
                allcl.Replace("Mercenary", "11");
                allcl.Replace("Minstrel", "4");
                allcl.Replace("Necromancer", "12");
                allcl.Replace("Paladin", "1");
                allcl.Replace("Reaver", "19");
                allcl.Replace("Scout", "3");
                allcl.Replace("Sorcerer", "8");
                allcl.Replace("Theurgist", "5");
                allcl.Replace("Wizard", "7");
                allcl.Replace("MaulerAlb", "60");
                allcl.Replace("Berserker", "31");
                allcl.Replace("Bonedancer", "30");
                allcl.Replace("Healer", "36");
                allcl.Replace("Hunter", "35");
                allcl.Replace("Runemaster", "29");
                allcl.Replace("Savage", "32");
                allcl.Replace("Shadowblade", "23");
                allcl.Replace("Shaman", "28");
                allcl.Replace("Skald", "24");
                allcl.Replace("Spiritmaster", "27");
                allcl.Replace("Thane", "21");
                allcl.Replace("Valkyrie", "34");
                allcl.Replace("Warlock", "59");
                allcl.Replace("Warrior", "22");
                allcl.Replace("MaulerMid", "61");
                allcl.Replace("Animist", "55");
                allcl.Replace("Bainshee", "39");
                allcl.Replace("Bard", "48");
                allcl.Replace("Blademaster", "43");
                allcl.Replace("Champion", "45");
                allcl.Replace("Druid", "47");
                allcl.Replace("Eldritch", "40");
                allcl.Replace("Enchanter", "41");
                allcl.Replace("Hero", "44");
                allcl.Replace("Mentalist", "42");
                allcl.Replace("Nightshade", "49");
                allcl.Replace("Ranger", "50");
                allcl.Replace("Valewalker", "56");
                allcl.Replace("Vampiir", "58");
                allcl.Replace("Warden", "46");
                allcl.Replace("MaulerHib", "62");
                string aclts = allcl.ToString();

                #endregion

                DatabaseManager.SetDatabaseConnection(Settings.Default.Hostname, Settings.Default.Port, Settings.Default.Database, Settings.Default.Username, Settings.Default.Password);
                DBDataQuest q = new DBDataQuest();
                q.ID                          = int.Parse(questID.Text);
                q.Name                        = questName.Text;
                q.StartType                   = (byte)(eStartType.SelectedIndex);
                q.StartName                   = startNPCName.Text;
                q.StartRegionID               = ushort.Parse(questNPCRegionID.Text);
                q.AcceptText                  = acceptText.Text;
                q.Description                 = description.Text;
                q.SourceText                  = srctx;  //serialized
                q.StepType                    = steptp; //serialized
                q.StepText                    = stptx;  //serialized
                q.StepItemTemplates           = stpit;  //serialized
                q.AdvanceText                 = adv;    //serialized
                q.TargetName                  = trgnm;  //serialized
                q.TargetText                  = trgtx;  //serialized
                q.CollectItemTemplate         = col;    //serialized
                q.MaxCount                    = byte.Parse(maxCount.Text);
                q.MinLevel                    = byte.Parse(questMinLevel.Text);
                q.MaxLevel                    = byte.Parse(questMaxLevel.Text);
                q.RewardMoney                 = mon; //serialized
                q.RewardXP                    = exp; //serialized
                q.RewardCLXP                  = cxp; //serialized
                q.RewardRP                    = rxp; //serialized
                q.RewardBP                    = bxp; //serialized
                q.OptionalRewardItemTemplates = opt;
                q.FinalRewardItemTemplates    = fin;
                q.FinishText                  = finishText.Text;
                q.QuestDependency             = questDependency.Text; //might need to serialize....if quest has multiple dependencies
                q.AllowedClasses              = aclts;                //serialized
                q.ClassType                   = questClassType.Text;
                DatabaseManager.Database.AddObject(q);

                MessageBox.Show("Quest added to the database!");
            }
            catch (Exception g)
            {
                MessageBox.Show(g.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void saveToDatabaseToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int stepNum = int.Parse(stepNumber.Text);
            int optNum  = int.Parse(optNumber.Text);
            int finNum  = int.Parse(finNumber.Text);

            if (!steptype_dictionary.ContainsKey(stepNum)) //Adds step data to the dictionary on last step if the forward/back button has not been pressed yet
            {
                advtext_dictionary.Remove(stepNum);
                advtext_dictionary.Add(stepNum, advanceText.Text);
                colitem_dictionary.Remove(stepNum);
                colitem_dictionary.Add(stepNum, collectItem.Text);
                money_dictionary.Remove(stepNum);
                money_dictionary.Add(stepNum, rewardMoney.Text);
                xp_dictionary.Remove(stepNum);
                xp_dictionary.Add(stepNum, rewardXp.Text);
                clxp_dictionary.Remove(stepNum);
                clxp_dictionary.Add(stepNum, rewardCLXp.Text);
                rp_dictionary.Remove(stepNum);
                rp_dictionary.Add(stepNum, rewardRp.Text);
                bp_dictionary.Remove(stepNum);
                bp_dictionary.Add(stepNum, rewardBp.Text);
                srctext_dictionary.Remove(stepNum);
                srctext_dictionary.Add(stepNum, sourceText.Text);
                stepitem_dictionary.Remove(stepNum);
                stepitem_dictionary.Add(stepNum, stepItem.Text);
                steptext_dictionary.Remove(stepNum);
                steptext_dictionary.Add(stepNum, stepText.Text);
                trgtname_dictionary.Remove(stepNum);
                trgtname_dictionary.Add(stepNum, targetName.Text);
                trgttext_dictionary.Remove(stepNum);
                trgttext_dictionary.Add(stepNum, targetText.Text);
                steptype_dictionary.Remove(stepNum);
                steptype_dictionary.Add(stepNum, eStepType.Text);
            }
            if (!opt_dictionary.ContainsKey(optNum))
            {
                opt_dictionary.Remove(stepNum);
                opt_dictionary.Add(stepNum, getOpt.Text);
            }
            if (!fin_dictionary.ContainsKey(finNum))
            {
                fin_dictionary.Remove(stepNum);
                fin_dictionary.Add(stepNum, getFin.Text);
            }

            try
            {
                #region String conversions
                string opt   = String.Join("|", Array.ConvertAll(opt_dictionary.Values.ToArray(), i => i.ToString()));
                string fin   = String.Join("|", Array.ConvertAll(fin_dictionary.Values.ToArray(), i => i.ToString()));
                string adv   = String.Join("|", Array.ConvertAll(advtext_dictionary.Values.ToArray(), i => i.ToString()));
                string col   = String.Join("|", Array.ConvertAll(colitem_dictionary.Values.ToArray(), i => i.ToString()));
                string mon   = String.Join("|", Array.ConvertAll(money_dictionary.Values.ToArray(), i => i.ToString()));
                string exp   = String.Join("|", Array.ConvertAll(xp_dictionary.Values.ToArray(), i => i.ToString()));
                string cxp   = String.Join("|", Array.ConvertAll(clxp_dictionary.Values.ToArray(), i => i.ToString()));
                string rxp   = String.Join("|", Array.ConvertAll(rp_dictionary.Values.ToArray(), i => i.ToString()));
                string bxp   = String.Join("|", Array.ConvertAll(bp_dictionary.Values.ToArray(), i => i.ToString()));
                string srctx = String.Join("|", Array.ConvertAll(srctext_dictionary.Values.ToArray(), i => i.ToString()));
                string stpit = String.Join("|", Array.ConvertAll(stepitem_dictionary.Values.ToArray(), i => i.ToString()));
                string stptx = String.Join("|", Array.ConvertAll(steptext_dictionary.Values.ToArray(), i => i.ToString()));
                string trgnm = String.Join("|", Array.ConvertAll(trgtname_dictionary.Values.ToArray(), i => i.ToString()));
                string trgtx = String.Join("|", Array.ConvertAll(trgttext_dictionary.Values.ToArray(), i => i.ToString()));
                string stptp = String.Join("|", Array.ConvertAll(steptype_dictionary.Values.ToArray(), i => i.ToString()));

                //eStepType string replace values:
                StringBuilder stype = new StringBuilder(stptp);
                stype.Replace("Kill", "0");
                stype.Replace("killFinish", "1");
                stype.Replace("Deliver", "2");
                stype.Replace("deliverFinish", "3");
                stype.Replace("Interact", "4");
                stype.Replace("interactFinish", "5");
                stype.Replace("Whisper", "6");
                stype.Replace("whisperFinish", "7");
                stype.Replace("Search", "8");
                stype.Replace("searchFinish", "9");
                stype.Replace("Collect", "10");
                stype.Replace("collectFinish", "11");
                string steptp = stype.ToString();

                #endregion

                DatabaseManager.SetDatabaseConnection(Settings.Default.Hostname, Settings.Default.Port, Settings.Default.Database, Settings.Default.Username, Settings.Default.Password);
                DBDataQuest q = new DBDataQuest();
                q.ID                          = int.Parse(questID.Text);
                q.Name                        = questName.Text;
                q.StartType                   = (byte)(eStartType.SelectedIndex);
                q.StartName                   = startNPCName.Text;
                q.StartRegionID               = ushort.Parse(questNPCRegionID.Text);
                q.AcceptText                  = acceptText.Text;
                q.Description                 = description.Text;
                q.SourceText                  = srctx;  //serialized
                q.StepType                    = steptp; //serialized
                q.StepText                    = stptx;  //serialized
                q.StepItemTemplates           = stpit;  //serialized
                q.AdvanceText                 = adv;    //serialized
                q.TargetName                  = trgnm;  //serialized
                q.TargetText                  = trgtx;  //serialized
                q.CollectItemTemplate         = col;    //serialized
                q.MaxCount                    = byte.Parse(maxCount.Text);
                q.MinLevel                    = byte.Parse(questMinLevel.Text);
                q.MaxLevel                    = byte.Parse(questMaxLevel.Text);
                q.RewardMoney                 = mon; //serialized
                q.RewardXP                    = exp; //serialized
                q.RewardCLXP                  = cxp; //serialized
                q.RewardRP                    = rxp; //serialized
                q.RewardBP                    = bxp; //serialized
                q.OptionalRewardItemTemplates = opt;
                q.FinalRewardItemTemplates    = fin;
                q.FinishText                  = finishText.Text;
                q.QuestDependency             = questDependency.Text; //might need to serialize....if quest has multiple dependencies
                q.AllowedClasses              = allowedClasses.Text;
                q.ClassType                   = questClassType.Text;
                DatabaseManager.Database.AddObject(q);

                MessageBox.Show("Quest added to the database!");
            }
            catch (Exception g)
            {
                MessageBox.Show(g.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }