Raised This Month: $12 Target: $400
 3% 

Problème de serveur qui crash à l'aide d'une phrase dans le chat


  
 
 
Thread Tools Display Modes
Author Message
bastos59
Junior Member
Join Date: Jan 2012
Old 02-24-2013 , 10:54   Problème de serveur qui crash à l'aide d'une phrase dans le chat
#1

Bonjour à tous,

Je poste ce topique pour que vous m'aidiez à trouver une parade à une simple phrase qui se note dans le chat et qui fait complétement planter condition zero de toutes les personnes présentes sur le serveur. Cette phrase est la suivante : say "s s s s s s s s s s s s";retry. Il y a des caractères chinois entres les s que je ne donnerais pas car des petits malins pourraient s'amuser à utiliser cette phrase.
Bref, la première chose à laquelle j'ai pensé c'est de trouver un plugin block chat ou je bloquerais une phrase de mon choix, seulement les plugins que j'ai trouvé laisse quand même la phrase s'afficher et redonne juste un message en quoi il est interdit d'utiliser la phrase. Donc j'aimerais que vous fassiez, si vous le voulez bien, un plugin qui ne laisserait pas la phrase s'afficher ou me faire part d'une autre idée si vous en avez une.

PS : bien sûr dans les logs les caractères ne s'affichent pas et comme tout le monde sur le serveur plante et condition zero ce quitte avec. Aucune trace dans la console au lancement de cz, donc très gainant.
bastos59 is offline
bboygrun
CHOMP
Join Date: May 2010
Location: France
Old 02-24-2013 , 12:09   Re: Problème de serveur qui crash à l'aide d'une phrase dans le chat
#2

Passe nous ton plugin admin chat.
__________________
bboygrun is offline
bastos59
Junior Member
Join Date: Jan 2012
Old 02-24-2013 , 12:22   Re: Problème de serveur qui crash à l'aide d'une phrase dans le chat
#3

Le voici
Attached Files
File Type: sma Get Plugin or Get Source (adminchat.sma - 428 views - 10.9 KB)

Last edited by Arkshine; 02-24-2013 at 12:29. Reason: Pas besoin d'attacher le .AMXX
bastos59 is offline
bboygrun
CHOMP
Join Date: May 2010
Location: France
Old 02-24-2013 , 15:50   Re: Problème de serveur qui crash à l'aide d'une phrase dans le chat
#4

Non, je ne voulais pas parler de ce plugin là (je me suis mal exprimé), tu dois normalement avoir un autre plugin qui agit sur le chat, genre un plugin qui fait que tous tes admins parlent en vert.
__________________
bboygrun is offline
bastos59
Junior Member
Join Date: Jan 2012
Old 02-24-2013 , 16:00   Re: Problème de serveur qui crash à l'aide d'une phrase dans le chat
#5

J'ai l'admin chat color que voici . Merci pour tes réponses :)
Attached Files
File Type: sma Get Plugin or Get Source (admin_chat_colors.sma - 418 views - 10.4 KB)

Last edited by bastos59; 02-24-2013 at 16:00.
bastos59 is offline
bboygrun
CHOMP
Join Date: May 2010
Location: France
Old 02-24-2013 , 17:28   Re: Problème de serveur qui crash à l'aide d'une phrase dans le chat
#6

Bouh il est moche ce plugin :>.
Tu devrais regarder les admin chat colors existant dans la partie approuvée.

Voici quand même le fix ^^ :

PHP Code:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN         "Admin Chat Colors"
#define VERSION     "2.0"
#define AUTHOR         "Arion"

#define ACCESS_LEVEL    ADMIN_CHAT
#define ADMIN_LISTEN    ADMIN_BAN

new message[192]
new 
sayText
new teamInfo
new maxPlayers

new g_MessageColor
new g_NameColor
new g_AdminListen

new strName[191]
new 
strText[191]
new 
alive[11]

