A3st
Новичок
Сегодня я вам расскажу как сделать Билет удачи (Samp-Rp Копия).
Суть выйгрыша, если выпадает 3 одинаковых числа вы выйграли 10 000 вирт.
Код для создания Билета Удачи:
В enum pInfo
В OnPlayerCommand.
Ищем комманду "/buy" и добавляем в неё Билет Удачи.
Комманда должна выглядить типо вот этой.
В OnDialogResponse.
В case 5589 - это ID "/buy" диалога.
Сверху где все cena добавляем cena8.
И идем к самому последнему listitem и добавляем новый listitem и пишем что написано в коде:
Весь код выглядеть должен вот так:
В OnPlayerConnect.
В OnPlayerLogin.
В OnPlayerRegister.
В OnPlayerUpdateRL или другую сис-му сохранения.
Примечание: если у вас уже есть cena8 то ставим cena9 и т.д, если у вас нет cena7, cena6, то ставим cena6, cena7, а если cena7 есть, то ставим cena8, как в коде.
Использование: Покупаете билет в любом Магазине 24/7, вводите комманду /prizeticket, затем если выпало 3 одиннаковых числа вводим /giveticket и получаете свои 10 000 вирт.
Буду благодарен за "Спасибо" под сообщением.
Суть выйгрыша, если выпадает 3 одинаковых числа вы выйграли 10 000 вирт.
Код для создания Билета Удачи:
В enum pInfo
PHP:
pTicket,
pTicketNr[3],
pTicketWin
PHP:
if(strcmp(cmd, "/prizeticket", true) == 0 )
{
if(PlayerInfo[playerid][pTicket] != 0)
{
SendClientMessage(playerid,COLOR_GRAD1,"У вас нет Билета Удачи.");
return 1;
}
if(PlayerInfo[playerid][pTicketNr][0] == PlayerInfo[playerid][pTicketNr][1] == PlayerInfo[playerid][pTicketNr][2])
{
format(string,sizeof(string), "На карточке:[%d][%d][%d],PlayerInfo[playerid][pTicketNr][0],PlayerInfo[playerid][pTicketNr][1],PlayerInfo[playerid][pTicketNr][2]);
SendClientMessage(playerid,COLOR_GREEN,string);
SendClientMessage(playerid,COLOR_WHITE,"Поздравляем у вас выпало 3 одинаковых числа");
PlayerInfo[playerid][pTicket] = 0;
PlayerInfo[playerid][pTicketWin] = 1;
PlayerInfo[playerid][pTicketNr][0] = 0;
PlayerInfo[playerid][pTicketNr][1] = 0;
PlayerInfo[playerid][pTicketNr][2] = 0;
return 1;
}
else
{
format(string,sizeof(string), "На карточке:[%d][%d][%d],PlayerInfo[playerid][pTicketNr][0],PlayerInfo[playerid][pTicketNr][1],PlayerInfo[playerid][pTicketNr][2]);
SendClientMessage(playerid,COLOR_GREEN,string);
SendClientMessage(playerid,COLOR_WHITE,"Может в следущий раз повезёт");
PlayerInfo[playerid][pTicket] = 0;
PlayerInfo[playerid][pTicketNr][0] = 0;
PlayerInfo[playerid][pTicketNr][1] = 0;
PlayerInfo[playerid][pTicketNr][2] = 0;
return 1;
}
}
if(strcmp(cmd, "/giveticket", true) == 0 )
{
if(PlayerInfo[playerid][pTicket] != 0)
{
SendClientMessage(playerid,COLOR_GRAD1,"У вас нет Билета Удачи.");
return 1;
}
if(PlayerInfo[playerid][pTicketWin] == 1)
{
SendClientMessage(playerid,COLOR_WHITE,"Вы забрали свои 10 000 вирт. Спасибо за покупку Билета Удачи.");
PlayerInfo[playerid][pCash] += 10000; //Выдача денег сервером
PlayerInfo[playerid][pTicketWin] = 0; //Обнуление pTicketWin сервером
return 1;
}
else
{
SendClientMessage(playerid,COLOR_WHITE,"Вы не чего не выйграли");
return 1;
}
}
Комманда должна выглядить типо вот этой.
PHP:
else if(strcmp(cmd, "/buy", true) == 0)
{
for(new i = 0; i < sizeof(BizzInfo); i++)
{
new inter = GetPlayerInterior(playerid);
new bizinfo[400];
new cena = BizzInfo[i][bCena];
new cena2 = BizzInfo[i][bCena] * 2;
new cena3 = BizzInfo[i][bCena] * 3;
new cena4 = BizzInfo[i][bCena] * 4;
new cena5 = BizzInfo[i][bCena] * 5;
new cena6 = BizzInfo[i][bCena] * 6;
new cena7 = BizzInfo[i][bCena] * 7;
new cena8 = BizzInfo[i][bCena] * 3;// * 7 Умоножение цены можете уменьшить/прибавить - цена билета удачи.
if (PlayerToPoint(10, playerid,BizzInfo[i][bBarX], BizzInfo[i][bBarY], BizzInfo[i][bBarZ]))
{
if( inter == 17 || inter == 16 || inter == 10 || inter == 18)
{
format(bizinfo,sizeof(bizinfo)," Телефоный номер\t\t[%d вирт]\n Телефонная книга\t\t[%d вирт]\n Справочник\t\t\t[%d вирт]\n Аптечки\t\t\t[%d вирт]\n Фотоаппарат\t\t\t[%d вирт]\n Цветы\t\t\t\t[%d вирт]\n Газовый балончик\t\t[%d вирт]\n Билет Удачи\t\t[%d вирт]",cena,cena2,cena3,cena4,cena5,cena6,cena7, cena8);
ShowPlayerDialog(playerid, 5589, DIALOG_STYLE_LIST, "24/7", bizinfo, "Купить", "Отмена");
}
}
}
return 1;
}
В case 5589 - это ID "/buy" диалога.
Сверху где все cena добавляем cena8.
И идем к самому последнему listitem и добавляем новый listitem и пишем что написано в коде:
PHP:
else if(listitem == 7) //Listitem - строка диалога счёт введется от 0.
{
new Float:health;
GetPlayerHealth(playerid,health);
if(PlayerToPoint(3, playerid,BizzInfo[h][bBarX], BizzInfo[h][bBarY], BizzInfo[h][bBarZ]))
{
if(BizzInfo[h][bProducts] <= 0)
{
SendClientMessage(playerid, COLOR_GREY,"Нет продуктов");
return 1;
}
if(PlayerInfo[playerid][pCash] < cena8)
{
SendClientMessage(playerid, COLOR_GREY, "У вас нет столько денег на руках!");
return 1;
}
BizzInfo[h][b2Till] += cena8;
BizzInfo[h][bProducts]-=10;
PlayerInfo[playerid][pCash] -=cena8;
SendClientMessage(playerid, COLOR_BLUE, "Билет удачи приобретен,если вам выпадут 3 одинаковых числа, то вы выиграете 10 000 вирт");
SendClientMessage(playerid, COLOR_BLUE, "(( Введите /prizeticket для того чтобы узнать номера, /giveticket чтобы получить выигрыш ))");
PlayerInfo[playerid][pTicket] = 1;
new randone = 1 + random(11);
new randtwo = 100000 + random(11);
new randtree = 1 + random(11);
PlayerInfo[playerid][pTicketNr][0] = randone;
PlayerInfo[playerid][pTicketNr][1] = randtwo;
PlayerInfo[playerid][pTicketNr][2] = randtree;
return 1;
}
}
PHP:
case 5589:
{
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
for(new h = 0; h < sizeof(BizzInfo); h++)
{
new cena = BizzInfo[h][bCena];
new cena2 = BizzInfo[h][bCena] * 2;
new cena3 = BizzInfo[h][bCena] * 3;
new cena4 = BizzInfo[h][bCena] * 4;
new cena5 = BizzInfo[h][bCena] * 5;
new cena6 = BizzInfo[h][bCena] * 6;
new cena7 = BizzInfo[h][bCena] * 7;
new cena8 = BizzInfo[h][bCena] * 3; //Цена билета удачи должно быть таким же, Что и в "/buy", иначе будет не правильно. Это должно быть вашим добавлением.
if(response)
{
//Тут все listitem.
//if(listitem == 0,1,2,3,4,5,6) После этих listitem ставим предыдущий код он должен выглядить так:
else if(listitem == 7) //Listitem - строка диалога счёт введется от 0.
{
new Float:health;
GetPlayerHealth(playerid,health);
if(PlayerToPoint(3, playerid,BizzInfo[h][bBarX], BizzInfo[h][bBarY], BizzInfo[h][bBarZ]))
{
if(BizzInfo[h][bProducts] <= 0)
{
SendClientMessage(playerid, COLOR_GREY,"Нет продуктов");
return 1;
}
if(PlayerInfo[playerid][pCash] < cena8)
{
SendClientMessage(playerid, COLOR_GREY, "У вас нет столько денег на руках!");
return 1;
}
BizzInfo[h][b2Till] += cena8;
BizzInfo[h][bProducts]-=10;
PlayerInfo[playerid][pCash] -=cena8;
SendClientMessage(playerid, COLOR_BLUE, "Билет удачи приобретен,если вам выпадут 3 одинаковых числа, то вы выиграете 10 000 вирт");
SendClientMessage(playerid, COLOR_BLUE, "(( Введите /prizeticket для того чтобы узнать номера, /giveticket чтобы получить выигрыш ))");
PlayerInfo[playerid][pTicket] = 1;
new randone = 1 + random(11);
new randtwo = 100000 + random(11);
new randtree = 1 + random(11);
PlayerInfo[playerid][pTicketNr][0] = randone;
PlayerInfo[playerid][pTicketNr][1] = randtwo;
PlayerInfo[playerid][pTicketNr][2] = randtree;
return 1;
}
}
}
}
}
PHP:
PlayerInfo[playerid][pTicket] = 0;
PlayerInfo[playerid][pTicketWin] = 0;
PlayerInfo[playerid][pTicketNr][0] = 0;
PlayerInfo[playerid][pTicketNr][1] = 0;
PlayerInfo[playerid][pTicketNr][2] = 0;
PHP:
ini_getInteger(File,"Ticket",PlayerInfo[playerid][pTicket]);
ini_getInteger(File,"TicketWinner",PlayerInfo[playerid][pTicketWin]);
ini_getInteger(File,"TicketNr 1",PlayerInfo[playerid][pTicketNr][0]);
ini_getInteger(File,"TicketNr 2",PlayerInfo[playerid][pTicketNr][1]);
ini_getInteger(File,"TicketNr 3",PlayerInfo[playerid][pTicketNr][2]);
PHP:
ini_setInteger(File,"Ticket",PlayerInfo[playerid][pTicket]);
ini_setInteger(File,"TicketWinner",PlayerInfo[playerid][pTicketWin]);
ini_setInteger(File,"TicketNr 1",PlayerInfo[playerid][pTicketNr][0]);
ini_setInteger(File,"TicketNr 2",PlayerInfo[playerid][pTicketNr][1]);
ini_setInteger(File,"TicketNr 3",PlayerInfo[playerid][pTicketNr][2]);
PHP:
ini_setInteger(File,"Ticket",PlayerInfo[playerid][pTicket]);
ini_setInteger(File,"TicketWinner",PlayerInfo[playerid][pTicketWin]);
ini_setInteger(File,"TicketNr 1",PlayerInfo[playerid][pTicketNr][0]);
ini_setInteger(File,"TicketNr 2",PlayerInfo[playerid][pTicketNr][1]);
ini_setInteger(File,"TicketNr 3",PlayerInfo[playerid][pTicketNr][2]);
Использование: Покупаете билет в любом Магазине 24/7, вводите комманду /prizeticket, затем если выпало 3 одиннаковых числа вводим /giveticket и получаете свои 10 000 вирт.
Буду благодарен за "Спасибо" под сообщением.
