Fix bugs and more bugs

This commit is contained in:
SilicaAndPina 2021-02-28 00:39:51 +13:00
parent 14f9a5b379
commit 26d24c1113
5 changed files with 59 additions and 15 deletions

View file

@ -334,7 +334,7 @@ namespace HISP.Game.Items
public static void Init()
{
ReadFromDatabase();
GenerateItems(true);
GenerateItems(Database.GetDroppedItemsCount() <= 0);
}
}

View file

@ -417,6 +417,9 @@ namespace HISP.Game
if (horse.Leaser > 0)
continue;
if (horse.Category != "TRADING")
continue;
bool tacked = (horse.Equipment.Saddle != null || horse.Equipment.SaddlePad != null || horse.Equipment.Bridle != null || horse.Equipment.Companion != null);
message += Messages.FormatTradeOfferHorse(horse.Name, tacked, horse.RandomId);
}
@ -463,6 +466,8 @@ namespace HISP.Game
string message = "";
message += Messages.FormatTradeWithPlayer(trade.OtherTrade.Trader.Username);
if (trade.Stage == "DONE" && trade.OtherTrade.Stage == "DONE")
message += Messages.TradeFinalReview;
else if (trade.Stage == "DONE")
@ -976,7 +981,7 @@ namespace HISP.Game
if (icon != -1)
iconFormat = Messages.FormatIconFormat(icon);
message += Messages.FormatPlayerEntry(iconFormat, nearbyUser.Username, nearbyUser.Id, (DateTime.UtcNow - nearbyUser.LoginTime).Minutes, nearbyUser.X, nearbyUser.Y, nearbyUser.Idle);
message += Messages.FormatPlayerEntry(iconFormat, nearbyUser.Username, nearbyUser.Id, Convert.ToInt32(Math.Round((DateTime.UtcNow - nearbyUser.LoginTime).TotalMinutes)), nearbyUser.X, nearbyUser.Y, nearbyUser.Idle);
}
message += Messages.PlayerListIconInformation;
@ -1012,7 +1017,7 @@ namespace HISP.Game
if (icon != -1)
iconFormat = Messages.FormatIconFormat(icon);
message += Messages.FormatPlayerEntry(iconFormat, onlineUser.Username, onlineUser.Id, (DateTime.UtcNow - onlineUser.LoginTime).Minutes, onlineUser.X, onlineUser.Y, onlineUser.Idle);
message += Messages.FormatPlayerEntry(iconFormat, onlineUser.Username, onlineUser.Id, Convert.ToInt32(Math.Round((DateTime.UtcNow - onlineUser.LoginTime).TotalMinutes)), onlineUser.X, onlineUser.Y, onlineUser.Idle);
}
message += Messages.PlayerListIconInformation;
@ -1038,7 +1043,7 @@ namespace HISP.Game
if (icon != -1)
iconFormat = Messages.FormatIconFormat(icon);
message += Messages.FormatPlayerEntry(iconFormat, client.LoggedinUser.Username, client.LoggedinUser.Id, (DateTime.UtcNow - client.LoggedinUser.LoginTime).Minutes, client.LoggedinUser.X, client.LoggedinUser.Y, client.LoggedinUser.Idle);
message += Messages.FormatPlayerEntry(iconFormat, client.LoggedinUser.Username, client.LoggedinUser.Id, Convert.ToInt32(Math.Round((DateTime.UtcNow - client.LoggedinUser.LoginTime).TotalMinutes)), client.LoggedinUser.X, client.LoggedinUser.Y, client.LoggedinUser.Idle);
}
}
@ -1065,7 +1070,7 @@ namespace HISP.Game
if (icon != -1)
iconFormat = Messages.FormatIconFormat(icon);
message += Messages.FormatOnlineBuddyEntry(iconFormat, friend.Username, friend.Id, (DateTime.UtcNow - friend.LoginTime).Minutes, friend.X, friend.Y);
message += Messages.FormatOnlineBuddyEntry(iconFormat, friend.Username, friend.Id, Convert.ToInt32(Math.Round((DateTime.UtcNow - friend.LoginTime).TotalMinutes)), friend.X, friend.Y);
}
catch (KeyNotFoundException) { }

View file

@ -181,11 +181,15 @@ namespace HISP.Player
return;
cancelTrade:;
InteruptTrade();
return;
}
public void InteruptTrade()
{
byte[] tradeCanceled = PacketBuilder.CreateChat(Messages.TradeCanceledInterupted, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeCanceled);
endTrade();
return;
}
public void AcceptTrade()
{

View file

@ -3919,6 +3919,20 @@ namespace HISP.Server
}
}
public static int GetDroppedItemsCount()
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "SELECT COUNT(1) FROM DroppedItems";
sqlCommand.Prepare();
int count = Convert.ToInt32(sqlCommand.ExecuteScalar());
sqlCommand.Dispose();
return count;
}
}
public static int GetNpcStartPoint(int playerId, int npcId)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))

View file

@ -257,8 +257,10 @@ namespace HISP.Server
sender.LoggedinUser.TradingWith.HorsesOffered.Add(horse);
UpdateArea(sender);
if (!sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority)
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
if (sender.LoggedinUser.TradingWith != null)
if (!sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority)
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
break;
case '1': // Item
@ -1905,8 +1907,9 @@ namespace HISP.Server
sender.LoggedinUser.TradingWith.MoneyOffered = amountMoney;
UpdateArea(sender);
if (!sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority)
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
if(sender.LoggedinUser.TradingWith != null)
if (!sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority)
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
break;
}
@ -1959,8 +1962,9 @@ namespace HISP.Server
sender.LoggedinUser.TradingWith.ItemsOffered.Add(items);
UpdateArea(sender);
if (!sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority)
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
if (sender.LoggedinUser.TradingWith != null)
if (!sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority)
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
}
break;
}
@ -2514,8 +2518,9 @@ namespace HISP.Server
{
sender.LoggedinUser.TradingWith.Stage = "DONE";
if (sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority == false)
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
if (sender.LoggedinUser.TradingWith != null)
if (sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority == false)
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
UpdateArea(sender);
}
@ -6060,6 +6065,10 @@ namespace HISP.Server
Database.RemoveOnlineUser(sender.LoggedinUser.Id);
// Remove Trade Reference
sender.LoggedinUser.TradingWith = null;
sender.LoggedinUser.PendingTradeTo = 0;
// Delete Arena Entries
if(Arena.UserHasEnteredHorseInAnyArena(sender.LoggedinUser))
{
@ -6446,6 +6455,18 @@ namespace HISP.Server
if(forClient.LoggedinUser.TradingWith != null)
{
if (!forClient.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient.LoggedIn)
{
forClient.LoggedinUser.TradingWith.InteruptTrade();
return;
}
if (forClient.LoggedinUser.TradingWith.OtherTrade.Trader.TradingWith == null)
{
forClient.LoggedinUser.TradingWith.InteruptTrade();
return;
}
forClient.LoggedinUser.MetaPriority = true;
forClient.LoggedinUser.TradeMenuPriority = false;
byte[] tradeMeta = PacketBuilder.CreateMetaPacket(Meta.BuildTrade(forClient.LoggedinUser.TradingWith));