Skip to content

Guide to build Playerbot

alysher edited this page Aug 21, 2015 · 21 revisions

Obtaining Playerbot Source Code(including blueboy/portal)

Playerbot code is currently available for MaNGOS , MaNGOS Zero , MaNGOS One MangosR2 , CMaNGOS-WotLK , CMaNGOS-TBC , and CMaNGOS-Classic cores.

Release Code (master branch)

This is tried and tested code (full support provided):

  • Playerbot(blueboy/portal) for CMaNGOS-WotLK
  • Playerbot(blueboy/portal) for CMaNGOS-TBC
  • Playerbot(blueboy/portal) for CMaNGOS-Classic
  • Playerbot for MaNGOS
  • Playerbot for MaNGOS Zero
  • Currently unavailable (Please use Beta Test Code)
  • Playerbot for MaNGOS One
  • Currently unavailable (Please use Beta Test Code)
  • Playerbot for MangosR2
  • Currently unavailable (Please use Beta Test Code)

Beta Test Code (master branch)

This code is generally available for testing (full support provided):

  • Playerbot for MaNGOS
  • Playerbot for MaNGOS Zero
  • Playerbot for MaNGOS One
  • Playerbot for MangosR2

Alpha Development Code

In addition to the Beta Test Code (master branch), there are several branches that hold code in raw development. These represent the latest Playerbot ideas, and are not guaranteed (minimal support provided, feedback is for developer’s information only). A full list of available branches can be obtained from:

  • Playerbot for MaNGOS
  • Playerbot for MaNGOS Zero
  • Playerbot for MaNGOS One

You will need the git utility to be installed on your system to obtain the above code

Merging the code

In order to build Playerbot with either core, it is first necessary to merge the code.
This can be done directly or by applying a prepared patch.

Direct Merge Method

1. Obtain appropriate core.

MaNGOS

git clone git://github.com/mangos/mangos.git <local repository> 

The default local repository will be called mangos, but you can change this to suite

MaNGOS Zero

git clone git://github.com/mangos-zero/server.git <local repository> 

The default local repository will be called server, but you can change this to suite

MaNGOS One

git clone git://github.com/mangos-one/server.git <local repository>

The default local repository will be called server, but you can change this to suite

ManagosR2

git clone git://github.com/mangosR2/mangos.git <local repository>

The default local repository will be called mangos, but you can change this to suite

2. Merging relevant Playerbot Code from the links given above. It is assumed that the core code
is either clean or contains only playerbot code, previously merged (i.e. no other third party code).

cd <local repository> 
git pull git://github.com/playerbot/mangos.git <branch name>

The branch name will be an online branch, either master or a code sub-branch

3. If you wish to update an existing local repository, then repeat instruction 2. All changes since
the last merge will then be merged into the local repository

If no changes have occured, then you will be told

From git://github.com/playerbot/mangos.git
 * branch            <branch name>     -> FETCH_HEAD
Already up-to-date.

Prepared Patch Method

Playerbot(blueboy/portal) for CMaNGOS-WotLK (full patch)

Run the following script

#!/bin/bash -x
git clone git://github.com/cmangos/mangos-wotlk.git mangos
cd mangos
git fetch git://github.com/blueboy/portal.git master:portal
git checkout portal
HASH=`git log --pretty=oneline | grep -m 1 '\[[0-9]\{5\}]' | cut -d " " -f 1`
git diff $HASH > playerbot.patch

Playerbot for CMaNGOS-TBC (full patch)

Run the following script

#!/bin/bash -x
git clone git://github.com/cmangos/mangos-tbc.git mangos
cd mangos
git fetch git://github.com/blueboy/portaltbc.git master:portaltbc
git checkout portaltbc
HASH=`git log --pretty=oneline | grep -m 1 '\[[0-9]\{5\}]' | cut -d " " -f 1`
git diff $HASH > playerbot-tbc.patch

Playerbot(blueboy/portal) for CMaNGOS-Classic (full patch)

Run the following script

#!/bin/bash -x
git clone git://github.com/cmangos/mangos-classic.git mangos
cd mangos
git fetch git://github.com/blueboy/portalclassic.git master:portalclassic
git checkout portalclassic
HASH=`git log --pretty=oneline | grep -m 1 '\[[0-9]\{5\}]' | cut -d " " -f 1`
git diff $HASH > playerbot-classic.patch

Playerbot for MaNGOS (full patch)

Run the following script

#!/bin/bash -x
git clone git://github.com/mangos/mangos.git playerbot
cd playerbot
git fetch git://github.com/playerbot/mangos.git master:playerbot
git checkout playerbot
HASH=`git log --pretty=oneline | grep -m 1 '\[[0-9]\{5\}]' | cut -d " " -f 1`
git diff $HASH > playerbot.patch

Playerbot for MaNGOS Zero (full patch)

Run the following script

#!/bin/bash -x
git clone git://github.com/mangos-zero/server.git portal_zero_patch
cd portal_zero_patch
git fetch git://github.com/blueboy/portalzero.git master:portalzero
git checkout portalzero
HASH=`git log --pretty=oneline | grep -m 1 '\[z[0-9]\{4\}]' | cut -d " " -f 1`
git diff $HASH > playerbot_zero.patch

Playerbot for MaNGOS One (full patch)

Run the following script

#!/bin/bash -x
git clone git://github.com/mangos-one/server.git portal_one_patch
cd portal_one_patch
git fetch git://github.com/blueboy/portalone.git master:portalone
git checkout portalone
HASH=`git log --pretty=oneline | grep -m 1 '\[s[0-9]\{4\}]' | cut -d " " -f 1`
git diff $HASH > playerbot_one.patch

Playerbot for MangosR2 (full patch)

Run the following script

#!/bin/bash -x
git clone git://github.com/mangosR2/mangos.git portalR2
cd portalR2
git fetch git://github.com/blueboy/portalR2.git master:portalR2
git checkout portalR2
HASH=`git log --pretty=oneline | grep -m 1 '\[mr[0-9]\{4\}]' | cut -d " " -f 1`
git diff $HASH > portalR2.patch

copy the patch created to the local repository

cd <local repository>
git apply --check --whitespace=fix <prepared patch>

The —check option does a dumby run, to check for conflicts. If none, remove and apply again.

If you follow the instructions above, it is unlikely that you will experience any merge conflicts.
However if you do, please contact support Playerbot Thread

Once you have applied the Playerbot code successfully to the core, proceed with the build normally, according to your system.