Fix ordering and fully implement "View Companion"

This commit is contained in:
SilicaPi 2021-02-01 19:50:37 +13:00
parent bd149e4ecf
commit 7bf0f37427
7 changed files with 91 additions and 43 deletions

View file

@ -578,7 +578,7 @@ namespace HISP.Server
Item.ItemInformation itemInfo = Item.GetItemById(itemId);
if (itemInfo.Type == "TACK")
{
switch (itemInfo.MiscFlags[0])
switch (itemInfo.GetMiscFlag(0))
{
case 1: // Saddle
if(sender.LoggedinUser.LastViewedHorse.Equipment.Saddle != null)
@ -1269,6 +1269,16 @@ namespace HISP.Server
sender.SendPacket(metaPacket);
}
break;
case "9": // View Tack
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTackLibary());
sender.SendPacket(metaPacket);
break;
case "10":
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildCompanionLibary());
sender.SendPacket(metaPacket);
break;
case "11": // Randomize horse name
if (sender.LoggedinUser.LastViewedHorse != null)
{
@ -1338,11 +1348,6 @@ namespace HISP.Server
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildAllStats(sender.LoggedinUser));
sender.SendPacket(metaPacket);
break;
case "9": // View Tack
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTackLibary());
sender.SendPacket(metaPacket);
break;
case "53": // Misc Stats / Tracked Items
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildMiscStats(sender.LoggedinUser));
@ -2849,13 +2854,7 @@ namespace HISP.Server
Item.ItemInformation itemInf = instance.GetItemInfo();
if(itemInf.Type == "CLOTHES")
{
if (itemInf.MiscFlags.Length <= 0)
{
Logger.ErrorPrint(itemInf.Name + " Has no misc flags.");
return;
}
switch (itemInf.MiscFlags[0])
switch (itemInf.GetMiscFlag(0))
{
case CompetitionGear.MISC_FLAG_HEAD:
if (sender.LoggedinUser.EquipedCompetitionGear.Head == null)
@ -2897,6 +2896,9 @@ namespace HISP.Server
sender.LoggedinUser.EquipedCompetitionGear.Feet = itemInf;
}
break;
default:
Logger.ErrorPrint(itemInf.Name + " Has unknown misc flags.");
return;
}
sender.LoggedinUser.Inventory.Remove(instance);
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatEquipCompetitionGearMessage(itemInf.Name), PacketBuilder.CHAT_BOTTOM_RIGHT);