Мини лотерея через чат

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

8

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

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

Игроки могут купить лотерейный билет и участвовать в розыгрыше.

По команде запуска розыгрыша случайный игрок получает банк.


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

1. Храним список участников и общий банк.

2. Команда покупки билета добавляет игрока и увеличивает банк.

3. Команда розыгрыша выбирает случайного участника.


Реализация

Код:
new LotteryPlayers[MAX_PLAYERS];
new LotteryCount;
new LotteryBank;


CMD:buyticket(playerid)
{
    for(new i = 0; i < LotteryCount; i++)
        if(LotteryPlayers[i] == playerid)
            return SendClientMessage(playerid, -1, "Ты уже участвуешь в лотерее.");

    if(GetPlayerMoney(playerid) < 500)
        return SendClientMessage(playerid, -1, "Нужно 500$ для покупки билета.");

    GivePlayerMoney(playerid, -500);

    LotteryPlayers[LotteryCount++] = playerid;
    LotteryBank += 500;

    SendClientMessage(playerid, -1, "Ты купил лотерейный билет.");

    return 1;
}


CMD:lottery(playerid)
{
    if(LotteryCount == 0)
        return SendClientMessage(playerid, -1, "В лотерее нет участников.");

    new index = random(LotteryCount);
    new winner = LotteryPlayers[index];

    if(IsPlayerConnected(winner))
    {
        GivePlayerMoney(winner, LotteryBank);
        SendClientMessageToAll(-1, "Лотерея завершена, есть победитель.");
    }

    LotteryCount = 0;
    LotteryBank = 0;

    return 1;
}


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

1. Делать автоматический розыгрыш раз в час.

2. Показывать текущий банк и количество участников.

3. Сохранять статистику победителей.
 

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

Сверху