Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 3 1 2 3 ПоследняяПоследняя
Показано с 1 по 10 из 26
  1. #1
    Аватар для KrutoyKrosch
    Пользователь

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

    error 033: array must be indexed (variable "-unknown-")

    Очень, очень сложна

    Код:
    format(string, sizeof(string), "| Этаж № %i | %s | Цена: %i$ |\n", i++, (iApartment[i][0][pBought]) ? ("продается") : (iApartment[i][0][pNamePlayer]), iApartment[i][0][pMoney]);
    Код:
    error 033: array must be indexed (variable "-unknown-")
    как было выявлено из тестов ругается на ("продается"), но почему?

    если даже слово продается записать в массив и в формат написать этот массив то будет ошибка

    Код:
    error 033: array must be indexed (variable "-имя массива-")
    сложна короче
    Последний раз редактировалось DeimoS; 29.09.2016 в 21:53.

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Это ошибка компилятора. Не пиши так или используй компилятор от Zeex.

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

    Статус
    Оффлайн
    Регистрация
    26.02.2016
    Сообщений
    301
    Репутация:
    7 ±
    А я его компилятор и использую, стандартный так вообще вылетает

  4. #4
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Покажи ка массив iApartment.

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

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

    Код:
    #define MAX_APARTMENT 			2
    #define MAX_APARTMENT_PLAYER	200
    
    enum Apartment
    {
    	pNamePlayer[MAX_PLAYER_NAME],
    	pID,
    	pIDInterior,
    	pStatus,
    	pMoney,
    	pBack,
    	pBought
    };
    new iApartment[MAX_APARTMENT_PLAYER][MAX_APARTMENT][Apartment];

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Версия компилятора?

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

    Статус
    Оффлайн
    Регистрация
    26.02.2016
    Сообщений
    301
    Репутация:
    7 ±
    Pawn compiler 3.10.20160907 Copyright (c) 1997-2006, ITB CompuPhase

  8. #8
    Аватар для qwezert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Зная костыльщину павно компилятора я бы для начала сделал проверку потом занес в переменную нужную строку, а только потом делал бы формат)

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    qwezert, ты об этом?
    PHP код:
    string = (iApartment[i][0][pBought]) ? ("Продается") : (iApartment[i][0][pNamePlayer]);
    format(stringsizeof(string), "| Этаж № %i | %s | Цена: %i$ |\n"i++, stringiApartment[i][0][pMoney]); 
    Цитата Сообщение от KrutoyKrosch Посмотреть сообщение
    Код:
    enum Apartment
    {
    	pNamePlayer[MAX_PLAYER_NAME],
    	pID,
    	pIDInterior,
    	pStatus,
    	pMoney,
    	pBack,
    	pBought
    };
    Придумай какую-то другую приставку для констант. pMoney скорей всего встречается и в pInfo.
    Последний раз редактировалось m1n1vv; 30.09.2016 в 15:34.

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Решил копнуть поглубже, упростил пример:
    PHP код:
    #include <a_samp>

    main()
    {
        static const 
    str[] = "Sample text";
        
    printf("%s"str[0]);                        // "Sample text"
        
    printf("%s"random(1) ? str[0] : str[0]);    // "S"

    Как видно из примера, в первом вызове printf передаётся адрес строки, но во втором из-за тернарного выражения вместо адреса передаётся содержимое ячейки. Скорее всего, по этой же причине у ТС и возникла ошибка, т.к. компилятор ожидал на месте "Продается" не строку, а отдельную ячейку (т.е. число, символ, etc.)
    Полагаю, стоит сообщить об этом Zeex.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 
Страница 1 из 3 1 2 3 ПоследняяПоследняя

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

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

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

Ваши права

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