Команда просмотра топа богачей

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Идея и назначение

Команда показывает список самых богатых игроков онлайн.

Подходит для экономических серверов и соревновательных режимов.


Суть реализации

1. Собираем список всех онлайн игроков и их деньги.

2. Сортируем по количеству денег простым методом.

3. Выводим первые N игроков в чат.


Реализация

Код:
CMD:rich(playerid)
{
    new ids[MAX_PLAYERS];
    new money[MAX_PLAYERS];
    new count;

    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;

        ids[count] = i;
        money[count] = GetPlayerMoney(i);
        count++;
    }

    for(new i = 0; i < count; i++)
    {
        for(new j = i + 1; j < count; j++)
        {
            if(money[j] > money[i])
            {
                new tmpm = money[i];
                money[i] = money[j];
                money[j] = tmpm;

                new tmpid = ids[i];
                ids[i] = ids[j];
                ids[j] = tmpid;
            }
        }
    }

    SendClientMessage(playerid, -1, "Топ богатых онлайн:");

    new name[MAX_PLAYER_NAME], msg[64];

    new limit = (count > 10) ? 10 : count;

    for(new i = 0; i < limit; i++)
    {
        GetPlayerName(ids[i], name, sizeof name);
        format(msg, sizeof msg, "%d. %s - %d$", i + 1, name, money[i]);
        SendClientMessage(playerid, -1, msg);
    }

    return 1;
}


Дополнительные идеи

1. Отдельные топы по заработку за день или неделю.

2. Хранение глобального топа в базе данных.

3. Награды за попадание в топ.
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху