- Ошибка
-
Ошибок нету
- ОС
- 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);
}
Меню вшита в мод. Проблема: выбираю задание, нажимаю получить награду и задание выполняется . Могу так бесконечно брать награду за любое задание не выполняя его. (В меню пункт получить награду даже горит серым, будто он не активен, но нажать на него почему-то можно.)
Подскажите пожалуйста, как пофиксить баг?
Подскажите пожалуйста, как пофиксить баг?