shape1
shape2
shape3
shape4
shape7
shape8

Система лотереи | /lotto [DC_CMD}


Cocolemunto

Чёрный список
11.06.2021
416
3
55
0
14
Доброй ночи друзья , решил выложить для вас систему лотереи.

Автор - Я ?
И так , начнём
Добавляем команду 
 

CMD:lotto(playerid, params[])
{
if(CommandOne[playerid] < 20)
return SendClientMessage(playerid,-1,"Купить билет можно лишь 20 раз , нужно ждать 1 час");
if(GetPlayerMoney(playerid) < 1500)
return SendClientMessage(playerid,COLOR_GREY,"Билет стоит 1500$");

new
lottonr;

if(sscanf(params, "d", lottonr))
return SendClientMessage(playerid,COLOR_WHITE,"ИНФО: /lotto [number]");
if(!(1 <= lottonr <= MAX_NUMBER_LOTTO))
return SendClientMessage(playerid,COLOR_GREY,"Номер билета не должен превышать "#MAX_NUMBER_LOTTO"!");
if(array_lottonr[lottonr] == true)
return SendClientMessage(playerid,COLOR_GREY,"Этот номер уже выкупили");

new
string[64];

format(string,sizeof(string),"Вы купили лотерейный билет под номером: %i",lottonr);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
GivePlayerMoney(playerid,-1500);
Bilet[playerid] = lottonr;
array_lottonr[lottonr] = true;
CommandOne[playerid] ++;
return 1;
}


Далее идём ко всем define и вставляем 

#define MAX_NUMBER_LOTTO 80


и добавляем 

new CommandOne[MAX_PLAYERS];


Далее идём туда , где у вас все forward'ы
и вставляем

forward Lotto(number);
forward LoadLoto();
forward SaveLoto();


Так-же добавляем еще одну глобальную переменную
 

new bool:array_lottonr[MAX_NUMBER_LOTTO + 1];


Перейдем к созданию самих пабликов , код ниже
 

public Lotto(number)
{
new JackpotFallen = 0;
new string[256];
new winner[MAX_PLAYER_NAME];
format(string,sizeof(string),"Новости лотто: Выигрышным номером является %i",number);
SCMA(COLOR_LIGHTBLUE,string);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(Bilet > 0)
{
if(Bilet == number)
{
JackpotFallen = 1;
GetPlayerName(i,winner,sizeof(winner));
format(string,sizeof(string), "Новости лотто: %s выигрывает джекпот %iр",winner,Jackpot);
SCMA(COLOR_LIGHTBLUE,string);
format(string,sizeof(string),"Вы выиграли %iр в лотто",Jackpot);
SendClientMessage(i,COLOR_YELLOW,string);
GivePlayerMoney(i,Jackpot);
}
else SendClientMessage(i,COLOR_LIGHTBLUE,"Вы ничего не выиграли.");
}
Bilet = 0;
}
if(JackpotFallen)
{
new rand = random(1250); rand += 1578;
Jackpot = rand;
SaveLoto();
format(string,sizeof(string),"Новости лотто: джекпот установлен на %i",Jackpot);
SCMA(COLOR_WHITE,string);
}
else
{
new rand = random(1500); rand += 2158;
Jackpot += rand;
SaveLoto();
format(string,sizeof(string),"Новости лотто: джекпот поднялся до %i",Jackpot);
SCMA(COLOR_WHITE,string);
}
return 1;
}
public LoadLoto()
{
new loadloto[16];
new strFromFile2[256];
new File:file = fopen("loto.ini",io_read);
if(file)
{
fread(file,strFromFile2);
Jackpot = strval(loadloto);
fclose(file);
}
else GameModeExit();
return 1;
}
public SaveLoto()
{
new s[256];
format(s,sizeof(s),"%d",Jackpot);
new File:file2 = fopen("loto.ini",io_write);
fwrite(file2,s);
fclose(file2);
return 1;
}



Далее мы идём к паблику/стоку PayDay(); , у вас может называться по другому (коротко , это паблик где происходит пейдей)
и вставляем
 

new randLoto = random(80);
if(randLoto < 77)
{
randLoto += 3;
}
Lotto(randLoto);

Код:
for (new i; i <= MAX_NUMBER_LOTTO; i++)
    array_lottonr[i] = false;
   	}
    	}
			}
    for(new i; i < sizeof(OneCommand); i++)
    CommandOne[i] = 0;

ВНИМАНИЕ! НЕ ЗАБЫВАЕМ СОЗДАТЬ В scriptfiles ФАЙЛ loto.ini , ИНАЧЕ СЕРВЕР НЕ ЗАПУСТИТСЯ!