[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
#2

Buen trabajo amigo.

PD: Me gusta
Reply
#3

Es hermoso <3 nice script
Reply
#4

Muy buen trabajo, esto es muy util.

Un saludo.
Reply
#5

HERMOSO SCRIPT SIN DUDA C:
Reply
#6

Me sale esto al compilar mi gm:

Код:
D:\Descargas\GTA SA\Server's\TDM\gamemodes\TDM.pwn(3160) : error 017: undefined symbol "a_ListasOrdenarLlamarEx"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
Y ya agreguй los includes a_inc y a_inc2 .

PD: Quiero hacer una tabla que diga el nick del jugador y su score al lado ordenados. Como se harнa eso? xD Osea solo quiero saber como hacer para identificar de que jugador es el score, lo de la tabla sй como hacerlo.
Reply
#7

No creo que sea posible hacer eso con este include, tendria que ordenar dos arrays uno para el score y otro para la pocision del indice original.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)