Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±

    При нажатии на текстдрав выделяется фон, а не текст

    Здравствуйте пользователи Pro-Pawn проблема у меня с рекон функционалом когда включаешь мышь подсветка текста например Check>> у меня должно в дополнительном окне подсветка текст GM а у меня почему то подсветка всего бокса выдает как исправить Рекон Голубя знает кто исправить?
    PHP код:
        if(Spectate[playerid] && GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
        {
            new 
    Keys,ud,lr;
            
    GetPlayerKeys(playerid,Keys,ud,lr);

            if(
    LastReconClick[playerid][0] != udLastReconClick[playerid][0] = 0;
            if(
    LastReconClick[playerid][1] != lrLastReconClick[playerid][1] = 0;

            if(
    Spectate[playerid] && lr == KEY_LEFT && !LastReconClick[playerid][1])//Влево
            
    {
                
    LastReconClick[playerid][1] = lr;
                
    PlayerPlaySound(playerid10840.00.00.0);
                
    SubTextDelete(playerid);//удаление дополнительного окна
                
    DisableEnableReconButton(playeridReconSelect[playerid], 1);
            }
            if(
    Spectate[playerid] && lr == KEY_RIGHT && !LastReconClick[playerid][1])//Право
            
    {
                
    LastReconClick[playerid][1] = lr;
                
    PlayerPlaySound(playerid10840.00.00.0);
                if(
    ReconSelectSub[playerid] == INVALID_TEXT_DRAW)
                {
                    
    OnPlayerClickPlayerTextDraw(playeridReconPlayer[ReconSelect[playerid]]);
                }
                else
                {
                    
    OnPlayerClickPlayerTextDraw(playeridReconPlayer[ReconSelectSub[playerid]]);
                }
            }
            if(
    Spectate[playerid] && ud == KEY_UP && !LastReconClick[playerid][0])//Вверх
            
    {
                
    PlayerPlaySound(playerid10830.00.00.0);
                
    LastReconClick[playerid][0] = ud;
                if(
    ReconSelectSub[playerid] == INVALID_TEXT_DRAW)
                {
                    
    DisableEnableReconButton(playeridReconSelect[playerid], 0);
                    if(
    ReconSelect[playerid] <= 0)
                    {
                        
    ReconSelect[playerid] = 8;
                           
    DisableEnableReconButton(playeridReconSelect[playerid], 1);
                    }
                    else
                    {
                        
    ReconSelect[playerid]--;
                        
    DisableEnableReconButton(playeridReconSelect[playerid], 1);
                    }
                }
                else
                {
                    
    DisableEnableReconButton(playeridReconSelectSub[playerid], 0);
                    if(
    ReconSelectSub[playerid] <= ReconBounds[playerid][0])
                    {
                        
    ReconSelectSub[playerid] = ReconBounds[playerid][1];
                           
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
                    }
                    else
                    {
                        
    ReconSelectSub[playerid]--;
                           
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
                    }
                }
            }
            if(
    Spectate[playerid] && ud == KEY_DOWN && !LastReconClick[playerid][0])//Вниз
            
    {
                
    PlayerPlaySound(playerid10830.00.00.0);
                
    LastReconClick[playerid][0] = ud;
                if(
    ReconSelectSub[playerid] == INVALID_TEXT_DRAW)
                {
                    
    DisableEnableReconButton(playeridReconSelect[playerid], 0);
                    if(
    ReconSelect[playerid] >= 8)
                    {
                        
    ReconSelect[playerid] = 0;
                        
    DisableEnableReconButton(playeridReconSelect[playerid], 1);
                    }
                    else
                    {
                        
    ReconSelect[playerid]++;
                        
    DisableEnableReconButton(playeridReconSelect[playerid], 1);
                    }
                }
                else
                {
                    
    DisableEnableReconButton(playeridReconSelectSub[playerid], 0);
                    if(
    ReconSelectSub[playerid] >= ReconBounds[playerid][1])
                    {
                        
    ReconSelectSub[playerid] = ReconBounds[playerid][0];
                        
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
                    }
                    else
                    {
                        
    ReconSelectSub[playerid]++;
                        
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
                    }
                }
            }
            return 
    1;
        } 
    PHP код:
    public OnPlayerClickPlayerTextDraw(playeridPlayerText:playertextid)
    {
        if(
    Spectate[playerid])
        {
            if(
    ReconPlayer[0] == playertextid)
            {
                
    SubTextDelete(playerid);//Удалили допол.окно
                
    ShowPlayerDialog(playerid21DIALOG_STYLE_INPUT"Ид игрока ""Введите ид игрока""Готово""Отмена");
                return 
    1;
            }
            if(
    ReconPlayer[1] == playertextid)//Check>>
            
    {
                
    DisableEnableReconButton(playeridReconSelect[playerid], 0);
                for(new 
    9sizeof(ReconPlayer); i++) PlayerTextDrawHide(playeridReconPlayer[i]);//Скрываем текстдрав
                
    for(new 913i++) PlayerTextDrawShow(playeridReconPlayer[i]);//показываем текстдрав
                
    ReconBounds[playerid][0] = 9;
                
    ReconBounds[playerid][1] = 12;
                   
    ReconSelectSub[playerid] = ReconBounds[playerid][0];
                
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
                return 
    1;
            }
            if(
    ReconPlayer[2] == playertextid)//Drop >>
            
    {
                
    DisableEnableReconButton(playeridReconSelect[playerid], 0);
                for(new 
    9sizeof(ReconPlayer); i++) PlayerTextDrawHide(playeridReconPlayer[i]);//Скрываем текстдрав
                
    for(new 1318i++) PlayerTextDrawShow(playeridReconPlayer[i]);//показываем текстдрав
                
    ReconBounds[playerid][0] = 13;
                
    ReconBounds[playerid][1] = 17;
                   
    ReconSelectSub[playerid] = ReconBounds[playerid][0];
                
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
                return 
    1;
            }
            else if(
    ReconPlayer[3] == playertextid)//Kick >>
            
    {
                
    DisableEnableReconButton(playeridReconSelect[playerid], 0);
                for(new 
    9sizeof(ReconPlayer); i++) PlayerTextDrawHide(playeridReconPlayer[i]);//Скрываем текстдрав
                
    for(new 1820i++) PlayerTextDrawShow(playeridReconPlayer[i]);//показываем текстдрав
                
    ReconBounds[playerid][0] = 18;
                
    ReconBounds[playerid][1] = 19;
                   
    ReconSelectSub[playerid] = ReconBounds[playerid][0];
                
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
                return 
    1;
            }
    /*        else if(ReconPlayer[4] == playertextid)//Warn
            {
                SubTextDelete(playerid);
                ShowPlayerDialog(playerid, 20, DIALOG_STYLE_INPUT, "Причина", "'\t\tВведите причину\t\t'", "Готово", "Отмена");
            }*/
            
    else if(ReconPlayer[5] == playertextid)//Ban >>
            
    {
                
    DisableEnableReconButton(playeridReconSelect[playerid], 0);
                for(new 
    9sizeof(ReconPlayer); i++) PlayerTextDrawHide(playeridReconPlayer[i]);//Скрываем текстдрав
                
    for(new 2023i++) PlayerTextDrawShow(playeridReconPlayer[i]);//показываем текстдрав
                
    ReconBounds[playerid][0] = 20;
                
    ReconBounds[playerid][1] = 22;
                   
    ReconSelectSub[playerid] = ReconBounds[playerid][0];
                
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
                return 
    1;
            }
            else if(
    ReconPlayer[6] == playertextid)//Stats >>
            
    {
                
    DisableEnableReconButton(playeridReconSelect[playerid], 0);
                for(new 
    9sizeof(ReconPlayer); i++) PlayerTextDrawHide(playeridReconPlayer[i]);//Скрываем текстдрав
                
    for(new 2326i++) PlayerTextDrawShow(playeridReconPlayer[i]);//показываем текстдрав
                
    ReconBounds[playerid][0] = 23;
                
    ReconBounds[playerid][1] = 25;
                   
    ReconSelectSub[playerid] = ReconBounds[playerid][0];
                
    DisableEnableReconButton(playeridReconSelectSub[playerid], 1);
            }
            else if(
    ReconPlayer[7] == playertextid)//Refresh
            
    {
                
    SubTextDelete(playerid);
                
    StartSpectate(playeridSpecAd[playerid]);
            }
            else if(
    ReconPlayer[8] == playertextid)//Exit
            
    {
                
    SubTextDelete(playerid);
                
    StopSpectate(playerid);
            }
            else if(
    ReconPlayer[9] == playertextid)//Change>> Check-GM
            
    {
                  new 
    FloathpFloat:boomxFloat:boomyFloat:boomz;
                
    GetPlayerHealth(SpecAd[playerid], hp);
                
    GetPlayerPos(SpecAd[playerid],boomxboomyboomz);
                
    CreateExplosion(boomxboomy boomz-8.950.5);
                
    PlayerHealth[SpecAd[playerid]] -= 10;
            }
            else if(
    ReconPlayer[10] == playertextid)//Change>> Check-GM2
            
    {
                new 
    Floathp;
                
    GetPlayerHealth(SpecAd[playerid], hp);
                
    SetPlayerHealth(SpecAd[playerid], hp-10);
                
    PlayerHealth[SpecAd[playerid]] -=10;
            }
            else if(
    ReconPlayer[11] == playertextid)//Change>> Check-GMCar
            
    {
                new 
    Floathp;
                
    GetVehicleHealth(SpecAd[playerid], hp);
                
    SetVehicleHealth(SpecAd[playerid], hp-10);
            }
            else if(
    ReconPlayer[12] == playertextid)//Change>> ResetShot
            
    {
                
    WeaponShotKol[SpecAd[playerid]] = 0;
                
    WeaponShotDamage[SpecAd[playerid]] = 0;
                
    SubTextDelete(playerid);
            }
            else if(
    ReconPlayer[13] == playertextid)//Drop >> Mute
            
    {
                new 
    string[15];
                
    format(stringsizeof(string), "/mute %i 0 5 0"SpecAd[playerid]);
                
    CallLocalFunction("OnPlayerCommandText""is"playeridstring);
            }
            else if(
    ReconPlayer[14] == playertextid)//Drop >> Slap
            
    {
                new 
    FloatslxFloatslyFloatslz;
                
    GetPlayerPos(SpecAd[playerid], slxslyslz);
                
    SetPlayerPos(SpecAd[playerid], slxslyslz+5);
                
    PlayerPlaySound(SpecAd[playerid], 1130slxslyslz+5);
            }
            else if(
    ReconPlayer[15] == playertextid)//Drop >> Prison
            
    {
                
    SendClientMessage(playeridCOLOR_WHITE"Drop >> Prison - В разработке!");
            }
            else if(
    ReconPlayer[16] == playertextid)//Drop >> Freeze
            
    {
                static const 
    freeze[] = "Администратор: %s заморозил: %s";
                static 
    string[sizeof(freeze) + (-MAX_PLAYER_NAME) + (-MAX_PLAYER_NAME)];
                
    format(stringsizeof(string), freezePlayerInfo[playerid][pName], PlayerInfo[SpecAd[playerid]][pName]);
                
    SendAdminMessage(COLOR_LIGHTREDstring);
                
    TogglePlayerControllable(SpecAd[playerid], false);
            }
            else if(
    ReconPlayer[17] == playertextid)//Drop >> UnFreeze
            
    {
                static const 
    freeze[] = "Администратор: %s разморозил: %s";
                static 
    string[sizeof(freeze) + (-MAX_PLAYER_NAME) + (-MAX_PLAYER_NAME)];
                
    format(stringsizeof(string), freezePlayerInfo[playerid][pName], PlayerInfo[SpecAd[playerid]][pName]);
                
    SendAdminMessage(COLOR_LIGHTREDstring);
                
    TogglePlayerControllable(SpecAd[playerid], true);
            }
            else if(
    ReconPlayer[18] == playertextid)//Kick >> Skick
            
    {
                
    SetTimerEx("Kicks"1000false"d"SpecAd[playerid]);
            }
    //        else if(ReconPlayer[19] == playertextid)//Kick >> Kick
    //        {
    //            ShowPlayerDialog(playerid, 22, DIALOG_STYLE_INPUT, "Причина", "'\t\tВведите причину\t\t'", "Готово", "Отмена");
    //        }
    //        else if(ReconPlayer[20] == playertextid) SubTextDelete(playerid), ShowPlayerDialog(playerid, 23, DIALOG_STYLE_INPUT, "Причина", "'\t\tВведите причину\t\t'", "Готово", "Отмена");//Ban >> Ban
    //        else if(ReconPlayer[21] == playertextid) SubTextDelete(playerid), ShowPlayerDialog(playerid, 24, DIALOG_STYLE_INPUT, "Причина", "'\t\tВведите причину\t\t'", "Готово", "Отмена");//Ban >> SBan
    //        else if(ReconPlayer[22] == playertextid) SubTextDelete(playerid), ShowPlayerDialog(playerid, 25, DIALOG_STYLE_INPUT, "Причина", "'\t\tВведите причину\t\t'", "Готово", "Отмена");//Ban >> IBan
            
    else if(ReconPlayer[23] == playertextidSubTextDelete(playerid), ShowStats(playeridSpecAd[playerid]);
            else if(
    ReconPlayer[24] == playertextid)
            {
                new 
    string[15];
                
    format(stringsizeof(string), "/iwep %i"SpecAd[playerid]);
                
    CallLocalFunction("OnPlayerCommandText""is"playeridstring);
                
    SubTextDelete(playerid);
            }
            else if(
    ReconPlayer[25] == playertextid)
            {
                new 
    ip[16];
                
    GetPlayerIp(SpecAd[playerid], ipsizeof(ip));
                static const 
    ips[] = "Nik [%s]\tR-IP [%s]\tL-IP [%s]\tIP [%s]";
                static 
    string[sizeof(ips) + (-MAX_PLAYER_NAME) + (-16)  + (-16)  + (-16)];
                
    format(stringsizeof(string), ipsPlayerInfo[SpecAd[playerid]][pName], PlayerInfo[SpecAd[playerid]][pIpReg], PlayerInfo[SpecAd[playerid]][pLastIp], ip);
                
    SendClientMessage(playeridCOLOR_BLUEstring);
                
    SubTextDelete(playerid);
            }
        }
        return 
    1;

    PHP код:
    stock DisableEnableReconButton(playeridbuttonenableshow 1)
    {
        
    PlayerTextDrawHide(playeridReconPlayer[button]);
        if(!
    enable)
            
    PlayerTextDrawBoxColor(playeridReconPlayer[button], 0x00000055);
        else
            
    PlayerTextDrawBoxColor(playeridReconPlayer[button], 0xD97700AA);
        if(
    show)
            
    PlayerTextDrawShow(playeridReconPlayer[button]);
        return 
    1;



    вот где Reset Shot это наводка мышью а где сверху это и есть проблема которую я не могу исправить уже 3 дня пытаюсь и не могу(
    с клавиатурой все хорошо работает а подключаешь мышь и баг
    Последний раз редактировалось Dima_Tushin; 02.10.2019 в 19:47.
    Разрабатываю свой собственный мод State RolePlay Mysql R38

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

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±
    как сделать проверка на кнопку ESC?

    мне нужно чтобы когда я управлял мышью сделать проверку что я выключил мышь и включил клавиатуру я сделал отдельную проверку на мышь и клавиатуру как сделать проверку то что я нажал ESC

    сделал вот это но когда я нажимаю ESC то я не могу в реконе управлять клавиатурой
    PHP код:
    public OnPlayerClickPlayerTextDraw(playeridPlayerText:playertextid)
    {
        if(
    Spectate[playerid] && playertextid == PlayerText:INVALID_TEXT_DRAWReconKlavaMish[playerid] = 1;

    Последний раз редактировалось Dima_Tushin; 03.10.2019 в 12:08.
    Разрабатываю свой собственный мод State RolePlay Mysql R38

  3. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Не ленитесь перепроверять wiki =\

    http://wiki.sa-mp.com/wiki/OnPlayerClickPlayerTextDraw
    When a player presses ESC to cancel selecting a textdraw, OnPlayerClickTextDraw is called with a textdraw ID of 'INVALID_TEXT_DRAW'. OnPlayerClickPlayerTextDraw won't be called also.
    Ну а изначальная твоя проблема не совсем понятна. Ты же сам изменяешь цвет бокса, а не текста. Что ты там исправить не можешь?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±
    я там уже проверял и потом все получилось я сразу на Wiki и пошел смотреть на счет кнопки ESC я там всегда все смотрю по public и функции
    а так все что я хотел сделать я сделал можно закрывать и удалять!
    Разрабатываю свой собственный мод State RolePlay Mysql R38

 

 

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

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

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

Ваши права

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