[Ajuda] Candidatura, trкs funзхes.
#1

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(formsizeof(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(formsizeof(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!
Reply
#2

Й 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.
Reply
#3

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.
Reply
#4

@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 1MAX_CANDIDATOSc++)
{
        
format(filesizeof(file),CANDIDATOS_ELEICAOc);
        if(
DOF2_FileExists(file) && DOF2_IsSet(file"Nome") && DOF2_IsSet(file"Votos"))
        {
            
format(strsizeof(str), "Candidato %s: \t\t%d votos\n"DOF2_GetString(file"Nome"), DOF2_GetInt(file"Votos"));
            
strcat(stringstr);
    }

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 1MAX_CANDIDATOSc++)
   {
        
format(filesizeof(file),CANDIDATOS_ELEICAOc);
        if(
DOF2_FileExists(file) && DOF2_IsSet(file"Nome") && DOF2_IsSet(file"Votos"))
        {
            
format(strsizeof(str), "Candidato %s: \t\t%d votos\n"DOF2_GetString(file"Nome"), DOF2_GetInt(file"Votos"));
            
strcat(stringstr);
    }
    }
    
SendClientMessageToAll(-1"O vencedor foi %s com %i votos"nomevotos);
    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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)