Jump to content

Recommended Posts

Posted

Hi Guys,

If it is acceptable to everyone I will remove 'botguy' code from playerbot. I will then create an installable 'botguy.patch' that I will post on this forum. If you can do the same with your patches, then members can choose which patch they prefer.

In the long run, it wouldl be prudent to create a separate fork off playerbot for botguy, so the public can access the code from github. The preferred solution can be upload there. Perhaps a volunteer can then managing this.

Please get back to me

  • Replies 1.8k
  • Created
  • Last Reply

Top Posters In This Topic

Posted

hey blueboy, i have a question for you... do you happen to know if ckegg is still working on his Ebon Hold modification he had going? the one that fixes grand theft palimino and other broken DK stuff?

Posted

As promised, here is the botguy patch I created. Only apply this if and when 'botguy' has been removed from blueboy. I'll wait a day or so before I do this, should anyone object.

diff --git a/dev/null b/mangos_botguy.sql
new file mode 100644
index 0000000..82b8945
--- /dev/null
+++ b/mangos_botguy.sql
@@ -0,0 +1,2 @@
+INSERT INTO `creature_template` VALUES('99002','0','0','0','0','0','20','0','20','0','Pappy Looter','The BotRecruiter',NULL,'0','59','61','6700','24000','5598','5875','20','35','35','1','1.48','0','0','181','189','0','158','1','1400','1900','0','0','0','0','0','0','0','0','0','0','100','7','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','','1','3','1','1','0','0','0','0','0','0','0','0','1','0','0','0','bot_giver');
+
diff --git a/dev/null b/mangos_command_bot.sql
new file mode 100644
index 0000000..fdd594b
--- /dev/null
+++ b/mangos_command_bot.sql
@@ -0,0 +1 @@
+INSERT INTO `command`(`name`,`security`,`help`) values ('bot',0,'Syntax: .bot [$command] [$playername]\\r\\n\\r\\nadd [$playername] or remove [$playername]');
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index e0a7c6b..0ab4315 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -287,7 +287,12 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData *data )
    else
        setFaction(GetCreatureInfo()->faction_A);

-    SetUInt32Value(UNIT_NPC_FLAGS,GetCreatureInfo()->npcflag);
+    // Playerbot START
+    if(isBotGiver())
+        SetUInt32Value(UNIT_NPC_FLAGS, 1);
+    else
+        SetUInt32Value(UNIT_NPC_FLAGS,GetCreatureInfo()->npcflag);
+    // Playerbot END

    SetAttackTime(BASE_ATTACK,  GetCreatureInfo()->baseattacktime);
    SetAttackTime(OFF_ATTACK,   GetCreatureInfo()->baseattacktime);
@@ -1248,7 +1253,12 @@ void Creature::setDeathState(DeathState s)
        RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
        AddMonsterMoveFlag(MONSTER_MOVE_WALK);

-        SetUInt32Value(UNIT_NPC_FLAGS, cinfo->npcflag);
+        // Playerbot mod
+        if(isBotGiver())
+            SetUInt32Value(UNIT_NPC_FLAGS, 1);
+        else
+            SetUInt32Value(UNIT_NPC_FLAGS, cinfo->npcflag);
+        // End Playerbot mod

        Unit::setDeathState(ALIVE);
        clearUnitState(UNIT_STAT_ALL_STATE);
diff --git a/src/game/Creature.h b/src/game/Creature.h
index f7082f9..fda3371 100644
--- a/src/game/Creature.h
+++ b/src/game/Creature.h
@@ -392,6 +392,10 @@ class MANGOS_DLL_SPEC Creature : public Unit
        bool isRacialLeader() const { return GetCreatureInfo()->RacialLeader; }
        bool isCivilian() const { return GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_CIVILIAN; }

+        // Playerbot mod - adds functionality to load/unload bots from NPC, also need to apply SQL scripts
+        bool isBotGiver();
+        void LoadBotMenu(Player *pPlayer);
+
        bool canWalk() const { return GetCreatureInfo()->InhabitType & INHABIT_GROUND; }
        bool canSwim() const { return GetCreatureInfo()->InhabitType & INHABIT_WATER; }
        bool canFly()  const { return GetCreatureInfo()->InhabitType & INHABIT_AIR; }
diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h
index 36c4435..2192e21 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,                   //UNUSED (just for bot system)
    GOSSIP_OPTION_MAX
};

