From 0eeb06775f4e52445503ad72fab07215d92fbc4d Mon Sep 17 00:00:00 2001 From: Antz Date: Tue, 18 Feb 2020 14:46:00 +0000 Subject: [PATCH 1/5] Updated Readme - Changed Appveyor to test the correct branch --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ccacc3375..764d2ff27 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@
Build Status:
Linux Windows - + Codacy Status @@ -61,7 +61,7 @@ Building *Mangos* is currently possible with these compilers: * **Microsoft Visual Studio (Express[^1])**, 32 bit and 64 bit. Both [Visual Studio][30] and the Express editions of [Visual Studio][31] are - supported. Only Visual Studio 2012 and above are now officially supported. + supported. Only Visual Studio 2013 and above are now officially supported. * **Microsoft Windows SDK**, 32 bit and 64 bit. The [Windows 7 SDK][32] is recommended, as older versions lack compiler features required to build @@ -78,7 +78,7 @@ inventing the wheel again. *Please note that Linux and Mac OS X users should install packages using their systems package management instead of source packages.* -* **MySQL** / **PostgreSQL**: to store content, and user data, we rely on +* **MySQL** / **MariaDB**: to store content, and user data, we rely on [MySQL][40]/[MariaDB][41] and [PostgreSQL][42] to handle data. * **ACE**: the [ADAPTIVE Communication Environment][43] aka. *ACE* provides us with a solid cross-platform framework for abstracting operating system @@ -171,7 +171,7 @@ respects for all of the code used other than [OpenSSL][48]. [26]: http://www.dragonflybsd.org/ "DragonFlyBSD" [30]: http://www.microsoft.com/visualstudio/eng/ "Visual Studio 2012" -[31]: http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products "Visual Studio Express 2012 for Windows Desktop" +[31]: http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products "Visual Studio Express 2013 for Windows Desktop" [32]: http://www.microsoft.com/en-us/download/details.aspx?id=8279 "Windows SDK for Windows 7 and .NET Framework 4" [33]: http://clang.llvm.org/ "clang · a C language family frontend for LLVM" [34]: http://git-scm.com/ "Git · Distributed version control system" From 18f9ed154f3b0d67e4be731c3aa0dd542fae41dd Mon Sep 17 00:00:00 2001 From: dio85 Date: Sun, 23 Feb 2020 12:32:28 +0100 Subject: [PATCH 2/5] update fmt's --- src/game/Server/DBCStructure.h | 13 ++++++++----- src/game/Server/DBCfmt.h | 6 +++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/game/Server/DBCStructure.h b/src/game/Server/DBCStructure.h index ffa50bc95..5ffbc8a92 100644 --- a/src/game/Server/DBCStructure.h +++ b/src/game/Server/DBCStructure.h @@ -632,7 +632,12 @@ struct BarberShopStyleEntry struct BattlemasterListEntry { uint32 id; // 0 m_ID - int32 mapid[16]; // 1-16 m_mapID[16] + int32 mapid[11]; // 1-11 m_mapID[11] + //unk + //unk + //unk + //unk + //unk uint32 type; // 17 m_instanceType //uint32 unkName; // 18 DBCString name; // 19 m_name_lang @@ -645,7 +650,7 @@ struct BattlemasterListEntry uint32 maxPlayers; // 26 4.0.1 uint32 rated; // 27 4.0.3, value 2 for Rated Battlegrounds //uint32 // 28 5.4.x - //uint32 // 29 5.4.x + //uint32 // 29 5.4.x BG TypeNames ctf,domination, etc }; /*struct Cfg_CategoriesEntry @@ -1233,8 +1238,6 @@ struct ItemClassEntry { uint32 ID; // 0 m_ID uint32 Class; // 1 - //uint32 unk2; // 2 looks like second class - //uint32 unk3; // 3 1 for weapons float PriceFactor; // 4 DBCString name; // 5 m_name_lang }; @@ -1477,7 +1480,7 @@ struct MapDifficultyEntry DBCString areaTriggerText; // 3 m_message_lang (text showed when transfer to map failed) uint32 resetTime; // 4, m_raidDuration in secs, 0 if no fixed reset time uint32 maxPlayers; // 5, m_maxPlayers some heroic versions have 0 when expected same amount as in normal version - DBCString difficultyString; // 6 m_difficultystring + //DBCString difficultyString; // 6, m_difficultystring (always 0) ? }; struct MovieEntry diff --git a/src/game/Server/DBCfmt.h b/src/game/Server/DBCfmt.h index 8ec93ff67..2fc47a180 100644 --- a/src/game/Server/DBCfmt.h +++ b/src/game/Server/DBCfmt.h @@ -34,7 +34,7 @@ const char ArmorLocationfmt[]="nfffff"; const char AuctionHouseEntryfmt[]= "niiix"; const char BankBagSlotPricesEntryfmt[] = "ni"; const char BarberShopStyleEntryfmt[]= "nixxxiii"; -const char BattlemasterListEntryfmt[]="niiiiiiiiiiiiiiiiixsii"; // TODO: NEED TO CONFIRM THIS +const char BattlemasterListEntryfmt[]="niiiiiiiiiiiiixxxxxsiiiiiii"; // TODO: NEED TO CONFIRM THIS const char CharStartOutfitEntryfmt[]= "diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char CharTitlesEntryfmt[]="nxsxix"; const char ChatChannelsEntryfmt[]="iixsx"; @@ -47,7 +47,7 @@ const char CreatureDisplayInfofmt[]="nixifxxxxxxxxxxxxxx"; // TODO: NEED TO CO const char CreatureDisplayInfoExtrafmt[] = "nixxxxxxxxxxxxxxxxxxx"; const char CreatureFamilyfmt[]="nfifiiiiixsx"; const char CreatureSpellDatafmt[] = "niiiixxxx"; -const char DestructibleModelDataFmt[] = "nixxxixxxxixxxxixxxxxxxx"; +const char DestructibleModelDataFmt[] = "nixxxixxxxixxxxixxxxixxx"; const char DungeonEncounterfmt[]="niiiisxx"; // TODO: NEED TO CONFIRM THIS const char CreatureTypefmt[]="nxx"; const char CurrencyTypesfmt[]="nisxxxxiiix"; // TODO: NEED TO CONFIRM THIS @@ -77,7 +77,7 @@ const char GtSpellScalingfmt[]="df"; const char GtOCTBaseHPByClassfmt[]="df"; const char GtOCTBaseMPByClassfmt[]="df"; const char Holidaysfmt[] = "nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; -const char ItemClassfmt[]="nxfs"; +const char ItemClassfmt[]="nifs"; const char ItemArmorQualityfmt[]="nfffffffi"; const char ItemArmorShieldfmt[]="nifffffff"; const char ItemArmorTotalfmt[]="niffff"; From 92b8e6abfbec09e7d275c7a4a554ffea2503978b Mon Sep 17 00:00:00 2001 From: dio85 Date: Mon, 24 Feb 2020 08:24:59 +0100 Subject: [PATCH 3/5] . --- src/game/Object/Unit.cpp | 25 ++--- src/game/Server/DBCStructure.h | 176 ++++++++++++++++----------------- src/game/Server/DBCfmt.h | 30 +++--- 3 files changed, 111 insertions(+), 120 deletions(-) diff --git a/src/game/Object/Unit.cpp b/src/game/Object/Unit.cpp index 7aff94a2e..80a6be4ee 100644 --- a/src/game/Object/Unit.cpp +++ b/src/game/Object/Unit.cpp @@ -10485,19 +10485,20 @@ int32 Unit::CalculateSpellDamage(Unit const* target, SpellEntry const* spellProt gtScalingEntry = sGtSpellScalingStore.LookupEntry(gtSpellScalingId); } - if (gtScalingEntry) - { - float Scale = gtScalingEntry->value; - if (uint32(scalingEntry->castTimeMax) > 0 && uint32(scalingEntry->castScalingMaxLevel) > level) - Scale *= float(scalingEntry->castTimeMin + float(level - 1) * (scalingEntry->castTimeMax - scalingEntry->castTimeMin) / (scalingEntry->castScalingMaxLevel - 1)) / float(scalingEntry->castTimeMax); - if (uint32(scalingEntry->coefLevelBase) > level) - Scale *= (1.0f - scalingEntry->coefBase) * (level - 1) / (scalingEntry->coefLevelBase - 1) + scalingEntry->coefBase; + //* if (gtScalingEntry) + // { + // float Scale = gtScalingEntry->value; + // if (uint32(scalingEntry->castTimeMax) > 0 && uint32(scalingEntry->castScalingMaxLevel) > level) + // Scale *= float(scalingEntry->castTimeMin + float(level - 1) * (scalingEntry->castTimeMax - scalingEntry->castTimeMin) / (scalingEntry->castScalingMaxLevel - 1)) / float(scalingEntry->castTimeMax); + // if (uint32(scalingEntry->coefLevelBase) > level) + // Scale *= (1.0f - scalingEntry->coefBase) * (level - 1) / (scalingEntry->coefLevelBase - 1) + scalingEntry->coefBase; +// + // basePoints = int32(scalingEntry->coefBase[effect_index] * Scale); + // int32 randomPoints = int32(scalingEntry->coefBase[effect_index] * Scale * scalingEntry->coeff2[effect_index]); + // basePoints += irand(-randomPoints, randomPoints) / 2; + // comboDamage = uint32(scalingEntry->coeff3[effect_index] * Scale); + // } - basePoints = int32(scalingEntry->coeff1[effect_index] * Scale); - int32 randomPoints = int32(scalingEntry->coeff1[effect_index] * Scale * scalingEntry->coeff2[effect_index]); - basePoints += irand(-randomPoints, randomPoints) / 2; - comboDamage = uint32(scalingEntry->coeff3[effect_index] * Scale); - } else { spellLevel = spellProto->GetSpellLevel(); diff --git a/src/game/Server/DBCStructure.h b/src/game/Server/DBCStructure.h index 5ffbc8a92..89fcd50ff 100644 --- a/src/game/Server/DBCStructure.h +++ b/src/game/Server/DBCStructure.h @@ -545,28 +545,27 @@ struct AreaTableEntry uint32 zone; // 2 m_ParentAreaID uint32 exploreFlag; // 3 m_AreaBit uint32 flags; // 4 m_flags - // 5 5.x - // 6 m_SoundProviderPref - // 7 m_SoundProviderPrefUnderwater - // 8 m_AmbienceID - // 9 m_ZoneMusic - // 10 5.x - // 11 m_IntroSound + //uint32 unk // 5 5.x + //uint32 soundPreferences; // 6 m_SoundProviderPref + //uint32 SoundPreferencesUnderwater; // 7 m_SoundProviderPrefUnderwater + //uint32 SoundAmbience; // 8 m_AmbienceID + //uint32 areaName2; // 9 + //uint32 ZoneMusic; // 10 m_ZoneMusic + //uint32 ZoneIntroMusicTable; // 11 5.x int32 area_level; // 12 m_ExplorationLevel DBCString area_name; // 13 m_AreaName_lang uint32 team; // 14 m_factionGroupMask - uint32 LiquidTypeOverride[4]; // 15-18 m_liquidTypeID[4] - // 19 m_minElevation - // 20 m_ambient_multiplier - // 21 m_lightid - //uint32 unk20; // 22 4.0.0 - //uint32 unk21; // 23 4.0.0 - //uint32 unk22; // 24 4.0.0 - //uint32 unk23; // 25 4.0.0 - //uint32 unk24; // 26 4.0.1, may be worldStateId - // 27 5.x - // 28 5.x - // 29 5.x + uint32 LiquidTypeOverride[4]; // 15-17 m_liquidTypeID[4] + float MaxDepth; // 18 m_minElevation + float AmbientMultipler; // 19 m_ambient_multiplier + uint32 LiquidId; // 20 m_lightid + //uint32 unk20; // 21 4.0.0 + //uint32 unk21; // 22 4.0.0 + //uint32 unk22; // 23 4.0.0 + //uint32 unk23; // 24 4.0.0 + //uint32 unk24; // 25 4.0.1, may be worldStateId + //uint32 unk25; // 26 5.x + //uint32 unk26; // 27 5.x }; struct AreaGroupEntry @@ -631,26 +630,21 @@ struct BarberShopStyleEntry struct BattlemasterListEntry { - uint32 id; // 0 m_ID - int32 mapid[11]; // 1-11 m_mapID[11] - //unk - //unk - //unk - //unk - //unk - uint32 type; // 17 m_instanceType - //uint32 unkName; // 18 - DBCString name; // 19 m_name_lang - uint32 maxGroupSize; // 20 m_maxGroupSize - uint32 HolidayWorldStateId; // 21 m_holidayWorldState - uint32 minLevel; // 22 m_minlevel (sync with PvPDifficulty.dbc content) - uint32 maxLevel; // 23 m_maxlevel (sync with PvPDifficulty.dbc content) - uint32 maxGroupSizeRated; // 24 4.0.1 - uint32 minPlayers; // 25 4.0.6.13596 - uint32 maxPlayers; // 26 4.0.1 - uint32 rated; // 27 4.0.3, value 2 for Rated Battlegrounds - //uint32 // 28 5.4.x - //uint32 // 29 5.4.x BG TypeNames ctf,domination, etc + uint32 id; // 0 + int32 mapid[16]; // 1-16 mapid + uint32 type; // 17 (3 - BG, 4 - arena) + //char* unkName; // 18 + DBCString name; // 19 + uint32 maxGroupSize; // 20 maxGroupSize, used for checking if queue as group + uint32 HolidayWorldStateId; // 21 new 3.1 + uint32 minLevel; // 22, min level (sync with PvPDifficulty.dbc content) + uint32 maxLevel; // 23, max level (sync with PvPDifficulty.dbc content) + //uint32 maxGroupSizeRated; // 24 4.0.1 + //uint32 unk; // 25 - 4.0.6.13596 + //uint32 maxPlayers; // 26 4.0.1 + //uint32 unk1; // 27 4.0.3, value 2 for Rated Battlegrounds + //uint32 unk2 // 28 - Pandaria + //char* strType; // 29 - Pandaria // 29 5.4.x BG TypeNames ctf,domination, etc }; /*struct Cfg_CategoriesEntry @@ -782,24 +776,24 @@ struct CinematicSequencesEntry struct CreatureDisplayInfoEntry { - uint32 Displayid; // 0 m_ID - uint32 ModelId; // 1 m_modelID - // 2 m_soundID - uint32 ExtendedDisplayInfoID; // 3 m_extendedDisplayInfoID -> CreatureDisplayInfoExtraEntry::DisplayExtraId - float Scale; // 4 m_creatureModelScale - // 5 m_creatureModelAlpha - // 6-8 m_textureVariation[3] - // 9 m_portraitTextureName - // 10 m_sizeClass - // 11 m_bloodID - // 12 m_NPCSoundID - // 13 m_particleColorID - // 14 m_creatureGeosetData - // 15 m_objectEffectPackageID - // 16 all 0 - // 17 5.x - // 18 5.x - // 19 5.4.1 + uint32 Displayid; // 0 m_ID + uint32 ModelId; // 1 m_modelID + // 2 m_soundID + uint32 ExtendedDisplayInfoID; // 3 m_extendedDisplayInfoID + float Scale; // 4 m_creatureModelScale + // 5 m_creatureModelAlpha + // 6-8 m_textureVariation[3] + // 9 m_portraitTextureName + // 10 m_sizeClass + // 11 m_bloodID + // 12 m_NPCSoundID + // 13 m_particleColorID + // 14 m_creatureGeosetData + // 15 m_objectEffectPackageID + // 16 + // 17 - Panadria + // 18 - Pandaria + // 19 - Pandaria }; struct CreatureDisplayInfoExtraEntry @@ -985,12 +979,10 @@ struct FactionEntry //uint32 spilloverRank_unk; // 22 It does not seem to be the max standing at which a faction outputs spillover ...so no idea DBCString name; // 23 m_name_lang //char* description; // 24 m_description_lang - //uint32 // 25 + uint32 GroupExpansion; // 25 //uint32 // 26 5.4.1 //uint32 // 27 5.4.1 - // helpers - int GetIndexFitTo(uint32 raceMask, uint32 classMask) const { for (int i = 0; i < 4; ++i) @@ -1738,7 +1730,6 @@ struct SkillLineAbilityEntry uint32 max_value; // 10 m_trivialSkillLineRankHigh uint32 min_value; // 11 m_trivialSkillLineRankLow uint32 characterPoints; // 12 4.0.0 - //uint32 // 13 4.0.0 }; struct SoundEntriesEntry @@ -1804,7 +1795,7 @@ struct ClassFamilyMask // SpellAuraOptions.dbc struct SpellAuraOptionsEntry { - //uint32 Id; // 0 m_ID + uint32 Id; // 0 m_ID // 1 5.x // 2 5.x uint32 StackAmount; // 3 m_cumulativeAura @@ -2013,13 +2004,12 @@ struct SpellScalingEntry uint32 castTimeMax; // 2 uint32 castScalingMaxLevel; // 3 uint32 playerClass; // 4 (index * 100) + charLevel => gtSpellScaling.dbc - float coeff1[3]; // 5-7 - float coeff2[3]; // 8-10 - float coeff3[3]; // 11-13 - float coefBase; // 14 some coefficient, mostly 1.0f - uint32 coefLevelBase; // 15 some level + float coefBase; // 5 + float coefLevelBase; // 6 + //int32 Unk // 7 + //int32 Unk2 // 8 - bool IsScalableEffect(SpellEffectIndex i) const { return coeff1[i] != 0.0f; }; + bool IsScalableEffect(SpellEffectIndex i) const { return coefBase != 0.0f; }; }; // SpellShapeshift.dbc @@ -2077,31 +2067,31 @@ struct SpellTotemsEntry // SpellMisc.dbc struct SpellMiscEntry { - //uint32 Id; // 0 - //uint32 SpellId; // 1 - //uint32 // 2 unk - uint32 Attributes; // 3 - uint32 AttributesEx; // 4 - uint32 AttributesEx2; // 5 - uint32 AttributesEx3; // 6 - uint32 AttributesEx4; // 7 - uint32 AttributesEx5; // 8 - uint32 AttributesEx6; // 9 - uint32 AttributesEx7; // 10 - uint32 AttributesEx8; // 11 - uint32 AttributesEx9; // 12 - uint32 AttributesEx10; // 13 - uint32 AttributesEx11; // 14 - uint32 AttributesEx12; // 15 - uint32 AttributesEx13; // 16 - uint32 CastingTimeIndex; // 17 m_castingTimeIndex - uint32 DurationIndex; // 18 m_durationIndex - uint32 rangeIndex; // 19 m_rangeIndex - float speed; // 20 m_speed - uint32 SpellVisual[2]; // 21-22 m_spellVisualID - uint32 SpellIconID; // 23 m_spellIconID - uint32 activeIconID; // 24 m_activeIconID - uint32 SchoolMask; // 25 m_schoolMask + uint32 Id; // 0 m_ID + //uint32 SpellId // 1 + //uint32 Unk // 2 + uint32 Attributes; // 3 m_attribute + uint32 AttributesEx; // 4 m_attributesEx + uint32 AttributesEx2; // 5 m_attributesExB + uint32 AttributesEx3; // 6 m_attributesExC + uint32 AttributesEx4; // 7 m_attributesExD + uint32 AttributesEx5; // 8 m_attributesExE + uint32 AttributesEx6; // 9 m_attributesExF + uint32 AttributesEx7; // 10 m_attributesExG + uint32 AttributesEx8; // 11 m_attributesExH + uint32 AttributesEx9; // 12 m_attributesExI + uint32 AttributesEx10; // 13 m_attributesExJ + uint32 AttributesEx11; // 14 m_attributesExK + uint32 AttributesEx12; // 15 m_attributesExL + uint32 AttributesEx13; // 16 m_attributesExM + uint32 CastingTimeIndex; // 17 m_castingTimeIndex + uint32 DurationIndex; // 18 m_durationIndex + uint32 rangeIndex; // 19 m_rangeIndex + float speed; // 20 m_speed + uint32 SpellVisual[2]; // 21-22 m_spellVisualID + uint32 SpellIconID; // 23 m_spellIconID + uint32 activeIconID; // 24 m_activeIconID + uint32 SchoolMask; // 25 m_schoolMask }; struct SpellReagentsEntry; diff --git a/src/game/Server/DBCfmt.h b/src/game/Server/DBCfmt.h index 2fc47a180..9b1cdfd73 100644 --- a/src/game/Server/DBCfmt.h +++ b/src/game/Server/DBCfmt.h @@ -27,35 +27,35 @@ const char Achievementfmt[]= "niiissiiiiisiix"; const char AchievementCriteriafmt[]="niiiiiiiixsiiiiixxxxxxx"; -const char AreaTableEntryfmt[] = "iiinixxxxxxxisiiiiixxxxxxxxx"; // TODO: NEED TO CONFIRM THIS +const char AreaTableEntryfmt[] = "iiinixxxxxxxisiiiiiffixxxxxxxx"; // TODO: NEED TO CONFIRM THIS const char AreaGroupEntryfmt[] = "niiiiiii"; const char AreaTriggerEntryfmt[]="nifffxxxfffffxxx"; const char ArmorLocationfmt[]="nfffff"; const char AuctionHouseEntryfmt[]= "niiix"; const char BankBagSlotPricesEntryfmt[] = "ni"; const char BarberShopStyleEntryfmt[]= "nixxxiii"; -const char BattlemasterListEntryfmt[]="niiiiiiiiiiiiixxxxxsiiiiiii"; // TODO: NEED TO CONFIRM THIS +const char BattlemasterListEntryfmt[]="niiiiiiiiiiiiiiiiixsiiiixxxxxx"; // TODO: NEED TO CONFIRM THIS const char CharStartOutfitEntryfmt[]= "diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char CharTitlesEntryfmt[]="nxsxix"; const char ChatChannelsEntryfmt[]="iixsx"; // ChatChannelsEntryfmt, index not used (more compact store) -const char ChrClassesEntryfmt[]="nixsxxxixiiiixxxx"; // TODO: NEED TO CONFIRM THIS +const char ChrClassesEntryfmt[]="nixsxxxixiiiixxxxx"; // TODO: NEED TO CONFIRM THIS const char ChrRacesEntryfmt[]="nxixiixixxxxixsxxxxxixxxxxxxxxxxxxxx"; const char ChrClassesXPowerTypesfmt[]="nii"; const char CinematicSequencesEntryfmt[] = "nxxxxxxxxx"; -const char CreatureDisplayInfofmt[]="nixifxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS +const char CreatureDisplayInfofmt[]="nixifxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS const char CreatureDisplayInfoExtrafmt[] = "nixxxxxxxxxxxxxxxxxxx"; const char CreatureFamilyfmt[]="nfifiiiiixsx"; const char CreatureSpellDatafmt[] = "niiiixxxx"; const char DestructibleModelDataFmt[] = "nixxxixxxxixxxxixxxxixxx"; const char DungeonEncounterfmt[]="niiiisxx"; // TODO: NEED TO CONFIRM THIS const char CreatureTypefmt[]="nxx"; -const char CurrencyTypesfmt[]="nisxxxxiiix"; // TODO: NEED TO CONFIRM THIS +const char CurrencyTypesfmt[]="nixxxiiiiixx"; // TODO: NEED TO CONFIRM THIS const char DurabilityCostsfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiiiiiii"; const char DurabilityQualityfmt[] = "nf"; const char EmotesEntryfmt[]="nxxiiixx"; const char EmotesTextEntryfmt[] = "nxixxxxxxxxxxxxxxxx"; -const char FactionEntryfmt[]="niiiiiiiiiiiiiiiiiiffixsxx"; // TODO: NEED TO CONFIRM THIS +const char FactionEntryfmt[]="niiiiiiiiiiiiiiiiiiffixsxixx"; // TODO: NEED TO CONFIRM THIS const char FactionTemplateEntryfmt[] = "niiiiiiiiiiiii"; const char GameObjectDisplayInfofmt[]="nsxxxxxxxxxxffffffxxx"; const char GemPropertiesEntryfmt[]="nixxix"; @@ -94,7 +94,7 @@ const char LiquidTypefmt[] = "nxxixixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char LockEntryfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx"; const char MailTemplateEntryfmt[]="nxs"; const char MapEntryfmt[]="nsiiisissififfiiiii"; // 5.4.8 -const char MapDifficultyEntryfmt[]="niisii"; // TODO: NEED TO CONFIRM THIS +const char MapDifficultyEntryfmt[]="niisiix"; // TODO: NEED TO CONFIRM THIS const char MountCapabilityfmt[]="niiiiiii"; const char MountTypefmt[]="niiiiiiiiiiiiiiiiiiiiiiii"; const char MovieEntryfmt[]="nxxxx"; @@ -107,16 +107,16 @@ const char Phasefmt[]="nii"; const char PvPDifficultyfmt[] = "diiiii"; const char RandomPropertiesPointsfmt[] = "niiiiiiiiiiiiiii"; const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiixi"; -const char ScalingStatValuesfmt[]="iniiiiiixiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS -const char SkillLinefmt[]="nisxixix"; // TODO: NEED TO CONFIRM THIS -const char SkillLineAbilityfmt[]="niiiiiiiiixxx"; +const char ScalingStatValuesfmt[]="niiiiiiixiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS +const char SkillLinefmt[]="nisxixixx"; // TODO: NEED TO CONFIRM THIS +const char SkillLineAbilityfmt[]="niiiiiiiiiixx"; const char SkillRaceClassInfofmt[]="diiiiixx"; -const char SoundEntriesfmt[]="nisxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS +const char SoundEntriesfmt[]="nisxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS const char SpellCastTimefmt[]="niii"; const char SpellDurationfmt[] = "niii"; const char SpellDifficultyfmt[] = "niiii"; const char SpellEntryfmt[]="nssxxixxxiiiiiiiiiiiiiixi"; -const char SpellAuraOptionsEntryfmt[]="dxxiiii"; // TODO: NEED TO CONFIRM THIS +const char SpellAuraOptionsEntryfmt[]="nxxxiiiix"; // TODO: NEED TO CONFIRM THIS const char SpellAuraRestrictionsEntryfmt[]="dxxiiiiiiii"; const char SpellCastingRequirementsEntryfmt[]="dixxixi"; const char SpellCategoriesEntryfmt[]="dxxiiiiiix"; @@ -127,14 +127,14 @@ const char SpellEquippedItemsEntryfmt[]="dxxiii"; const char SpellInterruptsEntryfmt[]="dxxixixi"; const char SpellLevelsEntryfmt[]="dxxiii"; const char SpellPowerEntryfmt[]="xnxiiiiixxxxx"; -const char SpellScalingEntryfmt[]="diiiifffi"; // TODO: NEED TO CONFIRM THIS +const char SpellScalingEntryfmt[]="diiiifixx"; // TODO: NEED TO CONFIRM THIS const char SpellShapeshiftEntryfmt[]="dixixx"; const char SpellTargetRestrictionsEntryfmt[]="dxxfxiiii"; const char SpellTotemsEntryfmt[]="diiii"; const char SpellFocusObjectfmt[]="nx"; const char SpellItemEnchantmentfmt[]="nxiiiiiiiiisiiiixxixxxxxx"; // TODO: NEED TO CONFIRM THIS const char SpellItemEnchantmentConditionfmt[] = "nbbbbbxxxxxbbbbbbbbbbiiiiiXXXXX"; -const char SpellMiscfmt[]="dxxiiiiiiiiiiiiiiiiifiii"; // TODO: NEED TO CONFIRM THIS +const char SpellMiscfmt[]="nxxiiiiiiiiiiiiiiiiifiiiii"; // TODO: NEED TO CONFIRM THIS const char SpellRadiusfmt[]="nfxxx"; const char SpellRangefmt[]="nffffxxx"; const char SpellRuneCostfmt[]="niiixi"; @@ -144,7 +144,7 @@ const char SummonPropertiesfmt[] = "niiiii"; const char TalentEntryfmt[]="niiiiiiiiixxixxxxxx"; const char TalentTabEntryfmt[]="nxxiiixxiii"; const char TalentTreePrimarySpellsfmt[]="diix"; -const char TaxiNodesEntryfmt[]="nifffsiixxx"; // TODO: NEED TO CONFIRM THIS +const char TaxiNodesEntryfmt[]="nifffsiixxxx"; // TODO: NEED TO CONFIRM THIS const char TaxiPathEntryfmt[] = "niii"; const char TaxiPathNodeEntryfmt[] = "diiifffiiii"; const char TotemCategoryEntryfmt[]="nxii"; From 63f53146675147be088bbf0e4e40aa2a8f16d614 Mon Sep 17 00:00:00 2001 From: dio85 Date: Tue, 25 Feb 2020 11:22:34 +0100 Subject: [PATCH 4/5] SpellScaling Fix Now you can start the server --- src/game/Server/DBCStructure.h | 13 +++++-------- src/game/Server/DBCfmt.h | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/game/Server/DBCStructure.h b/src/game/Server/DBCStructure.h index 035c82fe8..87edda832 100644 --- a/src/game/Server/DBCStructure.h +++ b/src/game/Server/DBCStructure.h @@ -2004,18 +2004,15 @@ struct SpellPowerEntry // SpellScaling.dbc struct SpellScalingEntry { - //uint32 Id; // 0 m_ID + uint32 Id; // 0 m_ID int32 castTimeMin; // 1 int32 castTimeMax; // 2 int32 castScalingMaxLevel; // 3 int32 playerClass; // 4 (index * 100) + charLevel => gtSpellScaling.dbc - float coeff1; // 5-7 - float coeff2; // 8-10 - float coeff3; // 11-13 - //float coefBase; // 14 some coefficient, mostly 1.0f - int32 coefLevelBase; // 15 some level - -// bool IsScalableEffect(SpellEffectIndex i) const { return coeff1[i] != 0.0f; }; + float coeff1; // 5 + float coeff2; // 6 + float coeff3; // 7 + int32 coefLevelBase; // 8 }; // SpellShapeshift.dbc diff --git a/src/game/Server/DBCfmt.h b/src/game/Server/DBCfmt.h index 04648cf58..0387bdff5 100644 --- a/src/game/Server/DBCfmt.h +++ b/src/game/Server/DBCfmt.h @@ -127,7 +127,7 @@ const char SpellEquippedItemsEntryfmt[]="dxxiii"; const char SpellInterruptsEntryfmt[]="dxxixixi"; const char SpellLevelsEntryfmt[]="dxxiii"; const char SpellPowerEntryfmt[]="xnxiiiiixxxxx"; -const char SpellScalingEntryfmt[]="diiiifixx"; // TODO: NEED TO CONFIRM THIS +const char SpellScalingEntryfmt[]="niiiifffi"; // TODO: NEED TO CONFIRM THIS const char SpellShapeshiftEntryfmt[]="dixixx"; const char SpellTargetRestrictionsEntryfmt[]="dxxfxiiii"; const char SpellTotemsEntryfmt[]="diiii"; From b6bebd392935b227b87f6abc5149d648a11ef868 Mon Sep 17 00:00:00 2001 From: dio85 Date: Wed, 26 Feb 2020 11:36:43 +0100 Subject: [PATCH 5/5] BattlegroundMgr fmt --- src/game/BattleGround/BattleGroundMgr.cpp | 2 +- src/game/Server/DBCStructure.h | 4 ++-- src/game/Server/DBCfmt.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/game/BattleGround/BattleGroundMgr.cpp b/src/game/BattleGround/BattleGroundMgr.cpp index c1f44a8b8..5446c95c4 100644 --- a/src/game/BattleGround/BattleGroundMgr.cpp +++ b/src/game/BattleGround/BattleGroundMgr.cpp @@ -2419,7 +2419,7 @@ void BattleGroundMgr::LoadBattleMastersEntry() Field* fields = result->Fetch(); uint32 entry = fields[0].GetUInt32(); - uint32 bgTypeId = fields[1].GetUInt32(); + uint32 bgTypeId = BattleGroundTypeId(bgTypeId); if (!sBattlemasterListStore.LookupEntry(bgTypeId)) { sLog.outErrorDb("Table `battlemaster_entry` contain entry %u for nonexistent battleground type %u, ignored.", entry, bgTypeId); diff --git a/src/game/Server/DBCStructure.h b/src/game/Server/DBCStructure.h index 87edda832..44da63479 100644 --- a/src/game/Server/DBCStructure.h +++ b/src/game/Server/DBCStructure.h @@ -644,8 +644,8 @@ struct BattlemasterListEntry uint32 minPlayers; // 25 4.0.6.13596 uint32 maxPlayers; // 26 4.0.1 uint32 rated; // 27 4.0.3, value 2 for Rated Battlegrounds - //uint32 // 28 5.4.x - //uint32 // 29 5.4.x + //uint32 unk1; // 28 5.4.x + //DBCString typeName; // 29 5.4.x }; /*struct Cfg_CategoriesEntry diff --git a/src/game/Server/DBCfmt.h b/src/game/Server/DBCfmt.h index 0387bdff5..b3daab269 100644 --- a/src/game/Server/DBCfmt.h +++ b/src/game/Server/DBCfmt.h @@ -34,7 +34,7 @@ const char ArmorLocationfmt[]="nfffff"; const char AuctionHouseEntryfmt[]= "niiix"; const char BankBagSlotPricesEntryfmt[] = "ni"; const char BarberShopStyleEntryfmt[]= "nixxxiii"; -const char BattlemasterListEntryfmt[]="niiiiiiiiiiiiiiiiixsiiiiiiiixx"; // TODO: NEED TO CONFIRM THIS +const char BattlemasterListEntryfmt[]="niiiiiiiiiiiiiiiisxiiiiiiiiixx"; // TODO: NEED TO CONFIRM THIS const char CharStartOutfitEntryfmt[]= "diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char CharTitlesEntryfmt[]="nxsxix"; const char ChatChannelsEntryfmt[]="iixsx";