public 
plugin_init()
{
    
register_plugin (PLUGINVERSIONAUTHOR)
    
    
g_MessageColor register_cvar ("amx_color""2"// Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red

    
g_NameColor register_cvar ("amx_namecolor""6"// Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
    
    
g_AdminListen register_cvar ("amx_listen""1"// Set whether admins see or not all messages (Alive, dead and team-only)
    
    
    
sayText get_user_msgid ("SayText")
    
teamInfo get_user_msgid ("TeamInfo")
    
maxPlayers get_maxplayers()
    
    
    
register_message (sayText"avoid_duplicated")
    
    
register_clcmd ("amx_color""set_color"ACCESS_LEVEL"<color>")
    
register_clcmd ("amx_namecolor""set_name_color"ACCESS_LEVEL"<color>")
    
register_clcmd ("amx_listen""set_listen"ACCESS_LEVEL"<1 | 0>")
    
    
register_clcmd ("say""hook_say")
    
register_clcmd ("say_team""hook_teamsay")
}


public 
avoid_duplicated (msgIdmsgDestreceiver)
{
    return 
PLUGIN_HANDLED
}


public 
hook_say(id)
{
    
read_args (message191)
    
remove_quotes (message)
    
    if (
message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message"")) // Ignores Admin Hud Messages, Admin Slash commands, 
                                                   // Gungame commands and empty messages
        
return PLUGIN_CONTINUE
    
    replace_all
messagecharsmaxmessage ), "%s"" s" );
        
    new 
name[32]
    
get_user_name (idname31)
    
    new 
bool:admin false
    
    
if (get_user_flags(id) & ACCESS_LEVEL)
        
admin true
        
    
    
new isAlive
    
    
if (is_user_alive (id))
        {
            
isAlive 1
            alive 
"^x01"
        
}
    else
        {
            
isAlive 0
            alive 
"^x01*DEAD* "
        
}
    
    static 
color[10]
    

    
    if (
admin)
        {
            
// Name
            
switch (get_pcvar_num (g_NameColor))
                {
                    case 
1:
                        
format (strName191"%s%s"alivename)

                    case 
2:
                        
format (strName191"%s^x04%s"alivename)
                        
                    case 
3:
                        {
                            
color "SPECTATOR"
                            
format (strName191"%s^x03%s"alivename)
                        }
                        
                    case 
4:
                        {
                            
color "CT"
                            
format (strName191"%s^x03%s"alivename)
                        }

                    case 
5:
                        {
                            
color "TERRORIST"
                            
format (strName191"%s^x03%s"alivename)
                        }
                    
                    case 
6:
                        {
                            
get_user_team (idcolor9)
                                
                            
format (strName191"%s^x03%s"alivename)
                        }
                }
            
            
            
// Message
            
switch (get_pcvar_num (g_MessageColor))
                {
                    case 
1:    // Yellow
                        
format (strText191"%s"message)
                        
                    case 
2:    // Green
                        
format (strText191"^x04%s"message)
                        
                    case 
3:    // White
                        
{
                            
copy (color9"SPECTATOR")
                            
format (strText191"^x03%s"message)
                        }

                    case 
4:    // Blue
                        
{
                            
copy (color9"CT")
                            
format (strText191"^x03%s"message)
                        }
                        
                    case 
5:    // Red
                        
{
                            
copy (color9"TERRORIST")
                            
format (strText191"^x03%s"message)
                        }
                }
        }
    
    else     
// Player is not admin. Team-color name : Yellow message
        
{
            
get_user_team (idcolor9)
            
            
format (strName191"%s^x03%s"alivename)
            
            
format (strText191"%s"message)
        }

    
format (message191"%s^x01 :  %s"strNamestrText)
            
    
sendMessage (colorisAlive)    // Sends the colored message
    
    
return PLUGIN_CONTINUE
}


