Skip to content
Snippets Groups Projects
README.md 5.11 KiB
Newer Older
Duarte Duarte's avatar
Duarte Duarte committed
WowPacketParser (WPP)
=====================
kaelima's avatar
kaelima committed

Duarte Duarte's avatar
Duarte Duarte committed
[![GitHub license](https://img.shields.io/github/license/TrinityCore/WowPacketParser.svg?style=flat-square)](https://github.com/TrinityCore/WowPacketParser/blob/WowPacketParser/COPYING)
DDuarte's avatar
DDuarte committed
[![Coverity Scan Build Status](https://img.shields.io/coverity/scan/2618.svg?style=flat-square)](https://scan.coverity.com/projects/2618)
[![Build Status TravisCI](https://img.shields.io/travis/TrinityCore/WowPacketParser/master.svg?style=flat-square)](https://travis-ci.org/TrinityCore/WowPacketParser)
[![Build Status AppVeyor](https://img.shields.io/appveyor/ci/DDuarte/wowpacketparser-191/master.svg?style=flat-square)](https://ci.appveyor.com/project/DDuarte/wowpacketparser-191)
[![Docker Pulls](https://img.shields.io/docker/pulls/trinitycore/wpp.svg?style=flat-square)](https://hub.docker.com/r/trinitycore/wpp/)
Aokromes's avatar
Aokromes committed
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/0154074816634467883a601e6c23188c)](https://www.codacy.com/app/TrinityCore/WowPacketParser?utm_source=github.com&utm_medium=referral&utm_content=TrinityCore/WowPacketParser&utm_campaign=Badge_Grade)
Duarte Duarte's avatar
Duarte Duarte committed
-----
* Compile WowPacketParser using Visual Studio 2019 (with .NET Core SDK 3.1) or .NET Core SDK 3.1 (Linux/OSX).
Duarte Duarte's avatar
Duarte Duarte committed
  Alternatively you can download compiled binaries from the links [below](#nightly-builds).
* Edit `WowPacketParser.exe.config` to fit your needs.
* Drag one or more files (.pkt or .bin) to `WowPacketParser.exe`.
* Command line usage: `WowPacketParser.exe [--ConfigFile path --Option1 value1 ...] filetoparse1 ...`

##### Databases

Optionally, WPP can connect to two kinds of MySQL databases: `world` from [TrinityCore](https://github.com/TrinityCore/TrinityCore)
and its own database, `WPP`. This can be enabled by setting `<add key="DBEnabled" value="true" />`
Carbenium's avatar
Carbenium committed
in the `.config` file. Remember to set `<add key="TargetedDatabase" value="1"/>` in accordance with the targeted version of the core. 
Duarte Duarte's avatar
Duarte Duarte committed

The `world` database is used when creating SQL files after parsing to produce the minimum number of
Duarte Duarte's avatar
Duarte Duarte committed
changes needed to update the database. For example, if only the faction of a creature that appears
in the sniff needs to be updated, the produced SQL files will contain an UPDATE query, instead of
a full INSERT to the table `creature_template`. WPP does not modify this database directly, all the
tentative changes will be written to the output SQL files.
Duarte Duarte's avatar
Duarte Duarte committed
The `WPP` database is used to feed additional data that WPP may use while parsing. For example, in
the output text files, the spell name can be displayed next to spell ids:

> ServerToClient: SMSG_SPELL_START (0x2BB8) Length: 96 ConnIdx: 0 Time: 01/01/2016 00:22:33.235 Number: 701  
> (Cast) CasterGUID: Full: 0x03691F00000000000000000000000001 Player/0 R3558/S0 Map: 0 Low: 1  
> (Cast) SpellID: **2479 (Honorless Target)**  
> (Cast) CastFlags: 15

This is available for a lot of other named entities (achievements, creatures, quests, etc.). The SQL
files required for this database is in the `SQL` directory. `create_WPP.sql` creates the database
and `wpp_data_objectnames.sql` has some data to fill the database.
Duarte Duarte's avatar
Duarte Duarte committed
Nightly Builds
--------------
.NET Core SDK 3.1 (3.1.100 or higher) or .NET Core Runtime 3.1 (3.1.100 or higher) is needed!
Duarte Duarte's avatar
Duarte Duarte committed

[Download .NET Core 3.1 here!](https://dotnet.microsoft.com/download/dotnet-core/3.1)
Duarte Duarte's avatar
Duarte Duarte committed

##### Windows
- Visual Studio 2019
  - [Debug](https://ci.appveyor.com/api/projects/DDuarte/wowpacketparser-191/artifacts/WowPacketParser/WPP.zip?job=Image:%20Visual%20Studio%202019;%20Configuration:%20Debug&branch=master)
  - [Release](https://ci.appveyor.com/api/projects/DDuarte/wowpacketparser-191/artifacts/WowPacketParser/WPP.zip?job=Image:%20Visual%20Studio%202019;%20Configuration:%20Release&branch=master)
  
##### Linux (Ubuntu)
  - [Debug](https://ci.appveyor.com/api/projects/DDuarte/wowpacketparser-191/artifacts/WowPacketParser/WPP.zip?job=Image:%20Ubuntu;%20Configuration:%20Debug&branch=master)
  - [Release](https://ci.appveyor.com/api/projects/DDuarte/wowpacketparser-191/artifacts/WowPacketParser/WPP.zip?job=Image:%20Ubuntu;%20Configuration:%20Release&branch=master)
##### macOS (currently unsupported)

Docker (experimental)
---------------------

It is possible run WPP on Docker using the `trinitycore/wpp` image:
```
docker run -v /place/where/sniffs/are/kept:/usr/src/app/build/sniffs trinitycore/wpp sniffs/sniffname.pkt
```

*/place/where/sniffs/are/kept* should your local directory containing the .pkt file and *sniffname.pkt* the file to be parsed.

Output (.txt/.sql) of the parser will be added to */place/where/sniffs/are/kept*.


Copyright & Third Party
-----------------------
##### WowPacketParser
License: GPLv3

Read file [COPYING](COPYING).

##### Third Party 

The third party libraries have their own way of addressing authorship, and the authorship of commits importing/ updating
a third party library reflects who did the importing instead of who wrote the code within the commit.


###### NuGet libraries:

Copyright information of third party libraries provided through NuGet can be obtained by checking https://www.nuget.org/


###### Provided third party libraries:

DBFileReaderLib, 2019-2020 wowdev, located at https://github.com/wowdev/DBCD