Ir para conteúdo

[7.6] Sistema De Votação


Posts Recomendados

HiHo!

Esse code eh um sistema d votação que qndo o GM fla "/voto [msg]", aparece uma mensagem para os players dizendo o tópico e tbm dizendo como votar ("/votar yes" ou "/votar no".). Quando o GM digita "/voto" novamente, aparece uma msg para os players dizendo que a votação foi encerrada, qntos players votaram e qntos foram os votos contra e a favor.

Vamos começar:

Commands.cpp

abaixo de

{"/kick",&Commands::kickPlayer},

add

 

	{"/votar",&Commands::msgvote},	{"/voto",&Commands::votegm},

 

no fim de Commands.cpp

 

bool Commands::msgvote(Creature* c, const std::string &cmd, const std::string &param){     Player* player = dynamic_cast<Player*>©;if(player){if(game->votacao == true){if(player->jahvotou == false)     {                 if(param == "yes")     {          player->jahvotou = true;          game->votosyes++;          std::ostringstream info;          info << "Você votou 'sim'.";    player->sendTextMessage(MSG_BLUE_TEXT, info.str().c_str());     }     else if(param == "no")     {          player->jahvotou = true;          game->votosno++;          std::ostringstream info;          info << "Você votou 'não'.";    player->sendTextMessage(MSG_BLUE_TEXT, info.str().c_str());     }     else     {          std::ostringstream info;          info << "Digite '/votar yes' para votar sim e '/votar no' para votar não.";    player->sendTextMessage(MSG_BLUE_TEXT, info.str().c_str());     }}else {          std::ostringstream info;          info << "Você já votou.";    player->sendTextMessage(MSG_BLUE_TEXT, info.str().c_str());}}else {          std::ostringstream info;          info << "Não há votação ocorrendo no momento.";    player->sendTextMessage(MSG_BLUE_TEXT, info.str().c_str());}}}bool Commands::votegm(Creature *c, const std::string &cmd, const std::string &param){    std::ostringstream msg;     if(game->votacao == false)     {     //inicia a votacao     msg << "Votaçao iniciada. Tópico: " << param << ". Para votar digite /votar yes ou /votar no.";     game->votacao = true;     for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it)	{  (*it).second->sendTextMessage(MSG_EVENT, msg.str().c_str());	}     }     else     {     //encerra a votacao     int number = game->votosyes + game->votosno;     int votyes = game->votosyes;     int votno = game->votosno;     msg << "Votação encerrada. " << number << " votaram. Destes, " << votyes << " votaram sim e " << votno << " votaram não.";     game->votacao = false;     game->votosyes = 0;     game->votosno = 0;     for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it)	{  (*it).second->sendTextMessage(MSG_EVENT, msg.str().c_str());        (*it).second->jahvotou = false;	}     }}

 

Commands.h

em baixo de

bool kickPlayer(Creature* c, const std::string &cmd, const std::string &param);

add

 

    bool msgvote(Creature* c, const std::string &cmd, const std::string &param);    bool votegm(Creature *c, const std::string &cmd, const std::string &param);

 

Game.cpp

acima de

void Game::addCommandTag(std::string tag){

add

 

int votosyes = 0;int votosno = 0;bool votacao = false;

 

Game.h

acima de

void addCommandTag(std::string tag);

add

 

	int votosyes;	int votosno;	bool votacao;

 

Player.cpp

procure por

maglevel   = 20;

em baixo add

 

    jahvotou = false;

 

Player.h

procure por

int premiumTicks;

em baixo add

 

    bool jahvotou;

 

Não se esqueca de compilar e adicionar em commands.xml o access para os comandos: "/voto" (access de GM) e "/votar" (access de Player)

FlW

CyA!

----- edited -----

ty colex... neim tinha visto que tinha skecido de fechar o [ code]... uaHuAHuAHuA... ¬¬

FlW

CyA!

Link para o comentário
Compartilhar em outros sites

aeeeee

mt legal esse code

axu ke vc erro aki: (misturou tudo =P)

 

jahvotou = false;[code]Player.hprocure por
int premiumTicks;
em baixo add
Link para o comentário
Compartilhar em outros sites

@Presley

O GM terá que abrir a seção de votação digitando "/voto [ASSUNTO]". Os players irão receber em sua tela uma mensagem dizendo que podem votar (digitando "/votar [yes ou no]"). Para encerrar a votação basta o GM digitar "/voto" denovo.

FlW

CyA!

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
@Presley

O GM terá que abrir a seção de votação digitando "/voto [ASSUNTO]". Os players irão receber em sua tela uma mensagem dizendo que podem votar (digitando "/votar [yes ou no]"). Para encerrar a votação basta o GM digitar "/voto" denovo.

FlW

CyA!

 

 

 

blz vlw aew kra

Link para o comentário
Compartilhar em outros sites

HiHo!

@FireSoul

O "Commands.cpp" é um dos arquivos (sources) que compilados criam um executável. Como já dito acima, você precisará das sources e também saber compilar otservers. Para aprender, vá na seção tutoriais e olhe um de como compilar...

FlW

CyA!

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 3 weeks later...
  • 1 month later...
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...