• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

GPT-3.5 Turbo kkk111999zxookkanuszmjjjjj

Нейросеть GPT-3.5 Turbo доступна всем пользователям. Для доступа к GPT-4 Turbo необходимо приобрести «Prime».
исправь для rust 261 devblog - error CS1061: Type `ProjectileWeaponMod' does not contain a definition for `magazineCapacity' and no extension method `magazineCapacity' of type `ProjectileWeaponMod' could be found. Are you missing an assembly reference?
Для исправления ошибки CS1061 в Rust 261 Devblog, связанной с отсутствием определения для magazineCapacity в типе ProjectileWeaponMod, вам нужно добавить это определение или создать метод расширения для этого свойства.

Вот пример того, как можно создать метод расширения для типа ProjectileWeaponMod и добавить magazineCapacity:

C#:
using System;

namespace YourNamespace
{
    public class ProjectileWeaponMod
    {
        // Предположим, что это ваш класс ProjectileWeaponMod
    }

    public static class ProjectileWeaponModExtensions
    {
        public static int GetMagazineCapacity(this ProjectileWeaponMod weaponMod)
        {
            // Возвращаем значение magazineCapacity или задаем его вручную
            return 30; // Например, устанавливаем вместимость обоймы в 30 патронов
        }
    }
}

В данном примере мы создали метод расширения GetMagazineCapacity, который возвращает значение вместимости обоймы для объектов типа ProjectileWeaponMod. Значение 30 просто для примера и вы можете задать реальное значение в соответствии с вашими требованиями.

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

Надеюсь, этот пример поможет вам исправить ошибку CS1061 в вашем коде для Rust 261 Devblog. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
 
Для исправления ошибки CS1061 в Rust 261 Devblog, связанной с отсутствием определения для magazineCapacity в типе ProjectileWeaponMod, вам нужно добавить это определение или создать метод расширения для этого свойства.

Вот пример того, как можно создать метод расширения для типа ProjectileWeaponMod и добавить magazineCapacity:

C#:
using System;

namespace YourNamespace
{
    public class ProjectileWeaponMod
    {
        // Предположим, что это ваш класс ProjectileWeaponMod
    }

    public static class ProjectileWeaponModExtensions
    {
        public static int GetMagazineCapacity(this ProjectileWeaponMod weaponMod)
        {
            // Возвращаем значение magazineCapacity или задаем его вручную
            return 30; // Например, устанавливаем вместимость обоймы в 30 патронов
        }
    }
}

В данном примере мы создали метод расширения GetMagazineCapacity, который возвращает значение вместимости обоймы для объектов типа ProjectileWeaponMod. Значение 30 просто для примера и вы можете задать реальное значение в соответствии с вашими требованиями.

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

Надеюсь, этот пример поможет вам исправить ошибку CS1061 в вашем коде для Rust 261 Devblog. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
исправь CS1061 для 261 девблога
 

Вложения

  • WeaponChanger.cs
    6 KB · Просмотры: 0
исправь CS1061 для 261 девблога
Для исправления ошибки CS1061 в Rust 261 Devblog, связанной с отсутствием определения для magazineCapacity в типе ProjectileWeaponMod, вам нужно добавить это определение или создать метод расширения для этого свойства.

В следующем коде представлен пример метода расширения для типа ProjectileWeaponMod, который добавляет свойство magazineCapacity:

C#:
using System;

namespace YourNamespace
{
    public class ProjectileWeaponMod
    {
        // Допустим, это ваш класс ProjectileWeaponMod
        public int magazineCapacity { get; set; }
    }

    public static class ProjectileWeaponModExtensions
    {
        public static int GetMagazineCapacity(this ProjectileWeaponMod weaponMod)
        {
            return weaponMod.magazineCapacity;
        }
    }
}

В этом примере мы добавили свойство magazineCapacity к классу ProjectileWeaponMod и создали метод расширения GetMagazineCapacity, который возвращает значение magazineCapacity для объектов типа ProjectileWeaponMod.

После внесения указанных изменений в ваш код, убедитесь, что код успешно компилируется и ошибка CS1061 больше не возникает. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
 
Для исправления ошибки CS1061 в Rust 261 Devblog, связанной с отсутствием определения для magazineCapacity в типе ProjectileWeaponMod, вам нужно добавить это определение или создать метод расширения для этого свойства.

В следующем коде представлен пример метода расширения для типа ProjectileWeaponMod, который добавляет свойство magazineCapacity:

C#:
using System;

namespace YourNamespace
{
    public class ProjectileWeaponMod
    {
        // Допустим, это ваш класс ProjectileWeaponMod
        public int magazineCapacity { get; set; }
    }

    public static class ProjectileWeaponModExtensions
    {
        public static int GetMagazineCapacity(this ProjectileWeaponMod weaponMod)
        {
            return weaponMod.magazineCapacity;
        }
    }
}

В этом примере мы добавили свойство magazineCapacity к классу ProjectileWeaponMod и создали метод расширения GetMagazineCapacity, который возвращает значение magazineCapacity для объектов типа ProjectileWeaponMod.

После внесения указанных изменений в ваш код, убедитесь, что код успешно компилируется и ошибка CS1061 больше не возникает. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
изменить для rust 261 devblog

private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
var size = permission.UserHasPermission(playerID, settings.permission) ? settings.permSize : settings.size;
foreach (BaseEntity child in weapon.children)
{
if (child.ShortPrefabName != "extendedmags.entity")
{
continue;
}
ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
weapon.primaryMagazine.capacity = (int)(size * magazine.magazineCapacity.scalar);
weapon.SendNetworkUpdateImmediate();
return;
}
weapon.primaryMagazine.capacity = size;
weapon.SendNetworkUpdateImmediate();
 
изменить для rust 261 devblog

private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
var size = permission.UserHasPermission(playerID, settings.permission) ? settings.permSize : settings.size;
foreach (BaseEntity child in weapon.children)
{
if (child.ShortPrefabName != "extendedmags.entity")
{
continue;
}
ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
weapon.primaryMagazine.capacity = (int)(size * magazine.magazineCapacity.scalar);
weapon.SendNetworkUpdateImmediate();
return;
}
weapon.primaryMagazine.capacity = size;
weapon.SendNetworkUpdateImmediate();
Для изменения кода в методе ChangeClip в Rust 261 Devblog и избежания ошибки CS1061, вам нужно убедиться, что тип ProjectileWeaponMod содержит свойство magazineCapacity. Если это свойство не определено в типе ProjectileWeaponMod, вы можете добавить его или использовать другие доступные свойства для настройки вместимости обоймы.

Вот обновленный код с учетом возможного отсутствия свойства magazineCapacity:

C#:
private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
    var size = permission.UserHasPermission(playerID, settings.permission) ? settings.permSize : settings.size;
    foreach (BaseEntity child in weapon.children)
    {
        if (child.ShortPrefabName != "extendedmags.entity")
        {
            continue;
        }
        
        // Проверка, что child является ProjectileWeaponMod
        ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
        if (magazine != null)
        {
            // Используем другое свойство (например, capacity) для настройки вместимости обоймы
            weapon.primaryMagazine.capacity = (int)(size * magazine.capacity);
            weapon.SendNetworkUpdateImmediate();
            return;
        }
    }
    
    // Если extendedmags.entity не найден или не содержит magazineCapacity
    weapon.primaryMagazine.capacity = size;
    weapon.SendNetworkUpdateImmediate();
}

В этом обновленном коде мы использовали свойство capacity вместо magazineCapacity для настройки вместимости обоймы, если magazineCapacity не определено в типе ProjectileWeaponMod.

Пожалуйста, убедитесь, что тип ProjectileWeaponMod имеет соответствующие свойства для настройки вместимости обоймы, либо адаптируйте код с учетом имеющихся свойств. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
 
Для изменения кода в методе ChangeClip в Rust 261 Devblog и избежания ошибки CS1061, вам нужно убедиться, что тип ProjectileWeaponMod содержит свойство magazineCapacity. Если это свойство не определено в типе ProjectileWeaponMod, вы можете добавить его или использовать другие доступные свойства для настройки вместимости обоймы.

Вот обновленный код с учетом возможного отсутствия свойства magazineCapacity:

C#:
private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
    var size = permission.UserHasPermission(playerID, settings.permission) ? settings.permSize : settings.size;
    foreach (BaseEntity child in weapon.children)
    {
        if (child.ShortPrefabName != "extendedmags.entity")
        {
            continue;
        }
       
        // Проверка, что child является ProjectileWeaponMod
        ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
        if (magazine != null)
        {
            // Используем другое свойство (например, capacity) для настройки вместимости обоймы
            weapon.primaryMagazine.capacity = (int)(size * magazine.capacity);
            weapon.SendNetworkUpdateImmediate();
            return;
        }
    }
   
    // Если extendedmags.entity не найден или не содержит magazineCapacity
    weapon.primaryMagazine.capacity = size;
    weapon.SendNetworkUpdateImmediate();
}

В этом обновленном коде мы использовали свойство capacity вместо magazineCapacity для настройки вместимости обоймы, если magazineCapacity не определено в типе ProjectileWeaponMod.

Пожалуйста, убедитесь, что тип ProjectileWeaponMod имеет соответствующие свойства для настройки вместимости обоймы, либо адаптируйте код с учетом имеющихся свойств. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
переделать прикрепленый файл под 261 девблог
 

Вложения

  • WeaponChanger.cs
    6 KB · Просмотры: 0
переделать прикрепленый файл под 261 девблог
К сожалению, я не могу просматривать или работать с прикрепленными файлами. Однако, если вы предоставите мне содержимое файла или его часть, я с удовольствием помогу вам переработать код под Rust 261 Devblog. Пожалуйста, скопируйте и вставьте соответствующий участок кода сюда, и мы вместе рассмотрим его и внесем необходимые изменения.
 
К сожалению, я не могу просматривать или работать с прикрепленными файлами. Однако, если вы предоставите мне содержимое файла или его часть, я с удовольствием помогу вам переработать код под Rust 261 Devblog. Пожалуйста, скопируйте и вставьте соответствующий участок кода сюда, и мы вместе рассмотрим его и внесем необходимые изменения.
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Oxide.Plugins
{
[Info("Weapon Changer", "DezLife", "1.0.4")]
[Description("Change weapon stats on your server")]
public class WeaponChanger : RustPlugin
{
#region Vars

private Dictionary<string, WeaponEntry> weapons = new Dictionary<string, WeaponEntry>();

#endregion

#region Oxide Hooks

private void OnServerInitialized()
{
if (config.weapons.Count == 0)
{
GetWeapons();
}

foreach (var value in config.weapons)
{
weapons.Add(value.shortname, value);
permission.RegisterPermission(value.config.clip.permission, this);
}
}

private void OnItemCraftFinished(ItemCraftTask task, Item item, ItemCrafter craft)
{
CheckItem(item, craft?.owner?.UserIDString ?? "0");
}

private void OnItemAddedToContainer(ItemContainer container, Item item)
{
CheckItem(item, container.playerOwner?.UserIDString ?? "0");
}

private void OnWeaponReload(BaseProjectile weapon, BasePlayer player)
{
CheckItem(weapon.GetItem(), player?.UserIDString);
}

#endregion

#region Core

private void GetWeapons()
{
foreach (var item in ItemManager.itemList)
{
if (item.category != ItemCategory.Weapon)
{
continue;
}

var weapon = item.GetComponent<ItemModEntity>()?.entityPrefab?.Get()?.GetComponent<BaseProjectile>();
if (weapon == null)
{
continue;
}

var size = weapon.primaryMagazine.definition.builtInSize;

config.weapons.Add(new WeaponEntry
{
shortname = item.shortname,
enabled = false,
config = new WeaponConfig
{
clip = new ClipSettings
{
size = size,
permission = $"weaponchanger.clip.{item.shortname}",
permSize = size + 10
}
}
});
}

SaveConfig();
}

private void CheckItem(Item item, string playerID)
{
var weapon = item?.GetHeldEntity()?.GetComponent<BaseProjectile>();
if (weapon == null) { return; }
var name = item.info.shortname;
var data = (WeaponEntry)null;

if (weapons.TryGetValue(name, out data) == false)
{
return;
}

if (data.enabled == false)
{
return;
}

ChangeClip(weapon, data.config.clip, playerID);
weapon.SendNetworkUpdate();
}

private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
var size = permission.UserHasPermission(playerID, settings.permission) ? settings.permSize : settings.size;
foreach (BaseEntity child in weapon.children)
{
if (child.ShortPrefabName != "extendedmags.entity")
{
continue;
}
ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
weapon.primaryMagazine.capacity = (int)(size * magazine.capacity);
weapon.SendNetworkUpdateImmediate();
return;
}
weapon.primaryMagazine.capacity = size;
weapon.SendNetworkUpdateImmediate();
}

#endregion

#region Configuration 1.1.0

private static ConfigData config;

private class ConfigData
{
[JsonProperty(PropertyName = "List")]
public List<WeaponEntry> weapons = new List<WeaponEntry>();
}

private ConfigData GetDefaultConfig()
{
return new ConfigData
{
weapons = new List<WeaponEntry>()
};
}

protected override void LoadConfig()
{
base.LoadConfig();

try
{
config = Config.ReadObject<ConfigData>();

if (config == null)
{
LoadDefaultConfig();
}
}
catch
{
PrintError("Configuration file is corrupt! Unloading plugin...");
return;
}

SaveConfig();
}

protected override void LoadDefaultConfig()
{
config = GetDefaultConfig();
}

protected override void SaveConfig()
{
Config.WriteObject(config);
}

#endregion

#region Classes

private class WeaponEntry
{
[JsonProperty(PropertyName = "Shortname")]
public string shortname;

[JsonProperty(PropertyName = "Enabled")]
public bool enabled;

[JsonProperty(PropertyName = "Settings")]
public WeaponConfig config;
}

private class WeaponConfig
{
[JsonProperty(PropertyName = "Magazine")]
public ClipSettings clip;
}

private class ClipSettings
{
[JsonProperty(PropertyName = "Size")]
public int size;

[JsonProperty(PropertyName = "Permission")]
public string permission;

[JsonProperty(PropertyName = "Size with permission")]
public int permSize;
}

#endregion
}
}
 
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Oxide.Plugins
{
[Info("Weapon Changer", "DezLife", "1.0.4")]
[Description("Change weapon stats on your server")]
public class WeaponChanger : RustPlugin
{
#region Vars

private Dictionary<string, WeaponEntry> weapons = new Dictionary<string, WeaponEntry>();

#endregion

#region Oxide Hooks

private void OnServerInitialized()
{
if (config.weapons.Count == 0)
{
GetWeapons();
}

foreach (var value in config.weapons)
{
weapons.Add(value.shortname, value);
permission.RegisterPermission(value.config.clip.permission, this);
}
}

private void OnItemCraftFinished(ItemCraftTask task, Item item, ItemCrafter craft)
{
CheckItem(item, craft?.owner?.UserIDString ?? "0");
}

private void OnItemAddedToContainer(ItemContainer container, Item item)
{
CheckItem(item, container.playerOwner?.UserIDString ?? "0");
}

private void OnWeaponReload(BaseProjectile weapon, BasePlayer player)
{
CheckItem(weapon.GetItem(), player?.UserIDString);
}

#endregion

#region Core

private void GetWeapons()
{
foreach (var item in ItemManager.itemList)
{
if (item.category != ItemCategory.Weapon)
{
continue;
}

var weapon = item.GetComponent<ItemModEntity>()?.entityPrefab?.Get()?.GetComponent<BaseProjectile>();
if (weapon == null)
{
continue;
}

var size = weapon.primaryMagazine.definition.builtInSize;

config.weapons.Add(new WeaponEntry
{
shortname = item.shortname,
enabled = false,
config = new WeaponConfig
{
clip = new ClipSettings
{
size = size,
permission = $"weaponchanger.clip.{item.shortname}",
permSize = size + 10
}
}
});
}

SaveConfig();
}

private void CheckItem(Item item, string playerID)
{
var weapon = item?.GetHeldEntity()?.GetComponent<BaseProjectile>();
if (weapon == null) { return; }
var name = item.info.shortname;
var data = (WeaponEntry)null;

if (weapons.TryGetValue(name, out data) == false)
{
return;
}

if (data.enabled == false)
{
return;
}

ChangeClip(weapon, data.config.clip, playerID);
weapon.SendNetworkUpdate();
}

private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
var size = permission.UserHasPermission(playerID, settings.permission) ? settings.permSize : settings.size;
foreach (BaseEntity child in weapon.children)
{
if (child.ShortPrefabName != "extendedmags.entity")
{
continue;
}
ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
weapon.primaryMagazine.capacity = (int)(size * magazine.capacity);
weapon.SendNetworkUpdateImmediate();
return;
}
weapon.primaryMagazine.capacity = size;
weapon.SendNetworkUpdateImmediate();
}

#endregion

#region Configuration 1.1.0

private static ConfigData config;

private class ConfigData
{
[JsonProperty(PropertyName = "List")]
public List<WeaponEntry> weapons = new List<WeaponEntry>();
}

private ConfigData GetDefaultConfig()
{
return new ConfigData
{
weapons = new List<WeaponEntry>()
};
}

protected override void LoadConfig()
{
base.LoadConfig();

try
{
config = Config.ReadObject<ConfigData>();

if (config == null)
{
LoadDefaultConfig();
}
}
catch
{
PrintError("Configuration file is corrupt! Unloading plugin...");
return;
}

SaveConfig();
}

protected override void LoadDefaultConfig()
{
config = GetDefaultConfig();
}

protected override void SaveConfig()
{
Config.WriteObject(config);
}

#endregion

#region Classes

private class WeaponEntry
{
[JsonProperty(PropertyName = "Shortname")]
public string shortname;

[JsonProperty(PropertyName = "Enabled")]
public bool enabled;

[JsonProperty(PropertyName = "Settings")]
public WeaponConfig config;
}

private class WeaponConfig
{
[JsonProperty(PropertyName = "Magazine")]
public ClipSettings clip;
}

private class ClipSettings
{
[JsonProperty(PropertyName = "Size")]
public int size;

[JsonProperty(PropertyName = "Permission")]
public string permission;

[JsonProperty(PropertyName = "Size with permission")]
public int permSize;
}

#endregion
}
}
Вот обновленный код для плагина "Weapon Changer" под Rust 261 Devblog:

C#:
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Oxide.Plugins
{
    [Info("Weapon Changer", "DezLife", "1.0.4")]
    [Description("Change weapon stats on your server")]
    public class WeaponChanger : RustPlugin
    {
        private Dictionary<string, WeaponEntry> weapons = new Dictionary<string, WeaponEntry>();

        private void OnServerInitialized()
        {
            if (config.Weapons.Count == 0)
            {
                GetWeapons();
            }

            foreach (var value in config.Weapons)
            {
                weapons.Add(value.Shortname, value);
                permission.RegisterPermission(value.Config.Clip.Permission, this);
            }
        }

        private void OnItemCraftFinished(ItemCraftTask task, Item item, ItemCrafter craft)
        {
            CheckItem(item, craft?.ownerPlayer?.userID.ToString() ?? "0");
        }

        private void OnItemAddedToContainer(ItemContainer container, Item item)
        {
            CheckItem(item, container.playerOwner?.userID.ToString() ?? "0");
        }

        private void OnWeaponReload(BaseProjectile weapon, BasePlayer player)
        {
            CheckItem(weapon.GetItem(), player?.userID.ToString());
        }

        private void GetWeapons()
        {
            foreach (var item in ItemManager.itemList)
            {
                if (item?.info?.category != ItemCategory.Weapon)
                {
                    continue;
                }

                var weapon = item.GetHeldEntity() as BaseProjectile;
                if (weapon == null)
                {
                    continue;
                }

                var size = weapon.primaryMagazine.contents?.capacity ?? 0;

                config.Weapons.Add(new WeaponEntry
                {
                    Shortname = item.info.shortname,
                    Enabled = false,
                    Config = new WeaponConfig
                    {
                        Clip = new ClipSettings
                        {
                            Size = size,
                            Permission = $"weaponchanger.clip.{item.info.shortname}",
                            PermSize = size + 10
                        }
                    }
                });
            }

            SaveConfig();
        }

        private void CheckItem(Item item, string playerID)
        {
            var weapon = item.GetHeldEntity() as BaseProjectile;
            if (weapon == null) { return; }
            var name = item.info.shortname;
            var data = (WeaponEntry)null;

            if (weapons.TryGetValue(name, out data) == false)
            {
                return;
            }

            if (data.Enabled == false)
            {
                return;
            }

            ChangeClip(weapon, data.Config.Clip, playerID);
            weapon.SendNetworkUpdate();
        }

        private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
        {
            var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
            foreach (BaseEntity child in weapon.children)
            {
                if (child.ShortPrefabName != "extendedmags.entity")
                {
                    continue;
                }
                ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
                if (magazine != null)
                {
                    weapon.primaryMagazine.capacity = (int)(size * magazine.capacity);
                    weapon.SendNetworkUpdateImmediate();
                    return;
                }
            }
            weapon.primaryMagazine.capacity = size;
            weapon.SendNetworkUpdateImmediate();
        }

        private static ConfigData config;

        private class ConfigData
        {
            [JsonProperty(PropertyName = "List")]
            public List<WeaponEntry> Weapons = new List<WeaponEntry>();
        }

        private ConfigData GetDefaultConfig()
        {
            return new ConfigData
            {
                Weapons = new List<WeaponEntry>()
            };
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();

            try
            {
                config = Config.ReadObject<ConfigData>();

                if (config == null)
                {
                    LoadDefaultConfig();
                }
            }
            catch
            {
                PrintError("Configuration file is corrupt! Unloading plugin...");
                return;
            }

            SaveConfig();
        }

        protected override void LoadDefaultConfig()
        {
            config = GetDefaultConfig();
        }

        protected override void SaveConfig()
        {
            Config.WriteObject(config);
        }

        private class WeaponEntry
        {
            [JsonProperty(PropertyName = "Shortname")]
            public string Shortname;

            [JsonProperty(PropertyName = "Enabled")]
            public bool Enabled;

            [JsonProperty(PropertyName = "Settings")]
            public WeaponConfig Config;
        }

        private class WeaponConfig
        {
            [JsonProperty(PropertyName = "Magazine")]
            public ClipSettings Clip;
        }

        private class ClipSettings
        {
            [JsonProperty(PropertyName = "Size")]
            public int Size;

            [JsonProperty(PropertyName = "Permission")]
            public string Permission;

            [JsonProperty(PropertyName = "Size with permission")]
            public int PermSize;
        }
    }
}

Пожалуйста, перепроверьте и адаптируйте код под вашу среду разработки, если это необходимо. Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться!
 
Вот обновленный код для плагина "Weapon Changer" под Rust 261 Devblog:

C#:
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Oxide.Plugins
{
    [Info("Weapon Changer", "DezLife", "1.0.4")]
    [Description("Change weapon stats on your server")]
    public class WeaponChanger : RustPlugin
    {
        private Dictionary<string, WeaponEntry> weapons = new Dictionary<string, WeaponEntry>();

        private void OnServerInitialized()
        {
            if (config.Weapons.Count == 0)
            {
                GetWeapons();
            }

            foreach (var value in config.Weapons)
            {
                weapons.Add(value.Shortname, value);
                permission.RegisterPermission(value.Config.Clip.Permission, this);
            }
        }

        private void OnItemCraftFinished(ItemCraftTask task, Item item, ItemCrafter craft)
        {
            CheckItem(item, craft?.ownerPlayer?.userID.ToString() ?? "0");
        }

        private void OnItemAddedToContainer(ItemContainer container, Item item)
        {
            CheckItem(item, container.playerOwner?.userID.ToString() ?? "0");
        }

        private void OnWeaponReload(BaseProjectile weapon, BasePlayer player)
        {
            CheckItem(weapon.GetItem(), player?.userID.ToString());
        }

        private void GetWeapons()
        {
            foreach (var item in ItemManager.itemList)
            {
                if (item?.info?.category != ItemCategory.Weapon)
                {
                    continue;
                }

                var weapon = item.GetHeldEntity() as BaseProjectile;
                if (weapon == null)
                {
                    continue;
                }

                var size = weapon.primaryMagazine.contents?.capacity ?? 0;

                config.Weapons.Add(new WeaponEntry
                {
                    Shortname = item.info.shortname,
                    Enabled = false,
                    Config = new WeaponConfig
                    {
                        Clip = new ClipSettings
                        {
                            Size = size,
                            Permission = $"weaponchanger.clip.{item.info.shortname}",
                            PermSize = size + 10
                        }
                    }
                });
            }

            SaveConfig();
        }

        private void CheckItem(Item item, string playerID)
        {
            var weapon = item.GetHeldEntity() as BaseProjectile;
            if (weapon == null) { return; }
            var name = item.info.shortname;
            var data = (WeaponEntry)null;

            if (weapons.TryGetValue(name, out data) == false)
            {
                return;
            }

            if (data.Enabled == false)
            {
                return;
            }

            ChangeClip(weapon, data.Config.Clip, playerID);
            weapon.SendNetworkUpdate();
        }

        private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
        {
            var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
            foreach (BaseEntity child in weapon.children)
            {
                if (child.ShortPrefabName != "extendedmags.entity")
                {
                    continue;
                }
                ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
                if (magazine != null)
                {
                    weapon.primaryMagazine.capacity = (int)(size * magazine.capacity);
                    weapon.SendNetworkUpdateImmediate();
                    return;
                }
            }
            weapon.primaryMagazine.capacity = size;
            weapon.SendNetworkUpdateImmediate();
        }

        private static ConfigData config;

        private class ConfigData
        {
            [JsonProperty(PropertyName = "List")]
            public List<WeaponEntry> Weapons = new List<WeaponEntry>();
        }

        private ConfigData GetDefaultConfig()
        {
            return new ConfigData
            {
                Weapons = new List<WeaponEntry>()
            };
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();

            try
            {
                config = Config.ReadObject<ConfigData>();

                if (config == null)
                {
                    LoadDefaultConfig();
                }
            }
            catch
            {
                PrintError("Configuration file is corrupt! Unloading plugin...");
                return;
            }

            SaveConfig();
        }

        protected override void LoadDefaultConfig()
        {
            config = GetDefaultConfig();
        }

        protected override void SaveConfig()
        {
            Config.WriteObject(config);
        }

        private class WeaponEntry
        {
            [JsonProperty(PropertyName = "Shortname")]
            public string Shortname;

            [JsonProperty(PropertyName = "Enabled")]
            public bool Enabled;

            [JsonProperty(PropertyName = "Settings")]
            public WeaponConfig Config;
        }

        private class WeaponConfig
        {
            [JsonProperty(PropertyName = "Magazine")]
            public ClipSettings Clip;
        }

        private class ClipSettings
        {
            [JsonProperty(PropertyName = "Size")]
            public int Size;

            [JsonProperty(PropertyName = "Permission")]
            public string Permission;

            [JsonProperty(PropertyName = "Size with permission")]
            public int PermSize;
        }
    }
}

Пожалуйста, перепроверьте и адаптируйте код под вашу среду разработки, если это необходимо. Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться!
ошибка cs1061
 
Для исправления ошибки CS1061 в вашем коде, связанной с тем, что тип ProjectileWeaponMod не содержит определения для capacity, вам необходимо добавить соответствующее определение в ваш код. Предполагается, что capacity - это свойство, которое вы пытаетесь использовать. Вам нужно уточнить, где и как это свойство определено в вашем проекте.

Предположим, что capacity является свойством в классе ProjectileWeaponMod. Тогда вам нужно убедиться, что у класса ProjectileWeaponMod есть соответствующее свойство capacity. В противном случае вам нужно добавить это свойство к классу ProjectileWeaponMod или проверить, может быть, вы имели в виду другое свойство.

Пример добавления свойства capacity к классу ProjectileWeaponMod может выглядеть так:

C#:
public class ProjectileWeaponMod
{
    public int capacity { get; set; } // Добавляем свойство capacity
    // Другие свойства и методы класса
}

Удостоверьтесь, что тип ProjectileWeaponMod имеет определение для capacity или замените capacity на соответствующее свойство, которое действительно присутствует в вашем коде.

После внесения соответствующих изменений в ваш код попробуйте скомпилировать его снова, и ошибка CS1061 не должна возникать. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
 
Вот обновленный код для плагина "Weapon Changer" под Rust 261 Devblog:

C#:
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Oxide.Plugins
{
    [Info("Weapon Changer", "DezLife", "1.0.4")]
    [Description("Change weapon stats on your server")]
    public class WeaponChanger : RustPlugin
    {
        private Dictionary<string, WeaponEntry> weapons = new Dictionary<string, WeaponEntry>();

        private void OnServerInitialized()
        {
            if (config.Weapons.Count == 0)
            {
                GetWeapons();
            }

            foreach (var value in config.Weapons)
            {
                weapons.Add(value.Shortname, value);
                permission.RegisterPermission(value.Config.Clip.Permission, this);
            }
        }

        private void OnItemCraftFinished(ItemCraftTask task, Item item, ItemCrafter craft)
        {
            CheckItem(item, craft?.ownerPlayer?.userID.ToString() ?? "0");
        }

        private void OnItemAddedToContainer(ItemContainer container, Item item)
        {
            CheckItem(item, container.playerOwner?.userID.ToString() ?? "0");
        }

        private void OnWeaponReload(BaseProjectile weapon, BasePlayer player)
        {
            CheckItem(weapon.GetItem(), player?.userID.ToString());
        }

        private void GetWeapons()
        {
            foreach (var item in ItemManager.itemList)
            {
                if (item?.info?.category != ItemCategory.Weapon)
                {
                    continue;
                }

                var weapon = item.GetHeldEntity() as BaseProjectile;
                if (weapon == null)
                {
                    continue;
                }

                var size = weapon.primaryMagazine.contents?.capacity ?? 0;

                config.Weapons.Add(new WeaponEntry
                {
                    Shortname = item.info.shortname,
                    Enabled = false,
                    Config = new WeaponConfig
                    {
                        Clip = new ClipSettings
                        {
                            Size = size,
                            Permission = $"weaponchanger.clip.{item.info.shortname}",
                            PermSize = size + 10
                        }
                    }
                });
            }

            SaveConfig();
        }

        private void CheckItem(Item item, string playerID)
        {
            var weapon = item.GetHeldEntity() as BaseProjectile;
            if (weapon == null) { return; }
            var name = item.info.shortname;
            var data = (WeaponEntry)null;

            if (weapons.TryGetValue(name, out data) == false)
            {
                return;
            }

            if (data.Enabled == false)
            {
                return;
            }

            ChangeClip(weapon, data.Config.Clip, playerID);
            weapon.SendNetworkUpdate();
        }

        private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
        {
            var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
            foreach (BaseEntity child in weapon.children)
            {
                if (child.ShortPrefabName != "extendedmags.entity")
                {
                    continue;
                }
                ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
                if (magazine != null)
                {
                    weapon.primaryMagazine.capacity = (int)(size * magazine.capacity);
                    weapon.SendNetworkUpdateImmediate();
                    return;
                }
            }
            weapon.primaryMagazine.capacity = size;
            weapon.SendNetworkUpdateImmediate();
        }

        private static ConfigData config;

        private class ConfigData
        {
            [JsonProperty(PropertyName = "List")]
            public List<WeaponEntry> Weapons = new List<WeaponEntry>();
        }

        private ConfigData GetDefaultConfig()
        {
            return new ConfigData
            {
                Weapons = new List<WeaponEntry>()
            };
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();

            try
            {
                config = Config.ReadObject<ConfigData>();

                if (config == null)
                {
                    LoadDefaultConfig();
                }
            }
            catch
            {
                PrintError("Configuration file is corrupt! Unloading plugin...");
                return;
            }

            SaveConfig();
        }

        protected override void LoadDefaultConfig()
        {
            config = GetDefaultConfig();
        }

        protected override void SaveConfig()
        {
            Config.WriteObject(config);
        }

        private class WeaponEntry
        {
            [JsonProperty(PropertyName = "Shortname")]
            public string Shortname;

            [JsonProperty(PropertyName = "Enabled")]
            public bool Enabled;

            [JsonProperty(PropertyName = "Settings")]
            public WeaponConfig Config;
        }

        private class WeaponConfig
        {
            [JsonProperty(PropertyName = "Magazine")]
            public ClipSettings Clip;
        }

        private class ClipSettings
        {
            [JsonProperty(PropertyName = "Size")]
            public int Size;

            [JsonProperty(PropertyName = "Permission")]
            public string Permission;

            [JsonProperty(PropertyName = "Size with permission")]
            public int PermSize;
        }
    }
}

Пожалуйста, перепроверьте и адаптируйте код под вашу среду разработки, если это необходимо. Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться!
исправь error CS1061: Type `ProjectileWeaponMod' does not contain a definition for `capacity' and no extension method `capacity' of type `ProjectileWeaponMod' could be found. Are you missing an assembly reference?
 
исправь error CS1061: Type `ProjectileWeaponMod' does not contain a definition for `capacity' and no extension method `capacity' of type `ProjectileWeaponMod' could be found. Are you missing an assembly reference?
Ошибка CS1061 указывает на то, что компилятор не может найти определение для свойства capacity в типе ProjectileWeaponMod. Для решения этой проблемы вам нужно убедиться, что тип ProjectileWeaponMod содержит свойство capacity или добавить это свойство, если оно отсутствует.

Прежде всего, убедитесь, что у типа ProjectileWeaponMod действительно есть свойство capacity. Если свойство capacity не определено непосредственно в классе ProjectileWeaponMod, возможно, оно находится в одном из его базовых классов или требуется использование другого свойства для настройки вместимости обоймы.

Вот пример того, как можно обновить метод ChangeClip для установки вместимости обоймы с использованием доступного свойства в классе ProjectileWeaponMod:

C#:
private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
    var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
    foreach (BaseEntity child in weapon.children)
    {
        if (child.ShortPrefabName != "extendedmags.entity")
        {
            continue;
        }
        ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
        if (magazine != null)
        {
            // Предположим, что вместимость обоймы задается другим свойством, например, clipSize
            weapon.primaryMagazine.capacity = (int)(size * magazine.clipSize);
            weapon.SendNetworkUpdateImmediate();
            return;
        }
    }
    weapon.primaryMagazine.capacity = size;
    weapon.SendNetworkUpdateImmediate();
}

В этом примере мы предположили, что вместимость обоймы задается свойством clipSize в классе ProjectileWeaponMod. Пожалуйста, замените clipSize на соответствующее свойство, которое фактически присутствует в вашем коде.

После внесения соответствующих изменений кода, перекомпилируйте проект. Это должно помочь исправить ошибку CS1061. Если проблема остается, убедитесь, что класс ProjectileWeaponMod имеет необходимое свойство или метод для получения вместимости обоймы.
 
Ошибка CS1061 указывает на то, что компилятор не может найти определение для свойства capacity в типе ProjectileWeaponMod. Для решения этой проблемы вам нужно убедиться, что тип ProjectileWeaponMod содержит свойство capacity или добавить это свойство, если оно отсутствует.

Прежде всего, убедитесь, что у типа ProjectileWeaponMod действительно есть свойство capacity. Если свойство capacity не определено непосредственно в классе ProjectileWeaponMod, возможно, оно находится в одном из его базовых классов или требуется использование другого свойства для настройки вместимости обоймы.

Вот пример того, как можно обновить метод ChangeClip для установки вместимости обоймы с использованием доступного свойства в классе ProjectileWeaponMod:

C#:
private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
    var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
    foreach (BaseEntity child in weapon.children)
    {
        if (child.ShortPrefabName != "extendedmags.entity")
        {
            continue;
        }
        ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
        if (magazine != null)
        {
            // Предположим, что вместимость обоймы задается другим свойством, например, clipSize
            weapon.primaryMagazine.capacity = (int)(size * magazine.clipSize);
            weapon.SendNetworkUpdateImmediate();
            return;
        }
    }
    weapon.primaryMagazine.capacity = size;
    weapon.SendNetworkUpdateImmediate();
}

В этом примере мы предположили, что вместимость обоймы задается свойством clipSize в классе ProjectileWeaponMod. Пожалуйста, замените clipSize на соответствующее свойство, которое фактически присутствует в вашем коде.

После внесения соответствующих изменений кода, перекомпилируйте проект. Это должно помочь исправить ошибку CS1061. Если проблема остается, убедитесь, что класс ProjectileWeaponMod имеет необходимое свойство или метод для получения вместимости обоймы.
error CS1061: Type `ProjectileWeaponMod' does not contain a definition for `clipSize' and no extension method `clipSize' of type `ProjectileWeaponMod' could be found. Are you missing an assembly reference?
 
error CS1061: Type `ProjectileWeaponMod' does not contain a definition for `clipSize' and no extension method `clipSize' of type `ProjectileWeaponMod' could be found. Are you missing an assembly reference?
Ошибка CS1061 указывает на то, что компилятор не может найти определение для свойства clipSize в типе ProjectileWeaponMod. Для решения этой проблемы вам необходимо добавить или изменить доступное свойство в классе ProjectileWeaponMod, чтобы использовать его для установки вместимости обоймы в методе ChangeClip.

Предположим, что вместимость обоймы в вашем проекте настраивается через свойство magazineCapacity в классе ProjectileWeaponMod. Тогда вам нужно использовать это свойство вместо clipSize в методе ChangeClip.

Вот пример исправленного кода с использованием свойства magazineCapacity:

C#:
private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
    var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
    foreach (BaseEntity child in weapon.children)
    {
        if (child.ShortPrefabName != "extendedmags.entity")
        {
            continue;
        }
        ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
        if (magazine != null)
        {
            weapon.primaryMagazine.capacity = (int)(size * magazine.magazineCapacity);
            weapon.SendNetworkUpdateImmediate();
            return;
        }
    }
    weapon.primaryMagazine.capacity = size;
    weapon.SendNetworkUpdateImmediate();
}

Пожалуйста, проверьте, что у класса ProjectileWeaponMod есть свойство magazineCapacity или аналогичное свойство, которое определяет вместимость обоймы. Затем замените clipSize на это свойство в методе ChangeClip.

После внесения указанных изменений в код, перекомпилируйте проект. Если после этого ошибка CS1061 все еще возникает, убедитесь, что правильно указаны и используются нужные свойства. Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться.
 
Ошибка CS1061 указывает на то, что компилятор не может найти определение для свойства clipSize в типе ProjectileWeaponMod. Для решения этой проблемы вам необходимо добавить или изменить доступное свойство в классе ProjectileWeaponMod, чтобы использовать его для установки вместимости обоймы в методе ChangeClip.

Предположим, что вместимость обоймы в вашем проекте настраивается через свойство magazineCapacity в классе ProjectileWeaponMod. Тогда вам нужно использовать это свойство вместо clipSize в методе ChangeClip.

Вот пример исправленного кода с использованием свойства magazineCapacity:

C#:
private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
    var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
    foreach (BaseEntity child in weapon.children)
    {
        if (child.ShortPrefabName != "extendedmags.entity")
        {
            continue;
        }
        ProjectileWeaponMod magazine = child as ProjectileWeaponMod;
        if (magazine != null)
        {
            weapon.primaryMagazine.capacity = (int)(size * magazine.magazineCapacity);
            weapon.SendNetworkUpdateImmediate();
            return;
        }
    }
    weapon.primaryMagazine.capacity = size;
    weapon.SendNetworkUpdateImmediate();
}

Пожалуйста, проверьте, что у класса ProjectileWeaponMod есть свойство magazineCapacity или аналогичное свойство, которое определяет вместимость обоймы. Затем замените clipSize на это свойство в методе ChangeClip.

После внесения указанных изменений в код, перекомпилируйте проект. Если после этого ошибка CS1061 все еще возникает, убедитесь, что правильно указаны и используются нужные свойства. Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться.
error CS0841: A local variable `magazine' cannot be used before it is declared
 
error CS0841: A local variable `magazine' cannot be used before it is declared
Ошибка CS0841 указывает на то, что локальная переменная magazine используется до своего объявления в методе. Для устранения этой ошибки необходимо объявить переменную magazine до места её использования в коде.

Простым решением будет переместить объявление переменной magazine перед первым использованием в методе ChangeClip. Вот исправленный код:

C#:
private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
    var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
    ProjectileWeaponMod magazine = null; // Объявляем переменную magazine здесь
    foreach (BaseEntity child in weapon.children)
    {
        if (child.ShortPrefabName != "extendedmags.entity")
        {
            continue;
        }
        magazine = child as ProjectileWeaponMod; // Присваиваем значение переменной magazine здесь
        if (magazine != null)
        {
            weapon.primaryMagazine.capacity = (int)(size * magazine.magazineCapacity);
            weapon.SendNetworkUpdateImmediate();
            return;
        }
    }
    if (magazine == null)
    {
        weapon.primaryMagazine.capacity = size;
        weapon.SendNetworkUpdateImmediate();
    }
}

Путем перемещения объявления переменной magazine в начало метода вы устраните ошибку CS0841. Пожалуйста, примените данное изменение к вашему коду и перекомпилируйте проект. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.
 
Ошибка CS0841 указывает на то, что локальная переменная magazine используется до своего объявления в методе. Для устранения этой ошибки необходимо объявить переменную magazine до места её использования в коде.

Простым решением будет переместить объявление переменной magazine перед первым использованием в методе ChangeClip. Вот исправленный код:

C#:
private void ChangeClip(BaseProjectile weapon, ClipSettings settings, string playerID)
{
    var size = permission.UserHasPermission(playerID, settings.Permission) ? settings.PermSize : settings.Size;
    ProjectileWeaponMod magazine = null; // Объявляем переменную magazine здесь
    foreach (BaseEntity child in weapon.children)
    {
        if (child.ShortPrefabName != "extendedmags.entity")
        {
            continue;
        }
        magazine = child as ProjectileWeaponMod; // Присваиваем значение переменной magazine здесь
        if (magazine != null)
        {
            weapon.primaryMagazine.capacity = (int)(size * magazine.magazineCapacity);
            weapon.SendNetworkUpdateImmediate();
            return;
        }
    }
    if (magazine == null)
    {
        weapon.primaryMagazine.capacity = size;
        weapon.SendNetworkUpdateImmediate();
    }
}

Путем перемещения объявления переменной magazine в начало метода вы устраните ошибку CS0841. Пожалуйста, примените данное изменение к вашему коду и перекомпилируйте проект. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.
FirearmModifier.cs(502,65): error CS0150: A constant value is expected
 
FirearmModifier.cs(502,65): error CS0150: A constant value is expected
Ошибка CS0150 указывает на то, что ожидается константное значение, но в данном случае используется не константное значение в коде. Для исправления этой ошибки вам следует убедиться, что в местах, где требуется константа, действительно используются константы.

Если ошибка происходит на строке 502 в файле FirearmModifier.cs, попробуйте следующие действия:

1. Убедитесь, что в указанной строке используется константа, а не переменная или выражение, которое не является константой. Например, если вы используете enum, убедитесь, что значение, которое вы передаете, является константой enum.

2. Проверьте, что все требуемые константы объявлены и инициализированы правильно в вашем коде. Убедитесь, что значения констант не меняются после их инициализации.

3. Проверьте, что передаваемые значения в методы или операции, которые ожидают константы, действительно являются константами во время компиляции.

Если после выполнения этих действий ошибка CS0150 все еще возникает, вам может потребоваться более детальный анализ кода, чтобы определить, где именно происходит несоответствие ожидаемому константному значению. Попробуйте пересмотреть участок кода вокруг строки 502, чтобы выявить возможные проблемы с константами.

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

Если ошибка происходит на строке 502 в файле FirearmModifier.cs, попробуйте следующие действия:

1. Убедитесь, что в указанной строке используется константа, а не переменная или выражение, которое не является константой. Например, если вы используете enum, убедитесь, что значение, которое вы передаете, является константой enum.

2. Проверьте, что все требуемые константы объявлены и инициализированы правильно в вашем коде. Убедитесь, что значения констант не меняются после их инициализации.

3. Проверьте, что передаваемые значения в методы или операции, которые ожидают константы, действительно являются константами во время компиляции.

Если после выполнения этих действий ошибка CS0150 все еще возникает, вам может потребоваться более детальный анализ кода, чтобы определить, где именно происходит несоответствие ожидаемому константному значению. Попробуйте пересмотреть участок кода вокруг строки 502, чтобы выявить возможные проблемы с константами.

Если у вас возникнут дополнительные вопросы или вам понадобится дополнительная помощь, не стесняйтесь обращаться!
object CanDropActiveItem(BasePlayer player)
{
try
{
Item item = player.GetActiveItem();
if (item == null) return null;

WeaponConfig weaponOptions = FindWeaponOption(item.info.shortname);
if (weaponOptions == null) return null;

if (player == null || player.IsNpc || player is NPCMurderer) return null;

foreach (var perm in weaponOptions.Permissions)
{
if (!permission.UserHasPermission(player.UserIDString, perm)) return true;
if (permission.UserHasPermission(player.UserIDString, perm) &&
weaponOptions.PermissionSettings[perm].DropOnDeath == false) return true;
if (permission.UserHasPermission(player.UserIDString, perm) &&
weaponOptions.PermissionSettings[perm].DropOnDeath) return false;
}
}
catch (System.Exception ex)
{
Puts("CanDropActiveItem threw Exception: " + ex) ;
throw;
}
ошибка cs0150
 
Активность
Пока никто не печатает сообщение