Для добавления проверки, залукал ли игрок скрап из ящика, вам нужно дополнить код следующим образом:
C#:
using UnityEngine;
namespace Oxide.Plugins
{
[Info("ScrapCheck", "YourName", "1.0.0")]
[Description("Проверка наличия скрапа в контейнере после его открытия")]
class ScrapCheck : RustPlugin
{
void OnLootEntity(BasePlayer player, BaseEntity entity)
{
StorageContainer container = entity as StorageContainer;
if (container != null && container.ShortPrefabName == "crate_normal")
{
int scrapAmount = 0;
foreach (Item item in container.inventory.itemList)
{
if (item.info.shortname == "scrap")
{
scrapAmount += item.amount;
}
}
if (scrapAmount > 0)
{
if (container is LootContainer)
{
LootContainer lootContainer = container as LootContainer;
if (lootContainer.playerName != null && lootContainer.playerName == player.displayName)
{
player.ChatMessage($"Вы взяли {scrapAmount} скрапа из ящика.");
}
else
{
player.ChatMessage($"Вы не взяли скрап из ящика.");
}
}
}
}
}
}
}
В этом обновленном коде мы добавили дополнительную проверку, используя
LootContainer
, чтобы определить, взял ли игрок скрап из ящика. Если имя игрока, который взял скрап, совпадает с именем текущего игрока, то выводится сообщение о том, что игрок взял скрап из ящика. В противном случае выводится сообщение о том, что игрок не взял скрап из ящика.
Попробуйте использовать этот обновленный код на вашем сервере Rust. Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться.