示例#1
0
        public static string CreatureTrainer()
        {
            if (Storage.CreatureTrainers.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.trainer))
            {
                return(string.Empty);
            }

            return(SQLUtil.Compare(Storage.CreatureTrainers, SQLDatabase.Get(Storage.CreatureTrainers), StoreNameType.None));
        }
示例#2
0
        public static string AreaTriggerCreatePropertiesSplinePointData()
        {
            if (Storage.AreaTriggerCreatePropertiesSplinePoints.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.areatrigger_create_properties_spline_point))
            {
                return(string.Empty);
            }

            var templateDb = SQLDatabase.Get(Storage.AreaTriggerCreatePropertiesSplinePoints);

            foreach (var splinePoint in Storage.AreaTriggerCreatePropertiesSplinePoints)
            {
                var spellAreaTriggerTuple = Storage.Objects.Where(obj => obj.Key == splinePoint.Item1.areatriggerGuid).First();
                AreaTriggerCreateProperties areaTrigger = (AreaTriggerCreateProperties)spellAreaTriggerTuple.Value.Item1;

                splinePoint.Item1.spellId = areaTrigger.spellId;
                splinePoint.Item1.AreaTriggerCreatePropertiesId = areaTrigger.AreaTriggerCreatePropertiesId;

                // convert points to offsets
                splinePoint.Item1.X -= areaTrigger.Movement.Position.X;
                splinePoint.Item1.Y -= areaTrigger.Movement.Position.Y;
                splinePoint.Item1.Z -= areaTrigger.Movement.Position.Z;

                float areaTriggerO = areaTrigger.Movement.Orientation;
                float inx          = splinePoint.Item1.X.Value;
                float iny          = splinePoint.Item1.Y.Value;

                splinePoint.Item1.X = (float)((inx + iny * Math.Tan(areaTriggerO)) / (Math.Cos(areaTriggerO) + Math.Sin(areaTriggerO) * Math.Tan(areaTriggerO)));
                splinePoint.Item1.Y = (float)((iny - inx * Math.Tan(areaTriggerO)) / (Math.Cos(areaTriggerO) + Math.Sin(areaTriggerO) * Math.Tan(areaTriggerO)));
            }

            return(SQLUtil.Compare(Settings.SQLOrderByKey ? Storage.AreaTriggerCreatePropertiesSplinePoints.OrderBy(x => x.Item1.AreaTriggerCreatePropertiesId).ToArray() : Storage.AreaTriggerCreatePropertiesSplinePoints.ToArray(),
                                   templateDb,
                                   x =>
            {
                var comment = "SpellId : " + x.spellId.ToString();
                if ((x.AreaTriggerCreatePropertiesId & 0x80000000) != 0)
                {
                    comment += " CANNOT FIND PROPERTIES ID, USED SPELL ID AS KEY (NEEDS MANUAL CORRECTION)";
                }

                return comment;
            }));
        }
示例#3
0
        public static string ConversationLineTemplatesData()
        {
            if (Storage.ConversationLineTemplates.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.conversation_line_template))
            {
                return(string.Empty);
            }

            var templateDb = SQLDatabase.Get(Storage.ConversationLineTemplates);

            return(SQLUtil.Compare(Settings.SQLOrderByKey ? Storage.ConversationLineTemplates.OrderBy(x => x.Item1.Id).ToArray() : Storage.ConversationLineTemplates.ToArray(), templateDb, x => string.Empty));
        }
示例#4
0
        public static string CreatureDifficulty()
        {
            if (Storage.CreatureDifficulties.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.creature_difficulty))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.CreatureDifficulties, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.CreatureDifficulties, templatesDb, StoreNameType.None));
        }
示例#5
0
        public static string ConversationActorsData()
        {
            if (Storage.ConversationActors.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.conversation_actors))
            {
                return(string.Empty);
            }

            var templateDb = SQLDatabase.Get(Storage.ConversationActors);

            return(SQLUtil.Compare(Settings.SQLOrderByKey ? Storage.ConversationActors.OrderBy(x => x.Item1.ConversationId).ToArray() : Storage.ConversationActors.ToArray(), templateDb, x => x.Guid != null ? x.Guid.ToString() : string.Empty));
        }
示例#6
0
        public static string BroadcastTextLocale()
        {
            if (Storage.BroadcastTextLocales.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.broadcast_text_locale))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.BroadcastTextLocales, Settings.HotfixesDatabase);

            return("SET NAMES 'utf8';" + Environment.NewLine + SQLUtil.Compare(Storage.BroadcastTextLocales, templatesDb, StoreNameType.None) + Environment.NewLine + "SET NAMES 'latin1';");
        }
示例#7
0
        public static string QuestTemplate()
        {
            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.quest_template))
            {
                return(string.Empty);
            }

            if (Storage.QuestTemplates.IsEmpty())
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.QuestTemplates);

            return(SQLUtil.Compare(Storage.QuestTemplates, templatesDb, StoreNameType.Quest));
        }
示例#8
0
        public static string AreaTriggerTemplateData()
        {
            if (Storage.AreaTriggerTemplates.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.areatrigger_template))
            {
                return(string.Empty);
            }

            var templateDb = SQLDatabase.Get(Storage.AreaTriggerTemplates);

            return(SQLUtil.Compare(Settings.SQLOrderByKey ? Storage.AreaTriggerTemplates.OrderBy(x => x.Item1.Id).ToArray() : Storage.AreaTriggerTemplates.ToArray(), templateDb, x => string.Empty));
        }
示例#9
0
        public static string ItemSparse()
        {
            if (Storage.ItemSparses.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.item_sparse))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.ItemSparses, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.ItemSparses, templatesDb, StoreNameType.Item));
        }
示例#10
0
        public static string SpellEffectGroupSize()
        {
            if (Storage.SpellEffectGroupSizes.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.spell_effect_group_size))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.SpellEffectGroupSizes, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.SpellEffectGroupSizes, templatesDb, StoreNameType.None));
        }
示例#11
0
        public static string BattlePetSpecies()
        {
            if (Storage.BattlePetSpeciesBag.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.battle_pet_species))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.BattlePetSpeciesBag, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.BattlePetSpeciesBag, templatesDb, StoreNameType.None));
        }
示例#12
0
        public static string PhaseXPhaseGroup()
        {
            if (Storage.PhaseXPhaseGroups.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.phase_group))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.PhaseXPhaseGroups, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.PhaseXPhaseGroups, templatesDb, StoreNameType.None));
        }
示例#13
0
        public static string SceneScript()
        {
            if (Storage.SceneScripts.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.scene_script))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.SceneScripts, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.SceneScripts, templatesDb, StoreNameType.None));
        }
示例#14
0
        public static string AreaPOIState()
        {
            if (Storage.AreaPOIStates.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.area_poi_state))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.AreaPOIStates, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.AreaPOIStates, templatesDb, StoreNameType.None));
        }
示例#15
0
        public static string KeyChain()
        {
            if (Storage.KeyChains.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.key_chain))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.KeyChains, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.KeyChains, templatesDb, StoreNameType.None));
        }
示例#16
0
        public static string GameObjects()
        {
            if (Storage.GameObjectsBag.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.gameobjectDB2))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.GameObjectsBag, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.GameObjectsBag, templatesDb, StoreNameType.GameObject));
        }
        public static string SceneTemplates()
        {
            if (Storage.Scenes.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.scene_template))
            {
                return(string.Empty);
            }

            var templateDb = SQLDatabase.Get(Storage.Scenes, Settings.TDBDatabase);

            return(SQLUtil.Compare(Storage.Scenes, templateDb, StoreNameType.None));
        }
示例#18
0
        public static string ScenarioPOIPoint()
        {
            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.scenario_poi))
            {
                return(string.Empty);
            }

            if (Storage.ScenarioPOIPoints.IsEmpty())
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.ScenarioPOIPoints);

            return(SQLUtil.Compare(Storage.ScenarioPOIPoints, templatesDb, StoreNameType.None));
        }
示例#19
0
        public static string CreatureTemplateScalingData()
        {
            if (Storage.CreatureTemplateScalings.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.creature_template_scaling))
            {
                return(string.Empty);
            }

            var templateDb = SQLDatabase.Get(Storage.CreatureTemplateScalings);

            return(SQLUtil.Compare(Settings.SQLOrderByKey ? Storage.CreatureTemplateScalings.OrderBy(x => x.Item1.Entry).ToArray() : Storage.CreatureTemplateScalings.ToArray(), templateDb, x => string.Empty));
        }
示例#20
0
        public static string CreatureTemplateSpells()
        {
            if (Storage.CreatureTemplateSpells.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.creature_template))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.CreatureTemplateSpells);

            return(SQLUtil.Compare(Storage.CreatureTemplateSpells, templatesDb, StoreNameType.Unit));
        }
示例#21
0
        public static string SpellTotems()
        {
            if (Storage.SpellTotemsBag.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.spell_totems))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.SpellTotemsBag, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.SpellTotemsBag, templatesDb, StoreNameType.None));
        }
示例#22
0
        public static string ItemExtendedCost()
        {
            if (Storage.ItemExtendedCosts.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.item_extended_cost))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.ItemExtendedCosts, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.ItemExtendedCosts, templatesDb, StoreNameType.None));
        }
示例#23
0
        public static string ObjectNames()
        {
            if (Storage.ObjectNames.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.ObjectNames))
            {
                return(string.Empty);
            }

            var templateDb = SQLDatabase.Get(Storage.ObjectNames, Settings.WPPDatabase);

            return(SQLUtil.Compare(Storage.ObjectNames, templateDb, StoreNameType.None));
        }
示例#24
0
        public static string TaxiPath()
        {
            if (Storage.TaxiPaths.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.taxi_path))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.TaxiPaths, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.TaxiPaths, templatesDb, StoreNameType.None));
        }
示例#25
0
        public static string Trainer()
        {
            if (Storage.Trainers.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.trainer))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.Trainers);

            return(SQLUtil.Compare(Storage.Trainers, templatesDb, StoreNameType.None));
        }
示例#26
0
        public static string BroadcastText()
        {
            if (Storage.BroadcastTexts.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.HotfixSQLOutputFlag.HasAnyFlagBit(HotfixSQLOutput.broadcast_text))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.BroadcastTexts, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.BroadcastTexts, templatesDb, StoreNameType.None));
        }
示例#27
0
        public static string LocalesQuestObjectives()
        {
            if (Storage.LocalesQuestObjectives.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.locales_quest_objectives))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.LocalesQuestObjectives);

            return("SET NAMES 'utf8';" + Environment.NewLine + SQLUtil.Compare(Storage.LocalesQuestObjectives, templatesDb, StoreNameType.None) + Environment.NewLine + "SET NAMES 'latin1';");
        }
示例#28
0
        public static string HotfixData()
        {
            if (Storage.HotfixDatas.IsEmpty())
            {
                return(string.Empty);
            }

            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.hotfix_data))
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.HotfixDatas, Settings.HotfixesDatabase);

            return(SQLUtil.Compare(Storage.HotfixDatas, templatesDb, StoreNameType.None));
        }
示例#29
0
        public static string PageText()
        {
            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.page_text))
            {
                return(string.Empty);
            }

            if (Storage.PageTexts.IsEmpty())
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.PageTexts);

            return(SQLUtil.Compare(Storage.PageTexts, templatesDb, StoreNameType.PageText));
        }
        public static string PlayerChoiceResponseRewardItem()
        {
            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.playerchoice))
            {
                return(string.Empty);
            }

            if (Storage.PlayerChoiceResponseRewardItems.IsEmpty())
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.PlayerChoiceResponseRewardItems);

            return(SQLUtil.Compare(Storage.PlayerChoiceResponseRewardItems, templatesDb, StoreNameType.None));
        }