[Plugin] JP - strftime
#1

strftime
Bueno, como me ando iniciando en c++ hice este pequeсito plugin que se basa en la funcion strftime de C++

Por quй se llama strftime:
Esto significa que tu le das el formato que quieres a la hora, esto tiene un sierto uso parecido ah
pawn Код:
format
Lo que hace este plugin es obtener la hora del servidor en distintas formas, formato 12 horas | am,pm | en si de muchas formas y como tu quieras obtenerla.


EDIT: Si el especificador no existe el server crashea!!

Ejemplo de uso
pawn Код:
#include <strftime>
public OnFilterScriptInit()
{
       new tiempo[20];
       strftime("%I:%M %p",tiempo);
       print(tiempo);
       return 1;
}
En consola
Код:
10:05 PM
Segundo Ejemplo
pawn Код:
#include <strftime>
public OnFilterScriptInit()
{
       new tiempo[20];
       strftime("%I:%M:%S %p",tiempo);
       print(tiempo);
       return 1;
}
En consola
Код:
10:05:43 PM
Tercer Ejemplo
pawn Код:
#include <strftime>
public OnFilterScriptInit()
{
       new tiempo[20];
       strftime("%p",tiempo);
       print(tiempo);
       return 1;
}
En consola
Код:
PM

Los puedes crear como tu quieras, aqui tienes los especifiadores que hay
Код:
%a Es reemplazado por la abreviatura del nombre del dнa de la semana de la localidad 
%A Es reemplazado por el nombre completo del dнa de la semana de la localidad 
%b Es reemplazado por la abreviatura del nombre del mes de la localidad 
%B Es reemplazado por el nombre completo del mes de la localidad 
%c Es reemplazado por la fecha apropiada y la representaciуn de la hora de la localidad 
%d Es reemplazado por el dнa del mes como un nъmero decimal (01-31) 
%H Es reemplazado por la hora (reloj de 24 horas) como un nъmero decimal (00-23) 
%I Es reemplazado por la hora (reloj de 12 horas) como un nъmero decimal (01-12) 
%j Es reemplazado por el dнa del aсo como un nъmero decimal (001-366) 
%m Es reemplazado por el mes como un nъmero decimal (01-12) 
%M Es reemplazado por el minuto como un nъmero decimal (00-59) 
%p Es reemplazado por el equivalente de la localidad de las designaciones de AM/PM asociadas con un reloj de 12 horas 
%S Es reemplazado por el segundo como un nъmero decimal (00-61) 
%U Es reemplazado por el nъmero de la semana del aсo (el primer Domingo como el primer dнa de la semana 1) como un nъmero decimal (00-53) 
%w Es reemplazado por el dнa de la semana como un nъmero decimal (0-6), donde Domingo es 0 
%W Es reemplazado por el nъmero de la semana del aсo (el primer Lunes como el primer dнa de la semana 1) como un nъmero decimal (00-53) 
%x Es reemplazado por la representaciуn apropiada de la fecha de la localidad 
%X Es reemplazado por la representaciуn apropiada de la hora de la localidad 
%y Es reemplazado por el aсo sin siglo como un nъmero decimal (00-99) 
%Y Es reemplazado por el aсo con siglo como un nъmero decimal 
%Z Es reemplazado por el nombre o la abreviatura del huso horario, o por ningunos caracteres si ningъn huso horario es determinable 
%% Es reemplazado por %
Descarga:Windows dll + Linux so + source

Muchas gracias a CyNiC por compilar el plugin en versiуn linux!

Creditos: Josta ( Crear el plugin )
Creditos: the_chaoz ( Ayudarme con algunas cositas de c++)
Reply
#2

Interesante, enhorabuena
Reply
#3

Se nota que te esforzaste en esto, sigue asн

PD: Creo que es el primer plugin que veo por esta secciуn
Reply
#4

La verdad no tiene tanto trabajo, pero batalle para que funcionara :P
EDIT: Versiуn linux agregada para que lo puedas poner en tu server host (La mayoria son linux)
Reply
#5

muy buena me gustaria saber como empezar hacer esos berracos plugins
Reply
#6

viste q si podias josta buen trabajo
Reply
#7

Esta bueno, pero como el parametro que serб cambiado de la funciуn es string te recomiendo que le agreges otro parametro donde indique el tamaсo del destinino, tu native deveria ser asн
Код:
native strftime(formato[],time[],length = sizeof(time));
por ejemplo si testeas esto el server dara crahs porque el tamaсo del array es pequeсo, no estoy seguro pero creo que este fallo se le llama desbordamiendo de buffer

pawn Код:
public OnFilterScriptInit() {
    new time[10]; //el tamaсo de este array es pequeсo para el formato que se le pide
    strftime("%A %d %B %Y %I:%M:%S %p",time);
    print(time);
}
Reply
#8

Muy bueno josta para ser la primera vez, felicidades
Reply
#9

Quote:
Originally Posted by TiNcH010
Посмотреть сообщение
Muy bueno josta para ser la primera vez, felicidades
Gracias :P

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
Esta bueno, pero como el parametro que serб cambiado de la funciуn es string te recomiendo que le agreges otro parametro donde indique el tamaсo del destinino, tu native deveria ser asн
Код:
native strftime(formato[],time[],length = sizeof(time));
por ejemplo si testeas esto el server dara crahs porque el tamaсo del array es pequeсo, no estoy seguro pero creo que este fallo se le llama desbordamiendo de buffer

pawn Код:
public OnFilterScriptInit() {
    new time[10]; //el tamaсo de este array es pequeсo para el formato que se le pide
    strftime("%A %d %B %Y %I:%M:%S %p",time);
    print(time);
}
Aun que en realidad el tamaсo del array es pequeсo el server no crashea
Reply
#10

Perdonen el doble post pero es algo importante

Quote:

Strings de 9 caracteres o menos no provocarбn desbordamiento de buffer. Por el contrario, strings de 10 caracteres o mбs sн: esto siempre es incorrecto, aunque no siempre resultarб en un error del programa o segmentation fault.

Esto lo acavo de aprender y realmente tiene razуn, ahora mismo estoy trabajando para evitar este desbordamiento
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)