Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 16 из 16

Тема: По enum

  1. #11
    Аватар для Mr.Forest
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.04.2017
    Сообщений
    7
    Репутация:
    0 ±
    Цитата Сообщение от nikvlad Посмотреть сообщение
    У меня есть телефонная книга, которая в БД хранит в формате x|y|z|g|f|v и т.д. 100 слов с именами тех, кто записан в эту книгу.

    Мне нужно прогрузить данные слова, причем, у каждого человека может быть все по-разному
    Я бы место того чтобы отводить каждому игроку двухмерных массив с большим кол-во ячеек, вынес все это в отдельную таблицу в БД

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от nikvlad Посмотреть сообщение
    У меня есть телефонная книга, которая в БД хранит в формате x|y|z|g|f|v и т.д. 100 слов с именами тех, кто записан в эту книгу.

    Мне нужно прогрузить данные слова, причем, у каждого человека может быть все по-разному
    Соглашусь с оратором выше. Эти данные совсем не обязательно хранить на сервере постоянно. Создай отдельную таблицу со структурой
    PHP код:
    row_id owner_id subscriber_id 
    Где
    row_id - Столбец с идентификатором строки (его мы вообще не трогаем. Устанавливаем параметр AUTO_INCREMENT и забываем о нём. Он нужен для правильного функционирования таблицы)
    owner_id - ID аккаунта владельца телефонной книги
    subscriber_id - ID аккаунта игрока, которого добавил владелец в свою телефонную книгу

    Это и позволит удобно работать с данными, покойно удаляя/извлекая данные о любой записи в эту самую книгу, и позволит хранить неограниченное число номеров в этой самой книге (всё будет ограничиваться лишь размерами массива, куда будут выгружаться данные и ограничениями функции, с помощью которой данные отображаются игроку: если диалог - 4096 символов)


     Пример таблиц:

     Таблица аккаунтов с интересующими нас столбцами

     Таблица телефонной книги


    ссылка

    У аккаунта с ID 1 добавлены все оставшиеся аккаунты в телефонную книгу.
    Аккаунту с ID 2 - 3 из 5
    ID 3 - 2
    ID 5 - 1






    Собственно, вывод значений можно произвести таким запросом:
    PHP код:
    SELECT a.player_name AS namea.phone_number AS number FROM accounts AS aphone_book AS p WHERE p.owner_id ID_АККАУНТА AND a.id p.subscriber_id
    /* 
        В результате запроса имена игроков, добавленных в телефонную книгу можно получить под меткой "name"
        А их номера - "number"
        То бишь:
        new subscriber_name[MAX_PLAYER_NAME],
            subscriber_number;
        cache_get_value_name(0, "name", subscriber_name, MAX_PLAYER_NAME);// Ник
        cache_get_value_name_int(0, "number", subscriber_number);// Номер телефона

       Соответственно, данные из таблицы можно грузить прямо при вводе команды показа телефонной книги
       и сразу показывать в диалоге, не сохраняя в глобальных массивах или где-либо ещё.
    */ 
     Результат запроса


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

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

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    nikvlad (17.05.2017)
  4. #13
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Соглашусь с оратором выше. Эти данные совсем не обязательно хранить на сервере постоянно. Создай отдельную таблицу со структурой
    PHP код:
    row_id owner_id subscriber_id 
    Где
    row_id - Столбец с идентификатором строки (его мы вообще не трогаем. Устанавливаем параметр AUTO_INCREMENT и забываем о нём. Он нужен для правильного функционирования таблицы)
    owner_id - ID аккаунта владельца телефонной книги
    subscriber_id - ID аккаунта игрока, которого добавил владелец в свою телефонную книгу

    Это и позволит удобно работать с данными, покойно удаляя/извлекая данные о любой записи в эту самую книгу, и позволит хранить неограниченное число номеров в этой самой книге (всё будет ограничиваться лишь размерами массива, куда будут выгружаться данные и ограничениями функции, с помощью которой данные отображаются игроку: если диалог - 4096 символов)


     Пример таблиц:

     Таблица аккаунтов с интересующими нас столбцами

     Таблица телефонной книги


    ссылка

    У аккаунта с ID 1 добавлены все оставшиеся аккаунты в телефонную книгу.
    Аккаунту с ID 2 - 3 из 5
    ID 3 - 2
    ID 5 - 1






    Собственно, вывод значений можно произвести таким запросом:
    PHP код:
    SELECT a.player_name AS namea.phone_number AS number FROM accounts AS aphone_book AS p WHERE p.owner_id ID_АККАУНТА AND a.id p.subscriber_id
    /* 
        В результате запроса имена игроков, добавленных в телефонную книгу можно получить под меткой "name"
        А их номера - "number"
        То бишь:
        new subscriber_name[MAX_PLAYER_NAME],
            subscriber_number;
        cache_get_value_name(0, "name", subscriber_name, MAX_PLAYER_NAME);// Ник
        cache_get_value_name_int(0, "number", subscriber_number);// Номер телефона

       Соответственно, данные из таблицы можно грузить прямо при вводе команды показа телефонной книги
       и сразу показывать в диалоге, не сохраняя в глобальных массивах или где-либо ещё.
    */ 
     Результат запроса


    Ну а редактирование, добавление и удаление, думаю, и сам знаешь как делать.
    Дело в том, что в книге игрок сам устанавливает имя контакта.

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    начало какое с инклудами...
    //

    //My Visual Enum 'P'layer
    new
    pLolka[MAX_PLAYERS],
    pKek[MAX_PLAYERS][100],
    pCheburek[MAX_PLAYERS];

    //My Visual Enum 'M'ap
    new
    mName[MAX_MAPS],
    mInfo[MAX_MAPS][145],
    mStatus[MAX_MAPS][MAX_PLAYERS];

    //

    вот тут тоже код какой то... 
    Почему так не кто не делает? зачем эти понты с enum
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  6. #15
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    начало какое с инклудами...
    //

    //My Visual Enum 'P'layer
    new
    pLolka[MAX_PLAYERS],
    pKek[MAX_PLAYERS][100],
    pCheburek[MAX_PLAYERS];

    //My Visual Enum 'M'ap
    new
    mName[MAX_MAPS],
    mInfo[MAX_MAPS][145],
    mStatus[MAX_MAPS][MAX_PLAYERS];

    //

    вот тут тоже код какой то... 
    Почему так не кто не делает? зачем эти понты с enum
    Потому что это напоминает венгерскую нотацию.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от nikvlad Посмотреть сообщение
    Дело в том, что в книге игрок сам устанавливает имя контакта.
    Ну так какие проблемы? :) Вместо subscriber_id добавь subscriber_name и записывай туда имя контакта
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

 
Страница 2 из 2 ПерваяПервая 1 2

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

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

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

Ваши права

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