Иконка ресурса

FREE FDroneDeliverySpeed : 1.0.0 1.0.0

Нет прав для скачивания
C#:
namespace Oxide.Plugins
{
    [Info("FDroneDeliverySpeed", "fufeldev", "1.0.0")]
    public class FDroneDeliverySpeed : RustPlugin
    {
        private const int MaxAttempts = 10;
        private const float RetryDelay = 0.05f;

        private void OnServerInitialized()
        {
            foreach (BaseNetworkable entity in BaseNetworkable.serverEntities)
            {
                DeliveryDrone drone = entity as DeliveryDrone;
                if (drone == null || drone.IsDestroyed) continue;
                CompleteDrone(drone, 0);
            }
        }

        private void OnEntitySpawned(DeliveryDrone drone)
        {
            if (drone == null || drone.IsDestroyed) return;
            NextTick(() => CompleteDrone(drone, 0));
        }

        private void CompleteDrone(DeliveryDrone drone, int attempt)
        {
            if (drone == null || drone.IsDestroyed) return;
            Marketplace marketplace;
            MarketTerminal terminal;
            VendingMachine vending;
            if (!drone.sourceMarketplace.TryGet(true, out marketplace) || !drone.sourceTerminal.TryGet(true, out terminal) || !drone.targetVendingMachine.TryGet(true, out vending))
            {
                drone.Kill();
                return;
            }
            if (!terminal.HasPendingOrderFor(vending.net.ID))
            {
                if (attempt >= MaxAttempts)
                {
                    drone.Kill();
                    return;
                }
                timer.Once(RetryDelay, () => CompleteDrone(drone, attempt + 1));
                return;
            }
            marketplace.ReturnDrone(drone);
        }
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху