mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-07 21:55:42 +12:00
allow unequipping tack
This commit is contained in:
parent
c6b3ff964c
commit
3a7b6331d5
2 changed files with 85 additions and 1 deletions
|
@ -929,6 +929,48 @@ namespace HISP.Server
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ClearSaddle(int horseRandomId)
|
||||||
|
{
|
||||||
|
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||||
|
{
|
||||||
|
db.Open();
|
||||||
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
|
sqlCommand.CommandText = "UPDATE Horses SET saddle=NULL WHERE randomId=@randomId";
|
||||||
|
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
|
||||||
|
sqlCommand.Prepare();
|
||||||
|
sqlCommand.ExecuteNonQuery();
|
||||||
|
sqlCommand.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ClearSaddlePad(int horseRandomId)
|
||||||
|
{
|
||||||
|
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||||
|
{
|
||||||
|
db.Open();
|
||||||
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
|
sqlCommand.CommandText = "UPDATE Horses SET saddlepad=NULL WHERE randomId=@randomId";
|
||||||
|
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
|
||||||
|
sqlCommand.Prepare();
|
||||||
|
sqlCommand.ExecuteNonQuery();
|
||||||
|
sqlCommand.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ClearBridle(int horseRandomId)
|
||||||
|
{
|
||||||
|
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||||
|
{
|
||||||
|
db.Open();
|
||||||
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
|
sqlCommand.CommandText = "UPDATE Horses SET bridle=NULL WHERE randomId=@randomId";
|
||||||
|
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
|
||||||
|
sqlCommand.Prepare();
|
||||||
|
sqlCommand.ExecuteNonQuery();
|
||||||
|
sqlCommand.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void SetWorldWeather(string Weather)
|
public static void SetWorldWeather(string Weather)
|
||||||
{
|
{
|
||||||
|
|
|
@ -179,11 +179,13 @@ namespace HISP.Server
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sender.LoggedinUser.Inventory.Remove(sender.LoggedinUser.Inventory.GetItemByItemId(itemId).ItemInstances[0]); // Remove item from inventory.
|
||||||
|
|
||||||
sender.LoggedinUser.MetaPriority = true;
|
sender.LoggedinUser.MetaPriority = true;
|
||||||
byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTackMenu(sender.LoggedinUser.LastViewedHorse, sender.LoggedinUser));
|
byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTackMenu(sender.LoggedinUser.LastViewedHorse, sender.LoggedinUser));
|
||||||
sender.SendPacket(metaPacket);
|
sender.SendPacket(metaPacket);
|
||||||
|
|
||||||
sender.LoggedinUser.Inventory.Remove(sender.LoggedinUser.Inventory.GetItemByItemId(itemId).ItemInstances[0]); // Remove item from inventory.
|
|
||||||
byte[] equipMsgPacket = PacketBuilder.CreateChat(Messages.FormatEquipTackMessage(itemInfo.Name, sender.LoggedinUser.LastViewedHorse.Name), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
byte[] equipMsgPacket = PacketBuilder.CreateChat(Messages.FormatEquipTackMessage(itemInfo.Name, sender.LoggedinUser.LastViewedHorse.Name), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
sender.SendPacket(equipMsgPacket);
|
sender.SendPacket(equipMsgPacket);
|
||||||
|
|
||||||
|
@ -211,6 +213,46 @@ namespace HISP.Server
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case PacketBuilder.HORSE_TACK_UNEQUIP:
|
||||||
|
if (sender.LoggedinUser.LastViewedHorse != null)
|
||||||
|
{
|
||||||
|
byte equipSlot = packet[2];
|
||||||
|
switch(equipSlot)
|
||||||
|
{
|
||||||
|
case 0x31: // Saddle
|
||||||
|
if (sender.LoggedinUser.LastViewedHorse.Equipment.Saddle != null)
|
||||||
|
sender.LoggedinUser.Inventory.AddIgnoringFull(new ItemInstance(sender.LoggedinUser.LastViewedHorse.Equipment.Saddle.Id));
|
||||||
|
Database.ClearSaddle(sender.LoggedinUser.LastViewedHorse.RandomId);
|
||||||
|
sender.LoggedinUser.LastViewedHorse.Equipment.Saddle = null;
|
||||||
|
break;
|
||||||
|
case 0x32: // Saddle Pad
|
||||||
|
if (sender.LoggedinUser.LastViewedHorse.Equipment.SaddlePad != null)
|
||||||
|
sender.LoggedinUser.Inventory.AddIgnoringFull(new ItemInstance(sender.LoggedinUser.LastViewedHorse.Equipment.SaddlePad.Id));
|
||||||
|
Database.ClearSaddlePad(sender.LoggedinUser.LastViewedHorse.RandomId);
|
||||||
|
sender.LoggedinUser.LastViewedHorse.Equipment.SaddlePad = null;
|
||||||
|
break;
|
||||||
|
case 0x33: // Bridle
|
||||||
|
if (sender.LoggedinUser.LastViewedHorse.Equipment.Bridle != null)
|
||||||
|
sender.LoggedinUser.Inventory.AddIgnoringFull(new ItemInstance(sender.LoggedinUser.LastViewedHorse.Equipment.Bridle.Id));
|
||||||
|
Database.ClearBridle(sender.LoggedinUser.LastViewedHorse.RandomId);
|
||||||
|
sender.LoggedinUser.LastViewedHorse.Equipment.Bridle = null;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Logger.ErrorPrint("Unknown equip slot: " + equipSlot.ToString("X"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
byte[] itemUnequipedMessage = PacketBuilder.CreateChat(Messages.FormatUnEquipTackMessage(sender.LoggedinUser.LastViewedHorse.Name), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
sender.SendPacket(itemUnequipedMessage);
|
||||||
|
|
||||||
|
sender.LoggedinUser.MetaPriority = true;
|
||||||
|
byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTackMenu(sender.LoggedinUser.LastViewedHorse, sender.LoggedinUser));
|
||||||
|
sender.SendPacket(metaPacket);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.ErrorPrint(sender.LoggedinUser.Username + " Tried to unequip items from non existnat horse");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case PacketBuilder.HORSE_MOUNT:
|
case PacketBuilder.HORSE_MOUNT:
|
||||||
randomId = 0;
|
randomId = 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue