Reneb submitted a new resource:
Airdrop Inbound - Show to players when the airdrops are going to land
Read more about this resource...
Airdrop Inbound [Unmaintained]
Discussion in 'Plugin Support' started by Reneb, Apr 13, 2015.
-
good convert
my version for russia, if you do not mind
Code:using System.Collections.Generic; using System; using System.Reflection; using System.Data; using UnityEngine; using Oxide.Core; using Oxide.Core.Plugins; using RustProto;namespace Oxide.Plugins { [Info("AirdropInBound", "Reneb based on FeuerSturm91's Airdrop In Bound", "1.0.0")] class AirdropInBound : RustLegacyPlugin { [PluginReference] Plugin Location; static string wrongarguments = "Wrong arguments, or target player doesn't exist"; static bool useLocation = true; static bool showDistance = true; static bool showDirection = true; void LoadDefaultConfig() { } private void CheckCfg<T>(string Key, ref T var) { if (Config[Key] is T) var = (T)Config[Key]; else Config[Key] = var; } void Init() { CheckCfg<string>("Messages: Wrong Arguments", ref wrongarguments); CheckCfg<bool>("Settings: Use Location Plugin http://oxidemod.org/plugins/location.937/ ", ref useLocation); CheckCfg<bool>("Settings: Show distance to airdrop", ref showDistance); CheckCfg<bool>("Settings: Show direction to airdrop", ref showDirection); SaveConfig(); } void OnAirdrop(Vector3 targetposition) { string message = "Сбрасывание с самолёта "; string location = string.Empty; string distance = string.Empty; string direction = string.Empty; if(useLocation && Location != null) { location = Location.Call("FindLocationName", targetposition) as string; if(location != null) { location = " в [color #dfsdf]" + location + "[color]"; } } message += location + ""; foreach(PlayerClient player in PlayerClient.All) { var currentmessage = message.ToString(); if (showDistance) { distance = "" + Math.Ceiling(Math.Abs(Vector3.Distance(targetposition, player.lastKnownPosition))).ToString() + "м"; } if (showDirection) { direction = GetDirection(targetposition, player.lastKnownPosition); } if(showDistance || showDirection) { currentmessage = string.Format("{0} ({1} {2} от Вашей текущей позиции)", currentmessage, distance, direction); } ConsoleNetworker.SendClientCommand(player.netPlayer, "chat.add Server " + Facepunch.Utility.String.QuoteSafe(currentmessage)); } } string GetDirection(Vector3 targetposition, Vector3 playerposition) { if (Vector3.Distance(targetposition, playerposition) < 10) return string.Empty; string northsouth; string northosouth; string westeast; string direction = string.Empty; if (playerposition.x < targetposition.x) northsouth = "южней"; else northsouth = "северней"; if (playerposition.x < targetposition.x) northosouth = "юго"; else northosouth = "северо"; if (playerposition.z < targetposition.z) westeast = "восточней"; else westeast = "западней"; var diffx = Math.Abs(playerposition.x - targetposition.x); var diffz = Math.Abs(playerposition.z - targetposition.z); if (diffx / diffz <= 0.5) direction = westeast; if (diffx / diffz > 0.5 && diffx / diffz < 1.5) direction = northosouth + "-" + westeast; if (diffx / diffz >= 1.5) direction = northsouth; return direction; } } }
-
as you wish
-
Hey, nice plugin. Would you mind to add translation phrases and permission only?