Jump to content

Playerbot (archive)


Recommended Posts

  • Replies 1.8k
  • Created
  • Last Reply

Top Posters In This Topic

@@ -1855,15 +1855,15 @@ Unit *PlayerbotAI::FindAttacker( ATTACKERINFOTYPE ait, Unit *victim )
    return a;
}

void PlayerbotAI::SetCombatOrderByStr( std::string str, Unit *target ) {
    CombatOrderType co;
-    if( str == "tank" ) co = ORDERS_TANK;
-    else if( str == "assist" ) co = ORDERS_ASSIST;
-    else if( str == "heal" ) co = ORDERS_HEAL;
+    if( str == "tank" )         co = ORDERS_TANK;
+    else if( str == "assist" )  co = ORDERS_ASSIST;
+    else if( str == "heal" )    co = ORDERS_HEAL;
    else if( str == "protect" ) co = ORDERS_PROTECT;
-    else co = ORDERS_RESET;
+    else                        co = ORDERS_RESET;
    SetCombatOrder( co, target );
}

void PlayerbotAI::SetCombatOrder( CombatOrderType co, Unit *target ) {
    if( (co == ORDERS_ASSIST || co == ORDERS_PROTECT) && !target )
@@ -1872,10 +1872,14 @@ void PlayerbotAI::SetCombatOrder( CombatOrderType co, Unit *target ) {
        m_combatOrder = ORDERS_NONE;
        m_targetAssist = 0;
        m_targetProtect = 0;
        return;
    }
+    if( co == ORDERS_TANK )
+        m_combatOrder = ORDERS_TANK;
+    if( co == ORDERS_HEAL )
+        m_combatOrder = ORDERS_HEAL;
    if( co == ORDERS_PROTECT )
        m_targetProtect = target;
    else if( co == ORDERS_ASSIST )
        m_targetAssist = target;
    if( (co&ORDERS_PRIMARY) )

This should do the trip to allow bots to role as tankers and healers. The rest is about to script 'em.

Link to comment
Share on other sites

Hi imetallica,

Thanks very much for your contribution and yes this would certainly force the combat orders to either ORDERS_TANK or ORDERS_HEAL. However the code to do this is already in place. If I may explain.

The choice of combat order (co) is passed to function SetCombatOrder from function SetCombatOrderByStr. Initially m_combatOrder will have no assigned orders and therfore will equal zero. At the tail end of function SetCombatOrder, missing from your code snippet;

void PlayerbotAI::SetCombatOrder( CombatOrderType co, Unit *target ) {

if( (co == ORDERS_ASSIST || co == ORDERS_PROTECT) && !target )

return;

if( co == ORDERS_RESET ) {

m_combatOrder = ORDERS_NONE;

m_targetAssist = 0;

m_targetProtect = 0;

return;

}

if( co == ORDERS_PROTECT )

m_targetProtect = target;

else if( co == ORDERS_ASSIST )

m_targetAssist = target;

if( (co&ORDERS_PRIMARY) )

m_combatOrder = (CombatOrderType)(((uint32)m_combatOrder&(uint32)ORDERS_SECONDARY)|(uint32)co);

else

m_combatOrder = (CombatOrderType)(((uint32)m_combatOrder&(uint32)ORDERS_PRIMARY)|(uint32)co);}

There's code to handle all combat orders. Example (ORDER enums in PlayerbotAI.h)

m_combatOrder = 0; // ORDERS_NONE

co = ORDERS_HEAL; // set in function SetCombatOrderByStr

ORDERS_PRIMARY = 0x0F = 00001111

ORDERS_SECONDARY = 0xF0 = 11110000

if( (co&ORDERS_PRIMARY) )

Bitwise arithmetic &(AND) | (OR)

00000100 = ORDERS_HEAL &(AND)

00001111 = ORDERS_PRIMARY

00000100 = result // therefore true

m_combatOrder = (CombatOrderType)(((uint32)m_combatOrder&(uint32)O RDERS_SECONDARY)|(uint32)co);

00000000 = m_combatOrder &(AND)

11110000 = ORDERS_SECONDARY

00000000 = result |(OR)

00000100 = co = ORDERS_HEAL

00000100 = new m_combatOrder = ORDERS_HEAL

The bitwise arithmetic is used to increase the complexity of combat orders to allow for multiple orders (e.g A bot might have a dual role to assist one bot and HEAL all). Whether this actually works in practice is another question :rolleyes:

Please do not be discouraged by this, I'm learning new things about the code everyday and would be glad to have help with the code development. Trust me, the guys who originally developed Playerbot, thought of virtually everything.

Thanks again, speak with you soon.

Link to comment
Share on other sites

if( (co&ORDERS_PRIMARY) )
m_combatOrder = (CombatOrderType)(((uint32)m_combatOrder&(uint32)O RDERS_SECONDARY)|(uint32)co);
else
m_combatOrder = (CombatOrderType)(((uint32)m_combatOrder&(uint32)O RDERS_PRIMARY)|(uint32)co);} 

