[AmxBans] Los baneos quedan permanentes
#1
Buenas noches, instale el amxbans en la pagina free de 000webhost, lo hice funcionar ya que toda las configuraciones se deben hacer mediante la base de datos, bueno el problema esta en que cuando yo doy un baneo de 10 minutos al pasar esos 10 minutos el ban aun sigue no expira, la base de datos es propia del servidor y el servidor es hosteado linux
Pawn Básico no critiquen xD  Approved

Responder
#2
XD No es un problema, creo que amxbans funciona de la manera que el baneo se expira en el momento que el jugador entra al servidor.
Responder
#3
(01/09/2022, 01:53 AM)Alejandro escribió: XD No es un problema, creo que amxbans funciona de la manera que el baneo se expira en el momento que el jugador entra al servidor.

Si, funciona asi por lo que veo pero como le haria para que lo desbanee automaticamente sin tener que esperar que el jugador entre?
Pawn Básico no critiquen xD  Approved

Responder
#4
(01/09/2022, 12:31 PM)Meliodas escribió: Si, funciona asi por lo que veo pero como le haria para que lo desbanee automaticamente sin tener que esperar que el jugador entre?

Usá AdvancedBans
Responder
#5
(01/09/2022, 12:56 PM)Ballers escribió: Usá AdvancedBans

es que uso amxbans por el tema de la base de datos ya que de esa base tomo las tablas para mostrar la banlist y la lista de admin en mi pag
Pawn Básico no critiquen xD  Approved

Responder
#6
Podrias poner en el inicio de las rondas o mapas que haga un update a la tabla y quite los bans que ya expiraron
“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.
Responder
#7
(01/09/2022, 04:05 PM)HK-416 escribió: Podrias poner en el inicio de las rondas o mapas que haga un update a la tabla y quite los bans que ya expiraron

y como podria hacer eso, perdon apenas estoy aprendiendo todo esto
Pawn Básico no critiquen xD  Approved

Responder
#8
Yo ni lo probe ni nada lo hice asi a lo rapido y es posible que algo me quede mal

Eso lo puse en "check_player.inl"
Código PHP:
public update_bans()
{
 new 
pquery[1024]
 
formatex(pquery,charsmax(pquery),"UPDATE `%s%s` SET expired=1 WHERE expired = 0 AND ban_created > 0 AND ban_length > 0 AND (ban_created + (ban_length * 60)) < UNIX_TIMESTAMP(NOW())"g_dbPrefixtbl_bans);
 
SQL_ThreadQuery(g_SqlX"update_bans_"pquery)
}

public 
update_bans_(failstateHandle:queryerror[], errnumdata[], size)
{
 if (
failstate)
 {
 new 
szQuery[256]
 
MySqlX_ThreadErrorszQueryerrorerrnumfailstate17 )
 return 
PLUGIN_HANDLED
 
}

 new 
result SQL_AffectedRows(query);
 if(
result 0)
 {
 
log_amx("[AMXBans] expired bans %d"result);
 return 
PLUGIN_HANDLED
 
}
 
 return 
PLUGIN_HANDLED


y en "amxbans_main.sma" fui hasta la funcion "public event_new_round()" y luego del for agregue esto

Código PHP:
update_bans() 

Es muy probable que haya mil maneras mejor de hacerlo o mas prolijas
“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.
Responder
#9
(02/09/2022, 05:40 PM)HK-416 escribió: Yo ni lo probe ni nada lo hice asi a lo rapido y es posible que algo me quede mal

Eso lo puse en "check_player.inl"
Código PHP:
public update_bans()
{
 new 
pquery[1024]
 
formatex(pquery,charsmax(pquery),"UPDATE `%s%s` SET expired=1 WHERE expired = 0 AND ban_created > 0 AND ban_length > 0 AND (ban_created + (ban_length * 60)) < UNIX_TIMESTAMP(NOW())"g_dbPrefixtbl_bans);
 
SQL_ThreadQuery(g_SqlX"update_bans_"pquery)
}

public 
update_bans_(failstateHandle:queryerror[], errnumdata[], size)
{
 if (
failstate)
 {
 new 
szQuery[256]
 
MySqlX_ThreadErrorszQueryerrorerrnumfailstate17 )
 return 
PLUGIN_HANDLED
 
}

 new 
result SQL_AffectedRows(query);
 if(
result 0)
 {
 
log_amx("[AMXBans] expired bans %d"result);
 return 
PLUGIN_HANDLED
 
}
 
 return 
PLUGIN_HANDLED


y en "amxbans_main.sma" fui hasta la funcion "public event_new_round()" y luego del for agregue esto

Código PHP:
update_bans() 

Es muy probable que haya mil maneras mejor de hacerlo o mas prolijas

funciono, pero como es un ctf y las rondas son infinitas (tuve que lanzar un restart) tengo que crear un public que se llame tantos minutos para que mande a esa función no?
Pawn Básico no critiquen xD  Approved

Responder
#10
yo crearia un TASK_CHECK_BANS el cual se llame en el plugin_init() set_task(300.0, "funcion", TASK_CHECK_BANS, _, _, "b") asi se llama cada 5 minutos
“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.
Responder
#11
(02/09/2022, 08:52 PM)HK-416 escribió: yo crearia un TASK_CHECK_BANS el cual se llame en el plugin_init() set_task(300.0, "funcion", TASK_CHECK_BANS, _, _, "b") asi se llama cada 5 minutos

gracias, lo hare
Pawn Básico no critiquen xD  Approved

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)