Jump to content

blueboy

Members
  • Posts

    723
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by blueboy

  1. Hi, Thanks for your comments and suggestions. Please use this thread as a suggestion box. @ALL It's my wish to encourage ideas and contributions, to improve the AI. If you would like to get your hands dirty, and tackle an issue, that would be great. Help is always available Cheers
  2. Hi Guys, When I created the pet feed patch for PlayerbotHunterAI, it lacked the visual action where the hunter actually throws the food to it's pet. I have now put that right. I have added the changes to the code on blueboy, and merged with MaNGOS[9528]. I hope you like it Edit: I have tested the code, it compiles and runs without issue. note that SD2[1633] has an issue, 'boss_anubarak' is defined twice, causing a build error. I would stick with [1631] until they sort it out. Cheers
  3. Hi, Thanks very much for the feedback. All information is useful. vladex is quite right, there have a lot of changes since MaNGOS[9469]. Looking at the errors you're receiving, I would hazard a guess that it has something to do with 'soap'. This was added to the MaNGOS[9466], as an improvement to remote server access. I believe these opcodes are used for resource locking purposes. In a multi-thread system, multiple routines may try to access the same resource. Locking the resource prevents this. I notice in MaNGOS[9488] there was a fix for 'semaphore locking' with MaNGOSsoap. I sure everything is being done to iron out issues with this new feature. If you do not use it, (activated in 'mangosd.conf') then these errors in server.log can be safely ignored. I am sure that when you update to the latest code on blueboy, that these issues will probably vanish. I will setup server.log on my box to check this out. Thanks again for your reponse EDIT: O.K I have check my server, and the same thing is happening. I must admit it does not cause any problems, in the way the server functions. I have done some more research on the opcodes. It appears that they are used with the new 'Dungeon Finder' feature on the client (3.3.0). LFD - Looking for Dungeon & LFG - Looking for group. I get the idea from what I have found, that locking info is a way to prevent cheating on Blizzard servers. The client is basicially asking the server for lock out information. The MaNGOS servers at present do not support this informatiion request. Thus the error. Hope this helps
  4. Hi Guys, I have updated the code on blueboy to be compatible with MaNGOS[9509]. I have tested the code with it compiles and runs without issue. I have received little or no response to the patches I posted on this forum. I guess, no news is good news. Anyway, I have now included all in the new release. I have not found any problems, but please let me know if you do. Hope this helps
  5. That's the commit header I mentioned in my last post. To edit it, git commit --amend Merge brach 'master' of git://github.com/blueboy/mangos Confilcts: // REMOVE THIS LINE src/game/Player.cpp //REMOVE THIS LINE # # It looks like you may be commiting a MERGE # If this is not correct, please remove the file .git/MERGE_HEAD # and try again. # Please enter the commit message for your change. and some other lines .. what the hell do i do now ?? ... save the file, then git log to view the changes. Cheers
  6. Hi, The edit button on what? I presume you are referring the the 'commit header' for the merge. If this is so, that perfectly normal. The header is just a description of the merge process. It's saying that you carried out a merge and there was a conflict in Player.cpp, during the process. Type the following git log examine the commit history. If the expected version of MaNGOS (in square brackets) is listed, then the merge was successful. If you find the conflict reference untidy, particulary if you are planning to publish (or push) to an online github repo, you can remove the reference. You can do this immediately after the commit git commit -a the default editor will open; remove the reference; and then save the file. Or, If you want to change the reference after saving the file, maybe you forgot to change it :rolleyes: git commit --amend the default editor will open again, allowing you to modify the description. When you are happy, save the file. git log to view the changes. Hope this helps
  7. O.K I just looked at the code, and it seem they have modified Player.cpp in MaNGOS[9496]. They left an additional blank line at the end of the file. Nothing to worry about. Delete the reject merge marks from Player.cpp, and the additional blank line if you wish. It should not effect compilation, or the running of the code. Edit: Marks to remove <<<<<<< HEAD ======= >>>>>>> 6f01ad7465e5005472d5ea59f04d8b9b2a9049f9 then git add src/game/Player.cpp git commit -a The default editor will open showing the merge comment + the conflict you have addressed. Save the file. To check that the merge has occured git log Hope this helps
  8. Latest rev of what? Code on blueboy or one the patches I have posted. Can you give my any details, about the conflict? Please get back to me. Cheers
  9. Hi Guys, I believe I have overcome the difficulties with macros. The new patch appears to work with both command line & macros. Please give it a try and let me have some feedback. I have used a faster way to update the database, switching from CharacterDatabase.PExecute("UPDATE characters SET online = 0 WHERE guid = '%u'", guid); to CharacterDatabase.DirectPExecute("UPDATE characters SET online = 0 WHERE guid = '%u'", guid); and it seems to do the trick diff --git a/src/game/PlayerbotMgr.cpp b/src/game/PlayerbotMgr.cpp index 2928851..8af19db 100644 --- a/src/game/PlayerbotMgr.cpp +++ b/src/game/PlayerbotMgr.cpp @@ -522,6 +522,36 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) m_session->GetPlayer()->SetPlayerbotMgr(mgr); } + QueryResult *resultrealm = loginDatabase.PQuery("SELECT active_realm_id FROM account WHERE id = '%u'", m_session->GetAccountId()); + if(resultrealm) + { + Field *fields=resultrealm->Fetch(); + uint32 acctrealmid = fields[0].GetUInt32(); + if(acctrealmid == sConfig.GetIntDefault("PlayerbotAI.DisableBotInRealm", 0)) + { + PSendSysMessage("bots are disabled for this realm."); + SetSentErrorMessage(true); + delete resultrealm; + return false; + } + } + delete resultrealm; + + QueryResult *resultchar = CharacterDatabase.PQuery("SELECT Count(*) FROM characters WHERE online = 1 AND account = '%u'", m_session->GetAccountId()); + if(resultchar) + { + Field *fields=resultchar->Fetch(); + uint32 acctcharcount = fields[0].GetUInt32(); + if((acctcharcount > sConfig.GetIntDefault("PlayerbotAI.MaxNumBots", 9)) && (cmdStr == "add" || cmdStr == "login")) + { + PSendSysMessage("You cannot summon anymore bots for this account."); + SetSentErrorMessage(true); + delete resultchar; + return false; + } + } + delete resultchar; + if (cmdStr == "add" || cmdStr == "login") { if (mgr->GetPlayerBot(guid)) { @@ -529,6 +559,7 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) SetSentErrorMessage(true); return false; } + CharacterDatabase.DirectPExecute("UPDATE characters SET online = 1 WHERE guid = '%u'", guid); mgr->AddPlayerBot(guid); PSendSysMessage("Bot added successfully."); } @@ -539,6 +570,7 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) SetSentErrorMessage(true); return false; } + CharacterDatabase.DirectPExecute("UPDATE characters SET online = 0 WHERE guid = '%u'", guid); mgr->LogoutPlayerBot(guid); PSendSysMessage("Bot removed successfully."); } diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index a36f2fa..ed263bb 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1424,9 +1424,21 @@ SOAP.Port = 7878 # PlayerbotAI.FollowDistanceMax # Min. and Max. follow distance for bots # Default: 0.5 / 1.0 +# +# PlayerbotAI.DisableBotInRealm +# Disable the bot command and bot menu for this realm +# Default: 0 - off +# Realm id: - on +# +# PlayerbotAI.MaxNumBots +# Limits the number of bots per account (Max 9) +# Default: 9 +# ################################################################################################################### PlayerbotAI.DisableBots = 0 PlayerbotAI.DebugWhisper = 0 PlayerbotAI.FollowDistanceMin = 0.5 -PlayerbotAI.FollowDistanceMax = 1.0 \\ No newline at end of file +PlayerbotAI.FollowDistanceMax = 1.0 +PlayerbotAI.DisableBotInRealm = 0 +PlayerbotAI.MaxNumBots = 9 \\ No newline at end of file Cheers
  10. Hi, Thanks for the idea. I have traced the incomming commmd for both from command line and macros. They seem to be processed using the same opcode. I was concerned that the macro command might be treated like a data packet, encompassing multiple commands. However I have examine the incoming data and this is not so. The macro is broken down into its elemental commands and parsed individually. The command parsing process appears to occurs faster than the query/update process for the database. I don't want to slow the parsing process down, for obvious reasons. Maybe the use of a tally would work better than interrogating the database each time. Things to think about Cheers
  11. Hi Guys, I have updated blueboy to be compatible with MaNGOS[9472]. The current code includes the recent changes with 'PlayerSpell' so there is no further need to apply the patch I provided in #819. The addition of 'soap' has broken MaNGOS-9439-ScriptDev2.patch Please note that the current ScriptDev2 bind patch MaNGOS-9439-ScriptDev2.patch is broken. I have notified ScriptDev2.com and submitted a modified patch for their consideration. In the meantime, if you are compiling MaNGOS[9466]+ you will need this patch to replace MaNGOS-9439-ScriptDev2.patch. From 35b3e28341fa4a8984563696ba851d9983065237 Mon Sep 17 00:00:00 2001 From: Derex <[email protected]> Date: Tue, 23 Feb 2010 16:02:36 +0200 Subject: [PATCH] [PATCH] ScriptDev2 patch. --- configure.ac | 6 +++++- src/bindings/Makefile.am | 2 +- src/mangosd/Makefile.am | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 276827e..d8e6111 100644 --- a/configure.ac +++ b/configure.ac @@ -297,7 +297,11 @@ AC_CONFIG_FILES([ src/mangosd/Makefile src/mangosd/mangosd.conf.dist src/bindings/Makefile - src/bindings/universal/Makefile + src/bindings/ScriptDev2/Makefile + src/bindings/ScriptDev2/scriptdev2.conf.dist + src/bindings/ScriptDev2/config.h + src/bindings/ScriptDev2/sql/Makefile + src/bindings/ScriptDev2/sql/Updates/Makefile ]) ## Configure ACE, if needed diff --git a/src/bindings/Makefile.am b/src/bindings/Makefile.am index d7dc654..79ea910 100644 --- a/src/bindings/Makefile.am +++ b/src/bindings/Makefile.am @@ -14,4 +14,4 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -SUBDIRS = universal +SUBDIRS = ScriptDev2 diff --git a/src/mangosd/Makefile.am b/src/mangosd/Makefile.am index 25d5d79..f4963aa 100644 --- a/src/mangosd/Makefile.am +++ b/src/mangosd/Makefile.am @@ -34,7 +34,7 @@ mangos_worldd_SOURCES = \\ ## Link world daemon against the shared library mangos_worldd_LDADD = \\ - ../bindings/universal/libmangosscript.la \\ + ../bindings/ScriptDev2/libmangosscript.la \\ ../game/libmangosgame.a \\ ../shared/Database/libmangosdatabase.a \\ ../shared/Config/libmangosconfig.a \\ @@ -45,7 +45,7 @@ mangos_worldd_LDADD = \\ ../../dep/src/g3dlite/libg3dlite.a \\ ../../dep/src/gsoap/libgsoap.a -mangos_worldd_LDFLAGS = -L../../dep/src/sockets -L../../dep/src/g3dlite -L../../dep/src/gsoap -L../bindings/universal/ -L$(libdir) $(MANGOS_LIBS) -export-dynamic +mangos_worldd_LDFLAGS = -L../../dep/src/sockets -L../../dep/src/g3dlite -L../../dep/src/gsoap -L../bindings/ScriptDev2/ -L$(libdir) $(MANGOS_LIBS) -export-dynamic ## Additional files to include when running 'make dist' # Include world daemon configuration -- 1.6.2.5 Edit: I have tested the code on blueboy with MaNGOS[9473] SD2[1606] with above patch auctionhousebot [Naicisum] latest, with Mail.cpp fix autobroadcast[Xeross] old It compiles and runs without issue. Hope this helps
  12. The 'limit per account' patch is a good idea, but it still needs work before I would feel happy about integrating it into the source. We need to find a better way to process client commands, to handle macros as well. You could use the patches I provided as templates to produce your own. A 'limit bot level' option could be easily produced. Examine your databases, and find the level field, in the approriate table. Then create a query for the database, to obtain the value you require. Database CharacterDatabase Table characters Field level Then include a test bot level = query CharacterDatabase("SELECT level FROM characters WHERE account = '%u'", GetAccountId) if ( bot level > confOption) // confOption in mangosd.conf { tell client that bot level is too high return false; } If it works, publish a patch on this forum for others to try. I am reluctant to include too many options in the source itself, for stablity reasons. Hope this helps
  13. Hi, Glad you got it to work. The cake sounds nice;) Cheers
  14. Hi, You need to use the patch I provided in post #819. This resolves this issue with PlayerSpell Hope this helps
  15. Hi, If you want to try both patches (limit bots per account & limit bot per realm)together, I have created a modified patch. Only apply this to a clean server build. diff --git a/src/game/PlayerbotMgr.cpp b/src/game/PlayerbotMgr.cpp index 0abd67d..1a23585 100644 --- a/src/game/PlayerbotMgr.cpp +++ b/src/game/PlayerbotMgr.cpp @@ -522,6 +522,34 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) m_session->GetPlayer()->SetPlayerbotMgr(mgr); } + QueryResult *resultrealm = loginDatabase.PQuery("SELECT active_realm_id FROM account WHERE id = '%d'", m_session->GetAccountId()); + if(resultrealm) + { + Field *fields=resultrealm->Fetch(); + uint32 acctrealmid = fields[0].GetUInt32(); + delete resultrealm; + if(acctrealmid == sConfig.GetIntDefault("PlayerbotAI.DisableBotInRealm", 0)) + { + PSendSysMessage("bots are disabled for this realm."); + SetSentErrorMessage(true); + return false; + } + } + + QueryResult *resultchar = CharacterDatabase.PQuery("SELECT Count(*) FROM characters WHERE online = 1 AND account = '%d'", m_session->GetAccountId()); + if(resultchar) + { + Field *fields=resultchar->Fetch(); + uint32 acctcharcount = fields[0].GetUInt32(); + delete resultchar; + if((acctcharcount > sConfig.GetIntDefault("PlayerbotAI.MaxNumBots", 9)) && (cmdStr == "add" || cmdStr == "login")) + { + PSendSysMessage("You cannot summon anymore bots for this account."); + SetSentErrorMessage(true); + return false; + } + } + if (cmdStr == "add" || cmdStr == "login") { if (mgr->GetPlayerBot(guid)) { @@ -580,4 +608,4 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) } return true; -} \\ No newline at end of file +} diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 6514228..e3a2104 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1495,9 +1495,21 @@ Ra.Secure = 1 # PlayerbotAI.FollowDistanceMax # Min. and Max. follow distance for bots # Default: 0.5 / 1.0 +# +# PlayerbotAI.DisableBotInRealm +# Disable the bot command and bot menu for this realm +# Default: 0 - off +# Realm id: - on +# +# PlayerbotAI.MaxNumBots +# Limits the number of bots per account (Max 9) +# Default: 9 +# ################################################################################################################### PlayerbotAI.DisableBots = 0 PlayerbotAI.DebugWhisper = 0 PlayerbotAI.FollowDistanceMin = 0.5 PlayerbotAI.FollowDistanceMax = 1.0 +PlayerbotAI.DisableBotInRealm = 0 +PlayerbotAI.MaxNumBots = 9 Hope this helps
  16. Hi, No, at present bots can not independently interact with an object that needs opening or using. You have to login as the bot to complete these types of quest. If anyone would like to develop this gap in the AI, that would be great. If not, continue watching this space. Cheers
  17. If you get 40 characters (real players). Between them, they could create upto 360 bots. Each account can support upto 9 (max) bots. You cannot summon bots from an different account than the player, for security reasons. Hope this helps
  18. Hi Thanks for your response. I was thinking along the same lines myself. I have been busy :rolleyes: Recently, there have been a couple of requests about ways to govern bots. Stodderen wanted to know whether it was possible to selectively summon bots, based upon realm, and belfedia wanted to limit the number of bots, based upon the account. The solution to these are similar, and both can be achieved to a greater and lesser extent. Solution for Stodderen This patch seems to work without issue. I do not have a mutiple realm server, but in principle it should work. If 'PlayerbotAI.DisableBotInRealm = 0', then bots are active on all realms. Enter an integer value greater than zero, to specify the realm id, where you wish bots to be disabled. If you want bots to be disabled on all realms, use 'PlayerbotAI.DisableBots = 1'. diff --git a/src/game/PlayerbotMgr.cpp b/src/game/PlayerbotMgr.cpp index 0abd67d..bfcb698 100644 --- a/src/game/PlayerbotMgr.cpp +++ b/src/game/PlayerbotMgr.cpp @@ -522,6 +522,20 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) m_session->GetPlayer()->SetPlayerbotMgr(mgr); } + QueryResult *resultacct = loginDatabase.PQuery("SELECT active_realm_id FROM account WHERE id = '%d'", m_session->GetAccountId()); + if(resultacct) + { + Field *fields=resultacct->Fetch(); + uint32 acctrealm = fields[0].GetUInt32(); + delete resultacct; + if(acctrealm == sConfig.GetIntDefault("PlayerbotAI.DisableBotInRealm", 0)) + { + PSendSysMessage("bots are disabled for this realm."); + SetSentErrorMessage(true); + return false; + } + } + if (cmdStr == "add" || cmdStr == "login") { if (mgr->GetPlayerBot(guid)) { @@ -580,4 +594,4 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) } return true; -} \\ No newline at end of file +} diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 6514228..f7f34a8 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1495,9 +1495,16 @@ Ra.Secure = 1 # PlayerbotAI.FollowDistanceMax # Min. and Max. follow distance for bots # Default: 0.5 / 1.0 +# +# PlayerbotAI.DisableBotInRealm +# Disable the bot command and bot menu for this realm +# Default: 0 - off +# Realm id: - on +# ################################################################################################################### PlayerbotAI.DisableBots = 0 PlayerbotAI.DebugWhisper = 0 PlayerbotAI.FollowDistanceMin = 0.5 PlayerbotAI.FollowDistanceMax = 1.0 +PlayerbotAI.DisableBotInRealm = 0 Solution for Belfedia. This patch is not fool proof. It works fine if bots are summoned individually, at the command line. It does not work very well with macros. I believe macros are treated like a single command, although they may be composed of multiple commands e.g. Single command entered at client /s .bot add <bot> Macro .bot add <bot1> .bot add <bot2> .bot add <bot3> The server seems to treat both alike, so it is possible for users to disregard the limitation placed on their account. I have tried to find a solution, but to no avail. It works, but not very well. If you want to have a go at fixing this, please publish your results on this thread for other to test and share. diff --git a/src/game/PlayerbotMgr.cpp b/src/game/PlayerbotMgr.cpp index 0abd67d..041b3c0 100644 --- a/src/game/PlayerbotMgr.cpp +++ b/src/game/PlayerbotMgr.cpp @@ -522,6 +522,20 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) m_session->GetPlayer()->SetPlayerbotMgr(mgr); } + QueryResult *resultacct = CharacterDatabase.PQuery("SELECT Count(*) FROM characters WHERE online = 1 AND account = '%d'", m_session->GetAccountId()); + if(resultacct) + { + Field *fields=resultacct->Fetch(); + uint32 acctcharcount = fields[0].GetUInt32(); + delete resultacct; + if((acctcharcount > sConfig.GetIntDefault("PlayerbotAI.MaxNumBots", 9)) && (cmdStr == "add" || cmdStr == "login")) + { + PSendSysMessage("You cannot summon anymore bots for this account."); + SetSentErrorMessage(true); + return false; + } + } + if (cmdStr == "add" || cmdStr == "login") { if (mgr->GetPlayerBot(guid)) { @@ -531,6 +545,7 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) } mgr->AddPlayerBot(guid); PSendSysMessage("Bot added successfully."); + CharacterDatabase.PExecute("UPDATE characters SET online = 1 WHERE account = '%d' AND guid = '%d'", m_session->GetAccountId(),guid); } else if (cmdStr == "remove" || cmdStr == "logout") { @@ -580,4 +595,4 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args) } return true; -} \\ No newline at end of file +} diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 6514228..2b6b57c 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1495,9 +1495,15 @@ Ra.Secure = 1 # PlayerbotAI.FollowDistanceMax # Min. and Max. follow distance for bots # Default: 0.5 / 1.0 +# +# PlayerbotAI.MaxNumBots +# Limits the number of bots per account (Max 9) +# Default: 9 +# ################################################################################################################### PlayerbotAI.DisableBots = 0 PlayerbotAI.DebugWhisper = 0 PlayerbotAI.FollowDistanceMin = 0.5 PlayerbotAI.FollowDistanceMax = 1.0 +PlayerbotAI.MaxNumBots = 9 Edit: When you test the vmap/map patch, obviously try the problem areas with and without the patch, so we can judge whether it makes any difference Hope this helps
  19. Hi, It's up to you how many bots you use. Nine is the maximum, purely because any account can only support ten characters, one player and nine bots. If you only want to use two or three bot, thats fine. Edit if you want to limit the number of bots per account, you could simply ask your users not to load more than three bots. Cheers
  20. Hi, I appreciate your interest in this issue. It is not a perfect solution, but I have had some success. I have found some areas of the map where the value of 'vmap_z' drops to -2000f. A particular spot is in the harbour(Stormwind) @ the foot of one ramp. The player is not effected, but the bots drop into the abyss. By switching to the calculated 'map_z' value in this instance, they all remain above ground. I have included debug info in the patch, that you can uncomment. If you find a problem spot that annoys you, check the values @ the server output. Hopefully this will help. If you have any suggestion, that would be great. If you want to tweak the hover height of the bots, add or subract from the assigned 'vmap_z' value (e.g +/- 0.05f). The NPC's do not appear to be effected by this adjustment. Occasionaly you will see an NPC flying through the air, or disappering below ground. I have even seen a cow walking up and down the trunk of a tree :confused: Their movement is obviously governed by other factors. Cheers
  21. Hi Guys, I thought I'd warn you of a compile issue caused by changes in MaNGOS[9440]. They have changed the way data is addressed in the PlayerSpell map structure. I include a temporary patch to correct this, until I can update blueboy diff --git a/src/game/PlayerbotAI.cpp b/src/game/PlayerbotAI.cpp index 3ecc870..507d183 100644 --- a/src/game/PlayerbotAI.cpp +++ b/src/game/PlayerbotAI.cpp @@ -185,7 +185,7 @@ uint32 PlayerbotAI::getSpellId(const char* args, bool master) const { uint32 spellId = itr->first; - if (itr->second->state == PLAYERSPELL_REMOVED || itr->second->disabled || IsPassiveSpell(spellId)) + if (itr->second.state == PLAYERSPELL_REMOVED || itr->second.disabled || IsPassiveSpell(spellId)) continue; const SpellEntry* pSpellInfo = sSpellStore.LookupEntry(spellId); @@ -487,7 +487,7 @@ void PlayerbotAI::HandleBotOutgoingPacket(const WorldPacket& packet) for(PlayerSpellMap::iterator itr = m_bot->GetSpellMap().begin(); itr != m_bot->GetSpellMap().end(); ++itr) { uint32 spellId = itr->first; - if(itr->second->state == PLAYERSPELL_REMOVED || itr->second->disabled || IsPassiveSpell(spellId)) + if(itr->second.state == PLAYERSPELL_REMOVED || itr->second.disabled || IsPassiveSpell(spellId)) continue; const SpellEntry* pSpellInfo = sSpellStore.LookupEntry(spellId); if (!pSpellInfo) @@ -2738,7 +2738,7 @@ void PlayerbotAI::HandleCommand(const std::string& text, Player& fromPlayer) for (PlayerSpellMap::iterator itr = m_bot->GetSpellMap().begin(); itr != m_bot->GetSpellMap().end(); ++itr) { const uint32 spellId = itr->first; - if (itr->second->state == PLAYERSPELL_REMOVED || itr->second->disabled || IsPassiveSpell(spellId)) + if (itr->second.state == PLAYERSPELL_REMOVED || itr->second.disabled || IsPassiveSpell(spellId)) continue; const SpellEntry* const pSpellInfo = sSpellStore.LookupEntry(spellId); To be applied if using MaNGOS[9440]+ Hope this helps
  22. Hi, It sounds like your problem runs alot deeper. With server stability errors, I really would strip it back to basics, i.e Build MaNGOS with no mods first and only one realm. Then, first check each mod one at a time on this single realm. Then and only then, run your server with dual realms. I have never tried running multiple realms myself, and have no idea how to set them up. The 'segment faults' suggest that something in your second realm is trying to access a protected memory location, used by the first realm. Hopefully, if you follow my suggestions you will be able to track down the root cause. Hope this helps
  23. Hi, Your still having mount problems :confused: Your system; You probably have already tried what I am going to suggest. Build a basic server MaNGOS[9407] SD2[1583]FR with just playerbot & your UDB database. I believe the bots detect a change in the player's motion speed. If they have the capabilities to mount, they do so. I do not think it is an issue with language, otherwise the bot would reply [bot] Whispers: What? follow,stay,©cast etc.... I assume this doesn't happen. This is a puzzle. It works fine on my server and it not an issue common to other users, or this forum would be bombarded. Edit: do you get any pertinent errors or warnings as your server loads, or when a mount is tried? Get back to me.
  24. Hi, If there is a multiple choice for rewards, the bot will expect you, the master, to choose which reward. As nyko suggests, type this /w <bot name> hold down the shift key and click on the appropriate link [big sword][large shield][small wand] then press enter Note: There are some types of quest (opening chests or collecting fruit) that can not be completed by the bots alone. At present you will have to login as the bot character, and complete it yourself. Project for the future :rolleyes: Hope this helps
  25. Hi, I'm glad you got it to work. Enjoy your adventuring
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use