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.
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.
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铆
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);
Crea la consulta de actualizaci贸n para establecer la facci贸n adecuada:
UPDATE areatable_dbc SET Flags=19456 WHERE ID=616
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