Yes I was wondering what that last part means but now it's explained. But I'm not sure if that works as you said. Anyway I'll test it without this part of my code and let's see what happens... Hope it doesn't EXPLODE! ;D

Thanks for the advice.

Regards.

Link to comment
Share on other sites

Hi Guys,

History

=======

The code for 'botguy' was broken, following changes to the 'Gossip Menu system' in the core. We then pulled the code after failing to find an adequate solution, compatible with all platforms. The code was made available, so interested parties could develop the code as a separate project. However, nothing was done and a recent request by petbat prompted me to take another look.

I have always thought botguy to be awkward to use. It requires a GM (gamemaster) to spawn the botguy (AKA Pappy Looter) in an appropriate location, before anyone can use it. I personally prefer to use macros to summon/dismiss bots, as any player can do this, at any time, in any location.

How do I make botguy easy to use?

================================

I have now completely rewritten the code, making it more flexible, and stable to use. The new code does not require a gm to spawn a special 'bot recruiter', rather it utilizes the vast network of NPCs already distributed throughout the world. A player just has to visit the nearest npc, capable of displaying menus (e.g Trainers) to be able to summon or dismiss bot(s) at will, from his or her account.

I have tested the code on both linux and windows and it works without issue. I will post the patch here for you guys to test, before I consider merging it with the code on blueboy. Please let me know what you think and whether you experience any problems.

Botguy patch (Please read the botguy_readme.txt file)

diff --git b/botguy_readme.txt b/botguy_readme.txt
new file mode 100644
index 0000000..1834a9b
--- /dev/null
+++ b/botguy_readme.txt
@@ -0,0 +1,12 @@
+What it is:
+===========
+
+The new revised'botguy' utilizes NPCs already distributed throughout the world, to allow players to
+summon and dismiss bots at will, from their own account.
+
+This is a revised (more stable) version that utilizes the new 'GOSSIP MENU SYSTEM' to modify the menus of existing NPCs
+(e.g Trainers etc) to include the bot Recruit/Dismiss menu. (No GameMaster account necessary).
+
+Install (Server administrators only)
+=======
+Please apply 'mangos_botguy.sql' once to the world database to update the 'gossip_menu_option' table.
diff --git b/mangos_botguy.sql b/mangos_botguy.sql
new file mode 100644
index 0000000..fffcd2e
--- /dev/null
+++ b/mangos_botguy.sql
@@ -0,0 +1 @@
+INSERT INTO `gossip_menu_option` VALUES('0','16','0','GOSSIP_OPTION_BOT','99','1','0','0','0','0','0',NULL,'0','0','0','0','0','0','0','0','0');
diff --git a/src/game/Creature.h b/src/game/Creature.h
index 666c980..0c11d89 100644
--- a/src/game/Creature.h
+++ b/src/game/Creature.h
@@ -401,6 +401,9 @@ class MANGOS_DLL_SPEC Creature : public Unit
        bool isTotem() const { return m_subtype == CREATURE_SUBTYPE_TOTEM; }
        bool isTemporarySummon() const { return m_subtype == CREATURE_SUBTYPE_TEMPORARY_SUMMON; }

