Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define MAX_FS_PLAYERS 50
- //-- TextDraws
- new Text:TextDrawTodos[5],
- Text:TextDrawPlayer[MAX_FS_PLAYERS][12];
- //-- Sistema
- forward SortearNumero();
- forward EsconderNumero();
- new bool:BingoAberto,
- bool:PartidaIniciada,
- bool:NumeroSorteado[100],
- NumerosSorteados,
- NumeroDeParticipantes,
- TimerSortearNumero,
- DinheiroBingo;
- //-- Jogador
- new bool:Participando[MAX_FS_PLAYERS],
- bool:NumeroMarcadoJogador[MAX_FS_PLAYERS][12],
- NumeroJogador[MAX_FS_PLAYERS][12];
- public OnFilterScriptInit()
- {
- TextDrawTodos[0] = TextDrawCreate(677.000000, -13.000000, "Fundo Preto");
- TextDrawBackgroundColor(TextDrawTodos[0], 255);
- TextDrawFont(TextDrawTodos[0], 1);
- TextDrawLetterSize(TextDrawTodos[0], 1.799999, 27.000000);
- TextDrawColor(TextDrawTodos[0], -1);
- TextDrawSetOutline(TextDrawTodos[0], 0);
- TextDrawSetProportional(TextDrawTodos[0], 1);
- TextDrawSetShadow(TextDrawTodos[0], 1);
- TextDrawUseBox(TextDrawTodos[0], 1);
- TextDrawBoxColor(TextDrawTodos[0], 255);
- TextDrawTextSize(TextDrawTodos[0], -5.000000, 0.000000);
- TextDrawTodos[1] = TextDrawCreate(206.000000, 16.000000, "l l l l");
- TextDrawBackgroundColor(TextDrawTodos[1], 255);
- TextDrawFont(TextDrawTodos[1], 1);
- TextDrawLetterSize(TextDrawTodos[1], 2.499999, 49.000000);
- TextDrawColor(TextDrawTodos[1], -1);
- TextDrawSetOutline(TextDrawTodos[1], 0);
- TextDrawSetProportional(TextDrawTodos[1], 1);
- TextDrawSetShadow(TextDrawTodos[1], 1);
- TextDrawTodos[2] = TextDrawCreate(177.000000, 84.000000, "-~n~-~n~-~n~-~n~-");
- TextDrawBackgroundColor(TextDrawTodos[2], 0);
- TextDrawFont(TextDrawTodos[2], 0);
- TextDrawLetterSize(TextDrawTodos[2], 21.490049, 7.400000);
- TextDrawColor(TextDrawTodos[2], -1);
- TextDrawSetOutline(TextDrawTodos[2], 0);
- TextDrawSetProportional(TextDrawTodos[2], 1);
- TextDrawSetShadow(TextDrawTodos[2], 1);
- TextDrawTodos[3] = TextDrawCreate(339.000000, 58.000000, "[ ]");
- TextDrawBackgroundColor(TextDrawTodos[3], 255);
- TextDrawFont(TextDrawTodos[3], 1);
- TextDrawLetterSize(TextDrawTodos[3], 0.600000, 6.000000);
- TextDrawColor(TextDrawTodos[3], -1);
- TextDrawSetOutline(TextDrawTodos[3], 0);
- TextDrawSetProportional(TextDrawTodos[3], 1);
- TextDrawSetShadow(TextDrawTodos[3], 1);
- TextDrawTodos[4] = TextDrawCreate(354.000000, 77.000000, "~y~??");
- TextDrawBackgroundColor(TextDrawTodos[4], 255);
- TextDrawFont(TextDrawTodos[4], 3);
- TextDrawLetterSize(TextDrawTodos[4], 0.699999, 3.000000);
- TextDrawColor(TextDrawTodos[4], -1);
- TextDrawSetOutline(TextDrawTodos[4], 0);
- TextDrawSetProportional(TextDrawTodos[4], 1);
- TextDrawSetShadow(TextDrawTodos[4], 1);
- return 1;
- }
- stock IniciarBingo(playerid)
- {
- TextDrawPlayer[playerid][0] = TextDrawCreate(233.000000, 140.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][0], 255);
- TextDrawFont(TextDrawPlayer[playerid][0], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][0], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][0], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][0], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][0], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][0], 1);
- TextDrawPlayer[playerid][1] = TextDrawCreate(293.000000, 140.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][1], 255);
- TextDrawFont(TextDrawPlayer[playerid][1], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][1], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][1], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][1], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][1], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][1], 1);
- TextDrawPlayer[playerid][2] = TextDrawCreate(354.000000, 140.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][2], 255);
- TextDrawFont(TextDrawPlayer[playerid][2], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][2], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][2], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][2], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][2], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][2], 1);
- TextDrawPlayer[playerid][3] = TextDrawCreate(233.000000, 207.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][3], 255);
- TextDrawFont(TextDrawPlayer[playerid][3], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][3], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][3], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][3], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][3], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][3], 1);
- TextDrawPlayer[playerid][4] = TextDrawCreate(293.000000, 207.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][4], 255);
- TextDrawFont(TextDrawPlayer[playerid][4], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][4], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][4], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][4], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][4], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][4], 1);
- TextDrawPlayer[playerid][5] = TextDrawCreate(354.000000, 207.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][5], 255);
- TextDrawFont(TextDrawPlayer[playerid][5], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][5], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][5], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][5], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][5], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][5], 1);
- TextDrawPlayer[playerid][6] = TextDrawCreate(233.000000, 272.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][6], 255);
- TextDrawFont(TextDrawPlayer[playerid][6], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][6], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][6], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][6], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][6], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][6], 1);
- TextDrawPlayer[playerid][7] = TextDrawCreate(293.000000, 272.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][7], 255);
- TextDrawFont(TextDrawPlayer[playerid][7], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][7], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][7], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][7], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][7], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][7], 1);
- TextDrawPlayer[playerid][8] = TextDrawCreate(354.000000, 272.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][8], 255);
- TextDrawFont(TextDrawPlayer[playerid][8], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][8], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][8], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][8], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][8], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][8], 1);
- TextDrawPlayer[playerid][9] = TextDrawCreate(233.000000, 340.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][9], 255);
- TextDrawFont(TextDrawPlayer[playerid][9], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][9], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][9], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][9], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][9], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][9], 1);
- TextDrawPlayer[playerid][10] = TextDrawCreate(293.000000, 340.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][10], 255);
- TextDrawFont(TextDrawPlayer[playerid][10], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][10], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][10], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][10], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][10], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][10], 1);
- TextDrawPlayer[playerid][11] = TextDrawCreate(354.000000, 340.000000, "~g~??");
- TextDrawBackgroundColor(TextDrawPlayer[playerid][11], 255);
- TextDrawFont(TextDrawPlayer[playerid][11], 3);
- TextDrawLetterSize(TextDrawPlayer[playerid][11], 0.699999, 3.000000);
- TextDrawColor(TextDrawPlayer[playerid][11], -1);
- TextDrawSetOutline(TextDrawPlayer[playerid][11], 0);
- TextDrawSetProportional(TextDrawPlayer[playerid][11], 1);
- TextDrawSetShadow(TextDrawPlayer[playerid][11], 1);
- for(new i = 0; i < 12; i++)
- {
- if(i < 5) TextDrawShowForPlayer(playerid, TextDrawTodos[i]);
- TextDrawShowForPlayer(playerid, TextDrawPlayer[playerid][i]);
- }
- Participando[playerid] = true;
- for(new Numero = 0; Numero < 12; Numero++) NumeroJogador[playerid][Numero] = random(99) + 1;
- for(new Check = 0, Numero = 0; Numero != 12; Check++)
- {
- //printf("DEBUG: Check = %d Numero = %d", Check, Numero);
- ChecarNovamente:
- if(Check != Numero)
- {
- if(NumeroJogador[playerid][Check] == NumeroJogador[playerid][Numero])
- {
- NumeroJogador[playerid][Check] = random(99) + 1;
- Check = 0;
- Numero = 0;
- goto ChecarNovamente;
- }
- }
- if(Check == 11)
- {
- Check = -1;
- Numero ++;
- }
- }
- new string[32];
- for(new TextDraw = 0; TextDraw < 12; TextDraw++)
- {
- format(string, sizeof(string), "~g~%02d", NumeroJogador[playerid][TextDraw]);
- TextDrawSetString(TextDrawPlayer[playerid][TextDraw], string);
- }
- SendClientMessage(playerid, 0xFFFF00AA, "---------------------------------------------------------------------------------------------------------------");
- SendClientMessage(playerid, 0x009900AA, "[Bingo] {FF0000}Aparecerá{FFFFFF} Um Número a Cada {FFFF00}8{FFFFFF} Segundos e {FF0000}Sumirá{FFFFFF} Apos {FFFF00}3{FFFFFF} Segundos.");
- SendClientMessage(playerid, 0x009900AA, "[Bingo]{FFFFFF} Este Número é o Sorteado. Você deve usar o Comando {FF0000}/Marcar{FFFFFF} para Marcar em sua Tabela.");
- SendClientMessage(playerid, 0x009900AA, "[Bingo]{FFFFFF} Se Você completar a Tabela, Fale {FF0000}EXATAMENTE{FFFFFF} {0066FF}''Bingo''{FFFFFF}. Caso Contrario, não será registrado.");
- SendClientMessage(playerid, 0x009900AA, "[Bingo]{FFFFFF} A Partida comecará em {FF0000}Poucos{FFFFFF} Segundos.");
- return 1;
- }
- stock FinalizarBingo(playerid)
- {
- for(new i = 0; i < 12; i++)
- {
- if(i < 5) TextDrawHideForPlayer(playerid, TextDrawTodos[i]);
- TextDrawShowForPlayer(playerid, TextDrawPlayer[playerid][i]);
- TextDrawDestroy(TextDrawPlayer[playerid][i]);
- }
- Participando[playerid] = false;
- return 1;
- }
- stock SendBingoMessage(color, const message[])
- {
- for(new playerid = 0; playerid < MAX_FS_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && Participando[playerid])
- {
- SendClientMessage(playerid, color, message);
- }
- }
- return;
- }
- //------------------------------------------------------------------------------
- public SortearNumero()
- {
- if(!PartidaIniciada)
- {
- if(NumeroDeParticipantes == 0)
- {
- BingoAberto = false;
- SendClientMessageToAll(0x009900AA, "[Bingo]{FFFFFF} O Bingo {FF0000}Foi Cancelado{FFFFFF}. {0066FF}Motivo: Não Há Jogadores.");
- return 1;
- }
- else if(NumeroDeParticipantes == 1)
- {
- BingoAberto = false;
- SendClientMessageToAll(0x009900AA, "[Bingo]{FFFFFF} O Bingo {FF0000}Foi Cancelado{FFFFFF}. {0066FF}Motivo: Não Há Jogadores Suficientes.");
- for(new playerid = 0; playerid < MAX_FS_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && Participando[playerid])
- {
- FinalizarBingo(playerid);
- }
- }
- return 1;
- }
- PartidaIniciada = true;
- SendClientMessageToAll(0x009900AA, "[Bingo]{FFFFFF} O Bingo {FFFF00}Começou{FFFFFF}.");
- TimerSortearNumero = SetTimer("SortearNumero", (8*1000), true);
- }
- else if(NumerosSorteados == 100)
- {
- BingoAberto = false;
- PartidaIniciada = false;
- SendClientMessageToAll(0x009900AA, "[Bingo]{FFFFFF} O Bingo {FFFF00}Terminou{FFFFFF}. {FF0000}Não houve Ganhadores{FFFFFF}.");
- KillTimer(TimerSortearNumero);
- for(new playerid = 0; playerid < MAX_FS_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && Participando[playerid])
- {
- FinalizarBingo(playerid);
- }
- }
- return 1;
- }
- new Numero;
- SortearNovamente:
- Numero = random(99) + 1;
- if(NumeroSorteado[Numero]) goto SortearNovamente;
- NumeroSorteado[Numero] = true;
- NumerosSorteados ++;
- new string[32];
- format(string, sizeof(string), "~y~%02d", Numero);
- TextDrawSetString(TextDrawTodos[4], string);
- SetTimer("EsconderNumero", (3*1000), false);
- return 1;
- }
- public EsconderNumero()
- {
- TextDrawSetString(TextDrawTodos[4], "~y~??");
- return 1;
- }
- //------------------------------------------------------------------------------
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[128], idx;
- cmd = strtok(cmdtext, idx);
- if(!strcmp("/abrirbingo", cmd, true))
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x999999AA, "ERRO: Somente um Admin pode abrir o Bingo.");
- if(BingoAberto) return SendClientMessage(playerid, 0x999999AA, "ERRO: O Bingo já esta Aberto / Já foi Iniciado.");
- new tmp[128];
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, 0x999999AA, "Use: /AbrirBingo [DinheiroAGanhar]");
- DinheiroBingo = strval(tmp);
- BingoAberto = true;
- PartidaIniciada = false;
- SendClientMessageToAll(0x009900AA, "[Bingo]{FFFFFF} Bingo {FFFF00}Aberto{FFFFFF}! Use {FF0000}/EntrarBingo{FFFFFF}. Seja Rápido, ele Fechara em 30 Segundos!");
- for(new i = 0; i < 100; i++) NumeroSorteado[i] = false;
- NumerosSorteados = 0;
- NumeroDeParticipantes = 1;
- TimerSortearNumero = SetTimer("SortearNumero", (30*1000), false);
- IniciarBingo(playerid);
- return 1;
- }
- if(!strcmp("/entrarbingo", cmdtext, true))
- {
- if(!BingoAberto) return SendClientMessage(playerid, 0x999999AA, "ERRO: O Bingo não esta Aberto.");
- if(PartidaIniciada) return SendClientMessage(playerid, 0x999999AA, "ERRO: A Partida já Começou.");
- if(Participando[playerid]) return SendClientMessage(playerid, 0x999999AA, "ERRO: Você já esta Participando do Bingo.");
- new pName[MAX_PLAYER_NAME],
- string[128];
- GetPlayerName(playerid, pName, sizeof(pName));
- format(string, sizeof(string), "[Bingo]{FFFFFF} %s {FFFF00}Entrou{FFFFFF} no Jogo.", pName);
- SendBingoMessage(0x009900AA, string);
- IniciarBingo(playerid);
- NumeroDeParticipantes ++;
- return 1;
- }
- else if(!strcmp("/desistir", cmdtext, true))
- {
- if(!Participando[playerid]) return SendClientMessage(playerid, 0x999999AA, "ERRO: Você não esta Participando do Bingo.");
- FinalizarBingo(playerid);
- new pName[MAX_PLAYER_NAME],
- string[128];
- GetPlayerName(playerid, pName, sizeof(pName));
- format(string, sizeof(string), "[Bingo]{FFFFFF} %s {FF0000}Desistiu{FFFFFF} do Jogo.", pName);
- SendBingoMessage(0x009900AA, string);
- NumeroDeParticipantes --;
- return 1;
- }
- else if(!strcmp("/marcar", cmd, true))
- {
- if(!Participando[playerid]) return SendClientMessage(playerid, 0x999999AA, "ERRO: Você não esta Participando do Bingo.");
- if(!PartidaIniciada) return SendClientMessage(playerid, 0x999999AA, "ERRO: A Partida ainda Não Começou.");
- new tmp[128];
- tmp = strtok(cmdtext, idx);
- if(!strval(tmp) || strval(tmp) < 1 || strval(tmp) > 100) return SendClientMessage(playerid, 0x999999AA, "Use: /Marcar [Número]");
- new Numero = strval(tmp);
- for(new Checar = 0; Checar < 12; Checar++)
- {
- if(NumeroJogador[playerid][Checar] == Numero)
- {
- new string[32];
- if(!NumeroMarcadoJogador[playerid][Checar])
- {
- format(string, sizeof(string), "~r~%02d", NumeroJogador[playerid][Checar]);
- NumeroMarcadoJogador[playerid][Checar] = true;
- }
- else
- {
- format(string, sizeof(string), "~g~%02d", NumeroJogador[playerid][Checar]);
- NumeroMarcadoJogador[playerid][Checar] = false;
- }
- TextDrawSetString(TextDrawPlayer[playerid][Checar], string);
- return 1;
- }
- }
- SendClientMessage(playerid, 0x999999AA, "ERRO: Você não tem este Numero.");
- return 1;
- }
- /* else if(!strcmp("/TesteBingo", cmdtext, true)) //Teste de Bingar
- {
- for(new i = 0; i < 12; i++)
- {
- if(!NumeroSorteado[NumeroJogador[playerid][i]])
- {
- NumeroSorteado[NumeroJogador[playerid][i]] = true;
- NumerosSorteados ++;
- }
- }
- SendClientMessage(playerid, 0xFFFF00AA, "Você já pode Bingar.");
- return 1;
- }*/
- return 0;
- }
- public OnPlayerText(playerid, text[])
- {
- if(!strcmp("Bingo", text, true) && Participando[playerid])
- {
- for(new i = 0; i < 12; i++)
- {
- if(!NumeroSorteado[NumeroJogador[playerid][i]])
- {
- SendClientMessage(playerid, 0x009900AA, "[Bingo]{FFFFFF} Você {FF0000}não{FFFFFF} Bingou!");
- return 0;
- }
- }
- new string[128],
- pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, sizeof(pName));
- GivePlayerMoney(playerid, DinheiroBingo);
- format(string, sizeof(string), "[Bingo]{FFFFFF} %s {FFFF00}Bingou{FFFFFF} e Ganhou {009900}R$%d,00{FFFFFF}!", pName, DinheiroBingo);
- SendClientMessageToAll(0x009900AA, string);
- for(new i = 0; i < MAX_FS_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && Participando[i])
- {
- FinalizarBingo(i);
- }
- }
- BingoAberto = false;
- PartidaIniciada = false;
- KillTimer(TimerSortearNumero);
- return 0;
- }
- if(Participando[playerid])
- {
- SendClientMessage(playerid, 0x009900AA, "[Bingo]{FFFFFF} Durante o Bingo, o {FFFF00}Chat{FFFFFF} é {FF0000}Desativado{FFFFFF}.");
- return 0;
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- stock strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement