shagu / pfUI-toolbox

Some ugly and messy scripts for pfUI to extract data from wow clients and servers
MIT License
3 stars 1 forks source link

pfUI-toolbox

The pfUI-toolbox includes some ugly scripts to automatically generate and extract locale related content and other data from the client and databases. It is recommended to clone this repository side by side to your pfUI installation.

$ ls -1
pfUI/
pfUI-toolbox/

Hint: If you only want to update the translation tables, you won't need to follow the dependency and database server setup.

Dependencies

You'll need an up to date linux system with wine, php, mariadb-clients and lxc installed.

Setup a database lxc container

Make sure you have lxc installed on your host and /etc/lxc/default.conf includes lxc.net.0.type = none. Select apache2 as webserver when asked and use mangos as password for your database connections.

lxc-create -n pfUI -t ubuntu
lxc-start  -n pfUI
lxc-attach -n pfUI

echo "nameserver 8.8.8.8" > /etc/resolv.conf
apt-get update && apt-get upgrade
apt-get install phpmyadmin mariadb-server wget p7zip

Grab and install the latest database from elysium's github page. Also install aowow's sql tables for additional informations and correlation tables.

wget https://github.com/elysium-project/database/raw/master/full_db/world_1.12_AUG08_2017.7z.7z
p7zip -d world_*.7z

mysql -u root
> CREATE DATABASE mangos DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
> CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'mangos';
> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK TABLES ON mangos.* TO 'mangos'@'localhost';
> flush privileges;
> quit;

mysql -u mangos -p mangos < world_*.sql

wget https://github.com/shagu/ShaguQuest/raw/master/database/aowow.sql
mysql -u mangos -p mangos < aowow.sql

Generate DBC Files

Make sure to have gameclients of all languages you wish to build for available. The file Data/dbc.MPQ aswell as all Data/patch-*.MPQ inside the World of Warcraft directory have to be copied to a new folder with the name of the corresponding locale (e.g ruRU). Now follow the install instructions of MPQExtractor to install the actual DBC extractor. Make sure it is installed correctly by typing MPQExtractor into a shell. Now have a look inside the ./tools/load_dbcs.sh script and adjust the PATH_MPQ to the directory where your MPQ's are. Once done, type ./tools/load_dbcs.sh to extract the required gamedata. The required structure now gets patched, renamed and moved to the DBC folder inside this repo.

Run the Toolchain

You're now ready to generate the locale dependent content. At the beginning you should instruct make to prepare everything. This has to be done to parse all DBC files into CSV and also generate SQL files which will be installed to your database.

make prepare

The SQL-Update might take a while, depending on your DBCs. Finally you're ready to run the makefile without any parameters to generate everything. You can also only generate files seperately.

make                # will run "critters", "debuffs", "spells" and "interrupts"

make prepare        # Clean old files, convert dbc into csv and sql files and updates the database
make critters       # Build out/critter_$loc.lua. A list of all critters ingame.
make debuffs        # Build out/debuffs_$loc.lua. A list of all debuffs and their duration.
make spells         # Build out/spells_$loc.lua. A list of all spells, their casttime and icon.
make interrupts     # Build out/interrupts_$loc.lua. A list of all known interrupts, generated by the ./lists/interrupts.txt

make translations   # Update all pfUI translation tables, sort them and add missing T[""] values.