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=600526)



[Вопрос] Повтор текста в чате - wabbajek - 09.02.2016

Возникла проблема с чатом, в чат выводит все сообщения по несколько раз:

Код:
http://i.imgur.com/lW6F8Ra.jpg
http://i.imgur.com/QjpTpD3.jpg
http://i.imgur.com/46g0ibU.jpg
http://i.imgur.com/tmcdSo0.jpg
Кодировочка помялась слегка
Код OnPlayerText
PHP код:
public OnPlayerText(playerid, text[])
{
    new 
sendername[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, sendername, sizeof(sendername));
    new 
string[156];
    new 
ip[26];
    new 
giveplayer[MAX_PLAYER_NAME];
    
GetPlayerIp(playerid,ip,sizeof(ip));
    if(
PlayerInfo[playerid][pLogin] == 0)
    {
        
SendClientMessage(playerid,COLOR_WHITE,"{ffffff}• {AC0000}[Оoeбea] {ffffff}Вu нa aвoо?eзовaнu!");
        return 
0;
    }
    if(
IsIP(text) || CheckString(text))
    {
        
PlayerInfo[playerid][pMuteTime] = 10800;
        
PlayerInfo[playerid][pMuted] = 1;
        
format(string, sizeof(string), "%s: %s",sendername,text);
        
ABroadCast(COLOR_LIGHTRED,string,1);
        
format(string, sizeof(string), "ID: %d | IP: [%s]",playerid,ip);
        
ABroadCast(COLOR_LIGHTRED,string,1);
        
format(string,sizeof(string), "[Security] Вu iолучeлe бaн чaoa нa 3 чana /mm - ?aiо?o");
        
SendClientMessage(playerid, COLOR_LIGHTRED, string);
        
SetPlayerChatBubble(playerid, "зaoeнуo(a)",COLOR_PURPLE,30.0,10000);
        return 
false;
    }
    if(
TalkingLive[playerid] == 1)
    {
        if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
        
format(string, sizeof(string), "< [Oaл] SF News > %s: %s", sendername, text);
        
OOCNews(COLOR_GREEN, string);
        
Flood[playerid] = 2;
    }
    if(
TalkingLivels[playerid] == 1)
    {
        if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
        
format(string, sizeof(string), "< [Oaл] LS News %s: %s", sendername, text);
        
LSNews(0x0073B7AA, string);
        
Flood[playerid] = 2;
    }
    if(
TalkingLivelv[playerid] == 1)
    {
        if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
        
format(string, sizeof(string), "< [Oaл] LV News > %s: %s", sendername, text);
        
LVNews(TEAM_CYAN_COLOR, string);
        
Flood[playerid] = 2;
    }
    if(
TalkingLive[playerid] == 2)
    {
        if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
        if(
PlayerInfo[playerid][pMember] == 9)
        {
            
format(string, sizeof(string), "< SF News > Вaдуueй %s: %s", sendername, text);
            
OOCNews(COLOR_GREEN, string);
            
Flood[playerid] = 2;
            return 
false;
        }
        else
        {
            
format(string, sizeof(string), "< SF News > Aоnoь %s: %s", sendername, text);
            
OOCNews(COLOR_GREEN, string);
            
Flood[playerid] = 2;
            return 
false;
        }
    }
    if(
TalkingLivels[playerid] == 2)
    {
        
GetPlayerName(playerid, sendername, sizeof(sendername));
        if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
        if(
PlayerInfo[playerid][pMember] == 16)
        {
            
format(string, sizeof(string), "< LS News > Вaдуueй %s: %s", sendername, text);
            
LSNews(0x0073B7AA, string);
            
Flood[playerid] = 2;
            return 
false;
        }
        else
        {
            
format(string, sizeof(string), "< LS News > Aоnoь %s: %s", sendername, text);
            
LSNews(0x0073B7AA, string);
            
Flood[playerid] = 2;
            return 
false;
        }
    }
    if(
TalkingLivelv[playerid] == 2)
    {
        
GetPlayerName(playerid, sendername, sizeof(sendername));
        if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
        if(
PlayerInfo[playerid][pMember] == 20)
        {
            
format(string, sizeof(string), "< LV News > Вaдуueй %s: %s", sendername, text);
            
LVNews(TEAM_CYAN_COLOR, string);
            return 
false;
        }
        else
        {
            
format(string, sizeof(string), "< LV News > Aоnoь %s: %s", sendername, text);
            
LVNews(TEAM_CYAN_COLOR, string);
            return 
false;
        }
    }
    if(
Tel[playerid] == 1)
    {
        if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
        
format(string, sizeof(string), "[Oaлaфон] %s: %s", sendername, text);
        
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
        return 
false;
    }
    if(
Mobile[playerid] != 999)
    {
        if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
        
format(string, sizeof(string), "[Oaлaфон] %s: %s", sendername, text);
        
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
        if(
IsPlayerConnected(Mobile[playerid]) && Mobile[Mobile[playerid]] == playerid) SendClientMessage(Mobile[playerid], COLOR_YELLOW,string);
        return 
false;
    }
    if(
PEfir[playerid] != 255)
    {
        if(
PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pLeader] == 9)
        {
            if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!");return false; }
            
format(string, sizeof(string), "< SF News > %s: %s", sendername,text);
            
OOCNews(COLOR_GREEN, string);
            
Flood[playerid] = 2;
        }
        if(
PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
        {
            if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
            
format(string, sizeof(string), "< LV News > %s: %s", sendername,text);
            
LVNews(TEAM_CYAN_COLOR, string);
            
Flood[playerid] = 2;
        }
        if(
PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16)
        {
            if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
            
format(string, sizeof(string), "< LS News > %s: %s", sendername,text);
            
LSNews(0x0073B7AA, string);
            
Flood[playerid] = 2;
        }
        if(
Pefir[playerid] == 1)
        {
            if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
            
format(string, sizeof(string), "< SF News > %s: %s", sendername,text);
            
OOCNews(COLOR_GREEN, string);
            
Flood[playerid] = 2;
        }
        if(
Pefir[playerid] == 2)
        {
            if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
            
format(string, sizeof(string), "< LS News > %s: %s", sendername,text);
            
LSNews(0x0073B7AA, string);
            
Flood[playerid] = 2;
        }
        if(
Pefir[playerid] == 3)
        {
            if(
PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa!"); return false; }
            
format(string, sizeof(string), "< LV News > %s: %s", sendername,text);
            
LSNews(TEAM_CYAN_COLOR, string);
            
Flood[playerid] = 2;
        }
        return 
false;
    }
    if(
strcmp(text, "i?eвao", true) == 0 || strcmp(text, "eу", true) == 0 || strcmp(text, "oaй", true) == 0|| strcmp(text, "q", true) == 0 || strcmp(text, "re", true) == 0 || strcmp(text, "ghbdtn", true) == 0)
    {
        new 
suspect = GetClosestPlayer(playerid);
        
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
        
GetPlayerName(playerid, sendername, sizeof(sendername));
        if(
GetDistanceBetweenPlayers(playerid,suspect) < 2 && !IsPlayerInAnyVehicle(suspect) && !IsPlayerInAnyVehicle(playerid))
        {
            if(
PlayerInfo[playerid][pMember] == PlayerInfo[suspect][pMember])
            {
                
format(string, sizeof(string), "%s iоaaл(a) ?уeу %s'у", sendername ,giveplayer);
                
ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                
ApplyAnimation(playerid, "GANGS", "hndshkfa",4.0,0,0,0,0,0,1);
                
ApplyAnimation(suspect, "GANGS", "hndshkfa",4.0,0,0,0,0,0,1);
                return 
false;
            }
        }
        switch(
PlayerInfo[playerid][pMember])
        {
        case 
13:
            {
                
format(string,sizeof(string), "iоeaзaл(a) ?aniaльцовeу Los Santos Vagos Gang");
                
SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);
                
format(string, sizeof(string), "%s iоeaзaл(a) ?aniaльцовeу Los Santos Vagos Gang", sendername);
                
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                
ApplyAnimation(playerid, "GHANDS", "gsign1LH",4.0,0,0,0,0,0,1);
                return 
false;
            }
        case 
15:
            {
                
format(string,sizeof(string), "iоeaзaл(a) ?aniaльцовeу Grove Street Gang");
                
SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);
                
format(string, sizeof(string), "%s iоeaзaл(a) ?aniaльцовeу Grove Street Gang", sendername);
                
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                
ApplyAnimation(playerid, "GHANDS", "gsign1LH",4.0,0,0,0,0,0,1);
                return 
false;
            }
        case 
17:
            {
                
format(string,sizeof(string), "iоeaзaл(a) ?aniaльцовeу Varios Los Aztecas Gang");
                
SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);
                
format(string, sizeof(string), "%s iоeaзaл(a) ?aniaльцовeу Varios Los Aztecas Gang", sendername);
                
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                
ApplyAnimation(playerid, "GHANDS", "gsign1LH",4.0,0,0,0,0,0,1);
                return 
false;
            }
        case 
12:
            {
                
format(string,sizeof(string), "iоeaзaл(a) ?aniaльцовeу The Ballas Gang");
                
SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);
                
format(string, sizeof(string), "%s iоeaзaл(a) ?aniaльцовeу The Ballas Gang", sendername);
                
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                
ApplyAnimation(playerid, "GHANDS", "gsign1LH",4.0,0,0,0,0,0,1);
                return 
false;
            }
        case 
