Jump to content

Playerbot


Recommended Posts

Hi klyxmaster,

Does your server code include 'debug info'. I have noticed a nasty exit myself when I have included 'debug info'. If you compile the code without, it should be O.K.

EDIT: Here is a snippet from my server output window

Command: server shutdown 0 [Account: 0 from Console]

mangos>RARunnable thread ended

Network Thread Exitting

Network Thread Exitting

MMAP:unloadMapInstance: Unloaded mapId 000 instanceId 0

MMAP:unloadMap: Unloaded 000.mmap

MMAP:unloadMapInstance: Asked to unload not loaded navmesh map 001

MMAP:unloadMap: Asked to unload not loaded navmesh map 001

MMAP:unloadMapInstance: Asked to unload not loaded navmesh map 530

MMAP:unloadMap: Asked to unload not loaded navmesh map 530

MMAP:unloadMapInstance: Asked to unload not loaded navmesh map 571

MMAP:unloadMap: Asked to unload not loaded navmesh map 571

(2764311408) Shutting down

(2729429872) Shutting down

(2746215280) Shutting down

(2737822576) Shutting down

(2754607984) Shutting down

[1 ms] SQL: UPDATE realmlist SET realmflags = realmflags | 2 WHERE id = '1'

[1 ms] SQL: UPDATE account SET active_realm_id = 0 WHERE active_realm_id = '1'

[1 ms] SQL: UPDATE characters SET online = 0 WHERE online<>0

[0 ms] SQL: UPDATE character_battleground_data SET instance_id = 0

Halting process...

I know, your going to reply that your haven't got 'debug info' in your code. In which case, it might be worth posting as a bug to the core guys as playerbot shouldn't effect the mangosd daemon code in any way.

Hope this helps

Link to comment
Share on other sites

  • Replies 799
  • Created
  • Last Reply

Top Posters In This Topic

Hi klyxmaster,

Does your server code include 'debug info'. I have noticed a nasty exit myself when I have included 'debug info'. If you compile the code without, it should be O.K.

Fixed. I knew tthis was a prob somewhere, as my server logs show constant issues with battle ground. but it only appeared to be aggrivated by the playerbot. but the below method fixed it. no more crash

btw - the above snipped - my system never even got that far. 3...2...1(crash)

src/game/BattleGround.cpp

- sBattleGroundMgr.DeleteClientVisibleInstanceId(GetTypeID(), GetBracketId(), GetClientInstanceID());

+ // if its not template bg

+ if(GetBracketId()!=MAX_BATTLEGROUND_BRACKETS)

+ sBattleGroundMgr.DeleteClientVisibleInstanceId(GetTypeID(), GetBracketId(), GetClientInstanceID());

i KNEW I saw that somewhere - here is the original link.

https://github.com/mangos-zero/server/pull/15

Link to comment
Share on other sites

Hi,

The only problem with bot class quests is that quest indicators (! or ?) on the main and minmap are only listed for the player character. Normally, class quests are issued by the appropriate class trainer, so look out for these guys. If you use an addon such as 'EveryQuest' this will indicate all possible questgivers on the map, regardless of class. It still guess work, but it's worth visiting all potential npcs and doing a group request,

/p quest list

N.B Occasionally you might need to move the player's position to relocate the bots. Sometimes one or more might not be close enough to the questgiver for it to display all available quests for all bots. Then re-try the above command.

Hope this helps

/p quest list is not an options for zero (yet) :-(

Link to comment
Share on other sites

bots will stop looting quest (stackable) quest items, once their bags are full.

boar meat stacks.

but if their bags are full, they will stop looting.

when the bots are looting, once their bag is full they stop - REGARDLESS IF THE ITEM LOOTING IS STACKABLE.

I realized this when i was doing pie for billy. They were looting garbage and the quest item boar meat, but once their bags filled up, it didnt matter if they needed 2 or 3 more peices of meat, they are triggered NOT to loot because their bags are full.

so to test I emptied their bags (traded to me) and then cont. the quest and sure enough, they started looting again.

not a bug, but maybe a flag that they are checking that the item looted is a required quest item and its stackable, TAKE IT.

hope that made sense lol

Link to comment
Share on other sites

Hi klyxmaster,

Thanks for your time looking into this fix. As you will appreciate playerbot is untested in battlegrounds and arenas, so it comes as no surprise that the code does clash with the core. The guys at mangosR2 are exploring it's use in these areas and I expect the problem they have had recently are linked to this.

It would be nice to develop playerbot to include battleground/arena support, but it will require knowledge and at least some experience playing in such areas, before writing code. I will put my hand up and be the first admit I do not have either of these attributes. However, I would love to be involved in the coding if I can.

Support for battlegrounds and arenas is not going to be a quick process. The guys from mangosR2 have posted several links for improvements for their playerbot. I am reluctant to incorporate these into our playerbot without further testing. Code stability is king. It would be more appropriate to develop this code in a separate 'alpha branch', to do it appropriate justice.

/p quest list is not an options for zero (yet) :-(

Like I have said, the improved 'quest' command is not included in MaNGOS Zero yet.

EDIT: 'quest' has been implemented on the 'zeronew-ai' alpha branch, that is anologous to the 'new-ai' branch for the portal repo (excluding the following)

  • 'mail' command feature
  • 'buy' command feature
  • 'use' improved to include item application to equipped items and gameobjects
  • 'craft' command feature

I am not ignoring the excellent work of kennumen, but correct me if I'm wrong MaNGOS Zero does not support character talents.

bots will stop looting quest (stackable) quest items, once their bags are full.

Interesting about quest items not being stackable. Have you checked whether the items are stackable in the player's bag? I will take a look myself when I have a bit more time.

Thanks for your interest

Link to comment
Share on other sites

Hi klyxmaster,

bots will stop looting quest (stackable) quest items, once their bags are full.

Interesting about quest items not being stackable. Have you checked whether the items are stackable in the player's bag? I will take a look myself when I have a bit more time.

Thanks for your interest

LOL no, I knew that post was not going to come out right. its one of those things that work in practice, difficult to explain.

lets say bot has a 20 slotter. 18 slots full of whatever.

bots help kill a mob that you need to loot 4 widgets.

first loot - some more junk now at 19 slots full.

2nd loot - a quest item picked up. (3 more to go)

now bag is full at 20/20 slots.

mob drops another quest item. bot will NOT LOOT because its bag is full - even if the quest item IS A STACKABLE item. Pie for Billy is a good one to test on. Have to get 4 chunks of meat. load up a bot bag so there is one slot left. loot the mob (I think most private server default to either 80% or 100% drop rate). Since the last loot just maxed out the bag, if your next kill yields a quest item drop, the bot will not loot it, because its bags are considered "full".

hows that :-)

just a note for you. If I post that something is not working, it is by NO MEANS a complaint (or whine), it is merely a "FYI" for you to tinker with. So I pray you do not take it as a negative comment, as it is meant purely for information purposes only. Kinda like "... here's another"

cheers!!

Link to comment
Share on other sites

Hi klyxmaster,

Thanks for clarifying that, I see what you mean now. Leave it with me and I'll take a closer look at the code.

I've just updated the portalzero and zeronew-ai branches, but I noticed something very peculiar if you create a standalone patch. For some reason the following has been applied twice to the same core commit. If you then try to apply the patch you will get a conflict. To resolve this, edit the full patch created and remove the following

diff --git a/contrib/vmap_extractor_v3/vmapextract/vmapexport.cpp b/contrib/vmap_extractor_v3/vmapextract/vmapexport.cpp

index 5ab7392..d65b422 100644

--- a/contrib/vmap_extractor_v3/vmapextract/vmapexport.cpp

+++ b/contrib/vmap_extractor_v3/vmapextract/vmapexport.cpp

@@ -64,7 +64,6 @@ typedef struct

}map_id;

map_id * map_ids;

-uint16 *LiqType = 0;

uint32 map_count;

char output_path[128]=".";

char input_path[1024]=".";

It will then apply correctly.

Thanks for your concern, but I treat all feedback as being useful and it's nice to see interest in playerbot. Sorry if I may have given the impression otherwise :D

Cheers

Link to comment
Share on other sites

to increase the heal effects of shamanebot should first cast EARTHSHIELD on target than cast RIPTIDE and after this cast CHAINHEAL (increase chainhealing +25% )

or cast RIPTIDE and after this should cast LESSER_HEALINGWAVE ( in this order critt effect grow +25%)

or cast RIPTIDE and after this should cast HEALINGWAVE ( increase haste of casting Healingwave +30%)

Link to comment
Share on other sites

@blueboy:

any news regarding my problem with the bots who talk when i collect quest-items?

Hi,

It is clear that when you collect quest-items the ChatHandler receives chat it does not understand. I think we have eliminated the addons, but I will continue to use 'Chatter' (partly because I like it ;)), just in case something unexpected is sent.

Can you insert the following flag in PlayerbotAI.cpp @ ~line 6631, at the top of the 'HandleCommand()' function. Re-build your server.

void PlayerbotAI::HandleCommand(const std::string& text, Player& fromPlayer)

{

// prevent bot task spam

m_tasks.unique();

m_findNPC.unique();

DEBUG_LOG("chat(%s)",text.c_str());

// ignore any messages from Addons

if (text.empty() ||

text.find("X-Perl") != std::wstring::npos ||

text.find("HealBot") != std::wstring::npos ||

text.find("LOOT_OPENED") != std::wstring::npos ||

text.find("CTRA") != std::wstring::npos ||

text.find("GathX") == 0) // Gatherer

return;

So next time you get this unwanted message, the text will be recorded to your mangosd output. We will then have a better idea what is causing this issue.

Hope this helps

Link to comment
Share on other sites

I'll try it.

I saw, you're filtering the texts from addons. Do you have any experience with Carbonite?

I think, it could be one of the things that cause this. IIRC it posts a message in the group-chat when completing a quest, and sometimes the bot(s) react on this message. (i have to say bots, cause atm i'm walking with 4 of them :D )

Link to comment
Share on other sites

I am not ignoring the excellent work of kennumen, but correct me if I'm wrong MaNGOS Zero does not support character talents.

I wouldn't dream of it. The code is perfectly portable, although anything glyph related can be ripped out for clarity... Or left in for better patch compatibility.

Of course all the enums are incorrect (talent Ids) for Zero, as are all talent builds. Redoing all this data will be a lot of work, assuming the correct data is already out there. I also described how to do it quite a few posts back, so... "not it" :) You can also shrink the DB table; As above, shrink = clarity, as is = better patch compat.

Once the enums have been added, don't forget to update all the places they're used - IIRC this is only for error-checking purposes.

Talentspecs are only polish, not crucial in any way, so I'm not sure it's worth the time to port it. But if anyone's looking to learn, it's a fairly simple addition so if blueboy decides not to do it (and it's highly unlikely I will), this would be a good project to start with. Beware there will be a lot of manual labor :P

<edit> Oh, to be clear, 1.12 did have talents, but others and the tree wasn't as deep. Instead of 20/51/0 now (for example) it might've been 20/31/0 back then. Talents have been removed/added/renamed/etc since then. There were no glyphs at that point (which is part of the talent spec in playerbot, but not linked to any functionality yet). Obviously there was no Death Knight class either. Alliance did not have Shamans, and Horde did not have Paladins, but since you're only ever shown your own classes talentspec that doesn't really change anything. </edit>

Link to comment
Share on other sites

here is the relevant entry from a log:

WORLD: Received CMSG_QUESTGIVER_HELLO npc: Creature (Entry: 240 Guid: 80334)

WORLD: Sent SMSG_QUESTGIVER_OFFER_REWARD NPCGuid = Creature (Entry: 240 Guid: 80334), questid = 76

WORLD: Received CMSG_QUESTGIVER_CHOOSE_REWARD npc = Creature (Entry: 240 Guid: 80334), quest = 76, reward = 0

WORLD: Sent SMSG_QUESTGIVER_QUEST_COMPLETE quest = 76

WORLD: Recvd CMSG_BATTLEFIELD_LIST Message

WORLD: Received CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY

WORLD: Received CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY

CHAT: packet received. type 17, lang 7

CHAT: packet received. type 2, lang 4294967295

chat(Crb Qp10666##0449##003d$$010000ef##0023##)

chat(Crb Qp10666##0449##003d$$010000ef##0023##)

chat(Crb Qp10666##0449##003d$$010000ef##0023##)

chat(Crb Qp10666##0449##003d$$010000ef##0023##)

CMSG_TIME_SYNC_RESP

Time sync received: counter 139, client ticks 28438551, time since last sync 10042

Our ticks: 28438601, diff 50, latency 0

Is copied right after talking to a questgiver.

Link to comment
Share on other sites

Hi,

There's your answer ;) Carbonite

Use of addons is a personal thing and it's not practical to add filters for all in the playerbot code. What I suggest you do is add a filter manually to the existing filters. The common string in this chat text is "Crb", so

// ignore any messages from Addons

if (text.empty() ||

text.find("X-Perl") != std::wstring::npos ||

text.find("HealBot") != std::wstring::npos ||

text.find("LOOT_OPENED") != std::wstring::npos ||

text.find("CTRA") != std::wstring::npos ||

text.find("GathX") == 0 ||

text.find("Crb") != std::wstring::npos) // Carbonite

return;

So if you get this problem again future with different addon, just add a filter using the information obtained from the flag you inserted. If you wish you can comment out the flag, when it's not in use.

Hope this helps

Link to comment
Share on other sites

just testing lock pets..

got imp.. set to defense but only attacks melee. i have to tell it to cast fire bolt - if memory server right, isn't firebolt the imps default attack mode? silly for him to be up in combat punching dudes :P

If the imp's state is defensive, have you toggled the imp's firebolt spell

/w botname pet spells

Here's my pet's non-attack spells:

[blood Pact]

Here's my pet's attack spells:

[Firebolt]

If the spell is active the link will be green and white if it's disabled.

To activate

/w botname pet toggle [Firebolt]

The imp will now automatically use firebolt in it's attack

Hope this helps

Link to comment
Share on other sites

You must be mindful that UI addons, like Carbonite, are developed for retail game play.

I'm fairly certain the devs of Carbonite have never considered support for Playerbot, especially since doing so would likely be frowned upon by Blizz.

In my years of running and tinkering with my server, the general rule has been that the more complex the addon the more likely it will conflict with the server core especially if you have core mods that use chat, like Playerbot and Auctionhouse Bot.

Carbonite is infamous for conflicts both with MaNGOS and even other UI addons on retail. Titan Panel is another troublemaker. Just about any addon that makes use of the chat console or combat log will give you many headaches. In fact, Carbonite practically spams all sorts of status messages in the chat console. I know some guilds on retail will kick you if you do not disable certain functions in Carbonite because of the spamming.

Sometimes the fix is as simple as disabling the features that use the chat console, like Carbonite's Punk detector. For more troublesome addons, you'll have to get your hands dirty and modify an addon's Lua code with compatibility fixes.

I have always wished there was a group dedicated to making retail addons MaNGOS compatible.

Link to comment
Share on other sites

since which rev. the bots want to have the items when its time for rolling dices?

i've lost some good things to them xD

Wasn't it so, that they automaticly(? is that a word? :D ) pass?

That part, at least, is working as intended :) Bots are meant to act intelligently, rolling greed and need as applicable. blueboy recently made some good, much-needed improvements in this area. You can, of course, trade with the bots and take the items back from them, or in reverse using them as item mules.

<edit> quote added for clarity </edit>

Link to comment
Share on other sites

or in reverse using them as item mules.

like i do :D my bots get all of the junk items... xD and my inventory is free for useful stuff.

Carbonite is infamous for conflicts both with MaNGOS and even other UI addons on retail. Titan Panel is another troublemaker.

Carbonite is really annoying with the messages. but i don't want to miss it, cause it has some cool things, which i never found elsewhere. But i have to use an old version of it, cause newer version require Wow 4.x. I had to delete Carbonite only on my 4.0.6 Arkcore-Server, cause it slows down my game extremely. sometimes i had only 10 fps...

Titanpanel runs flawlessy here. No Spam, no crap...

but back to topic:

i'll test the new "chat-filter", and report back. The Debug-thing remains in the code, maybe i find some other addons which cause errors.

Link to comment
Share on other sites

Hi Guys,

I will have a new patch for you to test shortly. This will complement the 'craft' command patch.

The new 'process' command will generate reagents from collected raw materials

  • milling herbs to create inks for inscription
  • disenchanting weapons and armour (coloured green or better) for enchanting
  • prospecting metal ores to create precious gems for jewelcrafting

The enchant feature for the 'craft' command is currently limited to creating 'Runed Rods', 'Wands' and Wizard Oil only. I will soon create an 'enchant' command that will be more versatile, enabling bots with the enchanting skill to enhance suitable items within it's inventory (i.e tradable items only). If you wish to enchant soulbound items for other players & bots, I suggest login as the enchanter and utilize the non-tradable slot.

Hope this helps

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