Scally Milano
Умник
Доброго времени суток , решил выложить вам систему лотереи.
АВТОР: Stibs (Переделал почти всё - Я)
И так , начнём , переходим туда где у вас все forward'ы и вставляем
Ко всем define
и создаем глобальные переменные
Создадим public'и
Дальше идем в OnGameModeInit и вставляем
Далее ищем в моде сток/паблик где у вас происходит payday на сервере
и вставляем туда
for (new i; i <= MAX_NUMBER_LOTTO; i++)
array_lottonr = false;
for(new i; i < sizeof(CommandOne); i++)
CommandOne = 0;
Перейдем к созданию самой команды , вот код команды
Загружаем мод на сервер , перезагружаем , заходим и делаем payday , всё, система лотереи готова. От плюсика не откажусь
ВНИМАНИЕ! НЕ ЗАБУДЬТЕ СОЗДАТЬ В SCRIPTFILES loto.ini ИНАЧЕ СЕРВЕР НЕ ВКЛЮЧИТСЯ
P.S Если нужна будет команда на стандартном командном процессоре , то пишите сюда в тему
UPD 2.07.2021: Обновил систему на более оптимальную
АВТОР: Stibs (Переделал почти всё - Я)
И так , начнём , переходим туда где у вас все forward'ы и вставляем
Ко всем define
#define MAX_NUMBER_LOTTO 80
#define SCM SendClientMessage
#define COLOR_LIGHTBLUE 0x6495EDFF и создаем глобальные переменные
new CommandOne[MAX_PLAYERS];
new bool:array_lottonr[MAX_NUMBER_LOTTO + 1];
new Bilet[MAX_PLAYERS];
new Jackpot = 0;
PHP:
forward Lotto(number);
forward LoadLoto();
forward SaveLoto();
PHP:
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[i] > 0)
{
if(Bilet[i] == 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[i] = 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 на сервере
и вставляем туда
PHP:
new randLoto = random(80);
if(randLoto < 77)
{
randLoto += 3;
}
Lotto(randLoto);
array_lottonr = false;
for(new i; i < sizeof(CommandOne); i++)
CommandOne = 0;
Перейдем к созданию самой команды , вот код команды
PHP:
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;
}
Загружаем мод на сервер , перезагружаем , заходим и делаем payday , всё, система лотереи готова. От плюсика не откажусь
ВНИМАНИЕ! НЕ ЗАБУДЬТЕ СОЗДАТЬ В SCRIPTFILES loto.ini ИНАЧЕ СЕРВЕР НЕ ВКЛЮЧИТСЯ
P.S Если нужна будет команда на стандартном командном процессоре , то пишите сюда в тему
UPD 2.07.2021: Обновил систему на более оптимальную
Последнее редактирование:
