15.08.2013, 02:56
a_listas
v0.1 - 14/08/2013
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
- entre los 2 includes principales (vйase el enlace principal) colocar.
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