Fix bards not playing their instruments

This is a rather naive implementation, we should really save the
PlayerState server side so we can have newly zoned in clients
after the equip happened to see the animation. But until we find
all the places the PlayerState is sent, this is fine.
This commit is contained in:
Michael Cook (mackal) 2015-05-06 23:40:01 -04:00
parent be0507c4d3
commit 8224a9e776
2 changed files with 26 additions and 0 deletions

View File

@ -381,6 +381,8 @@ void MapOpcodes()
ConnectedOpcodes[OP_VetClaimRequest] = &Client::Handle_OP_VetClaimRequest;
ConnectedOpcodes[OP_VoiceMacroIn] = &Client::Handle_OP_VoiceMacroIn;
ConnectedOpcodes[OP_WearChange] = &Client::Handle_OP_WearChange;
ConnectedOpcodes[OP_WeaponEquip2] = &Client::Handle_OP_WeaponEquip2;
ConnectedOpcodes[OP_WeaponUnequip2] = &Client::Handle_OP_WeaponUnequip2;
ConnectedOpcodes[OP_WhoAllRequest] = &Client::Handle_OP_WhoAllRequest;
ConnectedOpcodes[OP_WorldUnknown001] = &Client::Handle_OP_Ignore;
ConnectedOpcodes[OP_XTargetAutoAddHaters] = &Client::Handle_OP_XTargetAutoAddHaters;
@ -13889,6 +13891,28 @@ void Client::Handle_OP_WearChange(const EQApplicationPacket *app)
return;
}
void Client::Handle_OP_WeaponEquip2(const EQApplicationPacket *app)
{
if (app->size != 8) {
std::cout << "Wrong size: OP_WeaponEquip2, size=" << app->size << ", expected " << 8 << std::endl;
return;
}
// We should probably save it server side, but for now this works
entity_list.QueueClients(this, app, false);
}
void Client::Handle_OP_WeaponUnequip2(const EQApplicationPacket *app)
{
if (app->size != 8) {
std::cout << "Wrong size: OP_WeaponUnequip2, size=" << app->size << ", expected " << 8 << std::endl;
return;
}
// We should probably save it server side, but for now this works
entity_list.QueueClients(this, app, false);
}
void Client::Handle_OP_WhoAllRequest(const EQApplicationPacket *app)
{
if (app->size != sizeof(Who_All_Struct)) {

View File

@ -288,6 +288,8 @@
void Handle_OP_VetClaimRequest(const EQApplicationPacket *app);
void Handle_OP_VoiceMacroIn(const EQApplicationPacket *app);
void Handle_OP_WearChange(const EQApplicationPacket *app);
void Handle_OP_WeaponEquip2(const EQApplicationPacket *app);
void Handle_OP_WeaponUnequip2(const EQApplicationPacket *app);
void Handle_OP_WhoAllRequest(const EQApplicationPacket *app);
void Handle_OP_XTargetAutoAddHaters(const EQApplicationPacket *app);
void Handle_OP_XTargetRequest(const EQApplicationPacket *app);