From a20656a9aaed0ddef0634c7a98287a5377555a08 Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Thu, 11 Feb 2021 12:03:05 +1300 Subject: [PATCH] implement tp to wagon from ranch --- .../HorseIsleServer/Game/Meta.cs | 10 ------ .../HorseIsleServer/Server/Converters.cs | 2 +- .../HorseIsleServer/Server/GameServer.cs | 33 +++++++++++++++++++ 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/Horse Isle Server/HorseIsleServer/Game/Meta.cs b/Horse Isle Server/HorseIsleServer/Game/Meta.cs index ed608f0..99c742e 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Meta.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Meta.cs @@ -64,23 +64,13 @@ namespace HISP.Game angle = (angle % 360 + 360) % 360; if (angle >= 270 && angle <= 360 ) - { usersWest += " " + nearbyUser.Username + " "; - } else if (angle >= 90 && angle <= 180) - { usersEast += " " + nearbyUser.Username + " "; - } else if (angle >= 180 && angle <= 270) - { usersSouth += " " + nearbyUser.Username + " "; - } else if (angle >= 0 && angle <= 90) - { usersNorth += " " + nearbyUser.Username + " "; - } - - } if (usersEast != "") diff --git a/Horse Isle Server/HorseIsleServer/Server/Converters.cs b/Horse Isle Server/HorseIsleServer/Server/Converters.cs index de777c8..802d3b3 100755 --- a/Horse Isle Server/HorseIsleServer/Server/Converters.cs +++ b/Horse Isle Server/HorseIsleServer/Server/Converters.cs @@ -33,7 +33,7 @@ namespace HISP.Server public static Double PointsToDistance(int x1, int y1, int x2, int y2) { - return Math.Sqrt(Math.Pow(x1 - (-y1), 2) + Math.Pow(x2 - (-y2), 2)); + return Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2)); } public static DateTime UnixTimeStampToDateTime(double unixTimeStamp) diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs index fed2a95..c07743b 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs @@ -1181,6 +1181,7 @@ namespace HISP.Server } byte[] descriptionEditedMessage = PacketBuilder.CreateChat(Messages.RanchSavedRanchDescripton, PacketBuilder.CHAT_BOTTOM_RIGHT); sender.SendPacket(descriptionEditedMessage); + UpdateArea(sender); } else { @@ -1348,6 +1349,38 @@ namespace HISP.Server sender.SendPacket(metaPacket); } break; + case "7": // TP To nearest wagon (ranch) + if(sender.LoggedinUser.OwnedRanch != null) + { + if(sender.LoggedinUser.OwnedRanch.GetBuildingCount(7) > 0) // Wagon + { + int ranchX = sender.LoggedinUser.OwnedRanch.X; + int ranchY = sender.LoggedinUser.OwnedRanch.Y; + + double smallestDistance = Double.PositiveInfinity; + int smalestTransportPointId = 0; + for (int i = 0; i < Transport.TransportPoints.Count; i++) + { + Transport.TransportPoint tpPoint = Transport.TransportPoints[i]; + + if(Transport.GetTransportLocation(tpPoint.Locations[0]).Type == "WAGON") // is wagon? + { + double distance = Converters.PointsToDistance(ranchX, ranchY, tpPoint.X, tpPoint.Y); + if(distance < smallestDistance) + { + smallestDistance = distance; + smalestTransportPointId = i; + } + } + } + Transport.TransportPoint newPoint = Transport.TransportPoints[smalestTransportPointId]; + + byte[] transported = PacketBuilder.CreateChat(Messages.RanchWagonDroppedYouOff, PacketBuilder.CHAT_BOTTOM_RIGHT); + sender.SendPacket(transported); + sender.LoggedinUser.Teleport(newPoint.X, newPoint.Y); + } + } + break; case "8": if(sender.LoggedinUser.LastViewedHorse != null) {