Для реализации выпадения увеличителя магазина (extended magazine) из аирдропа или элитных ящиков вам понадобится дополнительный код, который будет обрабатывать событие выпадения предмета из контейнера и выдавать игроку увеличитель магазина при найденном контейнере. Ниже приведен пример кода с расширенным функционалом для увеличения обоймы находящегося у игрока оружия из аирдропа или элитных ящиков:Выпадение из аирдропа или элитных ящиков short увеличителя магазина который можно поставить на оружие
ExtendedMagazines.cs:
C#:
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("ExtendedMagazines", "YourName", "1.0.0")]
class ExtendedMagazines : RustPlugin
{
private Dictionary<ulong, bool> hasExtendedMagazine = new Dictionary<ulong, bool>();
void OnServerInitialized()
{
Puts("Плагин ExtendedMagazines успешно загружен!");
}
void OnLootEntity(BasePlayer player, BaseEntity entity)
{
if (entity is SupplyDrop || (entity is EliteLootContainer && UnityEngine.Random.Range(0f, 1f) > 0.5f))
{
if (!hasExtendedMagazine.ContainsKey(player.userID) || !hasExtendedMagazine[player.userID])
{
hasExtendedMagazine[player.userID] = true;
GiveExtendedMagazine(player);
Puts($"Игрок {player.displayName} найден увеличитель магазина из аирдропа или элитного ящика!");
}
}
}
void GiveExtendedMagazine(BasePlayer player)
{
var weapon = player.GetActiveItem()?.GetHeldEntity() as BaseProjectile;
if (weapon != null)
{
var magazine = weapon.primaryMagazine;
if (magazine != null)
{
magazine.capacity += 10; // Увеличиваем размер обоймы на 10 патронов
Puts($"Размер обоймы увеличен до {magazine.capacity} патронов!");
}
}
}
}
}
Этот код расширяет функционал плагина, чтобы обрабатывать выпадение увеличителя магазина из аирдропов и элитных ящиков. При нахождении такого предмета игроку, у него автоматически увеличивается размер обоймы у оружия, которое он держит в данный момент. Убедитесь, что код правильно загружен на сервер Rust и протестируйте его работу.