示例#1
0
        private static void _loadDataQuest(AbstractDb <int> db, string file)
        {
            var table = db.Table;

            TextFileHelper.LatestFile = file;

            try {
                foreach (string[] elements in TextFileHelper.GetElementsInt(db.ProjectDatabase.MetaGrf.GetData(file)))
                {
                    int itemId = Int32.Parse(elements[0]);

                    table.SetRaw(itemId, ClientQuestsAttributes.Name, elements[1]);
                    table.SetRaw(itemId, ClientQuestsAttributes.SG, elements[2]);
                    table.SetRaw(itemId, ClientQuestsAttributes.QUE, elements[3]);
                    table.SetRaw(itemId, ClientQuestsAttributes.FullDesc, elements[4]);
                    table.SetRaw(itemId, ClientQuestsAttributes.ShortDesc, elements[5]);
                }

                Debug.Ignore(() => DbDebugHelper.OnLoaded(db.DbSource, db.ProjectDatabase.MetaGrf.FindTkPath(file), db));
            }
            catch (Exception err) {
                Debug.Ignore(() => DbDebugHelper.OnExceptionThrown(db.DbSource, file, db));
                throw new Exception(TextFileHelper.GetLastError(), err);
            }
        }
示例#2
0
        private void _menuItemUpdateClientQuests_Click(object sender, RoutedEventArgs e)
        {
            try {
                var tab = FindTopmostTab();

                if (tab == null)
                {
                    return;
                }

                string file = PathRequest.OpenFileCde("fileName", "iRO-questid2display.txt");

                if (file != null)
                {
                    var db    = ProjectDatabase.GetDb <int>(ServerDbs.CQuests);
                    var table = db.Table;

                    try {
                        table.Commands.BeginNoDelay();

                        foreach (string[] elements in TextFileHelper.GetElementsInt(File.ReadAllBytes(file)))
                        {
                            int itemId = Int32.Parse(elements[0]);
                            var tuple  = table.TryGetTuple(itemId);

                            if (tuple != null)
                            {
                                DbIOClientQuests.SetQuestValue(table, tuple, elements, 1);
                                table.Set(itemId, ClientQuestsAttributes.SG, elements[2]);
                                table.Set(itemId, ClientQuestsAttributes.QUE, elements[3]);
                                DbIOClientQuests.SetQuestValue(table, tuple, elements, 4);
                                DbIOClientQuests.SetQuestValue(table, tuple, elements, 5);
                            }
                            else
                            {
                                ReadableTuple <int> newTuple = new ReadableTuple <int>(itemId, ClientQuestsAttributes.AttributeList);
                                table.Commands.AddTuple(itemId, newTuple);
                                table.Commands.Set(newTuple, ClientQuestsAttributes.Name, elements[1]);
                                table.Commands.Set(newTuple, ClientQuestsAttributes.SG, elements[2]);
                                table.Commands.Set(newTuple, ClientQuestsAttributes.QUE, elements[3]);
                                table.Commands.Set(newTuple, ClientQuestsAttributes.FullDesc, elements[4]);
                                table.Commands.Set(newTuple, ClientQuestsAttributes.ShortDesc, elements[5]);
                            }
                        }

                        var db2 = db.ProjectDatabase.GetMetaTable <int>(ServerDbs.Quests);

                        foreach (var quest in db2.FastItems)
                        {
                            var id    = quest.Key;
                            var tuple = table.TryGetTuple(id);

                            if (tuple != null)
                            {
                                DbIOClientQuests.SetQuestValue(table, tuple, quest.GetValue <string>(ServerQuestsAttributes.QuestTitle), ClientQuestsAttributes.Name.Index);
                            }
                            else
                            {
                                ReadableTuple <int> newTuple = new ReadableTuple <int>(id, ClientQuestsAttributes.AttributeList);
                                table.Commands.AddTuple(id, newTuple);
                                table.Commands.Set(newTuple, ClientQuestsAttributes.Name, quest.GetValue <string>(ServerQuestsAttributes.QuestTitle));
                                table.Commands.Set(newTuple, ClientQuestsAttributes.SG, "SG_FEEL");
                                table.Commands.Set(newTuple, ClientQuestsAttributes.QUE, "QUE_NOIMAGE");
                                table.Commands.Set(newTuple, ClientQuestsAttributes.FullDesc, "...");
                                table.Commands.Set(newTuple, ClientQuestsAttributes.ShortDesc, "");
                            }
                        }

                        Debug.Ignore(() => DbDebugHelper.OnLoaded(db.DbSource, db.ProjectDatabase.MetaGrf.FindTkPath(file), db));
                    }
                    catch (Exception err) {
                        table.Commands.CancelEdit();
                        ErrorHandler.HandleException(err);
                    }
                    finally {
                        table.Commands.End();
                    }
                }
            }
            catch (Exception err) {
                ErrorHandler.HandleException(err);
            }
        }