Русское сообщество по скриптингу

[TUT] Создание меню из игроков в старой системе меню

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

[TUT] Создание меню из игроков в старой системе меню

Сообщение [email protected] » 06 авг 2011, 00:45

Автор: WPMG [email protected]
Источник: JustServer.Ru

В этой статье мы рассмотрим создание меню сформированного из игроков в старой системе меню на примере меню кика игроков.

Для начала создадим нужные нам переменные
Код: Выделить всё
// Текущая страница меню
new g_iPlayerMenuPage[33];
// Соотношение пункта к игроку в меню
new g_apPlayerMenuPlayers[33][32]; 


Далее в plugin_init зарегистрируем наше меню, а также зарегистрируем команду для вызова меню и словарь.
Код: Выделить всё
// Инициализация плагина
public plugin_init()
{
    // Регистрируем команду для вызова меню кика
    register_clcmd("say /KickPlayerMenu", "ClCmdKickPlayerMenu", ADMIN_KICK);
    
    
// Регистрируем меню (1-ый аргумент - ID меню (получается по его названию), 2-ой аргумент - кнопки (1023 все кнопки), 3-ий аргумент - функция которая будет вызываться при нажатии кнопки)
    register_menucmd(register_menuid("Kick Player"), 1023, "MenuKickPlayer");
    
    
// Регистрируем словарь
    register_dictionary("KickPlayerMenu.txt");


Перехват команды say /KickPlayerMenu
Код: Выделить всё
// Кто-то написал /KickPlayerMenu
public ClCmdKickPlayerMenu(pId, bitsAccess)
{
    // Если нету нужного флага не продолжаем
    if (!(get_user_flags(pId) & bitsAccess))
        return PLUGIN_CONTINUE;
    
    
// Показываем меню кика и обнуляем страницу
    ShowMenuKickPlayer(pId, g_iPlayerMenuPage[pId] = 0);
    
    
// Не показываем команду в чате
    return PLUGIN_HANDLED;


Функция показа меню кика:
Код: Выделить всё
// Показываем меню игроку
public ShowMenuKickPlayer(pId, iPage)
{
    // Если страница меньше нуля не продолжаем
    if (iPage < 0)
        return PLUGIN_HANDLED;
    
    new apPlayers
[32]; // Массив из игроков
    new iPlayers; // Всего игроков
    new szMenu[512], szName[32]; // Меню, имя
    new pPlayer; // Игрок
    
    
// Получаем игроков
    get_players(apPlayers, iPlayers);
    
    
// Находим стартового игрока
    new i = min(iPage * 8, iPlayers);
    
    new iStart 
= i - (% 8);
    
    
// Находим конечного игрока
    new iEnd = min(iStart + 8, iPlayers);
    
    
// Получаем страницу
    iPage = iStart / 8;
    
    
// Записываем игроку
    g_apPlayerMenuPlayers[pId] = apPlayers;
    g_iPlayerMenuPage[pId] = iPage;
    
    
// Формируем заголовок меню, получаем длину строки
    new iLen = formatex(szMenu, 511, "\r%L\R%d/%d^n^n", pId, "#KickPlayerMenu_Title", iPage + 1, ((iPlayers - 1) / 8) + 1);
    
    
// Добавляем к кнопкам 0
    new bitsKeys = MENU_KEY_0;
    
    
// Пункт
    new iItem;
    
    
// Флаги игрока
    new bitsFlags;
    
    
// Цикл из игроков
    for (= iStart; i < iEnd; i++)
    {
        // Получаем id игрока
        pPlayer = apPlayers[i];
        
        
// Берём имя игрока
        get_user_name(pPlayer, szName, 31);
        
        
// Делаем ник жёлтым если этот игрок это мы =)
        if (pId == pPlayer)
        {
            // Добавляем к кнопкам текущий пункт
            bitsKeys |= (<< iItem);
            
            
// Форматируем пункт, получаем длину
            iLen += formatex(szMenu[iLen], 511 - iLen, "\r%d. \y%s^n", ++iItem, szName);
        }
        // Рассматриваем другой случай
        else
        
{
            // Получаем флаги игрока
            bitsFlags = get_user_flags(pPlayer);
            
            
// Если игрок имеет имунитет делаем пункт серым, получаем длину
            if (bitsFlags & ADMIN_IMMUNITY)
                iLen += formatex(szMenu[iLen], 511 - iLen, "\d%d. %s^n", ++iItem, szName);
            // Игрок админ добавляем после ника красную звёздочку
            else if (bitsFlags > 0 && !(bitsFlags & ADMIN_USER))
            {
                // Добавляем к кнопкам текущий пункт
                bitsKeys |= (<< iItem);
                
                
// Форматируем пункт, получаем длину
                iLen += formatex(szMenu[iLen], 511 - iLen, "\r%d. \w%s\r*^n", ++iItem, szName);
            }
            // Обычный игрок
            else
            
{
                // Добавляем к кнопкам текущий пункт
                bitsKeys |= (<< iItem);
                
                
// Форматируем пункт, получаем длину
                iLen += formatex(szMenu[iLen], 511 - iLen, "\r%d. \w%s^n", ++iItem, szName);
            }
        }
    }
    
    
// Если последний игрок меньше всех игроков, добавляем пункт далее
    if (iEnd < iPlayers)
    {
        // Добавляем к кнопкам 9
        bitsKeys |= MENU_KEY_9;
        
        
// Форматируем пункты
        formatex(szMenu[iLen], 511 - iLen, "^n\r9. \w%L^n\r0. \w%L", pId, "#KickPlayerMenu_Next", pId, iPage ? "#KickPlayerMenu_Back" : "#KickPlayerMenu_Exit");
    }
    else
        formatex
(szMenu[iLen], 511 - iLen, "^n\r0. \w%L", pId, iPage ? "#KickPlayerMenu_Back" : "#KickPlayerMenu_Exit");
    
    
// Показываем меню
    return show_menu(pId, bitsKeys, szMenu, -1, "Kick Player");


При нажатии кнопки в меню игроком
Код: Выделить всё
// Игрок нажал кнопку
public MenuKickPlayer(pId, iKey)
{
    // Смотрим какая кнопка
    switch (iKey)
    {
        // (9) Далее
        case 8: ShowMenuKickPlayer(pId, ++g_iPlayerMenuPage[pId]); // Сразу прибавляем страницу
        // (0) Назад/Выход
        case 9: ShowMenuKickPlayer(pId, --g_iPlayerMenuPage[pId]); // Сразу уменьшаем страницу, если страница будет меньше нуля, то иеню закроется
        // Выбрали игрока
        default:
        {
            // Получаем игрока из массива (Умножаем текущую страницу на 8 и прибавляем кнопку)
            new pPlayer = g_apPlayerMenuPlayers[pId][(g_iPlayerMenuPage[pId] * 8) + iKey];
            
            
// Если игрок вышел
            if (!is_user_connected(pPlayer))
            {
                // Пишем игроку что игрок вышел
                client_print(pId, print_chat, "%L", pId, "#KickPlayerMenu_TargetDisconnected");
                
                
// Снова показываем меню
                ShowMenuKickPlayer(pId, g_iPlayerMenuPage[pId]);
                
                return PLUGIN_HANDLED
;
            }
            
            
// Если игрок получил иммунитет
            if (pId != pPlayer && (get_user_flags(pPlayer) & ADMIN_IMMUNITY))
            {
                // Пишем что игрок получил иммунитет
                client_print(pId, print_chat, "%L", pId, "#KickPlayerMenu_TargetImmunity");
                
                
// Снова показываем меню
                ShowMenuKickPlayer(pId, g_iPlayerMenuPage[pId]);
                
                return PLUGIN_HANDLED
;
            }
            
            
// Кикнул ли себя администратор
            new bool:bKickSelf = bool:(pId == pPlayer);
            
            
// Берём имя игрока
            new szName[32];
            
            get_user_name
(pId, szName, 31);
            
            
// Пишем что администратор кикнул себя
            if (bKickSelf)
                client_print(0, print_chat, "%L", LANG_PLAYER, "#KickPlayerMenu_SelfKicked", szName);
            else
            
{
                // Берём имя цели
                new szName2[32];
                
                get_user_name
(pPlayer, szName2, 31);
                
                
// Пишем что администратор кикнул игрока
                client_print(0, print_chat, "%L", LANG_PLAYER, "#KickPlayerMenu_TargetKicked", szName, szName2);
                
                
// Снова показываем меню
                ShowMenuKickPlayer(pId, g_iPlayerMenuPage[pId]);
            }
            
            
// Кикаем игрока
            server_cmd("kick #%d", get_user_userid(pPlayer));
            // Делаем чтобы игрок сразу кикнулся
            server_exec();
        }
    }
    
    return PLUGIN_HANDLED
;


Словарь:
Код: Выделить всё
[ru]
#KickPlayerMenu_Title = Меню кика игроков
#KickPlayerMenu_Next = Далее
#KickPlayerMenu_Back = Назад
#KickPlayerMenu_Exit = Выход
#KickPlayerMenu_TargetDisconnected = Данный игрок вышел с сервера
#KickPlayerMenu_TargetImmunity = Данный игрок получил иммунитет
#KickPlayerMenu_SelfKicked = Администратор %s кикнул себя
#KickPlayerMenu_TargetKicked = Администратор %s кикнул игрока %s


Полный плагин:
Код: Выделить всё
#include <amxmodx>

// Текущая страница меню
new g_iPlayerMenuPage[33];
// Соотношение пункта к игроку в меню
new g_apPlayerMenuPlayers[33][32];

// Прекеш плагина
public plugin_precache()
    register_plugin(
                    "Kick Player Menu",
                    "Alpha",
                    "WPMG [email protected]"
                    ); // Регистрируем плагин

// Инициализация плагина
public plugin_init()
{
    // Регистрируем команду для вызова меню кика
    register_clcmd("say /KickPlayerMenu", "ClCmdKickPlayerMenu", ADMIN_KICK);
    
    
// Регистрируем меню (1-ый аргумент - ID меню (получается по его названию), 2-ой аргумент - кнопки (1023 все кнопки), 3-ий аргумент - функция которая будет вызываться при нажатии кнопки)
    register_menucmd(register_menuid("Kick Player"), 1023, "MenuKickPlayer");
    
    
// Регистрируем словарь
    register_dictionary("KickPlayerMenu.txt");
}

// Кто-то написал /KickPlayerMenu
public ClCmdKickPlayerMenu(pId, bitsAccess)
{
    // Если нету нужного флага не продолжаем
    if (!(get_user_flags(pId) & bitsAccess))
        return PLUGIN_CONTINUE;
    
    
// Показываем меню кика и обнуляем страницу
    ShowMenuKickPlayer(pId, g_iPlayerMenuPage[pId] = 0);
    
    
// Не показываем команду в чате
    return PLUGIN_HANDLED;
}

// Показываем меню игроку
public ShowMenuKickPlayer(pId, iPage)
{
    // Если страница меньше нуля не продолжаем
    if (iPage < 0)
        return PLUGIN_HANDLED;
    
    new apPlayers
[32]; // Массив из игроков
    new iPlayers; // Всего игроков
    new szMenu[512], szName[32]; // Меню, имя
    new pPlayer; // Игрок
    
    
// Получаем игроков
    get_players(apPlayers, iPlayers);
    
    
// Находим стартового игрока
    new i = min(iPage * 8, iPlayers);
    
    new iStart 
= i - (% 8);
    
    
// Находим конечного игрока
    new iEnd = min(iStart + 8, iPlayers);
    
    
// Получаем страницу
    iPage = iStart / 8;
    
    
// Записываем игроку
    g_apPlayerMenuPlayers[pId] = apPlayers;
    g_iPlayerMenuPage[pId] = iPage;
    
    
// Формируем заголовок меню, получаем длину строки
    new iLen = formatex(szMenu, 511, "\r%L\R%d/%d^n^n", pId, "#KickPlayerMenu_Title", iPage + 1, ((iPlayers - 1) / 8) + 1);
    
    
// Добавляем к кнопкам 0
    new bitsKeys = MENU_KEY_0;
    
    
// Пункт
    new iItem;
    
    
// Флаги игрока
    new bitsFlags;
    
    
// Цикл из игроков
    for (= iStart; i < iEnd; i++)
    {
        // Получаем id игрока
        pPlayer = apPlayers[i];
        
        
// Берём имя игрока
        get_user_name(pPlayer, szName, 31);
        
        
// Делаем ник жёлтым если этот игрок это мы =)
        if (pId == pPlayer)
        {
            // Добавляем к кнопкам текущий пункт
            bitsKeys |= (<< iItem);
            
            
// Форматируем пункт, получаем длину
            iLen += formatex(szMenu[iLen], 511 - iLen, "\r%d. \y%s^n", ++iItem, szName);
        }
        // Рассматриваем другой случай
        else
        
{
            // Получаем флаги игрока
            bitsFlags = get_user_flags(pPlayer);
            
            
// Если игрок имеет имунитет делаем пункт серым, получаем длину
            if (bitsFlags & ADMIN_IMMUNITY)
                iLen += formatex(szMenu[iLen], 511 - iLen, "\d%d. %s^n", ++iItem, szName);
            // Игрок админ добавляем после ника красную звёздочку
            else if (bitsFlags > 0 && !(bitsFlags & ADMIN_USER))
            {
                // Добавляем к кнопкам текущий пункт
                bitsKeys |= (<< iItem);
                
                
// Форматируем пункт, получаем длину
                iLen += formatex(szMenu[iLen], 511 - iLen, "\r%d. \w%s\r*^n", ++iItem, szName);
            }
            // Обычный игрок
            else
            
{
                // Добавляем к кнопкам текущий пункт
                bitsKeys |= (<< iItem);
                
                
// Форматируем пункт, получаем длину
                iLen += formatex(szMenu[iLen], 511 - iLen, "\r%d. \w%s^n", ++iItem, szName);
            }
        }
    }
    
    
// Если последний игрок меньше всех игроков, добавляем пункт далее
    if (iEnd < iPlayers)
    {
        // Добавляем к кнопкам 9
        bitsKeys |= MENU_KEY_9;
        
        
// Форматируем пункты
        formatex(szMenu[iLen], 511 - iLen, "^n\r9. \w%L^n\r0. \w%L", pId, "#KickPlayerMenu_Next", pId, iPage ? "#KickPlayerMenu_Back" : "#KickPlayerMenu_Exit");
    }
    else
        formatex
(szMenu[iLen], 511 - iLen, "^n\r0. \w%L", pId, iPage ? "#KickPlayerMenu_Back" : "#KickPlayerMenu_Exit");
    
    
// Показываем меню
    return show_menu(pId, bitsKeys, szMenu, -1, "Kick Player");
}

// Игрок нажал кнопку
public MenuKickPlayer(pId, iKey)
{
    // Смотрим какая кнопка
    switch (iKey)
    {
        // (9) Далее
        case 8: ShowMenuKickPlayer(pId, ++g_iPlayerMenuPage[pId]); // Сразу прибавляем страницу
        // (0) Назад/Выход
        case 9: ShowMenuKickPlayer(pId, --g_iPlayerMenuPage[pId]); // Сразу уменьшаем страницу, если страница будет меньше нуля, то иеню закроется
        // Выбрали игрока
        default:
        {
            // Получаем игрока из массива (Умножаем текущую страницу на 8 и прибавляем кнопку)
            new pPlayer = g_apPlayerMenuPlayers[pId][(g_iPlayerMenuPage[pId] * 8) + iKey];
            
            
// Если игрок вышел
            if (!is_user_connected(pPlayer))
            {
                // Пишем игроку что игрок вышел
                client_print(pId, print_chat, "%L", pId, "#KickPlayerMenu_TargetDisconnected");
                
                
// Снова показываем меню
                ShowMenuKickPlayer(pId, g_iPlayerMenuPage[pId]);
                
                return PLUGIN_HANDLED
;
            }
            
            
// Если игрок получил иммунитет
            if (pId != pPlayer && (get_user_flags(pPlayer) & ADMIN_IMMUNITY))
            {
                // Пишем что игрок получил иммунитет
                client_print(pId, print_chat, "%L", pId, "#KickPlayerMenu_TargetImmunity");
                
                
// Снова показываем меню
                ShowMenuKickPlayer(pId, g_iPlayerMenuPage[pId]);
                
                return PLUGIN_HANDLED
;
            }
            
            
// Кикнул ли себя администратор
            new bool:bKickSelf = bool:(pId == pPlayer);
            
            
// Берём имя игрока
            new szName[32];
            
            get_user_name
(pId, szName, 31);
            
            
// Пишем что администратор кикнул себя
            if (bKickSelf)
                client_print(0, print_chat, "%L", LANG_PLAYER, "#KickPlayerMenu_SelfKicked", szName);
            else
            
{
                // Берём имя цели
                new szName2[32];
                
                get_user_name
(pPlayer, szName2, 31);
                
                
// Пишем что администратор кикнул игрока
                client_print(0, print_chat, "%L", LANG_PLAYER, "#KickPlayerMenu_TargetKicked", szName, szName2);
                
                
// Снова показываем меню
                ShowMenuKickPlayer(pId, g_iPlayerMenuPage[pId]);
            }
            
            
// Кикаем игрока
            server_cmd("kick #%d", get_user_userid(pPlayer));
            // Делаем чтобы игрок сразу кикнулся
            server_exec();
        }
    }
    
    return PLUGIN_HANDLED
;
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось [email protected] 14 авг 2011, 15:15, всего редактировалось 3 раз(а).
Аватара пользователя
[email protected]
Скриптер
 
Сообщения: 2505
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1121 раз.

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение Skrillex » 27 сен 2013, 21:53

GaMeRs писал(а):Скажите, как убрать себя из списка.
Делал так: [pawn]
  1. if(id == pPlayer) continue
[/pawn], в итоге меня в списке не было, но при нажатии на 1 игрока, все действия применяются ко мне.
Кароч просто скрывает меня, но не убирает.
Что можно сделать ?

Я фз, попробуй так:
[pawn]
  1. id != pPlayer
[/pawn]
Последний раз редактировалось Skrillex 27 сен 2013, 22:15, всего редактировалось 3 раз(а).
Аватара пользователя
Skrillex
 
Сообщения: 143
Зарегистрирован: 22 авг 2013, 09:41
Откуда: Киев
Благодарил (а): 30 раз.
Поблагодарили: 17 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение GaMeRs » 27 сен 2013, 21:58

Skrillex писал(а):
GaMeRs писал(а):Скажите, как убрать себя из списка.
Делал так: [pawn]
  1. if(id == pPlayer) continue
[/pawn], в итоге меня в списке не было, но при нажатии на 1 игрока, все действия применяются ко мне.
Кароч просто скрывает меня, но не убирает.
Что можно сделать ?

Я фз, попробуй так:
[pawn]
  1. id !== pPlayer
[/pawn]

Что за бред ты написал :crazy:
Аватара пользователя
GaMeRs
 
Сообщения: 1585
Зарегистрирован: 12 мар 2012, 17:25
Благодарил (а): 84 раз.
Поблагодарили: 468 раз.

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение [email protected] » 28 сен 2013, 01:10

GaMeRs писал(а):Скажите, как убрать себя из списка.
Делал так: [pawn]
  1. if(id == pPlayer) continue
[/pawn], в итоге меня в списке не было, но при нажатии на 1 игрока, все действия применяются ко мне.
Кароч просто скрывает меня, но не убирает.
Что можно сделать ?

Надо менять сбор массива:
[pawn]
  1.     // Получаем игроков

  2.     get_players(apPlayers, iPlayers);
[/pawn]
Аватара пользователя
[email protected]
Скриптер
 
Сообщения: 2505
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1121 раз.

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение BaHeK » 08 фев 2014, 13:10

[pawn]
  1.     // Получаем страницу

  2.     iPage = iStart / 8;
[/pawn]
Зачем? Номер страницы и так известен
[pawn]
  1. public ShowMenuKickPlayer(pId, iPage)
[/pawn]

[spoiler]Я VS VolksWagen POLO, МКАД
Психанул или моя русская рулетка
http://cs618330.vk.me/v618330946/8c16/hEeTVyYjCZw.jpg - Ой как плохо поступил[/spoiler]
Аватара пользователя
BaHeK
Скриптер
 
Сообщения: 540
Зарегистрирован: 26 авг 2011, 19:32
Откуда: Москва
Благодарил (а): 397 раз.
Поблагодарили: 254 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение [email protected] » 08 фев 2014, 13:35

BaHeK писал(а):[pawn]
  1.     // Получаем страницу

  2.     iPage = iStart / 8;
[/pawn]
Зачем? Номер страницы и так известен
[pawn]
  1. public ShowMenuKickPlayer(pId, iPage)
[/pawn]

А если часть игроков вышла, например?
Аватара пользователя
[email protected]
Скриптер
 
Сообщения: 2505
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1121 раз.

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение BaHeK » 08 фев 2014, 14:00

[email protected] писал(а):
BaHeK писал(а):[pawn]
  1.     // Получаем страницу

  2.     iPage = iStart / 8;
[/pawn]
Зачем? Номер страницы и так известен
[pawn]
  1. public ShowMenuKickPlayer(pId, iPage)
[/pawn]

А если часть игроков вышла, например?

Тогда вообще каша получается, ситуация такая: было 9 игроков, я открыл меню, 1 игрок вышел, я перехожу на вторую страницу
iPage = 1
[pawn]
  1. new i = min(iPage * 8, iPlayers);
[/pawn]
получается
[pawn]
  1. new i = min(1 * 8, 8);
[/pawn]
i = 8
[pawn]
  1. new iStart = i - (i % 8);
[/pawn]
->
[pawn]
  1. new iStart = 8 - (8 % 8); //8-0=8
[/pawn]
iStart = 8
[pawn]
  1. new iEnd = min(iStart + 8, iPlayers);
[/pawn]
->
[pawn]
  1. new iEnd = min(8 + 8, 8);
[/pawn]
iEnd = 8
[pawn]
  1. iPage = iStart / 8;
[/pawn]
->
[pawn]
  1. iPage = 8 / 8;
[/pawn]
iPage = 1 - а должно быть 0

Проще сделать как в plmenu
[pawn]
  1.         if (start >= g_menuPlayersNum[id])

  2.                 start = pos = g_menuPosition[id] = 0
[/pawn]
Перейти на первую страницу, либо определить последнюю страницу и перейти на нее

[spoiler]Я VS VolksWagen POLO, МКАД
Психанул или моя русская рулетка
http://cs618330.vk.me/v618330946/8c16/hEeTVyYjCZw.jpg - Ой как плохо поступил[/spoiler]
Аватара пользователя
BaHeK
Скриптер
 
Сообщения: 540
Зарегистрирован: 26 авг 2011, 19:32
Откуда: Москва
Благодарил (а): 397 раз.
Поблагодарили: 254 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение DumoH4uk » 25 сен 2014, 15:46

Ребята! Как сделать чтобы на каждой странице была кнопка выход?
А то сейчас нужно переходить на первую страницу чтобы выйти из меню =\
Аватара пользователя
DumoH4uk
 
Сообщения: 104
Зарегистрирован: 20 окт 2010, 22:49
Откуда: Москва
Благодарил (а): 41 раз.
Поблагодарили: 7 раз.

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение артист666 » 23 сен 2016, 10:54

i - (i % 8)

Не нужно.
Если вы хотите чему-то научиться, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2490
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 280 раз.
Поблагодарили: 559 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение Mistrick » 23 сен 2016, 11:09

артист666,
Код: Выделить всё
page 3;
players 20;
min(820) = 20

Делаем старт с 20 и на странице будет 1 игрок. Точно не нужно?
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2834
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1189 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: [TUT] Создание меню из игроков в старой системе меню

Сообщение артист666 » 23 сен 2016, 22:35

Mistrick писал(а):артист666,
Код: Выделить всё
page = 3;
players = 20;
= min(* 8, 20) = 20;

Делаем старт с 20 и на странице будет 1 игрок. Точно не нужно?


Я тебя не понял, пьян я.
Смотри, перед этим:
минимум(страница * 8, количество игроков)
В любом случае будет 0, итог - не нужная операция...

1й вариант, хоть что ты умнож на 8, оно без остатка поделится.
2й вариант, ... завтра...
Если вы хотите чему-то научиться, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2490
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 280 раз.
Поблагодарили: 559 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Пред.След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron