Code: Select all
random(number);
Однако в большинстве компьютерных языков, все числа начинаются с 0, так что если сделать так:
Code: Select all
random(10);
будет выбрано число из: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Если вы не хотите видеть 0 в результате, то должны использовать этот код:
Code: Select all
random(number) + 1;
Таким образом, если случайное число равно 0, то результатом будет 0 + 1= 1. Если случайное число равно 9, то в результате 9 + 1= 10.
Y_Less сделал код, который лучше делает случайное число:
Code: Select all
stock randomEx(min, max)
{
new rand = random(max-min)+min;
return rand;
}
Пример использования:
Code: Select all
CMD:lotto(playerid, params[])
{
new rand = random(10) + 1;
new number; // новая переменная "number", чтобы хранить данные
if(sscanf(params,"i", number)) // sscanf.
{
SendClientMessage(playerid, 0xFF0000AA, "/lotto [1-10]"); //если игрок набрали не цифровой номер
}
else // если он не ошибся, то продолжаем
{
if ( number > 10 || number < 1) // если он набрал /lotto 11 или /lotto 0 или /lotto 1243
{
SendClientMessage(playerid, 0xFF0000AA, "Выбери номер от 1-10"); // сообщение об ошибке.
}
else // Если число его между 1 и 10, то продолжаем дальше
{
if (number == rand) // Если он выиграл - случайное число совпадает с числом которое выбрал игрок
{
SendClientMessage(playerid, 0x33AA33AA, "Вы выиграли!!");
GivePlayerMoney(playerid, 1000000); // даём мани
SetPlayerScore(playerid, GetPlayerScore(playerid) + 1); //прибавим score.
}
else
{
if( number != rand) // Если число не совпало..
{
SendClientMessage(playerid, 0xFF0000AA, "Вы проиграли");
}
}
}
}
return 1;
}
По желанию можете изменить код как хотите. К примеру - при проигрыше отнять денег