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

Тема: Перехваты

  1. #1
    Аватар для KrutoyKrosch
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2016
    Сообщений
    301
    Репутация:
    7 ±

    Перехваты

    Не могу понять по какой причине выскакивает варинг, что я не вызываю следующий перехват если я его вызываю?

    Первый перехват:
    PHP код:
    public OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz)
    {
        
    #if defined m1_OnPlayerEditDynamicObject
            
    return m1_OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz);
        
    #endif
    }
    #if defined _ALS_OnPlayerEditDynamicObject
        #undef    OnPlayerEditDynamicObject
    #else
        #define    _ALS_OnPlayerEditDynamicObject
    #endif
    #define    OnPlayerEditDynamicObject    m1_OnPlayerEditDynamicObject
    #if defined m1_OnPlayerEditDynamicObject
        
    forward m1_OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz);
    #endif 
    После него
    PHP код:
    public OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz)
    {
        
    #if defined all_OnPlayerEditDynamicObject
            
    return all_OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz);
        
    #endif
    }

    #if defined _ALS_OnPlayerEditDynamicObject
        #undef    OnPlayerEditDynamicObject
    #else
        #define    _ALS_OnPlayerEditDynamicObject
    #endif
    #define    OnPlayerEditDynamicObject    all_OnPlayerEditDynamicObject
    #if defined all_OnPlayerEditDynamicObject
        
    forward all_OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz);
    #endif 
    Сам Waring (ругается на последнюю строку во втором перехвате)
    Код:
    warning 209: function "m1_OnPlayerEditDynamicObject" should return a value

  2. #2
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Предупреждение возникает по причине того, что вы возвращаете функцию. Следовательно, возвращаемая функция должна возвращать какое-либо значение.

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

    Статус
    Оффлайн
    Регистрация
    26.02.2016
    Сообщений
    301
    Репутация:
    7 ±
    А разве строки
    PHP код:
    #if defined all_OnPlayerEditDynamicObject 
            
    return all_OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz); 
        
    #endif 
    Это не делают?

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

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    К хукам это вообще по сути не относится: как уже написали, функция просто ничего не возвращает.

    Цитата Сообщение от KrutoyKrosch Посмотреть сообщение
    А разве строки
    PHP код:
    #if defined all_OnPlayerEditDynamicObject 
            
    return all_OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz); 
        
    #endif 
    Это не делают?
    Нет, это лишь вызывает оригинальную функцию из подменённой (и только при её наличии), соответственно если перехват функции есть, а оригинальной функции нет, то сам хук ничего не возвращает.

    Вот правильная конструкция кода:
    PHP код:
        #if defined all_OnPlayerEditDynamicObject 
            
    return all_OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz);
        
    #else
            
    return 1;
        
    #endif 
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

  5. 2 пользователя(ей) сказали cпасибо:
    KrutoyKrosch (11.02.2017) qwezert (09.02.2017)
 

 

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

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

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

Ваши права

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