Fix Training not showing in barns.

Fix Crash on invalid ranch loading
Add "Player here" click message.
This commit is contained in:
SilicaAndPina 2021-02-12 21:47:42 +13:00
parent 2d2d6235e3
commit afc232352d
6 changed files with 34 additions and 2 deletions

View file

@ -12,6 +12,9 @@ namespace HISP.Game
// Mod isle
public static string ModIsleMessage;
// Click
public static string PlayerHereFormat;
// Ranch
public static string RanchUnownedRanchFormat;
public static string RanchYouCouldPurchaseThisRanch;
@ -682,6 +685,11 @@ namespace HISP.Game
public static string NothingInterestingHere;
public static string FormatPlayerHereMessage(string playerName)
{
return PlayerHereFormat.Replace("%USERNAME%", playerName);
}
// Farrier Formats
public static string FormatFarrierPutOnSteelShoesAllMesssage(int curShoes, int maxShoes)
{

View file

@ -1197,6 +1197,13 @@ namespace HISP.Game
{
string message = "";
if(!Ranch.RanchExists(ranchId)) // Ghost ranchs exist.. apparently?
{
user.MetaPriority = false;
return BuildMetaInfo(user, user.X, user.Y);
}
Ranch ranch = Ranch.GetRanchById(ranchId);
bool mine = (ranch.OwnerId == user.Id);
string swfModule = ranch.GetSwf(mine);

View file

@ -405,6 +405,15 @@ namespace HISP.Game
}
return false;
}
public static bool RanchExists(int ranchId)
{
foreach (Ranch ranch in Ranches)
{
if (ranch.Id == ranchId)
return true;
}
return false;
}
public static Ranch GetRanchById(int ranchId)
{
foreach (Ranch ranch in Ranches)

View file

@ -686,6 +686,9 @@ namespace HISP.Server
Map.ModIsleX = gameData.messages.commands.mod_isle.x;
Map.ModIsleY = gameData.messages.commands.mod_isle.y;
// Click
Messages.PlayerHereFormat = gameData.messages.player_here;
// Ranch
Messages.RanchUnownedRanchFormat = gameData.messages.meta.ranch.unowned_ranch;
Messages.RanchYouCouldPurchaseThisRanch = gameData.messages.meta.ranch.you_could_purchase_this;

View file

@ -3618,7 +3618,7 @@ namespace HISP.Server
if (tile.Title != null)
returnedMsg = tile.Title;
}
if(Ranch.IsRanchHere(x, y))
if(Ranch.IsRanchHere(x, y)) // Ranch here?
{
Ranch ranch = Ranch.GetRanchAt(x, y);
if(ranch.OwnerId == -1)
@ -3633,6 +3633,10 @@ namespace HISP.Server
returnedMsg = Messages.FormatRanchClickMessage(Database.GetUsername(ranch.OwnerId), title);
}
}
if(GetUsersAt(x,y, false, true).Length > 0) // Player here?
{
returnedMsg = Messages.FormatPlayerHereMessage(GetUsersAt(x, y, false, true)[0].Username);
}
byte[] tileInfoPacket = PacketBuilder.CreateClickTileInfoPacket(returnedMsg);
sender.SendPacket(tileInfoPacket);