This commit is contained in:
Filip Maj 2022-01-19 22:11:25 -05:00
parent 9a47f47698
commit 533777fb3a
3 changed files with 40 additions and 30 deletions

View File

@ -1182,6 +1182,35 @@ namespace Meteor.Map.Actors
return targetFind.GetTargets(); return targetFind.GetTargets();
} }
public void GraphicChange(uint slot, uint graphicId)
{
appearanceIds[slot] = graphicId;
}
public void GraphicChange(uint slot, uint weapId, uint equipId, uint variantId, uint colorId)
{
uint mixedVariantId;
if (weapId == 0)
mixedVariantId = ((variantId & 0x1F) << 5) | colorId;
else
mixedVariantId = variantId;
uint graphicId =
(weapId & 0x3FF) << 20 |
(equipId & 0x3FF) << 10 |
(mixedVariantId & 0x3FF);
appearanceIds[slot] = graphicId;
}
public void SendAppearance()
{
zone.BroadcastPacketAroundActor(this, CreateAppearancePacket());
}
#region Inventory #region Inventory
public void SendItemPackage(Player player, uint id) public void SendItemPackage(Player player, uint id)
{ {

View File

@ -978,29 +978,6 @@ namespace Meteor.Map.Actors
//zone.BroadcastPacketAroundActor(this, worldMasterMessage); //zone.BroadcastPacketAroundActor(this, worldMasterMessage);
} }
public void GraphicChange(uint slot, uint graphicId)
{
appearanceIds[slot] = graphicId;
}
public void GraphicChange(uint slot, uint weapId, uint equipId, uint variantId, uint colorId)
{
uint mixedVariantId;
if (weapId == 0)
mixedVariantId = ((variantId & 0x1F) << 5) | colorId;
else
mixedVariantId = variantId;
uint graphicId =
(weapId & 0x3FF) << 20 |
(equipId & 0x3FF) << 10 |
(mixedVariantId & 0x3FF);
appearanceIds[slot] = graphicId;
}
public void GraphicChange(int slot, InventoryItem invItem) public void GraphicChange(int slot, InventoryItem invItem)
{ {
@ -1062,11 +1039,6 @@ namespace Meteor.Map.Actors
BroadcastPacket(CreateAppearancePacket(), true); BroadcastPacket(CreateAppearancePacket(), true);
} }
public void SendAppearance()
{
BroadcastPacket(CreateAppearancePacket(), true);
}
public void SendCharaExpInfo() public void SendCharaExpInfo()
{ {
if (lastStep == 0) if (lastStep == 0)

View File

@ -33,7 +33,6 @@ namespace Meteor.Map
{ {
class LuaUtils class LuaUtils
{ {
public class ItemRefParam public class ItemRefParam
{ {
public uint actorId; public uint actorId;
@ -53,12 +52,22 @@ namespace Meteor.Map
public readonly uint actorId; public readonly uint actorId;
public readonly ushort[] itemSlots; public readonly ushort[] itemSlots;
public readonly byte[] itemPackages; public readonly byte[] itemPackages;
public readonly int numItems;
public MultiItemRefParam(uint actorId, ushort[] itemSlots, byte[] itemPackages) public MultiItemRefParam(uint actorId, ushort[] itemSlots, byte[] itemPackages)
{ {
this.actorId = actorId; this.actorId = actorId;
this.itemSlots = itemSlots; this.itemSlots = itemSlots;
this.itemPackages = itemPackages; this.itemPackages = itemPackages;
this.numItems = itemSlots.Length;
}
public MultiItemRefParam(uint actorId, ushort itemSlot, byte itemPackage)
{
this.actorId = actorId;
this.itemSlots = new ushort[] { itemSlot };
this.itemPackages = new byte[] { itemPackage };
numItems = 1;
} }
} }
@ -120,7 +129,7 @@ namespace Meteor.Map
uint actorId = Utils.SwapEndian(reader.ReadUInt32()); uint actorId = Utils.SwapEndian(reader.ReadUInt32());
ushort slot = Utils.SwapEndian(reader.ReadUInt16()); ushort slot = Utils.SwapEndian(reader.ReadUInt16());
byte itemPackage = reader.ReadByte(); byte itemPackage = reader.ReadByte();
value = new ItemRefParam(actorId, slot, itemPackage); value = new MultiItemRefParam(actorId, slot, itemPackage);
} }
break; break;
case 0x8: //Multi Item Reference to Inventory Spot case 0x8: //Multi Item Reference to Inventory Spot