mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
In world with 3.1
This commit is contained in:
parent
5aad1e0169
commit
d3872fa572
12 changed files with 156 additions and 152 deletions
|
|
@ -85,10 +85,6 @@ bool Corpse::Create( uint32 guidlow, Player *owner)
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFloatValue( OBJECT_FIELD_SCALE_X, 1 );
|
SetFloatValue( OBJECT_FIELD_SCALE_X, 1 );
|
||||||
SetFloatValue( CORPSE_FIELD_POS_X, GetPositionX() );
|
|
||||||
SetFloatValue( CORPSE_FIELD_POS_Y, GetPositionY() );
|
|
||||||
SetFloatValue( CORPSE_FIELD_POS_Z, GetPositionZ() );
|
|
||||||
SetFloatValue( CORPSE_FIELD_FACING, GetOrientation() );
|
|
||||||
SetUInt64Value( CORPSE_FIELD_OWNER, owner->GetGUID() );
|
SetUInt64Value( CORPSE_FIELD_OWNER, owner->GetGUID() );
|
||||||
|
|
||||||
m_grid = MaNGOS::ComputeGridPair(GetPositionX(), GetPositionY());
|
m_grid = MaNGOS::ComputeGridPair(GetPositionX(), GetPositionY());
|
||||||
|
|
|
||||||
|
|
@ -120,27 +120,6 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMa
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFloatValue(GAMEOBJECT_POS_X, x);
|
|
||||||
SetFloatValue(GAMEOBJECT_POS_Y, y);
|
|
||||||
SetFloatValue(GAMEOBJECT_POS_Z, z);
|
|
||||||
SetFloatValue(GAMEOBJECT_FACING, ang); //this is not facing angle
|
|
||||||
|
|
||||||
int64 rotation = 0;
|
|
||||||
|
|
||||||
float f_rot1 = sin(ang / 2.0f);
|
|
||||||
int64 i_rot1 = f_rot1 / atan(pow(2.0f, -20.0f));
|
|
||||||
rotation |= (i_rot1 << 43 >> 43) & 0x00000000001FFFFF;
|
|
||||||
|
|
||||||
//float f_rot2 = sin(0.0f / 2.0f);
|
|
||||||
//int64 i_rot2 = f_rot2 / atan(pow(2.0f, -20.0f));
|
|
||||||
//rotation |= (((i_rot2 << 22) >> 32) >> 11) & 0x000003FFFFE00000;
|
|
||||||
|
|
||||||
//float f_rot3 = sin(0.0f / 2.0f);
|
|
||||||
//int64 i_rot3 = f_rot3 / atan(pow(2.0f, -21.0f));
|
|
||||||
//rotation |= (i_rot3 >> 42) & 0x7FFFFC0000000000;
|
|
||||||
|
|
||||||
SetUInt64Value(GAMEOBJECT_ROTATION, rotation);
|
|
||||||
|
|
||||||
SetFloatValue(GAMEOBJECT_PARENTROTATION+0, rotation0);
|
SetFloatValue(GAMEOBJECT_PARENTROTATION+0, rotation0);
|
||||||
SetFloatValue(GAMEOBJECT_PARENTROTATION+1, rotation1);
|
SetFloatValue(GAMEOBJECT_PARENTROTATION+1, rotation1);
|
||||||
SetFloatValue(GAMEOBJECT_PARENTROTATION+2, rotation2);
|
SetFloatValue(GAMEOBJECT_PARENTROTATION+2, rotation2);
|
||||||
|
|
@ -533,10 +512,10 @@ void GameObject::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask)
|
||||||
data.id = GetEntry();
|
data.id = GetEntry();
|
||||||
data.mapid = mapid;
|
data.mapid = mapid;
|
||||||
data.phaseMask = phaseMask;
|
data.phaseMask = phaseMask;
|
||||||
data.posX = GetFloatValue(GAMEOBJECT_POS_X);
|
data.posX = GetPositionX();
|
||||||
data.posY = GetFloatValue(GAMEOBJECT_POS_Y);
|
data.posY = GetPositionY();
|
||||||
data.posZ = GetFloatValue(GAMEOBJECT_POS_Z);
|
data.posZ = GetPositionZ();
|
||||||
data.orientation = GetFloatValue(GAMEOBJECT_FACING);
|
data.orientation = GetOrientation();
|
||||||
data.rotation0 = GetFloatValue(GAMEOBJECT_PARENTROTATION+0);
|
data.rotation0 = GetFloatValue(GAMEOBJECT_PARENTROTATION+0);
|
||||||
data.rotation1 = GetFloatValue(GAMEOBJECT_PARENTROTATION+1);
|
data.rotation1 = GetFloatValue(GAMEOBJECT_PARENTROTATION+1);
|
||||||
data.rotation2 = GetFloatValue(GAMEOBJECT_PARENTROTATION+2);
|
data.rotation2 = GetFloatValue(GAMEOBJECT_PARENTROTATION+2);
|
||||||
|
|
@ -554,10 +533,10 @@ void GameObject::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask)
|
||||||
<< mapid << ", "
|
<< mapid << ", "
|
||||||
<< (uint32)spawnMask << ", "
|
<< (uint32)spawnMask << ", "
|
||||||
<< (uint32)GetPhaseMask() << ","
|
<< (uint32)GetPhaseMask() << ","
|
||||||
<< GetFloatValue(GAMEOBJECT_POS_X) << ", "
|
<< GetPositionX() << ", "
|
||||||
<< GetFloatValue(GAMEOBJECT_POS_Y) << ", "
|
<< GetPositionY() << ", "
|
||||||
<< GetFloatValue(GAMEOBJECT_POS_Z) << ", "
|
<< GetPositionZ() << ", "
|
||||||
<< GetFloatValue(GAMEOBJECT_FACING) << ", "
|
<< GetOrientation() << ", "
|
||||||
<< GetFloatValue(GAMEOBJECT_PARENTROTATION) << ", "
|
<< GetFloatValue(GAMEOBJECT_PARENTROTATION) << ", "
|
||||||
<< GetFloatValue(GAMEOBJECT_PARENTROTATION+1) << ", "
|
<< GetFloatValue(GAMEOBJECT_PARENTROTATION+1) << ", "
|
||||||
<< GetFloatValue(GAMEOBJECT_PARENTROTATION+2) << ", "
|
<< GetFloatValue(GAMEOBJECT_PARENTROTATION+2) << ", "
|
||||||
|
|
|
||||||
|
|
@ -1046,7 +1046,6 @@ bool ChatHandler::HandleTurnObjectCommand(const char* args)
|
||||||
|
|
||||||
obj->Relocate(obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ(), o);
|
obj->Relocate(obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ(), o);
|
||||||
|
|
||||||
obj->SetFloatValue(GAMEOBJECT_FACING, o);
|
|
||||||
obj->SetFloatValue(GAMEOBJECT_PARENTROTATION+2, rot2);
|
obj->SetFloatValue(GAMEOBJECT_PARENTROTATION+2, rot2);
|
||||||
obj->SetFloatValue(GAMEOBJECT_PARENTROTATION+3, rot3);
|
obj->SetFloatValue(GAMEOBJECT_PARENTROTATION+3, rot3);
|
||||||
|
|
||||||
|
|
@ -1176,9 +1175,6 @@ bool ChatHandler::HandleMoveObjectCommand(const char* args)
|
||||||
map->Remove(obj,false);
|
map->Remove(obj,false);
|
||||||
|
|
||||||
obj->Relocate(chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), obj->GetOrientation());
|
obj->Relocate(chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), obj->GetOrientation());
|
||||||
obj->SetFloatValue(GAMEOBJECT_POS_X, chr->GetPositionX());
|
|
||||||
obj->SetFloatValue(GAMEOBJECT_POS_Y, chr->GetPositionY());
|
|
||||||
obj->SetFloatValue(GAMEOBJECT_POS_Z, chr->GetPositionZ());
|
|
||||||
|
|
||||||
map->Add(obj);
|
map->Add(obj);
|
||||||
}
|
}
|
||||||
|
|
@ -1202,9 +1198,6 @@ bool ChatHandler::HandleMoveObjectCommand(const char* args)
|
||||||
map->Remove(obj,false);
|
map->Remove(obj,false);
|
||||||
|
|
||||||
obj->Relocate(x, y, z, obj->GetOrientation());
|
obj->Relocate(x, y, z, obj->GetOrientation());
|
||||||
obj->SetFloatValue(GAMEOBJECT_POS_X, x);
|
|
||||||
obj->SetFloatValue(GAMEOBJECT_POS_Y, y);
|
|
||||||
obj->SetFloatValue(GAMEOBJECT_POS_Z, z);
|
|
||||||
|
|
||||||
map->Add(obj);
|
map->Add(obj);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) c
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8 updatetype = UPDATETYPE_CREATE_OBJECT;
|
uint8 updatetype = UPDATETYPE_CREATE_OBJECT;
|
||||||
uint8 flags = m_updateFlag;
|
uint16 flags = m_updateFlag;
|
||||||
uint32 flags2 = 0;
|
uint32 flags2 = 0;
|
||||||
|
|
||||||
/** lower flag1 **/
|
/** lower flag1 **/
|
||||||
|
|
@ -256,7 +256,7 @@ void Object::DestroyForPlayer(Player *target) const
|
||||||
target->GetSession()->SendPacket( &data );
|
target->GetSession()->SendPacket( &data );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2) const
|
void Object::_BuildMovementUpdate(ByteBuffer * data, uint16 flags, uint32 flags2) const
|
||||||
{
|
{
|
||||||
uint16 unk_flags = ((GetTypeId() == TYPEID_PLAYER) ? ((Player*)this)->m_movementInfo.unk1 : 0);
|
uint16 unk_flags = ((GetTypeId() == TYPEID_PLAYER) ? ((Player*)this)->m_movementInfo.unk1 : 0);
|
||||||
|
|
||||||
|
|
@ -264,7 +264,7 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2)
|
||||||
if(((Creature*)this)->isVehicle())
|
if(((Creature*)this)->isVehicle())
|
||||||
unk_flags |= 0x20; // always allow pitch
|
unk_flags |= 0x20; // always allow pitch
|
||||||
|
|
||||||
*data << (uint8)flags; // update flags
|
*data << (uint16)flags; // update flags
|
||||||
|
|
||||||
// 0x20
|
// 0x20
|
||||||
if (flags & UPDATEFLAG_LIVING)
|
if (flags & UPDATEFLAG_LIVING)
|
||||||
|
|
@ -300,31 +300,13 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2)
|
||||||
*data << uint32(flags2); // movement flags
|
*data << uint32(flags2); // movement flags
|
||||||
*data << uint16(unk_flags); // unknown 2.3.0
|
*data << uint16(unk_flags); // unknown 2.3.0
|
||||||
*data << uint32(getMSTime()); // time (in milliseconds)
|
*data << uint32(getMSTime()); // time (in milliseconds)
|
||||||
}
|
|
||||||
|
|
||||||
// 0x40
|
// position
|
||||||
if (flags & UPDATEFLAG_HAS_POSITION)
|
*data << ((WorldObject *)this)->GetPositionX();
|
||||||
{
|
*data << ((WorldObject *)this)->GetPositionY();
|
||||||
// 0x02
|
*data << ((WorldObject *)this)->GetPositionZ();
|
||||||
if(flags & UPDATEFLAG_TRANSPORT && ((GameObject*)this)->GetGoType() == GAMEOBJECT_TYPE_MO_TRANSPORT)
|
*data << ((WorldObject *)this)->GetOrientation();
|
||||||
{
|
|
||||||
*data << (float)0;
|
|
||||||
*data << (float)0;
|
|
||||||
*data << (float)0;
|
|
||||||
*data << ((WorldObject *)this)->GetOrientation();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*data << ((WorldObject *)this)->GetPositionX();
|
|
||||||
*data << ((WorldObject *)this)->GetPositionY();
|
|
||||||
*data << ((WorldObject *)this)->GetPositionZ();
|
|
||||||
*data << ((WorldObject *)this)->GetOrientation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 0x20
|
|
||||||
if(flags & UPDATEFLAG_LIVING)
|
|
||||||
{
|
|
||||||
// 0x00000200
|
// 0x00000200
|
||||||
if(flags2 & MOVEMENTFLAG_ONTRANSPORT)
|
if(flags2 & MOVEMENTFLAG_ONTRANSPORT)
|
||||||
{
|
{
|
||||||
|
|
@ -412,23 +394,23 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2)
|
||||||
|
|
||||||
FlightPathMovementGenerator *fmg = (FlightPathMovementGenerator*)(((Player*)this)->GetMotionMaster()->top());
|
FlightPathMovementGenerator *fmg = (FlightPathMovementGenerator*)(((Player*)this)->GetMotionMaster()->top());
|
||||||
|
|
||||||
uint32 flags3 = 0x00000300;
|
uint16 flags3 = 0x0000;
|
||||||
|
|
||||||
*data << uint32(flags3); // splines flag?
|
*data << uint16(flags3); // splines flag?
|
||||||
|
|
||||||
if(flags3 & 0x10000) // probably x,y,z coords there
|
if(flags3 & 0x80) // probably x,y,z coords there
|
||||||
{
|
{
|
||||||
*data << (float)0;
|
*data << (float)0;
|
||||||
*data << (float)0;
|
*data << (float)0;
|
||||||
*data << (float)0;
|
*data << (float)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(flags3 & 0x20000) // probably guid there
|
if(flags3 & 0x100) // probably guid there
|
||||||
{
|
{
|
||||||
*data << uint64(0);
|
*data << uint64(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(flags3 & 0x40000) // may be orientation
|
if(flags3 & 0x200) // may be orientation
|
||||||
{
|
{
|
||||||
*data << (float)0;
|
*data << (float)0;
|
||||||
}
|
}
|
||||||
|
|
@ -441,12 +423,20 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2)
|
||||||
uint32 inflighttime = uint32(path.GetPassedLength(fmg->GetCurrentNode(), x, y, z) * 32);
|
uint32 inflighttime = uint32(path.GetPassedLength(fmg->GetCurrentNode(), x, y, z) * 32);
|
||||||
uint32 traveltime = uint32(path.GetTotalLength() * 32);
|
uint32 traveltime = uint32(path.GetTotalLength() * 32);
|
||||||
|
|
||||||
|
*data << uint8(0); // added in 3.1
|
||||||
|
*data << uint8(0); // added in 3.1
|
||||||
|
|
||||||
*data << uint32(inflighttime); // passed move time?
|
*data << uint32(inflighttime); // passed move time?
|
||||||
*data << uint32(traveltime); // full move time?
|
*data << uint32(traveltime); // full move time?
|
||||||
*data << uint32(0); // ticks count?
|
*data << uint32(0); // ticks count?
|
||||||
|
|
||||||
uint32 poscount = uint32(path.Size());
|
*data << float(0); // added in 3.1
|
||||||
|
*data << float(0); // added in 3.1
|
||||||
|
*data << float(0); // added in 3.1
|
||||||
|
|
||||||
|
*data << uint32(0); // added in 3.1
|
||||||
|
|
||||||
|
uint32 poscount = uint32(path.Size());
|
||||||
*data << uint32(poscount); // points count
|
*data << uint32(poscount); // points count
|
||||||
|
|
||||||
for(uint32 i = 0; i < poscount; ++i)
|
for(uint32 i = 0; i < poscount; ++i)
|
||||||
|
|
@ -460,10 +450,10 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2)
|
||||||
|
|
||||||
/*for(uint32 i = 0; i < poscount; i++)
|
/*for(uint32 i = 0; i < poscount; i++)
|
||||||
{
|
{
|
||||||
// path points
|
// path points
|
||||||
*data << (float)0;
|
*data << (float)0;
|
||||||
*data << (float)0;
|
*data << (float)0;
|
||||||
*data << (float)0;
|
*data << (float)0;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
*data << path.GetNodes()[poscount-1].x;
|
*data << path.GetNodes()[poscount-1].x;
|
||||||
|
|
@ -472,8 +462,45 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2)
|
||||||
|
|
||||||
// target position (path end)
|
// target position (path end)
|
||||||
/**data << ((Unit*)this)->GetPositionX();
|
/**data << ((Unit*)this)->GetPositionX();
|
||||||
*data << ((Unit*)this)->GetPositionY();
|
*data << ((Unit*)this)->GetPositionY();
|
||||||
*data << ((Unit*)this)->GetPositionZ();*/
|
*data << ((Unit*)this)->GetPositionZ();*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(flags & UPDATEFLAG_UNK1)
|
||||||
|
{
|
||||||
|
*data << uint8(0); // PGUID
|
||||||
|
*data << float(0);
|
||||||
|
*data << float(0);
|
||||||
|
*data << float(0);
|
||||||
|
*data << float(0);
|
||||||
|
*data << float(0);
|
||||||
|
*data << float(0);
|
||||||
|
*data << float(0);
|
||||||
|
*data << float(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 0x40
|
||||||
|
if (flags & UPDATEFLAG_HAS_POSITION)
|
||||||
|
{
|
||||||
|
// 0x02
|
||||||
|
if(flags & UPDATEFLAG_TRANSPORT && ((GameObject*)this)->GetGoType() == GAMEOBJECT_TYPE_MO_TRANSPORT)
|
||||||
|
{
|
||||||
|
*data << (float)0;
|
||||||
|
*data << (float)0;
|
||||||
|
*data << (float)0;
|
||||||
|
*data << ((WorldObject *)this)->GetOrientation();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*data << ((WorldObject *)this)->GetPositionX();
|
||||||
|
*data << ((WorldObject *)this)->GetPositionY();
|
||||||
|
*data << ((WorldObject *)this)->GetPositionZ();
|
||||||
|
*data << ((WorldObject *)this)->GetOrientation();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -554,6 +581,12 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2)
|
||||||
*data << uint32(((Vehicle*)this)->GetVehicleId()); // vehicle id
|
*data << uint32(((Vehicle*)this)->GetVehicleId()); // vehicle id
|
||||||
*data << float(0); // facing adjustment
|
*data << float(0); // facing adjustment
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 0x200
|
||||||
|
if(flags & UPDATEFLAG_UNK2)
|
||||||
|
{
|
||||||
|
*data << uint64(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask *updateMask, Player *target) const
|
void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask *updateMask, Player *target) const
|
||||||
|
|
|
||||||
|
|
@ -310,13 +310,13 @@ class MANGOS_DLL_SPEC Object
|
||||||
virtual void _SetUpdateBits(UpdateMask *updateMask, Player *target) const;
|
virtual void _SetUpdateBits(UpdateMask *updateMask, Player *target) const;
|
||||||
|
|
||||||
virtual void _SetCreateBits(UpdateMask *updateMask, Player *target) const;
|
virtual void _SetCreateBits(UpdateMask *updateMask, Player *target) const;
|
||||||
void _BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2 ) const;
|
void _BuildMovementUpdate(ByteBuffer * data, uint16 flags, uint32 flags2 ) const;
|
||||||
void _BuildValuesUpdate(uint8 updatetype, ByteBuffer *data, UpdateMask *updateMask, Player *target ) const;
|
void _BuildValuesUpdate(uint8 updatetype, ByteBuffer *data, UpdateMask *updateMask, Player *target ) const;
|
||||||
|
|
||||||
uint16 m_objectType;
|
uint16 m_objectType;
|
||||||
|
|
||||||
uint8 m_objectTypeId;
|
uint8 m_objectTypeId;
|
||||||
uint8 m_updateFlag;
|
uint16 m_updateFlag;
|
||||||
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1215,12 +1215,34 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x4A2*/ { "CMSG_CHECK_LOGIN_CRITERIA", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x4A2*/ { "CMSG_CHECK_LOGIN_CRITERIA", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x4A3*/ { "SMSG_SERVER_BUCK_DATA_START", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x4A3*/ { "SMSG_SERVER_BUCK_DATA_START", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x4A4*/ { "CMSG_QUERY_VEHICLE_STATUS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x4A4*/ { "CMSG_QUERY_VEHICLE_STATUS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x4A5*/ { "SMSG_PET_GUIDS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x4A5*/ { "UMSG_UNKNOWN_1189", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x4A6*/ { "SMSG_CLIENTCACHE_VERSION", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x4A6*/ { "SMSG_UNKNOWN_1190", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x4A7*/ { "UMSG_UNKNOWN_1191", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x4A7*/ { "SMSG_UNKNOWN_1191", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x4A8*/ { "UMSG_UNKNOWN_1192", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x4A8*/ { "CMSG_UNKNOWN_1192", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x4A9*/ { "UMSG_UNKNOWN_1193", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x4A9*/ { "CMSG_EJECT_PASSENGER", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x4AA*/ { "UMSG_UNKNOWN_1194", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x4AA*/ { "SMSG_PET_GUIDS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x4AB*/ { "UMSG_UNKNOWN_1195", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x4AB*/ { "SMSG_CLIENTCACHE_VERSION", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x4AC*/ { "UMSG_UNKNOWN_1196", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x4AC*/ { "UMSG_UNKNOWN_1196", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4AD*/ { "UMSG_UNKNOWN_1197", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4AE*/ { "UMSG_UNKNOWN_1198", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4AF*/ { "UMSG_UNKNOWN_1199", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4B0*/ { "UMSG_UNKNOWN_1200", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4B1*/ { "UMSG_UNKNOWN_1201", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4B2*/ { "CMSG_UNKNOWN_1202", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4B3*/ { "SMSG_UNKNOWN_1203", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
/*0x4B4*/ { "CMSG_LFG_SET_ROLES", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4B5*/ { "UMSG_UNKNOWN_1205", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4B6*/ { "CMSG_UNKNOWN_1206", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4B7*/ { "SMSG_UNKNOWN_1207", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
/*0x4B8*/ { "SMSG_UNKNOWN_1208", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
/*0x4B9*/ { "CMSG_UNKNOWN_1209", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4BA*/ { "CMSG_UNKNOWN_1210", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4BB*/ { "SMSG_UNKNOWN_1211", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
/*0x4BC*/ { "SMSG_UNKNOWN_1212", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
/*0x4BD*/ { "CMSG_UNKNOWN_1213", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4BE*/ { "CMSG_UNKNOWN_1214", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4BF*/ { "UMSG_UNKNOWN_1215", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4C0*/ { "UMSG_UNKNOWN_1216", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4C1*/ { "UMSG_UNKNOWN_1217", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
/*0x4C2*/ { "UMSG_UNKNOWN_1218", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1238,7 +1238,7 @@ enum Opcodes
|
||||||
UMSG_UNKNOWN_1201 = 0x4B1, // not found
|
UMSG_UNKNOWN_1201 = 0x4B1, // not found
|
||||||
CMSG_UNKNOWN_1202 = 0x4B2, // CMSG, uint32
|
CMSG_UNKNOWN_1202 = 0x4B2, // CMSG, uint32
|
||||||
SMSG_UNKNOWN_1203 = 0x4B3, // SMSG, string+float
|
SMSG_UNKNOWN_1203 = 0x4B3, // SMSG, string+float
|
||||||
CMSG_UNKNOWN_1204 = 0x4B4, // CMSG, empty, lua: SetLFGRoles
|
CMSG_LFG_SET_ROLES = 0x4B4, // CMSG, empty, lua: SetLFGRoles
|
||||||
UMSG_UNKNOWN_1205 = 0x4B5, // not found
|
UMSG_UNKNOWN_1205 = 0x4B5, // not found
|
||||||
CMSG_UNKNOWN_1206 = 0x4B6, // CMSG, uint64, lua: CalendarContextEventSignUp
|
CMSG_UNKNOWN_1206 = 0x4B6, // CMSG, uint64, lua: CalendarContextEventSignUp
|
||||||
SMSG_UNKNOWN_1207 = 0x4B7, // SMSG, calendar related
|
SMSG_UNKNOWN_1207 = 0x4B7, // SMSG, calendar related
|
||||||
|
|
|
||||||
|
|
@ -1419,7 +1419,7 @@ void Player::BuildEnumData( QueryResult * result, WorldPacket * p_data )
|
||||||
|
|
||||||
for (uint8 slot = 0; slot < EQUIPMENT_SLOT_END; slot++)
|
for (uint8 slot = 0; slot < EQUIPMENT_SLOT_END; slot++)
|
||||||
{
|
{
|
||||||
uint32 visualbase = PLAYER_VISIBLE_ITEM_1_0 + (slot * MAX_VISIBLE_ITEM_OFFSET);
|
uint32 visualbase = PLAYER_VISIBLE_ITEM_1_ENTRYID + (slot * 2);
|
||||||
uint32 item_id = GetUInt32Value(visualbase);
|
uint32 item_id = GetUInt32Value(visualbase);
|
||||||
const ItemPrototype * proto = objmgr.GetItemPrototype(item_id);
|
const ItemPrototype * proto = objmgr.GetItemPrototype(item_id);
|
||||||
SpellItemEnchantmentEntry const *enchant = NULL;
|
SpellItemEnchantmentEntry const *enchant = NULL;
|
||||||
|
|
@ -3452,23 +3452,12 @@ void Player::InitVisibleBits()
|
||||||
// Players visible items are not inventory stuff
|
// Players visible items are not inventory stuff
|
||||||
for(uint16 i = 0; i < EQUIPMENT_SLOT_END; ++i)
|
for(uint16 i = 0; i < EQUIPMENT_SLOT_END; ++i)
|
||||||
{
|
{
|
||||||
uint32 offset = i * MAX_VISIBLE_ITEM_OFFSET;
|
uint32 offset = i * 2;
|
||||||
|
|
||||||
// item creator
|
|
||||||
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_CREATOR + 0 + offset);
|
|
||||||
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_CREATOR + 1 + offset);
|
|
||||||
|
|
||||||
// item entry
|
// item entry
|
||||||
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_0 + 0 + offset);
|
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_ENTRYID + offset);
|
||||||
|
// enchant
|
||||||
// item enchantments
|
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_PERMANENTENCHANTMENT + offset);
|
||||||
for(uint8 j = 0; j < MAX_ENCHANTMENT_SLOT; ++j)
|
|
||||||
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_0 + 1 + j + offset);
|
|
||||||
|
|
||||||
// random properties
|
|
||||||
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_PROPERTIES + offset);
|
|
||||||
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_SEED + offset);
|
|
||||||
updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_PAD + offset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateVisualBits.SetBit(PLAYER_CHOSEN_TITLE);
|
updateVisualBits.SetBit(PLAYER_CHOSEN_TITLE);
|
||||||
|
|
@ -10626,30 +10615,13 @@ void Player::SetVisibleItemSlot(uint8 slot, Item *pItem)
|
||||||
|
|
||||||
if(pItem)
|
if(pItem)
|
||||||
{
|
{
|
||||||
SetUInt64Value(PLAYER_VISIBLE_ITEM_1_CREATOR + (slot * MAX_VISIBLE_ITEM_OFFSET), pItem->GetUInt64Value(ITEM_FIELD_CREATOR));
|
SetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + (slot * 2), pItem->GetEntry());
|
||||||
|
SetUInt32Value(PLAYER_VISIBLE_ITEM_1_PERMANENTENCHANTMENT + (slot * 2), pItem->GetEnchantmentId(EnchantmentSlot(0)));
|
||||||
int VisibleBase = PLAYER_VISIBLE_ITEM_1_0 + (slot * MAX_VISIBLE_ITEM_OFFSET);
|
|
||||||
SetUInt32Value(VisibleBase + 0, pItem->GetEntry());
|
|
||||||
|
|
||||||
for(int i = 0; i < MAX_INSPECTED_ENCHANTMENT_SLOT; ++i)
|
|
||||||
SetUInt32Value(VisibleBase + 1 + i, pItem->GetEnchantmentId(EnchantmentSlot(i)));
|
|
||||||
|
|
||||||
// Use SetInt16Value to prevent set high part to FFFF for negative value
|
|
||||||
SetInt16Value( PLAYER_VISIBLE_ITEM_1_PROPERTIES + (slot * MAX_VISIBLE_ITEM_OFFSET), 0, pItem->GetItemRandomPropertyId());
|
|
||||||
SetUInt32Value(PLAYER_VISIBLE_ITEM_1_PROPERTIES + 1 + (slot * MAX_VISIBLE_ITEM_OFFSET), pItem->GetItemSuffixFactor());
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetUInt64Value(PLAYER_VISIBLE_ITEM_1_CREATOR + (slot * MAX_VISIBLE_ITEM_OFFSET), 0);
|
SetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + (slot * 2), 0);
|
||||||
|
SetUInt32Value(PLAYER_VISIBLE_ITEM_1_PERMANENTENCHANTMENT + (slot * 2), 0);
|
||||||
int VisibleBase = PLAYER_VISIBLE_ITEM_1_0 + (slot * MAX_VISIBLE_ITEM_OFFSET);
|
|
||||||
SetUInt32Value(VisibleBase + 0, 0);
|
|
||||||
|
|
||||||
for(int i = 0; i < MAX_INSPECTED_ENCHANTMENT_SLOT; ++i)
|
|
||||||
SetUInt32Value(VisibleBase + 1 + i, 0);
|
|
||||||
|
|
||||||
SetUInt32Value(PLAYER_VISIBLE_ITEM_1_PROPERTIES + 0 + (slot * MAX_VISIBLE_ITEM_OFFSET), 0);
|
|
||||||
SetUInt32Value(PLAYER_VISIBLE_ITEM_1_PROPERTIES + 1 + (slot * MAX_VISIBLE_ITEM_OFFSET), 0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -12133,10 +12105,9 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
|
||||||
} /*for*/
|
} /*for*/
|
||||||
|
|
||||||
// visualize enchantment at player and equipped items
|
// visualize enchantment at player and equipped items
|
||||||
if(slot < MAX_INSPECTED_ENCHANTMENT_SLOT)
|
if(slot == PERM_ENCHANTMENT_SLOT)
|
||||||
{
|
{
|
||||||
int VisibleBase = PLAYER_VISIBLE_ITEM_1_0 + (item->GetSlot() * MAX_VISIBLE_ITEM_OFFSET);
|
SetUInt32Value(PLAYER_VISIBLE_ITEM_1_PERMANENTENCHANTMENT + (item->GetSlot() * 2), apply ? item->GetEnchantmentId(slot) : 0);
|
||||||
SetUInt32Value(VisibleBase + 1 + slot, apply? item->GetEnchantmentId(slot) : 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(apply_dur)
|
if(apply_dur)
|
||||||
|
|
|
||||||
|
|
@ -33,15 +33,17 @@ enum OBJECT_UPDATE_TYPE
|
||||||
|
|
||||||
enum OBJECT_UPDATE_FLAGS
|
enum OBJECT_UPDATE_FLAGS
|
||||||
{
|
{
|
||||||
UPDATEFLAG_NONE = 0x00,
|
UPDATEFLAG_NONE = 0x0000,
|
||||||
UPDATEFLAG_SELF = 0x01,
|
UPDATEFLAG_SELF = 0x0001,
|
||||||
UPDATEFLAG_TRANSPORT = 0x02,
|
UPDATEFLAG_TRANSPORT = 0x0002,
|
||||||
UPDATEFLAG_HAS_TARGET = 0x04,
|
UPDATEFLAG_HAS_TARGET = 0x0004,
|
||||||
UPDATEFLAG_LOWGUID = 0x08,
|
UPDATEFLAG_LOWGUID = 0x0008,
|
||||||
UPDATEFLAG_HIGHGUID = 0x10,
|
UPDATEFLAG_HIGHGUID = 0x0010,
|
||||||
UPDATEFLAG_LIVING = 0x20,
|
UPDATEFLAG_LIVING = 0x0020,
|
||||||
UPDATEFLAG_HAS_POSITION = 0x40,
|
UPDATEFLAG_HAS_POSITION = 0x0040,
|
||||||
UPDATEFLAG_VEHICLE = 0x80
|
UPDATEFLAG_VEHICLE = 0x0080,
|
||||||
|
UPDATEFLAG_UNK1 = 0x0100,
|
||||||
|
UPDATEFLAG_UNK2 = 0x0200
|
||||||
};
|
};
|
||||||
|
|
||||||
class UpdateData
|
class UpdateData
|
||||||
|
|
|
||||||
|
|
@ -503,13 +503,13 @@ void LoadDBCStores(const std::string& dataPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check loaded DBC files proper version
|
// Check loaded DBC files proper version
|
||||||
if( !sSpellStore.LookupEntry(62735) || // last added spell in 3.0.9
|
if( !sSpellStore.LookupEntry(100034) || // last added spell in 3.1.0
|
||||||
!sMapStore.LookupEntry(624) || // last map added in 3.0.8a/3.0.9
|
!sMapStore.LookupEntry(624) || // last map added in 3.1.0
|
||||||
!sGemPropertiesStore.LookupEntry(1557) || // last gem property added in 3.0.8a/3.0.9
|
!sGemPropertiesStore.LookupEntry(1557) || // last gem property added in 3.1.0
|
||||||
!sItemExtendedCostStore.LookupEntry(2589) || // last item extended cost added in 3.0.8a/3.0.9
|
!sItemExtendedCostStore.LookupEntry(2595) || // last item extended cost added in 3.1.0
|
||||||
!sCharTitlesStore.LookupEntry(144) || // last char title added in 3.0.8a/3.0.9
|
!sCharTitlesStore.LookupEntry(154) || // last char title added in 3.1.0
|
||||||
!sAreaStore.LookupEntry(2769) || // last area (areaflag) added in 3.0.8a/3.0.9
|
!sAreaStore.LookupEntry(2833) || // last area (areaflag) added in 3.1.0
|
||||||
!sItemStore.LookupEntry(45037) ) // last client known item added in 3.0.9
|
!sItemStore.LookupEntry(45704) ) // last client known item added in 3.1.0
|
||||||
{
|
{
|
||||||
sLog.outError("\nYou have _outdated_ DBC files. Please extract correct versions from current using client.");
|
sLog.outError("\nYou have _outdated_ DBC files. Please extract correct versions from current using client.");
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
|
||||||
|
|
@ -555,6 +555,7 @@ struct BattlemasterListEntry
|
||||||
char* name[16]; // 16-31
|
char* name[16]; // 16-31
|
||||||
// 32 string flag, unused
|
// 32 string flag, unused
|
||||||
// 33 unused
|
// 33 unused
|
||||||
|
//uint32 unk; // 34 new 3.1
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_OUTFIT_ITEMS 24
|
#define MAX_OUTFIT_ITEMS 24
|
||||||
|
|
@ -1086,6 +1087,7 @@ struct SoundEntriesEntry
|
||||||
// 26 m_minDistance
|
// 26 m_minDistance
|
||||||
// 27 m_distanceCutoff
|
// 27 m_distanceCutoff
|
||||||
// 28 m_EAXDef
|
// 28 m_EAXDef
|
||||||
|
// 29 new in 3.1
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SpellEntry
|
struct SpellEntry
|
||||||
|
|
@ -1197,6 +1199,7 @@ struct SpellEntry
|
||||||
uint32 SchoolMask; // 228 m_schoolMask
|
uint32 SchoolMask; // 228 m_schoolMask
|
||||||
uint32 runeCostID; // 229 m_runeCostID
|
uint32 runeCostID; // 229 m_runeCostID
|
||||||
//uint32 spellMissileID; // 230 m_spellMissileID not used
|
//uint32 spellMissileID; // 230 m_spellMissileID not used
|
||||||
|
//uint32 PowerDisplayId; // 231 PowerDisplay.dbc, new in 3.1
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// prevent creating custom entries (copy data from original in fact)
|
// prevent creating custom entries (copy data from original in fact)
|
||||||
|
|
@ -1300,6 +1303,7 @@ struct SpellItemEnchantmentEntry
|
||||||
uint32 EnchantmentCondition; // 34 m_condition_id
|
uint32 EnchantmentCondition; // 34 m_condition_id
|
||||||
//uint32 requiredSkill; // 35 m_requiredSkillID
|
//uint32 requiredSkill; // 35 m_requiredSkillID
|
||||||
//uint32 requiredSkillValue; // 36 m_requiredSkillRank
|
//uint32 requiredSkillValue; // 36 m_requiredSkillRank
|
||||||
|
// 37 new in 3.1
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SpellItemEnchantmentConditionEntry
|
struct SpellItemEnchantmentConditionEntry
|
||||||
|
|
@ -1417,8 +1421,8 @@ struct VehicleEntry
|
||||||
float m_cameraFadeDistScalarMin; // 15
|
float m_cameraFadeDistScalarMin; // 15
|
||||||
float m_cameraFadeDistScalarMax; // 16
|
float m_cameraFadeDistScalarMax; // 16
|
||||||
float m_cameraPitchOffset; // 17
|
float m_cameraPitchOffset; // 17
|
||||||
int m_powerType[3]; // 18-20
|
//int m_powerType[3]; // 18-20 removed in 3.1
|
||||||
int m_powerToken[3]; // 21-23
|
//int m_powerToken[3]; // 21-23 removed in 3.1
|
||||||
float m_facingLimitRight; // 24
|
float m_facingLimitRight; // 24
|
||||||
float m_facingLimitLeft; // 25
|
float m_facingLimitLeft; // 25
|
||||||
float m_msslTrgtTurnLingering; // 26
|
float m_msslTrgtTurnLingering; // 26
|
||||||
|
|
@ -1436,6 +1440,9 @@ struct VehicleEntry
|
||||||
uint32 m_uiLocomotionType; // 40
|
uint32 m_uiLocomotionType; // 40
|
||||||
float m_msslTrgtImpactTexRadius; // 41
|
float m_msslTrgtImpactTexRadius; // 41
|
||||||
uint32 m_uiSeatIndicatorType; // 42
|
uint32 m_uiSeatIndicatorType; // 42
|
||||||
|
// 37, new in 3.1
|
||||||
|
// 38, new in 3.1
|
||||||
|
// 39, new in 3.1
|
||||||
};
|
};
|
||||||
|
|
||||||
struct VehicleSeatEntry
|
struct VehicleSeatEntry
|
||||||
|
|
@ -1486,6 +1493,7 @@ struct VehicleSeatEntry
|
||||||
uint32 m_exitUISoundID; // 43
|
uint32 m_exitUISoundID; // 43
|
||||||
int32 m_uiSkin; // 44
|
int32 m_uiSkin; // 44
|
||||||
uint32 m_flagsB; // 45
|
uint32 m_flagsB; // 45
|
||||||
|
// 46-57 added in 3.1, floats mostly
|
||||||
};
|
};
|
||||||
|
|
||||||
struct WorldMapAreaEntry
|
struct WorldMapAreaEntry
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ const char AreaTriggerEntryfmt[]="niffffffff";
|
||||||
const char AuctionHouseEntryfmt[]="niiixxxxxxxxxxxxxxxxx";
|
const char AuctionHouseEntryfmt[]="niiixxxxxxxxxxxxxxxxx";
|
||||||
const char BankBagSlotPricesEntryfmt[]="ni";
|
const char BankBagSlotPricesEntryfmt[]="ni";
|
||||||
const char BarberShopStyleEntryfmt[]="nixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiii";
|
const char BarberShopStyleEntryfmt[]="nixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiii";
|
||||||
const char BattlemasterListEntryfmt[]="niiiiiiiiiiiixxxssssssssssssssssxx";
|
const char BattlemasterListEntryfmt[]="niiiiiiiiiiiixxxssssssssssssssssxxx";
|
||||||
const char CharStartOutfitEntryfmt[]="diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
const char CharStartOutfitEntryfmt[]="diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||||
const char CharTitlesEntryfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi";
|
const char CharTitlesEntryfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi";
|
||||||
const char ChatChannelsEntryfmt[]="iixssssssssssssssssxxxxxxxxxxxxxxxxxx";
|
const char ChatChannelsEntryfmt[]="iixssssssssssssssssxxxxxxxxxxxxxxxxxx";
|
||||||
|
|
@ -70,12 +70,12 @@ const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiii";
|
||||||
const char ScalingStatValuesfmt[]="iniiiiiiiiiiiiiiiii";
|
const char ScalingStatValuesfmt[]="iniiiiiiiiiiiiiiiii";
|
||||||
const char SkillLinefmt[]="nixssssssssssssssssxxxxxxxxxxxxxxxxxxixxxxxxxxxxxxxxxxxx";
|
const char SkillLinefmt[]="nixssssssssssssssssxxxxxxxxxxxxxxxxxxixxxxxxxxxxxxxxxxxx";
|
||||||
const char SkillLineAbilityfmt[]="niiiixxiiiiixx";
|
const char SkillLineAbilityfmt[]="niiiixxiiiiixx";
|
||||||
const char SoundEntriesfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
const char SoundEntriesfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||||
const char SpellCastTimefmt[]="nixx";
|
const char SpellCastTimefmt[]="nixx";
|
||||||
const char SpellDurationfmt[]="niii";
|
const char SpellDurationfmt[]="niii";
|
||||||
const char SpellEntryfmt[]="niiiiiiiiixiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifxiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffffffiiiiiiiiiiiiiiiiiiiiifffiiiiiiiiiiiiiiifffiiiiiiiiiiiiixssssssssssssssssxssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiiiiiiiiiiixfffxxxiiiiix";
|
const char SpellEntryfmt[]="niiiiiiiiixiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifxiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffffffiiiiiiiiiiiiiiiiiiiiifffiiiiiiiiiiiiiiifffiiiiiiiiiiiiixssssssssssssssssxssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiiiiiiiiiiixfffxxxiiiiixx";
|
||||||
const char SpellFocusObjectfmt[]="nxxxxxxxxxxxxxxxxx";
|
const char SpellFocusObjectfmt[]="nxxxxxxxxxxxxxxxxx";
|
||||||
const char SpellItemEnchantmentfmt[]="nxiiiiiixxxiiissssssssssssssssxiiiixx";
|
const char SpellItemEnchantmentfmt[]="nxiiiiiixxxiiissssssssssssssssxiiiixxx";
|
||||||
const char SpellItemEnchantmentConditionfmt[]="nbbbbbxxxxxbbbbbbbbbbiiiiiXXXXX";
|
const char SpellItemEnchantmentConditionfmt[]="nbbbbbxxxxxbbbbbbbbbbiiiiiXXXXX";
|
||||||
const char SpellRadiusfmt[]="nfxf";
|
const char SpellRadiusfmt[]="nfxf";
|
||||||
const char SpellRangefmt[]="nfxfxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
const char SpellRangefmt[]="nfxfxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||||
|
|
@ -89,8 +89,8 @@ const char TaxiNodesEntryfmt[]="nifffxxxxxxxxxxxxxxxxxii";
|
||||||
const char TaxiPathEntryfmt[]="niii";
|
const char TaxiPathEntryfmt[]="niii";
|
||||||
const char TaxiPathNodeEntryfmt[]="diiifffiixx";
|
const char TaxiPathNodeEntryfmt[]="diiifffiixx";
|
||||||
const char TotemCategoryEntryfmt[]="nxxxxxxxxxxxxxxxxxii";
|
const char TotemCategoryEntryfmt[]="nxxxxxxxxxxxxxxxxxii";
|
||||||
const char VehicleEntryfmt[]="niffffiiiiiiiiffffiiiiiifffffffffffssssfifi";
|
const char VehicleEntryfmt[]="niffffiiiiiiiifffffffffffffffssssfifixxx";
|
||||||
const char VehicleSeatEntryfmt[]="niiffffffffffiiiiiifffffffiiifffiiiiiiiffiiiii";
|
const char VehicleSeatEntryfmt[]="niiffffffffffiiiiiifffffffiiifffiiiiiiiffiiiiixxxxxxxxxxxx";
|
||||||
const char WorldMapAreaEntryfmt[]="xinxffffix";
|
const char WorldMapAreaEntryfmt[]="xinxffffix";
|
||||||
const char WorldSafeLocsEntryfmt[]="nifffxxxxxxxxxxxxxxxxx";
|
const char WorldSafeLocsEntryfmt[]="nifffxxxxxxxxxxxxxxxxx";
|
||||||
const char WorldMapOverlayEntryfmt[]="nxixxxxxxxxxxxxxx";
|
const char WorldMapOverlayEntryfmt[]="nxixxxxxxxxxxxxxx";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue