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

@ -195,8 +195,8 @@
"grain_silo":"<BR>You have a Grain Silo. All of your horses have just been fully fed.",
"vegatable_garden":"<BR>You have a Vegetable Garden. You have just fully eaten.",
"windmills":"<BR>You have %COUNT% Windmill(s) earning you $%AMOUNT% every 12 game hours.",
"wagon":"<BR>^T6Your Wagon can take you to the nearest station.^D7|STATION^R1^H",
"training_pen":"<BR>^T6You can train all your horses via the Pen^D13|TRAIN ALL^R1^H",
"wagon":"<BR>^T6Your Wagon can take you to the nearest station.^D7|STATION^R1",
"training_pen":"<BR>^T6You can train all your horses via the Pen^D13|TRAIN ALL^R1",
"train_all":"You attempt to train all of your horses:",
"train_success":"<BR>Training <B>%HORSENAME%</B>: +%SPEED%SP +%STRENGTH%ST +%CONFORMATION%CO +%AGILITY%AG +%ENDURANCE%EN +%EXP%exp",
"train_cant_train":"<BR><B>%HORSENAME%</B>: Horse needs to rest %TIME% game minutes.",
@ -406,6 +406,12 @@
"find_npc_results_format":"^T7%NPCNAME%, %NPCDESC%^B1M%MAPXY%^R1",
"find_npc_no_results":"The following residents match closely:<BR>None were found by that name, try looking for a partial name.",
"find_npc_limit5":"^L- Limited to 5 results. Try narrowing the search.^R1",
"find_ranch":"<B>SEARCH FOR A RANCH:</B><BR>Enter a player's name below. It will match on partial names.<BR>^PLRanch Locator:|Player username^PS13|FIND RANCH^R3",
"find_ranch_match_closely":"The following players ranches match closely:<BR>",
"find_ranch_result":"^T7%USERNAME%'s Ranch^B1M%MAPXY%^R1",
"find_ranch_no_results":"None were found by that name, try looking for a partial name, or maybe they do not have a ranch.",
"horse_breed_format":"^I252^T7Horse Breed %NAME%:^D4c%ID%|VIEW^R1",
"horse_relative_format":"^I252^T7A Horse Relative, the %NAME%:^D4c%ID%|VIEW^R1",
"maximum_stats":"<B>MAXIMUM STATS:</B><BR>^AA",

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);