fix money related bugs and crashes.

This commit is contained in:
SilicaAndPina 2021-05-14 11:38:04 +12:00
parent 99d9b401a2
commit e600554555
21 changed files with 151 additions and 83 deletions

View file

@ -271,7 +271,7 @@ namespace HISP.Game
if (place == 0) // WINNER!
{
int prize = EntryCost * Entries.Count;
entry.EnteredUser.Money += prize;
entry.EnteredUser.AddMoney(prize);
byte[] youWinMessage = PacketBuilder.CreateChat(Messages.FormatArenaYouWinMessage(prize, expReward), PacketBuilder.CHAT_BOTTOM_RIGHT);

View file

@ -39,7 +39,7 @@ namespace HISP.Game.Chat
try
{
money = int.Parse(args[1]);
user.Money += money;
user.AddMoney(money);
}
catch (Exception)
{

View file

@ -98,7 +98,7 @@ namespace HISP.Game.Events
byte[] wonIsleCardGame = PacketBuilder.CreateChat(Messages.EventWonIsleTradingGame, PacketBuilder.CHAT_BOTTOM_RIGHT);
client.SendPacket(wonIsleCardGame);
client.LoggedinUser.Money += 25000;
client.LoggedinUser.AddMoney(25000);
}

View file

@ -133,8 +133,8 @@ namespace HISP.Game.Events
byte[] otherEarned = PacketBuilder.CreateChat(Messages.FormatModSplatterBallAwardedOther(thrower.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
byte[] youEarned = PacketBuilder.CreateChat(Messages.FormatModSplatterBallAwardedYou(throwAt.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
thrower.Money += 50;
throwAt.Money += 500;
thrower.AddMoney(50);
throwAt.AddMoney(500);
thrower.LoggedinClient.SendPacket(youEarned);
throwAt.LoggedinClient.SendPacket(otherEarned);

View file

@ -35,7 +35,7 @@ namespace HISP.Game.Events
user.Inventory.AddIgnoringFull(new ItemInstance(rngEvent.GiveObject));
if(moneyEarned != 0)
user.Money += moneyEarned;
user.AddMoney(moneyEarned);
HorseInstance effectedHorse = null;

View file

@ -242,7 +242,7 @@ namespace HISP.Game.Events
participent.UserInstance.LoggedinClient.SendPacket(bonusMessage);
}
participent.UserInstance.Money += money;
participent.UserInstance.AddMoney(money);
}

View file

@ -71,7 +71,7 @@ namespace HISP.Game.Events
winner.Awards.AddAward(Award.GetAwardById(34)); // Riddle Genius
winner.Money += Reward;
winner.AddMoney(Reward);
byte[] riddleWonMessage = PacketBuilder.CreateChat(Messages.FormatEventRealTimeRiddleWonForOthers(winner.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
byte[] riddleYouWonMessage = PacketBuilder.CreateChat(Messages.FormatEventRealTimeRiddleWonForYou(Reward), PacketBuilder.CHAT_BOTTOM_RIGHT);
foreach (GameClient client in GameServer.ConnectedClients)

View file

@ -73,7 +73,7 @@ namespace HISP.Game.Events
foreach (ThrownCounter winner in winnerCounter)
{
byte[] youWinMsg = PacketBuilder.CreateChat(Messages.EventWonWaterBallonGame, PacketBuilder.CHAT_BOTTOM_RIGHT);
winner.UserHit.Money += 20000;
winner.UserHit.AddMoney(20000);
winner.UserHit.LoggedinClient.SendPacket(youWinMsg);
winner.UserHit.TrackedItems.GetTrackedItem(Tracking.TrackableItem.WaterbaloonGameWin).Count++;
}

View file

@ -142,7 +142,7 @@ namespace HISP.Game.Items
if (isFirstLoad)
Logger.InfoPrint("Generating items, (this may take awhile on a fresh database!)");
else
Logger.InfoPrint("Generating items.");
Logger.DebugPrint("Generating items.");
int newItems = 0;
foreach (Item.ItemInformation item in Item.Items)

View file

@ -212,6 +212,9 @@ namespace HISP.Game
public static string TradeNotAllowedWhileBidding;
public static string TradeNotAllowedWhileOtherBidding;
public static string TradeWillGiveYouTooMuchMoney;
public static string TradeWillGiveOtherTooMuchMoney;
// Player Interaction
public static string PlayerHereMenuFormat;
@ -981,6 +984,7 @@ namespace HISP.Game
public static string Brought25Format;
public static string Sold1Format;
public static string SoldAllFormat;
public static string CannotSellYoudGetTooMuchMoney;
// Bank
public static string BankMadeInIntrestFormat;
@ -991,6 +995,9 @@ namespace HISP.Game
public static string BankWithdrewMoneyFormat;
public static string BankDepositedMoneyFormat;
public static string BankCantHoldThisMuch;
public static string BankYouCantHoldThisMuch;
// Npc
public static string NpcStartChatFormat;
public static string NpcNoChatpoints;

View file

@ -471,7 +471,7 @@ namespace HISP.Game
int moneyLost = GameServer.RandomNumberGenerator.Next(0, 100);
if (moneyLost > user.Money)
moneyLost = user.Money;
user.Money -= moneyLost;
user.TakeMoney(moneyLost);
return Messages.FormatVenusFlyTrapMeta(moneyLost);
}
public static string buildInn(Inn inn)

View file

@ -182,9 +182,10 @@ namespace HISP.Game
user.Inventory.Remove(itm.ItemInstances[0]);
}
user.Money -= quest.MoneyCost;
// Take Money
user.TakeMoney(quest.MoneyCost);
// Give money
user.Money += quest.MoneyEarned;
user.AddMoney(quest.MoneyEarned);
// Give items
foreach (QuestItemInfo itemInfo in quest.ItemsEarned)
{

View file

@ -33,7 +33,7 @@ namespace HISP.Game
byte[] riddleAnswerCorrectPacket = PacketBuilder.CreateChat(Messages.FormatRiddlerAnswerCorrect(this.Reason), PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(riddleAnswerCorrectPacket);
user.Money += 10000;
user.AddMoney(10000);
if(Database.TotalRiddlesCompletedByPlayer(user.Id) >= riddlerRiddles.Count)
user.Awards.AddAward(Award.GetAwardById(11)); // Riddlers Riddles

View file

@ -146,7 +146,7 @@ namespace HISP.Game.Services
User userWon = GameServer.GetUserById(highestBidder);
byte[] wonAuction = PacketBuilder.CreateChat(Messages.FormatAuctionBroughtHorse(highestBid), PacketBuilder.CHAT_BOTTOM_RIGHT);
userWon.LoggedinClient.SendPacket(wonAuction);
userWon.Money -= highestBid;
userWon.TakeMoney(highestBid);
userWon.HorseInventory.AddHorse(Horse, false);
}
else
@ -159,7 +159,7 @@ namespace HISP.Game.Services
User userSold = GameServer.GetUserById(OwnerId);
byte[] horseSold = PacketBuilder.CreateChat(Messages.FormatAuctionHorseSold(highestBid), PacketBuilder.CHAT_BOTTOM_RIGHT);
userSold.LoggedinClient.SendPacket(horseSold);
userSold.Money += highestBid;
userSold.AddMoney(highestBid);
userSold.HorseInventory.DeleteHorse(Horse, false);
}
else

View file

@ -142,7 +142,7 @@ namespace HISP.Game
byte[] MovementPacket = PacketBuilder.CreateMovementPacket(user.X, user.Y, user.CharacterId, user.Facing, PacketBuilder.DIRECTION_TELEPORT, true);
user.LoggedinClient.SendPacket(MovementPacket);
user.Money += Value;
user.AddMoney(Value);
if(this.Type == "BURIED")
{