+        // Playerbot mod - adds functionality to load/unload bots from NPC, also need to apply SQL scripts
+        void LoadBotMenu(Player *pPlayer);
+
        void SetCorpseDelay(uint32 delay) { m_corpseDelay = delay; }
        bool isRacialLeader() const { return GetCreatureInfo()->RacialLeader; }
        bool isCivilian() const { return GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_CIVILIAN; }
diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h
index 68744db..14beb92 100644
--- a/src/game/GossipDef.h
+++ b/src/game/GossipDef.h
@@ -48,6 +48,8 @@ enum Gossip_Option
    GOSSIP_OPTION_ARMORER           = 15,                   //UNIT_NPC_FLAG_ARMORER             (4096)
    GOSSIP_OPTION_UNLEARNTALENTS    = 16,                   //UNIT_NPC_FLAG_TRAINER             (16) (bonus option for GOSSIP_OPTION_TRAINER)
    GOSSIP_OPTION_UNLEARNPETSKILLS  = 17,                   //UNIT_NPC_FLAG_TRAINER             (16) (bonus option for GOSSIP_OPTION_TRAINER)
+    // Playerbot mod
+    GOSSIP_OPTION_BOT               = 99,                   //UNIT_NPC_FLAG_GOSSIP              (1) UNUSED (just for bot system)
    GOSSIP_OPTION_MAX
};

diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index fb84b34..8affc7e 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -12663,6 +12663,11 @@ void Player::PrepareGossipMenu(WorldObject *pSource, uint32 menuId)
                case GOSSIP_OPTION_TABARDDESIGNER:
                case GOSSIP_OPTION_AUCTIONEER:
                    break;                                  // no checks
+                case GOSSIP_OPTION_BOT:
+                    if(!pCreature->isInnkeeper())
+                        pCreature->LoadBotMenu(this);
+                    bCanTalk = false;
+                    break;
                default:
                    sLog.outErrorDb("Creature entry %u have unknown gossip option %u for menu %u", pCreature->GetEntry(), itr->second.option_id, itr->second.menu_id);
                    bCanTalk = false;
@@ -12803,12 +12808,12 @@ void Player::OnGossipSelect(WorldObject* pSource, uint32 gossipListId, uint32 me
        }
    }

-    GossipMenuItemData pMenuData = gossipmenu.GetItemData(gossipListId);
-
    switch(gossipOptionId)
    {
        case GOSSIP_OPTION_GOSSIP:
        {
+            GossipMenuItemData pMenuData = gossipmenu.GetItemData(gossipListId);
+
            if (pMenuData.m_gAction_poi)
                PlayerTalkClass->SendPointOfInterest(pMenuData.m_gAction_poi);

@@ -12892,6 +12897,25 @@ void Player::OnGossipSelect(WorldObject* pSource, uint32 gossipListId, uint32 me
            GetSession()->SendBattlegGroundList(guid, bgTypeId);
            break;
        }
+        case GOSSIP_OPTION_BOT:
+        {
+            // DEBUG_LOG("GOSSIP_OPTION_BOT");
+            PlayerTalkClass->CloseGossip();
+
+            if (!GetPlayerbotMgr())
+                SetPlayerbotMgr(new PlayerbotMgr(this));
+
+            uint64 guidlo = PlayerTalkClass->GossipOptionSender(gossipListId);
+            if(GetPlayerbotMgr()->GetPlayerBot(guidlo) != NULL)
+            {
+                GetPlayerbotMgr()->LogoutPlayerBot(guidlo);
+            }
+            else if(GetPlayerbotMgr()->GetPlayerBot(guidlo) == NULL)
+            {
+                GetPlayerbotMgr()->AddPlayerBot(guidlo);
+            }
+            break;
+        }
    }
}

diff --git a/src/game/PlayerbotMgr.cpp b/src/game/PlayerbotMgr.cpp
index c095eb1..c3848df 100644
--- a/src/game/PlayerbotMgr.cpp
+++ b/src/game/PlayerbotMgr.cpp
@@ -541,6 +541,50 @@ void PlayerbotMgr::RemoveAllBotsFromGroup()
    }
}

+void Creature::LoadBotMenu(Player *pPlayer)
+{
+
+    if (pPlayer->GetPlayerbotAI()) return;
+    uint64 guid = pPlayer->GetGUID();
+    uint32 accountId = sObjectMgr.GetPlayerAccountIdByGUID(guid);
+    QueryResult *result = CharacterDatabase.PQuery("SELECT guid, name FROM characters WHERE account='%d'",accountId);
+    do
+    {
+        Field *fields = result->Fetch();
+        uint64 guidlo = fields[0].GetUInt64();
+        std::string name = fields[1].GetString();
+        std::string word = "";
+
+        if( (guid == 0) || (guid == guidlo) )
+        {
+            //not found or himself
+        }
+        else
+        {
+            // if(sConfig.GetBoolDefault("PlayerbotAI.DisableBots", false)) return;
+            // create the manager if it doesn't already exist
+            if (! pPlayer->GetPlayerbotMgr())
+                pPlayer->SetPlayerbotMgr(new PlayerbotMgr(pPlayer));
+            if(pPlayer->GetPlayerbotMgr()->GetPlayerBot(guidlo) == NULL) // add (if not already in game)
+            {
+                word += "Recruit ";
+                word += name;
+                word += " as a Bot.";
+                pPlayer->PlayerTalkClass->GetGossipMenu().AddMenuItem((uint8)9, word, guidlo, GOSSIP_OPTION_BOT, word, false);
+            }
+            else if(pPlayer->GetPlayerbotMgr()->GetPlayerBot(guidlo) != NULL) // remove (if in game)
+            {
+                word += "Dismiss ";
+                word += name;
+                word += " from duty.";
+                pPlayer->PlayerTalkClass->GetGossipMenu().AddMenuItem((uint8)0, word, guidlo, GOSSIP_OPTION_BOT, word, false);
+            }
+        }
+    }
+    while (result->NextRow());
+    delete result;
+}
+
bool ChatHandler::HandlePlayerbotCommand(const char* args)
{
    if(!(m_session->GetSecurity() > SEC_PLAYER))

EDIT: Not all NPCs get the menu, only those who use menu_id = 0, innkeepers are also excluded.

Hope this helps

Link to comment
Share on other sites

great ,but i would put this as an extra option, having all the npc's with bot spawning is preety much a 'mess' , sorry ,no offense .

im not sure if i understood what your explenation said (im not english native) but this is what i underdstood...

Link to comment
Share on other sites

great ,but i would put this as an extra option, having all the npc's with bot spawning is preety much a 'mess' , sorry ,no offense .

im not sure if i understood what your explenation said (im not english native) but this is what i underdstood...

Hi,

Why not try it first. It might not be as messy as you think. A filter can be applied if you only want certain NPC's to have the bot menu. I might even build in a config option to allow server administrators to enable/disable the feature.

Cheers

Link to comment
Share on other sites

I like the idea of using NPCs for players to "recruit" or "hire" their bots. It allows me to reserve the .bot add command for GM level accounts and simplifies things for players wishing to summon a bot.

The one advantage Botguy might have had is the ability to display a list of character name/class/level for the player to choose which bot to summon with very little code modification. Such a feature might be cumbersome to implement for so many vendors.

I'd say having the option to charge gold per bot summoned would be great, with price scaled by player's character level, not as a penalty but just to give the player the feeling he's earning the right to have help instead of it just being a "gimme".

  • * Levels 1-10 = 5 Gold
    * Levels 11-20 = 10 Gold
    * Levels 21-30 = 20 Gold
    * Levels 31-40 = 30 Gold
    * Levels 41-50 = 40 Gold
    * Levels 51-60 = 50 Gold
    * Levels 61-70 = 60 Gold
    * Levels 71-80 = 75 Gold

For those who still want them to be freebies or not even have the vendors offer bots, then simply disable it in the config file. Perhaps there could even be a coefficient you could set by which the cost is calculated using n*level, for those who feel a lower or higher cost is more fair.

/me loves config options. :)

Link to comment
Share on other sites

If you wanted to be sadistic, you make it a requirement to complete a quest and having that item in their inventory before they can unlock the ability to hire bots.

For levels 1-10 it would be...Hogger's Head! :P

P.S. I just covered IF-THEN-ELSE and FOR loops in my C++ book! :D

Link to comment
Share on other sites

this sounds like an excellent idea both what unklenuke suggested as well as Darkrulerz (and not just bc i work with darkie) Blue you have always been very quick to help and have implemented plenty of great abilites over the course of your work... if ever you need me I am a quick github message away (you know how to reach me *wink*)

but i WOULD love to see the EARNED bots in play that would make them much more entertaining than free Ninja-mules... I once entertained trying unklenuke's quest idea in the past but just couldnt pull it off on my own... also thought of perhaps some form of token system but on a much more complicated level (i.e. seperate tokens for each level clase (like 1-10,2-20,etc) and the tokens having a limited lifespan (i.e. you logout the token dissappears and you gotta buy another one when you relog per bot...) but my intentions there ARE for limiting usage of bots and making the players earn them (and spend money...) *lol*

Selector has a neat vote=reward system cooked up, it'd be kinda cool if bot tokens could be awarded for every so many votes or something along those lines (thus increasing the popularity of one's server overall ...

just some ideas... hit me up anytime bud.. u know where to find me.. if not, ask DarkRulerz

Link to comment
Share on other sites

There needs to be a balance between the needs of the player and setting the requirements for earning the ability to hire bots. Since the bots come from the player's own account, I'd say it shouldn't be too difficult. Otherwise, the player's reaction might be "You're making me go through all this just to hire my own characters?? WTF?!?" And let's not forget Playerbots are intended to be useful for low pop servers to give characters a helping hand.

Another matter to consider is limiting the level difference between the hiring character and the bot. You wouldn't want someone with a level 70 character in their account hiring them to run through instances with their level 20 character. I'd say there shouldn't be more than 5 levels in difference if you're going to use Botguy to turn playerbots into a commodity that is part of the server's economy.

The quest part might get a bit sticky. Unless you choose a common quest that already exists for the current zone and level of the character, you'd need to script custom quests. I'm not sure if messing about with a custom quest would be preferable, unless someone can script such quests according to class and level ( a solo mage might have more trouble than a much less squishy warrior, for instance ). No point in sending them out on a quest they'd need help completing! Although, you might use a party quest to allow hiring Heroic characters, like Death Knights. There's also the issue of having to pepper the world with these Botguy NPCs and then having them offer the correct quest for the zone where they reside. You wouldn't want the Botguy in Shattrath handing out a quest to kill Hogger in Elwynn Forest.

If these were NPC bots with some good skills and gear, then upping the requirements would be perfectly reasonable, but they're not so it makes little sense to over-complicate matters concerning cost and/or requirements.

A relatively simple quest and some gold ought to suffice, if not just gold.

Link to comment
Share on other sites

Hi UnkleNuke,

Agreed. I thought that it might be best to make to bot summon requirement configurable in mangosd.conf. That way the server administartor could decide what would work for his/her users.

QuestID 805 (Report to Sen'jin Village) 54 (Report to GoldShire) only available if player complete initial trial quests. An questid could be included for all races. (No questid feature disabled)

Cost 50 (Say that the player must have at less 50s to be able to summon bots) (0 to disable feature)

PlayerbotAI.BotguyQuests = 805 54

PlayerbotAI.BotgutCost = 50

bool function CheckQuest ()

{

result = check character_queststatus for completed quests

if result in sConfig list or sConfig = 0, return true

else return false

}

if (CheckQuest() && HaveMoney())

{

pCreature->LoadBotMenu(_Player) // Display bot menu on NPC

}

It could work very well

Link to comment
Share on other sites

There will be more quests to choose than the two you've proposed?

Just those two quests for those two zones means some characters will meet the requirements early while others will arrive to that point at a much later level, if their chosen exploration takes them to those areas. For example, a Gnome starting in Dun Morogh might decide to go north to Loch Modan and The Wetlands, instead of south to Stormwind and Elwynn Forest. There's no telling what level their character may be by the time they did get around to the southern lands.

A Botguy in each major city would probably be the best way to go, with a quest appropriate to that zone and minimum character level. You could also have Botguy in other cities or major towns, like Menethil Harbor, but only as a "vendor" for hiring bots by those who already have earned the privilege.

This begs the question of what to do with very low level characters. The only way to accommodate them would be to also spawn Botguy in the starting zones.

Is it even desirable to allow very low level characters to hire bots, since it's likely the other characters on that player's account are going to be higher level? Should a very low level character be allowed to use higher level characters to help them complete quest objectives in the starting zone?

The quest requirements do imply a minimum level at which a character can hire bots, since obtaining the quests have their own level requirements.

On a side note, under the heading of wishful thinking:

It would be great if it were possible to make "unlocking" the ability to hire bots an Achievement, perhaps titled something like "Mercenary Captain". This would make players feel even more proud of earning the right to hire playerbots and motivate others to also earn this. However, that would probably stray back into the mess of making things too complex from the perspective of programming the features.

Link to comment
Share on other sites

i like that wishful thinking idea... and i agree with much of what you have stated.. i was only firing out ideas to spur better thoughts.. overall what i am getting at is that i would like to see the priv of adding bots to be seen as something special and valued rather than a way to cheat the system

Link to comment
Share on other sites

On a side note, under the heading of wishful thinking:

It would be great if it were possible to make "unlocking" the ability to hire bots an Achievement, perhaps titled something like "Mercenary Captain". This would make players feel even more proud of earning the right to hire playerbots and motivate others to also earn this. However, that would probably stray back into the mess of making things too complex from the perspective of programming the features.

Considering adding achievements is impossible without modifying the client, not so much too complex as not allowed here.

Link to comment
Share on other sites

Considering adding achievements is impossible without modifying the client, not so much too complex as not allowed here.

err not to be challenging or anything but... isnt this the core modifications section? thus since playerbot ISNT mangos-prime core such modifications as suggested to the playerbot system shouldnt be mandated as "not allowed here" or am i wrong in logic?

Link to comment
Share on other sites

Hi Guys,

I have now built in restrictions on using the botguy menu. These can be enabled/disabled in mangosd.conf, so used at the disrcretion of the server administrator. If you don't like them, don't enable them.;)

#

# PlayerbotAI.BotguyQuests

# List of Quest ids, any of which, once completed will enable botguy menu on NPCs

# List must be enclosed in double quotes ("") and multiple Quest Ids separated by a comma(,)

# Example: "805,54,2160"

# Default: "" no quest restriction, memu always displayed by NPCs

#

# PlayerbotAI.BotguyCost

# Cost (Copper coins) levied on summoning a bot

# If player has the cost, botguy menu will be displayed by NPCs

# Default: 0 - no cost, menu always displayed by NPCs#

###################################################################################################################

PlayerbotAI.DisableBots = 0

PlayerbotAI.DebugWhisper = 0

PlayerbotAI.FollowDistanceMin = 0.5

PlayerbotAI.FollowDistanceMax = 1.0

PlayerbotAI.MaxNumBots = 9

PlayerbotAI.RestrictBotLevel = 80

PlayerbotAI.BotguyQuests = "805,54,2160"

PlayerbotAI.BotguyCost = 5

PlayerbotAI.BotguyQuests (To disable, choose a very high level quest)

A list of pre-requisite quests, any of which will display the botguy menu once completed by the player. These quests can be made as hard or as easy as you want. In my previous post, I cited "805,54". These were just examples. I think it would be a good idea to encourage your users to complete the trial quests available to all, in the individual start areas. I only gave these two as examples of a trial (horde) quest for ogres, and one for humans (alliance). It shouldn't be too difficult to compile an approriate list of quests.

PlayerbotAI.BotguyCost (To disable, choose a very high cost)

This is fairly self explanatory. A tax is placed on the ability to summon bot. If the player does not have enough money, the botguy menu will not be available. (Thanks to ckegg for his help with this).

These features can be used in combination, on their own, or not at all.

I will shortly submit a patch for you to test

Hope this helps

Link to comment
Share on other sites

Outstanding work, blueboy! I can hardly wait to add this one. Allowing admins to choose the required quests is pure awesome. You, sir, are a genius! :)

