Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Лотерейные билет [Advance RP]

faraday.

Эксперт
Регистрация
15 Окт 2015
Сообщения
1,667
Лучшие ответы
77
Репутация
1,008
Награды
1
Как-то публиковал тему подобную, но там ужасная реализация.
Сейчас сделал более оптимальный вариант.




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; 
}
в OnPlayerDisconnect
PHP:
lotto_1[playerid] =  
lotto_2[playerid] =  
lotto_3[playerid] = 0;
в PayDay:
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';
 
Последнее редактирование:
Сверху Снизу