Enviar respuesta 
[TUT] Crear rank/top15 con Adv-Vault
Autor Mensaje
Destro Sin conexión
Anti-cheat Team


Buen Tutorial Plugin developer Pensador Plugin popular
Mensajes: 820
Registro en: Oct 2013
Reputación: 4
Mensaje: #1
[TUT] Crear rank/top15 con Adv-Vault
Esto seria como una continuación al tutorial anterior [TUT] Guardar/Cargar datos de un player (ejemplo zp)

Para este tutorial vamos a usar la API del Advanced Vault System
Advanced Vault System


Teniendo en cuenta el code del anterior tutorial,ahora vamos a ver como obtener los datos para crear un top15 y un rank.

Código PHP:
/*No voy a explicar cada parámetro porque ya esta explicado en el include*/

/*Variable donde guardaremos el identificador del ordenamiento*/
new g_sort

public plugin_init()
{
    
/*Creamos el ordenamiento*/
    
g_sort adv_vault_sort_create(g_vaultORDER_DESC602000g_campos[CAMPO_RESET], g_campos[CAMPO_LEVEL], g_campos[CAMPO_AMMOPACKS])
}

funcion_top15(id)
{
    new 
rrlvlapkeyindexpj[32]
    
    
// Chequeamos que el loop no sea mayor a los resultados obtenidos
    
new toploop min(adv_vault_sort_numresult(g_vaultg_sort), 15)
    
    for(new 
position=1position <= toploopposition++)
    {
        
// Obtenemos el keyindex que este en la posición deseada
        
keyindex adv_vault_sort_position(g_vaultg_sortposition)
        
        
// Preparamos para obtener los datos
        
if(!adv_vault_get_prepare(g_vaultkeyindex)) continue
        
        
// Obtenemos los datos
        
ap adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOPACKS])
        
lvl adv_vault_get_field(g_vaultg_campos[CAMPO_LEVEL])
        
rr adv_vault_get_field(g_vaultg_campos[CAMPO_RESET])
        
        
adv_vault_get_keyname(g_vaultkeyindexpj31)

        
console_print(id"#%d pj:[%s] - rr:[%d] - lvl:[%d] - ap:[%d]"positionpjrrlvlap)
    }
}

funcion_rank(id)
{
    
// Obtenemos en que posicion esta el key
    
new rank_position adv_vault_sort_key(g_vaultg_sort0g_pj[id])
    
    if(!
rank_positionclient_print(idprint_chat"No estas rankeado")
    else 
client_print(idprint_chat"Tu rank es %d de %d"rank_positionadv_vault_sort_numresult(g_vaultg_sort))



Otros tutoriales:
[TUT] Guardar/Cargar datos de un player (ejemplo zp)
[TUT] Búsquedas de datos en Adv-Vault

(Este mensaje fue modificado por última vez en: 05/10/2014 02:18 PM por Destro.)
02/07/2014 09:16 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Kane Sin conexión
Miembro Sr.


Mensajes: 532
Registro en: Feb 2014
Reputación: 17
Mensaje: #2
RE: [TUT] Crear rank/top15 con Adv-Vault
Código PHP:
new = toploop 
--->
Código PHP:
new toploop 

(19/06/2014 11:08 PM)01011001 escribió:  No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014 11:08 PM)[R]ak escribió:  Mis conocimientos aumentaron un 500% con este post
02/07/2014 09:23 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
cLAANS Sin conexión
Miembro Sr.


Plugin developer Trebol purpura
Mensajes: 653
Registro en: Oct 2013
Reputación: 16
Mensaje: #3
RE: [TUT] Crear rank/top15 con Adv-Vault
Muy bueno destro ..

Saludos,
cLAANS.-

Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017 09:30 PM)SoundBlaster escribió:  Espera y llamo a los power rangers para que me digan la linea de error
02/07/2014 10:32 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Frosst Sin conexión
Miembro Sr.


Mensajes: 581
Registro en: Oct 2013
Reputación: 2
Mensaje: #4
RE: [TUT] Crear rank/top15 con Adv-Vault
Se ve bueno, pero sería mejor este top o el de mysql/sqlite?

Facebook para preguntas/pedidos: Fb.com/scripterfrosst
03/07/2014 12:38 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Destro Sin conexión
Anti-cheat Team


Buen Tutorial Plugin developer Pensador Plugin popular
Mensajes: 820
Registro en: Oct 2013
Reputación: 4
Mensaje: #5
RE: [TUT] Crear rank/top15 con Adv-Vault
En rendimiento creo que esta peleado con sqlite en algunas cosas, pero en usabilidad es el mejor de todos.

03/07/2014 02:56 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 578
Registro en: Dec 2013
Reputación: 12
Mensaje: #6
RE: [TUT] Crear rank/top15 con Adv-Vault
(03/07/2014 02:56 AM)Destro escribió:  En rendimiento creo que esta peleado con sqlite en algunas cosas, pero en usabilidad es el mejor de todos.

Posta?..., no pense que fuera tan buena esta forma. Sos muy ingenioso, me puse a leer el tuto de cargar datos y le vi algo de similitud con mysql
Esta Muy Nice Esto.
saludos

NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
Image
(Este mensaje fue modificado por última vez en: 06/07/2014 10:49 PM por Evil Spiret.)
06/07/2014 10:46 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Frosst Sin conexión
Miembro Sr.


Mensajes: 581
Registro en: Oct 2013
Reputación: 2
Mensaje: #7
RE: [TUT] Crear rank/top15 con Adv-Vault
Destro, una pregunta me darias un ejemplo de como cambiar esto:

console_print(id, "#%d pj:[%s] - rr:[%d] - lvl:[%d] - ap:[%d]", pj, position, rr, lvl, ap)

Por un menu o motd ?

Facebook para preguntas/pedidos: Fb.com/scripterfrosst
12/07/2014 02:30 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
LuKks Sin conexión
Miembro Sr.


Plugin developer
Mensajes: 456
Registro en: Jul 2014
Reputación: 18
Mensaje: #8
RE: [TUT] Crear rank/top15 con Adv-Vault
Supongo.
Código PHP:
public plugin_init()
    
g_sort adv_vault_sort_create(g_vaultORDER_DESC6016pg[FRAGS], pg[DEATHS])

public 
funcion_top15(id)
{
    new 
killsdeathskeyindexpj[32], opc[200], posicion[6]
    new 
menu menu_create("\dTOP15""menu_lukas")
    
    new 
toploop min(adv_vault_sort_numresult(g_vaultg_sort), 16)
    
    for(new 
position=1position <= toploopposition++)
    {
        
keyindex adv_vault_sort_position(g_vaultg_sortposition)
        
        if(!
adv_vault_get_prepare(g_vaultkeyindex)) continue
        
        
kills adv_vault_get_field(g_vaultpg[FRAGS])
        
deaths adv_vault_get_field(g_vaultpg[DEATHS])
        
        
adv_vault_get_keyname(g_vaultkeyindexpj31// debes hacer el guardado por nombre.
        
        
formatex(opccharsmax(opc), "\y%d\d. \w%s \yKills \r%d \yDeaths \r%d"positionpjkillsdeaths)
        
num_to_str(positionposicioncharsmax(posicion))
        
menu_additem(menuopcposicion
    }
    
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente")
    
menu_setprop(menuMPROP_BACKNAME"Atras")
    
menu_setprop(menuMPROP_EXITNAME"Salir")
    
menu_display(idmenu0)  
}

public 
menu_lukas(idmenuitem

    if (
item == MENU_EXIT) return PLUGIN_HANDLED 
     
    funcion_top15
(id)
    return 
PLUGIN_HANDLED


Edit:
Código PHP:
console_print(id"#%d pj:[%s] - rr:[%d] - lvl:[%d] - ap:[%d]"pjpositionrrlvlap
---->
Código PHP:
console_print(id"#%d pj:[%s] - rr:[%d] - lvl:[%d] - ap:[%d]"positionpjrrlvlap

(Este mensaje fue modificado por última vez en: 07/06/2015 06:17 PM por LuKks.)
12/07/2014 02:36 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
intoxicadooo Sin conexión
Miembro Junior


Mensajes: 38
Registro en: Jan 2017
Reputación: 0
Mensaje: #9
RE: [TUT] Crear rank/top15 con Adv-Vault
Buenas segui el tuto del rank, pero se ve que en algo me estoy equivocando porque me tira 2 warning(Warning: Symbol is never used: "rank" on line 8835; Warning: Symbol is never used: "top15" on line),..
este es mi code, lo intente llamar en el client_cmd con say,
Código PHP:
top15(id)
{
    new 
lvlapkeyindexpj[32]
    
    new 
toploop min(adv_vault_sort_numresult(g_vaultg_sort), 15)
    
    for(new 
position=1position <= toploopposition++)
    {
        
keyindex adv_vault_sort_position(g_vaultg_sortposition)
        
        if(!
adv_vault_get_prepare(g_vaultkeyindex)) continue
        
        
lvl adv_vault_get_field(g_vaultg_campo[LEVEL])
        
ap adv_vault_get_field(g_vaultg_campo[AMMOPACKS])
        
        
adv_vault_get_keyname(g_vaultkeyindexpj31)
        
        
console_print(id"#%d pj: [%s] -  lvl: [%d] - ap: [%d]"positionlvlap)
    }
}
rank(id)
{
    new 
rank_position adv_vault_sort_key(g_vaultg_sort0g_pj[id])
    
    if(!
rank_positionclient_print(idprint_chat"NO ESTAS RANKEADO")
    else 
client_print(idprint_chat"Tu rank es %d de %d"rank_positionadv_vault_sort_numresult(g_vaultg_sort))


PD: las variables g_campo[LEVEL]; g_campo[AMMOPACKS], las use del tutorial de guardado de "https://amxmodx-es.com/Thread-GUIA-Adapt...entas-a-ZP", esta bien o hise algo mal?

Desde ya muchas gracias (;
(Este mensaje fue modificado por última vez en: 12/02/2017 10:44 PM por intoxicadooo.)
12/02/2017 10:42 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Chamo. Ausente
Miembro Destacado


Trebol verde Trebol purpura 1k
Mensajes: 1,348
Registro en: Jan 2014
Reputación: 28
Mensaje: #10
RE: [TUT] Crear rank/top15 con Adv-Vault
Me equivoque, lo que pasa, es que esas funciones son internas, y al hookearlas como un comando, no son reconocidas y por ende usadas, solo agrégale antes de los nombres el prefijo public, ejemplo:

Código PHP:
public rank(id)
{
//code.....

(Este mensaje fue modificado por última vez en: 12/02/2017 10:48 PM por Chamo..)
12/02/2017 10:45 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS