Enviar respuesta 
[API] Advanced Vault System 1.5 (12/06/2015)
Autor Mensaje
Destro Sin conexión
Moderador


Buen Tutorial Plugin developer Pensador
Mensajes: 739
Registro en: Oct 2013
Reputación: 34
Mensaje: #1
[API] Advanced Vault System 1.5 (12/06/2015)
Otro vault para la colección (?

Ventajas contra otros vault:
-Mas dinámico en el manejo de datos
-Mejor rendimiento con muchos registros
-Muy fácil de usar para el guardado masivo de datos
-Al ser natives se ahorra mucho codigo si se usa en varios plugins (lo horrible de usar fvault y nfvault)
-Mas ligero que sqlite
-Posibilidad de ordenar los datos
-Funciones para busqueda de datos

Otros sistemas para el guardado de datos:
vault, nvault, fvault, nfvault, adv_vault, sqlite, mysql

INC:
Código PHP:
#if defined _adv_vault_included
  #endinput
#endif
#define _adv_vault_included


/*
     Comentar para remover las funciones que no uses.
(Tiene que estar igual a como este en el plugin de la API)
*/
#define COMPILE_FIND
#define COMPILE_SORT
#define COMPILE_SIMPLE


/*======================================*
[Advanced Vault System 1.5 by Destro]
*======================================*/

/*Tipos de datos*/
enum {
    
DATATYPE_INT=0,
    
DATATYPE_STRING,
    
DATATYPE_ARRAY
}

enum (<<= 1) {
    
CLEAR_ALL=1,
    
CLEAR_DATA,
    
CLEAR_INDEX,
    
#if defined COMPILE_SIMPLE
    
CLEAR_SIMPLEDATA,
    
#endif
}

#if defined COMPILE_FIND
enum (<<= 1) {
    
FINDFLAGS_EQUAL=1,
    
FINDFLAGS_CONTAIN,
    
FINDFLAGS_CASE_SENSITIVE,
    
FINDFLAGS_LESS,
    
FINDFLAGS_GREATER,
    
FINDFLAGS_NOT,
    
FINDFLAGS_AND,
    
FINDFLAGS_OR
}
#endif

#if defined COMPILE_SORT
/*Orden descendente/ascendente*/
enum {
    
ORDER_DESC=0,
    
ORDER_ASC
}
#endif

enum {
    
SIZE_DATA=0,
    
SIZE_INDEX,
    
#if defined COMPILE_SIMPLE
    
SIZE_SIMPLEDATA,
    
#endif
}

/*===================================*
[Chequea si el vault esta abierto]
-vaultname:
  nombre del vault
-return:
  Devuelve el index del vault
*===================================*/
native adv_vault_is_open(const vaultname[])


/*===================================*
[Abre/Crea un vault]
-vaultname:
  nombre del vault
-cache_index:
  guarda el indice key's en memoria
   (recomendado en uso masivo)
-return:
  Devuelve el index del vault
*===================================*/
native adv_vault_open(const vaultname[], cache_index=false)


/*==================*
[Inicializa el vault]
-vault:
  index del vault
*==================*/
native adv_vault_init(vault)

    
/*==============*
[Cierra un vault]
-vault:
  index del vault
*==============*/
native adv_vault_closed(vault)


/*==============*
[Limpia el fault]
-vault:
  index del vault
*==============*/
native adv_vault_clear(vaultflags)


/*==============*
[Devuelve la cantidad total de registros]
-vault:
  index del vault
-type:
  SIZE_DATA, SIZE_INDEX o SIZE_SIMPLEDATA
*==============*/
native adv_vault_size(vaulttype=SIZE_DATA)

/*============================================*
[Agrega un campo al vault]
-vault:
  index del vault
-fieldname:
  nombre del campo
-type:
  tipo de dato que se va a guardar
-length:
  tamaño reservado para guardar
   (solo para DATATYPE_STRING y DATATYPE_ARRAY)
-return:
  devuelve el index del campo(fieldindex)
*=============================================*/
native adv_vault_register_field(vault, const fieldname[], type=DATATYPE_INTlength=0)


/*=======================*
[Busca el index asociado al keyname]
-vault:
  index del vault
-return:
  devuelve 0 si no se encontro el keyindex,
   de lo contrario devuelve el keyindex
*=======================*/
native adv_vault_get_keyindex(vault, const keyname[])


/*=======================*
[Busca el keyname asociado al keyindex]
-vault:
  index del vault
-output:
  variable de salida
-len:
  tamaño de salida
-return:
  devuelve 1 si se encontro el keyname,de lo contrario 0
*=======================*/
native adv_vault_get_keyname(vaultkeyindexoutput[], len)


/*========================================*
[Prepara la obtención de datos]
-vault:
  index del vault
-keyindex:
  el index de un key (recomendado)
-keyname:
  key (internamente busca el index del key)
-return:
  devuelve 1 si hay datos,de lo contrario 0
*========================================*/
native adv_vault_get_prepare(vaultkeyindex=0, const keyname[]="")


/*============================================*
[Obtiene los datos de un campo]
-vault:
  index del vault
-fieldindex:
  index del campo
-output:
  variable de salida
-len:
  tamaño de salida
-return:
  si es DATATYPE_INT devuelve el valor guardado
*============================================*/
native adv_vault_get_field(vaultfieldindexoutput[]=""len=0)
    
    
/*======================================*
[Prepara todo para modificar los campos]
-vault:
  index del vault
*=====================================*/
native adv_vault_set_start(vault)


/*============================================================*
[Modifica el campo]
-vault:
  index del vault
-fieldindex:
  index del campo
-value:
  DATATYPE_INT: un valor numerico
  DATATYPE_STRING: un string normal o para formatear (%s %d...)
  DATATYPE_ARRAY: un array
*============================================================*/
native adv_vault_set_field(vaultfieldindexany:...)


/*=========================================================*
[Actualiza/Inserta los campos modificados]
-vault:
  index del vault
-keyindex:
  el index de un key (recomendado)
-keyname:
  key (internamente busca el index del key)
-return:
  devuelve el keyindex
 
Usar keyindex 0 y keyname "" para insertar un nuevo dato
   con un index auto-incrementado
*=========================================================*/
native adv_vault_set_end(vaultkeyindex=0, const keyname[]="")


/*========================================================*
[Remueve una clave]
-vault:
  index del vault
-keyindex:
  el index de un key (recomendado)
-keyname:
  key (internamente busca el index del key)

Si se usa keyname se remueve la clave del indice y el dato
Si se usa keyindex solo se remueve el dato
*========================================================*/
native adv_vault_removekey(vaultkeyindex=0, const keyname[]="")


/*=================================================*
[La forward es llamada cuando se cierra un Vault---]
-Pensado para:
  guardar los datos al cerrar el vault
*==================================================*/
forward fw_adv_vault_closed(vault)


/*=================================================*
[La forward es llamada al inicializar el vault ----]
-Pensado para:
   registrar campos nuevos en otros plugins
*==================================================*/
forward fw_adv_vault_init(vaultvaultname[])


#if defined COMPILE_FIND
/*===========================================================================*
[Busqueda -------------------------------------------------------------------]
=============================================================================*
[Inicia una busqueda]
-vault:
  index del vault
-Any:
  (field, flags, value)
    *Field: El index del campo a comparar
    *Value: El valor con el cual comparar
    *Frags: Las sentencias de comparacion
*===========================*/
native adv_vault_find_start(vaultany:...)

/*===========================*
[Busca el siguiente resultado]
-vault:
  index del vault
*===========================*/
native adv_vault_find_next(vault)

/*===========================*
[Finaliza la busqueda]
-vault:
  index del vault
*===========================*/
native adv_vault_find_closed(vault)
#endif

#if defined COMPILE_SORT
/*===========================================================================*
[Ordenamiento ---------------------------------------------------------------]
*============================================================================*
[Crea un ordenamiento]
-vault:
  index del vault
-order:
  el orden (ORDER_DESC/ORDER_ASC)
-refresh:
  tiempo en seguando para actualizar el ordenamiento (0 para desactivar)
-maxlimit:
  limite maximo de resultados (0 ilimitado)
-any:
  los campos tipo INT que se usaran para ordenar (maximo 4)
-return:
  devuelve el keyindex
 
Usar keyindex 0 y keyname "" para insertar un nuevo dato
   devuelve el index del sort
*======================================================================*/
native adv_vault_sort_create(vaultorderrefreshmaxlimitany:...)


/*===========================*
[Actualiza un ordenamiento]
-vault:
  index del vault
-sort:
  index del ordenamiento
*===========================*/
native adv_vault_sort_update(vaultsort)


/*===========================*
[Destruye un ordenamiento]
-vault:
  index del vault
-sort:
  index del ordenamiento
*===========================*/
native adv_vault_sort_destroy(vaultsort)


/*===============================================*
[Devuelve la posicion de un key]
-vault:
  index del vault
-sort:
  index del ordenamiento
 -keyindex:
  el index de un key (recomendado)
-keyname:
  key (internamente busca el index del key)
-return:
  devuelve la posicion del key en el ordenamiento,si no se encuentra el key devuelve 0
*===============================================*/
native adv_vault_sort_key(vaultsortkeyindex, const keyname[]="")


/*===============================================*
[Devuelve el indexkey de una posicion]
-vault:
  index del vault
-sort:
  index del ordenamiento
-position:
  la pocicion (de 1 a RESULTNUM)
-return:
  devuelve el indexkey de una posicion
*===============================================*/
native adv_vault_sort_position(vaultsortposition)


/*=================================*
[Devuelve el numero de resultados]
-vault:
  index del vault
-sort:
  index del ordenamiento
-return:
  devuelve el numero de resultados
*=================================*/
native adv_vault_sort_numresult(vaultsort)


/*=================================================*
[La forward es llamada cuando se actualiza el Sort]
*==================================================*/
forward fw_adv_vault_sort_update(vaultsort)
#endif

#if defined COMPILE_SIMPLE
/*=======================================================================*
[Simple Vault -----------------------------------------------------------]
*=======================================================================*/
// Obtiene lo datos de una clave
native adv_vault_simple_get(vault, const key[], output[], len)

// Guarda los datos en una clave
native adv_vault_simple_set(vault, const key[], const data[], any:...)

// Remueve una clave
native adv_vault_simple_removekey(vault, const key[])
#endif 

ChangeLog:
Nuevo:
Código:
1.0 Beta:
-Publicación

1.1:
- Fix bugs

1.2
-Fix bugs
-Nuevas natives

1.2b
-Fix bugs

1.3:
-Nuevas natives:
--native adv_vault_clear(vault, flags)
--native adv_vault_size(vault, indexkey=false)
--native adv_vault_find_start(vault, any:...)
--native adv_vault_find_next(vault)
--native adv_vault_find_closed(vault)
-Nuevas Forwards
--forward fw_adv_vault_sort_update(vault, sort)
--forward fw_adv_vault_closed(vault)


1.4:
-Fix bug
-Nueva forward
--forward fw_adv_vault_init(vault, vaultname[])
-Native modificada
--native adv_vault_size(vault, type=SIZE_DATA)

1.4b:
-Se comprueba si los archivos existen
-adv_vault_clear no elimina,ahora vaciá el archivo

1.5:
-Algoritmo quicksort optimizado
-Fix logs


Tutoriales:
[TUT] Guardar/Cargar datos de un player (ejemplo zp)
[TUT] Crear rank/top15 con Adv-Vault
[TUT] Busquedas con Adv-Vault

Nota para novatos:
adv_vault.sma: es el plugin de la API,tiene que estar puesto (compilado) para que funcione el/los plugin(s) que utilicen Advanced Vault System
adv_vault.inc: es el archivo de inclusión donde se definen las natives y const para compilar un plugin que utilice Advanced Vault System



adv_vault.sma (Descargar compilado / Tamaño: 41.55 KB / Descargas: 4229)

adv_vault.inc (Tamaño: 10.06 KB / Descargas: 4380)

(Este mensaje fue modificado por última vez en: 08/07/2015 01:17 AM por Destro.)
26/06/2014 10:52 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Mario AR. Sin conexión
Miembro Destacado


Plugin developer Donador Medalla de aportes 1k
Mensajes: 1,202
Registro en: Feb 2014
Reputación: 56
Mensaje: #2
RE: [API] Advanced Vault System 1.0Beta
Gran aporte!
Veré si adapto mi sistema de cuentas a este guardado.
¿Será más rápido/eficiente que fvault?

(09/06/2017 12:59 AM)kikizon2 escribió:  Quiero que leas las reglas, y si fuese posible que saltaras de un 10mo piso, pls.

(21/04/2017 01:27 AM)Chamo. escribió:  Cuanto hay que pagar para estar en tu firma TrolleyesThats what she said?

(20/04/2017 11:56 PM)matrix123 escribió:  Patrocinas rehlds? Es de lo único que hablas, mañana seguro te llegan remeras de rehlds, mandame una Whatever

(26/04/2017 08:47 PM)Dieguito escribió:  al que me salga con latinservers le meto un sugisaki por el c***

(26/02/2017 08:02 PM)meTaLiCroSS escribió:  La misma aritmetica se aplica con los Strings falsos que inventé ("trivago" y "pajarussel").

(13/02/2017 07:41 PM)Heber[$]ource escribió:  es nuvpawn, nos esta ddoseando con su sega genesis

(06/01/2015 10:47 PM)meTaLiCroSS escribió:  
(06/01/2015 10:40 PM)wiD escribió:  este chileno culiau Whatever
¿Que?

(29/04/2016 11:44 PM)wiD escribió:  Te juro que si te tengo enfrente primero te piso con el auto y despues te meo en la boca.

(16/07/2014 06:38 PM)wiD escribió:  Mongito dame su name que quiero un chip para pegar todo cocow

(18/03/2015 02:04 PM)ErikMav94 escribió:  
(18/03/2015 02:03 PM)mongito100 escribió:  Son todos putos
escribís como el orto :trolleyes;

[Anti] escribió:Olle tranquilo cerebrito

(03/04/2015 12:16 AM)Treki escribió:  
(03/04/2015 12:11 AM)Sugisaki escribió:  cual plug?, el arkshine o el de arkshine?

Fixed*

(09/03/2015 09:49 PM)Moroha escribió:  Suspendieron al abaricioso platero de kikizon :trolleyes;

(26/05/2014 08:31 PM)ivan escribió:  hola quiero hacer combo para el party uso el de rank

(22/08/2014 11:41 PM)Store.gh escribió:  Join team de jeropito? A vos t hace falta un pito..

(26/02/2015 01:01 AM)meTaLiCroSS escribió:  
(26/02/2015 12:54 AM)sasske escribió:  Salida del horno nueva versión, que obsesionado estoy :3
PD: Me olvide de darle los créditos a metal xD, pobre metal xd
Da igual, dejalo como una enseñanza jejej no te llorare por unos creditos ehhmm hud...

(18/01/2015 12:31 AM)[R]ak escribió:  no me critican.. solo dicen boludeces

(05/01/2015 12:43 AM)roccoxx escribió:  Sentado en dust pensando como fui tan gil ♪
Image
26/06/2014 11:57 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Destro Sin conexión
Moderador


Buen Tutorial Plugin developer Pensador
Mensajes: 739
Registro en: Oct 2013
Reputación: 34
Mensaje: #3
RE: [API] Advanced Vault System 1.0Beta
Con muchos datos seguro que es mejor que los demás.Igual la finalidad es que sea mas dinámico para cargar y guardar datos,no me centre mucho en el rendimiento.

27/06/2014 03:46 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Sangriento Sin conexión
Miembro


Mensajes: 125
Registro en: Oct 2013
Reputación: 5
Mensaje: #4
RE: [API] Advanced Vault System 1.0Beta
Buen aporte Destro, segui aportando que espero cosas muy buenas de tu parte Sonrisa..

Sin mi combustible( ANIME ) no vivo.
27/06/2014 11:34 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 798
Registro en: Oct 2013
Reputación: 15
Mensaje: #5
RE: [API] Advanced Vault System 1.0Beta
Exelentisimo aporte! Gran sonrisa

Aqui no iria 2 al ultimo?
Código PHP:
g_campos[CAMPO_POINTS]         = adv_vault_register_field(g_vault"points"DATATYPE_ARRAY4

30/06/2014 04:26 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Destro Sin conexión
Moderador


Buen Tutorial Plugin developer Pensador
Mensajes: 739
Registro en: Oct 2013
Reputación: 34
Mensaje: #6
RE: [API] Advanced Vault System 1.0Beta
(30/06/2014 04:26 PM)Metrikcz escribió:  Exelentisimo aporte! Gran sonrisa

Aqui no iria 2 al ultimo?
Código PHP:
g_campos[CAMPO_POINTS]         = adv_vault_register_field(g_vault"points"DATATYPE_ARRAY4
Si,iba a poner los puntos gastados pero después me arrepentí.

30/06/2014 04:37 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 798
Registro en: Oct 2013
Reputación: 15
Mensaje: #7
RE: [API] Advanced Vault System 1.0Beta
Podrias dar un ejemplo para usar esta native que no usas
native adv_vault_get_index(vault, const keyname[])

30/06/2014 04:44 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
totopizza Sin conexión
Miembro Héroe


Forum supporter Trebol verde Trebol de oro 1k
Mensajes: 1,661
Registro en: Mar 2014
Reputación: 33
Mensaje: #8
RE: [API] Advanced Vault System 1.1
Destro, El sma, donde ba?
addons/amxmodx/scripting
o donde?

[Imagen: 1098.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016 05:05 PM)meTaLiCroSS escribió:  Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.

Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
[font=Arial]
03/07/2014 12:42 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Neeeeeeeeeel.- Sin conexión
Administrador


El protector 1k
Mensajes: 1,697
Registro en: Oct 2013
Reputación: 34
Mensaje: #9
RE: [API] Advanced Vault System 1.1
(03/07/2014 12:42 PM)totopizza escribió:  Destro, El sma, donde ba?
addons/amxmodx/scripting
o donde?
Los sma son código fuente, no es necesario subirlos al servidor.

No contesto mensajes privados pidiendo soporte!

Donaciones en btc 1EcNJV2gTFDYr7BBAFpMQk7pVCFEZCaKX4
03/07/2014 01:01 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
LuKks Sin conexión
Miembro Sr.


Mensajes: 366
Registro en: Jul 2014
Reputación: 12
Mensaje: #10
RE: [API] Advanced Vault System 1.2
La verdad... sorprendes con este nuevo guardado, lo veo muy util para muchos (incluyendome).
Funciona muy bien, pero cuando le agrego la parte del top15 no funciona.
Tira errores a la hora de agregar el top, fijate si podes hacer algo o testearlo, o mejor dejar otro ejemplo de top15+guardado.
Dejaria el plugin que hice con este guardado pero lo elimine y no podia publicar el mensaje.
Ahora veo si lo hago de vuelta y edito.
Posiblemente yo pude aver colocado mal algo...

(Este mensaje fue modificado por última vez en: 10/07/2014 02:11 AM por LuKks.)
10/07/2014 02:10 AM
Visita su sitio web 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