[FilterScript] Sistema de Enquete
#1

#@# Sistema de Enquetes #@#

- Comandos do Sistema -
PHP код:
- /Criar_e Cria a Enquete.
- /
Fechar_e Fecha a Enquete.
- /
Sim_e Vota Sim na Enquete.
- /
Nao_e Vota Nгo na Enquete
#@# Creditos #@#
- Dan

#@# Agradecimento #@#
- [FusioN]JoaoPedro_. - Algumas Ajudas.

PHP код:
#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(playeridparams[])
{
    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(playeridNomeEsizeof(NomeE));
        
EnqueteInfo[eCriada] = true;
        
EnqueteInfo[eSim] = 0;
        
EnqueteInfo[eNao] = 0;
        
format(strEsizeof(strE), "O Administrador %s Criou Uma Enquete Perguntando %s"NomeEEnqueteInfo[eTitulo]);
        
SendClientMessageToAll(-1strE);
        
SendClientMessageToAll(-1"Vote: /sim_e ou /nгo_e");
    }
    return 
true;
}
CMD:fechar_e(playeridparams[])
{
    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(playeridNomeEsizeof(NomeE));
        
EnqueteInfo[eCriada] = false;
        
EnqueteInfo[eVotos] = EnqueteInfo[eSim] + EnqueteInfo[eNao];
        
format(strEsizeof(strE), "O Administrador %s, Acaba de Fechar Uma Enquete."NomeE);
        
SendClientMessageToAll(-1strE);
        
format(strNsizeof(strN), "O Titulo da Enquete era: %s"EnqueteInfo[eTitulo]);
        
SendClientMessageToAll(-1strN);
        
format(strQsizeof(strQ), "Votaзгo: Sim [%d], Nгo [%d], Quantidade Total de Votos [%d]"EnqueteInfo[eSim], EnqueteInfo[eNao], EnqueteInfo[eVotos]);
        for(new 
0GetMaxPlayers(); 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;

Reply
#2

pawn Код:
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;
}
fora isso ta bem legal!
Reply
#3

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
pawn Код:
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;
}
fora isso ta bem legal!
Corrigirei. Valeu pela dica.
Reply
#4

Achei simples demais...

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
pawn Код:
public OnPlayerConnect(playerid) { Votou[playerid] = false; return 1; }  //desnecessario variavel booleana ja vem com valor padrгo false :mrgreen:
fora isso ta bem legal!
Vocк й retardado?
Й claro que isso й necessбrio.

O que seria desnecessбrio seria:
pawn Код:
new bool:ceta = false;
Reply
#5

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Achei simples demais...



Vocк й retardado?
Й claro que isso й necessбrio.

O que seria desnecessбrio seria:
pawn Код:
new bool:ceta = false;
Arrumei Novamente Obrigado
Reply
#6

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Achei simples demais...



Vocк й retardado?
Й claro que isso й necessбrio.

O que seria desnecessбrio seria:
pawn Код:
new bool:ceta = false;
escuta aki nгo vou me rebaixar a tanto para lhe ofender mбs mais respeito ai fmz, eu nгo do liberadade pra qualquer um nгo chapa.

eu pensei ter visto a variavel dele definida assim.. mesmo com um erro meu desta forma,
nгo te da direito de falar assim n entгo baixa a bola ai ..
Reply
#7

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Achei simples demais...



Vocк й retardado?
Й claro que isso й necessбrio.

O que seria desnecessбrio seria:
pawn Код:
new bool:ceta = false;
aprendeu que new bool:ceta = false; ja tem o valor definido por false O.o

parabens MESTRE..


@topico bem maneiro cara..
Reply
#8

nossa dahora. vi uns sitemas aki mesmo da board tudo bugado seloko kkk

@tem gente que se acha pa karaio
Reply
#9

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
pawn Код:
public OnPlayerConnect(playerid) { Votou[playerid] = false; return 1; }  //desnecessario variavel booleana ja vem com valor padrгo false :mrgreen:
fora isso ta bem legal!
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. .
Reply
#10

Quote:
Originally Posted by @Riichard
Посмотреть сообщение
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. .
Seria mais ou menos isto:

pawn Код:
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 ];
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)