diff --git a/src/game/NPCHandler.cpp b/src/game/NPCHandler.cpp
index a489f8b..5ad72f1 100644
--- a/src/game/NPCHandler.cpp
+++ b/src/game/NPCHandler.cpp
@@ -33,6 +33,7 @@
#include "Creature.h"
#include "Pet.h"
#include "Guild.h"
+#include "PlayerbotMgr.h"

void WorldSession::HandleTabardVendorActivateOpcode( WorldPacket & recv_data )
{
@@ -268,7 +269,15 @@ void WorldSession::HandleGossipHelloOpcode(WorldPacket & recv_data)
    if (GetPlayer()->hasUnitState(UNIT_STAT_DIED))
        GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);

-    if (!pCreature->IsStopped())
+    // Playerbot mod
+    if(pCreature->isBotGiver())
+    {
+        _player->TalkedToCreature(pCreature->GetEntry(),pCreature->GetGUID());
+        _player->PrepareGossipMenu(pCreature,GOSSIP_OPTION_BOT);
+        _player->SendPreparedGossip(pCreature);
+        pCreature->StopMoving();
+    }
+    else if (!pCreature->IsStopped())
        pCreature->StopMoving();

    if (pCreature->isSpiritGuide())
@@ -304,6 +313,28 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )
    if (GetPlayer()->hasUnitState(UNIT_STAT_DIED))
        GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);

+    // Playerbot mod
+    Creature *pCreature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_NONE);
+    
+    if(pCreature->isBotGiver() && !_player->GetPlayerbotAI())
+    {
+        if (!_player->GetPlayerbotMgr())
+            _player->SetPlayerbotMgr(new PlayerbotMgr(_player));
+        
+    WorldSession * m_session = _player->GetSession();
+        uint64 guidlo = _player->PlayerTalkClass->GossipOptionSender(gossipListId);
+        if(_player->GetPlayerbotMgr()->GetPlayerBot(guidlo) != NULL)
+        {
+             _player->GetPlayerbotMgr()->LogoutPlayerBot(guidlo);
+        }
+        else if(_player->GetPlayerbotMgr()->GetPlayerBot(guidlo) == NULL)
+        {
+             _player->GetPlayerbotMgr()->AddPlayerBot(guidlo);
+        }
+        _player->PlayerTalkClass->CloseGossip();
+        return;
+    }
+
    // TODO: determine if scriptCall is needed for GO and also if scriptCall can be same as current, with modified argument WorldObject*

    // can vehicle have gossip? If so, need check for this also.
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index c7bc990..a8746e1 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -12257,6 +12257,12 @@ void Player::PrepareGossipMenu(WorldObject *pSource, uint32 menuId)

    GossipMenuItemsMapBounds pMenuItemBounds = sObjectMgr.GetGossipMenuItemsMapBounds(menuId);

+    // Playerbot mod
+    Creature *pCreature = (Creature*)pSource;
+
+    if (pCreature->isBotGiver())
+        pCreature->LoadBotMenu(this);
+
    // if default menuId and no menu options exist for this, use options from default options
    if (pMenuItemBounds.first == pMenuItemBounds.second && menuId == GetDefaultGossipMenuForSource(pSource))
        pMenuItemBounds = sObjectMgr.GetGossipMenuItemsMapBounds(0);
@@ -12555,6 +12561,10 @@ void Player::OnGossipSelect(WorldObject* pSource, uint32 gossipListId, uint32 me
            GetSession()->SendBattlegGroundList(guid, bgTypeId);
            break;
        }
+        // Playerbot START
+    case GOSSIP_OPTION_BOT:
+        break;
+    // Playerbot END    
    }
}

diff --git a/src/game/PlayerbotMgr.cpp b/src/game/PlayerbotMgr.cpp
index 0abd67d..a1d4b95 100644
--- a/src/game/PlayerbotMgr.cpp
+++ b/src/game/PlayerbotMgr.cpp
@@ -580,4 +580,56 @@ bool ChatHandler::HandlePlayerbotCommand(const char* args)
    }

    return true;
+}
+
+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, guidlo, 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, guidlo, word, false);
+            }
+        }
+    }
+    while (result->NextRow());
+    delete result;
+}
+
+bool Creature::isBotGiver()
+{
+    std::string scriptname = GetScriptName();
+    if( scriptname == "bot_giver" )
+        return true;
+    return false;
}
\\ No newline at end of file

