There is a issue with rule violation reports in Version 8.54:
Server Part:
[cpp]if(Group* group = player->getGroup())
{
int32_t reasons = group->getViolationReasons();
if(reasons > 1)
{
msg->AddByte(0x0B);
for(int32_t i = 0; i < 20; ++i)
{
if(i < 4)
msg->AddByte(group->getNameViolationFlags());
else if(i < reasons)
msg->AddByte(group->getStatementViolationFlags());
else
msg->AddByte(0x00);
}
}
}[/cpp]
Client Parsing:
[cpp]void ProtocolGame:
arseGMActions(const InputMessagePtr& msg)
{
std::vector<uint8> actions;
int numViolationReasons;
if(g_game.getClientVersion() >= 860)
numViolationReasons = 20;
else if(g_game.getClientVersion() >= 854)
numViolationReasons = 19;
else
numViolationReasons = 32;
for(int i = 0; i < numViolationReasons; ++i)
actions.push_back(msg->getU8());
g_game.processGMActions(actions);
}[/cpp]
I don't know if only I got the problem, but when you login with a GM it will result in the screen being black and other issues.
I couldn't fix the problem yet, that's why i disabled the packet in server.