Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 6 из 6
  1. #1
    Аватар для StevenH
    Пользователь

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

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

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

  2. #2
    Аватар для untonyst
    Младший сержант

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    663
    Репутация:
    234 ±
    Массив.
    Младший сержант Стяжкин | ЧСВ группа в ВКонтакте NEW

  3. #3
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,668
    Репутация:
    2145 ±
    В массиве, естественно. Только следует иметь в виду, что при обращении к массиву следует проверять правильность индекса, чтобы не допустить выхода за пределы массива.
    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]); 
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

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

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    65
    Репутация:
    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
    Аватар для Londlem
    Модератор

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

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

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

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

 

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

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

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

Ваши права

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