Inside source root;

To test patch

patch --dry-run -p1 < botguy.patch

To apply patch

patch -p1 < botguy.patch

Posted

Stillhard, fix seems to have fixed quests for me as well. course it did take me a little while to figure out what do do as the line numbers seem to be off.

On a side note I'm trying to import vehicle.patch (Made myself by branching main and then pull from vehicle, same way I added ahbot to blueboy's playerbot repo) and I keep getting a user.h.rej file. What I need to know is what do I do with it? is it similar to the patch files goto line number and fix what it talking about?

I'm running lastest blueboy repo as of today and ahbot last pull with SD2/(ACID 3.0.1) last pull. Not using botguy not even sure what botguy does.. UDB version 386..

Posted
Stillhard, fix seems to have fixed quests for me as well. course it did take me a little while to figure out what do do as the line numbers seem to be off.

On a side note I'm trying to import vehicle.patch (Made myself by branching main and then pull from vehicle, same way I added ahbot to blueboy's playerbot repo) and I keep getting a user.h.rej file. What I need to know is what do I do with it? is it similar to the patch files goto line number and fix what it talking about?

I'm running lastest blueboy repo as of today and ahbot last pull with SD2/(ACID 3.0.1) last pull. Not using botguy not even sure what botguy does.. UDB version 386..

I use Tasssadar's repos for vehicles and other tweaks myself... i'll see what I can do about raising ckegg *lol*

Posted
Stillhard, fix seems to have fixed quests for me as well. course it did take me a little while to figure out what do do as the line numbers seem to be off.

On a side note I'm trying to import vehicle.patch (Made myself by branching main and then pull from vehicle, same way I added ahbot to blueboy's playerbot repo) and I keep getting a user.h.rej file. What I need to know is what do I do with it? is it similar to the patch files goto line number and fix what it talking about?

I'm running lastest blueboy repo as of today and ahbot last pull with SD2/(ACID 3.0.1) last pull. Not using botguy not even sure what botguy does.. UDB version 386..

Hi,

Look inside 'user.h.rej' and see where the conflict occurs. When the patch is applied the computer searches the files for a 'pattern' in the code. If the pattern is not found a conflict is flagged and it Fails producing a '.rej' file.

If the core MaNGOS code changes or changes as a result of a previously applied patch

* The patch suceeds if the pattern exists, but offset from original location.

* The patch fails if the pattern nolonger exists before or after patch mod

Look at the patterns shown in the patch file, and look at the code your trying to patch. See if there are differences. Look carefully, the slightest difference will break the patch (Info inside '.rej' file).

Example

diff --git a/src/game/Creature.h b/src/game/Creature.h

index f7082f9..fda3371 100644

--- a/src/game/Creature.h

+++ b/src/game/Creature.h

@@ -392,6 +392,10 @@ class MANGOS_DLL_SPEC Creature : public Unit

bool isRacialLeader() const { return GetCreatureInfo()->RacialLeader; } //pattern

bool isCivilian() const { return GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_CIVILIAN; } //pattern

//pattern

+ // Playerbot mod - adds functionality to load/unload bots from NPC, also need to apply SQL scripts//mod

+ bool isBotGiver(); //mod

+ void LoadBotMenu(Player *pPlayer); //mod

+ //mod

bool canWalk() const { return GetCreatureInfo()->InhabitType & INHABIT_GROUND; } //pattern

bool canSwim() const { return GetCreatureInfo()->InhabitType & INHABIT_WATER; } //pattern

bool canFly() const { return GetCreatureInfo()->InhabitType & INHABIT_AIR; } //pattern

Hope this helps

Posted

That help.. I figure that was how it worked but I was not sure. Just to make sure, it would fail as well if the pattern does not exist even if what it was changing it to already exists.

Hi,

Look inside 'user.h.rej' and see where the conflict occurs. When the patch is applied the computer searches the files for a 'pattern' in the code. If the pattern is not found a conflict is flagged and it Fails producing a '.rej' file.

If the core MaNGOS code changes or changes as a result of a previously applied patch

* The patch suceeds if the pattern exists, but offset from original location.

* The patch fails if the pattern nolonger exists before or after patch mod

Look at the patterns shown in the patch file, and look at the code your trying to patch. See if there are differences. Look carefully, the slightest difference will break the patch (Info inside '.rej' file).

Example

Hope this helps

Posted

Newbie question, is github.com/blueboy/ the current source tree for playerbot ?

cause i tried the one on the first page but my compile failed, the above one does compile....

And.. the bots seem to work perfectly but, i can't get a list of the inventories of the bots and after a kill they stand over the bodies without looting.. is that normal behaviour ?

Thanks in advance :lol:

*Side Note* - Great work on this project, i have a small private server and you've just tripled the amount of characters online ^_^

Posted
Newbie question, is github.com/blueboy/ the current source tree for playerbot ?

cause i tried the one on the first page but my compile failed, the above one does compile....

And.. the bots seem to work perfectly but, i can't get a list of the inventories of the bots and after a kill they stand over the bodies without looting.. is that normal behaviour ?

Thanks in advance :lol:

*Side Note* - Great work on this project, i have a small private server and you've just tripled the amount of characters online ^_^

Hi,

The short answer to your question is yes. The guys who normally look after the 'playerbot' repo are otherwise engaged. I have created 'blueboy' to keep playerbot going. I am pleased it works for you.

You get an inventory of your bots by asking them to 'trade'.

Right click on the bot avatar and a menu will drop down. Select trade and an exchange dialog will popup. In the background the bot will also list money and all the items it is carrying. Each item listed can be used as an 'item link' by holding the shift key down and selecting it with your mouse.

e.g

/w [botname] <item link>

item will then appear in the trade dialog

To exchange money

/w [botname] 1g

1 gold piece will be offered by the bot, if it has it to trade, in the exchange dialog (g - gold, s - silver, c - copper).

Note 'soulbound' items can not be traded. There is no graphical 'inventory' dialog, like the 'inspect' dialog.

Bot will only loot items that are necessary for them to complete quests (Exception: They will participate in group loot rolls for special items). If you wish, you can ask the bots to inform you of items they require,

For individual bots, whisper

/w [botname] report

For groups of bots, party

/p report

For more info on using your bots look at 'bot_readme.txt' in the source or this link http://wiki.github.com/playerbot/mangos

Hope this helps

Posted

Many Many thanks blueboy and my compliments on your (and others of course) work.

I get it now... i was trying to get them to list it in whisper without the trade window open.

Ok.. with that said, i will test later on....

just a little side note question... is there a limit as to how many bots i summon ?

Posted

When bots die they are resurrected in stages.

1. BOTSTATE_DEAD where the bot becomes a ghost, a corpse is created, and the ghost is relocated in the nearest graveyard.

2. BOTSTATE_DEADRELEASED where the bots ghost is teleported to it's corpse, and then resurrected.

3. BOTSTATE_NORMAL bot is alive.

Occasionally bots die in the wrong state (I have noticed that the bot's avatar on the client turns blue). They are

neither BOTSTATE_DEAD or BOTSTATE_DEADRELEASED. The bot is actually teleported to the players location without a

ghost. It appears on the minimap, but is invisible. The only way to then resurrect the bot (prior to the fix) was to

login as the bot, and then get the bot to search for it's corpse. This could be difficult, particularly if you not sure

where his corpse is.

PlayerbotAI:UpdateAI() handles resurrection events.

NOT BOTSTATE_DEAD AND NOT BOTSTATE_DEADRELEASED

It first clears relevant flags and sets the bot status to BOTSTATE_DEAD.

BOTSTATE_DEAD

Unfortunately, these bots already possess a corpse and the condition causes a code loop. I added a state change to

BOTSTATE_DEADRELEASED, to bypass creating another corpse.

BOTSTATE_DEADRELEASED bots are now teleported to the corpse and resurrected as normal.

I have uploaded the fix to github ;)

Posted

Hello all and Blueboy Especially!

Thanks for the great program, love this new feature of Mangos.

However I have an issue with a version of playerbot that RRTN put in his repack and was hoping maybe someone could shed light on the problem.

When entering instances with spell caster bots my server crashes at times. Doesn't matter which instance. Tried Priest, Warlock, Paladin. the paladin and warlock were fine at first, but now they have turned a corner to where they will crash the server anytime I bring them in as a bot. I can enter using them as a player no problem.

Is this something that has been addressed already and i need to update? Or is this a possible problem with a database corruption?

RRTN's repack:

features:

Client build: 10482 - 10505 (3.2.2a)

Server build: rev_8876

ScriptDev2: rev_1508

PSDB: rev_268

UDB 0.11.6: rev_385

ACID 3.0.1: rev_32

Auction House Bot

Autobroadcast(With Next ID)

Chat Log System

Dual Talent Spec

Dythzer's SD2 options

Horde & Alliance grouping/trade

KAPATEJIb's Cumulative Pack

Movement Anti-Cheat

Outdoor PvP

PlayerBot System

Vehicles

Warhead's Jail System

example of a crash log:

Call stack:

Address Frame Function SourceFile

00777C9C 00000000 ?HasAura@PlayerbotAI@@QBE_NIABVUnit@@@Z+C

0077C56B 00000000 ?CastSpell@PlayerbotAI@@QAE_NI@Z+16B

0077C3A4 00000000 ?CastSpell@PlayerbotAI@@QAE_NIAAVUnit@@@Z+A4

0089AFBA 00000000 ?DoNextCombatManeuver@PlayerbotPriestAI@@UAEXPAVUnit@@@Z+26A

007791E2 00000000 ?DoNextCombatManeuver@PlayerbotAI@@QAEXXZ+1C2

0077BF83 00000000 ?UpdateAI@PlayerbotAI@@QAEXI@Z+6A3

004D5B98 00000000 ?Update@Player@@UAEXI@Z+14C8

004A70A9 00000000 ?Update@Map@@UAEXABI@Z+D9

004AD763 00000000 ?Update@InstanceMap@@UAEXABI@Z+13

00845A7E 00000000 ?Finalize@?$RandomMovementGenerator@VCreature@@@@QAEXAAVCreature@@@Z+DF3E

0061A968 00000000 ??0CreatureEventAI@@QAE@ABV0@@Z+22798

005FF117 00000000 ??0CreatureEventAI@@QAE@ABV0@@Z+6F47

0043242E 00000000 ?getSource@?$Reference@V?$GridRefManager@VCorpse@@@@VCorpse@@@@QBEPAVCorpse@@XZ+1A7EE

008F5A69 00000000 ?GetFloatDefault@Config@@QAEMPBDM@Z+DC9

00B214D4 00000000 ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74

78543433 00000000 _endthreadex+44

785434C7 00000000 _endthreadex+D8

77E6482F 00000000 GetModuleHandleA+DF

any help would be most appreciated!

Also keep up the good work guys, especially Blueboy!

Posted

Hi

Judging by the version of MaNGOS used in the repack, it wouldn't be a bad idea to update. There have been alot of changes since [8876]. Repacks are great, but if you have issues they can be a nightmare to debug. I can confirm that the current version of playerbot on blueboy is stable with the following,

MaNGOS [9106]

SD2 [1526]

PSMDB [279]

AuctionHouseBot from Naicisum's github repo

Autobroadcast by Xeross (old version)

If you require all these mods (from the repack) then I advise that you add them one by one and check for any server instabilities.

Please note: The current version of playerbot does not contain the 'botguy' code, which was found to be causing problems with server stablity. If you use 'botguy' to summon bots, then perhaps you can use the patch I posted. I recommend you check out Stillhards & yad02s fix as this seems to work well with Windows servers.

I have not seen rrtn online for a while, perhaps he may have an update on his repack:)

Hope this helps

Posted

Hi,

Sorry that's the acronym I use for the 'Project Silvermoon Database'. You can obtain it from this link http://svn.assembla.com/svn/psmdb_wotlk/

as a subversion repo (e.g to get revision 279)

svn co [url]http://svn.assembla.com/svn/psmdb_wotlk[/url] -r 279

I noticed you on the 'Eye of Acherus' thread. I'm also looking into that at present. I've just compiled the latest 'trinitycore' but it won't let me logon. Its less friendly than MaNGOS, telling me that my SSL library is too old. My Opensuse box runs openssl 0.9.8k, so it should work.

Got any ideas, blueboy

Posted
Hi

Judging by the version of MaNGOS used in the repack, it wouldn't be a bad idea to update. There have been alot of changes since [8876]. Repacks are great, but if you have issues they can be a nightmare to debug. I can confirm that the current version of playerbot on blueboy is stable with the following,

MaNGOS [9106]

SD2 [1526]

PSMDB [279]

AuctionHouseBot from Naicisum's github repo

Autobroadcast by Xeross (old version)

If you require all these mods (from the repack) then I advise that you add them one by one and check for any server instabilities.

Please note: The current version of playerbot does not contain the 'botguy' code, which was found to be causing problems with server stablity. If you use 'botguy' to summon bots, then perhaps you can use the patch I posted. I recommend you check out Stillhards & yad02s fix as this seems to work well with Windows servers.

I have not seen rrtn online for a while, perhaps he may have an update on his repack:)

Hope this helps

personally i hate repacks for far too many reasons.. generally i take them for the DB to compare it against my own work, but repacks imo shouldnt be made... here's an idea: lets distribute server software to morons who can barely turn on thier computer much less attempt to run a SERVER supporting a bunch of other idiots who dont know what they are doing..

no.. i think repacks are a mistake.. it introduces too much leeching and vermin with very few pluses on any level.

Posted

Creature.cpp.rej

***************

*** 1248,1254 ****

RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);

AddMonsterMoveFlag(MONSTER_MOVE_WALK);

- SetUInt32Value(UNIT_NPC_FLAGS, cinfo->npcflag);

Unit::setDeathState(ALIVE);

clearUnitState(UNIT_STAT_ALL_STATE);

--- 1253,1264 ----

RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);

AddMonsterMoveFlag(MONSTER_MOVE_WALK);

+ // Playerbot mod

+ if(isBotGiver())

+ SetUInt32Value(UNIT_NPC_FLAGS, 1);

+ else

+ SetUInt32Value(UNIT_NPC_FLAGS, cinfo->npcflag);

+ // End Playerbot mod

Unit::setDeathState(ALIVE);

clearUnitState(UNIT_STAT_ALL_STATE);

creature.h.rej

***************

*** 392,397 ****

bool isRacialLeader() const { return GetCreatureInfo()->RacialLeader; }

bool isCivilian() const { return GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_CIVILIAN; }

bool canWalk() const { return GetCreatureInfo()->InhabitType & INHABIT_GROUND; }

bool canSwim() const { return GetCreatureInfo()->InhabitType & INHABIT_WATER; }

bool canFly() const { return GetCreatureInfo()->InhabitType & INHABIT_AIR; }

--- 392,401 ----

bool isRacialLeader() const { return GetCreatureInfo()->RacialLeader; }

bool isCivilian() const { return GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_CIVILIAN; }

+ // Playerbot mod - adds functionality to load/unload bots from NPC, also need to apply SQL scripts

+ bool isBotGiver();

+ void LoadBotMenu(Player *pPlayer);

+

bool canWalk() const { return GetCreatureInfo()->InhabitType & INHABIT_GROUND; }

bool canSwim() const { return GetCreatureInfo()->InhabitType & INHABIT_WATER; }

bool canFly() const { return GetCreatureInfo()->InhabitType & INHABIT_AIR; }

PLease help using version 9119 of mangos...

OH btw 9106 does not work either...

Posted

Hi Hanpuch

Where have you got your playerbot code from ?

If you read my recent posts you will see that 'botguy' has been removed from the playerbot code. I see in the Creature.cpp.rej file that there is reference to 'botguy' code.

+ // Playerbot mod
+ if(isBotGiver())
+ SetUInt32Value(UNIT_NPC_FLAGS, 1);
+ else
+ SetUInt32Value(UNIT_NPC_FLAGS, cinfo->npcflag);
+ // End Playerbot mod

This was removed from Creature.cpp ages ago. It looks like your still trying to use the code on the http://github.com/playerbot/mangos github. That is well out of date and only supports MaNGOS upto [8898]. I'm not suprised you are having issues with the later versions of MaNGOS. If you read the posts on this thread from early December onwards you will see that we are now using code on the follow github repo;

http://github.com/blueboy/mangos

Hope this helps

Posted

I'm still looking for an effective way to artificially populate a test server with what appear to be real players, 50-60 "players". Is the only way, to currently to load up multiple accounts and spawn their 9 respective bots each throughout the world? Or does anyone have an easier way?

Posted
I'm still looking for an effective way to artificially populate a test server with what appear to be real players, 50-60 "players". Is the only way, to currently to load up multiple accounts and spawn their 9 respective bots each throughout the world? Or does anyone have an easier way?

Certainly not with playerbot at present!. One of these days I hope to form a RAID group with my boys. Each has his own GUILD of 9 bots + player. These GUILDs can be then converted into one large RAID group, but I am sure you are already aware of this ;)

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