Здравствуйте уважаемы пользователи.
Делать было нечего,и решил написать несложную систему тотализатора.
Видео
Ну а теперь начнём.
Ко всем 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]