24/05/2022, 03:09 PM
(Última modificación: 24/05/2022, 03:10 PM por [N]drs. Edited 2 times in total.)
[API] Ndrs Vault
Descripción:- Esta api te permite guardar datos a una db sqlite fácilmente
Código PHP:
#if defined _ndrs_vault
#endinput
#endif
#define _ndrs_vault
#define MAX_TABLE_LENGTH 64
#define MAX_FIELD_LENGTH 64
#define MAX_VALUE_LENGTH 33
enum NdrsKeyType
{
NDRS_NAME=0,
NDRS_STEAMID,
NDRS_IP
}
enum NdrsType
{
NDRS_INT=0,
NDRS_FLOAT,
NDRS_BOOL,
NDRS_STRING
}
enum NdrsReturn
{
NDRS_SUCCESS = 1,
NDRS_FAIL
}
/**
* Prepara la tabla a usar
*
* @note Solo puedes usar letras y números sin espacios
*
* @param szTable Nombre de la tabla
* @param nKeyType Modo de guardado
*
* @return Retorna un valor del enum NdrsReturn
*/
native NdrsReturn:ndrs_start(const szTable[MAX_TABLE_LENGTH], NdrsKeyType:nKeyType)
/**
* Prepara las columnas a usar
*
* @note Solo puedes usar letras y números sin espacios
*
* @param ... Agrega el nombre de las columnas a usar
*
* @return Retorna un valor del enum NdrsReturn
*/
native NdrsReturn:ndrs_register_fields(any:...)
/**
* Crea o actualiza segun el id del jugador
*
* @note Solo puedes usar letras y números sin espacios
*
* @param id Index del jugador
* @param szField Columna a setear
* @param iType Tipo de dato a setear
* @param ... Valor a setear
*
* @return Retorna un valor del enum NdrsReturn
*/
native NdrsReturn:ndrs_set(id, const szField[], const NdrsType:iType, any:...)
/**
* Obtiene el valor de una columna segun el id del jugador
*
* @note Solo puedes usar letras y números sin espacios
*
* @param id Index del jugador
* @param szField Columna a usar
* @param ... Ejemplos para obtener diferentes valores
* Integer:
* new iNum = ndrs_get(id, szField)
* Float:
* new Float:fNum
* ndrs_get(id, szField, fNum)
* String:
* new szBuffer[32]
* ndrs_get(id, szField, szBuffer, charsmax(szBuffer))
*
* @return Retorna un valor del enum NdrsReturn en caso de error
*/
native any:ndrs_get(id, const szField[], {Float,_}:...)
Ejemplo de uso:
Código PHP:
#include <amxmodx>
#include <ndrs_vault>
#define PLUGIN "Test Ndrs Vault"
#define VERSION "1.0"
#define AUTHOR "[N]drs"
#define TABLE "test"
#define FIELD_ENTERO "entero"
#define FIELD_FLOTANTE "flotante"
#define FIELD_BOOLEANO "booleano"
#define FIELD_STRING "string"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
ndrs_start(TABLE, NDRS_NAME)
ndrs_register_fields(FIELD_ENTERO, FIELD_FLOTANTE, FIELD_BOOLEANO, FIELD_STRING)
}
public client_putinserver(id)
{
load(id)
}
public client_disconnected(id, bool:drop, message[], maxlen)
{
save(id)
}
save(id)
{
new iEntero = 58
new Float:fFlotante = 3.14
new bool:bBooleano = true
new szString[15] = "Test Mensaje"
ndrs_set(id, FIELD_ENTERO, NDRS_INT, iEntero)
ndrs_set(id, FIELD_FLOTANTE, NDRS_FLOAT, fFlotante)
ndrs_set(id, FIELD_BOOLEANO, NDRS_BOOL, bBooleano)
ndrs_set(id, FIELD_STRING, NDRS_STRING, szString)
}
load(id)
{
new iEnteroX
new Float:fFlotanteX
new bool:bBooleanoX
new szStringX[15]
iEnteroX = ndrs_get(id, FIELD_ENTERO)
server_print("Valor: %d", iEnteroX)
ndrs_get(id, FIELD_FLOTANTE, fFlotanteX)
server_print("Valor: %f", fFlotanteX)
bBooleanoX = ndrs_get(id, FIELD_BOOLEANO)
server_print("Valor: %s", bBooleanoX ? "true" : "false")
ndrs_get(id, FIELD_STRING, szStringX, charsmax(szStringX))
server_print("Valor: %s", szStringX)
}
Por ahora solo tiene las funciones básicas de un guardado, si hay apoyo agregaré nuevas funciones
Aportes
Bot Discord: CS Server Info Bot Discord 2023Plugins: Admin Expire (With support for MySql) || Simple Publicidad (Con soporte para MySql) v2.0 || Info de Ping en Color || Country Manager
Scripting: [API] Ndrs Player Model || [API] Tienda Avanzada v1.6
Includes: [API] Discord WebHook v2.5 || [INC] CZTutor v1.6 || [INC] Steam Avatar
Tutoriales/Guías: Agregar administradores desde plugin || [Reapi] Reemplazar Modelos de Armas || [TUT] Como instalar/actualizar a amxmodx 1.9.0
No doy ayuda gratis por privado, consulta en los foros.
Si vas a pagar por un plugin, te dejo aquí mi discord: [N]drs#5342