Jump to content

Recommended Posts

Posted
ok for the record, it is NOT vehicle that is doing this to cause the end result of the bots behaving badly... I just compiled tiamat without the vehicle branch and it still returns the errors I listed earlier.. all branches in my build are mangos based not Tasssadar's

O.K,

I'm going to run some tests that might take awhile. Please do not think I am ignoring you.

I'm presently building a basic server

MaNGOS[9183]

playerbot from blueboy @ MaNGOS[9162] // latest version

I will see if I get a problem when I try to group my bots. The error message suggests that the worldpacket data is malformed.

One possiblity is that Blizzard has changed the format of the packet sent from the client, for this event, in the latest 3.3.0 update. I had a similar problem with teleporting in the last client update. If I had experience with a 'packet sniffer' it might be straight forward to compare the data sent. However, I haven't so it might be a case of trial and error, until the size of data sent in the packet matches that received. I would have thought that this issue would also effect MaNGOS on its own ? If you have a number of users on your servers, maybe you could see whether this issue occurs with a group of real players?

Essentially data is sent and received thus,

Client

bananas >> packet  // 2 size
oranges >> packet  // 3 size
apples >> packet   // 2 size

send packet

Server expects

receive packet

bananas << packet  // 2 size
oranges << packet  // 3 size
apples << packet   // 2 size

But if they have changed it, the server might get something unexpected

receive packet

bananas << packet // 3 size
oranges << packet // 3 size
apples  << packet // 3 size

2010-01-15 13:21:42 ERROR:ERROR: Attempted to get in ByteBuffer (pos: 0 size: 0) value with size: 4
2010-01-15 13:21:42 ERROR:WorldSession::Update ByteBufferException occured while parsing a packet (opcode: 110) from client 192.168.xxx.xxx, accountid=135. Skipped packet.

The error suggests that the server has recieved unexpected data from the client, and is ignoring the packet.

Hope this helps, interested in everyones thoughts.

  • Replies 1.8k
  • Created
  • Last Reply

Top Posters In This Topic

Posted

Hi Guys,

I just tried my working server, and get no errors when I try to group the bots. I do not remember getting any errors when I compiled. The server is as follows;

MaNGOS[9162]

SD2[5143]

playerbot from blueboy // latest version

auctionhousebot // latest Naicisum version

autobroadcast // old version

vehicle // Tasssadar

@erazare I will try to reproduce your error on my machine. Can you giving me the address of your repo, and I'll give it a go.

I checked bizkut's patch and repo and they were both fine.

Cheers

Posted

After a few days of trying, including getting to know git and having to regenerate the dbc files because of a change in the core mangos , I have a working install that includes playerbot, scriptdev2 and auction house bot.

I have just started 2 level 1 humans and added one as a bot. In the starting area I ran inside the building, which is up some steps, and the bot followed me but ran through the floor and dint climb the stairs.

Is this a known issue, or is there a fix out there somewhere. If not I will see if I can work out exactly what is going on. Is it because people dont normally start bots at level 1 :)

Thanks for your help.

Posted

Hi klunk,

Yes I'm afraid it is. You said you've been using Tirintycore up to now, yes. This is an aspect of Playerbot I want to address, Trintycore might have an answer. I have been looking at this but have not made much progress, because of other issues. If you can offer help that would be great.

Have you got LOS settings active in 'mangosd.conf'. That does help, particularly when baddies seem to run through walls to kill you. The Line of Sight option stops this. Making the investigation of dungeons like the 'deadmines' possible

Cheers

Posted

Not sure if this is at all possible / plausible for playerbot but does anyone see a way to be able to switch the 'active' toon to a bot and vice versa. Say I'm playing as Toon A with Toon B added as a bot can I switch to play toon B and have toon A as the bot without having to log in and out?

I am, slowly, getting to terms with git and repos (it's all new to me) then I might be able to look at getting my head around the c++

Posted
Not sure if this is at all possible / plausible for playerbot but does anyone see a way to be able to switch the 'active' toon to a bot and vice versa. Say I'm playing as Toon A with Toon B added as a bot can I switch to play toon B and have toon A as the bot without having to log in and out?

I am, slowly, getting to terms with git and repos (it's all new to me) then I might be able to look at getting my head around the c++

you go ahead and try that buddy... might be interesting.

listen bigger issue at hand.. I just built 919+ with playerbot and the stupid error that imentioned still exists.. it was ONLY playerbot and a recent rev of mangos... now... I am going to pull ***ONLY*** your blueboy repo and then build it but I am going to put a MAJOR fail expectancy

sure the bot builds, sure you can call the bot into world... but you CANNOT group them

P.S. this is on ALL repos of playerbot except the main playerbot repo which i do not even mess with i.e. the original playerbot repo, not blue's

ok update >> playerbot on blue's repo works just fine... but merge it with anything recent and it does not... something has changed in mangos code to cause this issue

Posted

I have the same issue with the bots .. I can't add them to the group and if i try after the first atempt they say that they are already in a group.

// XEQT

Posted

so far as I can see... and i am very likely wrong.. the code for playerbot to accept group is here

       // Handle Group invites (auto accept if master is in group, otherwise decline & send message
       case SMSG_GROUP_INVITE:
       {
           if (m_bot->GetGroupInvite())
           {
               const Group* const grp = m_bot->GetGroupInvite();
               if (!grp)
                   return;

               Player* const inviter = sObjectMgr.GetPlayer(grp->GetLeaderGUID());
               if (!inviter)
                   return;

               WorldPacket p;
               if (!canObeyCommandFrom(*inviter))
               {
                   std::string buf = "I can't accept your invite unless you first invite my master ";
                   buf += GetMaster()->GetName();
                   buf += ".";
                   SendWhisper(buf, *inviter);
                   m_bot->GetSession()->HandleGroupDeclineOpcode(p); // packet not used
               }
               else
                   m_bot->GetSession()->HandleGroupAcceptOpcode(p); // packet not used
           }
           return;
       }

My only guess is that something in the newer cores is altered not allowing the server to comprehend the data its looking for.

is it sObjectMgr? beats me..really dont know.. just trying to find the source of the problem

XEQT > this has been happening with every rev i find from 9178 and up... it works fine with the build it was built for so blueboy isnt at any fault, but time for progress people =)

Posted

Hi erazare,

I've looking at this issue all day, and traced an issue in GroupHandler.cpp where the packet for CMSG_GROUP_INVITE was not read correctly. This was fixed in MaNGOS[9172]. Look at the changelog. Any chance you could give me the address of your repo that is giving you problems. I will try to reproduce the error on my server. I do not seem to have an issue with group invites.

Its curious why I not having the same issues as you, I wonder whether it might be platform specific. If users could give us some feedback on what they are running (windows or linux), and whether they get this issue.

klunk linux

erazare windows

blueboy linux

XEQT ?

Cheers

Posted

Windows 7 Ultimate

Visual Studio 2008 Team Edition

I dont know what going on... if you clone YOUR repo then pull say 9193 (or wherever they are at now) directly from mangos, this error will occur for grouping

Posted
Hi erazare,

I've looking at this issue all day, and traced an issue in GroupHandler.cpp where the packet for CMSG_GROUP_INVITE was not read correctly. This was fixed in MaNGOS[9172]. Look at the changelog. Any chance you could give me the address of your repo that is giving you problems. I will try to reproduce the error on my server. I do not seem to have an issue with group invites.

Its curious why I not having the same issues as you, I wonder whether it might be platform specific. If users could give us some feedback on what they are running (windows or linux), and whether they get this issue.

klunk linux

erazare windows

blueboy linux

XEQT ?

Cheers

I am getting the same issue on Linux (ubuntu 32bit server 9.10 karmic). I have a Warrior as the main character and a priest bing added but I cannot group with them.

I am using 9183 from Mangos with blueboy's playerbot known to work with 9162. Both snapshots were taken yesterday around 13:00 GMT.

I also have Auctionhouse and ScriptDev2 installed.

Hope this helps

Posted

Hi Guys

Cheers for the info. Right we can now eliminate a platform specific issue. I'm using OpenSuSe 11.1.

Can I get access to an example repo that is giving you problems. If I can reproduce the issue on my machine, I might be able to help. I will also require step by step account of your merge procedure.

Cheers

Posted

I run Windows 7 Ultimate Swedish.

I have a remote nvc to that machin .. testing some error testing to see if i can finger point on the target ..

Posted

I could open up a port and set you up if you would like that .. or are you more intrested in the operating system ?

You could use a sun virtual box for that

its even free :)

Posted

Hi XEQT,

Sorry, I think you mis-understand me. I was hoping someone had a Github repo with the problem code on. I know erazare has 'Tiamat' but it has multiple mods included in it.

Cheers

Posted
Hi XEQT,

Sorry, I think you mis-understand me. I was hoping someone had a Github repo with the problem code on. I know erazare has 'Tiamat' but it has multiple mods included in it.

Cheers

My github is available. klunk/mangos

I built a patch using your post in this thread, applied that. then ahbot and finally scriptdev2.

you can see it if you clone it and then run gitk ;)

Posted

Hi klunk,

Thats, fine nothing to do but clone your repo to my harddrive, that will do nicely. ahbot won't be causing the issue! I'll get back to you, probably tommorow now

Cheers

Posted

Hi Guys,

At last I'm on the same block as you. I've built the code from klunk repo.

MaNGOS[9183]

SD2[1544]

Compilation was fine. Interestly, I was not able to run the server, until I had recreated the 'dbc' files in accordance with MaNGOS[9170]. It then loaded, and I now get exactly what you get. Hmm.. this will take a while, but I got to crash now its quarter to four in the morning.

Cheers

Posted
Hi Guys,

At last I'm on the same block as you. I've built the code from klunk repo.

MaNGOS[9183]

SD2[1544]

Compilation was fine. Interestly, I was not able to run the server, until I had recreated the 'dbc' files in accordance with MaNGOS[9170]. It then loaded, and I now get exactly what you get. Hmm.. this will take a while, but I got to crash now its quarter to four in the morning.

Cheers

thank you blueboy I look forward to your results... currently on my private server community I told the players that the bots are suffering from a rare case of radiation poisoning and may act irregular

Posted

This is where it fails in worldsession.cpp

               default:
                   sLog.outError("SESSION: received wrong-status-req opcode %s (0x%.4X)",
                       LookupOpcodeName(packet->GetOpcode()),
                       packet->GetOpcode());
                   break;
           }
       }
 catch(ByteBufferException &)
       {
           sLog.outError("WorldSession::Update ByteBufferException occured while parsing a packet (opcode: %u) from client %s, accountid=%i. Skipped packet.",
                   packet->GetOpcode(), GetRemoteAddress().c_str(), GetAccountId());
           if(sLog.IsOutDebug())
           {
               sLog.outDebug("Dumping error causing packet:");
               packet->hexlike();
           }
       }
       delete packet;
   }
   // Playerbot mod - Process player bot packets
   // The PlayerbotAI class adds to the packet queue to simulate a real player
   // since Playerbots are known to the World obj only by its master's WorldSession object
   // we need to process all master's bot's packets.
   if (GetPlayer() && GetPlayer()->GetPlayerbotMgr()) {
       for (PlayerBotMap::const_iterator itr = GetPlayer()->GetPlayerbotMgr()->GetPlayerBotsBegin(); 
         itr != GetPlayer()->GetPlayerbotMgr()->GetPlayerBotsEnd(); ++itr)
         {
           Player* const botPlayer = itr->second;
           WorldSession* const pBotWorldSession = botPlayer->GetSession();
           if (botPlayer->IsBeingTeleported())
               botPlayer->GetPlayerbotAI()->HandleTeleportAck();
           else if (botPlayer->IsInWorld())
           {
               WorldPacket* packet;
               while (pBotWorldSession->_recvQueue.next(packet))
               {
                   OpcodeHandler& opHandle = opcodeTable[packet->GetOpcode()];
                   (pBotWorldSession->*opHandle.handler)(*packet);
                   delete packet;
               }
           }
       }
   }


Posted

Im almost there ..

i solved som of it via this

   // ok, we do it
   WorldPacket data(SMSG_GROUP_INVITE, 10);
   data << uint8(1);                                       // ok
if (!GetPlayer()->GetPlayerbotMgr())//   GetPlayerbotAI())
{

 data << GetPlayer()->GetName();
 player->GetSession()->SendPacket(&data);

}
else
{
 data << membername;
 HandleGroupAcceptOpcode(data);

}
SendPartyResult(PARTY_OP_INVITE, membername, PARTY_RESULT_OK);



the only problem i have now is that it uses the same name back to me in GetPlayer() and _player

So there are som stuff to work out .. but i can nearly create a group now ..

// XEQT

Posted
Im almost there ..

i solved som of it via this

   // ok, we do it
   WorldPacket data(SMSG_GROUP_INVITE, 10);
   data << uint8(1);                                       // ok
if (!GetPlayer()->GetPlayerbotMgr())//   GetPlayerbotAI())
{

 data << GetPlayer()->GetName();
 player->GetSession()->SendPacket(&data);

}
else
{
 data << membername;
 HandleGroupAcceptOpcode(data);

}
SendPartyResult(PARTY_OP_INVITE, membername, PARTY_RESULT_OK);



the only problem i have now is that it uses the same name back to me in GetPlayer() and _player

So there are som stuff to work out .. but i can nearly create a group now ..

// XEQT

excellent progress XEQT I am getting ready to crash now as its 2:25AM EST... but I will check this thread when i get up and if no one has it solved yet I will work on it... blueboy, whattya think?

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