Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/online | Список игроков для Android клиента

OKStyle

Эксперт
Итак, вполне себе логичный вопрос был недавно на форуме: как посмотреть онлайн с мобилки? Мой вариант, как и оригинал - на диалоге. Цвета игроков показываются.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


PHP:
if(!strcmp(cmdtext, "/online", true))
{
    new info[4096], PlayerName[MAX_PLAYER_NAME], count, caption[64];
    GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
    new pcolor = GetPlayerColor(playerid) >>> 8;
    format(info, sizeof(info), "id\tname\tscore\tping\n{%06x}%d\t{%06x}%s\t{%06x}%d\t{%06x}%d", pcolor, playerid, pcolor, PlayerName, pcolor, GetPlayerScore(playerid), pcolor, GetPlayerPing(playerid));
    for(new i, j = GetPlayerPoolSize(), icolor; i <= j; i++)
    {
        if(!IsPlayerConnected(i) || i == playerid) continue;
        GetPlayerName(i, PlayerName, MAX_PLAYER_NAME);
        icolor = GetPlayerColor(i) >>> 8;
        format(info, sizeof(info), "%s{%06x}%i\t{%06x}%s\t{%06x}%d\t{%06x}%d\n", info, icolor, i, icolor, PlayerName, icolor, GetPlayerScore(i), icolor, GetPlayerPing(i));
        count++;
    }
    GetServerVarAsString("hostname", caption, sizeof(caption));
    format(caption, sizeof(caption), "%s    Players: %d", caption, count + 1);
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_TABLIST_HEADERS, caption, info, "Cancel" , "" );
    return 1;
}
Автор: OKStyle

P.S. Не хватит места в диалоге при полном онлайне, т.к. потребуется (8 + 1 + 8 + 3 + 1 + 8 + MAX_PLAYER_NAME + 1 + 8 + 9 + 1 + 8 + 10 + 1) * MAX_PLAYERS ячеек, а текущий лимит - 4096. Так что count ограничить надо до ~ 100 игроков: перед получением имени в цикле поставить: if(count == 99) break;
Адаптируйте под себя (добавляйте FPS и что угодно), но не забывайте о количестве ячеек в массиве.

P.P.S.: Но я бы добавил TAB на текстдравах, как было до 0.3 версии SA-MP. Такое уже делал [TDM]Relax (если я не ошибаюсь с ником), кстати, когда мы с ним PEN дорабатывали. Возможно, выложу.

P.P.P.S. Можно внести условие и показывать онлайн только тех, кто с мобилки.
 
Последнее редактирование:
Сверху Снизу