faraday.
Эксперт
Как-то публиковал тему подобную, но там ужасная реализация.
Сейчас сделал более оптимальный вариант.
Вниз мода, куда удобно.
в диалоги:
в OnPlayerDisconnect
в PayDay:
Так же вариант с текстом по другому:
Сейчас сделал более оптимальный вариант.
PHP:
#define LOTTO_DIALOG 3333
new lotto_1[MAX_PLAYERS],
lotto_2[MAX_PLAYERS],
lotto_3[MAX_PLAYERS];
new lotto_string[] =
"{ffffff}Вы зарегестрированы в лотерее, резуельтат будет известен во время ближайшего розыгрыша, который пройдет в :00 минут\n"\
"Не выходите из игры чтобы принять в нём участие.\n\nВыигрыш будет зависить от того сколько чисел совпало в вашем счастливом числе и в числе, которое выпадает во\n"\
"время розыгрыша (по порядку с лево на право):\n\n"\
"Нет совподений:\t{ff6531}0$\n{ffffff}1 число:\t\t{63ff00}2000$\n{ffffff}2 числа:\t\t{63ff00}15000$\n{ffffff}Все числа:\t\t{63ff00}50000$\n\n"\
"{ffffff}Если Вы хотите изменить счастливое число, введите новое\nв противном случае просто нажмите\"Ок\"";
Вниз мода, куда удобно.
PHP:
stock lottery(playerid)
{
new number = 100+random(899);
lotto_1[playerid] = number/100;
lotto_2[playerid] = (number%100-number%10)/10;
lotto_3[playerid] = number%10;
new string[31 + 4];
format(string,sizeof string , "Ваше счастливое число: {ffd200}%d%d%d",lotto_1[playerid],lotto_2[playerid],lotto_3[playerid]);
return ShowPlayerDialog(playerid, LOTTO_DIALOG, 1,string, lotto_string, "Ок", "");
}
stock lottery_draw(playerid)
{
new string[128],
num;
new n_lotto = 100+random(899),
a = n_lotto%10,
b = (n_lotto%100-a)/10,
c = n_lotto/100;
if(lotto_1[playerid] == c) num++;
if(lotto_2[playerid] == b) num++;
if(lotto_3[playerid] == a) num++;
format(string, sizeof string ,"Начинаем лотерейный розыгрыш. Ваше счастливое число: %d%d%d",lotto_1[playerid],lotto_2[playerid],lotto_3[playerid]);
SendClientMessage(playerid,0xffd200FF,string);
format(string, sizeof string , "Счастливое число этого часа: {ff9a00}%d",n_lotto);
SendClientMessage(playerid,0x63cb00ff,string);
switch(num)
{
case 0: SendClientMessage(playerid,-1, "К сожалению в вашем билете ни совпала не одна цифра");
case 1: SendClientMessage(playerid,0x5AB200FF, "В вашем билете совпало 1 цифра. Поздравляем, ваш выигрыш 2.000$");//выдаём деньги
case 2: SendClientMessage(playerid,0x5AB200FF, "В вашем билете совпали 2 цифры. Поздравляем, ваш выйгрыш 15.000$");//выдаем деньги
case 3: SendClientMessage(playerid,0x5AB200FF, "В вашем билете совпали все числа. Поздравляем, ваш выигрыш 50.000$");//выдаем деньги
}
lotto_1[playerid] =
lotto_2[playerid] =
lotto_3[playerid] = 0;
return 1;
}
PHP:
case LOTTO_DIALOG:
{
if(!response) return 1;
new string[144];
if(!strlen(inputtext))//если оставил поле пустым
{
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
SendClientMessage(playerid, 0x5AB200FF,"Вы купили лотерейный билет");
format(string, sizeof(string), "Ваше счастливое число: {00bebd}%d%d%d",lotto_1[playerid],lotto_2[playerid],lotto_3[playerid]);
SendClientMessage(playerid, 0x5AB200FF,string);
return 1;
}
for(new i = 0; i < strlen (inputtext); i ++)//разрешаем использовать только цифры
{
switch(inputtext[i])
{
case '0'..'9': continue;
default: return lottery(playerid),SendClientMessage(playerid,0xFF4F00FF,"Неверный формат. {0099FF}Пример: 614");
}
}
if(strlen(inputtext) != 3) return lottery(playerid),SendClientMessage(playerid,0xFF4F00FF,"Неверный формат. {0099FF}Пример: 614"); //и только 3
if(inputtext[0] == '0') return lottery(playerid),SendClientMessage(playerid,0xFF4F00FF,"Число не может начинаться с цифры 0");
new number = strval(inputtext);
//разделям введенное число на 3 раздельных цифры
lotto_1[playerid] = number/100;
lotto_2[playerid] = (number%100-number%10)/10;
lotto_3[playerid] = number%10;
SendClientMessage(playerid, 0x5AB200FF,"Вы купили лотерейный билет");
format(string, sizeof string , "Cчастливое число изменено на: {00bebd}%d",strval(inputtext));
SendClientMessage(playerid,0x5AB200FF,string);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
return 1;
}
PHP:
CMD:lotto(playerid) //можно добавить как товар в 24/7
{
if(/*массив деньги*/ < 300) return SendClientMessage(playerid, -1, "У вас не хватает денег");
/*массив деньги*/ -= 300;
lottery(playerid);
return 1;
}
PHP:
lotto_1[playerid] =
lotto_2[playerid] =
lotto_3[playerid] = 0;
PHP:
if(lotto_1[playerid]) lottery_draw(playerid); // или [i] and (i)
Так же вариант с текстом по другому:
PHP:
//к new
new lotto_string[] =
"{ffffff}Вы зарегестрированы в лотерее, резуельтат будет известен во время ближайшего розыгрыша, который пройдет в :02 минуты\n"\
"Не выходите из игры чтобы принять в нём участие.\n\nВыигрыш будет зависить от того сколько чисел совпало в вашем счастливом числе и в числе, которое выпадает во",
lotto_string_2[] =
"время розыгрыша (по порядку с лево на право):\n\n"\
"Нет совподений:\t{ff6531}0$\n{ffffff}1 число:\t\t{63ff00}2000$\n{ffffff}2 числа:\t\t{63ff00}15000$\n{ffffff}Все числа:\t\t{63ff00}50000$\n\n"\
"{ffffff}Если Вы хотите изменить счастливое число, введите новое\nв противном случае просто нажмите\"Ок\"";
//в OnGameModeInit
lotto_string[sizeof(lotto_string)-1] = '\n';
lotto_string_2[sizeof(lotto_string_2)-1] = '\0';
Последнее редактирование: