Cierran el juego a players [Servidor]
#51
Okay , pero como estaria bien ? ( code )

Ok , asique es lo mismo ? Bueno , Gracias Gran sonrisa
(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#52
(01/10/2014, 08:12 PM)K.- escribió: Proba :

Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>

#define PLUGIN "Plugin"
#define VERSION "1.0"
#define AUTHOR "Kira.-'"

new const RESTRINGED_CHARS[] = "%"


public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Add your code here...
}

public 
client_putinserver(id)
{
    static 
iname[32]
    
get_user_name(idnamecharsmax(name))
    
    for (
0sizeof(RESTRINGED_CHARS); i++)
    {
        if (
contain(nameRESTRINGED_CHARS[i]) != -1)
        {
            
server_cmd("kick #%d ^"Nombre invalidono se permite el simbolo %^""get_user_userid(id), RESTRINGED_CHARS[i])
            break
        }
    }


Obviamente adaptalo
pero solo sirve si entras con el nick y cuando estoy adentro me lo cambio? te saco. Igual la solucion es saca el xredirect , no voy a explicar como se hace el bug porque ya veo 8 millones de personas publicando.
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#53
entonces connect en ves des putinserver..
(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#54
(01/10/2014, 10:02 PM)K.- escribió: entonces connect en ves des putinserver..

No entiendo bien para q funciona el loop en el code.

Aca esta un code que hice para bloquear el caracter "*" para un miembro del foro en ingles: no serviria tambien?

Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>

#define PLUGIN "AutoBan"
#define VERSION "1.0"
#define AUTHOR "Autor"


public plugin_init()
    
register_plugin(PLUGINVERSIONAUTHOR)

public 
client_connect(id)
    
set_task(0.1"Ban"id)

public 
Ban(id)
{
    new 
name[31]
    
get_user_info(id"name"name30)
    
client_print(idprint_chat"name: %s"name)
    if(
contain(name"*") != -1)
    {
        new 
ip[50]
        
get_user_ip(idip49)
        
log_amx("Banned IP: %s"ip)
        
server_cmd("amx_addban ^"%s^" ^"0^""ip)
    }
        
    return 
PLUGIN_HANDLED

Responder
#55
Tenes que checkear el cambio de nombre . Como dije si entro me pongo * no me hace nada.
Se estan llendo del tema igual.
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#56
Creo que el tema en lo que iba se fue un poquito al carajo, ya buscare la forma de que el flaco no pueda expulsar mas a los jugadores.

Por ahora ya tengo fixeado lo que es %s en say y nick(en duda, pero lo testee y no los expulsa)

Seguire googleando tratando de encontrar los bugs que haya, así no pueden causar mas eso en mis servers o en los de otros.


/Cierren (?
Responder
#57
Fix: say_team @ %s%s%s%s

Este:

Código PHP:
#include <amxmodx>
#include <amxmisc>

new g_msgChannel

#define MAX_CLR 10

new g_Colors[MAX_CLR][] = {"COL_WHITE""COL_RED""COL_GREEN""COL_BLUE""COL_YELLOW""COL_MAGENTA""COL_CYAN""COL_ORANGE""COL_OCEAN""COL_MAROON"}
new 
g_Values[MAX_CLR][] = {{255255255}, {25500}, {02550}, {00255}, {2552550}, {2550255}, {0255255}, {227968}, {4589116}, {1034438}}
new 
Float:g_Pos[4][] = {{0.00.0}, {0.050.55}, {-1.00.2}, {-1.00.7}}

new 
amx_show_activity;
new 
g_AdminChatFlag ADMIN_CHAT;

public 
plugin_init()
{
    new 
admin_chat_id
    
    register_plugin
("Admin Chat"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("adminchat.txt")
    
register_dictionary("common.txt")
    
register_clcmd("say""cmdSayChat"ADMIN_CHAT"@[@|@|@][w|r|g|b|y|m|c]<text> - displays hud message")
    
register_clcmd("say_team""cmdSayAdmin"0"@<text> - displays message to admins")
    
register_concmd("amx_say""cmdSay"ADMIN_CHAT"<message> - sends message to all players")
    
admin_chat_id register_concmd("amx_chat""cmdChat"ADMIN_CHAT"<message> - sends message to admins")
    
register_concmd("amx_psay""cmdPsay"ADMIN_CHAT"<name or #userid> <message> - sends private message")
    
register_concmd("amx_tsay""cmdTsay"ADMIN_CHAT"<color> <message> - sends left side hud message to all players")
    
register_concmd("amx_csay""cmdTsay"ADMIN_CHAT"<color> <message> - sends center hud message to all players")
    
    
amx_show_activity get_cvar_pointer("amx_show_activity");
    
    if (
amx_show_activity == 0)
    {
        
amx_show_activity register_cvar("amx_show_activity""2");
    }
    
    new 
str[1]
    
get_concmd(admin_chat_idstr0g_AdminChatFlagstr0, -1)
}

public 
cmdSayChat(id)
{
    if (!
access(idg_AdminChatFlag))
    {
        return 
PLUGIN_CONTINUE
    
}
    
    new 
said[6], 0
    read_argv
(1said5)
    
    while (
said[i] == '@')
    {
        
i++
    }
    
    if (!
|| 3)
    {
        return 
PLUGIN_CONTINUE
    
}
    
    new 
message[192], 0
    read_args
(message191)
    
remove_quotes(message)
    
    switch (
said[i])
    {
        case 
'r'1
        
case 'g'2
        
case 'b'3
        
case 'y'4
        
case 'm'5
        
case 'c'6
        
case 'o'7
    
}
    
    new 
ni
    
if (a)
    {
        
n++
        
s++
    }
    while (
said[s] && isspace(said[s]))
    {
        
n++
        
s++
    }
    
    
    new 
name[32], authid[32], userid
    
    get_user_authid
(idauthid31)
    
get_user_name(idname31)
    
userid get_user_userid(id)
    
    
log_amx("Chat: ^"%s<%d><%s><>^" tsay ^"%s^""nameuseridauthidmessage[n])
    
log_message("^"%s<%d><%s><>^" triggered ^"amx_tsay^" (text ^"%s^") (color ^"%L^")"nameuseridauthidmessage[n], "en"g_Colors[a])
    
    if (++
g_msgChannel || g_msgChannel 3)
    {
        
g_msgChannel 3
    
}
    
    new 
Float:verpos g_Pos[i][1] + float(g_msgChannel) / 35.0
    
    set_hudmessage
(g_Values[a][0], g_Values[a][1], g_Values[a][2], g_Pos[i][0], verpos06.06.00.50.15 )
    
    switch ( 
get_pcvar_num(amx_show_activity) )
    {
        case 
34:
        {
            new 
maxpl get_maxplayers();
            for (new 
pl 1pl <= maxplpl++)
            {
                if (
is_user_connected(pl) && !is_user_bot(pl))
                {
                    if (
is_user_admin(pl))
                    {
                        
show_hudmessage(pl"%s :   %s"namemessage[n])
                        
client_print(plprint_notify"%s :   %s"namemessage[n])
                    }
                    else
                    {
                        
show_hudmessage(pl"%s"message[n])
                        
client_print(plprint_notify"%s"message[n])
                    }
                }
            }
        }
        case 
2:
        {
            
show_hudmessage(0"%s :   %s"namemessage[n])
            
client_print(0print_notify"%s :   %s"namemessage[n])
        }
        default:
        {
            
show_hudmessage(0"%s"message[n])
            
client_print(0print_notify"%s"message[n])
        }
    }

    return 
PLUGIN_HANDLED
}

public 
cmdSayAdmin(id)
{
    new 
said[2]
    
read_argv(1said1)

    if (
said[0] != '@')
        return 
PLUGIN_CONTINUE
    
    
new message[192], name[32], authid[32], userid
    
new players[32], inum
    
    read_args
(message191)
    
remove_quotes(message)
    
// bug fix
    
replace_all(message,191,"%",""
    
get_user_authid(idauthid31)
    
get_user_name(idname31)
    
userid get_user_userid(id)
    
    
log_amx("Chat: ^"%s<%d><%s><>^" chat ^"%s^""nameuseridauthidmessage[1])
    
log_message("^"%s<%d><%s><>^" triggered ^"amx_chat^" (text ^"%s^")"nameuseridauthidmessage[1])
    
    if (
is_user_admin(id))
        
format(message191"(%L) %s :  %s"id"ADMIN"namemessage[1])
    else
        
format(message191"(%L) %s :  %s"id"PLAYER"namemessage[1])
    
    
get_players(playersinum)
    
    for (new 
0inum; ++i)
    {
        
// dont print the message to the client that used the cmd if he has ADMIN_CHAT to avoid double printing
        
if (players[i] != id && get_user_flags(players[i]) & g_AdminChatFlag)
            
client_print(players[i], print_chat"%s"message)
    }
    
    
client_print(idprint_chat"%s"message)
    
    return 
PLUGIN_HANDLED
}

public 
cmdChat(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new message[192], name[32], players[32], inumauthid[32], userid
    
    read_args
(message191)
    
remove_quotes(message)
    
get_user_authid(idauthid31)
    
get_user_name(idname31)
    
userid get_user_userid(id)
    
get_players(playersinum)
    
    
log_amx("Chat: ^"%s<%d><%s><>^" chat ^"%s^""nameuseridauthidmessage)
    
log_message("^"%s<%d><%s><>^" triggered ^"amx_chat^" (text ^"%s^")"nameuseridauthidmessage)
    
    
format(message191"(ADMINS) %s :   %s"namemessage)
    
console_print(id"%s"message)
    
    for (new 
0inum; ++i)
    {
        if (
access(players[i], g_AdminChatFlag))
            
client_print(players[i], print_chat"%s"message)
    }
    
    return 
PLUGIN_HANDLED
}

public 
cmdSay(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new message[192], name[32], authid[32], userid
    
    read_args
(message191)
    
remove_quotes(message)
    
get_user_authid(idauthid31)
    
get_user_name(idname31)
    
userid get_user_userid(id)
    
client_print(0print_chat"%L"LANG_PLAYER"PRINT_ALL"namemessage)
    
console_print(id"%L"LANG_PLAYER"PRINT_ALL"namemessage)
    
    
log_amx("Chat: ^"%s<%d><%s><>^" say ^"%s^""nameuseridauthidmessage)
    
log_message("^"%s<%d><%s><>^" triggered ^"amx_say^" (text ^"%s^")"nameuseridauthidmessage)
    
    return 
PLUGIN_HANDLED
}

public 
cmdPsay(idlevelcid)
{
    if (!
cmd_access(idlevelcid3))
        return 
PLUGIN_HANDLED
    
    
new name[32]
    
read_argv(1name31)
    new 
priv cmd_target(idname0)
    
    if (!
priv)
        return 
PLUGIN_HANDLED
    
    
new length strlen(name) + 1
    
    get_user_name
(privname31); 
    
    new 
message[192], name2[32], authid[32], authid2[32], useriduserid2
    
    get_user_authid
(idauthid31)
    
get_user_name(idname231)
    
userid get_user_userid(id)
    
read_args(message191)
    
    if (
message[0] == '"' && message[length] == '"'// HLSW fix
    
{
        
message[0] = ' '
        
message[length] = ' '
        
length += 2
    
}
    
    
remove_quotes(message[length])
    
get_user_name(privname31)
    
    if (
id && id != priv)
        
client_print(idprint_chat"(%s) %s :   %s"namename2message[length])
    
    
client_print(privprint_chat"(%s) %s :   %s"namename2message[length])
    
console_print(id"(%s) %s :   %s"namename2message[length])
    
get_user_authid(privauthid231)
    
userid2 get_user_userid(priv)
    
    
log_amx("Chat: ^"%s<%d><%s><>^" psay ^"%s<%d><%s><>^" ^"%s^""name2useridauthidnameuserid2authid2message[length])
    
log_message("^"%s<%d><%s><>^" triggered ^"amx_psay^" against ^"%s<%d><%s><>^" (text ^"%s^")"name2useridauthidnameuserid2authid2message[length])
    
    return 
PLUGIN_HANDLED
}

public 
cmdTsay(idlevelcid)
{
    if (!
cmd_access(idlevelcid3))
        return 
PLUGIN_HANDLED
    
    
new cmd[16], color[16], color2[16], message[192], name[32], authid[32], userid 0
    
    read_argv
(0cmd15)
    new 
bool:tsay = (tolower(cmd[4]) == 't')
    
    
read_args(message191)
    
remove_quotes(message)
    
parse(messagecolor15)
    
    new 
found 00
    
new lang[3], langnum get_langsnum()
    
    for (new 
0MAX_CLR; ++i)
    {
        for (new 
0langnumj++)
        {
            
get_lang(jlang)
            
format(color215"%L"langg_Colors[i])
            
            if (
equali(colorcolor2))
            {
                
i
                found 
1
                
break
            }
        }
        if (
found == 1)
            break
    }
    
    new 
length found ? (strlen(color) + 1) : 0
    
    
if (++g_msgChannel || g_msgChannel 3)
        
g_msgChannel 3
    
    
new Float:verpos = (tsay 0.55 0.1) + float(g_msgChannel) / 35.0
    
    get_user_authid
(idauthid31)
    
get_user_name(idname31)
    
userid get_user_userid(id)
    
set_hudmessage(g_Values[a][0], g_Values[a][1], g_Values[a][2], tsay 0.05 : -1.0verpos06.06.00.50.15 )
    
    switch ( 
get_pcvar_num(amx_show_activity) )
    {
        case 
34:
        {
            new 
maxpl get_maxplayers();
            for (new 
pl 1pl <= maxplpl++)
            {
                if (
is_user_connected(pl) && !is_user_bot(pl))
                {
                    if (
is_user_admin(pl))
                    {
                        
show_hudmessage(pl"%s :   %s"namemessage[length])
                        
client_print(plprint_notify"%s :   %s"namemessage[length])
                    }
                    else
                    {
                        
show_hudmessage(pl"%s"message[length])
                        
client_print(plprint_notify"%s"message[length])
                    }
                }
            }
            
console_print(id"%s :  %s"namemessage[length])
        }
        case 
2:
        {
            
show_hudmessage(0"%s :   %s"namemessage[length])
            
client_print(0print_notify"%s :   %s"namemessage[length])
            
console_print(id"%s :  %s"namemessage[length])
        }
        default:
        {
            
show_hudmessage(0"%s"message[length])
            
client_print(0print_notify"%s"message[length])
            
console_print(id"%s"message[length])
        }
    }
    
    
log_amx("Chat: ^"%s<%d><%s><>^" %s ^"%s^""nameuseridauthidcmd[4], message[length])
    
log_message("^"%s<%d><%s><>^" triggered ^"%s^" (text ^"%s^") (color ^"%s^")"nameuseridauthidcmdmessage[length], color2)

    return 
PLUGIN_HANDLED


Lo puse en
Código PHP:
public cmdSayAdmin(id
entre
Código PHP:
remove_quotes(message
y
Código PHP:
get_user_authid(idauthid31

Eso fixea que no tiren a los admins, ahora bien, si tienes un chat color puedes hacer esto también.

En el
Código PHP:
public hook_say(id
encontramos esto
Código PHP:
read_args(message191)
        
remove_quotes(message
pues debajo ponemos:
Código PHP:
replace_all(message,191,"%"," "
// Esto es lo que fixea el %s%s%s%s que salen palabras chinas...y ya...si tu problema es el FLOOD, pues puede ser un fullupdate y para bloquearlo utiliza esto: https://forums.alliedmods.net/showthread.php?t=4407

También el lag puede ser producido por el fake players, pero eso se supone que en la nueva versión ya no sirve para nada, descartado.

Bueno cuentanos como te va!
Saludos!
Responder
#58
Bueno la cosa es asi existe una forma de pasar el bloqueo de nick y tambien el fix del % que ya viene apenas instalas el amx. Obiamente bugeandolo con muchas peticiones que alfinal se termina cambiando el nombre , pero eso solo hace cambiar el name , xredirect cuando una persona es redireccionada printea en el chat el nombre de la persona mas un texto largo por lo tanto si el nombre de la persona tiene %..... ya saben lo que pasa. Saca el xredirect , si tenes conocimientos modificalo.

Pd: te conteste por aca asi si otra persona tiene el mismo problema , puede.solucionarlo
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#59
#offtopic

Estais cambaindo de tema...

Borrar mensaje
Responder
#60
podrian poner los .sma ya fixeado para los que no entendemos nada ? :S
hasta donde llegamos hoy?
Responder
#61
Ya lo pasaron arriba 11naracus.


Encontre un bug, que sobrepasa los fixs del chat.

¿Que quiero decir con eso?

Si, que fixeado, se puede usar cualquier tipo de simbolo o demas ya bloqueado.


Voy a tratar de fixearlo y despues lo paso, para evitar que este muy publicamente, quizas mucho lo saben, pero no la mayoria y los daños que podrían causar.
Responder
#62
Que quilombo esto... en fin, leyendo el thread, no puedo entender cómo hacen para tagear "%" ...
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)