FR

[7.6] Sistema De Votação

Por frerety, 09 de mai. de 2006 em Linguagens de Programação

24
5.1k
freretyF
09 de maio de 2006 às 13:27

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!

Editado Dezembro 9 por frerety

colexC
09 de maio de 2006 às 15:27

aeeeee

mt legal esse code

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

 

jahvotou = false;[code]Player.hprocure por
int premiumTicks;
em baixo add
PresleyP
11 de maio de 2006 às 03:11

soh uma coisa, oq eu falo pra fz esse code, tipo eu falo /vote, /votar oq???

freretyF
12 de maio de 2006 às 15:55

@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!

1 mês depois...
PresleyP
12 de junho de 2006 às 21:52
@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

HaryyH
14 de junho de 2006 às 20:37

EITA QUE D+ isse ai eh bom manow vlws

FireSoulF
15 de junho de 2006 às 21:32

cara aonde q ta esse comando ccp????

eu num axei nenhum arquivo aki ccp.

:bye:

freretyF
16 de junho de 2006 às 01:37

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!

2 meses depois...
ZenZ
03 de agosto de 2006 às 15:56

Olá,

Aqui o Comando foi sem Erros!

Thx

Atenciosamente,

Zen

URAMESHIU
03 de agosto de 2006 às 16:57

muito rox!!!gostei!!!esse eu vo usa no meu ot!!!

3 semanas depois...
Holly AngelH
19 de agosto de 2006 às 08:49

Muito manero este code! Legal esse systen de votação, sempre util! Vlws Frerety!

2 meses depois...
detonatoorD
01 de outubro de 2006 às 14:54

procurei int premiumTicks; em player.h e nao axei

Noxidy__N
01 de outubro de 2006 às 16:30

kio massaaa

:)

coloka no meu

pra estreia hoje jah :)

flw

SindiS
03 de outubro de 2006 às 21:47

Aewww Vlw mesmo Muito bom isso meu amigo testo deu certo no meu pc quandu eu abro o serve debuga as acc dos players desaparecem das pasta me ajuda.

afkA
04 de outubro de 2006 às 12:48

Gostei pra caramba

vlw

flwz