11/01/2023, 01:18 PM
(Última modificación: 11/01/2023, 01:22 PM por [N]drs. Edited 2 times in total.)
[TUT] Nueva forma de leer archivos con JSON
Nota: Este tutorial va para personas que ya saben programar
Requerimientos: Amxmodx 1.9.0 o superior
Supongamos que tienes este archivo ubicado en: addos/amxmodx/configs/welcome.config.json
Como lo leerias? usarias un fopen, con while para leer linea por linea etc
Bueno con el include de json, esto se facilita
Te dejo un pequeño ejemplo de como leer ese archivo y usarlo para mostrar el mensaje de bienvenida al jugador
Si tienes alguna duda, solo hazla y te responderé
Nota: Este tutorial va para personas que ya saben programar
Requerimientos: Amxmodx 1.9.0 o superior
Supongamos que tienes este archivo ubicado en: addos/amxmodx/configs/welcome.config.json
Código:
{
"prefix": "!g[AMXX]",
"message": "!tMensaje enviado desde !gwelcome.config.json"
}
Bueno con el include de json, esto se facilita
Te dejo un pequeño ejemplo de como leer ese archivo y usarlo para mostrar el mensaje de bienvenida al jugador
Código PHP:
#include <amxmodx>
#include <amxmisc>
// Incluimos la libreria de json
#include <json>
#define PLUGIN "Ejemplo de uso de JSON para configuraciones"
#define VERSION "1.0"
#define AUTHOR "[N]drs"
// Almacenamos el nombre de
// nuestro archivo de configuracíón
// en una variable
new const FILENAME[] = "welcome"
// Variable para el ejemplo
new g_szWelcomeMessage[320]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
// Cargamos nuestra configuraación
loadConfig()
}
loadConfig()
{
// Obtenemos la ruta de configs
new szConfigDir[30]
get_configsdir(szConfigDir, charsmax(szConfigDir))
// Añadimos la ruta y formateamos el nombre del archivo con su extención
new szFilePath[60]
formatex(szFilePath, charsmax(szFilePath), "%s/%s.config.json", szConfigDir, FILENAME)
// Cargamos el archivo json
new JSON:jFile = json_parse(szFilePath, true)
// Creamos variables temporales para obtener los datos
new szPrefix[15], szMessage[256]
// Obtenemos el campo prefix del json
json_object_get_string(jFile, "prefix", szPrefix, charsmax(szPrefix))
// Obtenemos el campo message del json
json_object_get_string(jFile, "message", szMessage, charsmax(szMessage))
// Almacenamos la informacion en la variable creada al inicio
formatex(g_szWelcomeMessage, charsmax(g_szWelcomeMessage), "%s %s", szPrefix, szMessage)
// Pequeño stock para formatear el color al texto
format_color(g_szWelcomeMessage)
}
// Cuando el jugador entre
public client_putinserver(id)
{
// Nos esperamos 5 segundos y llamamos
// a la funcion Task_SendWelcomeMesage
// pasandole el id dle jugador
set_task(5.0, "Task_SendWelcomeMesage", id)
}
// al llamarse esta funcion
public Task_SendWelcomeMesage(id)
{
// Enviamos el mensaje al jugador
client_print_color(id, print_team_grey, g_szWelcomeMessage)
}
stock format_color(szBuffer[])
{
replace_string(szBuffer, strlen(szBuffer), "!g", "^4")
replace_string(szBuffer, strlen(szBuffer), "!t", "^3")
replace_string(szBuffer, strlen(szBuffer), "!n", "^1")
}
Si tienes alguna duda, solo hazla y te responderé
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