Add HORSELEASER ....

This commit is contained in:
SilicaAndPina 2021-02-19 00:45:47 +13:00
parent ebb5b0edf8
commit 37faab1a6d
9 changed files with 709 additions and 78 deletions

View file

@ -111,22 +111,10 @@ namespace HISP.Server
}
}
foreach(GameClient client in ConnectedClients)
if (client.LoggedIn)
{
if (!client.LoggedinUser.MetaPriority)
Update(client);
byte[] BaseStatsPacketData = PacketBuilder.CreatePlayerData(client.LoggedinUser.Money, GameServer.GetNumberOfPlayers(), client.LoggedinUser.MailBox.UnreadMailCount);
client.SendPacket(BaseStatsPacketData);
UpdateWorld(client);
UpdatePlayer(client);
}
Database.IncPlayerTirednessForOfflineUsers();
if(totalMinutesElapsed % 60 == 0)
if (totalMinutesElapsed % 60 == 0)
{
foreach (HorseInstance horse in Database.GetMostSpoiledHorses())
{
@ -144,6 +132,32 @@ namespace HISP.Server
DroppedItems.GenerateItems();
}
foreach (GameClient client in ConnectedClients)
{
if (client.LoggedIn)
{
if (!client.LoggedinUser.MetaPriority)
Update(client);
byte[] BaseStatsPacketData = PacketBuilder.CreatePlayerData(client.LoggedinUser.Money, GameServer.GetNumberOfPlayers(), client.LoggedinUser.MailBox.UnreadMailCount);
client.SendPacket(BaseStatsPacketData);
UpdateWorld(client);
UpdatePlayer(client);
}
}
Database.IncPlayerTirednessForOfflineUsers();
// Offline player handling w sql magic...
Database.DecrementHorseLeaseTimeForOfflinePlayers();
Database.TpOfflinePlayersBackToUniterForOfflinePlayers();
Database.DeleteExpiredLeasedHorsesForOfflinePlayers();
WildHorse.Update();
Npc.WanderNpcs();
minuteTimer.Change(oneMinute, oneMinute);
@ -2323,7 +2337,7 @@ namespace HISP.Server
HorseInstance horseInstance = new HorseInstance(sender.LoggedinUser.PawneerOrderBreed);
horseInstance.Color = sender.LoggedinUser.PawneerOrderColor;
horseInstance.Sex = sender.LoggedinUser.PawneerOrderGender;
horseInstance.Gender = sender.LoggedinUser.PawneerOrderGender;
horseInstance.Name = "Pawneer Order";
sender.LoggedinUser.Inventory.Remove(sender.LoggedinUser.Inventory.GetItemByItemId(Item.PawneerOrder).ItemInstances[0]);
@ -2449,6 +2463,43 @@ namespace HISP.Server
}
break;
}
if(Leaser.LeaserButtonIdExists(buttonIdStr))
{
Leaser horseLeaser = Leaser.GetLeaserByButtonId(buttonIdStr);
if(sender.LoggedinUser.Money >= horseLeaser.Price)
{
if(sender.LoggedinUser.HorseInventory.HorseList.Length + 1 > sender.LoggedinUser.MaxHorses)
{
byte[] cantManageHorses = PacketBuilder.CreateChat(Messages.HorseLeaserHorsesFull, PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(cantManageHorses);
break;
}
else
{
sender.LoggedinUser.MetaPriority = true;
sender.LoggedinUser.Money -= horseLeaser.Price;
sender.LoggedinUser.HorseInventory.AddHorse(horseLeaser.GenerateLeaseHorse());
byte[] addedHorseMeta = PacketBuilder.CreateMetaPacket(Meta.BuildLeaserOnLeaseInfo(horseLeaser));
sender.SendPacket(addedHorseMeta);
byte[] addedNewTempHorseMessage = PacketBuilder.CreateChat(Messages.HorseLeaserTemporaryHorseAdded, PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(addedNewTempHorseMessage);
break;
}
}
else
{
byte[] cantAffordLease = PacketBuilder.CreateChat(Messages.HorseLeaserCantAffordMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(cantAffordLease);
break;
}
}
if(AbuseReport.DoesReasonExist(buttonIdStr))
{
sender.LoggedinUser.MetaPriority = true;
@ -6010,13 +6061,17 @@ namespace HISP.Server
{
HorseInstance horseMountInst = sender.LoggedinUser.HorseInventory.GetHorseById(horseRandomId);
if (horseMountInst.Equipment.Saddle == null || horseMountInst.Equipment.SaddlePad == null || horseMountInst.Equipment.Bridle == null)
if (horseMountInst.Breed.Type != "unicorn" && horseMountInst.Breed.Type != "pegasus")
{
byte[] horseNotTackedMessage = PacketBuilder.CreateChat(Messages.HorseCannotMountUntilTackedMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(horseNotTackedMessage);
return;
if (horseMountInst.Equipment.Saddle == null || horseMountInst.Equipment.SaddlePad == null || horseMountInst.Equipment.Bridle == null)
{
byte[] horseNotTackedMessage = PacketBuilder.CreateChat(Messages.HorseCannotMountUntilTackedMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(horseNotTackedMessage);
return;
}
}
string ridingHorseMessage = Messages.FormatHorseRidingMessage(horseMountInst.Name);
byte[] ridingHorseMessagePacket = PacketBuilder.CreateChat(ridingHorseMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(ridingHorseMessagePacket);