Candidatura, trкs funзхes. -
Ley - 27.05.2017
Olб users, estou com uma grande dъvida no quesito de save para fazer uma determinada aзгo a partir de votaзгo.
Irei dar exemplos em tуpicos para tentar ser o mais claro possнvel, peзo a ajuda de vocкs, por favor.
• Objetivo: Estou a tentar fazer um sistema bem bбsico de presidкncia, que contenha as partes bбsicas de uma candidatura, sendo elas: candidatura, votos e eleiзгo.
• Executei um comando onde o usuбrio possa se candidatar, com o arquivo com o nick do player sendo salvo em uma determinada pasta:
PHP код:
CMD:candidatar(playerid) {
new form[50];
format(form, sizeof(form),"/candidatos/%s.ini", nome);
DOF2_CreateFile(form);
DOF2_SaveFile();
}
• Dъvidas: Como posso fazer para, dentro do arquivo de cada jogador que se candidatou, houvesse um parвmetro "votos", na qual, obviamente, seria aumentando conforme um determinado usuбrio vote nele? Nгo tenho ideia de como ficaria a estrutura, mas irei por a que estava tentando fazer:
PHP код:
CMD:votar(playerid) {
format(form, sizeof(form),"/candidatos/%s.ini", nome);
if(sscanf(params, "i", nickplayer)) SendClientMessage(playerid, -1,"Correto :> /votar [nick].");
if(!DOF2_FileExists(form)) {
SendClientMessage(playerid, -1, "Esse usuбrio nгo se candidatou");
return 1;
}
// Somar +1 voto no arquivo do candidato
?
return 1;
}
• Eleger: Verificar na pasta criada o arquivo que possui o maior nъmero de votos, assim setando uma variбvel ao jogador.
Alguйm poderia me ajudar? Os cуdigos acima foi o que consegui fazer, porйm, apуs isso eu nгo sei mais para onde continuar, vi alguns FilterScripts, porйm, todos complexos, Aguardo respostas, obrigado pela paciкncia!
Re: Candidatura, trкs funзхes. -
ViniBorn - 27.05.2017
Й mais prбtico e simples fazer apenas um arquivo, de forma que cada candidato correspondesse a um nъmero, assim vocк poderia usar um loop para verificar a quantidade de votos de cada um. Ex:
PHP код:
//Dentro do arquivo Canditatos.ini
Aux - 4
Cand_1 - Ley
Votos_1 - 11
Cand_2 - ViniBorn
Votos_2 - 3
Cand_3 - Candidato3
Votos_3 - 5
Cand_4 - Candidato4
Votos_4 - 20
Dessa forma, cada candidato teria um ID.
PS: Aux serve para fazer a contagem de quantos canditados jб existem, para que na prуxima candidatura lanзada, o jogador receba o prуximo ID livre, no caso, 5.
Re: Candidatura, trкs funзхes. -
Ley - 27.05.2017
Quote:
Originally Posted by ViniBorn
Й mais prбtico e simples fazer apenas um arquivo, de forma que cada candidato correspondesse a um nъmero, assim vocк poderia usar um loop para verificar a quantidade de votos de cada um. Ex:
PHP код:
//Dentro do arquivo Canditatos.ini
Aux - 4
Cand_1 - Ley
Votos_1 - 11
Cand_2 - ViniBorn
Votos_2 - 3
Cand_3 - Candidato3
Votos_3 - 5
Cand_4 - Candidato4
Votos_4 - 20
Dessa forma, cada candidato teria um ID.
PS: Aux serve para fazer a contagem de quantos canditados jб existem, para que na prуxima candidatura lanзada, o jogador receba o prуximo ID livre, no caso, 5.
|
Irei tentar, pois nгo sei como fica a formataзгo dos textos com a adiзгo das strings, mas irei ver. Obrigado.
Re: Candidatura, trкs funзхes. -
Ley - 27.05.2017
@EDIT
OBS: Para nгo ter de criar outro post, utilizarei o mesmo para nгo poluir a board, espero que nгo esteja infringindo regras locais, talvez, com double post.
//
Users, contйm um loop que verifica os usuбrios que estгo participando ativamente do sistema, e um indicador que lista os usuбrios e seus votos...
PHP код:
for(new c = 1; c < MAX_CANDIDATOS; c++)
{
format(file, sizeof(file),CANDIDATOS_ELEICAO, c);
if(DOF2_FileExists(file) && DOF2_IsSet(file, "Nome") && DOF2_IsSet(file, "Votos"))
{
format(str, sizeof(str), "Candidato %s: \t\t%d votos\n", DOF2_GetString(file, "Nome"), DOF2_GetInt(file, "Votos"));
strcat(string, str);
}
}
O objetivo era enviar uma mensagem com o usuбrio que possui o maior nъmero de votos, e setar uma variбvel а ele, tudo em um comando, junto com o loop acima.
PHP код:
CMD:definir(playerid) {
// Complementares...
for(new c = 1; c < MAX_CANDIDATOS; c++)
{
format(file, sizeof(file),CANDIDATOS_ELEICAO, c);
if(DOF2_FileExists(file) && DOF2_IsSet(file, "Nome") && DOF2_IsSet(file, "Votos"))
{
format(str, sizeof(str), "Candidato %s: \t\t%d votos\n", DOF2_GetString(file, "Nome"), DOF2_GetInt(file, "Votos"));
strcat(string, str);
}
}
SendClientMessageToAll(-1, "O vencedor foi %s com %i votos", nome, votos);
return 1;
}
Porйm, nгo sei como utilizar algo para verificar a maior quantia de voto diante desse loop. Alguйm poderia me dar uma ajuda? Grato desde jб!
* Os cуdigos nгo ficam identados quando ponho aqui, feels