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

    Статус
    Оффлайн
    Регистрация
    03.07.2017
    Сообщений
    44
    Репутация:
    5 ±

    Варнинги в Pawn Compiler 3.10.9

    Добрый вечер. Поставил я значит новый компилятор 3.10.9, начал компилировать мод и мне выдало что-то 1600+ варнингов на данную функцию:
    PHP код:
    stock ShowPlayerDialogEx(playeriddialogidstylecaption[], info[], button1[], button2[])
    {
        
    ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);

        
    SetPVarInt(playerid"USEDIALOGID"dialogid);

        
    UseDialog{playerid} = true;

        return 
    1;
    }
    #if defined _ALS_ShowPlayerDialog
        #undef ShowPlayerDialog
    #else
        #define _ALS_ShowPlayerDialo
    #endif
    #define ShowPlayerDialog ShowPlayerDialogEx 
    Пробовал уже делать и так:
    PHP код:
    stock ShowPlayerDialogEx(playeriddialogidstyle, const caption[], const info[], const button1[], const button2[])
    {
        
    ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);

        
    SetPVarInt(playerid"USEDIALOGID"dialogid);

        
    UseDialog{playerid} = true;

        return 
    1;
    }
    #if defined _ALS_ShowPlayerDialog
        #undef ShowPlayerDialog
    #else
        #define _ALS_ShowPlayerDialo
    #endif
    #define ShowPlayerDialog ShowPlayerDialogEx 
    Всеравно не помогает. Так вот вопрос, что нужно сделать то, чтоб избавится от этих варнингов? О_о

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

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±
    Цитата Сообщение от geneff Посмотреть сообщение
    Добрый вечер. Поставил я значит новый компилятор 3.10.9, начал компилировать мод и мне выдало что-то 1600+ варнингов на данную функцию:
    PHP код:
    stock ShowPlayerDialogEx(playeriddialogidstylecaption[], info[], button1[], button2[])
    {
        
    ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);

        
    SetPVarInt(playerid"USEDIALOGID"dialogid);

        
    UseDialog{playerid} = true;

        return 
    1;
    }
    #if defined _ALS_ShowPlayerDialog
        #undef ShowPlayerDialog
    #else
        #define _ALS_ShowPlayerDialo
    #endif
    #define ShowPlayerDialog ShowPlayerDialogEx 
    Пробовал уже делать и так:
    PHP код:
    stock ShowPlayerDialogEx(playeriddialogidstyle, const caption[], const info[], const button1[], const button2[])
    {
        
    ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);

        
    SetPVarInt(playerid"USEDIALOGID"dialogid);

        
    UseDialog{playerid} = true;

        return 
    1;
    }
    #if defined _ALS_ShowPlayerDialog
        #undef ShowPlayerDialog
    #else
        #define _ALS_ShowPlayerDialo
    #endif
    #define ShowPlayerDialog ShowPlayerDialogEx 
    Всеравно не помогает. Так вот вопрос, что нужно сделать то, чтоб избавится от этих варнингов? О_о
    Если лень их исправлять, добавь это в начало мода и всё.
    1. #pragma warning disable 214
    2. #pragma warning disable 239


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

    А вообще, не понимаю, зачем тебе перехваты?
    Обычный #define уже спасает ситуацию.

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

    Статус
    Оффлайн
    Регистрация
    03.07.2017
    Сообщений
    44
    Репутация:
    5 ±
    Крч , не знаю правильно это или нет, но я психанул и зашел в инклуд a_samp и просто исправил нативку:
    PHP код:
    native ShowPlayerDialog(playeriddialogidstyle, const caption[], const info[], const button1[], const button2[]); 
    и сделал:
    PHP код:
    stock ShowPlayerDialogEx(playeriddialogidstyle, const caption[], const info[], const button1[], const button2[])
    {
            
    /* код */
        
    return ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);


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

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±
    Цитата Сообщение от geneff Посмотреть сообщение
    Крч , не знаю правильно это или нет, но я психанул и зашел в инклуд a_samp и просто исправил нативку:
    PHP код:
    native ShowPlayerDialog(playeriddialogidstyle, const caption[], const info[], const button1[], const button2[]); 
    и сделал:
    PHP код:
    stock ShowPlayerDialogEx(playeriddialogidstyle, const caption[], const info[], const button1[], const button2[])
    {
            
    /* код */
        
    return ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);

    Написано же, что нативки и паблики отключены для этих варнингов. Ну, ладно.

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

    Статус
    Оффлайн
    Регистрация
    03.07.2017
    Сообщений
    44
    Репутация:
    5 ±
    Цитата Сообщение от NichWell Посмотреть сообщение
    Написано же, что нативки и паблики отключены для этих варнингов. Ну, ладно.
    Тогда почему идут варнинги на данный код?
    PHP код:
    stock ShowPlayerDialogEx(playeriddialogidstylecaption[], info[], button1[], button2[])
    {
            
    /* код */
        
    return ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);

    а если так, то кидает ошибку 35: несоответствие типов аргумента
    PHP код:
    stock ShowPlayerDialogEx(playeriddialogidstyle, const caption[], const info[], const button1[], const button2[])
    {
            
    /* код */
        
    return ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);


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

    Статус
    Оффлайн
    Регистрация
    05.11.2017
    Сообщений
    136
    Репутация:
    10 ±
    Потому что нативная функция объявлена так:
    1. native ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[]);


    А должна быть так, как у вас после исправлений:
    1. native ShowPlayerDialog(playerid, dialogid, style, const caption[], const info[], const button1[], const button2[]);


    Правда не рекомендуется вносить свои поправки в стандартные inc, потому я бы просто объявил вашу функцию ShowPlayerDialogEx без атрибута const.

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Используйте fixes.inc, там уже давно есть фикс для const-корректности функций SA-MP.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Используйте fixes.inc, там уже давно есть фикс для const-корректности функций SA-MP.
    Или вот эти инклуды: https://github.com/sampctl/samp-stdlib, https://github.com/sampctl/pawn-stdlib

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

    Статус
    Оффлайн
    Регистрация
    03.07.2017
    Сообщений
    44
    Репутация:
    5 ±
    Спасибо всем за ответы!!!

 

 

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

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

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

Ваши права

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