Активный
- Тема Автор
- #1
Идея и назначение
Команда показывает список самых богатых игроков онлайн.
Подходит для экономических серверов и соревновательных режимов.
Суть реализации
1. Собираем список всех онлайн игроков и их деньги.
2. Сортируем по количеству денег простым методом.
3. Выводим первые N игроков в чат.
Реализация
Дополнительные идеи
1. Отдельные топы по заработку за день или неделю.
2. Хранение глобального топа в базе данных.
3. Награды за попадание в топ.
Команда показывает список самых богатых игроков онлайн.
Подходит для экономических серверов и соревновательных режимов.
Суть реализации
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. Награды за попадание в топ.