[Include] a_listas.inc > crea rankings rapidamente u ordena resultados!
#1

a_listas
v0.1 - 14/08/2013
Descripciуn

  • con este include podrбs crear rankings u ordenar listas numйricas tan solo en un par de segundos.
Funcionamiento

  • busca los resultados mayores o menores cualquiera sea el caso y lo almacena en una variable, luego al obtener todos los registros los envia a una variable contenedora final.
  • Vйase [servidor\DesingMyCry\tests\a_listas.pwn]
Utilizaciуn

pawn Код:
include>a_listas;
  • Quedando finalmente.
pawn Код:
#include <a_inc>
include>a_listas;
//include>a; //Incluir toda la librerнa
#include <a_inc2>
Definiciones

  • LISTA_MAYOR
    • organizar una lista de mayor a menor
  • LISTA_MENOR
    • organizar una lista de menor a mayor
Funciones

  • a_ListasOrdenar;
    • ordenar numericamente los resultados de una variable
    • parбmetros
      • contenedora
      • guardar
      • modo
    • pawn Код:
      new cont[10];
          for(new i = 0; i < sizeof(cont); i++) cont[i] = random(sizeof(cont));
          new cont2[10];

          a_ListasOrdenar(cont, cont2, LISTA_MENOR);

          for(new i = 0; i < sizeof(cont); i++) printf("cont2[%d] = %d", i, cont2[i]);
    • Quote:

      cont2[0] = 0
      cont2[1] = 2
      cont2[2] = 3
      cont2[3] = 3
      cont2[4] = 4
      cont2[5] = 5
      cont2[6] = 5
      cont2[7] = 7
      cont2[8] = 7
      cont2[9] = 8

  • a_ListasOrdenarLlamar;
    • ordenar numericamente las celdas de una variable y enviar los resultados a una callback
    • parбmetros
      • contenedora
      • callback
      • modo
    • pawn Код:
      CMD:prueba(playerid)
      {
          new ordenar[10] = {7,3,1,5,6,9,8,3,2,6};
          a_ListasOrdenarLlamar(ordenar, "ListaTestCallback", LISTA_MAYOR);
          return 1;
      }

      LISTA:ListaTestCallback > llamada()
      {
          for(new i = 0; i < 10; i++)
          {
              printf("orden: %d", llamada[i]);
          }
          return 1;
      }
    • Quote:

      orden: 9
      orden: 8
      orden: 7
      orden: 6
      orden: 6
      orden: 5
      orden: 3
      orden: 3
      orden: 2
      orden: 1

  • a_ListasOrdenarLlamarEx;
    • ordenar numericamente las celdas de una variable y enviar los resultados a una callback con parбmetros
    • parбmetros
      • contenedora
      • modo
      • callback
      • parбmetros
      • variables
    • pawn Код:
      public OnGameModeInit()
      {
          a_ListasOrdenarLlamarEx(orden, LISTA_MENOR, "ListaTestCallback", "i", 5);

          return 1;
      }

      LISTAex:ListaTestCallback > llamada(playerid)
      {
          printf("playerid: %d", playerid);
          for(new i = 0; i < 190; i++)
          {
              printf("resultado: %d", llamada[i]);
          }
          return 1;
      }
    • Quote:

      playerid: 5
      resultado: 0
      resultado: 0
      resultado: 1
      resultado: 4
      resultado: 5
      resultado: 7
      resultado: 10
      resultado: 11
      resultado: 11
      resultado: 12
      resultado: 13
      resultado: 13
      resultado: 13
      resultado: 14
      resultado: 15
      resultado: 15
      resultado: 15
      resultado: 16
      resultado: 17
      resultado: 17
      resultado: 18
      resultado: 20
      resultado: 21
      resultado: 23
      resultado: 26
      resultado: 32
      resultado: 34
      resultado: 34
      resultado: 34
      resultado: 36
      resultado: 37
      resultado: 37
      resultado: 38
      resultado: 39
      resultado: 41
      resultado: 43
      resultado: 43
      resultado: 44
      resultado: 44
      resultado: 45
      resultado: 46
      resultado: 48
      resultado: 48
      resultado: 48
      resultado: 48
      resultado: 49
      resultado: 49
      resultado: 49
      resultado: 50
      resultado: 50
      resultado: 51
      resultado: 52
      resultado: 56
      resultado: 56
      resultado: 58
      resultado: 59
      resultado: 61
      resultado: 62
      resultado: 64
      resultado: 64
      resultado: 64
      resultado: 65
      resultado: 65
      resultado: 67
      resultado: 67
      resultado: 67
      resultado: 67
      resultado: 72
      resultado: 74
      resultado: 76
      resultado: 77
      resultado: 79
      resultado: 82
      resultado: 83
      resultado: 83
      resultado: 85
      resultado: 85
      resultado: 85
      resultado: 86
      resultado: 87
      resultado: 87
      resultado: 89
      resultado: 90
      resultado: 91
      resultado: 93
      resultado: 97
      resultado: 100
      resultado: 101
      resultado: 103
      resultado: 103
      resultado: 106
      resultado: 108
      resultado: 108
      resultado: 109
      resultado: 111
      resultado: 111
      resultado: 111
      resultado: 112
      resultado: 112
      resultado: 112
      resultado: 114
      resultado: 115
      resultado: 115
      resultado: 115
      resultado: 117
      resultado: 117
      resultado: 117
      resultado: 118
      resultado: 118
      resultado: 119
      resultado: 119
      resultado: 119
      resultado: 121
      resultado: 121
      resultado: 121
      resultado: 122
      resultado: 122
      resultado: 124
      resultado: 126
      resultado: 126
      resultado: 127
      resultado: 129
      resultado: 130
      resultado: 130
      resultado: 130
      resultado: 130
      resultado: 132
      resultado: 132
      resultado: 133
      resultado: 134
      resultado: 136
      resultado: 137
      resultado: 137
      resultado: 137
      resultado: 139
      resultado: 139
      resultado: 140
      resultado: 140
      resultado: 144
      resultado: 144
      resultado: 145
      resultado: 145
      resultado: 146
      resultado: 146
      resultado: 148
      resultado: 150
      resultado: 151
      resultado: 151
      resultado: 153
      resultado: 155
      resultado: 156
      resultado: 156
      resultado: 160
      resultado: 161
      resultado: 163
      resultado: 163
      resultado: 163
      resultado: 163
      resultado: 165
      resultado: 165
      resultado: 165
      resultado: 167
      resultado: 167
      resultado: 167
      resultado: 167
      resultado: 168
      resultado: 169
      resultado: 171
      resultado: 174
      resultado: 174
      resultado: 175
      resultado: 175
      resultado: 176
      resultado: 177
      resultado: 177
      resultado: 177
      resultado: 178
      resultado: 181
      resultado: 181
      resultado: 182
      resultado: 182
      resultado: 183
      resultado: 183
      resultado: 183
      resultado: 184
      resultado: 185
      resultado: 186
      resultado: 187
      resultado: 189
      resultado: 189

    • NOTA: no se debe enviar una variable con mas de 190 celdas.
  • a_ListaObTam;
    • obtener el nъmero mбximo de celdas enviadas atraves de "a_ListasOrdenarLlamar" o "a_ListasOrdenarLlamarEx"
    • sin parбmetros
    • pawn Код:
      public OnGameModeInit()
      {
          new orden[20];
          for(new i = 0; i < sizeof(orden); i++) orden[i] = random(sizeof(orden));

          a_ListasOrdenarLlamarEx(orden, LISTA_MENOR, "ListaTestCallback", "i", 5);

          return 1;
      }

      LISTAex:ListaTestCallback > llamada(playerid)
      {
          printf("playerid: %d", playerid);
          for(new i = 0; i < a_ListaObTam; i++)
          {
              printf("resultado: %d", llamada[i]);
          }
          return 1;
      }
    • Quote:

      playerid: 5
      resultado: 0
      resultado: 0
      resultado: 0
      resultado: 1
      resultado: 1
      resultado: 2
      resultado: 4
      resultado: 5
      resultado: 7
      resultado: 8
      resultado: 9
      resultado: 9
      resultado: 10
      resultado: 11
      resultado: 11
      resultado: 14
      resultado: 17
      resultado: 17
      resultado: 18
      resultado: 19

Adicionalmente

  • funciones o ideas que se pueden crear facilmente
pawn Код:
stock RankingScore(score[], tamano = sizeof(score))
{
    new temp[];
    for(new playerid = 0; playerid < tamano; playerid++)
    {
        if(!IsPlayerConnected(playerid)) continue;
        temp[playerid] = GetPlayerScore(playerid);
    }
    a_ListasOrdenar(temp, score, LISTA_MAYOR);
    return 1;
}
Descarga

Actualizaciones

  • 14-08-2013
    • publicaciуn v0.0.1
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)