HSC_Dev3, it has been a long standing rule in these forums that open discussion of modifying the game client in any fashion that violates the EULA or copyright of the publisher is prohibited. This ain't AC-Web, after all, or any other "free shard" community. If a forum moderator or admin is feeling generous, you might get one warning, but further infractions will usually result in a permanent ban. It's a zero-tolerance policy, or nearly so, to protect this community from legal prosecution that could bring this whole party to an end for all of us. I'd rather that did not happen, for obvious reasons, and also because I simply don't care much for what the other guys are offering up as servers.

Now, if you just wish to modify the MaNGOS core or a compatible database, feel free to run wild with your imagination. That's the good thing about open source. :)

Link to comment
Share on other sites

Please chill out against HSC_Dev3... he isn't used to following rules i guess, but the first comment on this was clear enough...threatening with a ban by a user without the right to ban people is just an useless add to this thread

the following was sufficient info for him IMO:

modifiing the client is not a core modification , you are modifing the dbc files which is from your wow client , it is like modifing a part of the game , it is considered ilegal/or not accepted on these forums i guess

on-topic

anyway, if you're interested Blueboy...a user of my core posted this crash report (Core contains an unmodified version of Playerbot):

Revision: * * 9875 *
Date 16:5:2010. Time 11:33
//================================================== ===
*** Hardware ***
Processor: AMD Athlon(tm) 64 X2 Dual Core Processor 4400+
Number Of Processors: 2
Physical Memory: 2096620 KB (Available: 748796 KB)
Commit Charge Limit: 4034476 KB

*** Operation System ***
Microsoft Windows XP Professional Service Pack 3 (Version 5.1, Build 2600)

//================================================== ===
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 007E00B6 01:003DF0B6 C:\\Documents and Settings\\Administrator\\Bureaublad\\Hellscream-Core-b29b38a\\Hellscream-Core-b29b38a\\bin\\Win32_Release\\mangosd.exe

Registers:
EAX:00000000
EBX:738B5670
ECX:7FA07560
EDX:0000BE33
ESI:00000000
EDI:00973BA0
CS:EIP:001B:007E00B6
SS:ESP:0023:08FB6F7C EBP:08FB6FAC
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010206

Call stack:
Address Frame Function SourceFile
007E00B6 00000000 PlayerbotAI::HasAura+16
007E4CBD 00000000 PlayerbotAI::CastSpell+18D
007E4AD4 00000000 PlayerbotAI::CastSpell+A4
00920BE1 00000000 PlayerbotRogueAI:oNextCombatManeuver+381
007E160A 00000000 PlayerbotAI:oNextCombatManeuver+1CA
007E46AE 00000000 PlayerbotAI::UpdateAI+66E
00519B4E 00000000 Player::Update+101E
004DF60B 00000000 Map::Update+DB
004E7743 00000000 InstanceMap::Update+13
008B830E 00000000 MapInstanced::Update+DE
006B2BC8 00000000 MapManager::Update+128
0064CB90 00000000 World::Update+810
00456DFE 00000000 WorldRunnable::run+8E
00973BB9 00000000 ACE_Based::Thread::ThreadTask+19
002A14D4 00000000 __WSAFDIsSet+FFFFFFFFFFFCC45C
78543433 00000000 _endthreadex+44
785434C7 00000000 _endthreadex+D8
7C7DB729 00000000 GetModuleFileNameA+1BA

Call stack:
Address Frame Function SourceFile
7C90E514 00000000 KiFastSystemCallRet+0
7C7D2542 00000000 WaitForSingleObject+12
00259C64 00000000 __WSAFDIsSet+FFFFFFFFFFF84BEC
002C64DA 00000000 __WSAFDIsSet+FFFFFFFFFFFF1462
002C269F 00000000 __WSAFDIsSet+FFFFFFFFFFFED627
00665CBA 00000000 WorldSocketMgr::Wait+4A
739311C4 00000000 0000:00000000
739311C4 00000000 0000:00000000
6C696146 00000000 

i will try to recreate this crash in a debug core for some more details

the info he gave was

i was doing voa (Vault of Archavon) 10-man with 9 bots :S

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • 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