Здравствуйте уважаемы пользователи.
Делать было нечего,и решил написать несложную систему тотализатора.
Видео
Ну а теперь начнём.
Ко всем define
Код:
#define TOTAL 2538 #define COLOR_ORANGE2 0xFF8000FF
Ко всем New:
Код:
new namec1[50]; new namec2[50]; new names[50]; new coaf1; new coaf2; new coaf3; new stavki; new pics; new stav[MAX_PLAYERS]; new post[MAX_PLAYERS];
В public OnPlayerPickUpPickup:
Код:
if(pickupid == pics)
{
if(stavki == 1)
{
new string1[256];
format(string1,sizeof(string1),"- %s.Коэффициент[%d]\n- %s.Коэффициент[%d]\n- Ничья.Коэффициент[%d]",namec1,coaf1,namec2,coaf2,coaf3);
SPD(playerid,TOTAL+7,DIALOG_STYLE_LIST,"Доступные ставки",string1,"Выбрать","Отмена");
}
else return SendClientMessage(playerid,COLOR_WHITE,"Нет доступных ставок");
}В OnGameModeInti:
Код:
pics = CreatePickup(1314,2,377.4673,-1886.6239,7.8359);
В OnDialogResponse
Код:
case TOTAL:
{
if(response)
{
strmid (names, inputtext, 0, strlen(inputtext), 255);
SPD(playerid,TOTAL+1,DIALOG_STYLE_INPUT,"Название","Введите название команды №1","Далее","Отмена");
}
}
case TOTAL+1:
{
if(response)
{
strmid (namec1, inputtext, 0, strlen(inputtext), 255);
SPD(playerid,TOTAL+2,DIALOG_STYLE_INPUT,"Название","Введите название команды №2","Далее","Отмена");
}
}
case TOTAL+2:
{
if(response)
{
strmid (namec2, inputtext, 0, strlen(inputtext), 255);
SPD(playerid,TOTAL+3,DIALOG_STYLE_INPUT,"Коэффициент","Введите коэффициент для команды №1","Далее","Отмена");
}
}
case TOTAL+3:
{
if(response)
{
coaf1 = strval(inputtext);
SPD(playerid,TOTAL+4,DIALOG_STYLE_INPUT,"Коэффициент","Введите коэффициент для команды №2","Далее","Отмена");
}
}
case TOTAL+4:
{
if(response)
{
coaf2 = strval(inputtext);
SPD(playerid,TOTAL+5,DIALOG_STYLE_INPUT,"Коэффициент","Введите коэффициент ничьи","Далее","Отмена");
}
}
case TOTAL+5:
{
if(response)
{
coaf3 = strval(inputtext);
new string1[256];
format(string1,sizeof(string1),"Вид спорта -%s\nНазвание команды №1 - %s\nНазвание команды №2 - %s\nКоэффициент команды №1 - %d\nКоэффициент команды №2 - %d\nКоэффициент ничьи - %d",names,namec1,namec2,coaf1,coaf2,coaf3);
SPD(playerid,TOTAL+6,DIALOG_STYLE_MSGBOX,"Тотализатор",string1,"Готово","Отмена");
}
}
case TOTAL+6:
{
if(response)
{
new all1[256];
format(all1,sizeof(all1),"Открыто принятие ставок. Вид спорта - %s. %s против %s. Ставки можно сделать на пляже Лос Сантоса",names,namec1,namec2);
stavki = 1;
SendClientMessageToAll(COLOR_ORANGE2, all1);
}
else return SendClientMessage(playerid,COLOR_ORANGE2,"Вы отменили создание тотализатора");
}
case TOTAL+7:
{
if(response)
{
switch(listitem)
{
case 0: SPD(playerid,TOTAL+8,DIALOG_STYLE_INPUT,"Ставка","Введите сумму которую хотите поставить","Готово","Отмена");
case 1: SPD(playerid,TOTAL+9,DIALOG_STYLE_INPUT,"Ставка","Введите сумму которую хотите поставить","Готово","Отмена");
case 2: SPD(playerid,TOTAL+10,DIALOG_STYLE_INPUT,"Ставка","Введите сумму которую хотите поставить","Готово","Отмена");
}
}
}
case TOTAL+8:
{
if(response)
{
stav[playerid] = strval(inputtext);
if(PlayerInfo[playerid][pCash] < stav[playerid]) return SendClientMessage(playerid, COLOR_GRAD1, "У вас нет столько денег");
if(stav[playerid] < 1 || stav[playerid] > 10000000) return SendClientMessage(playerid, COLOR_GRAD1, "Нельзя поставить меньше 1 вирта и больше 10000000 вирт.");
format(string,256,"Вы сделали ставку в размере %d. Если вы выйграите вы получите %d",stav[playerid],stav[playerid]*coaf1);
PlayerInfo[playerid][pCash] -= stav[playerid];
SendClientMessage(playerid,COLOR_RED,string);
SendClientMessage(playerid,COLOR_RED,"(( Если вы покините игру вы ничего не выйграите ))");
post[playerid] = 1;
OnPlayerUpdateRL(playerid);
}
}
case TOTAL+9:
{
if(response)
{
stav[playerid] = strval(inputtext);
if(PlayerInfo[playerid][pCash] < stav[playerid]) return SendClientMessage(playerid, COLOR_GRAD1, "У вас нет столько денег");
if(stav[playerid] < 1 || stav[playerid] > 10000000) return SendClientMessage(playerid, COLOR_GRAD1, "Нельзя поставить меньше 1 вирта и больше 10000000 вирт.");
format(string,256,"Вы сделали ставку в размере %d. Если вы выйграите вы получите %d",stav[playerid],stav[playerid]*coaf2);
PlayerInfo[playerid][pCash] -= stav[playerid];
SendClientMessage(playerid,COLOR_RED,string);
SendClientMessage(playerid,COLOR_RED,"(( Если вы покините игру вы ничего не выйграите ))");
post[playerid] = 2;
OnPlayerUpdateRL(playerid);
}
}
case TOTAL+10:
{
if(response)
{
stav[playerid] = strval(inputtext);
if(PlayerInfo[playerid][pCash] < stav[playerid]) return SendClientMessage(playerid, COLOR_GRAD1, "У вас нет столько денег");
if(stav[playerid] < 1 || stav[playerid] > 10000000) return SendClientMessage(playerid, COLOR_GRAD1, "Нельзя поставить меньше 1 вирта и больше 10000000 вирт.");
format(string,256,"Вы сделали ставку в размере %d. Если вы выйграите вы получите %d",stav[playerid],stav[playerid]*coaf3);
PlayerInfo[playerid][pCash] -= stav[playerid];
SendClientMessage(playerid,COLOR_RED,string);
SendClientMessage(playerid,COLOR_RED,"(( Если вы покините игру вы ничего не выйграите ))");
post[playerid] = 3;
OnPlayerUpdateRL(playerid);
}
}
case TOTAL+11:
{
if(response)
{
switch(listitem)
{
case 0:
{
foreach(new i : Player)
{
if(post[i] == 1)
{
format(string,256,"Поздравляем ваша ставка выйграла. Ваш приз %d",stav[playerid]*coaf1);
SendClientMessage(i,COLOR_RED,string);
PlayerInfo[i][pCash] += stav[playerid]*coaf1;
stav[i] = 0;
post[i] = 0;
}
}
foreach(new i : Player)
{
if(post[i] == 2)
{
SendClientMessage(i,COLOR_RED,"Ваша ставка проиграла.");
stav[i] = 0;
post[i] = 0;
}
}
foreach(new i : Player)
{
if(post[i] == 3)
{
SendClientMessage(i,COLOR_RED,"Ваша ставка проиграла.");
stav[i] = 0;
post[i] = 0;
}
}
coaf1 = 0;
coaf2 = 0;
coaf3 = 0;
stavki = 0;
}
case 1:
{
foreach(new i : Player)
{
if(post[i] == 1)
{
SendClientMessage(i,COLOR_RED,"Ваша ставка проиграла.");
stav[i] = 0;
post[i] = 0;
}
}
foreach(new i : Player)
{
if(post[i] == 2)
{
format(string,256,"Поздравляем ваша ставка выйграла. Ваш приз %d",stav[playerid]*coaf2);
SendClientMessage(i,COLOR_RED,string);
PlayerInfo[i][pCash] += stav[playerid]*coaf2;
stav[i] = 0;
post[i] = 0;
}
}
foreach(new i : Player)
{
if(post[i] == 3)
{
SendClientMessage(i,COLOR_RED,"Ваша ставка проиграла.");
stav[i] = 0;
post[i] = 0;
}
}
coaf1 = 0;
coaf2 = 0;
coaf3 = 0;
stavki = 0;
}
case 2:
{
foreach(new i : Player)
{
if(post[i] == 1)
{
SendClientMessage(i,COLOR_RED,"Ваша ставка проиграла.");
stav[i] = 0;
post[i] = 0;
}
}
foreach(new i : Player)
{
if(post[i] == 2)
{
SendClientMessage(i,COLOR_RED,"Ваша ставка проиграла.");
stav[i] = 0;
post[i] = 0;
}
}
foreach(new i : Player)
{
if(post[i] == 3)
{
format(string,256,"Поздравляем ваша ставка выйграла. Ваш приз %d",stav[playerid]*coaf3);
SendClientMessage(i,COLOR_RED,string);
PlayerInfo[i][pCash] += stav[playerid]*coaf3;
stav[i] = 0;
post[i] = 0;
}
}
coaf1 = 0;
coaf2 = 0;
coaf3 = 0;
stavki = 0;
}
}
OnPlayerUpdateRL(playerid);
}
}У кого YCMD:
Код:
YCMD:atotal(playerid, params[], help)
{
SPD(playerid, TOTAL, DIALOG_STYLE_INPUT, "Вид спорта","Введите название спорта\nПример: 'Футбол'", "Далее", "Отмена");
return true;
}
YCMD:stotal(playerid, params[], help)
{
new konec[256];
format(konec,sizeof(konec),"-%s\n-%s\nНичья",namec1,namec2);
SPD(playerid,TOTAL+11,DIALOG_STYLE_LIST,"Итоги",konec,"Готово","Отмена");
return true;
}У кого не YCMD то в OnPlayerCommandText
Код:
if(strcmp(cmd,"/atotal",true)==0)
{
SPD(playerid, TOTAL, DIALOG_STYLE_INPUT, "Вид спорта","Введите название спорта\nПример: 'Футбол'", "Далее", "Отмена");
return true;
}
if(strcmp(cmd,"/stotal",true)==0)
{
new konec[256];
format(konec,sizeof(konec),"-%s\n-%s\nНичья",namec1,namec2);
SPD(playerid,TOTAL+11,DIALOG_STYLE_LIST,"Итоги",konec,"Готово","Отмена");
return true;
}Теги: Тотализатор[RLS]