DBC: Porovnání verzí

Z WoWResource Wiki
Přejít na: navigace, hledání
(init page)
 
m
Řádek 1: Řádek 1:
DBC je souborový formát databáze využívaný klientem hry World of Warcraft. Vzhledem k množství údajů uložených v těchto databázích se využívají i v emulovaných serverech.
+
DBC je souborový formát databáze využívaný klientem hry World of Warcraft. Vzhledem k množství údajů uložených v těchto databázích se využívají i v emulovaných serverech jako zdroj Blizzlike informací.
  
 
== Formát DBC souboru ==
 
== Formát DBC souboru ==
Každý DBC soubor začíná přesně stanovenou hlavičkou, poté následují číselné záznamy a na konci souboru se nalézají textové řetězce.
+
Každý DBC soubor začíná přesně stanovenou hlavičkou, poté následují záznamy a na konci souboru se nalézají textové řetězce. Z obsahu DBC souboru se nedá získat struktura, tu je nutné znát nebo odhadovat. Hlavička specifikuje počet polí na záznam a celkovou velikost těchto polí.
  
 
=== Specifikace hlavičky ===
 
=== Specifikace hlavičky ===
* 4 byty - řetězec: WDBC
+
* 4 bajty - řetězec: WDBC
* 4 byty - počet záznamů
+
* 4 bajty - počet záznamů (record, row)
* 4 byty - počet polí v jednom záznamu
+
* 4 bajty - počet polí v jednom záznamu (field)
* 4 byty - velikost jednoho záznamu
+
* 4 bajty - velikost jednoho záznamu
* 4 byty - velikost řetězcové části
+
* 4 bajty - velikost řetězcové části
  
 
=== Specifikace záznamu ===
 
=== Specifikace záznamu ===
 
Záznamy nejsou číslovány, jako indexy se u některých DBC souborů využívají určitá pole.
 
Záznamy nejsou číslovány, jako indexy se u některých DBC souborů využívají určitá pole.
Mezi řádky ani poli (v rámci jednoho záznamu) není použit žádný separátor.
+
Mezi záznamy ani poli není použit žádný separátor. Oblast není ničím ohraničena a začíná hned za hlavičkou.
Řetězce jsou uloženy jako 4 bajtový offset od počátku řetězcové části. Jednotlivé stringy v řetězcové části jsou ukončeny znakem s kódem 0x00.
+
Řetězce jsou uloženy jako 4 bajtové číslo - offset od počátku řetězcové části. Jednotlivé stringy v řetězcové části jsou ukončeny znakem s kódem 0x00.
  
 
  Počátek string tabulky = 20 + <počet záznamů> * <velikost jednoho záznamu>  
 
  Počátek string tabulky = 20 + <počet záznamů> * <velikost jednoho záznamu>  

Verze z 22. 1. 2008, 17:41

DBC je souborový formát databáze využívaný klientem hry World of Warcraft. Vzhledem k množství údajů uložených v těchto databázích se využívají i v emulovaných serverech jako zdroj Blizzlike informací.

Formát DBC souboru

Každý DBC soubor začíná přesně stanovenou hlavičkou, poté následují záznamy a na konci souboru se nalézají textové řetězce. Z obsahu DBC souboru se nedá získat struktura, tu je nutné znát nebo odhadovat. Hlavička specifikuje počet polí na záznam a celkovou velikost těchto polí.

Specifikace hlavičky

  • 4 bajty - řetězec: WDBC
  • 4 bajty - počet záznamů (record, row)
  • 4 bajty - počet polí v jednom záznamu (field)
  • 4 bajty - velikost jednoho záznamu
  • 4 bajty - velikost řetězcové části

Specifikace záznamu

Záznamy nejsou číslovány, jako indexy se u některých DBC souborů využívají určitá pole. Mezi záznamy ani poli není použit žádný separátor. Oblast není ničím ohraničena a začíná hned za hlavičkou. Řetězce jsou uloženy jako 4 bajtové číslo - offset od počátku řetězcové části. Jednotlivé stringy v řetězcové části jsou ukončeny znakem s kódem 0x00.

Počátek string tabulky = 20 + <počet záznamů> * <velikost jednoho záznamu> 
Offset konkrétního řetězce = <počátek string tabulky> + <offset v záznamu>

Seznam DBC souborů v klientovi

AnimationData.dbc gtChanceToSpellCrit.dbc SoundEntries.dbc
AreaPOI.dbc gtChanceToSpellCritBase.dbc SoundProviderPreferences.dbc
AreaTable.dbc gtCombatRatings.dbc SoundSamplePreferences.dbc
AreaTrigger.dbc gtOCTRegenHP.dbc SoundWaterType.dbc
AttackAnimKits.dbc gtOCTRegenMP.dbc SpamMessages.dbc
AttackAnimTypes.dbc gtRegenHPPerSpt.dbc Spell.dbc
AuctionHouse.dbc gtRegenMPPerSpt.dbc SpellCastTimes.dbc
BankBagSlotPrices.dbc HelmetGeosetVisData.dbc SpellCategory.dbc
BattlemasterList.dbc ItemBagFamily.dbc SpellChainEffects.dbc
CameraShakes.dbc ItemClass.dbc SpellDispelType.dbc
Cfg_Categories.dbc ItemDisplayInfo.dbc SpellDuration.dbc
Cfg_Configs.dbc ItemExtendedCost.dbc SpellEffectCameraShakes.dbc
CharacterFacialHairStyles.dbc ItemGroupSounds.dbc SpellFocusObject.dbc
CharBaseInfo.dbc ItemPetFood.dbc SpellIcon.dbc
CharHairGeosets.dbc ItemRandomProperties.dbc SpellItemEnchantment.dbc
CharHairTextures.dbc ItemRandomSuffix.dbc SpellItemEnchantmentCondition.dbc
CharSections.dbc ItemSet.dbc SpellMechanic.dbc
CharStartOutfit.dbc ItemSubClass.dbc SpellMissileMotion.dbc
CharTitles.dbc ItemSubClassMask.dbc SpellRadius.dbc
CharVariations.dbc ItemVisualEffects.dbc SpellRange.dbc
ChatChannels.dbc ItemVisuals.dbc SpellShapeshiftForm.dbc
ChatProfanity.dbc Languages.dbc SpellVisual.dbc
ChrClasses.dbc LanguageWords.dbc SpellVisualEffectName.dbc
ChrRaces.dbc LFGDungeons.dbc SpellVisualKit.dbc
CinematicCamera.dbc Light.dbc SpellVisualPrecastTransitions.dbc
CinematicSequences.dbc LightFloatBand.dbc StableSlotPrices.dbc
CreatureDisplayInfo.dbc LightIntBand.dbc Startup_Strings.dbc
CreatureDisplayInfoExtra.dbc LightParams.dbc Stationery.dbc
CreatureFamily.dbc LightSkybox.dbc StringLookups.dbc
CreatureModelData.dbc LiquidType.dbc Talent.dbc
CreatureSoundData.dbc LoadingScreens.dbc TalentTab.dbc
CreatureSpellData.dbc LoadingScreenTaxiSplines.dbc TaxiNodes.dbc
CreatureType.dbc Lock.dbc TaxiPath.dbc
DeathThudLookups.dbc LockType.dbc TaxiPathNode.dbc
DurabilityCosts.dbc MailTemplate.dbc TerrainType.dbc
DurabilityQuality.dbc Map.dbc TerrainTypeSounds.dbc
Emotes.dbc Material.dbc TotemCategory.dbc
EmotesText.dbc NameGen.dbc TransportAnimation.dbc
EmotesTextData.dbc NamesProfanity.dbc UISoundLookups.dbc
EmotesTextSound.dbc NamesReserved.dbc UnitBlood.dbc
EnvironmentalDamage.dbc NPCSounds.dbc UnitBloodLevels.dbc
Exhaustion.dbc Package.dbc VideoHardware.dbc
Faction.dbc PageTextMaterial.dbc VocalUISounds.dbc
FactionGroup.dbc PaperDollItemFrame.dbc WeaponImpactSounds.dbc
FactionTemplate.dbc PetitionType.dbc WeaponSwingSounds2.dbc
FootprintTextures.dbc PetLoyalty.dbc Weather.dbc
FootstepTerrainLookup.dbc PetPersonality.dbc WMOAreaTable.dbc
GameObjectArtKit.dbc QuestInfo.dbc WorldMapArea.dbc
GameObjectDisplayInfo.dbc QuestSort.dbc WorldMapContinent.dbc
GameTables.dbc RandPropPoints.dbc WorldMapOverlay.dbc
GameTips.dbc Resistances.dbc WorldMapTransforms.dbc
GemProperties.dbc ServerMessages.dbc WorldSafeLocs.dbc
GMSurveyCurrentSurvey.dbc SheatheSoundLookups.dbc WorldStateUI.dbc
GMSurveyQuestions.dbc SkillCostsData.dbc WowError_Strings.dbc
GMSurveySurveys.dbc SkillLine.dbc ZoneIntroMusicTable.dbc
GMTicketCategory.dbc SkillLineAbility.dbc ZoneMusic.dbc
GroundEffectDoodad.dbc SkillLineCategory.dbc
GroundEffectTexture.dbc SkillRaceClassInfo.dbc
gtChanceToMeleeCrit.dbc SkillTiers.dbc
gtChanceToMeleeCritBase.dbc SoundAmbience.dbc

Pozn: na generování seznamu je použit PHP skript:

$list = explode("\r\n",$array);
echo "{| style="width:75%;border-collapse: collapse;" border="1"\n";
for($i=0; $i<60; $i++)
  echo "| ".$list[$i]." || ".$list[$i+60]." || ".$list[$i+120]."\r\n"."|- \r\n"; 
echo "|}\r\n";