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

    Статус
    Оффлайн
    Регистрация
    16.03.2018
    Адрес
    Москва
    Сообщений
    129
    Репутация:
    6 ±

    Ошибка с конст массивом

    1. new const TEXT[][MAX_LANGS][] = {
    2. {TEXT_HI_RU, TEXT_HI_EN, TEXT_HI_UK, TEXT_HI_BR},
    3. {TextNext_RU, TextNext_EN, TextNext_UK, TextNext_BR},
    4. {"", "", "", ""},
    5. {RegTextCaption_RU, RegTextCaption_EN, RegTextCaption_UK, RegTextCaption_BR},
    6. {RegText_RU, RegText_EN, RegText_UK, RegText_BR}
    7. };


    Не знаю по какой причине (видимо так нельзя делать :) ), но компилятор (с модификацией от Zeex) вылетает, если снять комментарий с этих строк.

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

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

    поменял изначальные переменные new const (внутри массива) на define, теперь компилятор бесконечно компилирует этот код

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от MassonNN Посмотреть сообщение
    1. new const TEXT[][MAX_LANGS][] = {
    2. {TEXT_HI_RU, TEXT_HI_EN, TEXT_HI_UK, TEXT_HI_BR},
    3. {TextNext_RU, TextNext_EN, TextNext_UK, TextNext_BR},
    4. {"", "", "", ""},
    5. {RegTextCaption_RU, RegTextCaption_EN, RegTextCaption_UK, RegTextCaption_BR},
    6. {RegText_RU, RegText_EN, RegText_UK, RegText_BR}
    7. };


    Не знаю по какой причине (видимо так нельзя делать :) ), но компилятор (с модификацией от Zeex) вылетает, если снять комментарий с этих строк.

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

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

    Статус
    Оффлайн
    Регистрация
    16.03.2018
    Адрес
    Москва
    Сообщений
    129
    Репутация:
    6 ±
    где в этом массиве числа

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Я так понимаю, TEXT_HI_RU, TEXT_HI_EN и т.д. - это макросы (#define) со строками? Вы проверяли их? Возможно, в одном из них просто забыли завершить строку (закрыть кавычки)? Если нет, то попробуйе создать минимальный скрипт, в котором бы происходил тот же самый краш (т.е. с тем же массивом и макросами) и покажите его. Я пробовал сделать такой скрипт сам:
    1. #include <a_samp>
    2.  
    3. const MAX_LANGS = 4;
    4.  
    5. #define TEXT_HI_RU "1234567890"
    6. #define TEXT_HI_EN "123456789012"
    7. #define TEXT_HI_UK "12345678901234"
    8. #define TEXT_HI_BR "1234567890123456"
    9.  
    10. new const TEXT[][MAX_LANGS][] = {
    11. {TEXT_HI_RU, TEXT_HI_EN, TEXT_HI_UK, TEXT_HI_BR},
    12. {TEXT_HI_RU, TEXT_HI_EN, TEXT_HI_UK, TEXT_HI_BR},
    13. {"", "", "", ""},
    14. {TEXT_HI_RU, TEXT_HI_EN, TEXT_HI_UK, TEXT_HI_BR},
    15. {TEXT_HI_RU, TEXT_HI_EN, TEXT_HI_UK, TEXT_HI_BR}
    16. };
    17.  
    18. main()
    19. {
    20. return TEXT[0][0][0];
    21. }

    но пока что безрезультатно, код компилируется без краша.

    UPD: И да, если макросы со строками объявлены в отдельном инклуде, убедитесь, что у него та же самая кодировка, что и у основного файла (*.pwn). Насколько знаю, Notepad++ отображает кодировку в правом нижнем углу окна, другие редакторы не проверял. Уже известен баг, из-за которого компилятор крашит, если основной файл в UTF-8, а один из инклудов в Windows-1251 (краш происходит именно из-за символов кириллицы в инклуде, без них компилируется нормально). Если у вас инклуд тоже в Win-1251, советую сделать резервную копию и с помощью того же Notepad++ (или другого редактора, которым вы пользуетесь) перевести его в кодировку UTF-8.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    16.03.2018
    Адрес
    Москва
    Сообщений
    129
    Репутация:
    6 ±
    Нет, этот текст прописан в inc, макросы в lang
    И из-за этого бесконечная компиляция, краши и т.д.?

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

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

  7. #7
    Аватар для MassonNN
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.03.2018
    Адрес
    Москва
    Сообщений
    129
    Репутация:
    6 ±
    поменял разрешение файлов lang на inc - не помогло.
    потом перенес весь код в основной gamemode - все ок....


 

 

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

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

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

Ваши права

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