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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±

    Не срабатывает OnPlayerClickPlayerTextDraw при ESC

    Здравствуйте. Не могу понять почему не срабатывает OnPlayerClickPlayerTextDraw при нажатии ESC (логировал как на срабатываение, так и на проверки при невалидном ТД). При нажатии на ТД - всё нормально скрывает.

    Показываю игроку так:
    1. RC_CreateTextDraw(playerid);
    2. RC_ShowTextDraw(playerid);


    Каллбэк
    1. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    2. {
    3. if(_:playertextid == INVALID_TEXT_DRAW)
    4. {
    5. if (GetPVarType(playerid, !"ShowRCTD") == PLAYER_VARTYPE_INT)
    6. {
    7. RC_HideTextDraw(playerid);
    8. }
    9.  
    10. }
    11.  
    12. if(GetPVarType(playerid, !"ShowRCTD") == PLAYER_VARTYPE_INT)
    13. {
    14. if(playertextid == RCTD[playerid][1]) //Нажимает на ТД, всё скрыло.
    15. {
    16. RC_HideTextDraw(playerid);
    17. }
    18. }
    19.  
    20. return 1;
    21. }


    Функция для создания:
    1. stock RC_CreateTextDraw(playerid)
    2. {
    3. RCTD[playerid][0] = CreatePlayerTextDraw(playerid, 215.000015, 147.259231, "LD_SPAC:white");
    4. PlayerTextDrawLetterSize(playerid, RCTD[playerid][0], 0.000000, 0.000000);
    5. PlayerTextDrawTextSize(playerid, RCTD[playerid][0], 207.333358, 167.170364);
    6. PlayerTextDrawAlignment(playerid, RCTD[playerid][0], 1);
    7. PlayerTextDrawColor(playerid, RCTD[playerid][0], -1);
    8. PlayerTextDrawSetShadow(playerid, RCTD[playerid][0], 0);
    9. PlayerTextDrawSetOutline(playerid, RCTD[playerid][0], 0);
    10. PlayerTextDrawFont(playerid, RCTD[playerid][0], 4);
    11.  
    12. //etc
    13. }


    Функция для показа:
    1. stock RC_ShowTextDraw(playerid)
    2. {
    3. new
    4. i = 0;
    5. while (i < sizeof RCTD[])
    6. {
    7. PlayerTextDrawShow(playerid, RCTD[playerid][i++]);
    8. }
    9.  
    10. SelectTextDraw(playerid, 0x00000033);
    11. SetPVarInt(playerid, !"ShowRCTD", 1);
    12. }


    Функция для скрытия и удаления:
    1. stock RC_HideTextDraw(playerid)
    2. {
    3. new
    4. i = -1;
    5. while (++i < sizeof RCTD[])
    6. {
    7. PlayerTextDrawHide(playerid, RCTD[playerid][i]);
    8. PlayerTextDrawDestroy(playerid, RCTD[playerid][i]);
    9. }
    10.  
    11. DeletePVar(playerid, !"ShowRCTD");
    12. }
    Последний раз редактировалось execution; 14.08.2019 в 16:36.

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

    Статус
    Оффлайн
    Регистрация
    08.06.2015
    Адрес
    Запорожье
    Сообщений
    117
    Репутация:
    1 ±
    Замени:
    PHP код:
    if(_:playertextid == INVALID_TEXT_DRAW
    На это:
    PHP код:
    if(_:playertextid == TextINVALID_TEXT_DRAW

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Цитата Сообщение от Paradox Посмотреть сообщение
    Замени:
    PHP код:
    if(_:playertextid == INVALID_TEXT_DRAW
    На это:
    PHP код:
    if(_:playertextid == TextINVALID_TEXT_DRAW
    Зачем?)

    1. Тогда необходимо PlayerText:
    2. Я ж сбрасываю тэг playertextid.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Потому что читаем примечание - https://wiki.sa-mp.com/wiki/OnPlayerClickPlayerTextDraw
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Потому что читаем примечание - https://wiki.sa-mp.com/wiki/OnPlayerClickPlayerTextDraw
    Так-же стоит проверка. Ничего не вызывается.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Значит проверяй в подключаемых скриптах наличие паблика и удостоверься, что паблик возвращает 0, а не 1.

    Если скриптов нет - показывай код из OnPlayerClickTextDraw, который не срабатывает.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    execution (15.08.2019)
  8. #7
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Значит проверяй в подключаемых скриптах наличие паблика и удостоверься, что паблик возвращает 0, а не 1.

    Если скриптов нет - показывай код из OnPlayerClickTextDraw, который не срабатывает.
    Была проблема в подключающему скрипту.

 

 

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

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

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

Ваши права

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