Для реализации логики, при которой игроку отображается сообщение "УПАЛ" при его падении и "УБИТ" при его смерти в плагине для Rust на языке C#, вам потребуется добавить обработку событий падения игрока и его смерти. Ниже приведен примерный код, который позволит вам реализовать эту функциональность:
C#:
using Oxide.Core;
using UnityEngine;
namespace YourPluginNamespace
{
public class PlayerStatusPlugin : RustPlugin
{
private void OnPlayerSleepEnded(BasePlayer player)
{
SendStatusMessage(player, "УПАЛ");
}
private void OnPlayerDeath(BasePlayer player, HitInfo info)
{
if (info == null || player == null) return;
SendStatusMessage(player, "УБИТ");
}
private void SendStatusMessage(BasePlayer player, string status)
{
player.ChatMessage(status); // Отправка сообщения игроку
}
private void OnServerInitialized()
{
// Регистрация обработчиков событий
Subscribe(nameof(OnPlayerSleepEnded));
Subscribe(nameof(OnPlayerDeath));
}
private void Unload()
{
// Отписка от событий при выгрузке плагина
Unsubscribe(nameof(OnPlayerSleepEnded));
Unsubscribe(nameof(OnPlayerDeath));
}
}
}
В этом коде метод
OnPlayerSleepEnded
вызывается при окончании сна игрока (падении), а метод
OnPlayerDeath
вызывается при смерти игрока. Оба метода передают сообщение "УПАЛ" или "УБИТ" соответственно.
Убедитесь, что ваш плагин работает корректно и правильно реагирует на события падения и смерти игрока. Пожалуйста, протестируйте этот код на вашем сервере Rust и подстройте его под ваши требования. Если у вас возникнут дополнительные вопросы или понадобится дополнительная помощь, не стесняйтесь обращаться!
Исправь мой код чтобы работало удаление
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
namespace Oxide.Plugins
{
[Info("GoldRustTagChecker", "KET", "1.0.0")]
class GoldRustTagChecker : RustPlugin
{
private List<string> bannedWords = new List<string>
{
"#myrust",
"#darkrust", "#DARKRUST", "#DarkRust", "#dark rust", "#Dark Rust", "#DARK RUST", "#DaRkRuSt", "#dArKrUsT",
"#absoluterust", "#ABSOLUTERUST", "#AbsoluteRust", "#absolute rust", "#Absolute Rust", "#ABSOLUTE RUST", "#AbSoLuTeRuSt", "#aBsOlUtErUsT",
"#dreamrust", "#DREAMRUST", "#DreamRust", "#dream rust", "#Dream Rust", "#DREAM RUST", "#DrEaMrUsT", "#dReAmRuSt",
"#kingrust", "#KINGRUST", "#KingRust", "#king rust", "#King Rust", "#KING RUST", "#KiNgRuSt", "#kInGrUsT",
"#rusthub", "#RUSTHUB", "#RustHub", "#rust hub", "#Rust Hub", "#RUST HUB", "#RuStHuB", "#rUsThUb",
"#sunfine", "#SUNFINE", "#SunFine", "#sun fine", "#Sun Fine", "#SUN FINE", "#SuNfInE", "#sUnFiNe",
"#orbitalrust", "#ORBITALRUST", "#OrbitalRust", "#orbital rust", "#Orbital Rust", "#ORBITAL RUST", "#OrBiTaLrUsT", "#oRbItAlRuSt",
"#orangerust", "#ORANGERUST", "#OrangeRust", "#orange rust", "#Orange Rust", "#ORANGE RUST", "#OrAnGeRuSt", "#oRaNgeRuSt",
"#whiteout", "#WHITEOUT", "#WhiteOut", "#white out", "#White Out", "#WHITE OUT", "#WhItEoUt", "#wHiTeOuT",
"#atomicrust", "#ATOMICRUST", "#AtomicRust", "#atomic rust", "#Atomic Rust", "#ATOMIC RUST", "#AtOmIcRuSt", "#aToMiCrUsT",
"#nukerust", "#NUKERUST", "#NukeRust", "#nuke rust", "#Nuke Rust", "#NUKE RUST", "#NuKeRuSt", "#nUkErUsT",
"#StormRust", "#crimerust"
};
void OnPlayerConnected(IPlayer player)
{
RemoveBannedWordsFromName(player);
}
void OnPlayerRespawned(IPlayer player)
{
timer.Once(0.5f, () => RemoveBannedWordsFromName(player));
}
void RemoveBannedWordsFromName(IPlayer player)
{
foreach (string word in bannedWords)
{
string regexPattern = $@"\s{Regex.Escape(word)}\b|\b{Regex.Escape(word)}\b";
if (Regex.IsMatch(player.Name, regexPattern, RegexOptions.IgnoreCase))
{
string newNick = Regex.Replace(player.Name, regexPattern, "", RegexOptions.IgnoreCase).Trim();
player.Rename(newNick);
Puts($"Запрещенное слово '{word}' удалено из ника игрока {player.Name}");
}
}
}
}
}