Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 5 из 9 ПерваяПервая ... 3 4 5 6 7 ... ПоследняяПоследняя
Показано с 41 по 50 из 88
  1. #41
    Аватар для Mr_LemoneZ
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.12.2016
    Адрес
    Беларусь
    Сообщений
    41
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Покажи примеры того, где strlen возвращает 1

    В каллбэке OnDialogResponse:
    PHP код:
    strlen(inputtext

  2. #42
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Mr_LemoneZ Посмотреть сообщение
    В каллбэке OnDialogResponse:
    PHP код:
    strlen(inputtext
    И правда, OnDialogResponse перехватывается и при пустом inputtext туда зачем-то передаётся \1. Поправил.
    Последний раз редактировалось ziggi; 04.01.2017 в 19:18.

  3. Пользователь сказал cпасибо:
    Mr_LemoneZ (04.01.2017)
  4. #43
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    И правда, OnDialogResponse перехватывается и при пустом inputtext туда зачем-то передаётся \1.
    Это сделано специально, чтобы inputtext можно было передавать через CallLocalFunction (при пустой строке происходит краш, как в ZCMD) для всяких диалоговых процессоров, например. Та же строка используется в FIXES_OnPlayerCommandText.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #44
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Это сделано специально, чтобы inputtext можно было передавать через CallLocalFunction (при пустой строке происходит краш, как в ZCMD) для всяких диалоговых процессоров, например. Та же строка используется в FIXES_OnPlayerCommandText.
    Да, но там не используется CallLocalFunction.

  6. #45
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Да, но там не используется CallLocalFunction.
    В посте выше я не просто так привёл пример с ZCMD. CallLocalFunction может вызываться в пользовательском коде - на это, очевидно, и был расчёт.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  7. #46
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    В посте выше я не просто так привёл пример с ZCMD. CallLocalFunction может вызываться в пользовательском коде - на это, очевидно, и был расчёт.
    Ну где CallLocalFunction будет вызываться, там и нужно делать такое. Скорее всего раньше там был CallLocalFunction, затем всё переделали на обычный вызов функции, а на это внимания не обратили.

    UPD: да, так и было: https://github.com/Open-GTO/sa-mp-fi...nc#L4039-L4046
    PHP код:
    if (inputtext[0])
    {
        return 
    FIXES_CALL_CALLBACK_2(OnDialogResponse1FIXES_gscSpec@iiiisplayeriddialogidresponselistiteminputtext);
    }
    else
    {
        return 
    FIXES_CALL_CALLBACK_2(OnDialogResponse1FIXES_gscSpec@iiiisplayeriddialogidresponselistitemFIXES_gscNULL);

    PHP код:
    #define FIXES_CALL_CALLBACK_2(%0On%1,%2,%3) ((FIXES_gsCallbackHooks2&E_FIXES_On%1)?(CallLocalFunction(FIXES_gsc%1,%3)):(%2)) 
    Последний раз редактировалось ziggi; 04.01.2017 в 23:39.

  8. #47
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Ну где CallLocalFunction будет вызываться, там и нужно делать такое. Скорее всего раньше там был CallLocalFunction, затем всё переделали на обычный вызов функции, а на это внимания не обратили.

    UPD: да, так и было: https://github.com/Open-GTO/sa-mp-fi...nc#L4039-L4046
    PHP код:
    if (inputtext[0])
    {
        return 
    FIXES_CALL_CALLBACK_2(OnDialogResponse1FIXES_gscSpec@iiiisplayeriddialogidresponselistiteminputtext);
    }
    else
    {
        return 
    FIXES_CALL_CALLBACK_2(OnDialogResponse1FIXES_gscSpec@iiiisplayeriddialogidresponselistitemFIXES_gscNULL);

    PHP код:
    #define FIXES_CALL_CALLBACK_2(%0On%1,%2,%3) ((FIXES_gsCallbackHooks2&E_FIXES_On%1)?(CallLocalFunction(FIXES_gsc%1,%3)):(%2)) 
    Тогда следовало бы по тому же принципу удалить "\1" из перехвата OnPlayerCommandText (что в принципе сделает ненужным весь перехват). Или вернуть "\1" в OnDialogResponse и перехватить функцию strlen, чтобы она считала "\1" пустой строкой.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    11.03.2017
    Адрес
    Новосибирск
    Сообщений
    49
    Репутация:
    4 ±
    PHP код:
    fixes.inc(3528) : fatal error 111user error_ALS_OnFilterScriptInit defined 
    Помогите решить пожалуйста, #undef и #else define не помогают

  10. #49
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от koberman Посмотреть сообщение
    PHP код:
    fixes.inc(3528) : fatal error 111user error_ALS_OnFilterScriptInit defined 
    Помогите решить пожалуйста, #undef и #else define не помогают
    fixes.inc нужно подключать сразу после a_samp.

  11. #50
    Аватар для koberman
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.03.2017
    Адрес
    Новосибирск
    Сообщений
    49
    Репутация:
    4 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    fixes.inc нужно подключать сразу после a_samp.
    Спасибо ziggi)

 

 
Страница 5 из 9 ПерваяПервая ... 3 4 5 6 7 ... ПоследняяПоследняя

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

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

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

Ваши права

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