Скриптер
Проверенный
Пользователь
- Сообщения
- 3,582
- Реакции
- 1,570
- Помог
- 137 раз(а)
Проблема такая: для меню хэндлера не получается сделать цикл, то есть для для внешнего вида я сделал (вывод на экран), но если нажимать все кнопки, (1,2,3,0) передается только первое значение массива. (300) На 0 вообще выход хотел сделать.
Как нужно сделать?
Как нужно сделать?
Код:
New const BETS[] = {
300, 500, 1000, 1500
}
register_menu("lot_menu", 1023, "func_menu")
public lottery_menu(id)
{
static menu[650], iLen
new money = cs_get_user_money(id)
new sysTime = get_systime()
new keys = MENU_KEY_0
g_LastTry = g_NowUsed[id]
new TimeRemaining = TIME_FOR_RETRY - (sysTime - g_LastTry)
if(TIME_FOR_RETRY > (sysTime - g_LastTry))
{
client_print_color(id, print_team_default, "^3[^4%L^3] %L", LANG_PLAYER, "TAG", LANG_PLAYER, "PAUSE", TIME_FOR_RETRY, TimeRemaining)
}
#if defined ONLY_ALIVE
else if(!is_user_alive(id)) client_print_color(id, print_team_default, "^3[^4%L^3] %L", LANG_PLAYER, "TAG", LANG_PLAYER, "ONLY_ALIVE")
#endif
else
{
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "%L", LANG_PLAYER, "MENU_HAVE_MONEY", money)
for (new i = 0, n = min(9, sizeof BETS); i < n; i++)
{
if(money < BETS[i])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r%d. \d%d$^n", i+1, BETS[i])
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r%d. \w%d$^n", i+1, BETS[i])
keys |= (1 << i)
}
}
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r0. \w%L^n", LANG_PLAYER, "EXIT")
keys |= MENU_KEY_0
show_menu(id, keys, menu, -1, "lot_menu")
}
return PLUGIN_HANDLED
}
public func_menu(id, key, i)
{
new bet
new money = cs_get_user_money(id)
new sysTime = get_systime()
if(BETS[i] <= money)
{
bet = BETS[i]
lottery_main(id, bet)
g_NowUsed[id] = sysTime
}
else lottery_menu(id)
return PLUGIN_HANDLED
}