AzerothCore
Pages :

C贸mo importar datos DBC dentro de la base de datos de AC

Esta gu铆a te mostrar谩 c贸mo importar datos DBC dentro de la base de datos de AzerothCore y editarlos. Para la gu铆a vamos a usar AreaTable.dbc como ejemplo, cambiando la zona de Hyjal de "Normal" a "Sanctuary (con duelos permitidos)". Si haces esto, convertir谩s esa zona en crossfaction y, por ejemplo, podr谩s usarla para eventos.

Requisitos

  • Nodejs para el node-dbc-reader

Primeros pasos

1. instala mi dbc-reader

Clona o descarga este repositorio y ejecuta npm install dentro de la carpeta descargada.

Lee la documentaci贸n de ese repositorio si necesitas ejecutar comandos m谩s complejos.

2. Busca tus datos

Ejecuta este comando para comprobar que la zona es correcta: npm run start -- --search="[616].includes({*})" --columns=ID AreaTable

Este comando buscar谩 en la columna ID con la siguiente condici贸n: [616].includes({*}), lo que significa que el programa buscar谩 todos los IDs que incluyan los valores dentro del array [ ]. En este caso solo necesitamos el valor 616.

Nota: la opci贸n --search est谩 respaldada por un eval, lo que significa que puedes ejecutar cualquier m茅todo de javascript para realizar una comparaci贸n

El resultado de ese comando ser谩:

{
    "ID": 616,
    "ContinentID": 1,
    "ParentAreaID": 0,
    "AreaBit": 619,
    "Flags": 64,
    "SoundProviderPref": 0,
    "SoundProviderPrefUnderwater": 11,
    "AmbienceID": 31,
    "ZoneMusic": 0,
    "IntroSound": 0,
    "ExplorationLevel": 0,
    "AreaName_Lang_enUS": "Hyjal",
    "AreaName_Lang_enGB": "",
    "AreaName_Lang_koKR": "",
    "AreaName_Lang_frFR": "",
    "AreaName_Lang_deDE": "",
    "AreaName_Lang_enCN": "",
    "AreaName_Lang_zhCN": "",
    "AreaName_Lang_enTW": "",
    "AreaName_Lang_zhTW": "",
    "AreaName_Lang_esES": "",
    "AreaName_Lang_esMX": "",
    "AreaName_Lang_ruRU": "",
    "AreaName_Lang_ptPT": "",
    "AreaName_Lang_ptBR": "",
    "AreaName_Lang_itIT": "",
    "AreaName_Lang_Unk": "",
    "AreaName_Lang_Mask": 16712190,
    "FactionGroupMask": 0,
    "LiquidTypeID_1": 0,
    "LiquidTypeID_2": 0,
    "LiquidTypeID_3": 0,
    "LiquidTypeID_4": 0,
    "MinElevation": -500,
    "Ambient_Multiplier": 0,
    "Lightid": 0
  }

El valor: "Flags": 64 significa "zona normal", tenemos que sobrescribirlo con 19456 - Sanctuary (Duels allowed).

Para la documentaci贸n de DBC consulta esta wiki

Puedes consultar la lista de los flags aqu铆

  1. Exporta el SQL

Ahora ejecuta el mismo comando de arriba pero con el tipo de salida : npm run start -- -s "[616].includes({*})" -t sql --columns=ID AreaTable para extraer la consulta INSERT

Salida:

INSERT IGNORE INTO areatable_dbc (`ID`,`ContinentID`,`ParentAreaID`,`AreaBit`,`Flags`,`SoundProviderPref`,`SoundProviderPrefUnderwater`,`AmbienceID`,`ZoneMusic`,`IntroSound`,`ExplorationLevel`,`AreaName_Lang_enUS`,`AreaName_Lang_enGB`,`AreaName_Lang_koKR`,`AreaName_Lang_frFR`,`AreaName_Lang_deDE`,`AreaName_Lang_enCN`,`AreaName_Lang_zhCN`,`AreaName_Lang_enTW`,`AreaName_Lang_zhTW`,`AreaName_Lang_esES`,`AreaName_Lang_esMX`,`AreaName_Lang_ruRU`,`AreaName_Lang_ptPT`,`AreaName_Lang_ptBR`,`AreaName_Lang_itIT`,`AreaName_Lang_Unk`,`AreaName_Lang_Mask`,`FactionGroupMask`,`LiquidTypeID_1`,`LiquidTypeID_2`,`LiquidTypeID_3`,`LiquidTypeID_4`,`MinElevation`,`Ambient_Multiplier`,`Lightid`)
 VALUES (616,1,0,619,64,0,11,31,0,0,0,"Hyjal","","","","","","","","","","","","","","","",16712190,0,0,0,0,0,-500,0,0);
  1. Crea la consulta de actualizaci贸n

Crea la consulta de actualizaci贸n para establecer la facci贸n adecuada:

UPDATE areatable_dbc SET Flags=19456 WHERE ID=616
  1. Crea tu PR

Si est谩s usando esta gu铆a para arreglar un bug (no con fines de personalizaci贸n), ahora puedes crear tu PR con las 2 consultas de arriba