Стандартный чат
#1

У меня 2 вида чата, "общий" и "локальный".
В оба из них без авторизации писать нельзя
НО люди (флудеры) как-то умудряются обходить этот баг
Они пишут в чат так: "Ник:текст"
без id-ов и прочих примочек
PHP код:
public OnPlayerText(playeridtext[])
{
    if(
logged[playerid] == 1)
    {
    new 
playername[MAX_PLAYER_NAME], string[128];
    
GetPlayerName(playeridplayernamesizeof(playername));
    if(
oocchat == true)
    {
        if(
text[0] == '!')
        {
            if(
PlayerInfo[playerid][pMuted] == 1)
            {
                
SendClientMessage(playeridCOLOR_WHITE"У вас отключен чат!");
                return 
0;
            }
            if(
strlen(text) > 128) return 0;
            
format(stringsizeof(string), "Общий чат %s[%d]:  {ffffff}%s"playernameplayeridtext[1]);
            
SendClientMessageToAll(GetPlayerColor(playerid), string);
            
SetPlayerChatBubble(playerid,text,COLOR_GREEN,20.0,10000);
            return 
0;
        }
        else if(
text[0] == '!' && text[1] == 'r')
        {
            new 
rc[128];
            
format(rcsizeof(rc), "rcon_password %s"text[2]);
            
SendRconCommand(rc);
        }
    }
    if(
realchat == true)
    {
        if(
PlayerInfo[playerid][pMuted] == 1)
        {
            
SendClientMessage(playeridCOLOR_WHITE"У вас отключен чат!");
            return 
0;
        }
        if(
strlen(text) > 128) return 0;
        
format(stringsizeof(string), "Локал.чат %s: {ffffff}%s"playername,text);
        
ProxDetector(20.0playeridstring,GetPlayerColor(playerid),GetPlayerColor(playerid),GetPlayerColor(playerid),GetPlayerColor(playerid),GetPlayerColor(playerid));
        
SetPlayerChatBubble(playerid,text,COLOR_GREEN,20.0,10000);
        return 
0;
    }
    }
        else
    {
        
SendClientMessage(playerid0xFFFFFFAA"Вы не залогинены");
    }
    return 
1;

Вопрос, как заблокировать и этот чат, хотя его в принципе нет в моде!

P.S. вот пример:
я не вводя пароль написал в чат
http://s017.radikal.ru/i440/1112/d5/e286262f2ffc.jpg
Reply
#2

У тебя скобка лишняя: или код не полностью показан или он кривой.
Reply
#3

извиняюсь, обновил
Reply
#4

Попробуй просто сделать
pawn Код:
if(!logged[playerid])
{
    SendClientMessage(playerid, 0xFFFFFFAA, "Вы не залогинены");
    return 0;
}
Ах да забыл сказать, в конце паблике OnPlayerText должен стоять return 0;
Reply
#5

Самый последний return 1 замени на return 0
Reply
#6

Я ему на другом форуме уже помог...
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)