- /Criar_e - Cria a Enquete.
- /Fechar_e - Fecha a Enquete.
- /Sim_e - Vota Sim na Enquete.
- /Nao_e - Vota Nгo na Enquete.
#include <a_samp>
#include <zcmd>
#include <sscanf>
enum E_Info
{
bool:eCriada,
eTitulo,
eSim,
eNao,
eVotos
};
new EnqueteInfo[E_Info];
new bool:Votou[MAX_PLAYERS];
public OnFilterScriptInit() return 1;
public OnFilterScriptExit() return 1;
public OnPlayerConnect(playerid) { Votou[playerid] = false; return 1; }
CMD:criar_e(playerid, params[])
{
if(EnqueteInfo[eCriada] == true) return SendClientMessage(playerid, -1, "ERRO: Jб Existe Uma Enquete Aberta no Momento!");
if(sscanf(params, "s[60]", EnqueteInfo[eTitulo])) return SendClientMessage(playerid, -1, "Uso: /criar_e [Pergunta]");
{
new strE[118], NomeE[MAX_PLAYER_NAME];
GetPlayerName(playerid, NomeE, sizeof(NomeE));
EnqueteInfo[eCriada] = true;
EnqueteInfo[eSim] = 0;
EnqueteInfo[eNao] = 0;
format(strE, sizeof(strE), "O Administrador %s Criou Uma Enquete Perguntando %s", NomeE, EnqueteInfo[eTitulo]);
SendClientMessageToAll(-1, strE);
SendClientMessageToAll(-1, "Vote: /sim_e ou /nгo_e");
}
return true;
}
CMD:fechar_e(playerid, params[])
{
if(EnqueteInfo[eCriada] == false) return SendClientMessage(playerid, -1, "ERRO: Nгo Existe Uma Enquete Aberta no Momento!");
{
new strE[70], strN[80], strQ[65], NomeE[MAX_PLAYER_NAME];
GetPlayerName(playerid, NomeE, sizeof(NomeE));
EnqueteInfo[eCriada] = false;
EnqueteInfo[eVotos] = EnqueteInfo[eSim] + EnqueteInfo[eNao];
format(strE, sizeof(strE), "O Administrador %s, Acaba de Fechar Uma Enquete.", NomeE);
SendClientMessageToAll(-1, strE);
format(strN, sizeof(strN), "O Titulo da Enquete era: %s", EnqueteInfo[eTitulo]);
SendClientMessageToAll(-1, strN);
format(strQ, sizeof(strQ), "Votaзгo: Sim [%d], Nгo [%d], Quantidade Total de Votos [%d]", EnqueteInfo[eSim], EnqueteInfo[eNao], EnqueteInfo[eVotos]);
for(new E = 0; E < GetMaxPlayers(); E++)
{
Votou[E] = false;
break;
}
}
return true;
}
CMD:sim_e(playerid)
{
if(Votou[playerid] == true) return SendClientMessage(playerid, -1, "ERRO: Vocк ja votou!");
if(EnqueteInfo[eCriada] == false) return SendClientMessage(playerid, -1, "ERRO: Nгo Existe Nenhuma Enquete Aberta no Momento!");
{
EnqueteInfo[eSim] += 1;
Votou[playerid] = true;
SendClientMessage(playerid, -1, "Voto Computado Com Sucesso");
}
return true;
}
CMD:nao_e(playerid)
{
if(Votou[playerid] == true) return SendClientMessage(playerid, -1, "ERRO: Vocк ja votou!");
if(EnqueteInfo[eCriada] == false) return SendClientMessage(playerid, -1, "ERRO: Nгo Existe Nenhuma Enquete Aberta no Momento!");
{
EnqueteInfo[eNao] += 1;
Votou[playerid] = true;
SendClientMessage(playerid, -1, "Voto Computado Com Sucesso");
}
return true;
}
public OnPlayerConnect(playerid) { Votou[playerid] = false; return 1; } //desnecessario variavel booleana ja vem com valor padrгo false :mrgreen:
CMD:criar_e(playerid, params[])
{
if(EnqueteInfo[eCriada] == true) return SendClientMessage(playerid, -1, "ERRO: Jб Existe Uma Enquete Aberta no Momento!");
if(sscanf(params, "s", EnqueteInfo[eTitulo])) return SendClientMessage(playerid, -1, "Uso: /criar_e [Pergunta]"); //o parametro s ali? tem que ter um valor s[128]
{
new strE[118], NomeE[MAX_PLAYER_NAME];
GetPlayerName(playerid, NomeE, sizeof(NomeE));
EnqueteInfo[eCriada] = true;
EnqueteInfo[eSim] = 0;
EnqueteInfo[eNao] = 0;
format(strE, sizeof(strE), "O Administrador %s Criou Uma Enquete Perguntando %s", NomeE, EnqueteInfo[eTitulo]);
SendClientMessageToAll(-1, strE);
SendClientMessageToAll(-1, "Vote: /sim_e ou /nгo_e");
}
return true;
}
CMD:fechar_e(playerid, params[])
{
if(EnqueteInfo[eCriada] == false) return SendClientMessage(playerid, -1, "ERRO: Nгo Existe Uma Enquete Aberta no Momento!");
{
new strE[70], strN[80], strQ[65], NomeE[MAX_PLAYER_NAME];
GetPlayerName(playerid, NomeE, sizeof(NomeE));
EnqueteInfo[eCriada] = false;
EnqueteInfo[eVotos] = EnqueteInfo[eSim] + EnqueteInfo[eNao];
format(strE, sizeof(strE), "O Administrador %s, Acaba de Fechar Uma Enquete.", NomeE);
SendClientMessageToAll(-1, strE);
format(strN, sizeof(strN), "O Titulo da Enquete era: %s", EnqueteInfo[eTitulo]);
SendClientMessageToAll(-1, strN);
format(strQ, sizeof(strQ), "Votaзгo: Sim [%d], Nгo [%d], Quantidade Total de Votos [%d]", EnqueteInfo[eSim], EnqueteInfo[eNao], EnqueteInfo[eVotos]);
for(new E = 0; E < GetMaxPlayers(); E++) //getMaxplayers melhor :)
{
Votou[E] = false;
break;
}
}
return true;
}
pawn Код:
|
pawn Код:
|
new bool:ceta = false;
Achei simples demais...
Vocк й retardado? Й claro que isso й necessбrio. O que seria desnecessбrio seria: pawn Код:
|
Achei simples demais...
Vocк й retardado? Й claro que isso й necessбrio. O que seria desnecessбrio seria: pawn Код:
|
Achei simples demais...
Vocк й retardado? Й claro que isso й necessбrio. O que seria desnecessбrio seria: pawn Код:
|
pawn Код:
|
Vocк errou.
Toda variavel jб e criada ou quando se inicia o script com o valor FALSE/0, ao menos que, sejб setada/salvada em alguma parte do script com valor diferente. Em alguns casos, se a variavel foi setada em alguma parte do script, deve-se reseta-la novamente quando o playerid se desconectar-se, para nгo contйr bugs ao prуximo playerid. @Topic Estб um pouco simples, mas mesmo assim, parabйns. ![]() |
new bool: Testing [ MAX_PLAYERS ] = !1;
public
OnPlayerConnect( playerid ) {
if(playerid != 0){
printf("%d", Testing [ playerid ] );
}
Testing [ playerid ] = !true;
return !Testing [ playerid ];
}
public
OnPlayerCommandText ( playerid, cmdtext[] ) {
Testing [ playerid ] = true;
return !Testing [ playerid ];
}