[GUIDA]Vincitore match Free-For-All

« Older   Newer »
 
  Share  
.
  1. xGameITA
     
    .

    User deleted


    Ciao a tutti, questa è la mia prima guida, spero di essere il più preciso possibile.

    Questa guida serve per coloro che vogliono creare un server DM e che vogliono fare la modalità Tutti contro tutti.

    Premetto che spiegherò riga per riga (tranne le parentesi graffe :trollface: ) e che almeno abbiate un minimo di conoscenza di pawno.

    Prima di tutto creiamo un enum

    CODICE
    enum a{
              KIll,
    }

    new Info[MAX_PLAYERS][a];// crea la variabile che controlla le kill


    Successivamente andiamo nell'OnPlayerConnect e resettiamo i valori

    CODICE
    vin[playerid] = 0;
    Info[playerid][Kill] = 0;


    Ok, ora dobbiamo far contare al nostro server quante kill ha fatto l'utente quindi andiamo nell'OnPlayerDeath e inseriamo

    CODICE
    Info[killerid][Kill]++;//Facendo così somma il valore precedente e lo somma a uno


    ORA, dobbiamo far fare al server un paio di cicli per controllare le persone connesse,e successivamente il vincitore(Tutto ciò deve essere messo alla fine del round)

    CODICE
    new pconnesse;//variabile persone connesse
               for(new i; i < MAX_PLAYERS; i++)//ciclo per le persone connesse
               {
                   if(IsPlayerConnected(i))//controllo se il player è connesso
                   {
                       pconnesse++;//aggiunge al valore della variabile uno
                   }
               }
               
               new vin[MAX_PLAYERS];//creiamo una variabile che ci serve a capire se un utente ha fatto più kill di un altro utente
               
               for(new i; i < pconnesse;i++)//creiamo un'altro ciclo che controlla un utente
               {
                           for(new k; k < pconnesse;k++)//ciclo un ciclo che controlla un altro utente
                           {
                               if(Info[k][Kill] < Info[i][Kill] && k != i)//controlla se utente k ha fatto più kill di utente i e che i non è uguale a k
                                   {
                                       vin[i]++;//se nel caso è maggiore,aggiunge al valore della variabile vin[i] uno
                                   }
                           }
                   }
                   
                   for(new i; i < pconnesse; i++)//ciclo finale
                   {
                           if(vin[i] == pconnesse-1)//controlla all'utente i se lui ha fatto più kill di tutte le persone connesse -1(-1 perchè lui non si conta)
                           {
                               vincitore = i;//se è così lui p il vincitore
                           }
                   }


    Spero di esservi stato utile alla prossima :)
     
    .
0 replies since 10/8/2013, 09:18   379 views
  Share  
.