Ошибка CS0150 "Ожидается константное значение" возникает, когда в коде ожидается константное значение, но у нас есть выражение или переменная, которые не являются константами.
Для исправления этой ошибки вам нужно убедиться, что возвращаемое значение в методе
CanAcceptItem
является константным. В данном случае,
ItemContainer.CanAcceptResult.CannotAcceptRightNow
должно быть константным значением.
Вот исправленный фрагмент кода, где используется константное значение:
C#:
private object CanAcceptItem(ItemContainer container, Item item)
{
if (container == null || item == null || container.entityOwner == null)
return null;
if (container.entityOwner is AutoTurret || container.entityOwner is AttackHelicopterTurret || container.entityOwner is AttackHelicopterRockets)
{
var player = item.GetOwnerPlayer();
if (!IsValid(player)) return null;
var isBlocked = IsBlocked(item.info.shortname) > 0 ? false : (Boolean?)null;
if (isBlocked == false)
{
NotifyBlock(player, item.info.shortname);
return ItemContainer.CanAcceptResult.CannotAcceptRightNow;
}
}
return null;
}
Убедитесь, что
ItemContainer.CanAcceptResult.CannotAcceptRightNow
является константным значением, и используйте его возвращаемое значение в методе
CanAcceptItem
. Это должно помочь исправить ошибку CS0150.
Если у вас есть дополнительные вопросы или нужна дополнительная помощь, пожалуйста, дайте знать.
Исправь ошибку CombatBlock.cs(261,19): error CS1525: Unexpected symbol `CombatBlock', 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 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();
}