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

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±

    Назв. орг, свитч или массив?

    Доброго времени суток. Где лучше хранить название организаций, рангов в массиве или каждый раз через switch?

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

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

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    В массиве, естественно. Только следует иметь в виду, что при обращении к массиву следует проверять правильность индекса, чтобы не допустить выхода за пределы массива.
    PHP код:
    new const family_names[3][]
    {
        {
    "Нет"},
        {
    "Полиция"},
        {
    "Армия"},
    }; 
    PHP код:
    new family player_info[playerid][pFamily];

    // Проверка правильности ID организации (вдруг в моде баг или админ по ошибке поставил не тот ID?)
    // По схожему принципу должны проверяться все индексы, которые зависят от вводимых игроком данных.
    if ((family 0) || (family >= sizeof(family_names)))
        return 
    0// Здесь можно вывести какое-нибудь сообщение об ошибке.

    // Для примера выведем название в консоль.
    printf("Организация: %s"family_names[family]); 
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    69
    Репутация:
    2 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    В массиве, естественно. Только следует иметь в виду, что при обращении к массиву следует проверять правильность индекса, чтобы не допустить выхода за пределы массива.
    PHP код:
    new const family_names[3][]
    {
        {
    "Нет"},
        {
    "Полиция"},
        {
    "Армия"},
    }; 
    PHP код:
    new family player_info[playerid][pFamily];

    // Проверка правильности ID организации (вдруг в моде баг или админ по ошибке поставил не тот ID?)
    // По схожему принципу должны проверяться все индексы, которые зависят от вводимых игроком данных.
    if ((family 0) || (family >= sizeof(family_names)))
        return 
    0// Здесь можно вывести какое-нибудь сообщение об ошибке.

    // Для примера выведем название в консоль.
    printf("Организация: %s"family_names[family]); 
    PHP код:
    new family player_info[playerid][pFamily]; 
    Не лучше ли тут сделать макрос ?
    PHP код:
    #define family player_info[playerid][pFamily] 

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Blood Посмотреть сообщение
    PHP код:
    new family player_info[playerid][pFamily]; 
    Не лучше ли тут сделать макрос ?
    PHP код:
    #define family player_info[playerid][pFamily] 
    Во время компиляции макросы удаляются и заменяются на исходный вариант.

  6. Пользователь сказал cпасибо:
    Blood (18.06.2016)
  7. #6
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от Blood Посмотреть сообщение
    PHP код:
    new family player_info[playerid][pFamily]; 
    Не лучше ли тут сделать макрос ?
    PHP код:
    #define family player_info[playerid][pFamily] 
    Много раз обращаться через массив будет затратнее по времени, чем к переменной.

  8. Пользователь сказал cпасибо:
    Blood (18.06.2016)
 

 

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

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

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

Ваши права

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