Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
28/07/2015, 09:30 PM
(Última modificación: 28/07/2015, 09:31 PM por HK-416 .)
TIEMPO JUGADO
Hola este es un mini aporte por que no he visto yo ninguno y andaba buscando para ponerlo y lo hice no se mucho pero esto anda perfecto hasta donde yo se
* Contador De Segundos
* Contador De Minutos
* Contador De Horas
* Contador De Dias
* Contador De Meses
* Contador De Años
* Guardado De Datos
Esto se puede meter en todos los modos.
Cualquier bug y o error diganme
Archivos adjuntos
Descargar AMXX / tiempo.sma (Tamaño: 3.28 KB / Descargas: 274)
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Mensajes: 419
Temas: 45
Registro en: May 2015
Mensajes: 1,233
Temas: 19
Registro en: Mar 2015
Reputación:
14
No se si sea la mejor manera, deberías agregar un identificador a los task
N O R E S P O N D O MP P O R S O P O R T E
Mensajes: 4,383
Temas: 132
Registro en: Apr 2015
Reputación:
23
:ohgodwhy buen aporte
PD: situación sentimental: Sin internet
Sigue así
* Ing. Informático * Mapper * Venezolano
Mensajes: 268
Temas: 28
Registro en: Dec 2013
Reputación:
3
Muy bueno, Anque es un poco simple
PD: Buen aporte
Mensajes: 1,764
Temas: 19
Registro en: Dec 2013
Reputación:
14
28/07/2015, 10:21 PM
(Última modificación: 28/07/2015, 10:23 PM por ErikMav94 .)
Podrías poner una variable (true / false) mediante un comando en say o consola para activar/desactivar la muestra del hud
Código PHP:
if ( g_tiempo [ id ][ 3 ] == 30 )
no todos los meses tienen 30 días y va a terminar contando mal los meses/años
(28/07/2015, 09:32 PM) FloresMagon escribió: No se si sea la mejor manera, deberías agregar un identificador a los task
para qué identificador a los task?
No usa remove_task y si lo usara estaría bien que eliminara los 2 tasks que existen (que tienen el mismo id) en el plugin
Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
(28/07/2015, 10:21 PM) ErikMav94 escribió: Código PHP:
if ( g_tiempo [ id ][ 3 ] == 30 )
no todos los meses tienen 30 días y va a terminar contando mal los meses/años
(28/07/2015, 09:32 PM) FloresMagon escribió: No se si sea la mejor manera, deberías agregar un identificador a los task
para qué identificador a los task?
No usa remove_task y si lo usara estaría bien que eliminara los 2 tasks que existen (que tienen el mismo id) en el pluginAhora lo arreglo
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Mensajes: 4,247
Temas: 94
Registro en: Mar 2014
Reputación:
58
Prueba así...
Código PHP:
#include <amxmodx> #include <adv_vault> #define PLUGIN "Tiempo" #define VERSION "1.0" #define AUTHOR "HK-416" #define TASK_CONTEO 6633 #define ID_CONTEO ( taskid - TASK_CONTEO ) #define TASK_HUD 6533 #define ID_HUD ( taskid - TASK_HUD ) new g_tiempo [ 33 ][ 6 ] new g_vault enum { CAMPO_SEGUNDOS , CAMPO_MINUTOS , CAMPO_HORAS , CAMPO_DIAS , CAMPO_MESES , CAMPO_ANIOS , CAMPO_MAX } new g_campos [ CAMPO_MAX ] public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) g_vault = adv_vault_open ( "Tiempo" , false ) g_campos [ CAMPO_SEGUNDOS ] = adv_vault_register_field ( g_vault , "SEGUNDOS" ) g_campos [ CAMPO_MINUTOS ] = adv_vault_register_field ( g_vault , "MINUTOS" ) g_campos [ CAMPO_HORAS ] = adv_vault_register_field ( g_vault , "HORAS" ) g_campos [ CAMPO_DIAS ] = adv_vault_register_field ( g_vault , "DIAS" ) g_campos [ CAMPO_MESES ] = adv_vault_register_field ( g_vault , "MESES" ) g_campos [ CAMPO_ANIOS ] = adv_vault_register_field ( g_vault , "ANIOS" ) adv_vault_init ( g_vault ) } public client_putinserver ( id ) { Tiempo ( id ) set_task ( 0.1 , "Cuanto" , id + TASK_HUD , _ , _ , "b" ) Cargar ( id ) } public client_disconnect ( id ) { Guardar ( id ) remove_task ( id + ID_HUD ); remove_task ( id + ID_CONTEO ); } public Tiempo ( taskid ) { g_tiempo [ ID_CONTEO ][ 0 ]++ if ( g_tiempo [ ID_CONTEO ][ 0 ] == 60 ) { g_tiempo [ ID_CONTEO ][ 0 ] = 0 g_tiempo [ ID_CONTEO ][ 1 ]++ } if ( g_tiempo [ ID_CONTEO ][ 1 ] == 60 ) { g_tiempo [ ID_CONTEO ][ 0 ] = 0 g_tiempo [ ID_CONTEO ][ 1 ] = 0 g_tiempo [ ID_CONTEO ][ 2 ]++ } if ( g_tiempo [ ID_CONTEO ][ 2 ] == 24 ) { g_tiempo [ ID_CONTEO ][ 0 ] = 0 g_tiempo [ ID_CONTEO ][ 1 ] = 0 g_tiempo [ ID_CONTEO ][ 2 ] = 0 g_tiempo [ ID_CONTEO ][ 3 ]++ } if ( g_tiempo [ id ][ 3 ] == 30 ) { g_tiempo [ ID_CONTEO ][ 0 ] = 0 g_tiempo [ ID_CONTEO ][ 1 ] = 0 g_tiempo [ ID_CONTEO ][ 2 ] = 0 g_tiempo [ ID_CONTEO ][ 3 ] = 0 g_tiempo [ ID_CONTEO ][ 4 ]++ } if ( g_tiempo [ id ][ 4 ] == 12 ) { g_tiempo [ ID_CONTEO ][ 0 ] = 0 g_tiempo [ ID_CONTEO ][ 1 ] = 0 g_tiempo [ ID_CONTEO ][ 2 ] = 0 g_tiempo [ ID_CONTEO ][ 3 ] = 0 g_tiempo [ ID_CONTEO ][ 4 ] = 0 g_tiempo [ ID_CONTEO ][ 5 ]++ } set_task ( 1 , 0 , "Tiempo" , id + ID_CONTEO ) } public Cuanto ( taskid ) { set_hudmessage ( 255 , 0 , 0 , - 1.0 , 0.01 ) show_hudmessage ( ID_HUD , "Años : %d^nMeses : %d^nDias : %d^nHoras : %d^nMinutos : %d^nSegundos : %d" , g_tiempo [ ID_HUD ][ 5 ], g_tiempo [ ID_HUD ][ 4 ], g_tiempo [ ID_HUD ][ 3 ], g_tiempo [ ID_HUD ][ 2 ], g_tiempo [ ID_HUD ][ 1 ], g_tiempo [ ID_HUD ][ 0 ]) } public Guardar ( id ) { static name [ 32 ] get_user_name ( id , name , sizeof name - 1 ) adv_vault_set_start ( g_vault ) adv_vault_set_field ( g_vault , g_campos [ CAMPO_SEGUNDOS ], g_tiempo [ id ][ 0 ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_MINUTOS ], g_tiempo [ id ][ 1 ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_HORAS ], g_tiempo [ id ][ 2 ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_DIAS ], g_tiempo [ id ][ 3 ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_MESES ], g_tiempo [ id ][ 4 ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_ANIOS ], g_tiempo [ id ][ 5 ]) adv_vault_set_end ( g_vault , 0 , name [ id ]) } public Cargar ( id ) { static name [ 32 ] get_user_name ( id , name , sizeof name - 1 ) if(! adv_vault_get_prepare ( g_vault , _ , name [ id ])) return; g_tiempo [ id ][ 0 ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_SEGUNDOS ]) g_tiempo [ id ][ 1 ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_MINUTOS ]) g_tiempo [ id ][ 2 ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_HORAS ]) g_tiempo [ id ][ 3 ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_DIAS ]) g_tiempo [ id ][ 4 ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_MESES ]) g_tiempo [ id ][ 5 ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_ANIOS ]) }
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. (08/08/2019, 05:32 PM) meTaLiCroSS escribió: grax x el dato cr4ck
Mis aportes
PLUGINS MAPAS
Menú LANG
[SF] Sistema de Frags
Say System (Admin Prefix)
Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
29/07/2015, 12:48 AM
(Última modificación: 29/07/2015, 12:53 AM por HK-416 .)
Una pregunta totopizza por que le pusiste todo eso?
Si anda perfecto.
No me compilo
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
por nombre? really?
ponelo por STEAM ID
Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
(29/07/2015, 12:50 AM) [R]ak escribió: por nombre? really?
ponelo por STEAM IDOsea Que Guarde Los Datos Por Steam ID
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Mensajes: 3,466
Temas: 18
Registro en: Oct 2013
Reputación:
54
En vez de guardar tanto dato innecesario, es mejor guardar simplemente los segundos, y a partir de los segundos obtener el resto.
Toma esta libreria para que te guies mejor
https://forums.alliedmods.net/showthread.php?t=91915
Mensajes: 1,933
Temas: 39
Registro en: Jul 2014
Reputación:
23
31/07/2015, 07:00 PM
(Última modificación: 31/07/2015, 07:03 PM por Sugisaki .)
tambien puedes hacer algo como
Código PHP:
#include <amxmodx> #define PLUGIN "Nuevo Plugin" #define VERSION "1.0" #define AUTHOR "Sugisaki" #define NONE "" #define SZPL "s" new iTPlayed [ 33 ], iSConnected [ 33 ], bool : connected [ 33 ] public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) register_clcmd ( "say /check" , "fw_tiempo" ) } stock calculate_time ( id ) { return floatround ( get_gametime ()) - iSConnected [ id ] } public fw_tiempo ( id ) { new itime = ( iTPlayed [ id ] + calculate_time ( id ) ) new seg , minutes , hours , days seg = itime % 60 minutes = itime / 60 hours = minutes / 60 days = hours / 24 if( days ) { client_print ( id , print_chat , "Llevas %i dia%s, %i hora%s, %i minuto%s, %i segundo%s online" , days , days == 1 ? NONE : "s" , hours % 24 , hours == 1 ? NONE : SZPL , minutes % 60 , minutes == 1 ? NONE : SZPL , seg , seg == 1 ? NONE : SZPL ) return } else if ( hours ) { client_print ( id , print_chat , "Llevas %i hora%s, %i minuto%s, %i segundo%s online" , hours % 60 , hours == 1 ? NONE : SZPL , minutes % 60 , minutes == 1 ? NONE : SZPL , seg , seg == 1 ? NONE : SZPL ) return } else if ( minutes ) { client_print ( id , print_chat , "Llevas %i minuto%s, %i segundo%s online" , minutes % 60 , minutes == 1 ? NONE : SZPL , seg , seg == 1 ? NONE : SZPL ) return } else if ( seg ) { client_print ( id , print_chat , "Llevas %i segundo%s online" , seg , seg == 1 ? NONE : SZPL ) return } } public client_putinserver ( id ) { connected [ id ] = true iSConnected [ id ] = floatround ( get_gametime ()) } public client_disconnect ( id ) { if(! connected [ id ]) return iTPlayed [ id ] += calculate_time ( id ) connected [ id ] = false }
en vez de un task y guardar todo eso, solo guardas el uptime del jugador ( como dijo metal ) y con una formula matematica ( bueno eso la dan en fisica ) determinas los dias, horas, minutos y segundos
Es un ejemplo, aunque funciona