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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Сообщений
    131
    Репутация:
    0 ±

    Правильно ли использую функцию p<,> ?

    Решил создать настройки заместителя, но увидел на форум что лучше сокращать это в базе данных. И тут появился вопрос правильно ли сделал, или где-то допустил ошибку.?

      Открыть/закрыть


    PHP код:
    enum FnInfo
    {
        
    fID,
        
    fName[32],
        
    fLeader[MAX_PLAYER_NAME],
        
    fDSettings[4],
    };
    new 
    FracInfo[MAX_FRACTION][FnInfo]; 
    PHP код:
    publics LoadFractions()
    {
        new 
    rows;
        new 
    string[10];
        
    cache_get_row_count(rows);
        for(new 
    0rowsi++)
        {
            
    cache_get_value_name_int(i,"ID",FracInfo[i][fID]);
            
    cache_get_value_name(i,"NameFrac",FracInfo[i][fName],32);
            
    cache_get_value_name(i,"Leader",FracInfo[i][fLeader],MAX_PLAYER_NAME);
            
    cache_get_value_name(i,"DSettings",string,8);
            
    sscanf(string"p<,>a<i>[4]",FracInfo[i][fDSettings]);
            
        }
        
    printf("Загружено [%i] фракций.",rows);


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

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

    Что касается кода - если это работает, то ты сделал правильно, а если нет, то не правильно. В общем, если не работает, то попробуй это:
    1. sscanf(string, "p<,>a<i>[4]",FracInfo[i][fDSettings][0]);

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

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

    Это и вразрез с нормализацией идёт, и ты лишние действия будешь каждый раз выполнять при загрузке/записи (например, нужно получить значение только одной опции, но нужно будет выгружать и обрабатывать все сразу).
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Сообщений
    131
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Дополню ответ выше: если ты собираешься расширять количество опций постоянно, то лучше создай ещё одну таблицу и уже в ней под каждую опцию выдели свой столбец, связав данные по ID фракции.
    А если не собираешься дополнять, то, соответственно, создай столбцы прямо в текущей таблице.

    Это и вразрез с нормализацией идёт, и ты лишние действия будешь каждый раз выполнять при загрузке/записи (например, нужно получить значение только одной опции, но нужно будет выгружать и обрабатывать все сразу).
    Ну у меня у фракции всего 5 настроек будет. А чтобы не делать в базе данных, Dsetting1, Dsetting2, и т.д. я сделал в таком виде. От сюда и вопрос так лучше или же нет.

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

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

    Это и вразрез с нормализацией идёт, и ты лишние действия будешь каждый раз выполнять при загрузке/записи (например, нужно получить значение только одной опции, но нужно будет выгружать и обрабатывать все сразу).
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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