Пример #1
0
        public static void LoadNPCsAnswers()
        {
            lock (DatabaseHandler.ConnectionLocker)
            {
                var sqlText = "SELECT * FROM datas_npcs_answers";
                var sqlCommand = new MySqlCommand(sqlText, DatabaseHandler.Connection);

                var sqlReader = sqlCommand.ExecuteReader();

                while (sqlReader.Read())
                {
                    var answer = new Models.NPC.NPCsAnswer();

                    answer.AnswerID = sqlReader.GetInt32("answerID");
                    answer.Effects = sqlReader.GetString("effects");

                    foreach (var condi in sqlReader.GetString("conditions").Split('&'))
                    {
                        if (condi == "")
                            continue;

                        var condiInfos = condi.Split(';');
                        var condiObject = new Realm.World.Conditions.NPCConditions();

                        condiObject.CondiID = int.Parse(condiInfos[0]);
                        condiObject.Args = condiInfos[1];

                        lock(answer.Conditions)
                            answer.Conditions.Add(condiObject);
                    }

                    lock(AnswersList)
                        AnswersList.Add(answer);
                }

                sqlReader.Close();
            }

            Utilities.Loggers.StatusLogger.Write(string.Format("Loaded @'{0}' npcsAnswers@ from the database !", AnswersList.Count));
        }
Пример #2
0
        public static void LoadNPCsQuestions()
        {
            lock (DatabaseHandler.ConnectionLocker)
            {
                var sqlText = "SELECT * FROM datas_npcs_questions";
                var sqlCommand = new MySqlCommand(sqlText, DatabaseHandler.Connection);

                var sqlReader = sqlCommand.ExecuteReader();

                while (sqlReader.Read())
                {
                    var question = new Models.NPC.NPCsQuestion();
                    question.QuestionID = sqlReader.GetInt32("questionID");
                    question.RescueQuestionID = sqlReader.GetInt32("rescueQuestion");

                    foreach (var answer in sqlReader.GetString("answers").Split(';'))
                    {
                        if (answer == "")
                            continue;

                        lock(question.Answers)
                            question.Answers.Add(AnswersList.First(x => x.AnswerID == int.Parse(answer)));
                    }

                    foreach (var condi in sqlReader.GetString("conditions").Split('&'))
                    {
                        if (condi == "")
                            continue;

                        var condiInfos = condi.Split(';');
                        var condiObject = new Realm.World.Conditions.NPCConditions();

                        condiObject.CondiID = int.Parse(condiInfos[0]);
                        condiObject.Args = condiInfos[1];

                        lock(question.Conditions)
                            question.Conditions.Add(condiObject);
                    }

                    lock(QuestionsList)
                        QuestionsList.Add(question);
                }

                sqlReader.Close();
            }

            foreach (var question in QuestionsList.Where(x => x.RescueQuestionID != -1))
                question.RescueQuestion = QuestionsList.First(x => x.QuestionID == question.RescueQuestionID);

            Utilities.Loggers.StatusLogger.Write(string.Format("Loaded @'{0}' npcsQuestions@ from the database !", QuestionsList.Count));
        }