len += formatex(menu[len], charsmax(menu) - len, "\wМеню Настройки \rСкина ^n^n")
switch (g_iCurrentPage[id]) { // счетчик текущей страницы
case 0: { // страница 1
// ваш код начинается здесь как первая страница
len += formatex(menu[len], charsmax(menu) - len, "\y[\r1\y] \w%s^n", HUMAN_ZPLAYER2)
keys += MENU_KEY_1
len += formatex(menu[len], charsmax(menu) - len, "\y[\r2\y] \w%s^n", HUMAN_ZPLAYER1)
keys += MENU_KEY_2
if(get_user_flags(id) & ADMIN_FLAGA){
len += formatex(menu[len], charsmax(menu) - len, "\y[\r3\y] \w%s \y(ADMIN)\w^n", HUMAN_ADMIN)
keys += MENU_KEY_3
} else {
len += formatex(menu[len], charsmax(menu) - len, "\d[3] \d%s \y(ADMIN)\w^n", HUMAN_ADMIN)
keys += MENU_KEY_3;}
if(get_user_flags(id) & ADMIN_FLAGL){
len += formatex(menu[len], charsmax(menu) - len, "\y[\r4\y] \w%s \y(LORD)\w^n", HUMAN_LORD)
keys += MENU_KEY_4
} else {
len += formatex(menu[len], charsmax(menu) - len, "\d[4] \d%s \y(LORD)\w^n", HUMAN_LORD)
keys += MENU_KEY_4;}
if(get_user_flags(id) & ADMIN_FLAGI){
len += formatex(menu[len], charsmax(menu) - len, "\y[\r5\y] \w%s \y(IMPER)\w^n", HUMAN_IMPER)
keys += MENU_KEY_5
} else {
len += formatex(menu[len], charsmax(menu) - len, "\d[5] \d%s \y(IMPER)\w^n", HUMAN_IMPER)
keys += MENU_KEY_5;}
if(get_user_flags(id) & ADMIN_FLAGM){
len += formatex(menu[len], charsmax(menu) - len, "\y[\r6\y] \w%s \y(MUMMY)\w^n", HUMAN_MUMMY)
keys += MENU_KEY_6
} else {
len += formatex(menu[len], charsmax(menu) - len, "\d[6] \d%s \y(MUMMY)\w^n", HUMAN_MUMMY)
keys += MENU_KEY_6;}
if(get_user_flags(id) & ADMIN_FLAGN){
len += formatex(menu[len], charsmax(menu) - len, "\y[\r7\y] \w%s \y(Набор)\w^n", HUMAN_NANO)
keys += MENU_KEY_7
} else {
len += formatex(menu[len], charsmax(menu) - len, "\d[7] \d%s \y(Набор)\w^n", HUMAN_NANO)
keys += MENU_KEY_7;}
}
case 1: { // страница 2
// тут фактически тоже самое что в прошлой ветке, только уже с новыми данными
len += formatex(menu[len], charsmax(menu) - len, "\y[\r1\y] \w%s^n", HUMAN_PAGE2_1)
keys += MENU_KEY_1
len += formatex(menu[len], charsmax(menu) - len, "\y[\r2\y] \w%s^n", HUMAN_PAGE2_2)
keys += MENU_KEY_2
}
}
if (g_iCurrentPage[id] == MAX_PAGE-1) { // проверяем что это последння страница. Если да, то больше не можем жать 9
len += formatex(menu[len], charsmax(menu) - len, "^n\r9. \d%L", id, "MENU_NEXT");
}
else {
len += formatex(menu[len], charsmax(menu) - len, "^n\r9. \w%L", id, "MENU_NEXT"); keys |= MENU_KEY_9;
}
// Если это первая страница (напомню что считаем с 0, а не с 1), то показываем выход, а не далее
if (g_iCurrentPage[id] < 1) {
len += formatex(menu[len], charsmax(menu) - len, "^n\r0. \w%L", id, "MENU_EXIT"); keys |= MENU_KEY_0;
}
else { // иначе показываем кнопку назад
len += formatex(menu[len], charsmax(menu) - len, "^n\r0. \w%L", id, "MENU_BACK"); keys |= MENU_KEY_0;
}
#define MAX_PAGE 2 // ваши две страницы
public menu_handler(id, key)
{
if(!is_user_alive(id) || zp_get_user_zombie(id))
return;
switch (g_iCurrentPage[id]) {
case 0: { // страница 1
switch (key) {
case 0: classZplayer2(id)
case 1: classZplayer1(id)
case 2: classAdmin(id)
case 3: classLord(id)
case 4: classImper(id)
case 5: classMummy(id)
case 6: classNano(id);
}
}
case 1: { // страница 2
case 0: { // первая
// тут уже должен быть вызов замены модели страницы №2
}
case 1: {
}
}
case 9: {
// закомменченно, т.к. по идее не должно вызваться из-за блока по битсумме keys
// if (g_iCurrentPage[id] != MAX_PAGE-1)
g_iCurrentPage[id]++; // здесь плюсуем страничку и вызываем меню повторно
open_menu(id); // очевидно чтобы вызвать уже менюшку с новой страницы
}
case 0: {
// Если не первая страница, то возвращаемся на 1
if (g_iCurrentPage[id] > 0) {
g_iCurrentPage[id]--; // ++ - прибавляет 1, --убавляет на 1
open_menu(id);
}
}
}
}
почти готовый, конечно же я не напишу полностью готовое решение - дам вам немножко подумать. На самом деле все на поверхности, стоит только начатьBalbuR,
Это готовый вариант или его надо доделывать?
public menu_handler(id, key)
{
if(!is_user_alive(id) || zp_get_user_zombie(id))
return;
switch (g_iCurrentPage[id]) {
case 0: { // страница 1
switch (key) {
case 0: classZplayer2(id)
case 1: classZplayer1(id)
case 2: classAdmin(id)
case 3: classLord(id)
case 4: classImper(id)
case 5: classMummy(id)
case 6: classNano(id);
}
}
case 1: {
switch (key) {
case 0: classZplayer1pg(id);
}
}
case 9:
{
g_iCurrentPage[id]++; // здесь плюсуем страничку и вызываем меню повторно
open_menu(id); // очевидно чтобы вызвать уже менюшку с новой страницы
}
}
}
public menu_handler(id, key)
{
if(!is_user_alive(id) || zp_get_user_zombie(id))
return;
switch (g_iCurrentPage[id]) {
case 0: { // страница 1
switch (key) {
case 0: classZplayer2(id)
case 1: classZplayer1(id)
case 2: classAdmin(id)
case 3: classLord(id)
case 4: classImper(id)
case 5: classMummy(id)
case 6: classNano(id);
case 8: g_iCurrentPage[id]++;
}
}
case 1: {
switch (key) {
case 0: classZplayer1pg(id);
case 8: g_iCurrentPage[id]--;
}
}
}
}