* added opcode handler for initial spells

* corrected opcode output together with hidefreqopcodes conf option (plz test!)
This commit is contained in:
False.Genesis 2007-02-08 23:55:53 +00:00
parent f9a8031e4f
commit 4c86eab673
3 changed files with 23 additions and 6 deletions

View File

@ -93,7 +93,7 @@ void WorldSession::_HandleUpdateObjectOpcode(WorldPacket& recvPacket)
recvPacket >> objtypeid >> flags;
logdebug("Create Object type %u with guid "I64FMT,objtypeid,uguid);
this->_MovementUpdate(objtypeid, uguid, recvPacket);
//this->_MovementUpdate(objtypeid, uguid, recvPacket); // i think thats the wrong place for this [FG]
// (TODO) and then: Add object to objmgr
}
@ -105,7 +105,7 @@ void WorldSession::_HandleUpdateObjectOpcode(WorldPacket& recvPacket)
{
uguid = recvPacket.GetPackedGuid(); // not 100% sure if this is correct
logdebug("GUID "I64FMT" out of range",uguid);
// TODO: delete object from known objects list
objmgr.RemoveObject(uguid);
}
break;

View File

@ -121,12 +121,12 @@ void WorldSession::Update(void)
hideOpcode = true;
}
if( ( (known && GetInstance()->GetConf()->showopcodes==1)
if( (known && GetInstance()->GetConf()->showopcodes==1)
|| ((!known) && GetInstance()->GetConf()->showopcodes==2)
|| (GetInstance()->GetConf()->showopcodes==3) )
&& (!GetInstance()->GetConf()->hidefreqopcodes || GetInstance()->GetConf()->hidefreqopcodes && !hideOpcode))
{
logcustom(1,YELLOW,">> Opcode %u [%s] (%s)", packet->GetOpcode(), LookupName(packet->GetOpcode(),g_worldOpcodeNames), known ? "Known" : "UNKNOWN");
if(!(GetInstance()->GetConf()->hidefreqopcodes && hideOpcode))
logcustom(1,YELLOW,">> Opcode %u [%s] (%s)", packet->GetOpcode(), LookupName(packet->GetOpcode(),g_worldOpcodeNames), known ? "Known" : "UNKNOWN");
}
delete packet;
}
@ -174,6 +174,7 @@ OpcodeHandler *WorldSession::_GetOpcodeHandlerTable() const
{SMSG_CAST_RESULT, &WorldSession::_HandleCastResultOpcode},
{SMSG_ITEM_QUERY_SINGLE_RESPONSE, &WorldSession::_HandleItemQuerySingleResponseOpcode},
{SMSG_DESTROY_OBJECT, &WorldSession::_HandleDestroyObjectOpcode},
{SMSG_INITIAL_SPELLS, &WorldSession::_HandleInitialSpellsOpcode},
// table termination
{ 0, NULL }
@ -598,3 +599,18 @@ void WorldSession::_HandleCastResultOpcode(WorldPacket& recvPacket)
{
// _playerSettings->HandleCastResultOpcode(recvPacket);
}
void WorldSession::_HandleInitialSpellsOpcode(WorldPacket& recvPacket)
{
uint8 unk;
uint16 spellid,spellslot,count;
recvPacket >> unk >> count;
logdebug("Got initial spells list, %u spells.",count);
for(uint16 i = 0; i < count; i++)
{
recvPacket >> spellid >> spellslot;
logdebug("Initial Spell: id=%u slot=%u",spellid,spellslot);
// these data need to be added to MyCharacter later
}
}

View File

@ -90,7 +90,8 @@ private:
void _HandleUpdateObjectOpcode(WorldPacket& recvPacket);
void _HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket);
void _HandleDestroyObjectOpcode(WorldPacket& recvPacket);
void _HandleInitialSpellsOpcode(WorldPacket& recvPacket);
void _MovementUpdate(uint8 objtypeid, uint64 guid, WorldPacket& recvPacket); // Helper for _HandleUpdateObjectOpcode
PseuInstance *_instance;