18:
            {
                
format(string,sizeof(string), "iоeaзaл(a) ?aniaльцовeу The Rifa Gang");
                
SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);
                
format(string, sizeof(string), "%s iоeaзaл(a) ?aniaльцовeу The Rifa Gang", sendername);
                
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                
ApplyAnimation(playerid, "GHANDS", "gsign1LH",4.0,0,0,0,0,0,1);
                return 
false;
            }
        }
    }
    if(
strcmp(text, "эй", true) == 0 || strcmp(text, "э", true) == 0 || strcmp(text, "эй блy", true) == 0|| strcmp(text, "блyoь", true) == 0 || strcmp(text, "Блyдь", true) == 0 || strcmp(text, "iлy", true) == 0)
    {
        
SetPlayerChatBubble(playerid, "возiуuaaony",COLOR_PURPLE,30.0,10000);
        
ApplyAnimation(playerid, "PED", "fucku",4.0,0,0,0,0,0,1);
        return 
false;
    }
    if(
strcmp(text, "iдa", true) == 0 || strcmp(text, "eдeоo", true) == 0 || strcmp(text, "nуea", true) == 0 || strcmp(text, "ieд?", true) == 0 )
    {
        
SetPlayerChatBubble(playerid, "Facepalm", COLOR_PURPLE, 30.0, 10000);
        
ApplyAnimation(playerid, "MISC", "plyr_shkhead",4.0,0,0,0,0,0,1);
        return 
false;
    }
    else if(
strcmp(text, "xD", true) == 0 || strcmp(text, "xd", true) == 0 || strcmp(text, ":В", true) == 0 || strcmp(text, ":в", true) == 0 )
    {
        
format(string, sizeof(string), "%s niaёony", sendername);
        
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        
SetPlayerChatBubble(playerid, "niaёony", COLOR_PURPLE, 30.0, 10000);
        return 
false;
    }
    else if(
strcmp(text, "чВ", true) == 0 || strcmp(text, "oД", true) == 0 || strcmp(text, "oд", true) == 0 || strcmp(text, "xDD", true) == 0)
    {
        
format(string, sizeof(string), "%s вaлyaony оo niaoa", sendername);
        
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        
SetPlayerChatBubble(playerid, "вaлyaony оo niaoa",COLOR_PURPLE,30.0,10000);
        return 
false;
    }
    else if(
strcmp(text, ")", true) == 0 || strcmp(text, "))", true) == 0)
    {
        
format(string, sizeof(string), "%s улuбaaony", sendername);
        
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        
SetPlayerChatBubble(playerid, "улuбaaony",COLOR_PURPLE,30.0,10000);
        return 
false;
    }
    else if(
strcmp(text, "(", true) == 0 || strcmp(text, "((", true) == 0)
    {
        
format(string, sizeof(string), "%s a?уnoeo", sendername);
        
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        
SetPlayerChatBubble(playerid, "a?уnoeo",COLOR_PURPLE,30.0,10000);
        return 
false;
    }
    else if(
strcmp(text, ":D", true) == 0)
    {
        
format(string, sizeof(string), "%s oоoочao во вanь aолоn", sendername);
        
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        
SetPlayerChatBubble(playerid, "oоoочao во вanь aолоn",COLOR_PURPLE,30.0,10000);
        return 
false;
    }
    if(
realchat)
    {
        if(
Flood[playerid] > 0)
        {
            
SendClientMessage(playerid,0xFFD5BBAA, "{ffffff}• {AC0000}[Оoeбea] {ffffff}Iоaaлуйnoa, нa флудeoa.");
            return 
false;
        }
        if(
PlayerInfo[playerid][pLogin] == 0)
        {
            return 
false;
        }
        if(
PlayerInfo[playerid][pLogin] == 0)
        {
            return 
false;
        }
        if(
PlayerInfo[playerid][pMuted] == 1)
        {
            
format(string, sizeof(string), "{ffffff}• {AC0000}[Оoeбea] {ffffff}У Вan бaн чaoa! До nнyoey: %d naeунд(u)",PlayerInfo[playerid][pMuteTime]);
            
SendClientMessage(playerid, COLOR_LIGHTRED, string);
            return 
false;
        }
        if(
PlayerInfo[playerid][pLevel] <= 1)
        {
            new 
succ;
            for(new 
i; i<strlen(text); i++) if(PText[playerid][i] == text[i]) succ++;
            if(
succ == strlen(text))
            {
                
SendClientMessage(playerid,0xFFD5BBAA, "{ffffff}• {AC0000}[Оoeбea] {ffffff}Iоaaлуйnoa, нa флудeoa.");
                return 
false;
            }
        }
        
strmid(PText[playerid],text,0,256,256);
        if(
GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
        {
            switch(
PlayerInfo[playerid][pMember])
            {
            case 
12: ApplyAnimation(playerid,"GANGS","prtial_gngtlkH",4.1,0,1,1,1,1,1);
            case 
15: ApplyAnimation(playerid,"GANGS","prtial_gngtlkG",4.1,0,1,1,1,1,1);
            case 
17: ApplyAnimation(playerid,"GANGS","prtial_gngtlkB",4.1,0,1,1,1,1,1);
            case 
18,13: ApplyAnimation(playerid,"GANGS","prtial_gngtlkF",4.1,0,1,1,1,1,1);
            default: 
ApplyAnimation(playerid, "PED", "IDLE_CHAT",4.1,0,1,1,1,1,1);
            }
            
SetTimerEx("ClearAnim", 2400, false, "d", playerid);
        }
        
GetPlayerName(playerid, sendername, sizeof(sendername));
        
format(string, sizeof(string), "- %s[%d]: %s", sendername,playerid, text);
        
SetPlayerChatBubble(playerid, text, 0x6495EDFF, 20.0, 10000);
        
ProxDetector(20.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
        
Flood[playerid] = 2;
        return 
false;
    }
    return 
false;
} 
Вот logi:
Код:
[13:22:23] [chat] [Alexandr_Woozie]: asd // В игре отображало 4 таких сообщения в чат
[13:22:23] Такие пироги 39
[13:22:23] Такие пироги 40
PHP код:
        strmid(PText[playerid],text,0,256,256);
        
printf("Такие пироги 39");
        if(
GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
        {
            switch(
PlayerInfo[playerid][pMember])
            {
            case 
12: ApplyAnimation(playerid,"GANGS","prtial_gngtlkH",4.1,0,1,1,1,1,1);
            case 
15: ApplyAnimation(playerid,"GANGS","prtial_gngtlkG",4.1,0,1,1,1,1,1);
            case 
17: ApplyAnimation(playerid,"GANGS","prtial_gngtlkB",4.1,0,1,1,1,1,1);
            case 
18,13: ApplyAnimation(playerid,"GANGS","prtial_gngtlkF",4.1,0,1,1,1,1,1);
            default: 
ApplyAnimation(playerid, "PED", "IDLE_CHAT",4.1,0,1,1,1,1,1);
            }
            
SetTimerEx("ClearAnim", 2400, false, "d", playerid);
        }
        
GetPlayerName(playerid, sendername, sizeof(sendername));
        
printf("Такие пироги 40");
        
format(string, sizeof(string), "- %s[%d]: %s", sendername,playerid, text);
        
SetPlayerChatBubble(playerid, text, 0x6495EDFF, 20.0, 10000);
        
ProxDetector(20.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
        
Flood[playerid] = 2;
        return 
false; 



Re: [Вопрос] Повтор текста в чате - wabbajek - 09.02.2016

Да что, никто не встречался с такой проблемой? :с


Re: [Вопрос] Повтор текста в чате - stabker - 09.02.2016

Покажите код ProxDetector.


Re: [Вопрос] Повтор текста в чате - Stepashka - 10.02.2016

Quote:
Originally Posted by wabbajek
Посмотреть сообщение
Да что, никто не встречался с такой проблемой? :с
Встречались, но не забывайте что люди не обязаны тратить своё время на ваши проблемы, так что проявите терпение и подождите.
Quote:
Originally Posted by stabker
Посмотреть сообщение
Покажите код ProxDetector.
Вы форумом случайно не ошиблись с такими вопросами?
Эта функция времён появления мода godfather.


Re: [Вопрос] Повтор текста в чате - eakwarp - 10.02.2016

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Эта функция времён появления мода godfather.
Есть призрачный шанс, что она была переписана в современный вид. )


Re: [Вопрос] Повтор текста в чате - stabker - 10.02.2016

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Встречались, но не забывайте что люди не обязаны тратить своё время на ваши проблемы, так что проявите терпение и подождите.
Вы форумом случайно не ошиблись с такими вопросами?
Эта функция времён появления мода godfather.
Я знаю, что это за функция. Мне интересно, как она у тс реализована.