ike3 / mangosbot

This is a modification of MaNGOS (Zero, One, R2, Trinity) server which brings a number of bots online and available for any player. Also allows you to use your account/guild characters as bots.
http://ike3.github.io/mangosbot-docs/
GNU General Public License v2.0
185 stars 79 forks source link

patch integration with tc #44

Open ElleEntertainment opened 9 years ago

ElleEntertainment commented 9 years ago

is possible to integrate player bots with a patch file in the current revision of TC?

ghost commented 9 years ago

Good question and good idea. I have only tried merging TC source into the ike3 source. Not without problems. Still trying to find a working solution to update this source in my own repository.

ElleEntertainment commented 9 years ago

i think playerbot should be implemented in tc as auctionhouse was.. Ok, it's not blizzlike, but auctionhouse bot isn't blizzlike too, and the team could manage this with a boolean (true or false) in the config file to enable this feature or not.. Also, you can use the "character_template" function of wod branch to automatically equip the bots xD

ghost commented 9 years ago

I merged the TrinityCore 3.3.5 branch into the ike3 AI Playerbots (trinity-wotlk-ai) branch as a test, but it causes an error in /src/server/shared/Utilities/StringFormat.h where the file format.h cannot be found. This error only occurs in the combination of the ike3 source with the TC source, but not on the separate sources themselves. StringFormat.h is not part of the ike3 source, it was added 18. March 2015 in TC. Source code causing the issue after a merge:

#ifndef TRINITYCORE_STRING_FORMAT_H
#define TRINITYCORE_STRING_FORMAT_H

#include <format.h>

namespace Trinity
{
    //! Default TC string format function
    template<typename... Args>
    inline std::string StringFormat(const char* fmt, Args const&... args)
    {
        return fmt::sprintf(fmt, args...);
    }
}

#endif

Edit: I am going to test by copying /dep/cppformat/format.h to the same folder as StringFormat.h (/src/server/shared/Utilities/) and see if it can be a possible workaround for this isolated problem.

ghost commented 9 years ago

That test was far from enough. It only got the compiler past the single error and produce 5 more errors :

Error    2    error C2039: 'questItems'           : is not a member of 'GameObjectTemplate'    C:\github.com\tkrokli\trinity-wotlk-ai\src\plugins\playerbot\LootObjectStack.cpp    89    1    plugins
Error    5    error C2039: 'GetGlobalCooldownMgr' : is not a member of 'Player'                C:\github.com\tkrokli\trinity-wotlk-ai\src\plugins\playerbot\PlayerbotAI.cpp       379    1    plugins
Error    6    error C2228: left of '.HasGlobalCooldown' must have class/struct/union           C:\github.com\tkrokli\trinity-wotlk-ai\src\plugins\playerbot\PlayerbotAI.cpp       379    1    plugins
Error    8    error C2039: 'HasSpellCooldown'     : is not a member of 'Player'                C:\github.com\tkrokli\trinity-wotlk-ai\src\plugins\playerbot\PlayerbotAI.cpp       822    1    plugins
Error   59    error LNK1181: cannot open input file '..\..\plugins\Release\plugins.lib'        C:\Build\trinity-wotlk-ai-lfg-transmog_x64\src\server\worldserver\LINK                         worldserver
        60    IntelliSense: class "GameObjectTemplate" has no member "questItems"              c:\github.com\tkrokli\trinity-wotlk-ai\src\plugins\playerbot\LootObjectStack.cpp    89   34    plugins
        61    IntelliSense: namespace "std"            has no member "vector"                  c:\github.com\tkrokli\trinity-wotlk-ai\src\plugins\playerbot\playerbot.h             3    6    plugins
        62    IntelliSense: expected a ';'                                                     c:\github.com\tkrokli\trinity-wotlk-ai\src\plugins\playerbot\playerbot.h             3   12    plugins

I don't feel very motivated to fix these errors, so I will return to the ike3 trinity-wotlk-ai source from March.

LordPsyan commented 9 years ago

https://bitbucket.org/lordpsyan/trinitycore-patches/

I made a patch here.