Fully implement libarys!

This commit is contained in:
SilicaAndPina 2021-02-12 11:18:55 +13:00
parent e9cee36b24
commit 2c77957434
5 changed files with 80 additions and 4 deletions

View file

@ -151,6 +151,12 @@ namespace HISP.Game
public static string LibaryFindNpcSearchNoResults;
public static string LibaryFindNpcLimit5;
public static string LibaryFindRanch;
public static string LibaryFindRanchResultsHeader;
public static string LibaryFindRanchResultFormat;
public static string LibaryFindRanchResultsNoResults;
public static string HorseBreedFormat;
public static string HorseRelativeFormat;
public static string BreedViewerFormat;
@ -1184,6 +1190,11 @@ namespace HISP.Game
{
return HorseBreedFormat.Replace("%NAME%", name).Replace("%ID%", id.ToString());
}
public static string FormatRanchSearchResult(string name, int x, int y)
{
string mapXy = FormatMapLocation(x, y);
return LibaryFindRanchResultFormat.Replace("%USERNAME%", name).Replace("%MAPXY%", mapXy);
}
public static string FormatNpcSearchResult(string name, string desc,int x, int y)
{
string mapXy = FormatMapLocation(x, y);

View file

@ -489,6 +489,40 @@ namespace HISP.Game
message += Messages.MetaTerminator;
return message;
}
public static string BuildRanchSearchResults(string search)
{
string message = "";
message += Messages.LibaryFindRanchResultsHeader;
int totalResults = 0;
foreach(Ranch ranch in Ranch.Ranches)
{
if(ranch.OwnerId != -1)
{
string ranchOwnerName = Database.GetUsername(ranch.OwnerId);
if(ranchOwnerName.ToLower().Contains(search.ToLower()))
{
message += Messages.FormatRanchSearchResult(ranchOwnerName, ranch.X, ranch.Y);
totalResults++;
}
}
if (totalResults >= 10)
break;
}
if (totalResults == 0)
message += Messages.LibaryFindRanchResultsNoResults;
message += Messages.BackToMap;
message += Messages.MetaTerminator;
return message;
}
public static string BuildRanchSearchLibary()
{
string message = "";
message += Messages.LibaryFindRanch;
message += Messages.BackToMap;
message += Messages.MetaTerminator;
return message;
}
public static string BuildAwardsLibary()
{
string message = "";

View file

@ -1050,6 +1050,11 @@ namespace HISP.Server
Messages.LibaryFindNpcSearchNoResults = gameData.messages.meta.libary.find_npc_no_results;
Messages.LibaryFindNpcLimit5 = gameData.messages.meta.libary.find_npc_limit5;
Messages.LibaryFindRanch = gameData.messages.meta.libary.find_ranch;
Messages.LibaryFindRanchResultsHeader = gameData.messages.meta.libary.find_ranch_match_closely;
Messages.LibaryFindRanchResultFormat = gameData.messages.meta.libary.find_ranch_result;
Messages.LibaryFindRanchResultsNoResults = gameData.messages.meta.libary.find_ranch_no_results;
Messages.HorseBreedFormat = gameData.messages.meta.libary.horse_breed_format;
Messages.HorseRelativeFormat = gameData.messages.meta.libary.horse_relative_format;
Messages.BreedViewerFormat = gameData.messages.meta.libary.breed_preview_format;

View file

@ -1194,7 +1194,8 @@ namespace HISP.Server
}
byte[] descriptionEditedMessage = PacketBuilder.CreateChat(Messages.RanchSavedRanchDescripton, PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(descriptionEditedMessage);
UpdateArea(sender);
// Completely forgot! public server opens your stats menu when you save your ranch info like DUH!!
UpdateStats(sender);
}
else
{
@ -1234,6 +1235,20 @@ namespace HISP.Server
Logger.ErrorPrint(sender.LoggedinUser.Username + " Tried to send a invalid dynamic input (private notes, wrong size)");
break;
}
case 13: // Libary Ranch Search
if (dynamicInput.Length >= 2)
{
string searchQuery = dynamicInput[1];
sender.LoggedinUser.MetaPriority = true;
byte[] serachResponse = PacketBuilder.CreateMetaPacket(Meta.BuildRanchSearchResults(searchQuery));
sender.SendPacket(serachResponse);
break;
}
else
{
Logger.ErrorPrint(sender.LoggedinUser.Username + " Tried to send a invalid dynamic input (private notes, wrong size)");
break;
}
case 14:
if(dynamicInput.Length >= 1)
{
@ -1484,12 +1499,17 @@ namespace HISP.Server
sender.SendPacket(metaPacket);
}
break;
case "31":
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildRanchSearchLibary());
sender.SendPacket(metaPacket);
break;
case "35": // Buddy List
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildBuddyList(sender.LoggedinUser));
sender.SendPacket(metaPacket);
break;
case "36":
case "36": // Nearby list
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildNearbyList(sender.LoggedinUser));
sender.SendPacket(metaPacket);