Здравствуйте уважаемы пользователи.
Делать было нечего,и решил написать несложную систему тотализатора.
Видео

Ну а теперь начнём.
Ко всем 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]