Спасибо за предоставленный код. Я понимаю вашу проблему с ошибкой "error 040: duplicate "case" label (value 0)". Эта ошибка обычно возникает, когда у вас есть два или более case с одинаковым значением в одном switch statement.
Давайте разберем возможные причины этой ошибки:
1. Перечисления (enums) в PAWN по умолчанию начинаются с 0 и увеличиваются на 1 для каждого следующего элемента. В вашем коде у вас есть два enum, и оба начинаются с 0.
2. DIALOG_PLAYER_INTRODUCTION и DIALOG_EVENT_QUEST_ONE оба имеют значение 0, что приводит к конфликту в switch statement.
Чтобы исправить эту ошибку, вы можете изменить второй enum, чтобы он начинался со значения, следующего за последним значением первого enum. Вот как это можно сделать:
enum // event
{
DIALOG_PLAYER_INTRODUCTION
};
enum // quest
{
DIALOG_EVENT_QUEST_ONE = DIALOG_PLAYER_INTRODUCTION + 1,
DIALOG_EVENT_QUEST_TWO,
DIALOG_EVENT_QUEST_THRY,
DIALOG_EVENT_QUEST_FOUR,
DIALOG_EVENT_QUEST_FIVE
};
Теперь DIALOG_EVENT_QUEST_ONE будет иметь значение 1, DIALOG_EVENT_QUEST_TWO будет 2 и так далее. Это должно устранить конфликт и решить проблему с дублирующимися case labels.
Также обратите внимание на опечатку в DIALOG_EVENT_QUEST_THRY. Возможно, вы имели в виду DIALOG_EVENT_QUEST_THREE.
После внесения этих изменений ваш код должен компилироваться без ошибки "duplicate case label". Если проблема сохраняется, убедитесь, что у вас нет других case statements с одинаковыми значениями в том же switch block.
Всеми силами пытался её исправить, но безуспешно. Похожих case у меня нет.
Код вот такой:
enum // event
{
DIALOG_PLAYER_INTRODUCTION
};
enum // quest
{
DIALOG_EVENT_QUEST_ONE,
DIALOG_EVENT_QUEST_TWO,
DIALOG_EVENT_QUEST_THRY,
DIALOG_EVENT_QUEST_FOUR,
DIALOG_EVENT_QUEST_FIVE
};
Response
case DIALOG_PLAYER_INTRODUCTION:
{
if(!response) return true;
if(response) return EventIntroduction(playerid);
} // quest 1
case DIALOG_EVENT_QUEST_ONE:
{
if(!response) return true;
if(response)
{
if(quest_one[playerid] == 0)
{
quest_one[playerid] = 1;
SetPlayerCheckpoint(playerid, 2280.6287,-1643.0352,15.2643, 2.0);
SendClientMessage(playerid, -1, "{FFA500}info: {FFFFFF}Text!");
SendClientMessage(playerid, -1, "{FFA500}Info: {FFFFFF}text.");
}
}
}
Буду рад если поможете!