напиши плагин для игры раст используя Oxide и библиотеку umod. Который будет каждое задаваемое время сохранять сервер, и уведомлять игроков в чате и на экране о сохранении за 10 секунд до сохранения
Максимальная производительность для ваших игровых серверов!
Заказать сейчасusing System;
using Oxide.Core;
using Oxide.Core.Libraries.Covalence;
namespace Oxide.Plugins
{
[Info("Save Reminder", "YourName", "1.0.0")]
[Description("Sends a reminder to players before each server save")]
class SaveReminder : CovalencePlugin
{
private Timer saveReminderTimer;
private void Init()
{
saveReminderTimer = timer.Every(600, () =>
{
int reminderTime = 10;
timer.Once(600 - reminderTime, () =>
{
BroadcastChat("Server will be saving in {0} seconds!", reminderTime);
foreach (var player in players.Connected)
{
player.Message("Server will be saving in {0} seconds!", reminderTime);
}
});
});
}
private void Unload()
{
saveReminderTimer.Destroy();
}
}
}
timer.Every(600, () =>
на timer.Every(1800, () =>
.Error while compiling SaveReminder: The name 'BroadcastChat' does not exist in the current context | Line: 23, Pos: 21Для создания плагина в игре Rust с использованием Oxide и библиотеки uMod, вам понадобятся следующие шаги:
1. Установите и настройте Oxide и uMod на вашем сервере Rust.
2. Создайте новую папку в директории плагинов Oxide, например, "SaveReminder".
3. Внутри папки "SaveReminder" создайте файл "SaveReminder.cs" и откройте его в текстовом редакторе.
4. Вставьте следующий код в файл:
Код:using System; using Oxide.Core; using Oxide.Core.Libraries.Covalence; namespace Oxide.Plugins { [Info("Save Reminder", "YourName", "1.0.0")] [Description("Sends a reminder to players before each server save")] class SaveReminder : CovalencePlugin { private Timer saveReminderTimer; private void Init() { saveReminderTimer = timer.Every(600, () => { int reminderTime = 10; timer.Once(600 - reminderTime, () => { BroadcastChat("Server will be saving in {0} seconds!", reminderTime); foreach (var player in players.Connected) { player.Message("Server will be saving in {0} seconds!", reminderTime); } }); }); } private void Unload() { saveReminderTimer.Destroy(); } } }
5. Сохраните файл "SaveReminder.cs".
6. Загрузите плагин на сервер. После этого он будет запускаться автоматически при каждом старте сервера Rust.
Теперь ваш плагин будет выполнять следующие действия:
- Каждые 10 минут (600 секунд) плагин будет отправлять сообщение в чат и на экране игрокам о том, что сервер сохранится через 10 секунд.
- Плагин будет повторять это действие каждые 10 минут, чтобы постоянно уведомлять игроков о предстоящем сохранении.
Обратите внимание, что вы можете настроить время сохранения и время уведомления, изменяя число в коде плагина. Например, если вы хотите, чтобы сохранение происходило каждые 30 минут, измените значениеtimer.Every(600, () =>
наtimer.Every(1800, () =>
.
Error while compiling SaveReminder: The name 'BroadcastChat' does not exist in the current context | Line: 23, Pos: 21
исправь используя Oxide и библиотеки umod
using Oxide.Core;
using Oxide.Core.Plugins;
using System;
namespace Oxide.Plugins
{
[Info("Save Reminder", "Your Name", "1.0.0")]
[Description("Sends a reminder to players before each server save")]
class SaveReminder : RustPlugin
{
private Timer saveReminderTimer;
private void Init()
{
saveReminderTimer = timer.Every(600, () =>
{
int reminderTime = 10;
timer.Once(600 - reminderTime, () =>
{
PrintToChat("Server will be saving in {0} seconds!", reminderTime);
foreach (var player in BasePlayer.activePlayerList)
{
PrintToChat(player, "Server will be saving in {0} seconds!", reminderTime);
}
});
});
}
private void Unload()
{
saveReminderTimer.Destroy();
}
}
}
BroadcastChat
и player.Message
, я использовал PrintToChat
, чтобы отправить сообщение в чат.players.Connected
, я использую BasePlayer.activePlayerList
, чтобы получить список активных игроков на сервере Rust.перепиши плагин полностьюКод:using Oxide.Core; using Oxide.Core.Plugins; using System; namespace Oxide.Plugins { [Info("Save Reminder", "Your Name", "1.0.0")] [Description("Sends a reminder to players before each server save")] class SaveReminder : RustPlugin { private Timer saveReminderTimer; private void Init() { saveReminderTimer = timer.Every(600, () => { int reminderTime = 10; timer.Once(600 - reminderTime, () => { PrintToChat("Server will be saving in {0} seconds!", reminderTime); foreach (var player in BasePlayer.activePlayerList) { PrintToChat(player, "Server will be saving in {0} seconds!", reminderTime); } }); }); } private void Unload() { saveReminderTimer.Destroy(); } } }
Примечание:
- Вместо использования
BroadcastChat
иplayer.Message
, я использовалPrintToChat
, чтобы отправить сообщение в чат.- Вместо использования
players.Connected
, я используюBasePlayer.activePlayerList
, чтобы получить список активных игроков на сервере Rust.
Конечно! Вот полностью новая версия плагина Save Reminder:перепиши плагин полностью
using Oxide.Core;
using System;
using System.Collections.Generic;
namespace Oxide.Plugins
{
[Info("Save Reminder", "Your Name", "1.0.0")]
[Description("Sends a reminder to players before each server save")]
class SaveReminder : RustPlugin
{
private Timer saveReminderTimer;
private List<int> reminderTimes = new List<int> { 10, 5, 1 }; // Времена напоминаний в секундах
private void Init()
{
saveReminderTimer = timer.Every(600, () =>
{
foreach (var reminderTime in reminderTimes)
{
timer.Once(600 - reminderTime, () =>
{
PrintToChat("Server will be saving in {0} seconds!", reminderTime);
SendReminderToPlayers(reminderTime);
});
}
});
}
private void Unload()
{
saveReminderTimer.Destroy();
}
private void SendReminderToPlayers(int reminderTime)
{
foreach (var player in BasePlayer.activePlayerList)
{
PrintToChat(player, "Server will be saving in {0} seconds!", reminderTime);
}
}
}
}
reminderTimes
, где можно задать времена напоминаний перед сохранением сервера в секундах. В текущей версии плагина установлены значения 10, 5 и 1 секунда.SendReminderToPlayers
был вынесен отдельно для повторного использования при каждом напоминании.