Update README.md

This commit is contained in:
RElesgoe 2016-10-03 23:48:47 -07:00 committed by GitHub
parent 542865a0ab
commit dc3aac1666

111
README.md
View file

@ -1,82 +1,59 @@
Player versus Player Gaming Network
Player vs Player Gaming Network - PRO
=====
![](http://i.imgur.com/LfI3hXo.png)
Next generation of PvPGN &mdash; Battle.net<sup> v1.0</sup> game server emulator.
PvPGN is a free and open source cross-platform server software that supports Battle.net and and Westwood Online game clients. PvPGN-PRO is a fork of the official PvPGN project, whose development stopped in 2011, and aims to provide continued maintenance and additional features for PvPGN.
*The project is still in development. Stay tuned and report any bugs!*
[![License (GPL version 2)](https://img.shields.io/badge/license-GNU%20GPL%20version%202-blue.svg?style=flat-square)](http://opensource.org/licenses/GPL-2.0)
![Language (C++)](https://img.shields.io/badge/powered_by-C++-brightgreen.svg?style=flat-square)
[![Language (Lua)](https://img.shields.io/badge/powered_by-Lua-red.svg?style=flat-square)](https://lua.org)
[![Github Releases (by Release)](https://img.shields.io/github/downloads/pvpgn/pvpgn-server/1.99.7.1-PRO/total.svg?maxAge=2592000)]()
[Deleaker](http://www.deleaker.com/) helps us to find leaks
[![Compiler (Microsoft Visual C++)](https://img.shields.io/badge/compiled_with-Microsoft%20Visual%20C++-yellow.svg?style=flat-square)](https://msdn.microsoft.com/en-us/vstudio/hh386302.aspx)
[![Compiler (LLVM/Clang)](https://img.shields.io/badge/compiled_with-LLVM/Clang-lightgrey.svg?style=flat-square)](http://clang.llvm.org/)
[![Compiler (GCC)](https://img.shields.io/badge/compiled_with-GCC-yellowgreen.svg?style=flat-square)](https://gcc.gnu.org/)
[![Build Status](https://travis-ci.org/pvpgn/pvpgn-server.svg?branch=master)](https://travis-ci.org/pvpgn/pvpgn-server) [![Build status](https://ci.appveyor.com/api/projects/status/dqoj9lkvhfwthmn6)](https://ci.appveyor.com/project/HarpyWar/pvpgn)
[![Build Status](https://travis-ci.org/pvpgn/pvpgn-server.svg?branch=master)](https://travis-ci.org/pvpgn/pvpgn-server)
[![Build status](https://ci.appveyor.com/api/projects/status/dqoj9lkvhfwthmn6)](https://ci.appveyor.com/project/HarpyWar/pvpgn)
[Deleaker](http://www.deleaker.com/) helps us to find leaks.
Source Code changes (since v1.99)
--
* Lua scripting support (WITH_LUA cmake directive)
* Add display custom icons depends on a user rating, custom output for command `/stats`; works with Warcraft and Starcraft (see [icons.conf](https://github.com/pvpgn/pvpgn-server/blob/master/conf/icons.conf.in)) <sup>commits [1](https://github.com/pvpgn/pvpgn-server/commit/c11af352603e18acc52102ba8574776425248331), [2](https://github.com/pvpgn/pvpgn-server/commit/368c4b9296d18a515af746b65fe69054ab6f4236), [3](https://github.com/pvpgn/pvpgn-server/commit/f1a96c392055a777b48dc4d77631c5e906161e28)</sup>
* fix command send flooding <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/74f9e4faafe24699597e4be5bfda83bf255ba72e)</sup>
* fix compile error when pointer size is larger than int <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/1ea116434ce009bad4903ff72bd69bbb8987ce06)</sup>
* fix Warcraft 3 ICON SWITCH hack <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/84811bcfe875d6c42cd8271bbdae757f0b5d445b)</sup>
* fix saving sql fields with custom characters in the name <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/18713ffe35cbe9a12193e5c1f1caf5031d4c4731)</sup>
* fix status.xml output errors and add a new game_id field
* welcome text for Warcraft 3 is moved from the code into a new file `bnmotd_w3.txt` ([example](http://img21.imageshack.us/img21/1808/j2py.png) with colored text is included)
<sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/ff8ca941cd7942bab201607fbc31382837a35617)</sup>
* Feature to use d2s character as a template for a new character in newbie.save; each character class can have it's own template <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/20)</sup>
* Full localization <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/13)</sup>
* Ignore flood protection for reserved users and bots <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/49)</sup>
* Several bug fixes which allow hackers to crash a server and a game client
* Logging for user commands <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/47)</sup>
* SID_READMEMORY implementation <sup>[issue](https://github.com/pvpgn/pvpgn-server/pull/26)</sup>
* SID_EXTRAWORK implementation <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/72)</sup>
* Improve SQL storage performance <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/85)</sup>
## Tracking
By default, tracking is enabled and is only used for the purpose of sending informational data (e.g. server description, homepage, uptime, amount of users) to tracking servers. To disable tracking, set ````track = 0```` in ````conf/bnetd.conf````.
New commands
--
* `/save` immediately save changes of accounts and clans from the cache to a storage (useful for testing) <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/be8d65d16f910b2090b0db9e7eb2c043b816dae7)</sup>
* `/icon <add|del|list>` icon stash implementation - each user has it's own stash with icons, admin/operator can add icon to user's stash, you can set aliases for icons in config; works with Warcraft and Starcraft <sup>commits [1](https://github.com/pvpgn/pvpgn-server/commit/1ade081c6b10a3e710130b88613b71b880ba0cd7), [2](https://github.com/pvpgn/pvpgn-server/commit/36deb1179bca931bd6585c2b6dbf7d8ade08bc8e)</sup>
* `/find <substr of username>` search account by part of the name - [patch #1526](http://developer.berlios.de/patch/?func=detailpatch&patch_id=1526&group_id=2291) from berlios <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/c229c6693b3dd55f02fe3a81403870044c0786b2)</sup>
* `/quiz` Trivia Quiz Game (implemented in Lua) <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/ee04fdd23dfef90f0b852a6e90df23c7f5edc08e)</sup>
* `/language <name>` change user language
* `/log` show/search in user log
Modified commands
--
* `/set` exclusion to get/set a password hash and user id; feature to empty key with "null" value; more info in output of the command and examples <sup>commits [1](https://github.com/pvpgn/pvpgn-server/commit/d96e1029478d92f67000761983e83ccfde2abbdf), [2](https://github.com/pvpgn/pvpgn-server/commit/1ade081c6b10a3e710130b88613b71b880ba0cd7#diff-ef576b6b7e90128c3718523eaaf1b894R4716)</sup>
* `/finger` more info in the command output - [patch #2859](http://developer.berlios.de/patch/?func=detailpatch&patch_id=2859&group_id=2291) from berlios <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/bdb450084704da1f33e28c9edd3d2d16b720a946)</sup>
* `/games lobby` show games in lobby only - [patch #3235](http://developer.berlios.de/patch/?func=detailpatch&patch_id=3235&group_id=2291) from berlios <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/5d27cece2c24b5fe779f1560162a31442bf02617)</sup>
* `/friends online` show online friends only - [patch #3236](http://developer.berlios.de/patch/?func=detailpatch&patch_id=3236&group_id=2291) from berlios <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/8762667276b535d3385d51941d41d780089a7049)</sup>
* `/topic` feature to set text on a new line <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/6)</sup>
* `/alert <message>` like /announce but message box shows instead of a text <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/15)</sup>
* `/rehash <mode>` feature to rehash configs separately <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/ee04fdd23dfef90f0b852a6e90df23c7f5edc08e)</sup>
Minor changes
--
* add original MOTD files with UTF-8 encoding
* add support files v1.2, there are no need to download it separately after install
* add ODBC support for CMake
* add latest versioncheck.conf
* skip_versioncheck, allow_bad_version are enabled by default in bnetd.conf - for easy start
* source code is formatted for better reading
* unused files are removed, only pvpgn source here
* unknown udp packets are logged with enabled debug mode only (it always chokes a log file before) <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/c39f9f03159b2edc8d2457d8134d84486378f9b1)
* add a file location for all the text files like MOTD (often a server admin doesn't know where a file is located)
* add option ignore-version for programs **bnchat** and **bnstat** - [patch #3184](http://developer.berlios.de/patch/?func=detailpatch&patch_id=3184&group_id=2291) from berlios <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/a1fb914c30d9d69d062e8f698f7d0e9bacf41367)
* help for all commands is displayed from bnhelp.conf and format changed for better reading, updated more help messages <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/5)</sup>
* fix error in log when user sends a message with text length of 255 symbols <sup>[commit](https://github.com/pvpgn/pvpgn-server/commit/af2baccdb8a2b624627caa94eac5595ac8f76e07)</sup>
* update default tracker servers in config, track is enabled by default <sup>issues [1](https://github.com/pvpgn/pvpgn-server/issues/7), [2](https://github.com/pvpgn/pvpgn-server/issues/18)</sup>
* fix Windows version identification <sup>[issue](https://github.com/pvpgn/pvpgn-server/issues/60#issuecomment-49385463)</sup>
* reorganize unix install paths, add `make uninstall` feature <sup>[issue](https://github.com/pvpgn/pvpgn-server/pull/80)</sup>
Build source code
--
## Building
See [docs/ports.md](https://github.com/pvpgn/pvpgn-server/blob/master/docs/ports.md) for operating systems and compilers that have been confirmed to work with PvPGN. Any operating system that supports WinAPI or POSIX, and any C++11 compliant compiler should be able to build PvPGN.
#### Windows
Use [Magic Builder](https://github.com/pvpgn/pvpgn-server-magic-builder).
#### Linux
[Русский](http://harpywar.com/?a=articles&b=2&c=1&d=74) | [English](http://harpywar.com/?a=articles&b=2&c=1&d=74&lang=en)
[![Vimeo](http://habrastorage.org/storage3/48c/5a9/4b1/48c5a94b1173242e311f8376be80a585.png)](https://vimeo.com/83763862)
````
apt-get install git install cmake make build-essential zlib1g-dev
apt-get install liblua5.1-0-dev #Lua support
apt-get install mysql-server mysql-client libmysqlclient-dev #MySQL support
cd /home
git clone https://github.com/pvpgn/pvpgn-server.git
cmake -D CMAKE_INSTALL_PREFIX=/usr/local/pvpgn -D WITH_MYSQL=true -D WITH_LUA=true ../
make
make install
````
Full instructions: [Русский](http://harpywar.com/?a=articles&b=2&c=1&d=74) | [English](http://harpywar.com/?a=articles&b=2&c=1&d=74&lang=en)
## License
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.