Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для ExoDe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2015
    Сообщений
    10
    Репутация:
    0 ±

    Помогите с bigears

    Всем привет. Такая проблема. Когда включаю bigears (видимость чата не смотря на расстояние) и если я пишу в чат пишет два раза, а если возле меня стоит ещё кто то то 4 раза итд, но команда работает норм. Помогите.
    http://rghost.ru/8gwzKJfWh.view

    Вот чат

    PHP код:
    public OnPlayerText(playeridtext[])
    {
        new 
    idx;
        new 
    result[300],string[120];
        new 
    ip[MAX_PLAYER_NAME];
        
    GetPlayerIp(playeridipsizeof(ip));
        new 
    hourminutesecond;
        
    result bigstr(textidx);
        if(!
    strlen(result))return 0;
        new 
    playername[64];
        
    GetPlayerName(playeridplayernamesizeof(playername));
        if(
    strfindresult ".tk" true ) != -||  strfindresult ".com" true ) != -||  strfindresult "3dn.ru" true ) != -||  strfindresult ".ru" true ) != -||  strfindresult ".net" true ) != -1
                
    ||  strfindresult ":78" true ) != -||  strfindresult "*ru" true ) != -||  strfindresult "172." true ) != -||  strfindresult "^77" true ) != -1
                
    ||  strfindresult ":77" true ) != -||  strfindresult ":55" true ) != -||  strfindresult ":44" true ) != -||  strfindresult "samp-stories" true ) != -1
                 
    ||  strfindresult ":7777" true ) != -||  strfindresult ": 7777" true ) != -||  strfindresult "_ 7777" true ) != -||  strfindresult ". ru" true ) != -1
                  
    ||  strfindresult ".  ru" true ) != -||  strfindresult ".    ru" true ) != -||  strfindresult "(точка)" true ) != -||  strfindresult "_ ru" true ) != -1
                   
    ||  strfindresult "новый сервер" true ) != -1  ||  strfindresult "_77" true ) != -||  strfindresult "(пробел)" true ) != -1)
        {
            
    format(stringsizeof(string), "[Анти-реклама]:(IP:%s)%s[%d]: %s",ip,playername,playerid,result);
            
    ABroadCast(COLOR_YELLOW,string,1);
            return 
    0;
        }
        if(
    OOCOnline[playerid] == 0)
    {
        
    gettime(hourminutesecond);
        
    GetPlayerName(playeridplayernamesizeof(playername));
        if(
    Player[playerid][pMuteTime] < 1)
        {
            if(
    Masked[playerid] > 0)
            {
                
    format(stringsizeof(string), "{006400}Незнакомец говорит:{FFFFFF} %s",result);
            }
            else
            {
                
    format(stringsizeof(string), "{006400}%s[%d] говорит:{FFFFFF} %s",playername,playerid,result);
            }
            foreach(new 
    iPlayer)
            {
                if(
    Player[i][pAdmin] > && BigEar[i] == 1)
                {
                    
    SendClientMessage(iCOLOR_PURPLEstring);
                }
            }
            
    ProxDetector(25.0playerid,string,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN,COLOR_GREEN);
            return 
    0;
        }
        else
        {
            
    format(stringsizeof(string),"[ОШИБКА] {ffffff}Ты был заткнут администрацией. Попробуй через %s.",ConvertSeconds(Player[playerid][pMuteTime]));
            
    SendClientMessage(playerid,COLOR_RED,string);
            return 
    0;
        }
    }
            return 
    1;


  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Опиши суть системы, что она должна делать?

  3. #3
    Аватар для ExoDe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2015
    Сообщений
    10
    Репутация:
    0 ±
    Она должна администратору по команде показывать чат игроков, не зависимо от расстояния. Она работает, но если я пишу в чат то она показывает 2 раза

    - - - Добавлено - - -

    Я думаю найдётся кто мне поможет.

  4. #4
    Аватар для Wise
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.10.2014
    Сообщений
    148
    Репутация:
    37 ±
    PHP код:
    foreach(new iPlayer)
    {
    if(
    Player[i][pAdmin] > && BigEar[i] == 1)
    {
    SendClientMessage(iCOLOR_PURPLEstring);
    }

    Если я не ошибаюсь, то у тебя в самой функции "ProxDetector" должна стоять проверка на BigEar.
    Поищи в моде "stock ProxDetector" или "public ProxDetector" (без кавычек). Если это проверка там
    есть, то смело удаляй код, который находится выше. Обязательно проверь.

  5. #5
    Аватар для ExoDe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2015
    Сообщений
    10
    Репутация:
    0 ±
    Цитата Сообщение от Wise Посмотреть сообщение
    PHP код:
    foreach(new iPlayer)
    {
    if(
    Player[i][pAdmin] > && BigEar[i] == 1)
    {
    SendClientMessage(iCOLOR_PURPLEstring);
    }

    Если я не ошибаюсь, то у тебя в самой функции "ProxDetector" должна стоять проверка на BigEar.
    Поищи в моде "stock ProxDetector" или "public ProxDetector" (без кавычек). Если это проверка там
    есть, то смело удаляй код, который находится выше. Обязательно проверь.
    Нету проверки.

  6. #6
    Аватар для ExoDe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2015
    Сообщений
    10
    Репутация:
    0 ±
    Ну что, кто поможет?

  7. #7
    Аватар для ExoDe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2015
    Сообщений
    10
    Репутация:
    0 ±
    Народ, не ужели нету таких кто мне поможет?

  8. #8
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    ProxDetector выложите.

  9. #9
    Аватар для ExoDe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2015
    Сообщений
    10
    Репутация:
    0 ±
    PHP код:
    public ProxDetector(Float:radiplayeridstring[],col1,col2,col3,col4,col5)
    {
        if(
    IsPlayerConnected(playerid))
        {
            new 
    Float:posxFloat:posyFloat:posz;
            new 
    Float:oldposxFloat:oldposyFloat:oldposz;
            new 
    Float:tempposxFloat:tempposyFloat:tempposz;
            
    GetPlayerPos(playeridoldposxoldposyoldposz);
            
    //for(new i = 0; i < MAX_PLAYERS; i++)
            
    foreach(new iPlayer)
            {
                if(
    IsPlayerConnected(i))
                {
                    
    GetPlayerPos(iposxposyposz);
                    
    tempposx = (oldposx -posx);
                    
    tempposy = (oldposy -posy);
                    
    tempposz = (oldposz -posz);
                    if (((
    tempposx radi/16) && (tempposx > -radi/16)) && ((tempposy radi/16) && (tempposy > -radi/16)) && ((tempposz radi/16) && (tempposz > -radi/16)))
                    {
                        
    SendClientMessage(icol1string);
                    }
                    else if (((
    tempposx radi/8) && (tempposx > -radi/8)) && ((tempposy radi/8) && (tempposy > -radi/8)) && ((tempposz radi/8) && (tempposz > -radi/8)))
                    {
                        
    SendClientMessage(icol2string);
                    }
                    else if (((
    tempposx radi/4) && (tempposx > -radi/4)) && ((tempposy radi/4) && (tempposy > -radi/4)) && ((tempposz radi/4) && (tempposz > -radi/4)))
                    {
                        
    SendClientMessage(icol3string);
                    }
                    else if (((
    tempposx radi/2) && (tempposx > -radi/2)) && ((tempposy radi/2) && (tempposy > -radi/2)) && ((tempposz radi/2) && (tempposz > -radi/2)))
                    {
                        
    SendClientMessage(icol4string);
                    }
                    else if (((
    tempposx radi) && (tempposx > -radi)) && ((tempposy radi) && (tempposy > -radi)) && ((tempposz radi) && (tempposz > -radi)))
                    {
                        
    SendClientMessage(icol5string);
                    }
                }
            }
        }
    //not connected
        
    return 1;

    это?

  10. #10
    Аватар для Vinc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2015
    Сообщений
    8
    Репутация:
    0 ±
    Вот этот код в onplayertext у себя удали:
    PHP код:
    foreach(new iPlayer)
            {
                if(
    Player[i][pAdmin] > && BigEar[i] == 1)
                {
                    
    SendClientMessage(iCOLOR_PURPLEstring);
                }
            } 
    И в ProxDetector добавь проверку на активацию у админа возможности видить весь чат внезависимости от расстояния.

    т.е. замени свой ProxDetector на вот этот:
    PHP код:
    public ProxDetector(Float:radiplayeridstring[],col1,col2,col3,col4,col5)
    {
        if(
    IsPlayerConnected(playerid))
        {
            new 
    Float:posxFloat:posyFloat:posz;
            new 
    Float:oldposxFloat:oldposyFloat:oldposz;
            new 
    Float:tempposxFloat:tempposyFloat:tempposz;
            
    GetPlayerPos(playeridoldposxoldposyoldposz);
            
    //for(new i = 0; i < MAX_PLAYERS; i++)
            
    foreach(new iPlayer)
            {
                if(
    IsPlayerConnected(i))
                {
                    if(
    Player[i][pAdmin] < || !BigEar[i])
                    {
                        
    GetPlayerPos(iposxposyposz);
                        
    tempposx = (oldposx -posx);
                        
    tempposy = (oldposy -posy);
                        
    tempposz = (oldposz -posz);
                        if (((
    tempposx radi/16) && (tempposx > -radi/16)) && ((tempposy radi/16) && (tempposy > -radi/16)) && ((tempposz radi/16) && (tempposz > -radi/16)))
                        {
                            
    SendClientMessage(icol1string);
                        }
                        else if (((
    tempposx radi/8) && (tempposx > -radi/8)) && ((tempposy radi/8) && (tempposy > -radi/8)) && ((tempposz radi/8) && (tempposz > -radi/8)))
                        {
                            
    SendClientMessage(icol2string);
                        }
                        else if (((
    tempposx radi/4) && (tempposx > -radi/4)) && ((tempposy radi/4) && (tempposy > -radi/4)) && ((tempposz radi/4) && (tempposz > -radi/4)))
                        {
                            
    SendClientMessage(icol3string);
                        }
                        else if (((
    tempposx radi/2) && (tempposx > -radi/2)) && ((tempposy radi/2) && (tempposy > -radi/2)) && ((tempposz radi/2) && (tempposz > -radi/2)))
                        {
                            
    SendClientMessage(icol4string);
                        }
                        else if (((
    tempposx radi) && (tempposx > -radi)) && ((tempposy radi) && (tempposy > -radi)) && ((tempposz radi) && (tempposz > -radi)))
                        {
                            
    SendClientMessage(icol5string);
                        }
                    }
                    else
                    {
                        
    SendClientMessage(iCOLOR_PURPLEstring);
                    }
                }
            }
        }
    //not connected
        
    return 1;

    Последний раз редактировалось Vinc; 22.03.2015 в 08:25.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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