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

Добавить два пункта в меню

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

В данном разделе форума разрешено создавать темы только с поиском исполнителя или заказчика.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Добавить два пункта в меню

Сообщение obey98 » 02 июл 2020, 20:59

В готовом меню на старой системе добавить два первых пункта, которые будут отображаться на каждой странице, либо только на первой, пункты ниже - игроки.
С этими двумя пунктами ничего делать сверхъестественного не нужно - обычный вывод текста в чат, например, но это неважно, ибо переделаю под себя.

Бюджет: до 100 р.
Telegram: comradecs

Код меню без изменений с обычного jbe_engine

Код: Выделить всё
Cmd_BlockedGuardMenu(id) return Show_BlockedGuardMenu(id, g_iMenuPosition[id] = 0);
Show_BlockedGuardMenu(id, iPos)
{
    if(iPos < 0) return PLUGIN_HANDLED;
    jbe_informer_offset_up(id);
    new iPlayersNum;
    for(new i = 1; i <= g_iMaxPlayers; i++)
    {
        if(IsNotSetBit(g_iBitUserConnected, i) || IsSetBit(g_iBitUserAdmin, i)) continue;
        g_iMenuPlayers[id][iPlayersNum++] = i;
    }
    new iStart = iPos * PLAYERS_PER_PAGE;
    if(iStart > iPlayersNum) iStart = iPlayersNum;
    iStart = iStart - (iStart % 8);
    g_iMenuPosition[id] = iStart / PLAYERS_PER_PAGE;
    new iEnd = iStart + PLAYERS_PER_PAGE;
    if(iEnd > iPlayersNum) iEnd = iPlayersNum;
    new szMenu[512], iLen, iPagesNum = (iPlayersNum / PLAYERS_PER_PAGE + ((iPlayersNum % PLAYERS_PER_PAGE) ? 1 : 0));
    switch(iPagesNum)
    {
        case 0:
        {
            UTIL_SayText(id, "!g[JBE] %L", id, "JBE_CHAT_ID_PLAYERS_NOT_VALID");
            switch(g_iUserTeam[id])
            {
                case 1, 2: return Show_VipMenu(id);
                default: return PLUGIN_HANDLED;
            }
        }
        default: iLen = formatex(szMenu, charsmax(szMenu), "\y%L \w[%d|%d]^n^n", id, "JBE_MENU_BLOCKED_GUARD_TITLE", iPos + 1, iPagesNum);
    }
    new szName[32], i, iKeys = (1<<9), b;
    for(new a = iStart; a < iEnd; a++)
    {
        i = g_iMenuPlayers[id][a];
        get_user_name(i, szName, charsmax(szName));
        iKeys |= (1<<b);
        if(IsSetBit(g_iBitUserBlockedGuard, i)) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[%d] \w%s \r*^n", ++b, szName);
        else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[%d] \w%s^n", ++b, szName);
    }
    for(new i = b; i < PLAYERS_PER_PAGE; i++) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n");
    if(iEnd < iPlayersNum)
    {
        iKeys |= (1<<8);
        formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[9] \w%L^n\y[0] \w%L", id, "JBE_MENU_NEXT", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
    }
    else formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n^n\y[0] \w%L", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
    return show_menu(id, iKeys, szMenu, -1, "Show_BlockedGuardMenu");
}

public Handle_BlockedGuardMenu(id, iKey)
{
    switch(iKey)
    {
        case 8: return Show_BlockedGuardMenu(id, ++g_iMenuPosition[id]);
        case 9: return Show_BlockedGuardMenu(id, --g_iMenuPosition[id]);
        default:
        {
            new iTarget = g_iMenuPlayers[id][g_iMenuPosition[id] * PLAYERS_PER_PAGE + iKey];
            if(IsSetBit(g_iBitUserBlockedGuard, iTarget)) ClearBit(g_iBitUserBlockedGuard, iTarget);
            else if(IsSetBit(g_iBitUserConnected, id))
            {
                if(g_iUserTeam[iTarget] == 2) jbe_set_user_team(iTarget, 1);
                SetBit(g_iBitUserBlockedGuard, iTarget);
            }
        }
    }
    return Show_BlockedGuardMenu(id, g_iMenuPosition[id]);
}
Аватара пользователя
obey98
 
Сообщения: 52
Зарегистрирован: 16 июл 2014, 17:55
Благодарил (а): 42 раз.
Поблагодарили: 2 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Вернуться в Поиск исполнителей / заказчиков

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

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