GPT-4 Turbo БЕСИМ БОТА

Нейросеть GPT-4 Turbo доступна только «Премиум» пользователям.
Привет! Я готов помочь вам с вашим тестом. Если вы хотите проверить мои функции, вы можете задать любой вопрос или дать любую инструкцию. Я могу помочь вам с информацией, советами, написанием текстов, и многим другим.
 
Привет! Я готов помочь вам с вашим тестом. Если вы хотите проверить мои функции, вы можете задать любой вопрос или дать любую инструкцию. Я могу помочь вам с информацией, советами, написанием текстов, и многим другим.
Привет, напиши пожалуйста плагин на платформе Oxide на языке C# для игры Rust, который будет выгонять игроков с сервера через 15 минут бездействия.
 
Привет, напиши пожалуйста плагин на платформе Oxide на языке C# для игры Rust, который будет выгонять игроков с сервера через 15 минут бездействия.
Извините за путаницу, вот примерный образец плагина, который вы хотите создать. Учтите, что я, как AI, не могу гарантировать, что код будет работать без ошибок. Рекомендуется провести дополнительное тестирование и отладку.

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using System;
using System.Collections.Generic;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("IdleKick", "YourName", "1.0.0")]
    class IdleKick : RustPlugin
    {
        private const int idleTime = 15; // в минутах
        private Dictionary<string, float> lastActive = new Dictionary<string, float>();

        void OnPlayerSleepEnded(BasePlayer player)
        {
            lastActive[player.UserIDString] = Time.realtimeSinceStartup;
        }

        void OnPlayerInit(BasePlayer player)
        {
            lastActive[player.UserIDString] = Time.realtimeSinceStartup;
        }

        void OnPlayerDisconnected(BasePlayer player, string reason)
        {
            lastActive.Remove(player.UserIDString);
        }

        void OnTick()
        {
            var currentTime = Time.realtimeSinceStartup;
            foreach (var player in BasePlayer.activePlayerList)
            {
                if (player.IsSleeping() || player.IsDead()) continue;

                var userID = player.UserIDString;
                if (!lastActive.ContainsKey(userID)) continue;

                if (currentTime - lastActive[userID] >= idleTime * 60)
                {
                    Network.Net.sv.Kick(player.net.connection, "You were kicked due to inactivity.");
                    lastActive.Remove(userID);
                }
            }
        }
    }
}
Этот плагин отслеживает активность каждого игрока и если игрок не активен в течение 15 минут, он будет выгнан с сервера. Однако, обратите внимание, что это пример реализации, и вам потребуется дополнительная настройка и тестирование, чтобы убедиться, что плагин работает как предполагалось.

Что касается логотипа сервера, то, к сожалению, в качестве текстового AI, я не могу создать визуальный контент. Вам следует обратиться к дизайнеру или использовать онлайн-инструменты для создания логотипов.
 
Извините за путаницу, вот примерный образец плагина, который вы хотите создать. Учтите, что я, как AI, не могу гарантировать, что код будет работать без ошибок. Рекомендуется провести дополнительное тестирование и отладку.

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using System;
using System.Collections.Generic;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("IdleKick", "YourName", "1.0.0")]
    class IdleKick : RustPlugin
    {
        private const int idleTime = 15; // в минутах
        private Dictionary<string, float> lastActive = new Dictionary<string, float>();

        void OnPlayerSleepEnded(BasePlayer player)
        {
            lastActive[player.UserIDString] = Time.realtimeSinceStartup;
        }

        void OnPlayerInit(BasePlayer player)
        {
            lastActive[player.UserIDString] = Time.realtimeSinceStartup;
        }

        void OnPlayerDisconnected(BasePlayer player, string reason)
        {
            lastActive.Remove(player.UserIDString);
        }

        void OnTick()
        {
            var currentTime = Time.realtimeSinceStartup;
            foreach (var player in BasePlayer.activePlayerList)
            {
                if (player.IsSleeping() || player.IsDead()) continue;

                var userID = player.UserIDString;
                if (!lastActive.ContainsKey(userID)) continue;

                if (currentTime - lastActive[userID] >= idleTime * 60)
                {
                    Network.Net.sv.Kick(player.net.connection, "You were kicked due to inactivity.");
                    lastActive.Remove(userID);
                }
            }
        }
    }
}
Этот плагин отслеживает активность каждого игрока и если игрок не активен в течение 15 минут, он будет выгнан с сервера. Однако, обратите внимание, что это пример реализации, и вам потребуется дополнительная настройка и тестирование, чтобы убедиться, что плагин работает как предполагалось.

Что касается логотипа сервера, то, к сожалению, в качестве текстового AI, я не могу создать визуальный контент. Вам следует обратиться к дизайнеру или использовать онлайн-инструменты для создания логотипов.
Привет, напиши пожалуйста плагин на платформе Oxide на языке C# для игры Rust, который будет очищать с карты планы постройки и киянки
 
Привет, напиши пожалуйста плагин на платформе Oxide на языке C# для игры Rust, который будет очищать с карты планы постройки и киянки
Привет! Ниже приведен пример плагина, который можно написать для выполнения этой задачи:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach(var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                    obj.Kill();
            }
        }
    }
}

Этот плагин при выгрузке будет убирать все найденные киянки и планы постройки. Однако, учтите что это примерный код и его работоспособность нужно проверить.

Кроме того, следует обратить внимание на то, что плагин убирает все указанные предметы без исключения, включая те, которые находятся у игроков в инвентаре или используются ими в данный момент. Вам может потребоваться дополнительно настроить этот плагин, чтобы он учитывал такие вещи, как владение предметом и его использование.
 
Привет! Ниже приведен пример плагина, который можно написать для выполнения этой задачи:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach(var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                    obj.Kill();
            }
        }
    }
}

Этот плагин при выгрузке будет убирать все найденные киянки и планы постройки. Однако, учтите что это примерный код и его работоспособность нужно проверить.

Кроме того, следует обратить внимание на то, что плагин убирает все указанные предметы без исключения, включая те, которые находятся у игроков в инвентаре или используются ими в данный момент. Вам может потребоваться дополнительно настроить этот плагин, чтобы он учитывал такие вещи, как владение предметом и его использование.
Дороботай плагин
 
Привет! Ниже приведен пример плагина, который можно написать для выполнения этой задачи:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach(var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                    obj.Kill();
            }
        }
    }
}

Этот плагин при выгрузке будет убирать все найденные киянки и планы постройки. Однако, учтите что это примерный код и его работоспособность нужно проверить.

Кроме того, следует обратить внимание на то, что плагин убирает все указанные предметы без исключения, включая те, которые находятся у игроков в инвентаре или используются ими в данный момент. Вам может потребоваться дополнительно настроить этот плагин, чтобы он учитывал такие вещи, как владение предметом и его использование.
Улучши плагин
 
Привет! Ниже приведен пример плагина, который можно написать для выполнения этой задачи:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach(var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                    obj.Kill();
            }
        }
    }
}

Этот плагин при выгрузке будет убирать все найденные киянки и планы постройки. Однако, учтите что это примерный код и его работоспособность нужно проверить.

Кроме того, следует обратить внимание на то, что плагин убирает все указанные предметы без исключения, включая те, которые находятся у игроков в инвентаре или используются ими в данный момент. Вам может потребоваться дополнительно настроить этот плагин, чтобы он учитывал такие вещи, как владение предметом и его использование.
Улучши плагин
 
Для улучшения плагина и учета владения предметами игроками, можно внести изменения в код плагина. Добавим проверку наличия киянок и планов постройки у игроков перед их удалением. Вот обновленный вариант плагина:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach (var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                {
                    var player = obj.GetOwnerPlayer();
                    if (player == null)
                    {
                        obj.Kill();
                    }
                    else
                    {
                        // Notify the player that their hammer or build plan has been removed
                        player.ChatMessage("Your hammer or build plan has been removed for server cleanup.");
                    }
                }
            }
        }
    }
}

Этот обновленный плагин будет проверять владение киянками и планами постройки игроками перед их удалением. Если предмет принадлежит игроку, то они получат уведомление об удалении предмета. Таким образом, предметы будут удалены только в случае, если они не принадлежат игрокам. Пожалуйста, протестируйте данный код перед использованием на продакшен сервере.
 
Для улучшения плагина и учета владения предметами игроками, можно внести изменения в код плагина. Добавим проверку наличия киянок и планов постройки у игроков перед их удалением. Вот обновленный вариант плагина:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach (var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                {
                    var player = obj.GetOwnerPlayer();
                    if (player == null)
                    {
                        obj.Kill();
                    }
                    else
                    {
                        // Notify the player that their hammer or build plan has been removed
                        player.ChatMessage("Your hammer or build plan has been removed for server cleanup.");
                    }
                }
            }
        }
    }
}

Этот обновленный плагин будет проверять владение киянками и планами постройки игроками перед их удалением. Если предмет принадлежит игроку, то они получат уведомление об удалении предмета. Таким образом, предметы будут удалены только в случае, если они не принадлежат игрокам. Пожалуйста, протестируйте данный код перед использованием на продакшен сервере.
CleanupTool.cs(25,38): error CS1061: Type `BaseEntity' does not contain a definition for `GetOwnerPlayer' and no extension method `GetOwnerPlayer' of type `BaseEntity' could be found. Are you missing an assembly reference? исправь
 
CleanupTool.cs(25,38): error CS1061: Type `BaseEntity' does not contain a definition for `GetOwnerPlayer' and no extension method `GetOwnerPlayer' of type `BaseEntity' could be found. Are you missing an assembly reference? исправь
Извините за ошибку. Для получения владельца объекта в Rust, нужно использовать другой способ. Вот обновленный вариант плагина с исправленным кодом:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach (var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                {
                    var player = obj.OwnerID;
                    if (player == 0)
                    {
                        obj.Kill();
                    }
                    else
                    {
                        var basePlayer = BasePlayer.FindByID(player);
                        if (basePlayer != null)
                        {
                            basePlayer.ChatMessage("Your hammer or build plan has been removed for server cleanup.");
                        }
                        obj.Kill();
                    }
                }
            }
        }
    }
}

Этот обновленный плагин будет проверять владение киянками и планами постройки игроками перед их удалением. Если предмет принадлежит игроку, то они получат уведомление об удалении предмета. Пожалуйста, протестируйте данный код перед использованием на продакшен сервере.
 
Извините за ошибку. Для получения владельца объекта в Rust, нужно использовать другой способ. Вот обновленный вариант плагина с исправленным кодом:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach (var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                {
                    var player = obj.OwnerID;
                    if (player == 0)
                    {
                        obj.Kill();
                    }
                    else
                    {
                        var basePlayer = BasePlayer.FindByID(player);
                        if (basePlayer != null)
                        {
                            basePlayer.ChatMessage("Your hammer or build plan has been removed for server cleanup.");
                        }
                        obj.Kill();
                    }
                }
            }
        }
    }
}

Этот обновленный плагин будет проверять владение киянками и планами постройки игроками перед их удалением. Если предмет принадлежит игроку, то они получат уведомление об удалении предмета. Пожалуйста, протестируйте данный код перед использованием на продакшен сервере.
Улучши его сделай таймер на время перед проподением
 
Улучши его сделай таймер на время перед проподением
Для добавления таймера перед удалением предметов, можно использовать методы задержки в Rust. Вот обновленный вариант плагина с добавленным таймером на удаление объектов через определенное время:

C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("CleanupTool", "YourName", "1.0.0")]
    class CleanupTool : RustPlugin
    {
        private const string hammerPrefab = "assets/prefabs/weapons/hammer/hammer.prefab";
        private const string buildPlanPrefab = "assets/prefabs/building/buildingplans/wood.buildingplan.prefab";
        private const float delayInSeconds = 60; // 60 seconds delay

        private List<BaseEntity> objectsToDelete = new List<BaseEntity>();

        void OnServerInitialized()
        {
            timer.Once(delayInSeconds, () =>
            {
                foreach (var obj in objectsToDelete)
                {
                    if (obj.IsValid() && !obj.IsDestroyed)
                    {
                        obj.Kill();
                    }
                }
            });
        }

        void Unload()
        {
            var objects = UnityEngine.Object.FindObjectsOfType<BaseEntity>();
            foreach (var obj in objects)
            {
                if (obj.PrefabName == hammerPrefab || obj.PrefabName == buildPlanPrefab)
                {
                    var player = obj.OwnerID;
                    if (player == 0)
                    {
                        objectsToDelete.Add(obj);
                    }
                    else
                    {
                        var basePlayer = BasePlayer.FindByID(player);
                        if (basePlayer != null)
                        {
                            basePlayer.ChatMessage("Your hammer or build plan will be removed for server cleanup in " + delayInSeconds + " seconds.");
                        }
                    }
                }
            }
        }
    }
}

Этот обновленный плагин будет добавлять объекты, которые не принадлежат игрокам, в список для удаления через указанное количество секунд. После истечения времени таймера, все объекты из списка будут удалены. Пожалуйста, протестируйте данный код перед использованием на продакшен сервере.
 
Активность
Пока никто не печатает сообщение

Похожие темы