public 
hook_teamsay(id)
{
    new 
playerTeam get_user_team(id)
    new 
playerTeamName[19]
    
    switch (
playerTeam// Team names which appear on team-only messages
        
{
            case 
1:
                
copy (playerTeamName11"Terrorists")
                
            case 
2:
                
copy (playerTeamName18"Counter-Terrorists")
                
            default:
                
copy (playerTeamName9"Spectator")
        }
        
    
read_args (message191)
    
remove_quotes (message)
    
    if (
message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message"")) // Ignores Admin Hud Messages, Admin Slash commands, 
                                                   // Gungame commands and empty messages
        
return PLUGIN_CONTINUE

        
    
new name[32]
    
get_user_name (idname31)
    
    new 
bool:admin false
    
    
if (get_user_flags(id) & ACCESS_LEVEL)
        
admin true
        
    
    
new isAlive
    
    
if (is_user_alive (id))
        {
            
isAlive 1
            alive 
"^x01"
        
}
    else
        {
            
isAlive 0
            alive 
"^x01*DEAD* "
        
}
    
    static 
color[10]
    

    
    if (
admin)
        {
            
// Name
            
switch (get_pcvar_num (g_NameColor))
                {
                    case 
1:
                        
format (strName191"%s(%s) %s"aliveplayerTeamNamename)

                    case 
2:
                        
format (strName191"%s(%s) ^x04%s"aliveplayerTeamNamename)
                        
                    case 
3:
                        {
                            
color "SPECTATOR"
                            
format (strName191"%s(%s) ^x03%s"aliveplayerTeamNamename)
                        }
                        
                    case 
4:
                        {
                            
color "CT"
                            
format (strName191"%s(%s) ^x03%s"aliveplayerTeamNamename)
                        }

                    case 
5:
                        {
                            
color "TERRORIST"
                            
format (strName191"%s(%s) ^x03%s"aliveplayerTeamNamename)
                        }
                    
                    case 
6:
                        {
                            
get_user_team (idcolor9)
                                
                            
format (strName191"%s(%s) ^x03%s"aliveplayerTeamNamename)
                        }
                }
            
            
            
// Message
            
switch (get_pcvar_num (g_MessageColor))
                {
                    case 
1:    // Yellow
                        
format (strText191"%s"message)
                        
                    case 
2:    // Green
                        
format (strText191"^x04%s"message)
                        
                    case 
3:    // White
                        
{
                            
copy (color9"SPECTATOR")
                            
format (strText191"^x03%s"message)
                        }

                    case 
4:    // Blue
                        
{
                            
copy (color9"CT")
                            
format (strText191"^x03%s"message)
                        }
                        
                    case 
5:    // Red
                        
{
                            
copy (color9"TERRORIST")
                            
format (strText191"^x03%s"message)
                        }
                }
        }
    
    else     
// Player is not admin. Team-color name : Yellow message
        
{
            
get_user_team (idcolor9)
            
            
format (strName191"%s(%s) ^x03%s"aliveplayerTeamNamename)
            
            
format (strText191"%s"message)
        }
    
    
format (message191"%s ^x01:  %s"strNamestrText)
    
    
sendTeamMessage (colorisAliveplayerTeam)    // Sends the colored message
    
    
return PLUGIN_CONTINUE    
}


public 
set_color (idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
        
    
new arg[1], newColor
    read_argv 
(1arg1)
    
    
newColor str_to_num (arg)
    
    if (
newColor >= && newColor <= 5)
        {
            
set_cvar_num ("amx_color"newColor)
            
set_pcvar_num (g_MessageColornewColor)
    
            if (
get_pcvar_num (g_NameColor) != &&
                   ((
newColor == &&  get_pcvar_num (g_NameColor) != 3)
                 || (
newColor == &&  get_pcvar_num (g_NameColor) != 4)
                 || (
newColor == &&  get_pcvar_num (g_NameColor) != 5)))
                {
                    
set_cvar_num ("amx_namecolor"2)
                    
set_pcvar_num (g_NameColor2)
                }
        }
        
    return 
PLUGIN_HANDLED
}


public 
set_name_color (idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
        
    
new arg[1], newColor
    read_argv 
(1arg1)
    
    
newColor str_to_num (arg)
    
    if (
newColor >= && newColor <= 6)
        {
            
set_cvar_num ("amx_namecolor"newColor)
            
set_pcvar_num (g_NameColornewColor)
            
            if ((
get_pcvar_num (g_MessageColor) != 1
                
&& ((newColor == &&  get_pcvar_num (g_MessageColor) != 3)
                 || (
newColor == &&  get_pcvar_num (g_MessageColor) != 4)
                 || (
newColor == &&  get_pcvar_num (g_MessageColor) != 5)))
                 || 
get_pcvar_num (g_NameColor) == 6)
                {
                    
set_cvar_num ("amx_color"2)
                    
set_pcvar_num (g_MessageColor2)
                }
        }
    
    return 
PLUGIN_HANDLED
}


public 
set_listen (idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
        
    
new arg[1], newListen
    read_argv
(1arg1)
    
    
newListen str_to_num (arg)
    
    
set_cvar_num ("amx_listen"newListen)
    
set_pcvar_num (g_AdminListennewListen)
    
    return 
PLUGIN_HANDLED
}


public 
sendMessage (color[], alive)
{
    new 
teamName[10]
    
    for (new 
player 1player maxPlayersplayer++)
        {
            if (!
is_user_connected(player))
                continue

            if (
alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
                {
                    
get_user_team (playerteamName9)    // Stores user's team name to change back after sending the message
                    
                    
changeTeamInfo (playercolor)        // Changes user's team according to color choosen
                    
                    
writeMessage (playermessage)        // Writes the message on player's chat
                    
                    
changeTeamInfo (playerteamName)    // Changes user's team back to original
                
}
        }
}


public 
sendTeamMessage (color[], aliveplayerTeam)
{
    new 
teamName[10]
    
    for (new 
player 1player maxPlayersplayer++)
        {
            if (!
is_user_connected(player))
                continue

            if (
get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
                {
                    if (
alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
                        {
                            
get_user_team (playerteamName9)    // Stores user's team name to change back after sending the message
                            
                            
changeTeamInfo (playercolor)        // Changes user's team according to color choosen
                            
                            
writeMessage (playermessage)        // Writes the message on player's chat
                            
                            
changeTeamInfo (playerteamName)    // Changes user's team back to original
                        
}
                }
        }
}


public 
changeTeamInfo (playerteam[])
{
    
message_begin (MSG_ONEteamInfo_player)    // Tells to to modify teamInfo (Which is responsable for which time player is)
    
write_byte (player)                // Write byte needed
    
write_string (team)                // Changes player's team
    
message_end()                    // Also Needed
}


public 
writeMessage (playermessage[])
{
    
message_begin (MSG_ONEsayText, {000}, player)    // Tells to modify sayText (Which is responsable for writing colored messages)
    
write_byte (player)                    // Write byte needed
    
write_string (message)                    // Effectively write the message, finally, afterall
    
message_end ()                        // Needed as always

(Y'a juste replace_all( message, charsmax( message ), "%s", " s" ); à ajouter)
__________________
bboygrun is offline
bastos59
Junior Member
Join Date: Jan 2012
Old 02-25-2013 , 08:18   Re: Problème de serveur qui crash à l'aide d'une phrase dans le chat
#7

Je te remercie, le bug n'existe plus
bastos59 is offline
Fr33m@n
Veteran Member
Join Date: May 2008
Location: France Marne
Old 02-26-2013 , 06:12   Re: Problème de serveur qui crash à l'aide d'une phrase dans le chat
#8

Je te conseille ichat.
Fr33m@n is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 14:23.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode