diff --git a/DataCollection/gamedata.json b/DataCollection/gamedata.json
index 9d919b7..1517ecd 100755
--- a/DataCollection/gamedata.json
+++ b/DataCollection/gamedata.json
@@ -195,8 +195,8 @@
"grain_silo":"
You have a Grain Silo. All of your horses have just been fully fed.",
"vegatable_garden":"
You have a Vegetable Garden. You have just fully eaten.",
"windmills":"
You have %COUNT% Windmill(s) earning you $%AMOUNT% every 12 game hours.",
- "wagon":"
^T6Your Wagon can take you to the nearest station.^D7|STATION^R1^H",
- "training_pen":"
^T6You can train all your horses via the Pen^D13|TRAIN ALL^R1^H",
+ "wagon":"
^T6Your Wagon can take you to the nearest station.^D7|STATION^R1",
+ "training_pen":"
^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":"
Training %HORSENAME%: +%SPEED%SP +%STRENGTH%ST +%CONFORMATION%CO +%AGILITY%AG +%ENDURANCE%EN +%EXP%exp",
"train_cant_train":"
%HORSENAME%: 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:
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":"SEARCH FOR A RANCH:
Enter a player's name below. It will match on partial names.
^PLRanch Locator:|Player username^PS13|FIND RANCH^R3",
+ "find_ranch_match_closely":"The following players ranches match closely:
",
+ "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":"MAXIMUM STATS:
^AA",
diff --git a/Horse Isle Server/HorseIsleServer/Game/Messages.cs b/Horse Isle Server/HorseIsleServer/Game/Messages.cs
index 9ef6c99..f621451 100755
--- a/Horse Isle Server/HorseIsleServer/Game/Messages.cs
+++ b/Horse Isle Server/HorseIsleServer/Game/Messages.cs
@@ -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);
diff --git a/Horse Isle Server/HorseIsleServer/Game/Meta.cs b/Horse Isle Server/HorseIsleServer/Game/Meta.cs
index 4ae2496..e547d01 100755
--- a/Horse Isle Server/HorseIsleServer/Game/Meta.cs
+++ b/Horse Isle Server/HorseIsleServer/Game/Meta.cs
@@ -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 = "";
diff --git a/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs b/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs
index 89b1e35..d79d237 100755
--- a/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs
+++ b/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs
@@ -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;
diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs
index d346bc4..249e05f 100755
--- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs
+++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs
@@ -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);