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

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±

    тернарный оператор

    собственно вопрос вот в чем ..
    в моде есть чет тип такого - пароль: %s
    в формате стоит условие для заполнения %s - (us[playerid][u_pass] == '0') ? ("не заполнил") : "заполнил")
    возможно ли вывести вместо слова заполнил переменную ? пробовал вот так, но компилятор просто крашился
    (perem_pass[0] == '0') ? ("не заполнил") : perem_pass)

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

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    93
    Репутация:
    8 ±
    PHP код:
    (!perem_pass[0]) ? ("не заполнил") : (perem_pass

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

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Цитата Сообщение от 123 Посмотреть сообщение
    PHP код:
    (!perem_pass[0]) ? ("не заполнил") : (perem_pass
    компилятор крашится если вместо ("123") попытаться вывести переменную

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

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    93
    Репутация:
    8 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    компилятор крашится если вместо ("123") попытаться вывести переменную
    Как он может крашится? Все прекрасно компилируется. Покажите полностью как форматируйте

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

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    PHP код:
    format(stringsizeof stringfmt_str, (!us[playerid][u_pass][0]) ? ("не заполнил") : (us[playerid][u_pass])) 

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

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    93
    Репутация:
    8 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    PHP код:
    format(stringsizeof stringfmt_str, (!us[playerid][u_pass][0]) ? ("не заполнил") : (us[playerid][u_pass])) 
    Что за fmt_str? Естественно так ничего работать не будет, ибо нечего форматировать.

    Например подобный код, будет работать:

    PHP код:
    format(stringsizeof string"%s%s",fmt_str, (!us[playerid][u_pass][0]) ? ("не заполнил") : (us[playerid][u_pass])) 

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

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Цитата Сообщение от 123 Посмотреть сообщение
    Что за fmt_str? Естественно так ничего работать не будет, ибо нечего форматировать.

    Например подобный код, будет работать:

    PHP код:
    format(stringsizeof string"%s%s",fmt_str, (!us[playerid][u_pass][0]) ? ("не заполнил") : (us[playerid][u_pass])) 
    fmt_str это подсчет форматируемой строки, static const fmt_str[] = "пароль %s"; new string[sizeof fmt_str - 2 + 16];
    Последний раз редактировалось Batya_Montes; 04.03.2017 в 13:32.

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

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    93
    Репутация:
    8 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    fmt_str это подсчет форматируемой строки, static const fmt_str[] = "пароль %s"; new string[sizeof fmt_str - 2 + 16];
    А что, сложно подсчитать 7 символов?

    PHP код:
    new string[7+16+1];
    format(stringsizeof(string), "пароль %s", (!us[playerid][u_pass][0]) ? ("не заполнил") : (us[playerid][u_pass])) 

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

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Цитата Сообщение от 123 Посмотреть сообщение
    А что, сложно подсчитать 7 символов?

    PHP код:
    new string[7+16+1];
    format(stringsizeof(string), "пароль %s", (!us[playerid][u_pass][0]) ? ("не заполнил") : (us[playerid][u_pass])) 
    это для примера 7, на деле их гораздо больше

  10. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Это баг компилятора. Пару месяцев назад это уже обсуждалось на форуме. В данном случае проще всего отказаться от тернарного условия и переделать на обычные

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

    Вот та тема
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

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

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

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

Ваши права

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