fix(core): Fixes packet issues with hair/beard (#669)
This commit is contained in:
parent
ebac984543
commit
f78a226321
4 changed files with 56 additions and 37 deletions
|
|
@ -2975,6 +2975,20 @@ namespace Server
|
|||
sendFacialHair = true;
|
||||
}
|
||||
|
||||
var hairSerial = HairInfo.FakeSerial(Serial);
|
||||
var hairLength = removeHair
|
||||
? OutgoingVirtualHairPackets.RemovePacketLength
|
||||
: OutgoingVirtualHairPackets.EquipUpdatePacketLength;
|
||||
|
||||
Span<byte> hairPacket = stackalloc byte[hairLength].InitializePacket();
|
||||
|
||||
var facialHairSerial = FacialHairInfo.FakeSerial(Serial);
|
||||
var facialHairLength = removeFacialHair
|
||||
? OutgoingVirtualHairPackets.RemovePacketLength
|
||||
: OutgoingVirtualHairPackets.EquipUpdatePacketLength;
|
||||
|
||||
Span<byte> facialhairPacket = stackalloc byte[facialHairLength].InitializePacket();
|
||||
|
||||
const int cacheLength = OutgoingMobilePackets.MobileMovingPacketCacheByteLength;
|
||||
const int width = OutgoingMobilePackets.MobileMovingPacketLength;
|
||||
const int height = OutgoingMobilePackets.MobileMovingPacketCacheHeight;
|
||||
|
|
@ -3060,24 +3074,41 @@ namespace Server
|
|||
{
|
||||
if (removeHair)
|
||||
{
|
||||
ourState.SendRemoveHairPacket(HairInfo.FakeSerial(Serial));
|
||||
OutgoingVirtualHairPackets.CreateRemoveHairPacket(hairPacket, hairSerial);
|
||||
}
|
||||
else
|
||||
{
|
||||
ourState.SendHairEquipUpdatePacket(this, HairInfo.FakeSerial(Serial), Layer.Hair);
|
||||
OutgoingVirtualHairPackets.CreateHairEquipUpdatePacket(
|
||||
hairPacket,
|
||||
this,
|
||||
hairSerial,
|
||||
HairItemID,
|
||||
HairHue,
|
||||
Layer.Hair
|
||||
);
|
||||
}
|
||||
|
||||
ourState.Send(hairPacket);
|
||||
}
|
||||
|
||||
if (sendFacialHair)
|
||||
{
|
||||
if (removeFacialHair)
|
||||
{
|
||||
ourState.SendRemoveHairPacket(FacialHairInfo.FakeSerial(Serial));
|
||||
OutgoingVirtualHairPackets.CreateRemoveHairPacket(facialhairPacket, facialHairSerial);
|
||||
}
|
||||
else
|
||||
{
|
||||
ourState.SendHairEquipUpdatePacket(this, FacialHairInfo.FakeSerial(Serial), Layer.FacialHair);
|
||||
OutgoingVirtualHairPackets.CreateHairEquipUpdatePacket(
|
||||
facialhairPacket,
|
||||
this,
|
||||
facialHairSerial,
|
||||
FacialHairItemID,
|
||||
FacialHairHue,
|
||||
Layer.FacialHair
|
||||
);
|
||||
}
|
||||
ourState.Send(facialhairPacket);
|
||||
}
|
||||
|
||||
if (sendOPLUpdate)
|
||||
|
|
@ -3113,18 +3144,6 @@ namespace Server
|
|||
Span<byte> removeEntity = stackalloc byte[OutgoingEntityPackets.RemoveEntityLength].InitializePacket();
|
||||
Span<byte> hitsPacket = stackalloc byte[OutgoingMobilePackets.MobileAttributePacketLength].InitializePacket();
|
||||
|
||||
var hairLength = removeHair
|
||||
? OutgoingVirtualHairPackets.RemovePacketLength
|
||||
: OutgoingVirtualHairPackets.EquipUpdatePacketLength;
|
||||
|
||||
Span<byte> hairPacket = stackalloc byte[hairLength].InitializePacket();
|
||||
|
||||
var facialHairLength = removeFacialHair
|
||||
? OutgoingVirtualHairPackets.RemovePacketLength
|
||||
: OutgoingVirtualHairPackets.EquipUpdatePacketLength;
|
||||
|
||||
Span<byte> facialhairPacket = stackalloc byte[facialHairLength].InitializePacket();
|
||||
|
||||
foreach (var state in eable)
|
||||
{
|
||||
var beholder = state.Mobile;
|
||||
|
|
@ -3192,7 +3211,6 @@ namespace Server
|
|||
|
||||
if (sendHair)
|
||||
{
|
||||
var hairSerial = HairInfo.FakeSerial(Serial);
|
||||
if (removeHair)
|
||||
{
|
||||
OutgoingVirtualHairPackets.CreateRemoveHairPacket(hairPacket, hairSerial);
|
||||
|
|
@ -3203,6 +3221,8 @@ namespace Server
|
|||
hairPacket,
|
||||
this,
|
||||
hairSerial,
|
||||
HairItemID,
|
||||
HairHue,
|
||||
Layer.Hair
|
||||
);
|
||||
}
|
||||
|
|
@ -3212,17 +3232,18 @@ namespace Server
|
|||
|
||||
if (sendFacialHair)
|
||||
{
|
||||
var hairSerial = HairInfo.FakeSerial(Serial);
|
||||
if (removeFacialHair)
|
||||
{
|
||||
OutgoingVirtualHairPackets.CreateRemoveHairPacket(facialhairPacket, hairSerial);
|
||||
OutgoingVirtualHairPackets.CreateRemoveHairPacket(facialhairPacket, facialHairSerial);
|
||||
}
|
||||
else
|
||||
{
|
||||
OutgoingVirtualHairPackets.CreateHairEquipUpdatePacket(
|
||||
facialhairPacket,
|
||||
this,
|
||||
hairSerial,
|
||||
facialHairSerial,
|
||||
FacialHairItemID,
|
||||
FacialHairHue,
|
||||
Layer.FacialHair
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue