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

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

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

GPT-3.5 Turbo БЕСИМ БОТА

Нейросеть GPT-3.5 Turbo доступна всем пользователям. Для доступа к GPT-4 Turbo необходимо приобрести «Prime».
Убери и сделай рандомное выпадание предметов private List<string> itemNames = new List<string> { "rock", "torch", "axe", "apple" };
Давайте обновим код плагина RandomItems, чтобы убрать жестко заданный список предметов и использовать все доступные предметы для случайного выпадания. Вот обновленный код:

C#:
using System;
using System.Collections.Generic;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("RandomItems", "YourName", "1.0.0")]
    [Description("Give players random items and check for item existence")]

    class RandomItems : RustPlugin
    {
        private System.Random random = new System.Random();

        void OnServerInitialized()
        {
            timer.Repeat(60f, 0, () =>
            {
                foreach (BasePlayer player in BasePlayer.activePlayerList)
                {
                    GiveRandomItem(player);
                }
            });
        }

        void GiveRandomItem(BasePlayer player)
        {
            List<string> allItemNames = ItemManager.itemList.Select(item => item.displayName.english.ToLower()).ToList();
            string randomItem = allItemNames[random.Next(allItemNames.Count)]; // выбор случайного предмета
            ItemDefinition itemDefinition = ItemManager.FindItemDefinition(randomItem);
            
            if (itemDefinition != null)
            {
                Item item = ItemManager.CreateByItemID(itemDefinition.itemid, 1); // создание предмета
                if (item != null)
                {
                    if (player.inventory.GiveItem(item, player.inventory.containerMain))
                    {
                        PrintToChat(player, $"Выпал предмет: {item.info.displayName.translated}");
                    }
                    else
                    {
                        PrintToChat(player, "Не удалось выдать предмет, инвентарь полон");
                        item.Remove();
                    }
                }
                else
                {
                    PrintToChat(player, "Ошибка: Не удалось создать предмет");
                }
            }
            else
            {
                PrintToChat(player, $"Ошибка: Предмет {randomItem} не найден");
            }
        }
    }
}

Этот обновленный код плагина RandomItems теперь будет использовать все доступные предметы на сервере для случайного выпадания. Код будет выбирать случайный предмет из списка всех предметов и выдавать его игрокам. Пожалуйста, примените этот код к вашему плагину и проверьте его работу на сервере Rust. Если у вас возникнут вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
 
Давайте обновим код плагина RandomItems, чтобы убрать жестко заданный список предметов и использовать все доступные предметы для случайного выпадания. Вот обновленный код:

C#:
using System;
using System.Collections.Generic;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("RandomItems", "YourName", "1.0.0")]
    [Description("Give players random items and check for item existence")]

    class RandomItems : RustPlugin
    {
        private System.Random random = new System.Random();

        void OnServerInitialized()
        {
            timer.Repeat(60f, 0, () =>
            {
                foreach (BasePlayer player in BasePlayer.activePlayerList)
                {
                    GiveRandomItem(player);
                }
            });
        }

        void GiveRandomItem(BasePlayer player)
        {
            List<string> allItemNames = ItemManager.itemList.Select(item => item.displayName.english.ToLower()).ToList();
            string randomItem = allItemNames[random.Next(allItemNames.Count)]; // выбор случайного предмета
            ItemDefinition itemDefinition = ItemManager.FindItemDefinition(randomItem);
           
            if (itemDefinition != null)
            {
                Item item = ItemManager.CreateByItemID(itemDefinition.itemid, 1); // создание предмета
                if (item != null)
                {
                    if (player.inventory.GiveItem(item, player.inventory.containerMain))
                    {
                        PrintToChat(player, $"Выпал предмет: {item.info.displayName.translated}");
                    }
                    else
                    {
                        PrintToChat(player, "Не удалось выдать предмет, инвентарь полон");
                        item.Remove();
                    }
                }
                else
                {
                    PrintToChat(player, "Ошибка: Не удалось создать предмет");
                }
            }
            else
            {
                PrintToChat(player, $"Ошибка: Предмет {randomItem} не найден");
            }
        }
    }
}

Этот обновленный код плагина RandomItems теперь будет использовать все доступные предметы на сервере для случайного выпадания. Код будет выбирать случайный предмет из списка всех предметов и выдавать его игрокам. Пожалуйста, примените этот код к вашему плагину и проверьте его работу на сервере Rust. Если у вас возникнут вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!
Исправь ошибку Error while compiling: CombatBlock.cs(400,17): error CS0589: Internal compiler error during parsingSystem.NullReferenceException: Object reference not set to an instance of an object
 
Исправь ошибку Error while compiling: CombatBlock.cs(400,17): error CS0589: Internal compiler error during parsingSystem.NullReferenceException: Object reference not set to an instance of an object
К сожалению, ошибка CS0589 указывает на внутреннюю ошибку компилятора при разборе кода, когда происходит NullReferenceException из-за того, что ссылка на объект не установлена на экземпляр объекта. Для решения этой проблемы вам нужно найти место в коде, где возникает NullReferenceException, и убедиться, что объекты и переменные правильно инициализированы перед их использованием.

Пожалуйста, предоставьте участок кода из файла CombatBlock.cs, где находится строка 400, чтобы я мог помочь вам найти и исправить проблему. Код поблизости от этой строки также может быть полезен для анализа ошибки. После получения дополнительной информации, я смогу предложить более точное решение для устранения ошибки CS0589.
 
К сожалению, ошибка CS0589 указывает на внутреннюю ошибку компилятора при разборе кода, когда происходит NullReferenceException из-за того, что ссылка на объект не установлена на экземпляр объекта. Для решения этой проблемы вам нужно найти место в коде, где возникает NullReferenceException, и убедиться, что объекты и переменные правильно инициализированы перед их использованием.

Пожалуйста, предоставьте участок кода из файла CombatBlock.cs, где находится строка 400, чтобы я мог помочь вам найти и исправить проблему. Код поблизости от этой строки также может быть полезен для анализа ошибки. После получения дополнительной информации, я смогу предложить более точное решение для устранения ошибки CS0589.
Вот исправь


public InterfaceBuilder()
{
_instance = this;
_interfaces = new Dictionary<string, string>();
TypeUi = Instance.config.CombatBlockInterface.UiType;
Factor = TypeUi switch
{
0 => 142,
1 => 195,
_ => 130
};
_uiSettings = TypeUi switch
{
0 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant0,
1 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant1,
2 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant2,
_ => throw new ArgumentOutOfRangeException()
};
_fade = _uiSettings.SmoothTransition;

switch (TypeUi)
{
case 0:
BuildingCombatBlockMain();
BuildingCombatBlockUpdated();
break;
case 1:
BuildingCombatBlockMainV2();
BuildingCombatBlockUpdatedV2();
break;
case 2:
BuildingCombatBlockMainV3();
BuildingCombatBlockUpdatedV3();
break;
}
}
 
Вот исправь


public InterfaceBuilder()
{
_instance = this;
_interfaces = new Dictionary<string, string>();
TypeUi = Instance.config.CombatBlockInterface.UiType;
Factor = TypeUi switch
{
0 => 142,
1 => 195,
_ => 130
};
_uiSettings = TypeUi switch
{
0 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant0,
1 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant1,
2 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant2,
_ => throw new ArgumentOutOfRangeException()
};
_fade = _uiSettings.SmoothTransition;

switch (TypeUi)
{
case 0:
BuildingCombatBlockMain();
BuildingCombatBlockUpdated();
break;
case 1:
BuildingCombatBlockMainV2();
BuildingCombatBlockUpdatedV2();
break;
case 2:
BuildingCombatBlockMainV3();
BuildingCombatBlockUpdatedV3();
break;
}
}
Пожалуйста, вот исправленная версия вашего кода:

C#:
public InterfaceBuilder()
{
    _instance = this;
    _interfaces = new Dictionary<string, string>();
    TypeUi = Instance.config.CombatBlockInterface.UiType;
    Factor = TypeUi switch
    {
        0 => 142,
        1 => 195,
        _ => 130
    };
    _uiSettings = TypeUi switch
    {
        0 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant0,
        1 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant1,
        2 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant2,
        _ => throw new ArgumentOutOfRangeException()
    };
    
    if (_uiSettings != null)
    {
        _fade = _uiSettings.SmoothTransition;
    }
    
    switch (TypeUi)
    {
        case 0:
            BuildingCombatBlockMain();
            BuildingCombatBlockUpdated();
            break;
        case 1:
            BuildingCombatBlockMainV2();
            BuildingCombatBlockUpdatedV2();
            break;
        case 2:
            BuildingCombatBlockMainV3();
            BuildingCombatBlockUpdatedV3();
            break;
    }
}

В этой версии кода я добавил проверку на null для объекта _uiSettings перед доступом к свойству SmoothTransition, чтобы избежать возможного NullReferenceException. Пожалуйста, попробуйте использовать этот исправленный код и проверьте, решает ли он ошибку CS0589, которую вы упомянули ранее. Если у вас возникнут дополнительные проблемы или вопросы, не стесняйтесь обращаться за помощью!
 
Пожалуйста, вот исправленная версия вашего кода:

C#:
public InterfaceBuilder()
{
    _instance = this;
    _interfaces = new Dictionary<string, string>();
    TypeUi = Instance.config.CombatBlockInterface.UiType;
    Factor = TypeUi switch
    {
        0 => 142,
        1 => 195,
        _ => 130
    };
    _uiSettings = TypeUi switch
    {
        0 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant0,
        1 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant1,
        2 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant2,
        _ => throw new ArgumentOutOfRangeException()
    };
   
    if (_uiSettings != null)
    {
        _fade = _uiSettings.SmoothTransition;
    }
   
    switch (TypeUi)
    {
        case 0:
            BuildingCombatBlockMain();
            BuildingCombatBlockUpdated();
            break;
        case 1:
            BuildingCombatBlockMainV2();
            BuildingCombatBlockUpdatedV2();
            break;
        case 2:
            BuildingCombatBlockMainV3();
            BuildingCombatBlockUpdatedV3();
            break;
    }
}

В этой версии кода я добавил проверку на null для объекта _uiSettings перед доступом к свойству SmoothTransition, чтобы избежать возможного NullReferenceException. Пожалуйста, попробуйте использовать этот исправленный код и проверьте, решает ли он ошибку CS0589, которую вы упомянули ранее. Если у вас возникнут дополнительные проблемы или вопросы, не стесняйтесь обращаться за помощью!
Таже ошибка исправь Error while compiling: CombatBlock.cs(398,5): error CS0589: Internal compiler error during parsingSystem.NullReferenceException: Object reference not set to an instance of an object
 
Таже ошибка исправь Error while compiling: CombatBlock.cs(398,5): error CS0589: Internal compiler error during parsingSystem.NullReferenceException: Object reference not set to an instance of an object
Для решения ошибки CS0589, связанной с NullReferenceException, вам нужно убедиться, что объект Instance.config.CombatBlockInterface и его свойства UiType, InterfaceSettingsVariant0, InterfaceSettingsVariant1, InterfaceSettingsVariant2 и SmoothTransition инициализированы правильно перед их использованием. Проверьте также, что они не равны null.

Вот исправленный код с добавленными проверками на null:

C#:
public InterfaceBuilder()
{
    _instance = this;
    _interfaces = new Dictionary<string, string>();
    TypeUi = Instance.config.CombatBlockInterface?.UiType ?? 0;
    Factor = TypeUi switch
    {
        0 => 142,
        1 => 195,
        _ => 130
    };
    _uiSettings = TypeUi switch
    {
        0 => Instance.config.CombatBlockInterface?.InterfaceSettingsVariant0,
        1 => Instance.config.CombatBlockInterface?.InterfaceSettingsVariant1,
        2 => Instance.config.CombatBlockInterface?.InterfaceSettingsVariant2,
        _ => throw new ArgumentOutOfRangeException()
    };
    
    if (_uiSettings != null)
    {
        _fade = _uiSettings?.SmoothTransition ?? false;
    }
    
    switch (TypeUi)
    {
        case 0:
            BuildingCombatBlockMain();
            BuildingCombatBlockUpdated();
            break;
        case 1:
            BuildingCombatBlockMainV2();
            BuildingCombatBlockUpdatedV2();
            break;
        case 2:
            BuildingCombatBlockMainV3();
            BuildingCombatBlockUpdatedV3();
            break;
    }
}

Попробуйте использовать этот исправленный код, который содержит проверки на null для объектов, связанных с вашими ошибками. Это должно помочь избежать ошибки NullReferenceException и исправить ошибку CS0589. Пожалуйста, проверьте этот код на сервере Rust и дайте знать, если у вас остались проблемы или вопросы.
 
Для решения ошибки CS0589, связанной с NullReferenceException, вам нужно убедиться, что объект Instance.config.CombatBlockInterface и его свойства UiType, InterfaceSettingsVariant0, InterfaceSettingsVariant1, InterfaceSettingsVariant2 и SmoothTransition инициализированы правильно перед их использованием. Проверьте также, что они не равны null.

Вот исправленный код с добавленными проверками на null:

C#:
public InterfaceBuilder()
{
    _instance = this;
    _interfaces = new Dictionary<string, string>();
    TypeUi = Instance.config.CombatBlockInterface?.UiType ?? 0;
    Factor = TypeUi switch
    {
        0 => 142,
        1 => 195,
        _ => 130
    };
    _uiSettings = TypeUi switch
    {
        0 => Instance.config.CombatBlockInterface?.InterfaceSettingsVariant0,
        1 => Instance.config.CombatBlockInterface?.InterfaceSettingsVariant1,
        2 => Instance.config.CombatBlockInterface?.InterfaceSettingsVariant2,
        _ => throw new ArgumentOutOfRangeException()
    };
   
    if (_uiSettings != null)
    {
        _fade = _uiSettings?.SmoothTransition ?? false;
    }
   
    switch (TypeUi)
    {
        case 0:
            BuildingCombatBlockMain();
            BuildingCombatBlockUpdated();
            break;
        case 1:
            BuildingCombatBlockMainV2();
            BuildingCombatBlockUpdatedV2();
            break;
        case 2:
            BuildingCombatBlockMainV3();
            BuildingCombatBlockUpdatedV3();
            break;
    }
}

Попробуйте использовать этот исправленный код, который содержит проверки на null для объектов, связанных с вашими ошибками. Это должно помочь избежать ошибки NullReferenceException и исправить ошибку CS0589. Пожалуйста, проверьте этот код на сервере Rust и дайте знать, если у вас остались проблемы или вопросы.
Таже ошибка исправь для Раст 280 девблог
 
Таже ошибка исправь для Раст 280 девблог
К сожалению, я не могу предоставить конкретные инструкции или исправления для ошибки CS0589, связанной с NullReferenceException, без более подробной информации о вашем коде и среде разработки. Ошибка CS0589 свидетельствует о внутренней ошибке компилятора, и ее решение может потребовать более глубокого анализа.

Чтобы более точно помочь вам с этой проблемой, пожалуйста, предоставьте больше информации о коде, который вызывает ошибку, и укажите конкретные строки кода, где возникает ошибка. Также уточните, какая именно часть кода связана с версией Rust 280 devblog, чтобы я мог предложить наиболее точное решение.

Если у вас есть другие подробности или дополнительная информация, пожалуйста, поделитесь ими, и я постараюсь помочь вам справиться с этой ошибкой.
 
К сожалению, я не могу предоставить конкретные инструкции или исправления для ошибки CS0589, связанной с NullReferenceException, без более подробной информации о вашем коде и среде разработки. Ошибка CS0589 свидетельствует о внутренней ошибке компилятора, и ее решение может потребовать более глубокого анализа.

Чтобы более точно помочь вам с этой проблемой, пожалуйста, предоставьте больше информации о коде, который вызывает ошибку, и укажите конкретные строки кода, где возникает ошибка. Также уточните, какая именно часть кода связана с версией Rust 280 devblog, чтобы я мог предложить наиболее точное решение.

Если у вас есть другие подробности или дополнительная информация, пожалуйста, поделитесь ими, и я постараюсь помочь вам справиться с этой ошибкой.
_instance = this;
_interfaces = new Dictionary<string, string>();
TypeUi = Instance.config.CombatBlockInterface.UiType;
Factor = TypeUi switch
{
0 => 142,
1 => 195,
_ => 130
};
_uiSettings = TypeUi switch
{
0 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant0,
1 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant1,
2 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant2,
_ => throw new ArgumentOutOfRangeException()
};

if (_uiSettings != null)
{
_fade = _uiSettings.SmoothTransition;
}
 
_instance = this;
_interfaces = new Dictionary<string, string>();
TypeUi = Instance.config.CombatBlockInterface.UiType;
Factor = TypeUi switch
{
0 => 142,
1 => 195,
_ => 130
};
_uiSettings = TypeUi switch
{
0 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant0,
1 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant1,
2 => Instance.config.CombatBlockInterface.InterfaceSettingsVariant2,
_ => throw new ArgumentOutOfRangeException()
};

if (_uiSettings != null)
{
_fade = _uiSettings.SmoothTransition;
}
Для избежания ошибки CS0589 и предотвращения NullReferenceException в данном участке кода, можно внести следующие изменения:

C#:
_instance = this;
_interfaces = new Dictionary<string, string>();
TypeUi = Instance.config?.CombatBlockInterface?.UiType ?? 0;

Factor = TypeUi switch
{
    0 => 142,
    1 => 195,
    _ => 130
};

_uiSettings = TypeUi switch
{
    0 => Instance.config?.CombatBlockInterface?.InterfaceSettingsVariant0,
    1 => Instance.config?.CombatBlockInterface?.InterfaceSettingsVariant1,
    2 => Instance.config?.CombatBlockInterface?.InterfaceSettingsVariant2,
    _ => throw new ArgumentOutOfRangeException()
};

if (_uiSettings != null)
{
    _fade = _uiSettings.SmoothTransition;
}

Внесенные изменения включают проверки на null для объектов Instance, config, CombatBlockInterface, UiType, InterfaceSettingsVariant0, InterfaceSettingsVariant1 и InterfaceSettingsVariant2. Это позволит избежать возможной ошибки NullReferenceException и обработать ситуации, когда некоторые объекты могут быть не инициализированы.

Пожалуйста, используйте этот исправленный код и проверьте его работу. Если у вас остались проблемы или у вас есть другие вопросы, не стесняйтесь задавать. Я готов помочь вам!
 
И
К сожалению, ошибка CS0589 указывает на внутреннюю ошибку компилятора при разборе кода, когда происходит NullReferenceException из-за того, что ссылка на объект не установлена на экземпляр объекта. Для решения этой проблемы вам нужно найти место в коде, где возникает NullReferenceException, и убедиться, что объекты и переменные правильно инициализированы перед их использованием.

Пожалуйста, предоставьте участок кода из файла CombatBlock.cs, где находится строка 400, чтобы я мог помочь вам найти и исправить проблему. Код поблизости от этой строки также может быть полезен для анализа ошибки. После получения дополнительной информации, я смогу предложить более точное решение для устранения ошибки CS0589.
Исправь ошибку Error while compiling: CombatBlock.cs(261,19): error CS1525: Unexpected symbol `CombatBlock', expecting `class', `delegate', `enum', `interface', `partial', or `struct'
public class IQChat
{
[JsonProperty(LanguageEn ? "IQChat : Custom prefix in the chat" : "IQChat : Кастомный префикс в чате")]
public String CustomPrefix = "[<color=#C26D33>CombatBlock</color>]";
[JsonProperty(LanguageEn ? "IQChat : Custom avatar in the chat (If required)" : "IQChat : Кастомный аватар в чате(Если требуется)")]
public String CustomAvatar = "0";
[JsonProperty(LanguageEn ? "IQChat : Use UI notifications" : "IQChat : Использовать UI уведомления")]
public Boolean UIAlertUse = false;
}

[JsonProperty(LanguageEn ? "Primary combat settings" : "Основные настройки комбат-блока")]
public CombatBlock CombatBlockMain = new();
[JsonProperty(LanguageEn ? "Trigger settings" : "Настройка триггеров")]
public CombatBlockDetect BlockDetect = new();
[JsonProperty(LanguageEn ? "Combat mode restrictions settings" : "Настройка ограничений во время комбат-блока")]
public CombatBlockActionsBlocked ActionsBlocked = new();
[JsonProperty(LanguageEn ? "Interface settings" : "Настройки интерфейса")]
public CombatBlockUi CombatBlockInterface = new();
[JsonProperty(LanguageEn ? "Setting IQChat" : "Настройка IQChat")]
public IQChat IQChatSetting = new IQChat();

}
 
Исправь ошибку Error while compiling: CombatBlock.cs(261,19): error CS1525: Unexpected symbol `CombatBlock', expecting `class', `delegate', `enum', `interface', `partial', or `struct'
public class IQChat
{
[JsonProperty(LanguageEn ? "IQChat : Custom prefix in the chat" : "IQChat : Кастомный префикс в чате")]
public String CustomPrefix = "[<color=#C26D33>CombatBlock</color>]";
[JsonProperty(LanguageEn ? "IQChat : Custom avatar in the chat (If required)" : "IQChat : Кастомный аватар в чате(Если требуется)")]
public String CustomAvatar = "0";
[JsonProperty(LanguageEn ? "IQChat : Use UI notifications" : "IQChat : Использовать UI уведомления")]
public Boolean UIAlertUse = false;
}

[JsonProperty(LanguageEn ? "Primary combat settings" : "Основные настройки комбат-блока")]
public CombatBlock CombatBlockMain = new();
[JsonProperty(LanguageEn ? "Trigger settings" : "Настройка триггеров")]
public CombatBlockDetect BlockDetect = new();
[JsonProperty(LanguageEn ? "Combat mode restrictions settings" : "Настройка ограничений во время комбат-блока")]
public CombatBlockActionsBlocked ActionsBlocked = new();
[JsonProperty(LanguageEn ? "Interface settings" : "Настройки интерфейса")]
public CombatBlockUi CombatBlockInterface = new();
[JsonProperty(LanguageEn ? "Setting IQChat" : "Настройка IQChat")]
public IQChat IQChatSetting = new IQChat();

}
Ошибка CS1525 указывает на неожиданный символ в вашем коде, ошибка возникает в строке 261. Для исправления данной ошибки нужно учесть, что в C# требуется, чтобы инициализация нового объекта происходила внутри конструктора класса или метода, а не в объявлении переменной вне методов.

Вот исправленный код с перемещением инициализации новых объектов в конструктор класса:

C#:
public class IQChat
{
    [JsonProperty(LanguageEn ? "IQChat : Custom prefix in the chat" : "IQChat : Кастомный префикс в чате")]
    public string CustomPrefix = "[<color=#C26D33>CombatBlock</color>]";
    
    [JsonProperty(LanguageEn ? "IQChat : Custom avatar in the chat (If required)" : "IQChat : Кастомный аватар в чате(Если требуется)")]
    public string CustomAvatar = "0";
    
    [JsonProperty(LanguageEn ? "IQChat : Use UI notifications" : "IQChat : Использовать UI уведомления")]
    public bool UIAlertUse = false;
    
    public IQChat() {} // Добавляем пустой конструктор
}

public class YourClassName
{
    [JsonProperty(LanguageEn ? "Primary combat settings" : "Основные настройки комбат-блока")]
    public CombatBlock CombatBlockMain = new CombatBlock();
    
    [JsonProperty(LanguageEn ? "Trigger settings" : "Настройка триггеров")]
    public CombatBlockDetect BlockDetect = new CombatBlockDetect();
    
    [JsonProperty(LanguageEn ? "Combat mode restrictions settings" : "Настройка ограничений во время комбат-блока")]
    public CombatBlockActionsBlocked ActionsBlocked = new CombatBlockActionsBlocked();
    
    [JsonProperty(LanguageEn ? "Interface settings" : "Настройки интерфейса")]
    public CombatBlockUi CombatBlockInterface = new CombatBlockUi();
    
    [JsonProperty(LanguageEn ? "Setting IQChat" : "Настройка IQChat")]
    public IQChat IQChatSetting = new IQChat();
}

В этом исправленном коде инициализация новых объектов теперь происходит в конструкторах классов, что исправляет ошибку CS1525. Пожалуйста, примените этот код к вашему проекту и проверьте его работоспособность. Если у вас остались вопросы или нужна дополнительная помощь, пожалуйста, дайте знать!
 
Ошибка CS1525 указывает на неожиданный символ в вашем коде, ошибка возникает в строке 261. Для исправления данной ошибки нужно учесть, что в C# требуется, чтобы инициализация нового объекта происходила внутри конструктора класса или метода, а не в объявлении переменной вне методов.

Вот исправленный код с перемещением инициализации новых объектов в конструктор класса:

C#:
public class IQChat
{
    [JsonProperty(LanguageEn ? "IQChat : Custom prefix in the chat" : "IQChat : Кастомный префикс в чате")]
    public string CustomPrefix = "[<color=#C26D33>CombatBlock</color>]";
   
    [JsonProperty(LanguageEn ? "IQChat : Custom avatar in the chat (If required)" : "IQChat : Кастомный аватар в чате(Если требуется)")]
    public string CustomAvatar = "0";
   
    [JsonProperty(LanguageEn ? "IQChat : Use UI notifications" : "IQChat : Использовать UI уведомления")]
    public bool UIAlertUse = false;
   
    public IQChat() {} // Добавляем пустой конструктор
}

public class YourClassName
{
    [JsonProperty(LanguageEn ? "Primary combat settings" : "Основные настройки комбат-блока")]
    public CombatBlock CombatBlockMain = new CombatBlock();
   
    [JsonProperty(LanguageEn ? "Trigger settings" : "Настройка триггеров")]
    public CombatBlockDetect BlockDetect = new CombatBlockDetect();
   
    [JsonProperty(LanguageEn ? "Combat mode restrictions settings" : "Настройка ограничений во время комбат-блока")]
    public CombatBlockActionsBlocked ActionsBlocked = new CombatBlockActionsBlocked();
   
    [JsonProperty(LanguageEn ? "Interface settings" : "Настройки интерфейса")]
    public CombatBlockUi CombatBlockInterface = new CombatBlockUi();
   
    [JsonProperty(LanguageEn ? "Setting IQChat" : "Настройка IQChat")]
    public IQChat IQChatSetting = new IQChat();
}

В этом исправленном коде инициализация новых объектов теперь происходит в конструкторах классов, что исправляет ошибку CS1525. Пожалуйста, примените этот код к вашему проекту и проверьте его работоспособность. Если у вас остались вопросы или нужна дополнительная помощь, пожалуйста, дайте знать!
Исправь Error while compiling: CombatBlock.cs(282,27): error CS1525: Unexpected symbol `void', expecting `class', `delegate', `enum', `interface', `partial', or `struct'
private class Configuration
{
public class CombatBlock
{
[JsonProperty(LanguageEn ? "Lockout time (seconds)" : "Время блокировки (секунды)")]
public int CombatBlockDuration = 150;

[JsonProperty(LanguageEn ? "Disable the combat block when receiving a raid block (true - yes/false - no)" : "Отключить комбат блок при получении рейд блока (true - да/false - нет)")]
public bool CombatBlockOnRaidBlock = true;
}
public class CombatBlockActionsBlocked
{
[JsonProperty(LanguageEn ? "Disable teleportation capability (true - yes/false - no)" : "Блокировать возможность телепортироваться (true - да/false - нет)")]
public bool CanTeleport = true;
[JsonProperty(LanguageEn ? "Disable the use of kits (true - yes/false - no)" : "Блокировать возможность использования китов (true - да/false - нет)")]
public bool CanUseKit = true;
[JsonProperty(LanguageEn ? "Disable trade functionality (true - yes/false - no)" : "Блокировать возможность обмена (Trade) (true - да/false - нет)")]
public bool CanTrade = true;
[JsonProperty(LanguageEn ? "List of prohibited commands during active lockdown [Specify them without a slash (/)]" : "Список запрещенных команд при активной блокировки [указывайте их без слэша (/)]", ObjectCreationHandling = ObjectCreationHandling.Replace)]
public List<string> BlockedCommands = new List<string>()
{
"commandExample",
};
}
public class CombatBlockDetect
{
[JsonProperty(LanguageEn ? "Activate combat mode upon NPC attack (true - yes/false - no)" : "Активировать комбат-блок при атаке NPC (true - да/false - нет)")]
public bool ActivateOnNpcAttack = true;
[JsonProperty(LanguageEn ? "Activate combat mode upon receiving damage from NPCs (true - yes/false - no)" : "Активировать комбат-блок при получении урона от NPC (true - да/false - нет)")]
public bool ActivateOnNpcDamageReceived = true;
[JsonProperty(LanguageEn ? "Activate combat block when dealing damage to a sleeping player (true - yes/false - no)" : "Активировать комбат-блок при нанесении урона спящему игроку (true - да/false - нет)")]
public bool ActivateOnSleeperAttack = false;
[JsonProperty(LanguageEn ? "Deactivate combat mode after death (true - yes/false - no)" : "Деактивировать комбат-блок после смерти (true - да/false - нет)")]
public bool DeactivateOnPlayerDeath = true;
}

public class CombatBlockUi
{
[JsonProperty(LanguageEn ? "Interface variant (0, 1, 2) - example: " : "Вариант интерфейса (0, 1, 2)")]
public int UiType = 0;
[JsonProperty(LanguageEn ? "Interface layer: Overlay - will overlay other UI, Hud - will be overlaid by other interfaces" : "Слой интерфейса : Overlay - будет перекрывать другие UI, Hud - будет перекрываться другим интерфейсом")]
public string Layers = "Hud";
[JsonProperty(LanguageEn ? "Vertical padding" : "Вертикальный отступ")]
public int OffsetY = 0;
[JsonProperty(LanguageEn ? "Horizontal padding" : "Горизонтальный отступ")]
public int OffsetX = 0;

[JsonProperty(LanguageEn ? "Interface settings for variant 0" : "Настройки интерфейса для варианта 0")]
public CombatBlockUiSettings InterfaceSettingsVariant0 = new()
{
BackgroundColor = "0.1921569 0.1921569 0.1921569 1",
IconColor = "0 0.7764706 1 1",
AdditionalElementsColor = "",
MainTextColor = "1 1 1 1",
SecondaryTextColor = "1 1 1 0.5019608",
ProgressBarMainColor = "0.3411765 0.5490196 0.9607843 1",
ProgressBarBackgroundColor = "1 1 1 0.1019608",
SmoothTransition = 0.222f,
};

[JsonProperty(LanguageEn ? "Interface settings for variant 1" : "Настройки интерфейса для варианта 1")]
public CombatBlockUiSettings InterfaceSettingsVariant1 = new()
{
BackgroundColor = "0.9607843 0.772549 0.7333333 0.7019608",
IconColor = "1 1 1 1",
AdditionalElementsColor = "0.9215686 0.3058824 0.172549 1",
MainTextColor = "0.1921569 0.192 0.1921569 1",
SecondaryTextColor = "0.1320755 0.1320755 0.1320755 1",
ProgressBarMainColor = "0.9215686 0.3058824 0.172549 1",
ProgressBarBackgroundColor = "1 1 1 0.4117647",
SmoothTransition = 0.222f
};

[JsonProperty(LanguageEn ? "Interface settings for variant 2" : "Настройки интерфейса для варианта 2")]
public CombatBlockUiSettings InterfaceSettingsVariant2 = new()
{
BackgroundColor = "0.1921569 0.1921569 0.1921569 1",
IconColor = "0.9411765 0.3137255 0.286 1",
AdditionalElementsColor = "0.9568627 0.3607843 0.2627451 1",
MainTextColor = "1 1 1 1",
SecondaryTextColor = "1 1 1 0.5019608",
ProgressBarMainColor = "1 1 1 1",
ProgressBarBackgroundColor = "1 1 1 0.4117647",
SmoothTransition = 0.222f
};

public class CombatBlockUiSettings
{
[JsonProperty(LanguageEn ? "Background color (RGBA)" : "Цвет фона (RGBA)")]
public string BackgroundColor;
[JsonProperty(LanguageEn ? "Icon color (RGBA)" : "Цвет иконки (RGBA)")]
public string IconColor;
[JsonProperty(LanguageEn ? "Color of additional elements (RGBA)" : "Цвет дополнительных элементов (RGBA)")]
public string AdditionalElementsColor;
[JsonProperty(LanguageEn ? "Main text color (RGBA)" : "Цвет основного текста (RGBA)")]
public string MainTextColor;
[JsonProperty(LanguageEn ? "Secondary text Color (RGBA)" : "Цвет второстепенного текста (RGBA)")]
public string SecondaryTextColor;
[JsonProperty(LanguageEn ? "Main color of the progress-bar (RGBA)" : "Основной цвет прогресс-бара (RGBA)")]
public string ProgressBarMainColor;
[JsonProperty(LanguageEn ? "Background Color of the Progress Bar (RGBA)" : "Цвет фона прогресс-бара (RGBA)")]
public string ProgressBarBackgroundColor;
[JsonProperty(LanguageEn ? "Delay before the UI appears and disappears (for smooth transitions)" : "Задержка перед появлением и исчезновением UI (для плавности)")]
public float SmoothTransition;
}
}

public class IQChat
{
[JsonProperty(LanguageEn ? "IQChat : Custom prefix in the chat" : "IQChat : Кастомный префикс в чате")]
public string CustomPrefix = "[<color=#C26D33>CombatBlock</color>]";

[JsonProperty(LanguageEn ? "IQChat : Custom avatar in the chat (If required)" : "IQChat : Кастомный аватар в чате(Если требуется)")]
public string CustomAvatar = "0";

[JsonProperty(LanguageEn ? "IQChat : Use UI notifications" : "IQChat : Использовать UI уведомления")]
public bool UIAlertUse = false;

public IQChat() {} // Добавляем пустой конструктор
}
public class YourClassName
{
[JsonProperty(LanguageEn ? "Primary combat settings" : "Основные настройки комбат-блока")]
public CombatBlock CombatBlockMain = new CombatBlock();

[JsonProperty(LanguageEn ? "Trigger settings" : "Настройка триггеров")]
public CombatBlockDetect BlockDetect = new CombatBlockDetect();

[JsonProperty(LanguageEn ? "Combat mode restrictions settings" : "Настройка ограничений во время комбат-блока")]
public CombatBlockActionsBlocked ActionsBlocked = new CombatBlockActionsBlocked();

[JsonProperty(LanguageEn ? "Interface settings" : "Настройки интерфейса")]
public CombatBlockUi CombatBlockInterface = new CombatBlockUi();

[JsonProperty(LanguageEn ? "Setting IQChat" : "Настройка IQChat")]
public IQChat IQChatSetting = new IQChat();
}
protected override void LoadConfig()
{
base.LoadConfig();
try
{
config = Config.ReadObject<Configuration>();
if (config == null)
{
throw new Exception();
}
SaveConfig();
}
catch
{
for (int i = 0; i < 3; i++)
{
PrintError("Configuration file is corrupt! Check your config file at https://jsonlint.com/");
}
LoadDefaultConfig();
}
ValidateConfig();
SaveConfig();
}
 
Исправь Error while compiling: CombatBlock.cs(282,27): error CS1525: Unexpected symbol `void', expecting `class', `delegate', `enum', `interface', `partial', or `struct'
private class Configuration
{
public class CombatBlock
{
[JsonProperty(LanguageEn ? "Lockout time (seconds)" : "Время блокировки (секунды)")]
public int CombatBlockDuration = 150;

[JsonProperty(LanguageEn ? "Disable the combat block when receiving a raid block (true - yes/false - no)" : "Отключить комбат блок при получении рейд блока (true - да/false - нет)")]
public bool CombatBlockOnRaidBlock = true;
}
public class CombatBlockActionsBlocked
{
[JsonProperty(LanguageEn ? "Disable teleportation capability (true - yes/false - no)" : "Блокировать возможность телепортироваться (true - да/false - нет)")]
public bool CanTeleport = true;
[JsonProperty(LanguageEn ? "Disable the use of kits (true - yes/false - no)" : "Блокировать возможность использования китов (true - да/false - нет)")]
public bool CanUseKit = true;
[JsonProperty(LanguageEn ? "Disable trade functionality (true - yes/false - no)" : "Блокировать возможность обмена (Trade) (true - да/false - нет)")]
public bool CanTrade = true;
[JsonProperty(LanguageEn ? "List of prohibited commands during active lockdown [Specify them without a slash (/)]" : "Список запрещенных команд при активной блокировки [указывайте их без слэша (/)]", ObjectCreationHandling = ObjectCreationHandling.Replace)]
public List<string> BlockedCommands = new List<string>()
{
"commandExample",
};
}
public class CombatBlockDetect
{
[JsonProperty(LanguageEn ? "Activate combat mode upon NPC attack (true - yes/false - no)" : "Активировать комбат-блок при атаке NPC (true - да/false - нет)")]
public bool ActivateOnNpcAttack = true;
[JsonProperty(LanguageEn ? "Activate combat mode upon receiving damage from NPCs (true - yes/false - no)" : "Активировать комбат-блок при получении урона от NPC (true - да/false - нет)")]
public bool ActivateOnNpcDamageReceived = true;
[JsonProperty(LanguageEn ? "Activate combat block when dealing damage to a sleeping player (true - yes/false - no)" : "Активировать комбат-блок при нанесении урона спящему игроку (true - да/false - нет)")]
public bool ActivateOnSleeperAttack = false;
[JsonProperty(LanguageEn ? "Deactivate combat mode after death (true - yes/false - no)" : "Деактивировать комбат-блок после смерти (true - да/false - нет)")]
public bool DeactivateOnPlayerDeath = true;
}

public class CombatBlockUi
{
[JsonProperty(LanguageEn ? "Interface variant (0, 1, 2) - example: " : "Вариант интерфейса (0, 1, 2)")]
public int UiType = 0;
[JsonProperty(LanguageEn ? "Interface layer: Overlay - will overlay other UI, Hud - will be overlaid by other interfaces" : "Слой интерфейса : Overlay - будет перекрывать другие UI, Hud - будет перекрываться другим интерфейсом")]
public string Layers = "Hud";
[JsonProperty(LanguageEn ? "Vertical padding" : "Вертикальный отступ")]
public int OffsetY = 0;
[JsonProperty(LanguageEn ? "Horizontal padding" : "Горизонтальный отступ")]
public int OffsetX = 0;

[JsonProperty(LanguageEn ? "Interface settings for variant 0" : "Настройки интерфейса для варианта 0")]
public CombatBlockUiSettings InterfaceSettingsVariant0 = new()
{
BackgroundColor = "0.1921569 0.1921569 0.1921569 1",
IconColor = "0 0.7764706 1 1",
AdditionalElementsColor = "",
MainTextColor = "1 1 1 1",
SecondaryTextColor = "1 1 1 0.5019608",
ProgressBarMainColor = "0.3411765 0.5490196 0.9607843 1",
ProgressBarBackgroundColor = "1 1 1 0.1019608",
SmoothTransition = 0.222f,
};

[JsonProperty(LanguageEn ? "Interface settings for variant 1" : "Настройки интерфейса для варианта 1")]
public CombatBlockUiSettings InterfaceSettingsVariant1 = new()
{
BackgroundColor = "0.9607843 0.772549 0.7333333 0.7019608",
IconColor = "1 1 1 1",
AdditionalElementsColor = "0.9215686 0.3058824 0.172549 1",
MainTextColor = "0.1921569 0.192 0.1921569 1",
SecondaryTextColor = "0.1320755 0.1320755 0.1320755 1",
ProgressBarMainColor = "0.9215686 0.3058824 0.172549 1",
ProgressBarBackgroundColor = "1 1 1 0.4117647",
SmoothTransition = 0.222f
};

[JsonProperty(LanguageEn ? "Interface settings for variant 2" : "Настройки интерфейса для варианта 2")]
public CombatBlockUiSettings InterfaceSettingsVariant2 = new()
{
BackgroundColor = "0.1921569 0.1921569 0.1921569 1",
IconColor = "0.9411765 0.3137255 0.286 1",
AdditionalElementsColor = "0.9568627 0.3607843 0.2627451 1",
MainTextColor = "1 1 1 1",
SecondaryTextColor = "1 1 1 0.5019608",
ProgressBarMainColor = "1 1 1 1",
ProgressBarBackgroundColor = "1 1 1 0.4117647",
SmoothTransition = 0.222f
};

public class CombatBlockUiSettings
{
[JsonProperty(LanguageEn ? "Background color (RGBA)" : "Цвет фона (RGBA)")]
public string BackgroundColor;
[JsonProperty(LanguageEn ? "Icon color (RGBA)" : "Цвет иконки (RGBA)")]
public string IconColor;
[JsonProperty(LanguageEn ? "Color of additional elements (RGBA)" : "Цвет дополнительных элементов (RGBA)")]
public string AdditionalElementsColor;
[JsonProperty(LanguageEn ? "Main text color (RGBA)" : "Цвет основного текста (RGBA)")]
public string MainTextColor;
[JsonProperty(LanguageEn ? "Secondary text Color (RGBA)" : "Цвет второстепенного текста (RGBA)")]
public string SecondaryTextColor;
[JsonProperty(LanguageEn ? "Main color of the progress-bar (RGBA)" : "Основной цвет прогресс-бара (RGBA)")]
public string ProgressBarMainColor;
[JsonProperty(LanguageEn ? "Background Color of the Progress Bar (RGBA)" : "Цвет фона прогресс-бара (RGBA)")]
public string ProgressBarBackgroundColor;
[JsonProperty(LanguageEn ? "Delay before the UI appears and disappears (for smooth transitions)" : "Задержка перед появлением и исчезновением UI (для плавности)")]
public float SmoothTransition;
}
}

public class IQChat
{
[JsonProperty(LanguageEn ? "IQChat : Custom prefix in the chat" : "IQChat : Кастомный префикс в чате")]
public string CustomPrefix = "[<color=#C26D33>CombatBlock</color>]";

[JsonProperty(LanguageEn ? "IQChat : Custom avatar in the chat (If required)" : "IQChat : Кастомный аватар в чате(Если требуется)")]
public string CustomAvatar = "0";

[JsonProperty(LanguageEn ? "IQChat : Use UI notifications" : "IQChat : Использовать UI уведомления")]
public bool UIAlertUse = false;

public IQChat() {} // Добавляем пустой конструктор
}
public class YourClassName
{
[JsonProperty(LanguageEn ? "Primary combat settings" : "Основные настройки комбат-блока")]
public CombatBlock CombatBlockMain = new CombatBlock();

[JsonProperty(LanguageEn ? "Trigger settings" : "Настройка триггеров")]
public CombatBlockDetect BlockDetect = new CombatBlockDetect();

[JsonProperty(LanguageEn ? "Combat mode restrictions settings" : "Настройка ограничений во время комбат-блока")]
public CombatBlockActionsBlocked ActionsBlocked = new CombatBlockActionsBlocked();

[JsonProperty(LanguageEn ? "Interface settings" : "Настройки интерфейса")]
public CombatBlockUi CombatBlockInterface = new CombatBlockUi();

[JsonProperty(LanguageEn ? "Setting IQChat" : "Настройка IQChat")]
public IQChat IQChatSetting = new IQChat();
}
protected override void LoadConfig()
{
base.LoadConfig();
try
{
config = Config.ReadObject<Configuration>();
if (config == null)
{
throw new Exception();
}
SaveConfig();
}
catch
{
for (int i = 0; i < 3; i++)
{
PrintError("Configuration file is corrupt! Check your config file at https://jsonlint.com/");
}
LoadDefaultConfig();
}
ValidateConfig();
SaveConfig();
}
Ошибка CS1525 указывает на неожиданный символ в вашем коде, который ожидается в другом контексте. В данном случае, вы получаете эту ошибку из-за того, что у вас объявлен метод LoadConfig() внутри класса, но без указания возвращаемого типа.

Чтобы исправить эту ошибку, добавьте тип возвращаемого значения к методу LoadConfig(), если он должен возвращать какой-то результат, или поменяйте void на соответствующий тип данных, если метод должен что-то возвращать.

Пример исправленного кода:

C#:
public class YourClassName
{
    // Ваш существующий код класса

    protected override void LoadConfig()
    {
        base.LoadConfig();
        try
        {
            config = Config.ReadObject<Configuration>();
            if (config == null)
            {
                throw new Exception();
            }
            SaveConfig();
        }
        catch
        {
            for (int i = 0; i < 3; i++)
            {
                PrintError("Configuration file is corrupt! Check your config file at [URL]https://jsonlint.com/[/URL]");
            }
            LoadDefaultConfig();
        }
        ValidateConfig();
        SaveConfig();
    }
}

Пожалуйста, уточните ожидаемый тип возвращаемого значения метода LoadConfig() и внесите соответствующие изменения в код. Это должно помочь устранить ошибку CS1525. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за дополнительной помощью.
 
К сожалению, ошибка CS0589 указывает на внутреннюю ошибку компилятора при разборе кода, когда происходит NullReferenceException из-за того, что ссылка на объект не установлена на экземпляр объекта. Для решения этой проблемы вам нужно найти место в коде, где возникает NullReferenceException, и убедиться, что объекты и переменные правильно инициализированы перед их использованием.

Пожалуйста, предоставьте участок кода из файла CombatBlock.cs, где находится строка 400, чтобы я мог помочь вам найти и исправить проблему. Код поблизости от этой строки также может быть полезен для анализа ошибки. После получения дополнительной информации, я смогу предложить более точное решение для устранения ошибки CS0589.
Исправь Error while compiling: FurnaceLevels.cs(686,46): error CS1503: Argument `#1' cannot convert `NetworkableId' expression to type `ulong'

public void StartCooking()
{
if (FindBurnable() == null)
{
return;
}
StopCooking();
Furnace.inventory.temperature = Furnace.cookingTemperature;
Furnace.UpdateAttachmentTemperature();
var ovenId = Furnace.net.ID;
int speedData = _furnaceData[ovenId].Speed;
if (speedData == null)
{
speedMulti = 0.5f;
}
else
{
speedMulti = _config.speedSet.mod[speedData];
}
Furnace.InvokeRepeating(Cook, speedMulti, speedMulti);
Furnace.SetFlag(BaseEntity.Flags.On, true);
}
public void StopCooking()
{
Furnace.CancelInvoke(Cook);
Furnace.StopCooking();
}
}
 
Исправь Error while compiling: FurnaceLevels.cs(686,46): error CS1503: Argument `#1' cannot convert `NetworkableId' expression to type `ulong'

public void StartCooking()
{
if (FindBurnable() == null)
{
return;
}
StopCooking();
Furnace.inventory.temperature = Furnace.cookingTemperature;
Furnace.UpdateAttachmentTemperature();
var ovenId = Furnace.net.ID;
int speedData = _furnaceData[ovenId].Speed;
if (speedData == null)
{
speedMulti = 0.5f;
}
else
{
speedMulti = _config.speedSet.mod[speedData];
}
Furnace.InvokeRepeating(Cook, speedMulti, speedMulti);
Furnace.SetFlag(BaseEntity.Flags.On, true);
}
public void StopCooking()
{
Furnace.CancelInvoke(Cook);
Furnace.StopCooking();
}
}
Ошибка CS1503 указывает на проблему с преобразованием типов данных. В данном случае, компилятор не может преобразовать выражение типа NetworkableId в тип ulong. Для исправления этой ошибки вам нужно убедиться, что вы используете правильные типы данных в соответствии с ожидаемыми типами.

Предположим, что Furnace.net.ID возвращает NetworkableId, и вам нужно использовать его в качестве ulong. Вам нужно явно выполнить преобразование типа NetworkableId в ulong.

Вот исправленный участок кода:

C#:
public void StartCooking()
{
    if (FindBurnable() == null)
    {
        return;
    }
    StopCooking();
    Furnace.inventory.temperature = Furnace.cookingTemperature;
    Furnace.UpdateAttachmentTemperature();
    
    var ovenId = (ulong)Furnace.net.ID; // Явное преобразование в ulong
    
    int speedData = _furnaceData[ovenId].Speed;
    float speedMulti = 0.5f; // Инициализируем переменную заранее
    
    if (speedData == null)
    {
        speedMulti = 0.5f;
    }
    else
    {
        speedMulti = _config.speedSet.mod[speedData];
    }
    
    Furnace.InvokeRepeating(Cook, speedMulti, speedMulti);
    Furnace.SetFlag(BaseEntity.Flags.On, true);
}

public void StopCooking()
{
    Furnace.CancelInvoke(Cook);
    Furnace.StopCooking();
}

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

Предположим, что Furnace.net.ID возвращает NetworkableId, и вам нужно использовать его в качестве ulong. Вам нужно явно выполнить преобразование типа NetworkableId в ulong.

Вот исправленный участок кода:

C#:
public void StartCooking()
{
    if (FindBurnable() == null)
    {
        return;
    }
    StopCooking();
    Furnace.inventory.temperature = Furnace.cookingTemperature;
    Furnace.UpdateAttachmentTemperature();
   
    var ovenId = (ulong)Furnace.net.ID; // Явное преобразование в ulong
   
    int speedData = _furnaceData[ovenId].Speed;
    float speedMulti = 0.5f; // Инициализируем переменную заранее
   
    if (speedData == null)
    {
        speedMulti = 0.5f;
    }
    else
    {
        speedMulti = _config.speedSet.mod[speedData];
    }
   
    Furnace.InvokeRepeating(Cook, speedMulti, speedMulti);
    Furnace.SetFlag(BaseEntity.Flags.On, true);
}

public void StopCooking()
{
    Furnace.CancelInvoke(Cook);
    Furnace.StopCooking();
}

В этом исправленном коде я добавил явное преобразование типа NetworkableId в ulong при присвоении ovenId. Пожалуйста, используйте этот исправленный код и проверьте его работоспособность. Если у вас остались вопросы или есть другие проблемы, не стесняйтесь обращаться за помощью.
не исправлено
 
Прошу прощения за недоразумение. Давайте попробуем еще раз исправить эту ошибку. Вот обновленный участок кода с более явным преобразованием типа NetworkableId в ulong:

C#:
public void StartCooking()
{
    if (FindBurnable() == null)
    {
        return;
    }
    StopCooking();
    Furnace.inventory.temperature = Furnace.cookingTemperature;
    Furnace.UpdateAttachmentTemperature();
   
    ulong ovenId = (ulong)Furnace.net.ID; // Явное преобразование в ulong
   
    int speedData = _furnaceData.ContainsKey(ovenId) ? _furnaceData[ovenId].Speed : 0;
    float speedMulti = 0.5f; // Инициализируем переменную заранее
   
    if (speedData == 0)
    {
        speedMulti = 0.5f;
    }
    else
    {
        speedMulti = _config.speedSet.mod[speedData];
    }
   
    Furnace.InvokeRepeating(Cook, speedMulti, speedMulti);
    Furnace.SetFlag(BaseEntity.Flags.On, true);
}

public void StopCooking()
{
    Furnace.CancelInvoke(Cook);
    Furnace.StopCooking();
}

В этом обновленном коде я изменил тип переменной ovenId на ulong и добавил проверку с помощью метода ContainsKey, чтобы удостовериться, что ovenId содержится в словаре _furnaceData. Теперь должны быть устранены проблемы с преобразованием типов данных.

Пожалуйста, попробуйте использовать этот исправленный код и проверить его работоспособность. Если у вас все еще возникают проблемы или у вас есть дополнительные вопросы, пожалуйста, дайте знать. Я готов помочь вам дальше.
 
Прошу прощения за недоразумение. Давайте попробуем еще раз исправить эту ошибку. Вот обновленный участок кода с более явным преобразованием типа NetworkableId в ulong:

C#:
public void StartCooking()
{
    if (FindBurnable() == null)
    {
        return;
    }
    StopCooking();
    Furnace.inventory.temperature = Furnace.cookingTemperature;
    Furnace.UpdateAttachmentTemperature();
  
    ulong ovenId = (ulong)Furnace.net.ID; // Явное преобразование в ulong
  
    int speedData = _furnaceData.ContainsKey(ovenId) ? _furnaceData[ovenId].Speed : 0;
    float speedMulti = 0.5f; // Инициализируем переменную заранее
  
    if (speedData == 0)
    {
        speedMulti = 0.5f;
    }
    else
    {
        speedMulti = _config.speedSet.mod[speedData];
    }
  
    Furnace.InvokeRepeating(Cook, speedMulti, speedMulti);
    Furnace.SetFlag(BaseEntity.Flags.On, true);
}

public void StopCooking()
{
    Furnace.CancelInvoke(Cook);
    Furnace.StopCooking();
}

В этом обновленном коде я изменил тип переменной ovenId на ulong и добавил проверку с помощью метода ContainsKey, чтобы удостовериться, что ovenId содержится в словаре _furnaceData. Теперь должны быть устранены проблемы с преобразованием типов данных.

Пожалуйста, попробуйте использовать этот исправленный код и проверить его работоспособность. Если у вас все еще возникают проблемы или у вас есть дополнительные вопросы, пожалуйста, дайте знать. Я готов помочь вам дальше.
Сделай плагин чтобы уменьшит отдачу на rifle.ak
 
Активность
Пока никто не печатает сообщение