1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-23 21:27:46 +00:00
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();
}
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
public void SendItemPackage(Player player, uint id)
{

View file

@ -978,29 +978,6 @@ namespace Meteor.Map.Actors
//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)
{
@ -1062,11 +1039,6 @@ namespace Meteor.Map.Actors
BroadcastPacket(CreateAppearancePacket(), true);
}
public void SendAppearance()
{
BroadcastPacket(CreateAppearancePacket(), true);
}
public void SendCharaExpInfo()
{
if (lastStep == 0)

View file

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