Баг QuestMenu

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
17
Реакции
-1
Ошибка
Ошибок нету
ОС
Linux
Amx Mod X
1.9.0
Билд
6153
ReGamedll
Не установлен.
Версия Metamod
1.3
Список метамодулей
.
Список плагинов
.
Автор плагина
Неизвестно
Версия плагина
Неизвестно
Исходный код
Show_QuestMenu(id)
{
new szMenu[512], iKeys = (1<<5|1<<7|1<<8|1<<9), iLen = formatex(szMenu, charsmax(szMenu), "%L^n^n", id, "JBE_MENU_QUESTS_TITLE");
if(!g_iUserQuest[id][ENABLED])
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'0/12'^n", id, "JBE_KEY", 1, id, "JBE_MENU_QUEST_1");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'0/7'^n", id, "JBE_KEY", 2, id, "JBE_MENU_QUEST_2");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'0/15'^n", id, "JBE_KEY", 3, id, "JBE_MENU_QUEST_3");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'0/10'^n", id, "JBE_KEY", 4, id, "JBE_MENU_QUEST_4");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'0/5'^n", id, "JBE_KEY", 5, id, "JBE_MENU_QUEST_5");
iKeys |= (1<<0|1<<1|1<<2|1<<3|1<<4);
}
else
{
if(g_iUserQuest[id][INDEX] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'%d/12'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_1", g_iUserQuest[id][PROGRESS]);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L \r'0/12'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_1");
if(g_iUserQuest[id][INDEX] == 1)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'%d/7'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_2", g_iUserQuest[id][PROGRESS]);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L \r'0/7'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_2");
if(g_iUserQuest[id][INDEX] == 2)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'%d/15'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_3", g_iUserQuest[id][PROGRESS]);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L \r'0/15'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_3");
if(g_iUserQuest[id][INDEX] == 3)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'%d/10'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_4", g_iUserQuest[id][PROGRESS]);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L \r'0/10'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_4");
if(g_iUserQuest[id][INDEX] == 4)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L \y'%d/5'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_5", g_iUserQuest[id][PROGRESS]);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L \r'0/5'^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUEST_5");
}
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n%L \w%L^n", id, "JBE_KEY", 6, id, "JBE_MENU_QUEST_PRIZE", id, g_szQuestPrizeLang[g_iQuestPrize]);
if(g_iUserQuest[id][ENABLED])
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L^n", id, "JBE_KEY", 7, id, "JBE_MENU_QUESTS_CANCEL");
iKeys |= (1<<6);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUESTS_CANCEL");
if(g_iUserQuest[id][ENABLED])
{
switch(g_iUserQuest[id][INDEX])
{
case 0:
{
if(g_iUserQuest[id][PROGRESS] >= 12)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L^n", id, "JBE_KEY", 8, id, "JBE_MENU_QUESTS_TAKE_PRIZE");
iKeys |= (1<<7);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUESTS_TAKE_PRIZE");
}
case 1:
{
if(g_iUserQuest[id][PROGRESS] >= 7)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L^n", id, "JBE_KEY", 8, id, "JBE_MENU_QUESTS_TAKE_PRIZE");
iKeys |= (1<<7);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUESTS_TAKE_PRIZE");
}
case 2:
{
if(g_iUserQuest[id][PROGRESS] >= 15)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L^n", id, "JBE_KEY", 8, id, "JBE_MENU_QUESTS_TAKE_PRIZE");
iKeys |= (1<<7);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUESTS_TAKE_PRIZE");
}
case 3:
{
if(g_iUserQuest[id][PROGRESS] >= 10)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L^n", id, "JBE_KEY", 8, id, "JBE_MENU_QUESTS_TAKE_PRIZE");
iKeys |= (1<<7);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUESTS_TAKE_PRIZE");
}
case 4:
{
if(g_iUserQuest[id][PROGRESS] >= 5)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L^n", id, "JBE_KEY", 8, id, "JBE_MENU_QUESTS_TAKE_PRIZE");
iKeys |= (1<<7);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUESTS_TAKE_PRIZE");
}
}
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \d%L^n", id, "JBE_KEY_BLOCKED", id, "JBE_MENU_QUESTS_TAKE_PRIZE");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n%L \w%L", id, "JBE_KEY", 9, id, "JBE_MENU_BACK");
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n%L \w%L", id, "JBE_KEY", 0, id, "JBE_MENU_EXIT");
return show_menu(id, iKeys, szMenu, -1, "Show_QuestMenu");
}

public Handle_QuestMenu(id, iKey)
{
switch(iKey)
{
case 0:
{
g_iUserQuest[id][ENABLED] = true;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = iKey;
}
case 1:
{
g_iUserQuest[id][ENABLED] = true;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = iKey;
}
case 2:
{
g_iUserQuest[id][ENABLED] = true;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = iKey;
}
case 3:
{
g_iUserQuest[id][ENABLED] = true;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = iKey;
}
case 4:
{
g_iUserQuest[id][ENABLED] = true;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = iKey;
}
case 5:
{
if(g_iQuestPrize == charsmax(g_szQuestPrizeLang)) g_iQuestPrize = 0;
else g_iQuestPrize++;
}
case 6:
{
if(g_iUserQuest[id][ENABLED])
{
g_iUserQuest[id][ENABLED] = false;
g_iUserQuest[id][INDEX] = -1;
g_iUserQuest[id][PROGRESS] = 0;
}
UTIL_SayText(id, "%L %L", id, "JBE_CHAT_PREFIX", id, "JBE_MENU_QUEST_CANCELED");
}
case 7:
{
if(g_iUserQuest[id][ENABLED])
{
switch(g_iUserQuest[id][INDEX])
{
case 0:
{
new szName[32]; get_user_name(id, szName, charsmax(szName));

g_iUserQuest[id][ENABLED] = false;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = -1;
switch(g_iQuestPrize)
{
case 0:
{
new Random = random_num(50, 300);
jbe_set_user_money(id, g_iUserMoney[id] + Random, 1);
}
case 1:
{
new Random = random_num(5, 15);
jbe_set_user_exp(id, jbe_get_user_exp(id) + Random, 1);
}
}
}
case 1:
{
new szName[32]; get_user_name(id, szName, charsmax(szName));

g_iUserQuest[id][ENABLED] = false;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = -1;
switch(g_iQuestPrize)
{
case 0:
{
new Random = random_num(50, 300);
jbe_set_user_money(id, g_iUserMoney[id] + Random, 1);
}
case 1:
{
new Random = random_num(5, 15);
jbe_set_user_exp(id, jbe_get_user_exp(id) + Random, 1);
}
}
}
case 2:
{
new szName[32]; get_user_name(id, szName, charsmax(szName));

g_iUserQuest[id][ENABLED] = false;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = -1;
switch(g_iQuestPrize)
{
case 0:
{
new Random = random_num(50, 300);
jbe_set_user_money(id, g_iUserMoney[id] + Random, 1);
}
case 1:
{
new Random = random_num(5, 15);
jbe_set_user_exp(id, jbe_get_user_exp(id) + Random, 1);
}
}
}
case 3:
{
new szName[32]; get_user_name(id, szName, charsmax(szName));

g_iUserQuest[id][ENABLED] = false;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = -1;
switch(g_iQuestPrize)
{
case 0:
{
new Random = random_num(50, 300);
jbe_set_user_money(id, g_iUserMoney[id] + Random, 1);
}
case 1:
{
new Random = random_num(5, 15);
jbe_set_user_exp(id, jbe_get_user_exp(id) + Random, 1);
}
}
}
case 4:
{
new szName[32]; get_user_name(id, szName, charsmax(szName));

g_iUserQuest[id][ENABLED] = false;
g_iUserQuest[id][PROGRESS] = 0;
g_iUserQuest[id][INDEX] = -1;
switch(g_iQuestPrize)
{
case 0:
{
new Random = random_num(50, 300);
jbe_set_user_money(id, g_iUserMoney[id] + Random, 1);
}
case 1:
{
new Random = random_num(5, 15);
jbe_set_user_exp(id, jbe_get_user_exp(id) + Random, 1);
}
}
}
}
}
}
case 8: return Show_OtherMenu(id);
case 9: return PLUGIN_HANDLED;
}
return Show_QuestMenu(id);
}
Меню вшита в мод. Проблема: выбираю задание, нажимаю получить награду и задание выполняется . Могу так бесконечно брать награду за любое задание не выполняя его. (В меню пункт получить награду даже горит серым, будто он не активен, но нажать на него почему-то можно.)
Подскажите пожалуйста, как пофиксить баг?
 
Сообщения
2,288
Реакции
1,738
Помог
31 раз(а)
den980021,
Заполняя каждое поле, внимательно читайте подсказки под ними. Игнорирование данных действий может повлечь закрытие Вашей темы и тогда Вам придется снова создавать тему согласно требованиям, которые Вы проигнорировали.

Напоминаем Вам, что темы с проблемами в работе сервера или плагинов, в первую очередь нужны Вам и Вы заинтересованы в том, чтобы предоставить всю необходимую информацию для решения Вашей проблемы.
 
Сообщения
2,836
Реакции
1,666
Помог
75 раз(а)
Заполняя каждое поле, внимательно читайте подсказки под ними. Игнорирование данных действий может повлечь закрытие Вашей темы и тогда Вам придется снова создавать тему согласно требованиям, которые Вы проигнорировали.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу