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